Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/editor/browser/gpu/gpu.ts
3294 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import type { IDisposable } from '../../../base/common/lifecycle.js';
7
import type { ViewConfigurationChangedEvent, ViewLinesChangedEvent, ViewLinesDeletedEvent, ViewLinesInsertedEvent, ViewScrollChangedEvent, ViewTokensChangedEvent } from '../../common/viewEvents.js';
8
import type { ViewportData } from '../../common/viewLayout/viewLinesViewportData.js';
9
import type { ViewLineOptions } from '../viewParts/viewLines/viewLineOptions.js';
10
import type { IGlyphRasterizer } from './raster/raster.js';
11
12
export const enum BindingId {
13
GlyphInfo,
14
Cells,
15
TextureSampler,
16
Texture,
17
LayoutInfoUniform,
18
AtlasDimensionsUniform,
19
ScrollOffset,
20
}
21
22
export interface IGpuRenderStrategy extends IDisposable {
23
readonly type: string;
24
readonly wgsl: string;
25
readonly bindGroupEntries: GPUBindGroupEntry[];
26
readonly glyphRasterizer: IGlyphRasterizer;
27
28
onLinesDeleted(e: ViewLinesDeletedEvent): boolean;
29
onConfigurationChanged(e: ViewConfigurationChangedEvent): boolean;
30
onTokensChanged(e: ViewTokensChangedEvent): boolean;
31
onLinesInserted(e: ViewLinesInsertedEvent): boolean;
32
onLinesChanged(e: ViewLinesChangedEvent): boolean;
33
onScrollChanged(e?: ViewScrollChangedEvent): boolean;
34
35
/**
36
* Resets the render strategy, clearing all data and setting up for a new frame.
37
*/
38
reset(): void;
39
update(viewportData: ViewportData, viewLineOptions: ViewLineOptions): number;
40
draw(pass: GPURenderPassEncoder, viewportData: ViewportData): void;
41
}
42
43