gsk4/auto/
gl_shader_node.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4#![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}