<!--
{
  "documentType" : "article",
  "framework" : "CoreVideo",
  "identifier" : "/documentation/CoreVideo/cvopenglbufferpool-77j",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "CVOpenGLBufferPool"
}
-->

# CVOpenGLBufferPool

A utility object for managing a set of recyclable OpenGL buffer objects.

## Topics

### Functions

[`func CVOpenGLBufferPoolCreate(CFAllocator?, CFDictionary?, CFDictionary?, UnsafeMutablePointer<CVOpenGLBufferPool?>) -> CVReturn`](/documentation/CoreVideo/CVOpenGLBufferPoolCreate(_:_:_:_:))

Creates a new OpenGL buffer pool.

[`func CVOpenGLBufferPoolCreateOpenGLBuffer(CFAllocator?, CVOpenGLBufferPool, UnsafeMutablePointer<CVOpenGLBuffer?>) -> CVReturn`](/documentation/CoreVideo/CVOpenGLBufferPoolCreateOpenGLBuffer(_:_:_:))

Creates a new OpenGL buffer from an OpenGL buffer pool.

[`func CVOpenGLBufferPoolGetAttributes(CVOpenGLBufferPool) -> Unmanaged<CFDictionary>?`](/documentation/CoreVideo/CVOpenGLBufferPoolGetAttributes(_:))

Returns the pool attributes dictionary for an Open GL buffer pool.

[`func CVOpenGLBufferPoolGetOpenGLBufferAttributes(CVOpenGLBufferPool) -> Unmanaged<CFDictionary>?`](/documentation/CoreVideo/CVOpenGLBufferPoolGetOpenGLBufferAttributes(_:))

Returns the attributes of OpenGL buffers that will be created from a buffer pool.

[`func CVOpenGLBufferPoolGetTypeID() -> CFTypeID`](/documentation/CoreVideo/CVOpenGLBufferPoolGetTypeID())

Obtains the Core Foundation ID for the OpenGL buffer pool type.

[`extern CVOpenGLBufferPoolRefCVOpenGLBufferPoolRetain(CVOpenGLBufferPoolRef openGLBufferPool);`](/documentation/CoreVideo/CVOpenGLBufferPoolRetain)

Retains an OpenGL buffer pool.

[`extern void CVOpenGLBufferPoolRelease(CVOpenGLBufferPoolRef openGLBufferPool);`](/documentation/CoreVideo/CVOpenGLBufferPoolRelease)

Releases an OpenGL buffer pool.

### Data Types

[`class CVOpenGLBufferPool`](/documentation/CoreVideo/CVOpenGLBufferPool)

A reference to an OpenGL buffer pool object.

### Constants

[`let kCVOpenGLBufferPoolMaximumBufferAgeKey: CFString`](/documentation/CoreVideo/kCVOpenGLBufferPoolMaximumBufferAgeKey)

The maximum time that unused buffers should be kept before they are deallocated (type `CFAbsoluteTime`).

[`let kCVOpenGLBufferPoolMinimumBufferCountKey: CFString`](/documentation/CoreVideo/kCVOpenGLBufferPoolMinimumBufferCountKey)

The minimum number of buffers to be kept in the pool (type `CFNumber`).

## See Also

  [Core Video Programming Guide](https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/CoreVideo/CVProg_Intro/CVProg_Intro.html#//apple_ref/doc/uid/TP40001536)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)