gstreamer_vulkan/
vulkan_full_screen_quad.rs

1use 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 {}