gstreamer_vulkan/auto/
vulkan_full_screen_quad.rs1use crate::{VulkanCommandBuffer, VulkanFence, VulkanHandle, VulkanQueue, ffi};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10 #[doc(alias = "GstVulkanFullScreenQuad")]
11 pub struct VulkanFullScreenQuad(Object<ffi::GstVulkanFullScreenQuad, ffi::GstVulkanFullScreenQuadClass>) @extends gst::Object;
12
13 match fn {
14 type_ => || ffi::gst_vulkan_full_screen_quad_get_type(),
15 }
16}
17
18impl VulkanFullScreenQuad {
19 pub const NONE: Option<&'static VulkanFullScreenQuad> = None;
20
21 #[doc(alias = "gst_vulkan_full_screen_quad_new")]
22 pub fn new(queue: &impl IsA<VulkanQueue>) -> VulkanFullScreenQuad {
23 skip_assert_initialized!();
24 unsafe {
25 from_glib_full(ffi::gst_vulkan_full_screen_quad_new(
26 queue.as_ref().to_glib_none().0,
27 ))
28 }
29 }
30}
31
32unsafe impl Send for VulkanFullScreenQuad {}
33unsafe impl Sync for VulkanFullScreenQuad {}
34
35pub trait VulkanFullScreenQuadExt: IsA<VulkanFullScreenQuad> + 'static {
36 #[doc(alias = "gst_vulkan_full_screen_quad_draw")]
37 fn draw(&self) -> Result<(), glib::Error> {
38 unsafe {
39 let mut error = std::ptr::null_mut();
40 let is_ok =
41 ffi::gst_vulkan_full_screen_quad_draw(self.as_ref().to_glib_none().0, &mut error);
42 debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
43 if error.is_null() {
44 Ok(())
45 } else {
46 Err(from_glib_full(error))
47 }
48 }
49 }
50
51 #[doc(alias = "gst_vulkan_full_screen_quad_enable_blend")]
52 fn enable_blend(&self, enable_blend: bool) {
53 unsafe {
54 ffi::gst_vulkan_full_screen_quad_enable_blend(
55 self.as_ref().to_glib_none().0,
56 enable_blend.into_glib(),
57 );
58 }
59 }
60
61 #[doc(alias = "gst_vulkan_full_screen_quad_enable_clear")]
62 fn enable_clear(&self, enable_clear: bool) {
63 unsafe {
64 ffi::gst_vulkan_full_screen_quad_enable_clear(
65 self.as_ref().to_glib_none().0,
66 enable_clear.into_glib(),
67 );
68 }
69 }
70
71 #[doc(alias = "gst_vulkan_full_screen_quad_fill_command_buffer")]
72 fn fill_command_buffer(
73 &self,
74 cmd: &mut VulkanCommandBuffer,
75 fence: &mut VulkanFence,
76 ) -> Result<(), glib::Error> {
77 unsafe {
78 let mut error = std::ptr::null_mut();
79 let is_ok = ffi::gst_vulkan_full_screen_quad_fill_command_buffer(
80 self.as_ref().to_glib_none().0,
81 cmd.to_glib_none_mut().0,
82 fence.to_glib_none_mut().0,
83 &mut error,
84 );
85 debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
86 if error.is_null() {
87 Ok(())
88 } else {
89 Err(from_glib_full(error))
90 }
91 }
92 }
93
94 #[doc(alias = "gst_vulkan_full_screen_quad_get_last_fence")]
95 #[doc(alias = "get_last_fence")]
96 fn last_fence(&self) -> VulkanFence {
97 unsafe {
98 from_glib_full(ffi::gst_vulkan_full_screen_quad_get_last_fence(
99 self.as_ref().to_glib_none().0,
100 ))
101 }
102 }
103
104 #[doc(alias = "gst_vulkan_full_screen_quad_get_queue")]
105 #[doc(alias = "get_queue")]
106 fn queue(&self) -> Option<VulkanQueue> {
107 unsafe {
108 from_glib_full(ffi::gst_vulkan_full_screen_quad_get_queue(
109 self.as_ref().to_glib_none().0,
110 ))
111 }
112 }
113
114 #[doc(alias = "gst_vulkan_full_screen_quad_prepare_draw")]
115 fn prepare_draw(&self, fence: &mut VulkanFence) -> Result<(), glib::Error> {
116 unsafe {
117 let mut error = std::ptr::null_mut();
118 let is_ok = ffi::gst_vulkan_full_screen_quad_prepare_draw(
119 self.as_ref().to_glib_none().0,
120 fence.to_glib_none_mut().0,
121 &mut error,
122 );
123 debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
124 if error.is_null() {
125 Ok(())
126 } else {
127 Err(from_glib_full(error))
128 }
129 }
130 }
131
132 #[doc(alias = "gst_vulkan_full_screen_quad_set_index_buffer")]
143 fn set_index_buffer(&self, indices: &gst::Memory, n_indices: usize) -> Result<(), glib::Error> {
144 unsafe {
145 let mut error = std::ptr::null_mut();
146 let is_ok = ffi::gst_vulkan_full_screen_quad_set_index_buffer(
147 self.as_ref().to_glib_none().0,
148 indices.to_glib_none().0,
149 n_indices,
150 &mut error,
151 );
152 debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
153 if error.is_null() {
154 Ok(())
155 } else {
156 Err(from_glib_full(error))
157 }
158 }
159 }
160
161 #[doc(alias = "gst_vulkan_full_screen_quad_set_info")]
162 fn set_info(&self, in_info: &gst_video::VideoInfo, out_info: &gst_video::VideoInfo) -> bool {
163 unsafe {
164 from_glib(ffi::gst_vulkan_full_screen_quad_set_info(
165 self.as_ref().to_glib_none().0,
166 in_info.to_glib_none().0,
167 out_info.to_glib_none().0,
168 ))
169 }
170 }
171
172 #[doc(alias = "gst_vulkan_full_screen_quad_set_input_buffer")]
173 fn set_input_buffer(&self, buffer: Option<&gst::Buffer>) -> Result<(), glib::Error> {
174 unsafe {
175 let mut error = std::ptr::null_mut();
176 let is_ok = ffi::gst_vulkan_full_screen_quad_set_input_buffer(
177 self.as_ref().to_glib_none().0,
178 buffer.to_glib_none().0,
179 &mut error,
180 );
181 debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
182 if error.is_null() {
183 Ok(())
184 } else {
185 Err(from_glib_full(error))
186 }
187 }
188 }
189
190 #[doc(alias = "gst_vulkan_full_screen_quad_set_output_buffer")]
191 fn set_output_buffer(&self, buffer: Option<&gst::Buffer>) -> Result<(), glib::Error> {
192 unsafe {
193 let mut error = std::ptr::null_mut();
194 let is_ok = ffi::gst_vulkan_full_screen_quad_set_output_buffer(
195 self.as_ref().to_glib_none().0,
196 buffer.to_glib_none().0,
197 &mut error,
198 );
199 debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
200 if error.is_null() {
201 Ok(())
202 } else {
203 Err(from_glib_full(error))
204 }
205 }
206 }
207
208 #[doc(alias = "gst_vulkan_full_screen_quad_set_shaders")]
209 fn set_shaders(&self, vert: &VulkanHandle, frag: &VulkanHandle) -> bool {
210 unsafe {
211 from_glib(ffi::gst_vulkan_full_screen_quad_set_shaders(
212 self.as_ref().to_glib_none().0,
213 vert.to_glib_none().0,
214 frag.to_glib_none().0,
215 ))
216 }
217 }
218
219 #[doc(alias = "gst_vulkan_full_screen_quad_set_uniform_buffer")]
220 fn set_uniform_buffer(&self, uniforms: &gst::Memory) -> Result<(), glib::Error> {
221 unsafe {
222 let mut error = std::ptr::null_mut();
223 let is_ok = ffi::gst_vulkan_full_screen_quad_set_uniform_buffer(
224 self.as_ref().to_glib_none().0,
225 uniforms.to_glib_none().0,
226 &mut error,
227 );
228 debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
229 if error.is_null() {
230 Ok(())
231 } else {
232 Err(from_glib_full(error))
233 }
234 }
235 }
236
237 #[doc(alias = "gst_vulkan_full_screen_quad_set_vertex_buffer")]
238 fn set_vertex_buffer(&self, vertices: &gst::Memory) -> Result<(), glib::Error> {
239 unsafe {
240 let mut error = std::ptr::null_mut();
241 let is_ok = ffi::gst_vulkan_full_screen_quad_set_vertex_buffer(
242 self.as_ref().to_glib_none().0,
243 vertices.to_glib_none().0,
244 &mut error,
245 );
246 debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
247 if error.is_null() {
248 Ok(())
249 } else {
250 Err(from_glib_full(error))
251 }
252 }
253 }
254
255 #[doc(alias = "gst_vulkan_full_screen_quad_submit")]
256 fn submit(&self, cmd: VulkanCommandBuffer, fence: &mut VulkanFence) -> Result<(), glib::Error> {
257 unsafe {
258 let mut error = std::ptr::null_mut();
259 let is_ok = ffi::gst_vulkan_full_screen_quad_submit(
260 self.as_ref().to_glib_none().0,
261 cmd.into_glib_ptr(),
262 fence.to_glib_none_mut().0,
263 &mut error,
264 );
265 debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
266 if error.is_null() {
267 Ok(())
268 } else {
269 Err(from_glib_full(error))
270 }
271 }
272 }
273}
274
275impl<O: IsA<VulkanFullScreenQuad>> VulkanFullScreenQuadExt for O {}