diff options
author | Niriel <daneel_libre@yahoo.fr> | 2013-10-21 14:21:16 +0200 |
---|---|---|
committer | Niriel <daneel_libre@yahoo.fr> | 2013-10-21 14:21:16 +0200 |
commit | 1319c1e8763629f819626a289e59310971a7fcc1 (patch) | |
tree | 524b1097fd9639e51df3a8fb5038b5c6e61642f1 | |
parent | 42b18469013ffffc49b2bd640d494039c58133e5 (diff) | |
download | gl-1319c1e8763629f819626a289e59310971a7fcc1.tar.gz |
Workaround GLEW bug: C wrapper to silently cast GLchar into char.
-rw-r--r-- | program.go | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -5,6 +5,9 @@ package gl // #include "gl.h" +// GLuint workaroundGlGetUniformBlockIndex(GLuint program, const GLchar* uniformBlockName) { +// return glGetUniformBlockIndex(program, uniformBlockName); +// } import "C" import "unsafe" @@ -133,7 +136,13 @@ func (program Program) GetUniformBlockIndex(name string) UniformBlockIndex { cname := glString(name) defer freeString(cname) - return UniformBlockIndex(C.glGetUniformBlockIndex(C.GLuint(program), cname)) + // Workaround bug in GLEW < 1.8 where glGetUniformBlockIndex expects + // a string of char instead of a string of GLchar. We could ask everybody + // to bump their version of GLEW, or we could add a bit of C code that + // will silently cast GLchar into char. + + //return UniformBlockIndex(C.glGetUniformBlockIndex(C.GLuint(program), cname)) + return UniformBlockIndex(C.workaroundGlGetUniformBlockIndex(C.GLuint(program), cname)) } func (program Program) UniformBlockBinding(index UniformBlockIndex, binding uint) { |