diff options
author | Brian Paul <brianp@vmware.com> | 2011-03-26 06:05:36 -0600 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2011-03-26 06:05:36 -0600 |
commit | b7104db4fd17d41ed1b8f3855dc1c18a9706576b (patch) | |
tree | 929f1e30f2bb849d2b9d8d4eaa4f734922f42ab8 | |
parent | d50fbc7d348e0137fa49ded7cae76ead79e9f521 (diff) |
util: add LinkShaders3()
-rw-r--r-- | src/util/shaderutil.c | 13 | ||||
-rw-r--r-- | src/util/shaderutil.h | 3 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/util/shaderutil.c b/src/util/shaderutil.c index 96002fcf..3a39b02e 100644 --- a/src/util/shaderutil.c +++ b/src/util/shaderutil.c @@ -176,15 +176,24 @@ CompileShaderFile(GLenum shaderType, const char *filename) GLuint LinkShaders(GLuint vertShader, GLuint fragShader) { + return LinkShaders3(vertShader, 0, fragShader); +} + + +GLuint +LinkShaders3(GLuint vertShader, GLuint geomShader, GLuint fragShader) +{ GLuint program = CreateProgram(); GLdouble t0, t1; assert(vertShader || fragShader); - if (fragShader) - AttachShader(program, fragShader); if (vertShader) AttachShader(program, vertShader); + if (geomShader) + AttachShader(program, geomShader); + if (fragShader) + AttachShader(program, fragShader); t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001; LinkProgram(program); diff --git a/src/util/shaderutil.h b/src/util/shaderutil.h index 9aad2948..08b2f288 100644 --- a/src/util/shaderutil.h +++ b/src/util/shaderutil.h @@ -36,6 +36,9 @@ CompileShaderFile(GLenum shaderType, const char *filename); extern GLuint LinkShaders(GLuint vertShader, GLuint fragShader); +extern GLuint +LinkShaders3(GLuint vertShader, GLuint geomShader, GLuint fragShader); + extern GLboolean ValidateShaderProgram(GLuint program); |