diff options
author | Michal Krol <[email protected]> | 2009-12-20 13:53:53 +0100 |
---|---|---|
committer | Michal Krol <[email protected]> | 2009-12-20 21:19:05 +0100 |
commit | ec73cd011d625dbd528b77a10b2cddebb757325e (patch) | |
tree | dee3c9ce1680c287e89b3e44d8ba530c3222f559 /src/mesa/shader | |
parent | 9c15948125109d6eda7da25a2749680b830e8b82 (diff) |
slang: Update after glsl pp changes.
Diffstat (limited to 'src/mesa/shader')
-rw-r--r-- | src/mesa/shader/slang/slang_compile.c | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/src/mesa/shader/slang/slang_compile.c b/src/mesa/shader/slang/slang_compile.c index 54eb092f1a7..2622b796fdb 100644 --- a/src/mesa/shader/slang/slang_compile.c +++ b/src/mesa/shader/slang/slang_compile.c @@ -2584,6 +2584,7 @@ compile_with_grammar(const char *source, unsigned int shader_type, unsigned int parsing_builtin) { + struct sl_pp_purify_options options; struct sl_pp_context *context; struct sl_pp_token_info *tokens; unsigned char *prod; @@ -2591,18 +2592,23 @@ compile_with_grammar(const char *source, unsigned int version; unsigned int maxVersion; int result; - struct sl_pp_purify_options options; char errmsg[200] = ""; unsigned int errline = 0; - struct sl_pp_token_info *intokens; - unsigned int tokens_eaten; - context = sl_pp_context_create(); + memset(&options, 0, sizeof(options)); + + context = sl_pp_context_create(source, &options); if (!context) { slang_info_log_error(infolog, "out of memory"); return GL_FALSE; } + if (sl_pp_version(context, &version)) { + slang_info_log_error(infolog, "%s", sl_pp_context_error_message(context)); + sl_pp_context_destroy(context); + return GL_FALSE; + } + if (sl_pp_context_add_extension(context, "ARB_draw_buffers", "GL_ARB_draw_buffers") || sl_pp_context_add_extension(context, "ARB_texture_rectangle", "GL_ARB_texture_rectangle")) { slang_info_log_error(infolog, "%s", sl_pp_context_error_message(context)); @@ -2619,29 +2625,12 @@ compile_with_grammar(const char *source, } #endif - memset(&options, 0, sizeof(options)); - if (sl_pp_tokenise(context, source, &options, &intokens)) { + if (sl_pp_process(context, &tokens)) { slang_info_log_error(infolog, "%s", sl_pp_context_error_message(context)); sl_pp_context_destroy(context); return GL_FALSE; } - if (sl_pp_version(context, intokens, &version, &tokens_eaten)) { - slang_info_log_error(infolog, "%s", sl_pp_context_error_message(context)); - sl_pp_context_destroy(context); - free(intokens); - return GL_FALSE; - } - - if (sl_pp_process(context, &intokens[tokens_eaten], &tokens)) { - slang_info_log_error(infolog, "%s", sl_pp_context_error_message(context)); - sl_pp_context_destroy(context); - free(intokens); - return GL_FALSE; - } - - free(intokens); - /* For the time being we care about only a handful of tokens. */ { const struct sl_pp_token_info *src = tokens; |