class
RenderEngine
implements IRenderEngine
Main GPU render engine. Manages WebGPU device, shader pipelines, draw delegates, sprite atlas, and model manager. Lazy-initializes pipelines on first use.
Constructor
new RenderEngine() Properties
| Name | Type | Access | Description |
|---|---|---|---|
capabilities | GpuCapabilities | readonly | GPU capability info (mode, features, limits) |
Methods
init()
init(canvas: HTMLCanvasElement, depthConfig?: DepthConfig): Promise<GpuCapabilities> Initialize WebGPU device and configure canvas context.
Returns
Promise<GpuCapabilities> setClearColor()
setClearColor(r: number, g: number, b: number, a: number): void Set frame clear color (RGBA 0-1).
Returns
void beginFrame()
beginFrame(camera: CameraState): void Begin a render frame with camera state.
Returns
void endFrame()
endFrame(): void Submit all GPU commands.
Returns
void loadIcon()
loadIcon(id: string, image: ImageBitmap): void Register an icon image in the sprite atlas.
Returns
void loadModel()
loadModel(id: string, glbData: ArrayBuffer): Promise<void> Parse and upload a GLB model to GPU.
Returns
Promise<void> createBuffer()
createBuffer(data: ArrayBufferView, usage: GPUBufferUsageFlags): GPUBuffer Create a GPU buffer with initial data.
Returns
GPUBuffer releaseBuffer()
releaseBuffer(buffer: GPUBuffer): void Release a GPU buffer.
Returns
void pick()
pick(x: number, y: number): Promise<FeaturePickResult | null> GPU picking — read feature ID at screen position.
Returns
Promise<FeaturePickResult | null> getMemoryAccounting()
getMemoryAccounting(): GpuMemoryAccounting Get GPU memory usage breakdown.
Returns
GpuMemoryAccounting recover()
recover(): Promise<void> Recover from device lost event.
Returns
Promise<void> destroy()
destroy(): void Release all GPU resources.
Returns
void Example
import { RenderEngine } from '@mapgpu/render-webgpu';
const engine = new RenderEngine();
const view = new MapView({
container: '#map',
renderEngine: engine,
});