Skip to main content

ServerShapeVisual

Struct ServerShapeVisual 

Source
pub struct ServerShapeVisual { /* private fields */ }
Expand description

Server-side counterpart of a ShapeVisual: its shapes, through its view box, clipped to its size, then its children.

The visual observes its shape collection and its view box, which are render resources: a change of either, or of anything a shape shows (an animation included), redraws it.

Implementations§

Source§

impl ServerShapeVisual

Source

pub fn new() -> Self

Source

pub fn props(&self) -> &ServerShapeVisualProps

The properties of the visual.

Source

pub fn shapes(&self) -> Vec<Rc<dyn IServerObject>>

The shapes, in drawing order.

Source

pub fn view_box_mapping(&self, size: Vector) -> Option<ViewBoxMapping>

How the view box maps the shapes onto a visual of size, when the visual has a view box that maps anything.

Trait Implementations§

Source§

impl Default for ServerShapeVisual

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl IServerVisualContent for ServerShapeVisual

Source§

fn compute_own_content_bounds( &self, visual: &ServerCompositionVisual, ) -> Option<LtrbRect>

The size of the visual: the shapes are clipped to it.

Source§

fn render_core( &self, visual: &ServerCompositionVisual, context: &mut ServerVisualRenderContext<'_>, _current_transformed_clip: LtrbRect, )

Draws the shapes in order, clipped to the size of the visual and to the mapped view box.

Deviation (winui-composition.md): the shapes are clipped to the size of the visual (a shape visual without a size shows nothing, as in WinUI) and to the view box (the port’s reading of WinUI).

Source§

fn dependency_queued_invalidate(&self, visual: &ServerCompositionVisual)

The shape collection or the view box changed.

Source§

fn deserialize_changes_core( &self, visual: &ServerCompositionVisual, reader: &mut BatchStreamReader<'_>, committed_at: Duration, )

DeserializeChangesCore of the class; the default is the one of the container visual.
Source§

fn size_changed(&self, visual: &ServerCompositionVisual)

Source§

fn dispose(&self, visual: &ServerCompositionVisual)

The visual has been disposed on the UI thread.
Source§

fn find_props(&self, type_id: TypeId) -> Option<&dyn Any>

The generated property block of the given type, if the class has one of its own.
Source§

fn get_composition_property( &self, name: &str, ) -> Option<&'static CompositionProperty>

Source§

fn as_any(&self) -> &dyn Any

Source§

fn on_attached_to_root( &self, _visual: &ServerCompositionVisual, _target: &Rc<ServerCompositionTarget>, )

Source§

fn on_detached_from_root( &self, _visual: &ServerCompositionVisual, _target: &Rc<ServerCompositionTarget>, )

Source§

fn push_clip_to_bounds( &self, visual: &ServerCompositionVisual, canvas: &mut dyn IDrawingContextImpl, )

Source§

fn has_effect(&self, visual: &ServerCompositionVisual) -> bool

Source§

fn render_after_children( &self, _visual: &ServerCompositionVisual, _context: &mut ServerVisualRenderContext<'_>, )

Called by the render walk after the children of the visual were rendered, before the opacity mask, effect, clips and transform of the visual are popped: what render_core pushed for the children is popped here (not from upstream; the layer of a layer visual).
Source§

fn sub_tree_bounds_padding( &self, _visual: &ServerCompositionVisual, ) -> Option<Thickness>

What the content adds around the bounds of the subtree, like the output padding of an effect (not from upstream; the shadow of a layer visual). None for nothing.
Source§

fn has_update_pass_content_bounds(&self) -> bool

Whether the bounds of the own content depend on other visuals and are computed again when the update pass of the target reaches the visual (not from upstream; a redirect visual covers the bounds of its source as that pass leaves them).

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> ClassDefaults for T
where T: ?Sized,

Source§

fn static_constructor()

The static constructor of a type: work done once per thread, after the properties of the type are registered and before its first instance exists (class handlers, affects_render, metadata overrides). 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, 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.