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    /// 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    /// ## `idx`
80    /// index of the uniform
81    /// ## `value`
82    /// value to set the uniform to
83    #[doc(alias = "gsk_shader_args_builder_set_float")]
84    pub fn set_float(&self, idx: i32, value: f32) {
85        unsafe {
86            ffi::gsk_shader_args_builder_set_float(self.to_glib_none().0, idx, value);
87        }
88    }
89
90    /// Sets the value of the uniform @idx.
91    ///
92    /// The uniform must be of int type.
93    ///
94    /// # Deprecated since 4.16
95    ///
96    /// GTK's new Vulkan-focused rendering
97    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
98    ///   for OpenGL rendering.
99    /// ## `idx`
100    /// index of the uniform
101    /// ## `value`
102    /// value to set the uniform to
103    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
104    #[allow(deprecated)]
105    #[doc(alias = "gsk_shader_args_builder_set_int")]
106    pub fn set_int(&self, idx: i32, value: i32) {
107        unsafe {
108            ffi::gsk_shader_args_builder_set_int(self.to_glib_none().0, idx, value);
109        }
110    }
111
112    /// Sets the value of the uniform @idx.
113    ///
114    /// The uniform must be of uint type.
115    ///
116    /// # Deprecated since 4.16
117    ///
118    /// GTK's new Vulkan-focused rendering
119    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
120    ///   for OpenGL rendering.
121    /// ## `idx`
122    /// index of the uniform
123    /// ## `value`
124    /// value to set the uniform to
125    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
126    #[allow(deprecated)]
127    #[doc(alias = "gsk_shader_args_builder_set_uint")]
128    pub fn set_uint(&self, idx: i32, value: u32) {
129        unsafe {
130            ffi::gsk_shader_args_builder_set_uint(self.to_glib_none().0, idx, value);
131        }
132    }
133
134    /// Sets the value of the uniform @idx.
135    ///
136    /// The uniform must be of vec2 type.
137    ///
138    /// # Deprecated since 4.16
139    ///
140    /// GTK's new Vulkan-focused rendering
141    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
142    ///   for OpenGL rendering.
143    /// ## `idx`
144    /// index of the uniform
145    /// ## `value`
146    /// value to set the uniform too
147    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
148    #[allow(deprecated)]
149    #[doc(alias = "gsk_shader_args_builder_set_vec2")]
150    pub fn set_vec2(&self, idx: i32, value: &graphene::Vec2) {
151        unsafe {
152            ffi::gsk_shader_args_builder_set_vec2(
153                self.to_glib_none().0,
154                idx,
155                value.to_glib_none().0,
156            );
157        }
158    }
159
160    /// Sets the value of the uniform @idx.
161    ///
162    /// The uniform must be of vec3 type.
163    ///
164    /// # Deprecated since 4.16
165    ///
166    /// GTK's new Vulkan-focused rendering
167    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
168    ///   for OpenGL rendering.
169    /// ## `idx`
170    /// index of the uniform
171    /// ## `value`
172    /// value to set the uniform too
173    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
174    #[allow(deprecated)]
175    #[doc(alias = "gsk_shader_args_builder_set_vec3")]
176    pub fn set_vec3(&self, idx: i32, value: &graphene::Vec3) {
177        unsafe {
178            ffi::gsk_shader_args_builder_set_vec3(
179                self.to_glib_none().0,
180                idx,
181                value.to_glib_none().0,
182            );
183        }
184    }
185
186    /// Sets the value of the uniform @idx.
187    ///
188    /// The uniform must be of vec4 type.
189    ///
190    /// # Deprecated since 4.16
191    ///
192    /// GTK's new Vulkan-focused rendering
193    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
194    ///   for OpenGL rendering.
195    /// ## `idx`
196    /// index of the uniform
197    /// ## `value`
198    /// value to set the uniform too
199    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
200    #[allow(deprecated)]
201    #[doc(alias = "gsk_shader_args_builder_set_vec4")]
202    pub fn set_vec4(&self, idx: i32, value: &graphene::Vec4) {
203        unsafe {
204            ffi::gsk_shader_args_builder_set_vec4(
205                self.to_glib_none().0,
206                idx,
207                value.to_glib_none().0,
208            );
209        }
210    }
211
212    /// Creates a new `GBytes` args from the current state of the
213    /// given @self.
214    ///
215    /// Any uniforms of the shader that have not been explicitly set on
216    /// the @self are zero-initialized.
217    ///
218    /// The given [`ShaderArgsBuilder`][crate::ShaderArgsBuilder] is reset once this function returns;
219    /// you cannot call this function multiple times on the same @self instance.
220    ///
221    /// This function is intended primarily for bindings. C code should use
222    /// `Gsk::ShaderArgsBuilder::free_to_args()`.
223    ///
224    /// # Deprecated since 4.16
225    ///
226    /// GTK's new Vulkan-focused rendering
227    ///   does not support this feature. Use [GtkGLArea](../gtk4/class.GLArea.html)
228    ///   for OpenGL rendering.
229    ///
230    /// # Returns
231    ///
232    /// the newly allocated buffer with
233    ///   all the args added to @self
234    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
235    #[allow(deprecated)]
236    #[doc(alias = "gsk_shader_args_builder_to_args")]
237    pub fn to_args(self) -> glib::Bytes {
238        unsafe { from_glib_full(ffi::gsk_shader_args_builder_to_args(self.into_glib_ptr())) }
239    }
240}