mcut
@mcut/compositor

ElementRenderContext

Generated TypeScript API reference for the public mcut SDK.

mcut SDK


mcut SDK / compositor/src / ElementRenderContext

Interface: ElementRenderContext

Defined in: packages/compositor/src/types.ts:44

Properties

backend

backend: RenderBackend;

Defined in: packages/compositor/src/types.ts:54

The draw layer (see backend.ts) — structured fast paths live here.


ctx

ctx: Canvas2D;

Defined in: packages/compositor/src/types.ts:52

Frame-space canvas2d context for raster drawing (text, chrome, custom renderers). On the canvas2d backend this is the target itself; on GPU backends it is a scratch surface composited in z-order. Reading it marks the raster surface in use — renderers with a structured fast path (video /image quads) should draw via backend instead.


project

project: object;

Defined in: packages/compositor/src/types.ts:55

assets

assets: Record<string, {
  durationMs?: number;
  hash?: string;
  height?: number;
  id: `a-${string}`;
  kind: "video" | "audio" | "image";
  mimeType?: string;
  name?: string;
  nativePreview?: boolean;
  src: string;
  width?: number;
}>;

fps

fps: number;

height

height: number;

id

id: string;

layouts

layouts: object[];

Multicam layout templates this project references. See layouts.ts.

markers

markers: object[];

Timeline markers, sorted by timeMs (the commands keep them sorted).

name

name: string;

presets

presets: object[];

Named inspector value bundles (style presets). See presets.ts.

tracks

tracks: object[];

Render order: index 0 is painted first (bottom); last is topmost.

version

version: 1;

Project format version (see migrations.ts). parseProject migrates older documents before validating; the default covers in-memory creation.

width

width: number;

source

source: FrameSource | undefined;

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


timeMs

timeMs: number;

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

Absolute timeline time being rendered.


track

track: object;

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

elements

elements: TimelineElement[];

Sorted by startMs; never overlapping in time.

hidden

hidden: boolean;

Visuals from this track are not rendered.

id

id: `t-${string}` = trackIdSchema;

locked

locked: boolean;

UI hint: track rejects edits. The engine does not enforce this.

magnetic

magnetic: boolean;

When enabled, edits compact this track so clips keep no gaps between them.

muted

muted: boolean;

Audio from this track is silenced.

name

name: string;

On this page