---
 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

Reply via email to