summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/enable.c
diff options
context:
space:
mode:
authorChia-I Wu <olvaffe@gmail.com>2014-04-22 14:22:49 +0800
committerChia-I Wu <olvaffe@gmail.com>2014-04-27 10:06:20 +0800
commitcf61ea3029b7c9a3e334ea7f1b45844fad2d0a77 (patch)
treea71c56345e7a51945d29ed953c61631c49a5b1b5 /src/mesa/main/enable.c
parent94e45c98e18f4af8d289a4db30b3c076029c60c6 (diff)
downloadexternal_mesa3d-cf61ea3029b7c9a3e334ea7f1b45844fad2d0a77.zip
external_mesa3d-cf61ea3029b7c9a3e334ea7f1b45844fad2d0a77.tar.gz
external_mesa3d-cf61ea3029b7c9a3e334ea7f1b45844fad2d0a77.tar.bz2
mesa: use accessors for struct gl_debug_state
When GL_DEBUG_OUTPUT_SYNCHRONOUS is GL_TRUE, drivers are allowed to log debug messages from other threads. That requires gl_debug_state to be protected by a mutex, even when it is a context state. While we do not spawn threads in Mesa yet, this commit makes it easier to do when we want to. Since the definition of struct gl_debug_state is no longer needed by the rest of the driver, move it to main/errors.c. This should make it even harder to use the struct incorrectly. v2: add comments for the accessors Signed-off-by: Chia-I Wu <olv@lunarg.com> Reviewed-by: Brian Paul <brianp@vmware.com>
Diffstat (limited to 'src/mesa/main/enable.c')
-rw-r--r--src/mesa/main/enable.c35
1 files changed, 5 insertions, 30 deletions
diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
index edd4751..0f3bcf0 100644
--- a/src/mesa/main/enable.c
+++ b/src/mesa/main/enable.c
@@ -368,26 +368,11 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
ctx->Depth.Test = state;
break;
case GL_DEBUG_OUTPUT:
- if (!_mesa_is_desktop_gl(ctx)) {
- goto invalid_enum_error;
- }
- else {
- struct gl_debug_state *debug = _mesa_get_debug_state(ctx);
- if (debug) {
- debug->DebugOutput = state;
- }
- }
- break;
case GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB:
- if (!_mesa_is_desktop_gl(ctx)) {
+ if (!_mesa_is_desktop_gl(ctx))
goto invalid_enum_error;
- }
- else {
- struct gl_debug_state *debug = _mesa_get_debug_state(ctx);
- if (debug) {
- debug->SyncOutput = state;
- }
- }
+ else
+ _mesa_set_debug_state_int(ctx, cap, state);
break;
case GL_DITHER:
if (ctx->Color.DitherFlag == state)
@@ -1239,21 +1224,11 @@ _mesa_IsEnabled( GLenum cap )
case GL_CULL_FACE:
return ctx->Polygon.CullFlag;
case GL_DEBUG_OUTPUT:
- if (!_mesa_is_desktop_gl(ctx))
- goto invalid_enum_error;
- if (ctx->Debug) {
- return ctx->Debug->DebugOutput;
- } else {
- return GL_FALSE;
- }
case GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB:
if (!_mesa_is_desktop_gl(ctx))
goto invalid_enum_error;
- if (ctx->Debug) {
- return ctx->Debug->SyncOutput;
- } else {
- return GL_FALSE;
- }
+ else
+ return (GLboolean) _mesa_get_debug_state_int(ctx, cap);
case GL_DEPTH_TEST:
return ctx->Depth.Test;
case GL_DITHER: