mcut
@mcut/compositor

RenderBackend

Generated TypeScript API reference for the public mcut SDK.

mcut SDK


mcut SDK / compositor/src / RenderBackend

Interface: RenderBackend

Defined in: packages/compositor/src/backend.ts:56

Properties

height

readonly height: number;

Defined in: packages/compositor/src/backend.ts:59


kind

readonly kind: string & object | "canvas2d" | "webgpu";

Defined in: packages/compositor/src/backend.ts:57


width

readonly width: number;

Defined in: packages/compositor/src/backend.ts:58

Methods

acquireRaster()

acquireRaster(): Canvas2D;

Defined in: packages/compositor/src/backend.ts:68

The frame-space canvas2d context for raster content. Acquiring it marks the raster surface dirty so the backend composites it in z-order; renderers that only need it for text measurement still go through here (text rasterizes anyway).

Returns

Canvas2D


beginFrame()

beginFrame(backgroundColor): void;

Defined in: packages/compositor/src/backend.ts:60

Parameters

backgroundColor

string

Returns

void


drawImageQuad()

drawImageQuad(quad, chrome): void;

Defined in: packages/compositor/src/backend.ts:74

Composite a media quad with chrome — the GPU fast path. Backends without one (or layers a backend cannot run, e.g. raw css filters on WebGPU) draw it through the raster context instead.

Parameters

quad

ImageQuad

chrome

LayerChrome

Returns

void


endFrame()

endFrame(): void;

Defined in: packages/compositor/src/backend.ts:61

Returns

void


popRasterScope()

popRasterScope(): void;

Defined in: packages/compositor/src/backend.ts:82

Returns

void


pushRasterScope()

pushRasterScope(): void;

Defined in: packages/compositor/src/backend.ts:81

While a raster scope is open, every draw — including image quads — lands on the raster context, so canvas2d state (clips, alpha, transforms) set by the caller applies. Transition mixes and motion-blur accumulation need this. Scopes nest.

Returns

void

On this page