Skip to main content

CompositionPropertySet

Struct CompositionPropertySet 

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

Property sets are composition objects that allow storage of key values pairs that can be shared across the application and are not tied to the lifetime of another composition object. Property sets are most commonly used with animations, where they maintain key-value pairs that are referenced to drive portions of composition animations. Property sets provide the ability to insert key-value pairs or retrieve a value for a given key. A property set does not support a delete function – ensure you use property sets to store values that will be shared across the application.

A property set made with new (or Compositor::create_property_set) is live, as in WinUI: it has a server counterpart that receives its entries with each batch, its entries can be animated with start_animation, and an expression that refers to it reads its current values. Upstream’s property sets live on the UI thread only, and an expression sees a copy of them taken when its animation starts; the parameters of an animation are such a set (see docs/porting/winui-composition.md).

Implementations§

Source§

impl CompositionPropertySet

Source

pub fn new(compositor: &Rc<Compositor>) -> Rc<CompositionPropertySet>

Creates a live property set (Compositor.CreatePropertySet).

Source

pub fn is_live(&self) -> bool

Whether the set is live (has a server counterpart).

Source

pub fn compositor(&self) -> &Rc<Compositor>

Source

pub fn insert_color(&self, property_name: &str, value: Color)

Source

pub fn insert_matrix3x2(&self, property_name: &str, value: Matrix3x2)

Source

pub fn insert_matrix4x4(&self, property_name: &str, value: Matrix4x4)

Source

pub fn insert_quaternion(&self, property_name: &str, value: Quaternion)

Source

pub fn insert_scalar(&self, property_name: &str, value: f32)

Source

pub fn insert_vector2(&self, property_name: &str, value: Vector2)

Source

pub fn insert_vector3(&self, property_name: &str, value: Vector3)

Source

pub fn insert_vector4(&self, property_name: &str, value: Vector4)

Source

pub fn try_get_color( &self, property_name: &str, ) -> (CompositionGetValueStatus, Color)

Source

pub fn try_get_matrix3x2( &self, property_name: &str, ) -> (CompositionGetValueStatus, Matrix3x2)

Source

pub fn try_get_matrix4x4( &self, property_name: &str, ) -> (CompositionGetValueStatus, Matrix4x4)

Source

pub fn try_get_quaternion( &self, property_name: &str, ) -> (CompositionGetValueStatus, Quaternion)

Source

pub fn try_get_scalar( &self, property_name: &str, ) -> (CompositionGetValueStatus, f32)

Source

pub fn try_get_vector2( &self, property_name: &str, ) -> (CompositionGetValueStatus, Vector2)

Source

pub fn try_get_vector3( &self, property_name: &str, ) -> (CompositionGetValueStatus, Vector3)

Source

pub fn try_get_vector4( &self, property_name: &str, ) -> (CompositionGetValueStatus, Vector4)

Source

pub fn insert_boolean(&self, property_name: &str, value: bool)

Source

pub fn try_get_boolean( &self, property_name: &str, ) -> (CompositionGetValueStatus, bool)

Trait Implementations§

Source§

impl AsCompositionObject for CompositionPropertySet

Source§

fn as_composition_object(&self) -> &CompositionObject

The embedded CompositionObject.
Source§

fn composition_type_name(&self) -> &'static str

The name of the class of the object, for messages.
Source§

fn as_property_set(self: Rc<Self>) -> Option<Rc<CompositionPropertySet>>

The object as a property set, if it is one (the is CompositionPropertySet test of upstream).
Source§

impl ICompositionObjectAnimations for CompositionPropertySet

Source§

fn try_start_animation( &self, property_name: &str, animation: &dyn ICompositionAnimation, final_value: Option<ExpressionVariant>, ) -> bool

Starts an animation of an entry of a live set. As in WinUI the entry must have been inserted first; the animation starts from its current value.

Source§

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

The composition property with the given name.
Source§

fn composition_object(&self) -> &CompositionObject

The embedded CompositionObject.
Source§

fn start_animation( &self, property_name: &str, animation: &dyn ICompositionAnimation, )

Connects an animation with the named property of the object and starts the animation.
Source§

fn start_animation_with_final_value( &self, property_name: &str, animation: &dyn ICompositionAnimation, final_value: Option<ExpressionVariant>, )

See start_animation. property_name may name a sub-channel of a vector property (Offset.X, Scale.XY, components X, Y, Z, W in any case): the animation then animates a value of the sub-channel’s type (a scalar for one component, a Vector2 for two, …) and leaves the other components alone. Several sub-channels of one property run together; an animation of the whole property replaces them.
Source§

fn start_animation_with_controller( &self, property_name: &str, animation: &dyn ICompositionAnimation, controller: &Rc<AnimationController>, )

StartAnimation(propertyName, animation, animationController): starts the animation under controller, which can pause, resume, scrub and speed it up. property_name may name a sub-channel, as for start_animation.
Source§

fn try_get_animation_controller( &self, property_name: &str, ) -> Option<Rc<AnimationController>>

The controller of the animation of the named property (TryGetAnimationController): the controller it was started with, or a new controller that takes the running animation over. None when no animation was started on the property through this object, or it was stopped.
Source§

fn stop_animation(&self, property_name: &str)

Disconnects an animation from the named property and stops it, applying its stop behavior. property_name may name a sub-channel (Offset.X): the animations of the sub-channels that share a component with it are stopped.
Source§

fn start_animation_group(&self, grp: &dyn ICompositionAnimationBase)

Starts an animation group. The StartAnimationGroup method on CompositionObject lets you start CompositionAnimationGroup. All the animations in the group will be started at the same time on the object.
Source§

fn start_animation_group_part( &self, animation: &dyn ICompositionAnimation, target: &str, final_value: ExpressionVariant, ) -> bool

StartAnimationGroupPart.
Source§

fn start_animation_group_for( &self, grp: &dyn ICompositionAnimationBase, target: &str, final_value: ExpressionVariant, ) -> bool

Starts an animation or an animation group triggered by the change of property target to final_value. Returns whether one of the animations targets that property.
Source§

fn stop_animation_group(&self, grp: &dyn ICompositionAnimationBase)

Stops an animation group.
Source§

impl ICompositorSerializable for CompositionPropertySet

Source§

fn try_get_server(&self, c: &Compositor) -> Option<ServerObjectId>

The server-side counterpart of the object on compositor c, if it has one.
Source§

fn serialize_changes(&self, c: &Compositor, writer: &mut BatchStreamWriter<'_>)

Writes the pending changes of the object for compositor c.
Source§

fn serialization_key(&self) -> *const ()

The identity of the object, by which a compositor avoids queueing it twice. The default is the address of the implementing value; an adapter around an object returns the identity of that object.
Source§

fn prepare_serialization(&self, _c: &Compositor)

Called before the changes of the object are written for compositor c. Read more

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.