gstreamer_vulkan/auto/
vulkan_descriptor_cache.rs1use crate::{ffi, VulkanDescriptorSet, VulkanHandlePool};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10 #[doc(alias = "GstVulkanDescriptorCache")]
16 pub struct VulkanDescriptorCache(Object<ffi::GstVulkanDescriptorCache, ffi::GstVulkanDescriptorCacheClass>) @extends VulkanHandlePool, gst::Object;
17
18 match fn {
19 type_ => || ffi::gst_vulkan_descriptor_cache_get_type(),
20 }
21}
22
23impl VulkanDescriptorCache {
24 pub const NONE: Option<&'static VulkanDescriptorCache> = None;
25}
26
27unsafe impl Send for VulkanDescriptorCache {}
28unsafe impl Sync for VulkanDescriptorCache {}
29
30pub trait VulkanDescriptorCacheExt: IsA<VulkanDescriptorCache> + 'static {
36 #[doc(alias = "gst_vulkan_descriptor_cache_acquire")]
41 fn acquire(&self) -> Result<VulkanDescriptorSet, glib::Error> {
42 unsafe {
43 let mut error = std::ptr::null_mut();
44 let ret = ffi::gst_vulkan_descriptor_cache_acquire(
45 self.as_ref().to_glib_none().0,
46 &mut error,
47 );
48 if error.is_null() {
49 Ok(from_glib_full(ret))
50 } else {
51 Err(from_glib_full(error))
52 }
53 }
54 }
55}
56
57impl<O: IsA<VulkanDescriptorCache>> VulkanDescriptorCacheExt for O {}