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}