| Framework | QuartzCore/QuartzCore.h |
| Companion guide | |
| Declared in | CVBase.h CVBuffer.h CVDisplayLink.h CVHostTime.h CVImageBuffer.h CVOpenGLBuffer.h CVOpenGLBufferPool.h CVOpenGLTexture.h CVOpenGLTextureCache.h CVPixelBuffer.h CVPixelBufferPool.h CVPixelFormatDescription.h CVReturn.h |
Core Video is a new pipeline model for digital video in Mac OS X. Partitioning the processing into discrete steps makes it simpler for developers to access and manipulate individual frames without having to worry about translating between data types (QuickTime, OpenGL, and so on) or display synchronization issues.
Core Video is available in:
Mac OS X v10.4 and later
Mac OS X v10.3 when QuickTime 7.0 or later is installed
Core Video buffer functions operate on all Core Video buffer types, including pixel buffers and OpenGL buffers, as well as OpenGL textures.
CVBufferGetAttachment
CVBufferGetAttachments
CVBufferPropagateAttachments
CVBufferRelease
CVBufferRemoveAllAttachments
CVBufferRemoveAttachment
CVBufferRetain
CVBufferSetAttachment
CVBufferSetAttachments
The main purpose of the CoreVideo display link to provide a separate high-priority thread to notify your application when a given display will need each frame. How often a frame is requested is based on the refresh rate of the display device currently associated with the display link. A CoreVideo display link is represented in code by the CVDisplayLinkRef type. The display link API uses the Core Foundation class system internally to provide reference counting behaviour and other useful properties.
CVDisplayLinkCreateWithCGDisplay
CVDisplayLinkCreateWithActiveCGDisplays
CVDisplayLinkCreateWithCGDisplays
CVDisplayLinkCreateWithOpenGLDisplayMask
CVDisplayLinkGetActualOutputVideoRefreshPeriod
CVDisplayLinkGetCurrentCGDisplay
CVDisplayLinkGetCurrentTime
CVDisplayLinkGetNominalOutputVideoRefreshPeriod
CVDisplayLinkGetOutputVideoLatency
CVDisplayLinkGetTypeID
CVDisplayLinkIsRunning
CVDisplayLinkRelease
CVDisplayLinkRetain
CVDisplayLinkSetCurrentCGDisplay
CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext
CVDisplayLinkSetOutputCallback
CVDisplayLinkStart
CVDisplayLinkStop
CVDisplayLinkTranslateTime
The functions in this section operate on Core Video buffers derived from the CVImageBuffer abstract type (CVImageBufferRef ); specifically, pixel buffers, OpenGL buffers, and OpenGL textures.
CVImageBufferGetCleanRect
CVImageBufferGetColorSpace
CVImageBufferGetDisplaySize
CVImageBufferGetEncodedSize
The Core Video OpenGL buffer (type CVOpenGLBufferRef is a wrapper around the standard OpenGL pbuffer.
CVOpenGLBufferAttach
CVOpenGLBufferCreate
CVOpenGLBufferGetAttributes
CVOpenGLBufferGetTypeID
CVOpenGLBufferRelease
CVOpenGLBufferRetain
An OpenGL buffer pool is a utility object for managing a set of OpenGL buffer objects for recycling.
CVOpenGLBufferPoolCreate
CVOpenGLBufferPoolCreateOpenGLBuffer
CVOpenGLBufferPoolGetAttributes
CVOpenGLBufferPoolGetOpenGLBufferAttributes
CVOpenGLBufferPoolGetTypeID
CVOpenGLBufferPoolRelease
CVOpenGLBufferPoolRetain
The Core Video OpenGL texture is a wrapper around the standard OpenGL texture type.
CVOpenGLTextureGetCleanTexCoords
CVOpenGLTextureGetName
CVOpenGLTextureGetTarget
CVOpenGLTextureGetTypeID
CVOpenGLTextureIsFlipped
CVOpenGLTextureRelease
CVOpenGLTextureRetain
CVOpenGLTextureCacheCreate
CVOpenGLTextureCacheCreateTextureFromImage
CVOpenGLTextureCacheFlush
CVOpenGLTextureCacheGetTypeID
CVOpenGLTextureCacheRelease
CVOpenGLTextureCacheRetain
A pixel buffer stores an image in main memory
CVPixelBufferCreate
CVPixelBufferCreateResolvedAttributesDictionary
CVPixelBufferCreateWithBytes
CVPixelBufferCreateWithPlanarBytes
CVPixelBufferFillExtendedPixels
CVPixelBufferGetBaseAddress
CVPixelBufferGetBaseAddressOfPlane
CVPixelBufferGetBytesPerRow
CVPixelBufferGetBytesPerRowOfPlane
CVPixelBufferGetDataSize
CVPixelBufferGetExtendedPixels
CVPixelBufferGetHeight
CVPixelBufferGetHeightOfPlane
CVPixelBufferGetPixelFormatType
CVPixelBufferGetPlaneCount
CVPixelBufferGetTypeID
CVPixelBufferGetWidth
CVPixelBufferGetWidthOfPlane
CVPixelBufferIsPlanar
CVPixelBufferLockBaseAddress
CVPixelBufferRelease
CVPixelBufferRetain
CVPixelBufferUnlockBaseAddress
CVPixelBufferPoolCreate
CVPixelBufferPoolCreatePixelBuffer
CVPixelBufferPoolGetAttributes
CVPixelBufferPoolGetPixelBufferAttributes
CVPixelBufferPoolGetTypeID
CVPixelBufferPoolRelease
CVPixelBufferPoolRetain
Used only if you are defining a custom pixel format.
CVPixelFormatDescriptionRegisterDescriptionWithPixelFormatType
CVPixelFormatDescriptionCreateWithPixelFormatType
CVPixelFormatDescriptionArrayCreateWithAllPixelFormatTypes
Returns a specific attachment of a Core Video buffer.
CFTypeRef CVBufferGetAttachment ( CVBufferRef buffer, CFStringRef key, CVAttachmentMode *attachmentMode );
The Core Video buffer whose attachment you want to obtain.
A key in the form of a Core Foundation string identifying the desired attachment.
On return, attachmentMode points to the mode of the attachment. See “CVBuffer Attachment Modes” for possible values. If the attachment mode is not defined, this parameter returns NULL.
If found, the specified attachment.
You can attach any Core Foundation object to a Core Video buffer to store additional information by calling CVBufferSetAttachment or CVBufferSetAttachments.
You can find predefined attachment keys in “CVBuffer Attachment Keys” and “Image Buffer Attachment Keys.”
CVBuffer.h
Returns all attachments of a Core Video buffer.
CFDictionaryRef CVBufferGetAttachments ( CVBufferRef buffer, CVAttachmentMode attachmentMode );
The Core Video buffer whose attachments you want to obtain.
The mode of the attachments you want to obtain. See “CVBuffer Attachment Modes” for possible values.
A Core Foundation dictionary with all buffer attachments identified by keys. If no attachment is present, the dictionary is empty. Returns NULL for an invalid attachment mode.
CVBufferGetAttachments is a convenience call that returns all attachments with their corresponding keys in a Core Foundation dictionary.
You can find predefined attachment keys in “CVBuffer Attachment Keys” and “Image Buffer Attachment Keys.”
CVBuffer.h
Copies all propagatable attachments from one Core Video buffer to another.
void CVBufferPropagateAttachments ( CVBufferRef sourceBuffer, CVBufferRef destinationBuffer );
The buffer to copy attachments from.
The buffer to copy attachments to.
CVBufferPropagateAttachments is a convenience call that copies all attachments with a mode of kCVAttachmentMode_ShouldPropagate from one buffer to another.
CVBuffer.hReleases a Core Video buffer.
void CVBufferRelease ( CVBufferRef buffer );
The Core Video buffer that you want to release.
Like CFRelease CVBufferRelease decrements the retain count of a Core Video buffer. If that count consequently becomes zero the memory allocated to the object is deallocated and the object is destroyed. Unlike CFRelease, you can pass NULL to CVBufferRelease without causing a crash.
CVBuffer.hRemoves all attachments of a Core Video buffer.
void CVBufferRemoveAllAttachments ( CVBufferRef buffer );
The Core Video buffer whose attachments you want to remove.
CVBufferRemoveAllAttachments removes all attachments of a buffer and decrements their reference counts.
CVBuffer.hRemoves a specific attachment of a Core Video buffer.
void CVBufferRemoveAttachment ( CVBufferRef buffer, CFStringRef key );
The Core Video buffer containing the attachment to remove.
A key in the form of a Core Foundation string identifying the desired attachment.
CVBufferRemoveAttachment removes an attachment identified by a key. If found the attachment is removed and the retain count decremented.
You can find predefined attachment keys in “CVBuffer Attachment Keys” and “Image Buffer Attachment Keys.”
CVBuffer.hRetains a Core Video buffer.
CVBufferRef CVBufferRetain ( CVBufferRef buffer );
The Core Video buffer that you want to retain.
For convenience, the same Core Video buffer you wanted to retain.
Like CFRetain, CVBufferRetain increments the retain count of a Core Video buffer. Unlike CFRetain, you can pass NULL to CVBufferRetain without causing a crash.
CVBuffer.h
Sets or adds an attachment of a Core Video buffer.
void CVBufferSetAttachment ( CVBufferRef buffer, CFStringRef key, CFTypeRef value, CVAttachmentMode attachmentMode );
The Core Video buffer to which to add or set the attachment.
The key, in the form of a Core Foundation string, identifying the desired attachment.
The attachment in the form of a Core Foundation object. If this parameter is NULL, the function returns an error.
Specifies the attachment mode for this attachment. See “CVBuffer Attachment Modes” for possible values. Any given attachment key may exist in only one mode at a time.
You can attach any Core Foundation object to a Core Video buffer to store additional information. If the key doesn't currently exist for the buffer object when you call this function, the new attachment will be added. If the key does exist, the existing attachment will be replaced. In both cases the retain count of the attachment will be incremented. The value can be any CFType. You can find predefined attachment keys in “CVBuffer Attachment Keys” and “Image Buffer Attachment Keys.”
You can also set attachments when creating a buffer by specifying them in the kCVBufferPropagatedAttachmentsKey or kkCVBufferNonpropagatedAttachmentsKey attributes when creating the buffer.
To retrieve attachments, use the CVBufferGetAttachment or CVBufferGetAttachments functions.
CVBuffer.h
Sets a set of attachments for a Core Video buffer.
void CVBufferSetAttachments ( CVBufferRef buffer, CFDictionaryRef theAttachments, CVAttachmentMode attachmentMode );
The Core Video buffer to which to set the attachments.
The attachments to set, in the form of a Core Foundation dictionary array.
Specifies which attachment mode is desired for this attachment. A particular attachment key may only exist in a single mode at a time.
CVBufferSetAttachments is a convenience call that in turn calls CVBufferSetAttachment for each key and value in the given dictionary. All key-value pairs must be in the root level of the dictionary.
CVBuffer.hCreates a display link capable of being used with all active displays.
CVReturn CVDisplayLinkCreateWithActiveCGDisplays ( CVDisplayLinkRef *displayLinkOut );
On return, displayLinkOut points to the newly created display link.
A Core Video result code. See “Result Codes” for possible values.
CVDisplayLinkCreateWithActiveCGDisplays determines the displays actively used by the host computer and creates a display link compatible with all of them. For most applications, calling this function is the most convenient way to create a display link. After creation, you can assign the display link to any active display by calling CVDisplayLinkSetCurrentCGDisplay.
CVDisplayLink.hCreates a display link for a single display.
CVReturn CVDisplayLinkCreateWithCGDisplay ( CGDirectDisplayID displayID, CVDisplayLinkRef *displayLinkOut );
The Core Graphics ID of the target display.
On return, displayLinkOut points to the newly created display link.
A Core Video result code. See “Result Codes” for possible values.
Use this call to create a display link for a single display.
CVDisplayLink.hCreates a display link for an array of displays.
CVReturn CVDisplayLinkCreateWithCGDisplays ( CGDirectDisplayID *displayArray, CFIndex count, CVDisplayLinkRef *displayLinkOut );
A pointer to an array of Core Graphics display IDs representing all the active monitors you want to use with this display link.
The number of displays in the display array.
On return, displayLinkOut points to the newly created display link.
A Core Video result code. See “Result Codes” for possible values.
Use this call to create a display link for a set of displays identified by the Core Graphics display IDs.
CVDisplayLink.hCreates a display link from an OpenGL display mask.
CVReturn CVDisplayLinkCreateWithOpenGLDisplayMask ( CGOpenGLDisplayMask mask, CVDisplayLinkRef *displayLinkOut );
The OpenGL display mask describing the available displays.
On return, displayLinkOut points to the newly created display link.
A Core Video result code. See “Result Codes” for possible values.
Using this function avoids having to call the Core Graphics function CGOpenGLDisplayMaskToDisplayID.
CVDisplayLink.hRetrieves the actual output refresh period of a display as measured by the host time base.
double CVDisplayLinkGetActualOutputVideoRefreshPeriod ( CVDisplayLinkRef displayLink );
The display link to get the refresh period from.
A double-precision floating-point value representing the actual refresh period. This value may be zero if the device is not running or is otherwise unavailable.
This call returns the actual output refresh period (in seconds) as computed relative to the host time base.
CVDisplayLink.hGets the current display associated with a display link.
CGDirectDisplayID CVDisplayLinkGetCurrentCGDisplay ( CVDisplayLinkRef displayLink );
The display link whose current display you want obtain.
A CGDirectDisplayID representing the current display.
CVDisplayLink.hRetrieves the current (“now”) time of a given display link.
CVReturn CVDisplayLinkGetCurrentTime ( CVDisplayLinkRef displayLink, CVTimeStamp *outTime );
The display link whose current time you want to obtain.
A pointer to a CVTimeStamp structure. Note that yout must set the version in the structure (currently 0) before calling to indicate which version of the timestamp structure you want.
A Core Video result code. See “Result Codes” for possible values.
You use this call to obtain the timestamp of the frame that is currently being displayed.
CVDisplayLink.h
Retrieves the nominal refresh period of a display link.
CVTime CVDisplayLinkGetNominalOutputVideoRefreshPeriod ( CVDisplayLinkRef displayLink );
The display link whose refresh period you want to obtain.
A CVTime structure that holds the nominal refresh period. This value is indefinite if an invalid display link was specified.
This call allows one to retrieve the device's ideal refresh period. For example, an NTSC output device might report 1001/60000 to represent the exact NTSC vertical refresh rate.
CVDisplayLink.h
Retrieves the nominal latency of a display link.
CVTime CVDisplayLinkGetOutputVideoLatency ( CVDisplayLinkRef displayLink );
The display link whose latency value you want to obtain.
A CVTime structure that holds the latency value. This value may be indefinite.
This call allows you to retrieve the device’s built-in output latency. For example, an NTSC device with one frame of latency might report back 1001/30000 or 2002/60000.
CVDisplayLink.hObtains the Core Foundation ID for the display link data type.
CFTypeID CVDisplayLinkGetTypeID ( void );
The Core Foundation ID for this type.
CVDisplayLink.hIndicates whether a given display link is running.
Boolean CVDisplayLinkIsRunning ( CVDisplayLinkRef displayLink );
The display link whose run state you want to determine.
Returns true if the display link is running, false otherwise.
CVDisplayLink.hReleases a display link.
void CVDisplayLinkRelease ( CVDisplayLinkRef displayLink );
The display link to release. This function is NULL-safe.
CVDisplayLink.hRetains a display link.
CVDisplayLinkRef CVDisplayLinkRetain ( CVDisplayLinkRef displayLink );
The display link to retain. This function is NULL-safe.
For convenience, this function returns the retained display link if successful.
CVDisplayLink.h
Sets the current display of a display link.
CVReturn CVDisplayLinkSetCurrentCGDisplay ( CVDisplayLinkRef displayLink, CGDirectDisplayID displayID );
The display link whose display you want to set.
The ID of the display to be set.
A Core Video result code. See “Result Codes” for possible values.
Although it is safe to call this function on a running display link, a discontinuity may appear in the video timestamp.
CVDisplayLink.hSelects the display link most optimal for the current renderer of an OpenGL context.
CVReturn CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext ( CVDisplayLinkRef displayLink, CGLContextObj cglContext, CGLPixelFormatObj cglPixelFormat );
The display link for which you want to set the current display.
The OpenGL context to retrieve the current renderer from.
The OpenGL pixel format used to create the passed-in OpenGL context.
A Core Video result code. See “Result Codes” for possible values.
This function chooses the display with the lowest refresh rate.
CVDisplayLink.h
Set the renderer output callback function.
CVReturn CVDisplayLinkSetOutputCallback ( CVDisplayLinkRef displayLink, CVDisplayLinkOutputCallback callback, void *userInfo );
The display link whose output callback you want to set.
The callback function to set for this display link. See CVDisplayLinkOutputCallback for more information about implementing this function.
A pointer to user data.
A Core Video result code. See “Result Codes” for possible values.
The display link invokes this callback whenever it wants you to output a frame.
CVDisplayLink.hActivates a display link.
CVReturn CVDisplayLinkStart ( CVDisplayLinkRef displayLink );
The display link to activate.
A Core Video result code. See “Result Codes” for possible values.
Calling this function starts the display link thread, which then periodically calls back to your application to request that you display frames. If the specified display link is already running, CVDisplayLinkStart returns an error.
CVDisplayLink.hStops a display link.
CVReturn CVDisplayLinkStop ( CVDisplayLinkRef displayLink );
The display link to stop.
A Core Video result code. See “Result Codes” for possible values.
If the specified display link is already stopped, CVDisplayLinkStop returns an error.
In Mac OS X v.10.4 and later, the display link thread is automatically stopped if the user employs Fast User Switching. The display link is restarted when switching back to the original user.
CVDisplayLink.hTranslates the time in the display link’s time base from one representation to another.
CVReturn CVDisplayLinkTranslateTime ( CVDisplayLinkRef displayLink, const CVTimeStamp *inTime, CVTimeStamp *outTime );
The display link whose time base should be used to do the translation.
A pointer to a CVTimeStamp structure containing the source time to translate.
A pointer to a CVTimeStamp structure into which the target time is written. Before calling, you must set the version field (currently 0) to indicate which version of the structure you want. You should also set the flags field to specify which representations to translate to.
A Core Video result code. See “Result Codes” for possible values.
Note that the display link has to be running for this call to succeed.
CVDisplayLink.hRetrieves the current value of the host time base.
uint64_t CVGetCurrentHostTime
The current host time.
In Mac OS X, the host time base for CoreVideo and CoreAudio are identical, so the values returned from either API can be used interchangeably.
CVHostTime.hRetrieve the frequency of the host time base.
double CVGetHostClockFrequency
The current host frequency.
In Mac OS X, the host time base for CoreVideo and CoreAudio are identical, and the values returned from either API can be used interchangeably.
CVHostTime.hRetrieve the smallest possible increment in the host time base.
uint32_t CVGetHostClockMinimumTimeDelta
The smallest valid increment in the host time base.
CVHostTime.hReturns the source rectangle of a Core Video image buffer that represents the clean aperture of the buffer in encoded pixels.
CGRect CVImageBufferGetCleanRect ( CVImageBufferRef imageBuffer );
The image buffer that you want to retrieve the display size from.
A CGRect structure returning the nominal display size of the buffer. Returns a rectangle of zero size if called with either a non-CVImageBufferRef type or NULL.
The clean aperture size is smaller than the full size of the image. For example, an NTSC DV frame would return a CGRect structure with an origin of (8,0) and a size of (704,480). Note that the origin of this rectangle is always in the lower-left corner. This is the same coordinate system as that used by Quartz and Core Image.
CVImageBuffer.hReturns the color space of a Core Video image buffer.
CGColorSpaceRef CVImageBufferGetColorSpace ( CVImageBufferRef imageBuffer );
The image buffer that you want to retrieve the color space from.
The color space of the buffer. Returns NULL if called with either a non-CVImageBufferRef type or NULL.
CVImageBuffer.hReturns the nominal output display size, in square pixels, of a Core Video image buffer.
CGSize CVImageBufferGetDisplaySize ( CVImageBufferRef imageBuffer );
The image buffer that you want to retrieve the display size from.
A CGSize structure defining the nominal display size of the buffer Returns zero size if called with a non-CVImageBufferRef type or NULL.
For example, for an NTSC DV frame this would be 640 x 480.
CVImageBuffer.hReturns the full encoded dimensions of a Core Video image buffer.
CGSize CVImageBufferGetEncodedSize ( CVImageBufferRef imageBuffer );
The image buffer that you want to retrieve the encoded size from.
A CGSize structure defining the full encoded size of the buffer. Returns zero size if called with either a non-CVImageBufferRef type or NULL.
For example, for an NTSC DV frame, the encoded size would be 720 x 480. Note: When creating a Core Image image from a Core Video image buffer, you use this call to retrieve the image size.
CVImageBuffer.hAttaches an OpenGL context to a Core Video OpenGL buffer.
CVReturn CVOpenGLBufferAttach ( CVOpenGLBufferRef openGLBuffer, CGLContextObj cglContext, GLenum face, GLint level, GLint screen );
The buffer you want to attach an OpenGL context to.
The OpenGL context you want to attach.
The OpenGL face enumeration (0 for noncube maps.)
The mipmap level for drawing in the OpenGL context. This value cannot exceed the maximum mipmap level for this buffer.
The virtual screen number you want to use for this context.
A Core Video result code. See “Result Codes” for possible values.
CVOpenGLBuffer.hCreate a new Core Video OpenGL buffer that can be used for OpenGL rendering purposes
CVReturn CVOpenGLBufferCreate ( CFAllocatorRef allocator, size_t width, size_t height, CFDictionaryRef attributes, CVOpenGLBufferRef *bufferOut );
The allocator to use to create the Core Video OpenGL buffer. Pass NULL to specify the default allocator.
The width of the buffer in pixels.
The height of the buffer in pixels.
A Core Foundation dictionary containing other desired attributes of the buffer (texture target, internal format, max mipmap level, etc.). May be NULL. The following attribute values are assumed if you do not explicitly define them:
kCVOpenGLBufferTarget = GL_TEXTURE_RECTANGLE_EXT
kCVOpenGLBufferInternalFormat = GL_RGBA
kCVOpenGLBufferMaximumMipmapLevel = 0
On return, bufferOut points to the newly created OpenGL buffer.
A Core Video result code. See “Result Codes” for possible values.
CVOpenGLBuffer.hObtains the attributes of a Core Video OpenGL buffer.
CFDictionaryRef CVOpenGLBufferGetAttributes ( CVOpenGLBufferRef openGLBuffer );
The OpenGL buffer whose attributes you want to obtain.
A Core Foundation dictionary containing the OpenGL buffer attributes, or NULL if no attributes exist.
CVOpenGLBuffer.hObtains the Core Foundation type ID for the OpenGL buffer type.
CFTypeID CVOpenGLBufferGetTypeID ( void );
The Core Foundation ID for this data type.
CVOpenGLBuffer.h
Creates a new OpenGL buffer pool.
CVReturn CVOpenGLBufferPoolCreate ( CFAllocatorRef allocator, CFDictionaryRef poolAttributes, CFDictionaryRef openGLBufferAttributes, CVOpenGLBufferPoolRef *poolOut );
The allocator to use for allocating this buffer pool. Pass NULL to specify the default allocator.
A Core Foundation dictionary containing the attributes to be used for the pool itself.
A Core Foundation dictionary containing the attributes to be used for creating new OpenGL buffers within the pool.
On return, poolOut points to the new OpenGL buffer pool.
A Core Video result code. See “Result Codes” for possible values.
CVOpenGLBufferPool.hCreates a new OpenGL buffer from an OpenGL buffer pool.
CVReturn CVOpenGLBufferPoolCreateOpenGLBuffer ( CFAllocatorRef allocator, CVOpenGLBufferPoolRef openGLBufferPool, CVOpenGLBufferRef *openGLBufferOut );
The allocator to use for creating the buffer. May be NULL to specify the default allocator.
The OpenGL buffer pool that should create the new OpenGL buffer.
On return, OpenGLBufferOut points to the new OpenGL buffer.
A Core Video result code. See “Result Codes” for possible values.
The function creates a new OpenGL buffer using the OpenGL buffer attributes specified in the CVOpenGLBufferPoolCreate call. This buffer has default attachments as specified in the openGLBufferAttributes parameter of CVOpenGLBufferPoolCreate (using either the kCVBufferPropagatedAttachmentsKey or kCVBufferNonPropagatedAttachmentsKey attributes).
CVOpenGLBufferPool.hReturns the pool attributes dictionary for an Open GL buffer pool.
CFDictionaryRef CVOpenGLBufferPoolGetAttributes ( CVOpenGLBufferPoolRef pool );
The OpenGL buffer pool to retrieve the attributes from.
The buffer-pool attributes Core Foundation dictionary, or NULL on failure.
CVOpenGLBufferPool.hReturns the attributes of OpenGL buffers that will be created from a buffer pool.
CFDictionaryRef CVOpenGLBufferPoolGetOpenGLBufferAttributes ( CVOpenGLBufferPoolRef pool );
The OpenGL buffer pool to retrieve the attributes from.
The OpenGL buffer attributes Core Foundation dictionary, or NULL on failure.
You can use this function to obtain information about the OpenGL buffers that will be created from the buffer pool.
CVOpenGLBufferPool.hObtains the Core Foundation ID for the OpenGL buffer pool type.
CFTypeID CVOpenGLBufferPoolGetTypeID ( void );
The Core Foundation ID for this data type.
CVOpenGLBufferPool.hReleases an OpenGL buffer pool.
void CVOpenGLBufferPoolRelease ( CVOpenGLBufferPoolRef openGLBufferPool );
The OpenGL buffer pool that you want to release.
This function is equivalent to CFRelease, but NULL safe.
CVOpenGLBufferPool.hRetains an OpenGL buffer pool.
CVOpenGLBufferPoolRef CVOpenGLBufferPoolRetain ( CVOpenGLBufferPoolRef openGLBufferPool );