Skip to main content

PlatformViewFrame

Struct PlatformViewFrame 

Source
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: u64

Stable 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: String

Opaque creation params for the native factory (may be empty).

§params_generation: u64

Bumped by the widget whenever params_json changes; this crate only ever carries the number through.

§rect: Rect

Absolute 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: bool

false ⇒ hidden (offscreen/culled by the widget itself, distinct from simply being absent from the collection this pass).

§interactive: bool

Mode 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.

Trait Implementations§

Source§

impl Clone for PlatformViewFrame

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PlatformViewFrame

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for PlatformViewFrame

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for PlatformViewFrame

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> StorageAccess<T> for T

Source§

fn as_borrowed(&self) -> &T

Borrows the value.
Source§

fn into_taken(self) -> T

Takes the value.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.