Skip to main content

ServerCompositionPropertySet

Struct ServerCompositionPropertySet 

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

The server-side counterpart of a live CompositionPropertySet: its entries, animatable, readable by the expressions that refer to the set.

Not from upstream, whose property sets have no server side: an expression sees a copy of a referenced set taken when its animation starts. WinUI’s property sets are live and their entries can be animated, which the WinUI composition API relies on (the property sets of ElementCompositionPreview, the effect property set of a connected animation, the interaction tracker).

Implementations§

Source§

impl ServerCompositionPropertySet

Source

pub fn new( compositor: &Rc<ServerCompositor>, ) -> Rc<ServerCompositionPropertySet>

Creates the property set, active: its animations run from the start, as a property set is not part of a tree that activates it.

Source

pub fn get_value(&self, name: &str) -> ExpressionVariant

The current value of an entry, animated or not; the default variant for an entry the set does not have.

Source

pub fn changed(&self) -> &ServerCompositionSurfaceChanged

Raised when an entry of the set changed, by a batch or by an animation (not from upstream; the effect brushes follow the entries that are their animatable properties).

Trait Implementations§

Source§

impl IAnimatedServerObject for ServerCompositionPropertySet

Source§

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

Every name is an entry of a property set; one that was never inserted reads as the default variant, as a missing parameter does.

Source§

fn server_object(&self) -> &ServerObject

The embedded ServerObject part.
Source§

fn as_server_object_dyn(&self) -> &dyn IServerObject

The object as the base contract (an explicit upcast).
Source§

fn read_property_variant( &self, property: &'static CompositionProperty, ) -> ExpressionVariant

Reads a property of the object as a variant. The default reads the field through CompositionProperty::get_variant; an object with dynamic properties (a property set) reads its own storage.
Source§

fn write_property_variant( &self, property: &'static CompositionProperty, value: ExpressionVariant, )

Writes a variant into a property of the object without notification (what an animation does with the value it evaluated). The default writes the field through CompositionProperty::set_variant; an object with dynamic properties writes its own storage.
Source§

impl IServerAnimatedPropertyHost for ServerCompositionPropertySet

Source§

fn set_animated_value( &self, property: &'static CompositionProperty, current_value: ExpressionVariant, committed_at: Duration, animation: Rc<dyn IAnimationInstance>, )

SetAnimatedValue(prop, ref field, committedAt, animation): starts animation on the property. current_value is the value of the field as a variant; the animation writes the field through CompositionProperty::set_variant.
Source§

fn remove_animation_for_property(&self, property: &'static CompositionProperty)

The tail of SetAnimatedValue(prop, out field, value): the field has been assigned directly, so the animation of the property, if any, is removed.
Source§

fn notify_animated_value_changed(&self, _property: &'static CompositionProperty)

An animation wrote a new value into the field of property.
Source§

impl IServerObject for ServerCompositionPropertySet

Source§

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

Reads the changes of the object from a batch.
Source§

fn as_animated(self: Rc<Self>) -> Option<Rc<dyn IAnimatedServerObject>>

The object as an animatable object, if it is one.
Source§

fn as_any(&self) -> &dyn Any

Source§

fn into_any_rc(self: Rc<Self>) -> Rc<dyn Any>

Source§

fn values_invalidated(&self)

Called after a group of values of the object changed.
Source§

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

Applies the changes of the object from a batch.
Source§

fn dispose(&self)

Releases the object: it has been disposed on the UI thread.
Source§

fn as_render_resource(self: Rc<Self>) -> Option<Rc<dyn IServerRenderResource>>

The object as a render resource, if it is one.
Source§

fn as_brush(self: Rc<Self>) -> Option<Rc<dyn IBrush>>

The object as a brush, if it is a server-side brush.
Source§

fn as_pen(self: Rc<Self>) -> Option<Rc<dyn IPen>>

The object as a pen, if it is a server-side pen.
Source§

fn as_render_data_geometry( self: Rc<Self>, ) -> Option<Rc<dyn IRenderDataGeometry>>

The object as a geometry usable by render data, if it is a server-side geometry.
Source§

fn as_transform(self: Rc<Self>) -> Option<Rc<dyn ITransform>>

The object as a transform, if it is a server-side transform.
Source§

fn as_gradient_stop(self: Rc<Self>) -> Option<Rc<dyn IGradientStop>>

The object as a gradient stop, if it is a server-side gradient stop.
Source§

fn as_surface(self: Rc<Self>) -> Option<Rc<dyn IServerCompositionSurface>>

The object as a composition surface, if it is one.
Source§

fn get_props(&self, _type_id: TypeId) -> Option<&dyn Any>

The generated property block of the given type embedded in the object, if it has one. A class that embeds generated properties forwards to their find_props; composition properties locate their fields through it.
Source§

impl IServerPropertyHost for ServerCompositionPropertySet

Source§

fn server_compositor(&self) -> Option<Rc<ServerCompositor>>

The compositor of the object, while it is alive. Used to resolve the server objects a batch refers to.
Source§

fn set_value( &self, property: &'static CompositionProperty, change: ServerValueChange<'_>, )

SetValue(prop, ref field, value) as the class of the object defines it. A plain server object assigns; an animated object also invalidates the subscriptions of the property; a render resource goes through super::ServerRenderResourceCore::set_value.

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.