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}