windows_composition/
lib.rs1#![doc = include_str!("../readme.md")]
2
3#[cfg(all(not(feature = "system"), not(feature = "reactor")))]
6compile_error!(
7 "enable exactly one composition stack: the `system` feature (default) or the `reactor` feature"
8);
9#[cfg(all(feature = "system", feature = "reactor"))]
10compile_error!(
11 "the `system` and `reactor` composition stacks are mutually exclusive; enable only one"
12);
13
14#[cfg(feature = "system")]
15#[allow(
16 non_snake_case,
17 non_upper_case_globals,
18 non_camel_case_types,
19 clippy::upper_case_acronyms
20)]
21#[path = "bindings.rs"]
22mod bindings;
23#[cfg(feature = "reactor")]
24#[allow(
25 non_snake_case,
26 non_upper_case_globals,
27 non_camel_case_types,
28 clippy::upper_case_acronyms
29)]
30#[path = "bindings_lifted.rs"]
31mod bindings;
32
33mod animation;
34mod batch;
35mod brush;
36mod color;
37mod compositor;
38mod shape;
39mod visual;
40
41#[cfg(feature = "system")]
44mod stack;
45#[cfg(feature = "system")]
46mod surface;
47#[cfg(feature = "system")]
48mod target;
49
50mod sealed {
51 pub trait Sealed {}
55}
56
57pub(crate) use sealed::Sealed;
59pub(crate) use windows_core::Interface;
60
61pub use animation::{
62 Animation, CompositionAnimation, CompositionAnimationGroup, CompositionEasingFunction,
63 ImplicitAnimationCollection, ScalarKeyFrameAnimation, Vector3KeyFrameAnimation,
64};
65pub use batch::{BatchKind, CompositionScopedBatch};
66pub use brush::{Brush, CompositionBrush, CompositionColorBrush, CompositionNineGridBrush};
67pub use color::Color;
68pub use compositor::Compositor;
69pub use shape::{
70 CompositionContainerShape, CompositionEllipseGeometry, CompositionGeometry, CompositionShape,
71 CompositionShapeCollection, CompositionSpriteShape, Shape, ShapeVisual,
72};
73pub use visual::{BorderMode, ContainerVisual, SpriteVisual, Visual, VisualCollection};
74
75#[cfg(feature = "system")]
76pub use stack::DispatcherQueueController;
77#[cfg(feature = "system")]
78pub use surface::{CompositionDrawingSurface, CompositionGraphicsDevice, CompositionSurfaceBrush};
79#[cfg(feature = "system")]
80pub use target::DesktopWindowTarget;
81
82pub use windows_core::Result;
83pub use windows_numerics::{Vector2, Vector3};