#[non_exhaustive]pub struct PlanePlan {
pub plane_id: u32,
pub layer_id: LayerId,
pub layer: Layer,
pub baseline: Option<PropertySnapshot>,
pub damage: Vec<DamageRect>,
pub zpos: Option<u64>,
pub color: Option<Ycbcr>,
}Expand description
One plane’s share of a built frame.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.plane_id: u32The plane this layer landed on.
layer_id: LayerIdWhich layer it is, for the allocator’s committed baseline.
layer: LayerThe lowered property bag to write.
baseline: Option<PropertySnapshot>What the kernel last took on this plane, or None to write it all.
Captured at build time on purpose: the baseline is replaced when the frame is finalized, so reading it afterwards would diff this frame against itself and suppress every property.
damage: Vec<DamageRect>What this frame’s source said changed, in buffer pixels: clipped to the buffer, and empty when it reported more than upstream’s bound of 16 rectangles.
Empty means whole-frame, which is what an absent FB_DAMAGE_CLIPS
already says – so an empty list writes nothing rather than an empty
blob, which the kernel reads as nothing changed and would leave the
frame unrepainted.
zpos: Option<u64>The zpos to write in place of the layer’s own: the frame’s stack,
numbered densely over the planes it arms (see
stacked_zpos). None where the plane
is not ranked, and the layer’s own value goes out.
color: Option<Ycbcr>The COLOR_ENCODING and COLOR_RANGE the layer asks of its plane.
None for the composition canvas, which is no one layer’s and is
RGB, where the kernel applies neither: its plane is left with what it
has, as upstream leaves it.