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