import { IDisposable } from '../../../base/common/lifecycle.js'; import { ViewConfigurationChangedEvent, ViewLinesChangedEvent, ViewLinesDeletedEvent, ViewLinesInsertedEvent, ViewScrollChangedEvent, ViewTokensChangedEvent } from '../../common/viewEvents.js'; import { ViewportData } from '../../common/viewLayout/viewLinesViewportData.js'; import { ViewLineOptions } from '../viewParts/viewLines/viewLineOptions.js'; import { 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; }