summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2011-03-26 06:05:36 -0600
committerBrian Paul <brianp@vmware.com>2011-03-26 06:05:36 -0600
commitb7104db4fd17d41ed1b8f3855dc1c18a9706576b (patch)
tree929f1e30f2bb849d2b9d8d4eaa4f734922f42ab8
parentd50fbc7d348e0137fa49ded7cae76ead79e9f521 (diff)
util: add LinkShaders3()
-rw-r--r--src/util/shaderutil.c13
-rw-r--r--src/util/shaderutil.h3
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);