mesa: refactor debug output should_log

Move the message filtering logic to debug_is_message_enabled.  No functional
change.

Signed-off-by: Chia-I Wu <olv@lunarg.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Chia-I Wu
2014-04-22 10:18:09 +08:00
parent 672b209225
commit 7554d27de4

View File

@@ -217,52 +217,23 @@ debug_create(void)
return debug; return debug;
} }
/** /**
* Return debug state for the context. The debug state will be allocated * Returns if the given message source/type/ID tuple is enabled.
* and initialized upon the first call.
*/ */
struct gl_debug_state * static bool
_mesa_get_debug_state(struct gl_context *ctx) debug_is_message_enabled(struct gl_debug_state *debug,
{
if (!ctx->Debug) {
ctx->Debug = debug_create();
if (!ctx->Debug) {
_mesa_error(ctx, GL_OUT_OF_MEMORY, "allocating debug state");
}
}
return ctx->Debug;
}
/**
* Returns the state of the given message source/type/ID tuple.
*/
static GLboolean
should_log(struct gl_context *ctx,
enum mesa_debug_source source, enum mesa_debug_source source,
enum mesa_debug_type type, enum mesa_debug_type type,
GLuint id, GLuint id,
enum mesa_debug_severity severity) enum mesa_debug_severity severity)
{ {
struct gl_debug_state *debug;
uintptr_t state = 0;
if (!ctx->Debug) {
/* no debug state set so far */
return GL_FALSE;
}
debug = _mesa_get_debug_state(ctx);
if (debug) {
const GLint gstack = debug->GroupStackDepth; const GLint gstack = debug->GroupStackDepth;
struct gl_debug_namespace *nspace = struct gl_debug_namespace *nspace =
&debug->Namespaces[gstack][source][type]; &debug->Namespaces[gstack][source][type];
uintptr_t state = 0;
if (!debug->DebugOutput) if (!debug->DebugOutput)
return GL_FALSE; return false;
/* In addition to not being able to store zero as a value, HashTable also /* In addition to not being able to store zero as a value, HashTable also
* can't use zero as a key. * can't use zero as a key.
@@ -299,9 +270,49 @@ should_log(struct gl_context *ctx,
entry->ID = id; entry->ID = id;
insert_at_tail(&nspace->Severity[severity], &entry->link); insert_at_tail(&nspace->Severity[severity], &entry->link);
} }
}
out: out:
return !!(state & ENABLED_BIT); return (state & ENABLED_BIT);
}
/**
* Return debug state for the context. The debug state will be allocated
* and initialized upon the first call.
*/
struct gl_debug_state *
_mesa_get_debug_state(struct gl_context *ctx)
{
if (!ctx->Debug) {
ctx->Debug = debug_create();
if (!ctx->Debug) {
_mesa_error(ctx, GL_OUT_OF_MEMORY, "allocating debug state");
}
}
return ctx->Debug;
}
static GLboolean
should_log(struct gl_context *ctx,
enum mesa_debug_source source,
enum mesa_debug_type type,
GLuint id,
enum mesa_debug_severity severity)
{
struct gl_debug_state *debug;
if (!ctx->Debug) {
/* no debug state set so far */
return GL_FALSE;
}
debug = _mesa_get_debug_state(ctx);
if (debug)
return debug_is_message_enabled(debug, source, type, id, severity);
else
return GL_FALSE;
} }