canvasSource

Describes a canvas displaying one immutable CPU image without a native runtime dependency.

The DrawImage already owns detached straight ARGB storage; this factory never retains a caller-owned pixel array. The returned source is immutable and thread-safe to share, and each attachment owns an independent binding. No subscription or retained resource is acquired until the canvas attaches.

Return

an externally owned source suitable for both native and headless presentation.

Parameters

image

positive immutable source image, retained without copying its already immutable pixels.

Throws

when the image has an empty extent.


Describes a canvas observing revisioned immutable CPU frames through the existing state-source protocol.

Each attachment subscribes independently and closes only its subscription when replaced, suspended, or removed. Any-thread callbacks only replace the newest pending snapshot and never invalidate or mutate the retained tree. A timed or untimed owner-thread frame commits its cutoff before layout and painting; newer notifications wait until the next frame. The binding retains only a committed image and newest pending image between frames, plus one transaction-local cutoff snapshot while a frame is being committed. Every published image must have positive extent and own immutable straight ARGB storage.

Return

an immutable source description without an active observation.

Parameters

frames

externally owned source, which remains open after every canvas closes.