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}