Vuo
1.1.0
|
VuoGlPool interface.
Macros | |
#define | VuoGlPool_retain(glBufferName) VuoGlPool_retainF(glBufferName, __FILE__, __LINE__, __func__); |
Increments the reference count for glBufferName . | |
#define | VuoGlPool_release(type, size, glBufferName) VuoGlPool_releaseF(type, size, glBufferName, __FILE__, __LINE__, __func__); |
Decrements the reference count for glBufferName . | |
Typedefs | |
typedef void * | VuoIoSurface |
A Mac OS X IOSurface. | |
Enumerations | |
enum | VuoGlPoolType { VuoGlPool_ArrayBuffer, VuoGlPool_ElementArrayBuffer } |
Types of OpenGL objects supported by Vuo's GL object pool. More... | |
Functions | |
GLuint | VuoGlPool_use (VuoGlPoolType type, unsigned long size) |
Returns an OpenGL Buffer Object of type type . | |
void | VuoGlPool_retainF (GLuint glBufferName, const char *file, unsigned int line, const char *func) |
Helper for VuoGlPool_retain. | |
void | VuoGlPool_releaseF (VuoGlPoolType type, unsigned long size, GLuint glBufferName, const char *file, unsigned int line, const char *func) |
Helper for VuoGlPool_release. | |
GLuint | VuoGlTexturePool_use (VuoGlContext glContext, GLenum internalformat, unsigned short width, unsigned short height, GLenum format) |
Returns an OpenGL texture. | |
GLuint | VuoGlTexture_getType (GLuint format) |
Returns the OpenGL texture data type corresponding with OpenGL texture format . | |
void | VuoGlTexture_retain (GLuint glTextureName, VuoImage_freeCallback freeCallback, void *freeCallbackContext) |
Increments the reference count for glTextureName . | |
void | VuoGlTexture_release (GLenum internalformat, unsigned short width, unsigned short height, GLuint glTextureName, GLuint glTextureTarget) |
Decrements the reference count for glTextureName . | |
void | VuoGlTexture_disown (GLuint glTextureName) |
Removes glTextureName from Vuo's reference count table (without deleting it like VuoGlTexture_release does). | |
VuoIoSurface | VuoIoSurfacePool_use (VuoGlContext glContext, unsigned short pixelsWide, unsigned short pixelsHigh, GLuint *outputTexture) |
Returns an IOSurface (backed by outputTexture ) with the specified dimensions. | |
uint32_t | VuoIoSurfacePool_getId (VuoIoSurface ioSurface) |
Returns the IOSurface's interprocess ID. | |
void | VuoIoSurfacePool_disuse (VuoGlContext glContext, unsigned short pixelsWide, unsigned short pixelsHigh, VuoIoSurface ioSurface, GLuint texture) |
Called by the sending end of an IOSurface texture transfer to indicate that it is finished using the IOSurface's texture. | |
void | VuoIoSurfacePool_signal (VuoIoSurface ioSurface) |
Called by the receiving end of an IOSurface texture transfer to indicate that it is finished using the IOSurface's texture. | |
GLuint | VuoGlShader_use (VuoGlContext glContext, GLenum type, const char *source) |
Returns an OpenGL Shader Object representing the specified source . | |
char * | VuoGl_stringForConstant (GLenum constant) |
Returns a string for the specified OpenGL constant. | |
#define VuoGlPool_release | ( | type, | |
size, | |||
glBufferName | |||
) | VuoGlPool_releaseF(type, size, glBufferName, __FILE__, __LINE__, __func__); |
Decrements the reference count for glBufferName
.
This function may be called from any thread.
#define VuoGlPool_retain | ( | glBufferName | ) | VuoGlPool_retainF(glBufferName, __FILE__, __LINE__, __func__); |
Increments the reference count for glBufferName
.
This function may be called from any thread.
typedef void* VuoIoSurface |
A Mac OS X IOSurface.
enum VuoGlPoolType |
Types of OpenGL objects supported by Vuo's GL object pool.
char* VuoGl_stringForConstant | ( | GLenum | constant | ) |
Returns a string for the specified OpenGL constant.
The caller is responsible for freeing the string returned by this function.
void VuoGlPool_releaseF | ( | VuoGlPoolType | type, |
unsigned long | size, | ||
GLuint | glBufferName, | ||
const char * | file, | ||
unsigned int | line, | ||
const char * | func | ||
) |
Helper for VuoGlPool_release.
void VuoGlPool_retainF | ( | GLuint | glBufferName, |
const char * | file, | ||
unsigned int | line, | ||
const char * | func | ||
) |
Helper for VuoGlPool_retain.
GLuint VuoGlPool_use | ( | VuoGlPoolType | type, |
unsigned long | size | ||
) |
Returns an OpenGL Buffer Object of type type
.
If an existing, unused buffer of the specified type
and size
is available, it is returned. Otherwise, a new buffer is created.
This function may be called from any thread. (However, the caller is responsible for ensuring that the GL context is not used simultaneously on multiple threads.)
GLuint VuoGlShader_use | ( | VuoGlContext | glContext, |
GLenum | type, | ||
const char * | source | ||
) |
Returns an OpenGL Shader Object representing the specified source
.
To improve performance, this function keeps a cache of precompiled shaders. If a precompiled shader exists for the specified source
, that shader is returned. Otherwise, source
is passed off to OpenGL to be compiled.
Do not call glDeleteShaders()
on the returned shader; it's expected to persist throughout the lifetime of the process.
void VuoGlTexture_disown | ( | GLuint | glTextureName | ) |
Removes glTextureName
from Vuo's reference count table (without deleting it like VuoGlTexture_release does).
glTextureName
must have a reference count of exactly 1 (i.e., a texture being used in multiple places throughout Vuo cannot be disowned).
After Vuo disowns the texture, the caller is responsible for eventually deleting it.
This function may be called from any thread.
GLuint VuoGlTexture_getType | ( | GLuint | format | ) |
Returns the OpenGL texture data type corresponding with OpenGL texture format
.
Assumes format
refers to an 8-bits-per-channel texture.
void VuoGlTexture_release | ( | GLenum | internalformat, |
unsigned short | width, | ||
unsigned short | height, | ||
GLuint | glTextureName, | ||
GLuint | glTextureTarget | ||
) |
Decrements the reference count for glTextureName
.
This function may be called from any thread.
void VuoGlTexture_retain | ( | GLuint | glTextureName, |
VuoImage_freeCallback | freeCallback, | ||
void * | freeCallbackContext | ||
) |
Increments the reference count for glTextureName
.
This function may be called from any thread.
GLuint VuoGlTexturePool_use | ( | VuoGlContext | glContext, |
GLenum | internalformat, | ||
unsigned short | width, | ||
unsigned short | height, | ||
GLenum | format | ||
) |
Returns an OpenGL texture.
If an existing, unused texture matching the specified internalformat
, width
, and height
is available, it is returned. Otherwise, a new texture is created.
The returned texture's storage is preallocated (so the caller can efficiently upload data using glTexSubImage2D), and its texturing properties are set to the defaults:
See glTexImage2D for information about internalformat
and format
.
This function may be called from any thread. (However, the caller is responsible for ensuring that the GL context is not used simultaneously on multiple threads.)
void VuoIoSurfacePool_disuse | ( | VuoGlContext | glContext, |
unsigned short | pixelsWide, | ||
unsigned short | pixelsHigh, | ||
VuoIoSurface | ioSurface, | ||
GLuint | texture | ||
) |
Called by the sending end of an IOSurface texture transfer to indicate that it is finished using the IOSurface's texture.
This enables the IOSurface to be reused for another texture transfer (once the receiving end indicates it is done with it, via VuoIoSurfacePool_signal()).
uint32_t VuoIoSurfacePool_getId | ( | VuoIoSurface | ioSurface | ) |
Returns the IOSurface's interprocess ID.
void VuoIoSurfacePool_signal | ( | VuoIoSurface | ioSurface | ) |
Called by the receiving end of an IOSurface texture transfer to indicate that it is finished using the IOSurface's texture.
This enables the sender to reuse the IOSurface for another texture transfer.
VuoIoSurface VuoIoSurfacePool_use | ( | VuoGlContext | glContext, |
unsigned short | pixelsWide, | ||
unsigned short | pixelsHigh, | ||
GLuint * | outputTexture | ||
) |
Returns an IOSurface (backed by outputTexture
) with the specified dimensions.
Uses an IOSurface from the pool, if possible. If not, creates a new IOSurface.