import type { IDisposable } from "../../../base/common/lifecycle.js"; import type { ViewConfigurationChangedEvent, ViewLinesChangedEvent, ViewLinesDeletedEvent, ViewLinesInsertedEvent, ViewScrollChangedEvent, ViewTokensChangedEvent } from "../../common/viewEvents.js"; import type { ViewportData } from "../../common/viewLayout/viewLinesViewportData.js"; import type { ViewLineOptions } from "../viewParts/viewLines/viewLineOptions.js"; import type { IGlyphRasterizer } from "./raster/raster.js"; export declare enum BindingId { GlyphInfo = 0, Cells = 1, TextureSampler = 2, Texture = 3, LayoutInfoUniform = 4, AtlasDimensionsUniform = 5, ScrollOffset = 6 } export interface IGpuRenderStrategy extends IDisposable { readonly type: string; readonly wgsl: string; readonly bindGroupEntries: GPUBindGroupEntry[]; readonly glyphRasterizer: IGlyphRasterizer; onLinesDeleted(e: ViewLinesDeletedEvent): boolean; onConfigurationChanged(e: ViewConfigurationChangedEvent): boolean; onTokensChanged(e: ViewTokensChangedEvent): boolean; onLinesInserted(e: ViewLinesInsertedEvent): boolean; onLinesChanged(e: ViewLinesChangedEvent): boolean; onScrollChanged(e?: ViewScrollChangedEvent): boolean; /** * Resets the render strategy, clearing all data and setting up for a new frame. */ reset(): void; update(viewportData: ViewportData, viewLineOptions: ViewLineOptions): number; draw(pass: GPURenderPassEncoder, viewportData: ViewportData): void; }