Skip to main content

gstreamer_vulkan/auto/
vulkan_display.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::{VulkanDisplayType, VulkanInstance, VulkanWindow, ffi};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10    #[doc(alias = "GstVulkanDisplay")]
11    pub struct VulkanDisplay(Object<ffi::GstVulkanDisplay, ffi::GstVulkanDisplayClass>) @extends gst::Object;
12
13    match fn {
14        type_ => || ffi::gst_vulkan_display_get_type(),
15    }
16}
17
18impl VulkanDisplay {
19    pub const NONE: Option<&'static VulkanDisplay> = None;
20
21    #[doc(alias = "gst_vulkan_display_new")]
22    pub fn new(instance: &impl IsA<VulkanInstance>) -> VulkanDisplay {
23        skip_assert_initialized!();
24        unsafe {
25            from_glib_full(ffi::gst_vulkan_display_new(
26                instance.as_ref().to_glib_none().0,
27            ))
28        }
29    }
30
31    #[doc(alias = "gst_vulkan_display_new_with_type")]
32    #[doc(alias = "new_with_type")]
33    pub fn with_type(
34        instance: &impl IsA<VulkanInstance>,
35        type_: VulkanDisplayType,
36    ) -> Option<VulkanDisplay> {
37        skip_assert_initialized!();
38        unsafe {
39            from_glib_full(ffi::gst_vulkan_display_new_with_type(
40                instance.as_ref().to_glib_none().0,
41                type_.into_glib(),
42            ))
43        }
44    }
45
46    #[doc(alias = "gst_vulkan_display_choose_type")]
47    pub fn choose_type(instance: &impl IsA<VulkanInstance>) -> VulkanDisplayType {
48        skip_assert_initialized!();
49        unsafe {
50            from_glib(ffi::gst_vulkan_display_choose_type(
51                instance.as_ref().to_glib_none().0,
52            ))
53        }
54    }
55
56    #[doc(alias = "gst_vulkan_display_handle_context_query")]
57    pub fn handle_context_query(
58        element: &impl IsA<gst::Element>,
59        query: &gst::Query,
60        display: Option<&impl IsA<VulkanDisplay>>,
61    ) -> bool {
62        assert_initialized_main_thread!();
63        unsafe {
64            from_glib(ffi::gst_vulkan_display_handle_context_query(
65                element.as_ref().to_glib_none().0,
66                query.to_glib_none().0,
67                display.map(|p| p.as_ref()).to_glib_none().0,
68            ))
69        }
70    }
71
72    //#[doc(alias = "gst_vulkan_display_run_context_query")]
73    //pub fn run_context_query(element: &impl IsA<gst::Element>, display: impl IsA<VulkanDisplay>) -> bool {
74    //    unsafe { TODO: call ffi:gst_vulkan_display_run_context_query() }
75    //}
76}
77
78unsafe impl Send for VulkanDisplay {}
79unsafe impl Sync for VulkanDisplay {}
80
81pub trait VulkanDisplayExt: IsA<VulkanDisplay> + 'static {
82    #[doc(alias = "gst_vulkan_display_create_window")]
83    fn create_window(&self) -> Option<VulkanWindow> {
84        unsafe {
85            from_glib_full(ffi::gst_vulkan_display_create_window(
86                self.as_ref().to_glib_none().0,
87            ))
88        }
89    }
90
91    //#[doc(alias = "gst_vulkan_display_find_window")]
92    //fn find_window(&self, data: /*Unimplemented*/Option<Basic: Pointer>, compare_func: /*Unimplemented*/FnMut(/*Unimplemented*/Option<Basic: Pointer>) -> i32) -> Option<VulkanWindow> {
93    //    unsafe { TODO: call ffi:gst_vulkan_display_find_window() }
94    //}
95
96    //#[doc(alias = "gst_vulkan_display_get_handle")]
97    //#[doc(alias = "get_handle")]
98    //fn handle(&self) -> /*Unimplemented*/Option<Basic: Pointer> {
99    //    unsafe { TODO: call ffi:gst_vulkan_display_get_handle() }
100    //}
101
102    #[doc(alias = "gst_vulkan_display_get_handle_type")]
103    #[doc(alias = "get_handle_type")]
104    fn handle_type(&self) -> VulkanDisplayType {
105        unsafe {
106            from_glib(ffi::gst_vulkan_display_get_handle_type(
107                self.as_ref().to_glib_none().0,
108            ))
109        }
110    }
111
112    #[doc(alias = "gst_vulkan_display_remove_window")]
113    fn remove_window(&self, window: &impl IsA<VulkanWindow>) -> bool {
114        unsafe {
115            from_glib(ffi::gst_vulkan_display_remove_window(
116                self.as_ref().to_glib_none().0,
117                window.as_ref().to_glib_none().0,
118            ))
119        }
120    }
121}
122
123impl<O: IsA<VulkanDisplay>> VulkanDisplayExt for O {}