gstreamer_vulkan/auto/
flags.rs1use crate::ffi;
7use glib::{bitflags::bitflags, prelude::*, translate::*};
8
9bitflags! {
10 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
11 #[doc(alias = "GstVulkanDisplayType")]
12 pub struct VulkanDisplayType: u32 {
13 #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_NONE")]
15 const NONE = ffi::GST_VULKAN_DISPLAY_TYPE_NONE as _;
16 #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_XCB")]
18 const XCB = ffi::GST_VULKAN_DISPLAY_TYPE_XCB as _;
19 #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_WAYLAND")]
21 const WAYLAND = ffi::GST_VULKAN_DISPLAY_TYPE_WAYLAND as _;
22 #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_COCOA")]
24 const COCOA = ffi::GST_VULKAN_DISPLAY_TYPE_COCOA as _;
25 #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_IOS")]
27 const IOS = ffi::GST_VULKAN_DISPLAY_TYPE_IOS as _;
28 #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_WIN32")]
30 const WIN32 = ffi::GST_VULKAN_DISPLAY_TYPE_WIN32 as _;
31 #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_ANDROID")]
32 const ANDROID = ffi::GST_VULKAN_DISPLAY_TYPE_ANDROID as _;
33 #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_ANY")]
35 const ANY = ffi::GST_VULKAN_DISPLAY_TYPE_ANY as _;
36 }
37}
38
39impl VulkanDisplayType {
40 #[doc(alias = "gst_vulkan_display_type_to_extension_string")]
41 pub fn to_extension_string(self) -> Option<glib::GString> {
42 assert_initialized_main_thread!();
43 unsafe {
44 from_glib_none(ffi::gst_vulkan_display_type_to_extension_string(
45 self.into_glib(),
46 ))
47 }
48 }
49}
50
51#[doc(hidden)]
52impl IntoGlib for VulkanDisplayType {
53 type GlibType = ffi::GstVulkanDisplayType;
54
55 #[inline]
56 fn into_glib(self) -> ffi::GstVulkanDisplayType {
57 self.bits()
58 }
59}
60
61#[doc(hidden)]
62impl FromGlib<ffi::GstVulkanDisplayType> for VulkanDisplayType {
63 #[inline]
64 unsafe fn from_glib(value: ffi::GstVulkanDisplayType) -> Self {
65 skip_assert_initialized!();
66 Self::from_bits_truncate(value)
67 }
68}
69
70impl StaticType for VulkanDisplayType {
71 #[inline]
72 #[doc(alias = "gst_vulkan_display_type_get_type")]
73 fn static_type() -> glib::Type {
74 unsafe { from_glib(ffi::gst_vulkan_display_type_get_type()) }
75 }
76}
77
78impl glib::HasParamSpec for VulkanDisplayType {
79 type ParamSpec = glib::ParamSpecFlags;
80 type SetValue = Self;
81 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
82
83 fn param_spec_builder() -> Self::BuilderFn {
84 Self::ParamSpec::builder
85 }
86}
87
88impl glib::value::ValueType for VulkanDisplayType {
89 type Type = Self;
90}
91
92unsafe impl<'a> glib::value::FromValue<'a> for VulkanDisplayType {
93 type Checker = glib::value::GenericValueTypeChecker<Self>;
94
95 #[inline]
96 unsafe fn from_value(value: &'a glib::Value) -> Self {
97 skip_assert_initialized!();
98 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
99 }
100}
101
102impl ToValue for VulkanDisplayType {
103 #[inline]
104 fn to_value(&self) -> glib::Value {
105 let mut value = glib::Value::for_value_type::<Self>();
106 unsafe {
107 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
108 }
109 value
110 }
111
112 #[inline]
113 fn value_type(&self) -> glib::Type {
114 Self::static_type()
115 }
116}
117
118impl From<VulkanDisplayType> for glib::Value {
119 #[inline]
120 fn from(v: VulkanDisplayType) -> Self {
121 skip_assert_initialized!();
122 ToValue::to_value(&v)
123 }
124}