Skip to main content

CompositionLight

Struct CompositionLight 

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

A light (WinUI Microsoft.UI.Composition.CompositionLight): it lights the visuals of targets and their subtrees, minus the visuals of exclusions_from_targets and their subtrees, while it is_enabled. A visual that some enabled light reaches shows its content multiplied by the sum of the lights that reach it, so it is dark where none of them shines.

Deviation (winui-composition.md): the lighting is a light map drawn over the content of each lit visual, see server::LitContent.

Implementations§

Source§

impl CompositionLight

Source

pub fn light_props(&self) -> &CompositionLightProps

The generated properties of CompositionLight.

Source

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

Source

pub fn object(&self) -> &CompositionObject

The embedded CompositionObject.

Source

pub fn server(&self) -> ServerObjectId

The id of the server-side light.

Source

pub fn is_disposed(&self) -> bool

Source

pub fn dispose(&self)

Disposes the light and its two collections: the visuals it lit are drawn without it from the next frame.

Source

pub fn type_name(&self) -> &'static str

The name of the concrete class, for messages.

Source

pub fn targets(&self) -> &Rc<VisualUnorderedCollection>

Targets: the visuals the light lights, with their subtrees.

Source

pub fn exclusions_from_targets(&self) -> &Rc<VisualUnorderedCollection>

ExclusionsFromTargets: the visuals, with their subtrees, the light does not light although they are in the subtree of a target.

Source

pub fn set_xaml_binding( &self, id: Option<String>, scope: Option<Rc<CompositionVisual>>, )

Binds the light to a XAML light (XamlLight.CompositionLight): the light then also lights the XAML brushes that target the id id (XamlLight.AddTargetBrush) where they are drawn in the subtree of scope, the visual of the element whose Lights holds the XAML light. None unbinds it. Called by XamlLight.

Source

pub fn xaml_id(&self) -> Option<String>

The id of the XAML light the light is bound to, if any.

Source

pub fn is_enabled(&self) -> bool

IsEnabled (default true): a disabled light lights nothing, and the visuals it targets are drawn as if it did not exist.

Source

pub fn set_is_enabled(&self, value: bool)

Trait Implementations§

Source§

impl AmbientLightHooks for CompositionLight

Source§

impl AsCompositionObject for CompositionLight

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 CompositionLightHooks for CompositionLight

Source§

impl DistantLightHooks for CompositionLight

Source§

impl ICompositionObject for CompositionLight

Source§

fn server(&self) -> ServerObjectId

The id of the server-side counterpart of the object.
Source§

fn as_any(&self) -> &dyn Any

Source§

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

Source§

impl ICompositionObjectAnimations for CompositionLight

Source§

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

StartAnimation(propertyName, animation, finalValue) of the class: returns false for a property the class does not know.
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 ICompositionObjectHost for CompositionLight

Source§

fn server(&self) -> ServerObjectId

The id of the server-side counterpart of the object.
Source§

fn pending_animations(&self) -> &PendingAnimations

The animations waiting to be sent with the next batch.
Source§

fn implicit_animation( &self, property_name: &str, ) -> Option<Rc<dyn ICompositionAnimationBase>>

The implicit animation attached to a property of the object, if there is one (ImplicitAnimations?.TryGetValue(name)).
Source§

fn start_animation_group( &self, grp: &Rc<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§

impl ICompositorSerializable for CompositionLight

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
Source§

impl IRegisterForSerialization for CompositionLight

Source§

impl PointLightHooks for CompositionLight

Source§

fn initialize_defaults_extra(&self)

Source§

fn validate_color_change(&self, _old_value: Color, _new_value: Color)

Source§

fn on_color_changed(&self)

Source§

fn on_color_changing(&self)

Source§

fn validate_constant_attenuation_change(&self, _old_value: f32, _new_value: f32)

Source§

fn on_constant_attenuation_changed(&self)

Source§

fn on_constant_attenuation_changing(&self)

Source§

fn validate_linear_attenuation_change(&self, _old_value: f32, _new_value: f32)

Source§

fn on_linear_attenuation_changed(&self)

Source§

fn on_linear_attenuation_changing(&self)

Source§

fn validate_quadratic_attenuation_change( &self, _old_value: f32, _new_value: f32, )

Source§

fn on_quadratic_attenuation_changed(&self)

Source§

fn on_quadratic_attenuation_changing(&self)

Source§

fn validate_coordinate_space_change( &self, _old_value: &Option<Rc<dyn ICompositionObject>>, _new_value: &Option<Rc<dyn ICompositionObject>>, )

Source§

fn on_coordinate_space_changed(&self)

Source§

fn on_coordinate_space_changing(&self)

Source§

fn validate_offset_change(&self, _old_value: Vector3D, _new_value: Vector3D)

Source§

fn on_offset_changed(&self)

Source§

fn on_offset_changing(&self)

Source§

fn validate_intensity_change(&self, _old_value: f32, _new_value: f32)

Source§

fn on_intensity_changed(&self)

Source§

fn on_intensity_changing(&self)

Source§

fn validate_min_attenuation_cutoff_change( &self, _old_value: f32, _new_value: f32, )

Source§

fn on_min_attenuation_cutoff_changed(&self)

Source§

fn on_min_attenuation_cutoff_changing(&self)

Source§

fn validate_max_attenuation_cutoff_change( &self, _old_value: f32, _new_value: f32, )

Source§

fn on_max_attenuation_cutoff_changed(&self)

Source§

fn on_max_attenuation_cutoff_changing(&self)

Source§

impl SpotLightHooks for CompositionLight

Source§

fn initialize_defaults_extra(&self)

Source§

fn validate_constant_attenuation_change(&self, _old_value: f32, _new_value: f32)

Source§

fn on_constant_attenuation_changed(&self)

Source§

fn on_constant_attenuation_changing(&self)

Source§

fn validate_linear_attenuation_change(&self, _old_value: f32, _new_value: f32)

Source§

fn on_linear_attenuation_changed(&self)

Source§

fn on_linear_attenuation_changing(&self)

Source§

fn validate_quadratic_attenuation_change( &self, _old_value: f32, _new_value: f32, )

Source§

fn on_quadratic_attenuation_changed(&self)

Source§

fn on_quadratic_attenuation_changing(&self)

Source§

fn validate_coordinate_space_change( &self, _old_value: &Option<Rc<dyn ICompositionObject>>, _new_value: &Option<Rc<dyn ICompositionObject>>, )

Source§

fn on_coordinate_space_changed(&self)

Source§

fn on_coordinate_space_changing(&self)

Source§

fn validate_direction_change(&self, _old_value: Vector3D, _new_value: Vector3D)

Source§

fn on_direction_changed(&self)

Source§

fn on_direction_changing(&self)

Source§

fn validate_inner_cone_angle_change(&self, _old_value: f32, _new_value: f32)

Source§

fn on_inner_cone_angle_changed(&self)

Source§

fn on_inner_cone_angle_changing(&self)

Source§

fn validate_inner_cone_color_change(&self, _old_value: Color, _new_value: Color)

Source§

fn on_inner_cone_color_changed(&self)

Source§

fn on_inner_cone_color_changing(&self)

Source§

fn validate_inner_cone_intensity_change(&self, _old_value: f32, _new_value: f32)

Source§

fn on_inner_cone_intensity_changed(&self)

Source§

fn on_inner_cone_intensity_changing(&self)

Source§

fn validate_outer_cone_angle_change(&self, _old_value: f32, _new_value: f32)

Source§

fn on_outer_cone_angle_changed(&self)

Source§

fn on_outer_cone_angle_changing(&self)

Source§

fn validate_outer_cone_color_change(&self, _old_value: Color, _new_value: Color)

Source§

fn on_outer_cone_color_changed(&self)

Source§

fn on_outer_cone_color_changing(&self)

Source§

fn validate_outer_cone_intensity_change(&self, _old_value: f32, _new_value: f32)

Source§

fn on_outer_cone_intensity_changed(&self)

Source§

fn on_outer_cone_intensity_changing(&self)

Source§

fn validate_offset_change(&self, _old_value: Vector3D, _new_value: Vector3D)

Source§

fn on_offset_changed(&self)

Source§

fn on_offset_changing(&self)

Source§

fn validate_min_attenuation_cutoff_change( &self, _old_value: f32, _new_value: f32, )

Source§

fn on_min_attenuation_cutoff_changed(&self)

Source§

fn on_min_attenuation_cutoff_changing(&self)

Source§

fn validate_max_attenuation_cutoff_change( &self, _old_value: f32, _new_value: f32, )

Source§

fn on_max_attenuation_cutoff_changed(&self)

Source§

fn on_max_attenuation_cutoff_changing(&self)

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.