gstreamer_vulkan/
vulkan_full_screen_quad.rs1use crate::VulkanFullScreenQuad;
2
3use crate::traits::VulkanFullScreenQuadExt;
4
5use glib::prelude::*;
6use glib::translate::*;
7
8mod sealed {
9 pub trait Sealed {}
10 impl<T: super::IsA<super::VulkanFullScreenQuad>> Sealed for T {}
11}
12
13pub trait VulkanFullScreenQuadExtManual:
14 sealed::Sealed + IsA<VulkanFullScreenQuad> + 'static
15{
16 fn draw_into_output(&self, outbuf: &mut gst::BufferRef) -> Result<(), glib::Error> {
17 let out = unsafe { gst::Buffer::from_glib_borrow(outbuf.as_ptr()) };
18 self.set_output_buffer(Some(&out))?;
19 let ret = self.draw();
20 self.set_output_buffer(None)?;
21 ret
22 }
23}
24impl<O: IsA<VulkanFullScreenQuad>> VulkanFullScreenQuadExtManual for O {}