API

Interface SurfaceOptions

Options for createSurface, and for the per-surface portion of createEngine.

interface SurfaceOptions {
    alphaMode?: GPUCanvasAlphaMode;
    format?: GPUTextureFormat;
    maxDevicePixelRatio?: number;
    msaaSamples?: 1 | 4;
    srgb?: boolean;
}

Hierarchy (View Summary)

Index
alphaMode?: GPUCanvasAlphaMode

WebGPU canvas alpha mode. Use "premultiplied" to enable canvas transparency (clear color with alpha < 1 will let HTML content underneath show through). Defaults to "opaque".

format?: GPUTextureFormat

Override the swapchain format. Defaults to navigator.gpu.getPreferredCanvasFormat(). Must be a format accepted by GPUCanvasContext.configure() (i.e. not a *-srgb format — use srgb for that).

maxDevicePixelRatio?: number

Clamps the effective device pixel ratio used for the swapchain backing store. Defaults to unclamped (full devicePixelRatio).

msaaSamples?: 1 | 4

MSAA sample count for the main render pass. WebGPU only permits 1 (no MSAA) or 4 (4x MSAA). Defaults to 4.

srgb?: boolean

Render the swapchain through an sRGB view so the GPU applies linear→sRGB encoding on store (and decodes sRGB→linear when sampling sRGB textures), making alpha blending — e.g. text/sprite anti-aliasing — gamma-correct. The canvas is configured with the base format plus viewFormats: [<format>-srgb], and pipelines target the *-srgb view. Color fed to renderers should be linear (e.g. via packedSrgbToLinearRgba), and color textures sampled for blending should use an sRGB format. Defaults to false.