Skip to main content

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