Skip to main content

Crate drmkit_scene_set

Crate drmkit_scene_set 

Source
Expand description

Several scenes, one frame.

Port of src/scene/scene_set.{hpp,cpp}.

A LayerScene drives one CRTC. A SceneSet holds several, mirrors layers across them, and plans how many atomic commits a frame across them costs — which is the whole question, because one commit across every output is atomic and several are not, while one commit means one output’s refusal takes the rest down with it. See NarrowPolicy. The set plans; making the commits is the caller’s.

§Mirrored layers

add_layer takes one source and a target per scene, so the same content reaches several outputs — a presentation mirrored to a projector, a status bar on every screen. Each target carries its own geometry, since the outputs rarely share a resolution.

Structs§

LayerSpec
One layer across one or more scenes.
SceneSet
Several scenes, with mirrored layers and a plan for how a frame across them is committed.
SetLayerHandle
A handle to a layer that may span several scenes.
SlotState
What one slot in the set looks like this frame.
Target
Where one mirrored layer lands on one scene.

Enums§

NarrowPolicy
How to split a frame across the outputs it touches.
SetError
Why a set operation was refused.

Functions§

partition_for_policy
Group the engaged slots into one commit each.