gsk4/auto/
mask_node.rs
1use crate::{ffi, MaskMode, RenderNode};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9 #[doc(alias = "GskMaskNode")]
11 pub struct MaskNode(Shared<ffi::GskMaskNode>);
12
13 match fn {
14 ref => |ptr| ffi::gsk_render_node_ref(ptr as *mut ffi::GskRenderNode),
15 unref => |ptr| ffi::gsk_render_node_unref(ptr as *mut ffi::GskRenderNode),
16 }
17}
18
19impl StaticType for MaskNode {
20 fn static_type() -> glib::Type {
21 unsafe { from_glib(ffi::gsk_mask_node_get_type()) }
22 }
23}
24
25impl MaskNode {
26 #[doc(alias = "gsk_mask_node_new")]
42 pub fn new(
43 source: impl AsRef<RenderNode>,
44 mask: impl AsRef<RenderNode>,
45 mask_mode: MaskMode,
46 ) -> MaskNode {
47 skip_assert_initialized!();
48 unsafe {
49 from_glib_full(ffi::gsk_mask_node_new(
50 source.as_ref().to_glib_none().0,
51 mask.as_ref().to_glib_none().0,
52 mask_mode.into_glib(),
53 ))
54 }
55 }
56
57 #[doc(alias = "gsk_mask_node_get_mask")]
63 #[doc(alias = "get_mask")]
64 pub fn mask(&self) -> RenderNode {
65 unsafe { from_glib_none(ffi::gsk_mask_node_get_mask(self.to_glib_none().0)) }
66 }
67
68 #[doc(alias = "gsk_mask_node_get_mask_mode")]
74 #[doc(alias = "get_mask_mode")]
75 pub fn mask_mode(&self) -> MaskMode {
76 unsafe { from_glib(ffi::gsk_mask_node_get_mask_mode(self.to_glib_none().0)) }
77 }
78
79 #[doc(alias = "gsk_mask_node_get_source")]
85 #[doc(alias = "get_source")]
86 pub fn source(&self) -> RenderNode {
87 unsafe { from_glib_none(ffi::gsk_mask_node_get_source(self.to_glib_none().0)) }
88 }
89}