--- tests/util/piglit-shader.c | 29 +++++++++++++++++++++++++++++ tests/util/piglit-shader.h | 2 ++ 2 files changed, 31 insertions(+)
diff --git a/tests/util/piglit-shader.c b/tests/util/piglit-shader.c index 8172dfb..f7bd06f 100644 --- a/tests/util/piglit-shader.c +++ b/tests/util/piglit-shader.c @@ -265,6 +265,35 @@ GLint piglit_link_simple_program(GLint vs, GLint fs) return prog; } + +/** + * Builds a program from optional VS and FS sources, but does not link + * it. If there is a compile failure, the test is terminated. + */ +GLuint +piglit_build_simple_program_unlinked(const char *vs_source, + const char *fs_source) +{ + GLuint prog; + + piglit_require_GLSL(); + prog = glCreateProgram(); + if (vs_source) { + GLuint vs = piglit_compile_shader_text(GL_VERTEX_SHADER, + vs_source); + glAttachShader(prog, vs); + glDeleteShader(vs); + } + if (fs_source) { + GLuint fs = piglit_compile_shader_text(GL_FRAGMENT_SHADER, + fs_source); + glAttachShader(prog, fs); + glDeleteShader(fs); + } + return prog; +} + + /** * Builds and links a program from optional VS and FS sources, * throwing PIGLIT_FAIL on error. diff --git a/tests/util/piglit-shader.h b/tests/util/piglit-shader.h index 3e6b8fd..8f18f0a 100644 --- a/tests/util/piglit-shader.h +++ b/tests/util/piglit-shader.h @@ -36,6 +36,8 @@ GLboolean piglit_link_check_status(GLint prog); GLboolean piglit_link_check_status_quiet(GLint prog); GLint piglit_link_simple_program(GLint vs, GLint fs); GLint piglit_build_simple_program(const char *vs_source, const char *fs_source); +GLuint piglit_build_simple_program_unlinked(const char *vs_source, + const char *fs_source); #if defined(PIGLIT_USE_OPENGL_ES1) #define glAttachShader assert(!"glAttachShader does not exist in ES1") -- 1.8.3.4 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit