pub struct PlatformViewFrame {
pub slot_id: u64,
pub view_type: String,
pub params_json: String,
pub params_generation: u64,
pub rect: Rect,
pub clip: Option<Rect>,
pub visible: bool,
pub interactive: bool,
pub shields: Vec<Rect>,
}Expand description
A platform-view child’s paint-time frame — everything a shell’s native compositor needs to place, size, clip, and dispose a native sibling view for one paint pass.
All rects are logical px, absolute window coordinates — the same
space PaintCtx::report_hero callers use, built from the painting
pod’s PaintCtx::origin/PaintCtx::size. Frames are
paint-pass-scoped: crate::app::RenderRoot::paint replaces the whole
collection every pass, so a slot that didn’t paint this pass (a culled
subtree) simply has no frame in
crate::app::RenderRoot::platform_view_frames — the shell’s differ owns
absent-means-hide/dispose semantics, not this crate.
Fields§
§slot_id: u64Stable per-widget-instance id, allocated once via next_slot_id at
construction — never derived from tree position, so a reorder keeps
identity.
view_type: String"dev.frust.<Factory>" convention naming which native view factory
creates this slot’s platform view.
params_json: StringOpaque creation params for the native factory (may be empty).
params_generation: u64Bumped by the widget whenever params_json changes; this
crate only ever carries the number through.
rect: RectAbsolute paint bounds.
clip: Option<Rect>visible_rect (see PaintCtx::visible_rect) intersected with
rect, or None when fully visible — no scroll ancestor is clipping
it.
visible: boolfalse ⇒ hidden (offscreen/culled by the widget itself, distinct from
simply being absent from the collection this pass).
interactive: boolMode B input forwarding: whether
the hosted native view should receive pointer input — a touch-DOWN
inside rect (and outside every shields rect) hands the whole
gesture to the native sibling in the embedding. false (the default)
keeps the v1 no-input contract: the frust surface consumes everything.
shields: Vec<Rect>The z-shield list: absolute-coordinate regions where frust content
drawn OVER this slot must keep winning input. Only consulted when
interactive. Same coordinate space as rect.
Carries only the slot’s own manually declared shields
(PlatformViewView::shield_local, the escape hatch). The ordinary
source is auto-collection: a shield(child) wrapper reports its painted
rect through PaintCtx::report_input_shield, and the shell-side differ
merges whichever of those intersect this rect into the command it
emits — so the shipped wire shape is the union of both, assembled one
layer up.