This should be the one entrypoint libglsl needs for GL_ARB_debug_output. --- src/mesa/main/errors.c | 34 ++++++++++++++++++++++++++++++++++ src/mesa/main/errors.h | 4 ++++ 2 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/src/mesa/main/errors.c b/src/mesa/main/errors.c index fcf873f..be271eb 100644 --- a/src/mesa/main/errors.c +++ b/src/mesa/main/errors.c @@ -1062,4 +1062,38 @@ _mesa_debug( const struct gl_context *ctx, const char *fmtString, ... ) (void) fmtString; } + +void +_mesa_shader_debug( struct gl_context *ctx, GLenum type, GLuint err, + const char *msg, int len ) +{ + GLenum source = GL_DEBUG_SOURCE_SHADER_COMPILER_ARB, + severity; + + switch (type) { + case GL_DEBUG_TYPE_ERROR_ARB: + assert(err < SHADER_ERROR_COUNT); + severity = GL_DEBUG_SEVERITY_HIGH_ARB; + break; + case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB: + case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB: + case GL_DEBUG_TYPE_PORTABILITY_ARB: + case GL_DEBUG_TYPE_PERFORMANCE_ARB: + case GL_DEBUG_TYPE_OTHER_ARB: + assert(0 && "other categories not implemented yet"); + default: + _mesa_problem(ctx, "bad enum in _mesa_shader_debug()"); + return; + } + + if (len < 0) + len = strlen(msg); + + /* Truncate the message if necessary. */ + if (len >= MAX_DEBUG_MESSAGE_LENGTH) + len = MAX_DEBUG_MESSAGE_LENGTH - 1; + + _mesa_log_msg(ctx, source, type, err, severity, len, msg); +} + /*@}*/ diff --git a/src/mesa/main/errors.h b/src/mesa/main/errors.h index ed1c6fc..2b4f5ff 100644 --- a/src/mesa/main/errors.h +++ b/src/mesa/main/errors.h @@ -38,6 +38,7 @@ #include "compiler.h" #include "glheader.h" +#include "mtypes.h" #ifdef __cplusplus @@ -68,6 +69,9 @@ _mesa_error( struct gl_context *ctx, GLenum error, const char *fmtString, ... ) extern void _mesa_debug( const struct gl_context *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3); +extern void +_mesa_shader_debug( struct gl_context *ctx, GLenum type, GLuint err, const char *msg, int len ); + #ifdef __cplusplus } #endif -- 1.7.4.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev