mcut
@mcut/compositor

createElementContext

Generated TypeScript API reference for the public mcut SDK.

mcut SDK


mcut SDK / compositor/src / createElementContext

Function: createElementContext()

function createElementContext(
   backend,
   project,
   track,
   timeMs,
   source): ElementRenderContext;

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

Build the per-element render context. ctx is a getter so backends learn when raster content is actually being drawn (GPU backends flush the raster surface lazily, in z-order).

Parameters

backend

RenderBackend

project

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

number = ...

height

number = ...

id

string = ...

layouts

object[] = ...

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

markers

object[] = ...

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

name

string = ...

presets

object[] = ...

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

tracks

object[] = ...

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

version

1 = ...

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

width

number = ...

track

elements

TimelineElement[] = ...

Sorted by startMs; never overlapping in time.

hidden

boolean = ...

Visuals from this track are not rendered.

id

`t-${string}` = trackIdSchema

locked

boolean = ...

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

magnetic

boolean = ...

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

muted

boolean = ...

Audio from this track is silenced.

name

string = ...

timeMs

number

source

FrameSource | undefined

Returns

ElementRenderContext

On this page