diff options
author | Brian Paul <brianp@vmware.com> | 2009-08-14 11:26:20 -0600 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2009-08-14 11:27:33 -0600 |
commit | db598b899868ba6db8f3f525a22a45331589592e (patch) | |
tree | 66db3de86ef478cf4c7e01769075a8d3021b0824 | |
parent | b6e5600bd460245afef605dbfbcf6650ff677dcb (diff) |
mesa: new _mesa_append_uniforms_to_file() debug/logging function
-rw-r--r-- | src/mesa/shader/prog_print.c | 31 | ||||
-rw-r--r-- | src/mesa/shader/prog_print.h | 3 |
2 files changed, 34 insertions, 0 deletions
diff --git a/src/mesa/shader/prog_print.c b/src/mesa/shader/prog_print.c index 20d3fdec47..1bc2109957 100644 --- a/src/mesa/shader/prog_print.c +++ b/src/mesa/shader/prog_print.c @@ -958,3 +958,34 @@ _mesa_write_shader_to_file(const struct gl_shader *shader) } +/** + * Append the shader's uniform info/values to the shader log file. + * The log file will typically have been created by the + * _mesa_write_shader_to_file function. + */ +void +_mesa_append_uniforms_to_file(const struct gl_shader *shader) +{ + const char *type; + char filename[100]; + FILE *f; + + if (shader->Type == GL_FRAGMENT_SHADER) + type = "frag"; + else + type = "vert"; + + _mesa_snprintf(filename, sizeof(filename), "shader_%u.%s", shader->Name, type); + f = fopen(filename, "a"); /* append */ + if (!f) { + fprintf(stderr, "Unable to open %s for appending\n", filename); + return; + } + + fprintf(f, "/* First-draw parameters / constants */\n"); + fprintf(f, "/*\n"); + _mesa_fprint_parameter_list(f, shader->Program->Parameters); + fprintf(f, "*/\n"); + + fclose(f); +} diff --git a/src/mesa/shader/prog_print.h b/src/mesa/shader/prog_print.h index 3da3e767cd..460426fd51 100644 --- a/src/mesa/shader/prog_print.h +++ b/src/mesa/shader/prog_print.h @@ -86,5 +86,8 @@ _mesa_print_parameter_list(const struct gl_program_parameter_list *list); extern void _mesa_write_shader_to_file(const struct gl_shader *shader); +extern void +_mesa_append_uniforms_to_file(const struct gl_shader *shader); + #endif /* PROG_PRINT_H */ |