ferroui_base/rendering/composition/
composition_shape_factories.rs1use super::{
5 CompositionContainerShape, CompositionEllipseGeometry, CompositionGeometry, CompositionLineGeometry,
6 CompositionPath, CompositionPathGeometry, CompositionRectangleGeometry, CompositionRoundedRectangleGeometry,
7 CompositionSpriteShape, CompositionViewBox, Compositor, GeometricClip, ShapeVisual,
8};
9use std::rc::Rc;
10
11impl Compositor {
12 pub fn create_shape_visual(&self) -> ShapeVisual {
14 ShapeVisual::new(&self.this_handle())
15 }
16
17 pub fn create_sprite_shape(&self) -> CompositionSpriteShape {
19 CompositionSpriteShape::new(&self.this_handle())
20 }
21
22 pub fn create_sprite_shape_with_geometry(&self, geometry: Option<Rc<CompositionGeometry>>) -> CompositionSpriteShape {
24 CompositionSpriteShape::with_geometry(&self.this_handle(), geometry)
25 }
26
27 pub fn create_container_shape(&self) -> CompositionContainerShape {
29 CompositionContainerShape::new(&self.this_handle())
30 }
31
32 pub fn create_rectangle_geometry(&self) -> CompositionRectangleGeometry {
34 CompositionRectangleGeometry::new(&self.this_handle())
35 }
36
37 pub fn create_rounded_rectangle_geometry(&self) -> CompositionRoundedRectangleGeometry {
40 CompositionRoundedRectangleGeometry::new(&self.this_handle())
41 }
42
43 pub fn create_ellipse_geometry(&self) -> CompositionEllipseGeometry {
45 CompositionEllipseGeometry::new(&self.this_handle())
46 }
47
48 pub fn create_line_geometry(&self) -> CompositionLineGeometry {
50 CompositionLineGeometry::new(&self.this_handle())
51 }
52
53 pub fn create_path_geometry(&self) -> CompositionPathGeometry {
55 CompositionPathGeometry::new(&self.this_handle())
56 }
57
58 pub fn create_path_geometry_with_path(&self, path: Option<CompositionPath>) -> CompositionPathGeometry {
60 CompositionPathGeometry::with_path(&self.this_handle(), path)
61 }
62
63 pub fn create_view_box(&self) -> Rc<CompositionViewBox> {
65 CompositionViewBox::new(&self.this_handle())
66 }
67
68 pub fn create_geometric_clip(&self) -> GeometricClip {
70 GeometricClip::new(&self.this_handle())
71 }
72
73 pub fn create_geometric_clip_with_geometry(&self, geometry: Option<Rc<CompositionGeometry>>) -> GeometricClip {
75 GeometricClip::with_geometry(&self.this_handle(), geometry)
76 }
77}