Vuo
1.2.6
|
VuoGlContext implementation.
Classes | |
class | VuoGlContextPool |
A process-wide set of mutually-shared OpenGL contexts. More... | |
Macros | |
#define | VuoGlContext_checkGL(cap, value) |
Logs a warning if the specified OpenGL cap ability doesn't have value . | |
#define | VuoGlContext_checkGLInt(key, value) |
Logs a warning if the specified OpenGL key doesn't have value . | |
#define | VuoGlCheckBinding(pname) |
Check whether the specified attachment point pname is still bound. | |
#define | VuoGlCheckTextureBinding(pname, unit) |
Check whether the specified attachment point pname is still bound. | |
Typedefs | |
typedef std::map< VuoGlContext, GLuint > | VuoShaderContextType |
Type for VuoShaderContextMap. | |
Functions | |
static void | VuoGlContext_renderers (void) |
Logs info about all available renderers. | |
void | VuoGlContext_reconfig (CGDirectDisplayID display, CGDisplayChangeSummaryFlags flags, void *userInfo) |
Called when display settings change (a display is plugged in or unplugged, resolution is changed, …). | |
void | VuoGlContext_setGlobalRootContext (void *rootContext) |
Specifies a platform-specific context to be used as the base for all of Vuo's shared GL contexts. | |
VuoGlContext | VuoGlContext_use (void) |
Finds an unused GL context in the process-wide shared context pool (or creates one if none is available), marks it used, and returns it. | |
void | VuoGlContext_perform (void(^function)(CGLContextObj cgl_ctx)) |
Executes code using the global OpenGL context. | |
void | VuoGlContext_disuseF (VuoGlContext glContext, const char *file, const unsigned int linenumber, const char *func) |
Helper for VuoGlContext_disuse. | |
int | VuoGlContext_getMaximumSupportedMultisampling (VuoGlContext context) |
Returns the maximum supported multisampling level for this GPU. | |
void * | VuoGlContext_makePlatformPixelFormat (bool hasDepthBuffer, bool openGL32Core, GLint displayMask) |
Returns a platform-specific OpenGL pixelformat description. | |
void | _VGL_describe (GLenum error, CGLContextObj cgl_ctx, const char *file, const unsigned int linenumber, const char *func) |
Logs text describing the specified OpenGL error. | |
void | _VGL (CGLContextObj cgl_ctx, const char *file, const unsigned int linenumber, const char *func) |
Helper for VGL() . | |
Variables | |
static dispatch_once_t | VuoGlContextPoolCreated = 0 |
Make sure this process only has a single GL Context Pool. | |
VuoShaderContextType | VuoShaderContextMap |
The currently-active shader on each context. | |
#define VuoGlCheckBinding | ( | pname | ) |
Check whether the specified attachment point pname
is still bound.
(This is defined as a macro in order to stringify the argument.)
#define VuoGlCheckTextureBinding | ( | pname, | |
unit | |||
) |
Check whether the specified attachment point pname
is still bound.
(This is defined as a macro in order to stringify the argument.)
#define VuoGlContext_checkGL | ( | cap, | |
value | |||
) |
Logs a warning if the specified OpenGL cap
ability doesn't have value
.
#define VuoGlContext_checkGLInt | ( | key, | |
value | |||
) |
Logs a warning if the specified OpenGL key
doesn't have value
.
typedef std::map<VuoGlContext, GLuint> VuoShaderContextType |
Type for VuoShaderContextMap.
void _VGL | ( | CGLContextObj | cgl_ctx, |
const char * | file, | ||
const unsigned int | linenumber, | ||
const char * | func | ||
) |
Helper for VGL()
.
void _VGL_describe | ( | GLenum | error, |
CGLContextObj | cgl_ctx, | ||
const char * | file, | ||
const unsigned int | linenumber, | ||
const char * | func | ||
) |
Logs text describing the specified OpenGL error.
void VuoGlContext_disuseF | ( | VuoGlContext | glContext, |
const char * | file, | ||
const unsigned int | linenumber, | ||
const char * | func | ||
) |
Helper for VuoGlContext_disuse.
int VuoGlContext_getMaximumSupportedMultisampling | ( | VuoGlContext | context | ) |
Returns the maximum supported multisampling level for this GPU.
Multisampling is known to break point rendering on some GPUs, so we intentionally disable it on those.
void* VuoGlContext_makePlatformPixelFormat | ( | bool | hasDepthBuffer, |
bool | openGL32Core, | ||
GLint | displayMask | ||
) |
Returns a platform-specific OpenGL pixelformat description.
On Mac OS X, this is a CGLPixelFormatObj
.
hasDepthBuffer | If true, the returned context will have a depth buffer. |
openGL32Core | If true, the returned context will be OpenGL 3.2 Core Profile. If false, OpenGL 2.1. |
displayMask | If -1, the context will not be restricted by display. If nonzero, the context will be restricted to the specified displays (CGDisplayIDToOpenGLDisplayMask() ). If 0xff, the context will use the Apple Software Renderer. |
void VuoGlContext_perform | ( | void(^)(CGLContextObj cgl_ctx) | function | ) |
Executes code using the global OpenGL context.
void VuoGlContext_reconfig | ( | CGDirectDisplayID | display, |
CGDisplayChangeSummaryFlags | flags, | ||
void * | userInfo | ||
) |
Called when display settings change (a display is plugged in or unplugged, resolution is changed, …).
|
static |
Logs info about all available renderers.
void VuoGlContext_setGlobalRootContext | ( | void * | rootContext | ) |
Specifies a platform-specific context to be used as the base for all of Vuo's shared GL contexts.
On Mac, this should be a CGLContext
. The CGLContext
must be unlocked when calling this function, but after that you may lock it at any time (Vuo doesn't require it to be locked or unlocked).
Must be called before any Vuo composition is loaded, and before any other VuoGlContext_*
methods.
This function may be called from any thread.
VuoGlContext VuoGlContext_use | ( | void | ) |
Finds an unused GL context in the process-wide shared context pool (or creates one if none is available), marks it used, and returns it.
This function may be called from any thread.
|
static |
Make sure this process only has a single GL Context Pool.
VuoShaderContextType VuoShaderContextMap |
The currently-active shader on each context.
This is placed in VuoGlContext (a dylib) instead of VuoShader (a static module) to ensure there's only one instance per process.