objc2_core_graphics/generated/
CGRenderingBufferProvider.rs1use core::cell::UnsafeCell;
4use core::ffi::*;
5use core::marker::{PhantomData, PhantomPinned};
6use core::ptr::NonNull;
7#[cfg(feature = "objc2")]
8use objc2::__framework_prelude::*;
9use objc2_core_foundation::*;
10
11use crate::*;
12
13#[doc(alias = "CGRenderingBufferProviderRef")]
15#[repr(C)]
16pub struct CGRenderingBufferProvider {
17 inner: [u8; 0],
18 _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
19}
20
21cf_type!(
22 unsafe impl CGRenderingBufferProvider {}
23);
24#[cfg(feature = "objc2")]
25cf_objc2_type!(
26 unsafe impl RefEncode<"CGRenderingBufferProvider"> for CGRenderingBufferProvider {}
27);
28
29impl CGRenderingBufferProvider {
30 #[doc(alias = "CGRenderingBufferProviderCreate")]
35 #[cfg(feature = "block2")]
36 #[inline]
37 pub unsafe fn new(
38 info: *mut c_void,
39 size: usize,
40 lock_pointer: &block2::DynBlock<dyn Fn(*mut c_void) -> *mut c_void>,
41 unlock_pointer: Option<&block2::DynBlock<dyn Fn(*mut c_void, NonNull<c_void>)>>,
42 release_info: Option<&block2::DynBlock<dyn Fn(*mut c_void)>>,
43 ) -> Option<CFRetained<CGRenderingBufferProvider>> {
44 extern "C-unwind" {
45 fn CGRenderingBufferProviderCreate(
46 info: *mut c_void,
47 size: usize,
48 lock_pointer: &block2::DynBlock<dyn Fn(*mut c_void) -> *mut c_void>,
49 unlock_pointer: Option<&block2::DynBlock<dyn Fn(*mut c_void, NonNull<c_void>)>>,
50 release_info: Option<&block2::DynBlock<dyn Fn(*mut c_void)>>,
51 ) -> Option<NonNull<CGRenderingBufferProvider>>;
52 }
53 let ret = unsafe {
54 CGRenderingBufferProviderCreate(info, size, lock_pointer, unlock_pointer, release_info)
55 };
56 ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
57 }
58
59 #[doc(alias = "CGRenderingBufferProviderCreateWithCFData")]
60 #[inline]
61 pub fn with_cf_data(data: &CFMutableData) -> Option<CFRetained<CGRenderingBufferProvider>> {
62 extern "C-unwind" {
63 fn CGRenderingBufferProviderCreateWithCFData(
64 data: &CFMutableData,
65 ) -> Option<NonNull<CGRenderingBufferProvider>>;
66 }
67 let ret = unsafe { CGRenderingBufferProviderCreateWithCFData(data) };
68 ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
69 }
70
71 #[doc(alias = "CGRenderingBufferProviderGetSize")]
72 #[inline]
73 pub fn size(&self) -> usize {
74 extern "C-unwind" {
75 fn CGRenderingBufferProviderGetSize(provider: &CGRenderingBufferProvider) -> usize;
76 }
77 unsafe { CGRenderingBufferProviderGetSize(self) }
78 }
79}
80
81#[inline]
82pub extern "C-unwind" fn CGRenderingBufferLockBytePtr(
83 provider: &CGRenderingBufferProvider,
84) -> *mut c_void {
85 extern "C-unwind" {
86 fn CGRenderingBufferLockBytePtr(provider: &CGRenderingBufferProvider) -> *mut c_void;
87 }
88 unsafe { CGRenderingBufferLockBytePtr(provider) }
89}
90
91#[inline]
92pub extern "C-unwind" fn CGRenderingBufferUnlockBytePtr(provider: &CGRenderingBufferProvider) {
93 extern "C-unwind" {
94 fn CGRenderingBufferUnlockBytePtr(provider: &CGRenderingBufferProvider);
95 }
96 unsafe { CGRenderingBufferUnlockBytePtr(provider) }
97}
98
99unsafe impl ConcreteType for CGRenderingBufferProvider {
100 #[doc(alias = "CGRenderingBufferProviderGetTypeID")]
101 #[inline]
102 fn type_id() -> CFTypeID {
103 extern "C-unwind" {
104 fn CGRenderingBufferProviderGetTypeID() -> CFTypeID;
105 }
106 unsafe { CGRenderingBufferProviderGetTypeID() }
107 }
108}
109
110#[cfg(feature = "block2")]
111#[deprecated = "renamed to `CGRenderingBufferProvider::new`"]
112#[inline]
113pub unsafe extern "C-unwind" fn CGRenderingBufferProviderCreate(
114 info: *mut c_void,
115 size: usize,
116 lock_pointer: &block2::DynBlock<dyn Fn(*mut c_void) -> *mut c_void>,
117 unlock_pointer: Option<&block2::DynBlock<dyn Fn(*mut c_void, NonNull<c_void>)>>,
118 release_info: Option<&block2::DynBlock<dyn Fn(*mut c_void)>>,
119) -> Option<CFRetained<CGRenderingBufferProvider>> {
120 extern "C-unwind" {
121 fn CGRenderingBufferProviderCreate(
122 info: *mut c_void,
123 size: usize,
124 lock_pointer: &block2::DynBlock<dyn Fn(*mut c_void) -> *mut c_void>,
125 unlock_pointer: Option<&block2::DynBlock<dyn Fn(*mut c_void, NonNull<c_void>)>>,
126 release_info: Option<&block2::DynBlock<dyn Fn(*mut c_void)>>,
127 ) -> Option<NonNull<CGRenderingBufferProvider>>;
128 }
129 let ret = unsafe {
130 CGRenderingBufferProviderCreate(info, size, lock_pointer, unlock_pointer, release_info)
131 };
132 ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
133}
134
135#[deprecated = "renamed to `CGRenderingBufferProvider::with_cf_data`"]
136#[inline]
137pub extern "C-unwind" fn CGRenderingBufferProviderCreateWithCFData(
138 data: &CFMutableData,
139) -> Option<CFRetained<CGRenderingBufferProvider>> {
140 extern "C-unwind" {
141 fn CGRenderingBufferProviderCreateWithCFData(
142 data: &CFMutableData,
143 ) -> Option<NonNull<CGRenderingBufferProvider>>;
144 }
145 let ret = unsafe { CGRenderingBufferProviderCreateWithCFData(data) };
146 ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
147}
148
149#[deprecated = "renamed to `CGRenderingBufferProvider::size`"]
150#[inline]
151pub extern "C-unwind" fn CGRenderingBufferProviderGetSize(
152 provider: &CGRenderingBufferProvider,
153) -> usize {
154 extern "C-unwind" {
155 fn CGRenderingBufferProviderGetSize(provider: &CGRenderingBufferProvider) -> usize;
156 }
157 unsafe { CGRenderingBufferProviderGetSize(provider) }
158}