// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // DO NOT EDIT use crate::GLContext; use glib::object::IsA; use glib::translate::*; use std::mem; glib::glib_wrapper! { pub struct GLFramebuffer(Object) @extends gst::Object; match fn { get_type => || ffi::gst_gl_framebuffer_get_type(), } } impl GLFramebuffer { pub fn new>(context: &P) -> GLFramebuffer { skip_assert_initialized!(); unsafe { from_glib_full(ffi::gst_gl_framebuffer_new( context.as_ref().to_glib_none().0, )) } } pub fn with_default_depth>( context: &P, width: u32, height: u32, ) -> GLFramebuffer { skip_assert_initialized!(); unsafe { from_glib_none(ffi::gst_gl_framebuffer_new_with_default_depth( context.as_ref().to_glib_none().0, width, height, )) } } } unsafe impl Send for GLFramebuffer {} unsafe impl Sync for GLFramebuffer {} pub const NONE_GL_FRAMEBUFFER: Option<&GLFramebuffer> = None; pub trait GLFramebufferExt: 'static { //fn attach(&self, attachment_point: u32, mem: /*Ignored*/&mut GLBaseMemory); fn bind(&self); //fn draw_to_texture(&self, mem: /*Ignored*/&mut GLMemory, func: /*Unimplemented*/FnMut(/*Unimplemented*/Option) -> bool, user_data: /*Unimplemented*/Option) -> bool; fn get_effective_dimensions(&self) -> (u32, u32); fn get_id(&self) -> u32; } impl> GLFramebufferExt for O { //fn attach(&self, attachment_point: u32, mem: /*Ignored*/&mut GLBaseMemory) { // unsafe { TODO: call ffi:gst_gl_framebuffer_attach() } //} fn bind(&self) { unsafe { ffi::gst_gl_framebuffer_bind(self.as_ref().to_glib_none().0); } } //fn draw_to_texture(&self, mem: /*Ignored*/&mut GLMemory, func: /*Unimplemented*/FnMut(/*Unimplemented*/Option) -> bool, user_data: /*Unimplemented*/Option) -> bool { // unsafe { TODO: call ffi:gst_gl_framebuffer_draw_to_texture() } //} fn get_effective_dimensions(&self) -> (u32, u32) { unsafe { let mut width = mem::MaybeUninit::uninit(); let mut height = mem::MaybeUninit::uninit(); ffi::gst_gl_framebuffer_get_effective_dimensions( self.as_ref().to_glib_none().0, width.as_mut_ptr(), height.as_mut_ptr(), ); let width = width.assume_init(); let height = height.assume_init(); (width, height) } } fn get_id(&self) -> u32 { unsafe { ffi::gst_gl_framebuffer_get_id(self.as_ref().to_glib_none().0) } } }