gsk4/auto/
blend_node.rs
1use crate::{ffi, BlendMode, RenderNode};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9 #[doc(alias = "GskBlendNode")]
11 pub struct BlendNode(Shared<ffi::GskBlendNode>);
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 BlendNode {
20 fn static_type() -> glib::Type {
21 unsafe { from_glib(ffi::gsk_blend_node_get_type()) }
22 }
23}
24
25impl BlendNode {
26 #[doc(alias = "gsk_blend_node_new")]
39 pub fn new(
40 bottom: impl AsRef<RenderNode>,
41 top: impl AsRef<RenderNode>,
42 blend_mode: BlendMode,
43 ) -> BlendNode {
44 skip_assert_initialized!();
45 unsafe {
46 from_glib_full(ffi::gsk_blend_node_new(
47 bottom.as_ref().to_glib_none().0,
48 top.as_ref().to_glib_none().0,
49 blend_mode.into_glib(),
50 ))
51 }
52 }
53
54 #[doc(alias = "gsk_blend_node_get_blend_mode")]
60 #[doc(alias = "get_blend_mode")]
61 pub fn blend_mode(&self) -> BlendMode {
62 unsafe { from_glib(ffi::gsk_blend_node_get_blend_mode(self.to_glib_none().0)) }
63 }
64
65 #[doc(alias = "gsk_blend_node_get_bottom_child")]
71 #[doc(alias = "get_bottom_child")]
72 pub fn bottom_child(&self) -> RenderNode {
73 unsafe { from_glib_none(ffi::gsk_blend_node_get_bottom_child(self.to_glib_none().0)) }
74 }
75
76 #[doc(alias = "gsk_blend_node_get_top_child")]
82 #[doc(alias = "get_top_child")]
83 pub fn top_child(&self) -> RenderNode {
84 unsafe { from_glib_none(ffi::gsk_blend_node_get_top_child(self.to_glib_none().0)) }
85 }
86}