gsk4/auto/
shader_args_builder.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
5use crate::{ffi, GLShader};
6use glib::translate::*;
7
8glib::wrapper! {
9    /// An object to build the uniforms data for a [`GLShader`][crate::GLShader].
10    #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
11    pub struct ShaderArgsBuilder(Shared<ffi::GskShaderArgsBuilder>);
12
13    match fn {
14        ref => |ptr| ffi::gsk_shader_args_builder_ref(ptr),
15        unref => |ptr| ffi::gsk_shader_args_builder_unref(ptr),
16        type_ => || ffi::gsk_shader_args_builder_get_type(),
17    }
18}
19
20impl ShaderArgsBuilder {
21    /// Allocates a builder that can be used to construct a new uniform data
22    /// chunk.
23    ///
24    /// # Deprecated since 4.16
25    ///
26    /// GTK's new Vulkan-focused rendering
27    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
28    ///   for OpenGL rendering.
29    /// ## `shader`
30    /// a [`GLShader`][crate::GLShader]
31    /// ## `initial_values`
32    /// optional `GBytes` with initial values
33    ///
34    /// # Returns
35    ///
36    /// The newly allocated builder, free with
37    ///     `Gsk::ShaderArgsBuilder::unref()`
38    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
39    #[allow(deprecated)]
40    #[doc(alias = "gsk_shader_args_builder_new")]
41    pub fn new(shader: &GLShader, initial_values: Option<&glib::Bytes>) -> ShaderArgsBuilder {
42        skip_assert_initialized!();
43        unsafe {
44            from_glib_full(ffi::gsk_shader_args_builder_new(
45                shader.to_glib_none().0,
46                initial_values.to_glib_none().0,
47            ))
48        }
49    }
50
51    /// Sets the value of the uniform @idx.
52    ///
53    /// The uniform must be of bool type.
54    ///
55    /// # Deprecated since 4.16
56    ///
57    /// GTK's new Vulkan-focused rendering
58    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
59    ///   for OpenGL rendering.
60    /// ## `idx`
61    /// index of the uniform
62    /// ## `value`
63    /// value to set the uniform to
64    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
65    #[allow(deprecated)]
66    #[doc(alias = "gsk_shader_args_builder_set_bool")]
67    pub fn set_bool(&self, idx: i32, value: bool) {
68        unsafe {
69            ffi::gsk_shader_args_builder_set_bool(self.to_glib_none().0, idx, value.into_glib());
70        }
71    }
72
73    /// Sets the value of the uniform @idx.
74    ///
75    /// The uniform must be of float type.
76    /// ## `idx`
77    /// index of the uniform
78    /// ## `value`
79    /// value to set the uniform to
80    #[doc(alias = "gsk_shader_args_builder_set_float")]
81    pub fn set_float(&self, idx: i32, value: f32) {
82        unsafe {
83            ffi::gsk_shader_args_builder_set_float(self.to_glib_none().0, idx, value);
84        }
85    }
86
87    /// Sets the value of the uniform @idx.
88    ///
89    /// The uniform must be of int type.
90    ///
91    /// # Deprecated since 4.16
92    ///
93    /// GTK's new Vulkan-focused rendering
94    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
95    ///   for OpenGL rendering.
96    /// ## `idx`
97    /// index of the uniform
98    /// ## `value`
99    /// value to set the uniform to
100    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
101    #[allow(deprecated)]
102    #[doc(alias = "gsk_shader_args_builder_set_int")]
103    pub fn set_int(&self, idx: i32, value: i32) {
104        unsafe {
105            ffi::gsk_shader_args_builder_set_int(self.to_glib_none().0, idx, value);
106        }
107    }
108
109    /// Sets the value of the uniform @idx.
110    ///
111    /// The uniform must be of uint type.
112    ///
113    /// # Deprecated since 4.16
114    ///
115    /// GTK's new Vulkan-focused rendering
116    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
117    ///   for OpenGL rendering.
118    /// ## `idx`
119    /// index of the uniform
120    /// ## `value`
121    /// value to set the uniform to
122    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
123    #[allow(deprecated)]
124    #[doc(alias = "gsk_shader_args_builder_set_uint")]
125    pub fn set_uint(&self, idx: i32, value: u32) {
126        unsafe {
127            ffi::gsk_shader_args_builder_set_uint(self.to_glib_none().0, idx, value);
128        }
129    }
130
131    /// Sets the value of the uniform @idx.
132    ///
133    /// The uniform must be of vec2 type.
134    ///
135    /// # Deprecated since 4.16
136    ///
137    /// GTK's new Vulkan-focused rendering
138    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
139    ///   for OpenGL rendering.
140    /// ## `idx`
141    /// index of the uniform
142    /// ## `value`
143    /// value to set the uniform too
144    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
145    #[allow(deprecated)]
146    #[doc(alias = "gsk_shader_args_builder_set_vec2")]
147    pub fn set_vec2(&self, idx: i32, value: &graphene::Vec2) {
148        unsafe {
149            ffi::gsk_shader_args_builder_set_vec2(
150                self.to_glib_none().0,
151                idx,
152                value.to_glib_none().0,
153            );
154        }
155    }
156
157    /// Sets the value of the uniform @idx.
158    ///
159    /// The uniform must be of vec3 type.
160    ///
161    /// # Deprecated since 4.16
162    ///
163    /// GTK's new Vulkan-focused rendering
164    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
165    ///   for OpenGL rendering.
166    /// ## `idx`
167    /// index of the uniform
168    /// ## `value`
169    /// value to set the uniform too
170    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
171    #[allow(deprecated)]
172    #[doc(alias = "gsk_shader_args_builder_set_vec3")]
173    pub fn set_vec3(&self, idx: i32, value: &graphene::Vec3) {
174        unsafe {
175            ffi::gsk_shader_args_builder_set_vec3(
176                self.to_glib_none().0,
177                idx,
178                value.to_glib_none().0,
179            );
180        }
181    }
182
183    /// Sets the value of the uniform @idx.
184    ///
185    /// The uniform must be of vec4 type.
186    ///
187    /// # Deprecated since 4.16
188    ///
189    /// GTK's new Vulkan-focused rendering
190    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
191    ///   for OpenGL rendering.
192    /// ## `idx`
193    /// index of the uniform
194    /// ## `value`
195    /// value to set the uniform too
196    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
197    #[allow(deprecated)]
198    #[doc(alias = "gsk_shader_args_builder_set_vec4")]
199    pub fn set_vec4(&self, idx: i32, value: &graphene::Vec4) {
200        unsafe {
201            ffi::gsk_shader_args_builder_set_vec4(
202                self.to_glib_none().0,
203                idx,
204                value.to_glib_none().0,
205            );
206        }
207    }
208
209    /// Creates a new `GBytes` args from the current state of the
210    /// given @self.
211    ///
212    /// Any uniforms of the shader that have not been explicitly set on
213    /// the @self are zero-initialized.
214    ///
215    /// The given [`ShaderArgsBuilder`][crate::ShaderArgsBuilder] is reset once this function returns;
216    /// you cannot call this function multiple times on the same @self instance.
217    ///
218    /// This function is intended primarily for bindings. C code should use
219    /// `Gsk::ShaderArgsBuilder::free_to_args()`.
220    ///
221    /// # Deprecated since 4.16
222    ///
223    /// GTK's new Vulkan-focused rendering
224    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
225    ///   for OpenGL rendering.
226    ///
227    /// # Returns
228    ///
229    /// the newly allocated buffer with
230    ///   all the args added to @self
231    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
232    #[allow(deprecated)]
233    #[doc(alias = "gsk_shader_args_builder_to_args")]
234    pub fn to_args(self) -> glib::Bytes {
235        unsafe { from_glib_full(ffi::gsk_shader_args_builder_to_args(self.into_glib_ptr())) }
236    }
237}