pub struct CVMetalBufferCache { /* private fields */ }CVMetalBufferCache only.Expand description
Implementations§
Source§impl CVMetalBufferCache
impl CVMetalBufferCache
Sourcepub unsafe fn create(
allocator: Option<&CFAllocator>,
cache_attributes: Option<&CFDictionary>,
metal_device: &ProtocolObject<dyn MTLDevice>,
cache_out: NonNull<*mut CVMetalBufferCache>,
) -> CVReturn
Available on crate feature CVReturn and crate feature objc2 and crate feature objc2-metal and non-watchOS only.
pub unsafe fn create( allocator: Option<&CFAllocator>, cache_attributes: Option<&CFDictionary>, metal_device: &ProtocolObject<dyn MTLDevice>, cache_out: NonNull<*mut CVMetalBufferCache>, ) -> CVReturn
CVReturn and crate feature objc2 and crate feature objc2-metal and non-watchOS only.Creates a new Buffer Cache.
Parameter allocator: The CFAllocatorRef to use for allocating the cache. May be NULL.
Parameter cacheAttributes: A CFDictionaryRef containing the attributes of the cache itself. May be NULL.
Parameter metalDevice: The Metal device for which the buffer objects will be created.
Parameter cacheOut: The newly created buffer cache will be placed here
Returns: Returns kCVReturnSuccess on success
§Safety
cache_attributesgenerics must be of the correct type.cache_outmust be a valid pointer.
Sourcepub unsafe fn create_buffer_from_image(
allocator: Option<&CFAllocator>,
buffer_cache: &CVMetalBufferCache,
image_buffer: &CVImageBuffer,
buffer_out: NonNull<*mut CVMetalBuffer>,
) -> CVReturn
Available on crate features CVBuffer and CVImageBuffer and CVMetalBuffer and CVReturn only.
pub unsafe fn create_buffer_from_image( allocator: Option<&CFAllocator>, buffer_cache: &CVMetalBufferCache, image_buffer: &CVImageBuffer, buffer_out: NonNull<*mut CVMetalBuffer>, ) -> CVReturn
CVBuffer and CVImageBuffer and CVMetalBuffer and CVReturn only.Creates a CVMetalBuffer object from an existing CVImageBuffer
Parameter allocator: The CFAllocatorRef to use for allocating the CVMetalBuffer object. May be NULL.
Parameter bufferCache: The buffer cache object that will manage the buffer.
Parameter buffer: The CVImageBuffer that you want to create a CVMetalBuffer from.
Parameter bufferOut: The newly created buffer object will be placed here.
Returns: Returns kCVReturnSuccess on success
Creates or returns a cached CVMetalBuffer object mapped to the CVImageBuffer. This creates a live binding between the CVImageBuffer and underlying CVMetalBuffer buffer object.
IMPORTANT NOTE: Clients should retain CVMetalBuffer objects until they are done using the images in them. Retaining a CVMetalBuffer is your way to indicate that you’re still using the image in the buffer, and that it should not be recycled yet.
§Safety
buffer_out must be a valid pointer.
Sourcepub fn flush(&self, options: CVOptionFlags)
Available on crate feature CVBase only.
pub fn flush(&self, options: CVOptionFlags)
CVBase only.Performs internal housekeeping/recycling operations
This call must be made periodically to give the buffer cache a chance to do internal housekeeping operations.
Parameter bufferCache: The buffer cache object to flush
Parameter options: Currently unused, set to 0.
Methods from Deref<Target = CFType>§
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: ConcreteType,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: ConcreteType,
Attempt to downcast the type to that of type T.
This is the reference-variant. Use CFRetained::downcast if you
want to convert a retained type. See also ConcreteType for more
details on which types support being converted to.
Sourcepub fn retain_count(&self) -> usize
pub fn retain_count(&self) -> usize
Get the reference count of the object.
This function may be useful for debugging. You normally do not use this function otherwise.
Beware that some things (like CFNumbers, small CFStrings etc.) may
not have a normal retain count for optimization purposes, and can
return usize::MAX in that case.
Trait Implementations§
Source§impl AsRef<AnyObject> for CVMetalBufferCache
impl AsRef<AnyObject> for CVMetalBufferCache
Source§impl AsRef<CFType> for CVMetalBufferCache
impl AsRef<CFType> for CVMetalBufferCache
Source§impl AsRef<CVMetalBufferCache> for CVMetalBufferCache
impl AsRef<CVMetalBufferCache> for CVMetalBufferCache
Source§impl Borrow<AnyObject> for CVMetalBufferCache
impl Borrow<AnyObject> for CVMetalBufferCache
Source§impl Borrow<CFType> for CVMetalBufferCache
impl Borrow<CFType> for CVMetalBufferCache
Source§impl ConcreteType for CVMetalBufferCache
impl ConcreteType for CVMetalBufferCache
Source§impl Debug for CVMetalBufferCache
impl Debug for CVMetalBufferCache
Source§impl Deref for CVMetalBufferCache
impl Deref for CVMetalBufferCache
Source§impl Hash for CVMetalBufferCache
impl Hash for CVMetalBufferCache
Source§impl Message for CVMetalBufferCache
impl Message for CVMetalBufferCache
Source§impl PartialEq for CVMetalBufferCache
impl PartialEq for CVMetalBufferCache
Source§impl RefEncode for CVMetalBufferCache
impl RefEncode for CVMetalBufferCache
Source§const ENCODING_REF: Encoding
const ENCODING_REF: Encoding
Source§impl Type for CVMetalBufferCache
impl Type for CVMetalBufferCache
Source§fn retain(&self) -> CFRetained<Self>where
Self: Sized,
fn retain(&self) -> CFRetained<Self>where
Self: Sized,
Source§fn as_concrete_TypeRef(&self) -> &Self
fn as_concrete_TypeRef(&self) -> &Self
core-foundation crate.Source§unsafe fn wrap_under_get_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
unsafe fn wrap_under_get_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
core-foundation crate. Read moreSource§fn as_CFTypeRef(&self) -> &CFType
fn as_CFTypeRef(&self) -> &CFType
core-foundation crate.Source§unsafe fn wrap_under_create_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
unsafe fn wrap_under_create_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
core-foundation crate. Read more