diff options
author | Ian Romanick <ian.d.romanick@intel.com> | 2010-04-07 14:47:46 -0700 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2010-04-07 16:49:25 -0700 |
commit | 56b8b214107a0320c7277cd832480998057f8413 (patch) | |
tree | 73e22e2979b33263c21664e37753a1b192d17fdc | |
parent | e701761cc84a136c2e1b3cf341bc0edb90492278 (diff) |
Add _mesa_glsl_warning to emit warnings to the shader log
-rw-r--r-- | glsl_parser_extras.cpp | 19 | ||||
-rw-r--r-- | glsl_parser_extras.h | 9 |
2 files changed, 28 insertions, 0 deletions
diff --git a/glsl_parser_extras.cpp b/glsl_parser_extras.cpp index 1eac1890af..de67e849df 100644 --- a/glsl_parser_extras.cpp +++ b/glsl_parser_extras.cpp @@ -71,6 +71,25 @@ _mesa_glsl_error(YYLTYPE *locp, _mesa_glsl_parse_state *state, } +void +_mesa_glsl_warning(const YYLTYPE *locp, const _mesa_glsl_parse_state *state, + const char *fmt, ...) +{ + char buf[1024]; + int len; + va_list ap; + + len = snprintf(buf, sizeof(buf), "%u:%u(%u): warning: ", + locp->source, locp->first_line, locp->first_column); + + va_start(ap, fmt); + vsnprintf(buf + len, sizeof(buf) - len, fmt, ap); + va_end(ap); + + printf("%s\n", buf); +} + + bool _mesa_glsl_process_extension(const char *name, YYLTYPE *name_locp, const char *behavior, YYLTYPE *behavior_locp, diff --git a/glsl_parser_extras.h b/glsl_parser_extras.h index 15667ebb68..7759eda535 100644 --- a/glsl_parser_extras.h +++ b/glsl_parser_extras.h @@ -74,6 +74,15 @@ typedef struct YYLTYPE { extern void _mesa_glsl_error(YYLTYPE *locp, _mesa_glsl_parse_state *state, const char *fmt, ...); +/** + * Emit a warning to the shader log + * + * \sa _mesa_glsl_error + */ +extern void _mesa_glsl_warning(const YYLTYPE *locp, + const _mesa_glsl_parse_state *state, + const char *fmt, ...); + extern void _mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state, const char *string, size_t len); |