Path: blob/main/src/vs/editor/browser/gpu/renderStrategy/baseRenderStrategy.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { ViewEventHandler } from '../../../common/viewEventHandler.js';6import type { ViewportData } from '../../../common/viewLayout/viewLinesViewportData.js';7import type { ViewContext } from '../../../common/viewModel/viewContext.js';8import type { ViewLineOptions } from '../../viewParts/viewLines/viewLineOptions.js';9import type { IGpuRenderStrategy } from '../gpu.js';10import { GlyphRasterizer } from '../raster/glyphRasterizer.js';11import type { ViewGpuContext } from '../viewGpuContext.js';1213export abstract class BaseRenderStrategy extends ViewEventHandler implements IGpuRenderStrategy {1415get glyphRasterizer() { return this._glyphRasterizer.value; }1617abstract type: string;18abstract wgsl: string;19abstract bindGroupEntries: GPUBindGroupEntry[];2021constructor(22protected readonly _context: ViewContext,23protected readonly _viewGpuContext: ViewGpuContext,24protected readonly _device: GPUDevice,25protected readonly _glyphRasterizer: { value: GlyphRasterizer },26) {27super();2829this._context.addEventHandler(this);30}3132abstract reset(): void;33abstract update(viewportData: ViewportData, viewLineOptions: ViewLineOptions): number;34abstract draw(pass: GPURenderPassEncoder, viewportData: ViewportData): void;35}363738