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,
});