Skip to main content

ferroui_base/rendering/composition/server/
mod.rs

1//! The server (render thread) side of the composition renderer.
2
3pub mod dirty_rects;
4
5mod composition_property;
6mod composition_target_overlays;
7mod compositor_lock;
8mod compositor_pools;
9mod drawing_context_proxy;
10
11pub use compositor_lock::{CompositorLock, CompositorLockGuard, LockBound, LockedServerCompositor};
12mod server_composition_bitmap_cache;
13mod server_composition_cache_mode;
14mod server_composition_clip;
15mod server_composition_container_visual;
16mod server_composition_draw_list_visual;
17mod server_composition_drawing_surface;
18mod server_composition_geometry;
19mod server_composition_light;
20mod server_composition_experimental_acrylic_visual;
21mod server_composition_gradient_stop;
22mod server_composition_property_set;
23mod server_composition_shape;
24mod server_composition_solid_color_visual;
25mod server_composition_surface;
26mod server_composition_surface_visual;
27mod server_composition_target;
28mod server_composition_view_box;
29mod server_composition_visual;
30mod server_composition_visual_collection;
31mod server_composition_visual_surface;
32mod server_compositor_animations;
33mod server_custom_composition_visual;
34mod server_drop_shadow;
35mod server_layer_visual;
36mod server_redirect_visual;
37mod server_loaded_image_surface;
38mod server_object_animations;
39mod server_shape_visual;
40mod server_size_dependant_visual;
41mod server_sprite_visual;
42mod server_visual_render_context;
43mod diagnostic_text_renderer;
44mod fps_counter;
45mod frame_time_graph;
46mod i_server_clock_item;
47mod readback_indices;
48mod render_scope;
49mod server_composition_simple_brush;
50mod server_composition_simple_geometry;
51mod server_composition_simple_transform;
52mod server_compositor;
53mod server_list;
54mod server_object;
55mod server_property_host;
56mod server_render_resource;
57
58pub use composition_property::{props_of, CompositionProperty, CompositionPropertyOf};
59pub use diagnostic_text_renderer::{
60    DiagnosticGlyphRun, DiagnosticTextRenderer, GlyphTypefaceDiagnosticGlyphRunSource, IDiagnosticGlyphRunSource,
61    ShapedText,
62};
63pub use dirty_rects::{
64    DebugEventsDirtyRectCollectorProxy, IDirtyRectCollector, IDirtyRectTracker, MultiDirtyRectTracker,
65    RegionDirtyRectTracker, SingleDirtyRectTracker,
66};
67pub use fps_counter::FpsCounter;
68pub use frame_time_graph::FrameTimeGraph;
69pub use i_server_clock_item::IServerClockItem;
70pub use readback_indices::{ReadbackIndices, ReadbackWriteScope};
71pub use render_scope::{brush_light_ids, draw_backdrop, painting_visual, MAX_BACKDROP_DEPTH};
72pub(crate) use render_scope::{is_self_or_ancestor, take_backdrop_regions, with_brush_light_ids};
73pub(crate) use server_composition_simple_brush::server_simple_brush;
74pub use server_composition_simple_brush::{
75    ServerCompositionSimpleBrush, ServerCompositionSimpleConicGradientBrush, ServerCompositionSimpleGradientBrush,
76    ServerCompositionSimpleLinearGradientBrush, ServerCompositionSimpleRadialGradientBrush,
77    ServerCompositionSimpleSolidColorBrush, ServerCompositionSimpleTileBrush,
78};
79pub use server_composition_simple_geometry::ServerCompositionSimpleGeometry;
80// The server-side tile brushes live with the composition brushes, as
81// upstream; they belong to this namespace.
82pub use super::brushes::{ServerCompositionSimpleContentBrush, ServerCompositionSimpleImageBrush};
83pub use server_composition_simple_transform::ServerCompositionSimpleTransform;
84pub(crate) use server_compositor::OBJECT_END_MAGIC;
85pub use server_compositor::{BatchQueue, CompositorClock, ServerCompositor};
86pub use server_list::ServerList;
87pub use composition_target_overlays::CompositionTargetOverlays;
88pub use compositor_pools::{CompositorPools, StackPool};
89pub use drawing_context_proxy::CompositorDrawingContextProxy;
90pub use server_composition_bitmap_cache::ServerCompositionBitmapCache;
91pub use server_composition_cache_mode::ServerCompositionCacheMode;
92pub use server_composition_container_visual::ServerCompositionContainerVisual;
93pub use server_composition_draw_list_visual::ServerCompositionDrawListVisual;
94pub use server_composition_drawing_surface::{DrawingSurfaceUpdateError, ServerCompositionDrawingSurface};
95pub use server_composition_experimental_acrylic_visual::ServerCompositionExperimentalAcrylicVisual;
96pub use server_composition_gradient_stop::ServerCompositionGradientStop;
97pub(crate) use server_composition_property_set::PropertySetChanges;
98pub use server_composition_property_set::ServerCompositionPropertySet;
99// The server-side composition brushes are in the namespace of the server
100// objects upstream.
101pub use super::brushes::{
102    ServerCompositionConicGradientBrush, ServerCompositionGradientBrush, ServerCompositionLinearGradientBrush,
103    ServerCompositionRadialGradientBrush, ServerCompositionSolidColorBrush,
104};
105pub use server_composition_solid_color_visual::ServerCompositionSolidColorVisual;
106pub use server_composition_surface::{IServerCompositionSurface, ServerCompositionSurfaceChanged};
107pub use server_composition_surface_visual::ServerCompositionSurfaceVisual;
108pub use server_composition_target::{RenderSurfaces, ServerCompositionTarget};
109pub use server_composition_visual::{
110    IServerVisualContent, ReadbackData, ServerCompositionVisual,
111    ServerCompositionVisualCache, TreeWalkerFrame, VisualReadback,
112};
113pub use server_composition_visual_collection::ServerCompositionVisualCollection;
114pub use server_composition_clip::{
115    composition_transform, inset_rect, CompositionClipShape, ServerGeometricClip, ServerInsetClip, ServerRectangleClip,
116};
117pub use server_composition_geometry::{
118    platform_geometry_of, server_geometry_of, trim_geometry, IServerCompositionGeometry,
119    ServerCompositionEllipseGeometry, ServerCompositionLineGeometry, ServerCompositionPathGeometry,
120    ServerCompositionRectangleGeometry, ServerCompositionRoundedRectangleGeometry,
121};
122pub use server_composition_shape::{
123    render_shapes, shape_transform, CompositionShapePen, ServerCompositionContainerShape,
124    ServerCompositionShapeCollection, ServerCompositionSpriteShape,
125};
126pub use server_composition_view_box::{view_box_mapping, ServerCompositionViewBox, ViewBoxMapping};
127pub use server_shape_visual::ServerShapeVisual;
128pub use server_composition_visual_surface::ServerCompositionVisualSurface;
129pub use server_drop_shadow::ServerDropShadow;
130pub use server_composition_light::{
131    distant_light_incidence, light_map_of, point_light_incidence, spot_light_cone, IServerCompositionLight,
132    LightAttenuation, LightColor, LightMap, LightSource, LitContent, ServerAmbientLight, ServerDistantLight,
133    ServerLightState, ServerPointLight, ServerSpotLight, ServerVisualUnorderedCollection,
134    LightingMaterial, LIGHT_MAP_CELL, LIGHT_MAP_MAX_CELLS, LIGHT_MAP_MAX_SAMPLES, LIGHT_MAP_MAX_SCALE,
135    LIGHT_MAP_SAMPLE_SPACING,
136};
137pub use server_composition_light::invalidate_lights_with_moved_spaces;
138pub use server_composition_light::{paint_scene_lighting, scene_light_map, SCENE_LIGHTING_DISTANCE_UNIT};
139pub(crate) use server_composition_light::XamlLightChanges;
140pub use server_loaded_image_surface::ServerLoadedImageSurface;
141pub use server_sprite_visual::ServerSpriteVisual;
142pub use server_layer_visual::{drop_shadow_effect, drop_shadow_effect_in, ServerLayerVisual};
143pub use server_redirect_visual::ServerRedirectVisual;
144// The server-side surface brush lives with the composition brushes.
145pub use super::brushes::{paint_composition_brush, surface_brush_content_rect, ServerCompositionSurfaceBrush};
146// The server-side nine-grid and mask brushes live with the composition
147// brushes.
148// The server-side effect and backdrop brushes live with the composition
149// brushes.
150pub use super::brushes::{ServerCompositionBackdropBrush, ServerCompositionEffectBrush};
151pub use super::brushes::{
152    nine_grid_rects, NineGridEdges, ServerCompositionMaskBrush, ServerCompositionNineGridBrush, NINE_GRID_CENTER,
153};
154pub use server_compositor_animations::ServerCompositorAnimations;
155pub use server_custom_composition_visual::ServerCompositionCustomVisual;
156pub use server_object::{
157    impl_animated_server_object, IAnimatedServerObject, IServerObject, ServerExpressionObject, ServerObject, ServerObjectId,
158};
159pub use server_object_animations::ServerObjectAnimations;
160pub use server_size_dependant_visual::ServerSizeDependantVisual;
161pub use server_visual_render_context::ServerVisualRenderContext;
162pub use server_property_host::{
163    read_resource, read_server_object, resolve_resource, AsServerRenderResource, IServerAnimatedPropertyHost,
164    IServerPropertyHost, ServerPropertyValue, ServerResourceRef, ServerValueChange,
165};
166pub use server_render_resource::{
167    impl_server_render_resource, impl_simple_server_render_resource, IServerRenderResource,
168    IServerRenderResourceHost, IServerRenderResourceObserver, ServerRenderResource, ServerRenderResourceCore,
169    SimpleServerRenderResource,
170};