gsk4/auto/
gl_shader_node.rs1#![allow(deprecated)]
5
6use crate::{ffi, GLShader, RenderNode};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10 #[doc(alias = "GskGLShaderNode")]
11 pub struct GLShaderNode(Shared<ffi::GskGLShaderNode>);
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 GLShaderNode {
20 fn static_type() -> glib::Type {
21 unsafe { from_glib(ffi::gsk_gl_shader_node_get_type()) }
22 }
23}
24
25impl GLShaderNode {
26 #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
27 #[allow(deprecated)]
28 #[doc(alias = "gsk_gl_shader_node_new")]
29 pub fn new(
30 shader: &GLShader,
31 bounds: &graphene::Rect,
32 args: &glib::Bytes,
33 children: &[RenderNode],
34 ) -> GLShaderNode {
35 skip_assert_initialized!();
36 let n_children = children.len() as _;
37 unsafe {
38 from_glib_full(ffi::gsk_gl_shader_node_new(
39 shader.to_glib_none().0,
40 bounds.to_glib_none().0,
41 args.to_glib_none().0,
42 children.to_glib_none().0,
43 n_children,
44 ))
45 }
46 }
47
48 #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
49 #[allow(deprecated)]
50 #[doc(alias = "gsk_gl_shader_node_get_args")]
51 #[doc(alias = "get_args")]
52 pub fn args(&self) -> glib::Bytes {
53 unsafe { from_glib_none(ffi::gsk_gl_shader_node_get_args(self.to_glib_none().0)) }
54 }
55
56 #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
57 #[allow(deprecated)]
58 #[doc(alias = "gsk_gl_shader_node_get_n_children")]
59 #[doc(alias = "get_n_children")]
60 pub fn n_children(&self) -> u32 {
61 unsafe { ffi::gsk_gl_shader_node_get_n_children(self.to_glib_none().0) }
62 }
63
64 #[doc(alias = "gsk_gl_shader_node_get_shader")]
65 #[doc(alias = "get_shader")]
66 pub fn shader(&self) -> GLShader {
67 unsafe { from_glib_none(ffi::gsk_gl_shader_node_get_shader(self.to_glib_none().0)) }
68 }
69}