Mesa (gallium-mesa-7.4): glsl-tri: add missing glLinkProgram() call
Brian Paul
brianp at kemper.freedesktop.org
Thu Feb 19 16:00:51 UTC 2009
Module: Mesa
Branch: gallium-mesa-7.4
Commit: cd8453c96a4f87c348c00b76f34ee00886d1d75f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cd8453c96a4f87c348c00b76f34ee00886d1d75f
Author: Brian Paul <brianp at vmware.com>
Date: Thu Feb 19 08:58:48 2009 -0700
glsl-tri: add missing glLinkProgram() call
Bindings set with glBindAttribLocation() do not take effect until the
program is re-linked. So attr_pos, attr_color will not necessarily be
the right indexes util that's done.
---
progs/xdemos/glsl-tri.c | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/progs/xdemos/glsl-tri.c b/progs/xdemos/glsl-tri.c
index bcae421..0771eac 100644
--- a/progs/xdemos/glsl-tri.c
+++ b/progs/xdemos/glsl-tri.c
@@ -207,8 +207,17 @@ create_shaders(void)
glUseProgram(program);
- glBindAttribLocation(program, attr_pos, "pos");
- glBindAttribLocation(program, attr_color, "color");
+ if (1) {
+ /* test setting attrib locations */
+ glBindAttribLocation(program, attr_pos, "pos");
+ glBindAttribLocation(program, attr_color, "color");
+ glLinkProgram(program); /* needed to put attribs into effect */
+ }
+ else {
+ /* test automatic attrib locations */
+ attr_pos = glGetAttribLocation(program, "pos");
+ attr_color = glGetAttribLocation(program, "color");
+ }
u_matrix = glGetUniformLocation(program, "modelviewProjection");
printf("Uniform modelviewProjection at %d\n", u_matrix);
More information about the mesa-commit
mailing list