Skip to main content

gstreamer_vulkan/auto/
vulkan_full_screen_quad.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// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5
6use 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_blend_factors")]
133    //fn set_blend_factors(&self, src_blend_factor: /*Ignored*/&vulkan::BlendFactor, dst_blend_factor: /*Ignored*/&vulkan::BlendFactor, src_alpha_blend_factor: /*Ignored*/&vulkan::BlendFactor, dst_alpha_blend_factor: /*Ignored*/&vulkan::BlendFactor) {
134    //    unsafe { TODO: call ffi:gst_vulkan_full_screen_quad_set_blend_factors() }
135    //}
136
137    //#[doc(alias = "gst_vulkan_full_screen_quad_set_blend_operation")]
138    //fn set_blend_operation(&self, colour_blend_op: /*Ignored*/&vulkan::BlendOp, alpha_blend_op: /*Ignored*/&vulkan::BlendOp) {
139    //    unsafe { TODO: call ffi:gst_vulkan_full_screen_quad_set_blend_operation() }
140    //}
141
142    #[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 {}