s2maps-gpu
Version:
S2 Maps GPU - An open source, high-performance, and GPU-accelerated map engine for rendering large-scale, interactive maps.
30 lines (29 loc) • 1.34 kB
TypeScript
import type { ColorMode } from 's2/s2Map.js';
import type { GlyphImages } from 'workers/source/glyphSource.js';
import type { Projector } from 'ui/camera/projector/index.js';
import type { TileGPU as Tile } from 'source/tile.spec.js';
import type TimeCache from 'ui/camera/timeCache.js';
import type { WebGPUContext } from './context/index.js';
import type { PainterData, SpriteImageMessage } from 'workers/worker.spec.js';
import type { WorkflowKey, WorkflowType, Workflows } from './workflows/workflow.spec.js';
/**
* WebGPU Painter interface
*/
export interface Painter {
context: WebGPUContext;
workflows: Workflows;
dirty: boolean;
currWorkflow?: WorkflowKey;
prepare: () => Promise<void>;
buildFeatureData: (tile: Tile, data: PainterData) => void;
buildWorkflows: (buildSet: Set<WorkflowType>) => Promise<void>;
resize: (width: number, height: number) => void;
getScreen: () => Promise<Uint8ClampedArray>;
injectGlyphImages: (maxHeight: number, images: GlyphImages, tiles: Tile[]) => void;
injectSpriteImage: (data: SpriteImageMessage, tiles: Tile[]) => void;
injectTimeCache: (timeCache: TimeCache) => void;
setColorMode: (mode: ColorMode) => void;
delete: () => void;
paint: (projector: Projector, tiles: Tile[]) => void;
computeInteractive: (tiles: Tile[]) => void;
}