diff options
author | Chia-I Wu <[email protected]> | 2014-04-22 14:22:49 +0800 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2014-04-27 10:06:20 +0800 |
commit | cf61ea3029b7c9a3e334ea7f1b45844fad2d0a77 (patch) | |
tree | a71c56345e7a51945d29ed953c61631c49a5b1b5 /src/mesa/main/enable.c | |
parent | 94e45c98e18f4af8d289a4db30b3c076029c60c6 (diff) |
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 <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/mesa/main/enable.c')
-rw-r--r-- | src/mesa/main/enable.c | 35 |
1 files changed, 5 insertions, 30 deletions
diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c index edd4751e1ad..0f3bcf0a9e2 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: |