From 3bb0c367411c1df3f501db729be44e699b8f295e Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Thu, 31 Jul 2008 17:43:38 -0400 Subject: [PATCH] Also link programs when testing for shader compile errors. --HG-- branch : trunk --- finderrors.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/finderrors.c b/finderrors.c index 7f7aac9d..e56708ab 100644 --- a/finderrors.c +++ b/finderrors.c @@ -79,8 +79,20 @@ static int do_file(const char *profile, const char *dname, const char *fn, int * if (shader == NULL) report("FAIL: %s %s\n", fname, MOJOSHADER_glGetError()); else - report("PASS: %s\n", fname); - MOJOSHADER_glDeleteShader(shader); + { + const MOJOSHADER_parseData *pd = MOJOSHADER_glGetShaderParseData(shader); + MOJOSHADER_glShader *v = (pd->shader_type == MOJOSHADER_TYPE_VERTEX) ? shader : NULL; + MOJOSHADER_glShader *p = (pd->shader_type == MOJOSHADER_TYPE_PIXEL) ? shader : NULL; + MOJOSHADER_glProgram *program = MOJOSHADER_glLinkProgram(v, p); + if (program == NULL) + report("FAIL: %s %s\n", fname, MOJOSHADER_glGetError()); + else + { + report("PASS: %s\n", fname); + MOJOSHADER_glDeleteProgram(program); + } // else + MOJOSHADER_glDeleteShader(shader); + } #else const MOJOSHADER_parseData *pd = MOJOSHADER_parse(profile, buf, rc, 0, 0, 0); if (pd->error != NULL)