summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/main/errors.c83
1 files changed, 17 insertions, 66 deletions
diff --git a/src/mesa/main/errors.c b/src/mesa/main/errors.c
index 2b5959a1e3c..9f936ff2191 100644
--- a/src/mesa/main/errors.c
+++ b/src/mesa/main/errors.c
@@ -634,20 +634,6 @@ should_log(struct gl_context *ctx,
}
-static void
-set_message_state(struct gl_context *ctx,
- enum mesa_debug_source source,
- enum mesa_debug_type type,
- GLuint id, GLboolean enabled)
-{
- struct gl_debug_state *debug = _mesa_get_debug_state(ctx);
-
- if (debug)
- debug_set_message_enable(debug, source, type, id, enabled);
-}
-
-
-
/**
* Log a client or driver debug message.
*/
@@ -756,54 +742,6 @@ error:
}
-static void
-control_messages(struct gl_context *ctx,
- enum mesa_debug_source source,
- enum mesa_debug_type type,
- enum mesa_debug_severity severity,
- GLboolean enabled)
-{
- struct gl_debug_state *debug = _mesa_get_debug_state(ctx);
-
- if (!debug)
- return;
-
- debug_set_message_enable_all(debug, source, type, severity, enabled);
-}
-
-
-/**
- * Debugging-message namespaces with the source APPLICATION or THIRD_PARTY
- * require special handling, since the IDs in them are controlled by clients,
- * not the OpenGL implementation.
- *
- * 'count' is the length of the array 'ids'. If 'count' is nonzero, all
- * the given IDs in the namespace defined by 'esource' and 'etype'
- * will be affected.
- *
- * If 'count' is zero, this sets the state of all IDs that match
- * the combination of 'esource', 'etype', and 'eseverity'.
- */
-static void
-control_app_messages(struct gl_context *ctx, GLenum esource, GLenum etype,
- GLenum eseverity, GLsizei count, const GLuint *ids,
- GLboolean enabled)
-{
- GLsizei i;
- enum mesa_debug_source source = gl_enum_to_debug_source(esource);
- enum mesa_debug_type type = gl_enum_to_debug_type(etype);
- enum mesa_debug_severity severity = gl_enum_to_debug_severity(eseverity);
-
- for (i = 0; i < count; i++)
- set_message_state(ctx, source, type, ids[i], enabled);
-
- if (count)
- return;
-
- control_messages(ctx, source, type, severity, enabled);
-}
-
-
/**
* This is a generic message insert function.
* Validation of source, type and severity parameters should be done
@@ -915,9 +853,12 @@ _mesa_DebugMessageControl(GLenum gl_source, GLenum gl_type,
GLenum gl_severity, GLsizei count,
const GLuint *ids, GLboolean enabled)
{
- const char *callerstr = "glDebugMessageControl";
-
GET_CURRENT_CONTEXT(ctx);
+ enum mesa_debug_source source = gl_enum_to_debug_source(gl_source);
+ enum mesa_debug_type type = gl_enum_to_debug_type(gl_type);
+ enum mesa_debug_severity severity = gl_enum_to_debug_severity(gl_severity);
+ const char *callerstr = "glDebugMessageControl";
+ struct gl_debug_state *debug;
if (count < 0) {
_mesa_error(ctx, GL_INVALID_VALUE,
@@ -939,8 +880,18 @@ _mesa_DebugMessageControl(GLenum gl_source, GLenum gl_type,
return;
}
- control_app_messages(ctx, gl_source, gl_type, gl_severity,
- count, ids, enabled);
+ debug = _mesa_get_debug_state(ctx);
+ if (!debug)
+ return;
+
+ if (count) {
+ GLsizei i;
+ for (i = 0; i < count; i++)
+ debug_set_message_enable(debug, source, type, ids[i], enabled);
+ }
+ else {
+ debug_set_message_enable_all(debug, source, type, severity, enabled);
+ }
}