From 8e8b25c26a1ecb1b317b6e68a9a13a766d59150b Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 2 Feb 2009 16:50:45 -0700 Subject: demos: update multitex.c GLSL demo to use vertex arrays or glVertex-mode Press 'a' to toggle drawing mode. --- progs/glsl/multitex.c | 88 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 67 insertions(+), 21 deletions(-) (limited to 'progs/glsl/multitex.c') diff --git a/progs/glsl/multitex.c b/progs/glsl/multitex.c index 096d40f64d..b4be463787 100644 --- a/progs/glsl/multitex.c +++ b/progs/glsl/multitex.c @@ -47,9 +47,12 @@ static const char *TexFiles[2] = static GLuint Program; -static GLfloat Xrot = -90.0, Yrot = .0, Zrot = 0.0; +static GLfloat Xrot = 0.0, Yrot = .0, Zrot = 0.0; static GLfloat EyeDist = 10; static GLboolean Anim = GL_TRUE; +static GLboolean UseArrays = GL_TRUE; + +static GLint VertCoord_attr = -1, TexCoord0_attr = -1, TexCoord1_attr = -1; /* value[0] = tex unit */ @@ -60,32 +63,62 @@ static struct uniform_info Uniforms[] = { }; +static const GLfloat Tex0Coords[4][2] = { + { 0.0, 0.0 }, { 2.0, 0.0 }, { 2.0, 2.0 }, { 0.0, 2.0 } +}; + +static const GLfloat Tex1Coords[4][2] = { + { 0.0, 0.0 }, { 1.0, 0.0 }, { 1.0, 1.0 }, { 0.0, 1.0 } +}; + +static const GLfloat VertCoords[4][2] = { + { -3.0, -3.0 }, { 3.0, -3.0 }, { 3.0, 3.0 }, { -3.0, 3.0 } +}; + + static void -DrawPolygon(GLfloat size) +DrawPolygonArray(void) { - glPushMatrix(); - glRotatef(90, 1, 0, 0); - glNormal3f(0, 0, 1); - glBegin(GL_POLYGON); + if (VertCoord_attr >= 0) { + glVertexAttribPointer_func(VertCoord_attr, 2, GL_FLOAT, GL_FALSE, + 0, VertCoords); + glEnableVertexAttribArray_func(VertCoord_attr); + } + else { + glVertexPointer(2, GL_FLOAT, 0, VertCoords); + glEnable(GL_VERTEX_ARRAY); + } - glMultiTexCoord2f(GL_TEXTURE0, 0, 0); - glMultiTexCoord2f(GL_TEXTURE1, 0, 0); - glVertex2f(-size, -size); + glVertexAttribPointer_func(TexCoord0_attr, 2, GL_FLOAT, GL_FALSE, + 0, Tex0Coords); + glEnableVertexAttribArray_func(TexCoord0_attr); - glMultiTexCoord2f(GL_TEXTURE0, 2, 0); - glMultiTexCoord2f(GL_TEXTURE1, 1, 0); - glVertex2f( size, -size); + glVertexAttribPointer_func(TexCoord1_attr, 2, GL_FLOAT, GL_FALSE, + 0, Tex1Coords); + glEnableVertexAttribArray_func(TexCoord1_attr); - glMultiTexCoord2f(GL_TEXTURE0, 2, 2); - glMultiTexCoord2f(GL_TEXTURE1, 1, 1); - glVertex2f( size, size); + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); +} - glMultiTexCoord2f(GL_TEXTURE0, 0, 2); - glMultiTexCoord2f(GL_TEXTURE1, 0, 1); - glVertex2f(-size, size); + +static void +DrawPolygonVert(void) +{ + GLuint i; + + glBegin(GL_TRIANGLE_FAN); + + for (i = 0; i < 4; i++) { + glVertexAttrib2fv_func(TexCoord0_attr, Tex0Coords[i]); + glVertexAttrib2fv_func(TexCoord1_attr, Tex1Coords[i]); + + if (VertCoord_attr >= 0) + glVertexAttrib2fv_func(VertCoord_attr, VertCoords[i]); + else + glVertex2fv(VertCoords[i]); + } glEnd(); - glPopMatrix(); } @@ -100,7 +133,10 @@ draw(void) glRotatef(Yrot, 0, 1, 0); glRotatef(Xrot, 1, 0, 0); - DrawPolygon(3.0); + if (UseArrays) + DrawPolygonArray(); + else + DrawPolygonVert(); glPopMatrix(); @@ -123,8 +159,11 @@ key(unsigned char k, int x, int y) (void) x; (void) y; switch (k) { - case ' ': case 'a': + UseArrays = !UseArrays; + printf("Arrays: %d\n", UseArrays); + break; + case ' ': Anim = !Anim; if (Anim) glutIdleFunc(idle); @@ -232,6 +271,13 @@ CreateProgram(const char *vertProgFile, const char *fragProgFile, InitUniforms(program, uniforms); + TexCoord0_attr = glGetAttribLocation_func(program, "TexCoord0"); + TexCoord1_attr = glGetAttribLocation_func(program, "TexCoord1"); + VertCoord_attr = glGetAttribLocation_func(program, "VertCoord"); + printf("TexCoord0_attr = %d\n", TexCoord0_attr); + printf("TexCoord1_attr = %d\n", TexCoord1_attr); + printf("VertCoord_attr = %d\n", VertCoord_attr); + return program; } -- cgit v1.2.3 From 58fadc624281b3f0bbe084e3e8af28a61036ca94 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 22 May 2009 13:00:49 -0600 Subject: demos: fix multitex.c VertCoord attribute mapping If the multitex.vert shader uses the VertCoord generic vertex attribute instead of the pre-defined gl_Vertex attribute, we need to make sure that VertCoord gets bound to generic vertex attribute zero. That's because we need to call glVertexAttrib2fv(0, xy) after all the other vertex attributes have been set since setting generic attribute 0 triggers vertex submission. Before, we wound up issuing the vertex attributes in the order 0, 1, 2 which caused the first vertex to be submitted before all the attributes were set. Now, the attributes are set in 1, 2, 0 order. --- progs/glsl/multitex.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'progs/glsl/multitex.c') diff --git a/progs/glsl/multitex.c b/progs/glsl/multitex.c index b4be463787..bbf58af055 100644 --- a/progs/glsl/multitex.c +++ b/progs/glsl/multitex.c @@ -271,9 +271,24 @@ CreateProgram(const char *vertProgFile, const char *fragProgFile, InitUniforms(program, uniforms); + VertCoord_attr = glGetAttribLocation_func(program, "VertCoord"); + if (VertCoord_attr > 0) { + /* We want the VertCoord attrib to have position zero so that + * the call to glVertexAttrib(0, xyz) triggers vertex processing. + * Otherwise, if TexCoord0 or TexCoord1 gets position 0 we'd have + * to set that attribute last (which is a PITA to manage). + */ + glBindAttribLocation_func(program, 0, "VertCoord"); + /* re-link */ + glLinkProgram_func(program); + /* VertCoord_attr should be zero now */ + VertCoord_attr = glGetAttribLocation_func(program, "VertCoord"); + assert(VertCoord_attr == 0); + } + TexCoord0_attr = glGetAttribLocation_func(program, "TexCoord0"); TexCoord1_attr = glGetAttribLocation_func(program, "TexCoord1"); - VertCoord_attr = glGetAttribLocation_func(program, "VertCoord"); + printf("TexCoord0_attr = %d\n", TexCoord0_attr); printf("TexCoord1_attr = %d\n", TexCoord1_attr); printf("VertCoord_attr = %d\n", VertCoord_attr); -- cgit v1.2.3 From 891a2bdd7d11086712500cf916efbc1b733f094b Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 22 May 2009 13:12:28 -0600 Subject: demos: extend glsl/multitex.c to use a vertex buffer object --- progs/glsl/multitex.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 87 insertions(+), 6 deletions(-) (limited to 'progs/glsl/multitex.c') diff --git a/progs/glsl/multitex.c b/progs/glsl/multitex.c index b4be463787..1a1c63aaf4 100644 --- a/progs/glsl/multitex.c +++ b/progs/glsl/multitex.c @@ -51,6 +51,8 @@ static GLfloat Xrot = 0.0, Yrot = .0, Zrot = 0.0; static GLfloat EyeDist = 10; static GLboolean Anim = GL_TRUE; static GLboolean UseArrays = GL_TRUE; +static GLboolean UseVBO = GL_TRUE; +static GLuint VBO = 0; static GLint VertCoord_attr = -1, TexCoord0_attr = -1, TexCoord1_attr = -1; @@ -76,28 +78,81 @@ static const GLfloat VertCoords[4][2] = { }; + +static void +SetupVertexBuffer(void) +{ + glGenBuffersARB_func(1, &VBO); + glBindBufferARB_func(GL_ARRAY_BUFFER_ARB, VBO); + + glBufferDataARB_func(GL_ARRAY_BUFFER_ARB, + sizeof(VertCoords) + + sizeof(Tex0Coords) + + sizeof(Tex1Coords), + NULL, + GL_STATIC_DRAW_ARB); + + /* non-interleaved vertex arrays */ + + glBufferSubDataARB_func(GL_ARRAY_BUFFER_ARB, + 0, /* offset */ + sizeof(VertCoords), /* size */ + VertCoords); /* data */ + + glBufferSubDataARB_func(GL_ARRAY_BUFFER_ARB, + sizeof(VertCoords), /* offset */ + sizeof(Tex0Coords), /* size */ + Tex0Coords); /* data */ + + glBufferSubDataARB_func(GL_ARRAY_BUFFER_ARB, + sizeof(VertCoords) + + sizeof(Tex0Coords), /* offset */ + sizeof(Tex1Coords), /* size */ + Tex1Coords); /* data */ + + glBindBufferARB_func(GL_ARRAY_BUFFER_ARB, 0); +} + + static void DrawPolygonArray(void) { + void *vertPtr, *tex0Ptr, *tex1Ptr; + + if (UseVBO) { + glBindBufferARB_func(GL_ARRAY_BUFFER_ARB, VBO); + vertPtr = (void *) 0; + tex0Ptr = (void *) sizeof(VertCoords); + tex1Ptr = (void *) (sizeof(VertCoords) + sizeof(Tex0Coords)); + } + else { + glBindBufferARB_func(GL_ARRAY_BUFFER_ARB, 0); + vertPtr = VertCoords; + tex0Ptr = Tex0Coords; + tex1Ptr = Tex1Coords; + } + if (VertCoord_attr >= 0) { glVertexAttribPointer_func(VertCoord_attr, 2, GL_FLOAT, GL_FALSE, - 0, VertCoords); + 0, vertPtr); glEnableVertexAttribArray_func(VertCoord_attr); } else { - glVertexPointer(2, GL_FLOAT, 0, VertCoords); + glVertexPointer(2, GL_FLOAT, 0, vertPtr); glEnable(GL_VERTEX_ARRAY); } glVertexAttribPointer_func(TexCoord0_attr, 2, GL_FLOAT, GL_FALSE, - 0, Tex0Coords); + 0, tex0Ptr); glEnableVertexAttribArray_func(TexCoord0_attr); glVertexAttribPointer_func(TexCoord1_attr, 2, GL_FLOAT, GL_FALSE, - 0, Tex1Coords); + 0, tex1Ptr); glEnableVertexAttribArray_func(TexCoord1_attr); glDrawArrays(GL_TRIANGLE_FAN, 0, 4); + + glBindBufferARB_func(GL_ARRAY_BUFFER_ARB, 0); } @@ -163,6 +218,10 @@ key(unsigned char k, int x, int y) UseArrays = !UseArrays; printf("Arrays: %d\n", UseArrays); break; + case 'v': + UseVBO = !UseVBO; + printf("Use VBO: %d\n", UseVBO); + break; case ' ': Anim = !Anim; if (Anim) @@ -271,9 +330,24 @@ CreateProgram(const char *vertProgFile, const char *fragProgFile, InitUniforms(program, uniforms); + VertCoord_attr = glGetAttribLocation_func(program, "VertCoord"); + if (VertCoord_attr > 0) { + /* We want the VertCoord attrib to have position zero so that + * the call to glVertexAttrib(0, xyz) triggers vertex processing. + * Otherwise, if TexCoord0 or TexCoord1 gets position 0 we'd have + * to set that attribute last (which is a PITA to manage). + */ + glBindAttribLocation_func(program, 0, "VertCoord"); + /* re-link */ + glLinkProgram_func(program); + /* VertCoord_attr should be zero now */ + VertCoord_attr = glGetAttribLocation_func(program, "VertCoord"); + assert(VertCoord_attr == 0); + } + TexCoord0_attr = glGetAttribLocation_func(program, "TexCoord0"); TexCoord1_attr = glGetAttribLocation_func(program, "TexCoord1"); - VertCoord_attr = glGetAttribLocation_func(program, "VertCoord"); + printf("TexCoord0_attr = %d\n", TexCoord0_attr); printf("TexCoord1_attr = %d\n", TexCoord1_attr); printf("VertCoord_attr = %d\n", VertCoord_attr); @@ -299,12 +373,19 @@ InitGL(void) /*exit(1);*/ } printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - + printf("Usage:\n"); + printf(" a - toggle arrays vs. immediate mode rendering\n"); + printf(" v - toggle VBO usage for array rendering\n"); + printf(" z/Z - change viewing distance\n"); + printf(" SPACE - toggle animation\n"); + printf(" Esc - exit\n"); GetExtensionFuncs(); InitTextures(); InitPrograms(); + SetupVertexBuffer(); + glEnable(GL_DEPTH_TEST); glClearColor(.6, .6, .9, 0); -- cgit v1.2.3 From b799af91d5ffbee1481161fec29eb4c92b161272 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Mon, 29 Jun 2009 14:13:58 +0100 Subject: progs/glsl: compile with scons and glew Get most of these working with scons. --- progs/SConscript | 1 + progs/glsl/SConscript | 55 ++++++++++++++++++++++++++++++++++++++++++ progs/glsl/array.c | 3 ++- progs/glsl/bitmap.c | 2 ++ progs/glsl/brick.c | 2 ++ progs/glsl/bump.c | 1 + progs/glsl/convolutions.c | 3 +++ progs/glsl/deriv.c | 2 ++ progs/glsl/fragcoord.c | 2 ++ progs/glsl/identity.c | 2 ++ progs/glsl/linktest.c | 2 ++ progs/glsl/mandelbrot.c | 2 ++ progs/glsl/multinoise.c | 2 ++ progs/glsl/multitex.c | 2 ++ progs/glsl/noise.c | 2 ++ progs/glsl/pointcoord.c | 2 ++ progs/glsl/points.c | 2 ++ progs/glsl/samplers.c | 2 ++ progs/glsl/shadow_sampler.c | 2 ++ progs/glsl/skinning.c | 2 ++ progs/glsl/texaaline.c | 2 ++ progs/glsl/texdemo1.c | 2 ++ progs/glsl/toyball.c | 2 ++ progs/glsl/trirast.c | 2 ++ progs/glsl/twoside.c | 2 ++ progs/glsl/vert-or-frag-only.c | 2 ++ progs/glsl/vert-tex.c | 2 ++ 27 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 progs/glsl/SConscript (limited to 'progs/glsl/multitex.c') diff --git a/progs/SConscript b/progs/SConscript index 71ebe5e0f3..620dd30e69 100644 --- a/progs/SConscript +++ b/progs/SConscript @@ -1,6 +1,7 @@ SConscript([ 'util/SConscript', 'demos/SConscript', + 'glsl/SConscript', 'redbook/SConscript', 'samples/SConscript', 'tests/SConscript', diff --git a/progs/glsl/SConscript b/progs/glsl/SConscript new file mode 100644 index 0000000000..7a4549cd70 --- /dev/null +++ b/progs/glsl/SConscript @@ -0,0 +1,55 @@ +Import('*') + +if not env['GLUT']: + Return() + +env = env.Clone() + +env.Prepend(CPPPATH = [ + '../util', +]) + +env.Prepend(LIBS = [ + util, + '$GLUT_LIB' +]) + +if env['platform'] == 'windows': + env.Append(CPPDEFINES = ['NOMINMAX']) + env.Prepend(LIBS = ['winmm']) + +progs = [ + 'array', + 'bitmap', + 'brick', + 'bump', + 'convolutions', + 'deriv', + 'fragcoord', + 'identity', + 'linktest', + 'mandelbrot', + 'multinoise', + 'multitex', + 'noise', + 'noise2', + 'pointcoord', + 'points', + 'samplers', + 'shadow_sampler', + 'skinning', + 'texaaline', + 'texdemo1', + 'toyball', + 'trirast', + 'twoside', + 'vert-or-frag-only', + 'vert-tex', +] + +for prog in progs: + env.Program( + target = prog, + source = prog + '.c', + ) + diff --git a/progs/glsl/array.c b/progs/glsl/array.c index 46ef8043bc..6da15b2fcc 100644 --- a/progs/glsl/array.c +++ b/progs/glsl/array.c @@ -9,9 +9,9 @@ #include #include #include +#include #include #include -#include #include "extfuncs.h" #include "shaderutil.h" @@ -248,6 +248,7 @@ main(int argc, char *argv[]) glutInitWindowSize(500, 500); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); diff --git a/progs/glsl/bitmap.c b/progs/glsl/bitmap.c index d488ec6cb9..08fac15c89 100644 --- a/progs/glsl/bitmap.c +++ b/progs/glsl/bitmap.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -309,6 +310,7 @@ main(int argc, char *argv[]) glutInitWindowSize(WinWidth, WinHeight); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); Win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); diff --git a/progs/glsl/brick.c b/progs/glsl/brick.c index 526ef0e2e3..607acd0597 100644 --- a/progs/glsl/brick.c +++ b/progs/glsl/brick.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -191,6 +192,7 @@ main(int argc, char *argv[]) glutInitWindowSize(400, 400); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); diff --git a/progs/glsl/bump.c b/progs/glsl/bump.c index 0ea1f8331f..c401e590f7 100644 --- a/progs/glsl/bump.c +++ b/progs/glsl/bump.c @@ -288,6 +288,7 @@ main(int argc, char *argv[]) glutInitWindowSize(400, 400); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); diff --git a/progs/glsl/convolutions.c b/progs/glsl/convolutions.c index ac71c68235..22ce7edcdc 100644 --- a/progs/glsl/convolutions.c +++ b/progs/glsl/convolutions.c @@ -5,6 +5,8 @@ * Author: Zack Rusin */ +#include + #define GL_GLEXT_PROTOTYPES #include "readtex.h" @@ -455,6 +457,7 @@ int main(int argc, char **argv) exit(1); } + glewInit(); init(); glutReshapeFunc(reshape); diff --git a/progs/glsl/deriv.c b/progs/glsl/deriv.c index e69f0b82c4..3fd674c331 100644 --- a/progs/glsl/deriv.c +++ b/progs/glsl/deriv.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -228,6 +229,7 @@ main(int argc, char *argv[]) glutInitWindowSize(200, 200); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); diff --git a/progs/glsl/fragcoord.c b/progs/glsl/fragcoord.c index 0b7561f3e4..509ad47e7f 100644 --- a/progs/glsl/fragcoord.c +++ b/progs/glsl/fragcoord.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -174,6 +175,7 @@ main(int argc, char *argv[]) glutInitWindowSize(WinWidth, WinHeight); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutDisplayFunc(Redisplay); diff --git a/progs/glsl/identity.c b/progs/glsl/identity.c index 37579eb346..5ba7468cc4 100644 --- a/progs/glsl/identity.c +++ b/progs/glsl/identity.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -195,6 +196,7 @@ main(int argc, char *argv[]) glutInitWindowSize(200, 200); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); diff --git a/progs/glsl/linktest.c b/progs/glsl/linktest.c index 988d082341..fe5d1564e0 100644 --- a/progs/glsl/linktest.c +++ b/progs/glsl/linktest.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -245,6 +246,7 @@ main(int argc, char *argv[]) glutInitWindowSize(300, 300); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); Win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutDisplayFunc(Redisplay); diff --git a/progs/glsl/mandelbrot.c b/progs/glsl/mandelbrot.c index 24e1992665..eeea4eb52a 100644 --- a/progs/glsl/mandelbrot.c +++ b/progs/glsl/mandelbrot.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -206,6 +207,7 @@ main(int argc, char *argv[]) glutInitWindowSize(400, 400); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); diff --git a/progs/glsl/multinoise.c b/progs/glsl/multinoise.c index 2351863aff..400511508e 100644 --- a/progs/glsl/multinoise.c +++ b/progs/glsl/multinoise.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -270,6 +271,7 @@ main(int argc, char *argv[]) glutInitWindowSize(400, 400); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); diff --git a/progs/glsl/multitex.c b/progs/glsl/multitex.c index bbf58af055..724f15e1a3 100644 --- a/progs/glsl/multitex.c +++ b/progs/glsl/multitex.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "GL/glut.h" #include "readtex.h" #include "extfuncs.h" @@ -334,6 +335,7 @@ main(int argc, char *argv[]) glutInitWindowSize(500, 400); glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); glutCreateWindow(Demo); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(key); glutSpecialFunc(specialkey); diff --git a/progs/glsl/noise.c b/progs/glsl/noise.c index bd8f50036b..83e4696fc9 100644 --- a/progs/glsl/noise.c +++ b/progs/glsl/noise.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -207,6 +208,7 @@ main(int argc, char *argv[]) glutInitWindowSize(400, 400); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); diff --git a/progs/glsl/pointcoord.c b/progs/glsl/pointcoord.c index b240077c25..aa01e2166d 100644 --- a/progs/glsl/pointcoord.c +++ b/progs/glsl/pointcoord.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -195,6 +196,7 @@ main(int argc, char *argv[]) glutInitWindowSize(WinWidth, WinHeight); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutDisplayFunc(Redisplay); diff --git a/progs/glsl/points.c b/progs/glsl/points.c index 392dc4db85..1b346228aa 100644 --- a/progs/glsl/points.c +++ b/progs/glsl/points.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -248,6 +249,7 @@ main(int argc, char *argv[]) glutInitWindowSize(WinWidth, WinHeight); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); Win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); diff --git a/progs/glsl/samplers.c b/progs/glsl/samplers.c index 3fb8577d5e..cbb264dad1 100644 --- a/progs/glsl/samplers.c +++ b/progs/glsl/samplers.c @@ -39,6 +39,7 @@ #include #include #include +#include #include "GL/glut.h" #include "readtex.h" #include "extfuncs.h" @@ -357,6 +358,7 @@ main(int argc, char *argv[]) glutInitWindowSize(500, 400); glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); glutCreateWindow(Demo); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(key); glutSpecialFunc(specialkey); diff --git a/progs/glsl/shadow_sampler.c b/progs/glsl/shadow_sampler.c index 2902b53552..673ad465ad 100644 --- a/progs/glsl/shadow_sampler.c +++ b/progs/glsl/shadow_sampler.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -329,6 +330,7 @@ main(int argc, char *argv[]) glutInitWindowSize(400, 300); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutDisplayFunc(Redisplay); diff --git a/progs/glsl/skinning.c b/progs/glsl/skinning.c index 8a65d0667c..d7b968fed0 100644 --- a/progs/glsl/skinning.c +++ b/progs/glsl/skinning.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -266,6 +267,7 @@ main(int argc, char *argv[]) glutInitWindowSize(500, 500); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); diff --git a/progs/glsl/texaaline.c b/progs/glsl/texaaline.c index 0b3cc84958..6720941a6e 100644 --- a/progs/glsl/texaaline.c +++ b/progs/glsl/texaaline.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -359,6 +360,7 @@ main(int argc, char *argv[]) glutInitWindowSize(WinWidth, WinHeight); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutDisplayFunc(Redisplay); diff --git a/progs/glsl/texdemo1.c b/progs/glsl/texdemo1.c index 96ddca1f32..08a87a5152 100644 --- a/progs/glsl/texdemo1.c +++ b/progs/glsl/texdemo1.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "GL/glut.h" #include "readtex.h" #include "extfuncs.h" @@ -426,6 +427,7 @@ main(int argc, char *argv[]) glutInitWindowSize(500, 400); glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); win = glutCreateWindow(Demo); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(key); glutSpecialFunc(specialkey); diff --git a/progs/glsl/toyball.c b/progs/glsl/toyball.c index 37ad6bf291..2b644acb6d 100644 --- a/progs/glsl/toyball.c +++ b/progs/glsl/toyball.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -212,6 +213,7 @@ main(int argc, char *argv[]) glutInitWindowSize(400, 400); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); diff --git a/progs/glsl/trirast.c b/progs/glsl/trirast.c index 89df64fc71..3d4decaa2f 100644 --- a/progs/glsl/trirast.c +++ b/progs/glsl/trirast.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -247,6 +248,7 @@ main(int argc, char *argv[]) glutInitWindowSize(WinWidth, WinHeight); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutDisplayFunc(Redisplay); diff --git a/progs/glsl/twoside.c b/progs/glsl/twoside.c index 06488bd175..9ebc4ec360 100644 --- a/progs/glsl/twoside.c +++ b/progs/glsl/twoside.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -293,6 +294,7 @@ main(int argc, char *argv[]) glutInitWindowSize(WinWidth, WinHeight); glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutDisplayFunc(Redisplay); diff --git a/progs/glsl/vert-or-frag-only.c b/progs/glsl/vert-or-frag-only.c index f6eedd8327..8e1612aca4 100644 --- a/progs/glsl/vert-or-frag-only.c +++ b/progs/glsl/vert-or-frag-only.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -181,6 +182,7 @@ main(int argc, char *argv[]) glutInitWindowSize(400, 200); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); Win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutDisplayFunc(Redisplay); diff --git a/progs/glsl/vert-tex.c b/progs/glsl/vert-tex.c index 9d00a61054..b74bf50679 100644 --- a/progs/glsl/vert-tex.c +++ b/progs/glsl/vert-tex.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -266,6 +267,7 @@ main(int argc, char *argv[]) glutInitWindowSize(500, 500); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); win = glutCreateWindow(argv[0]); + glewInit(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); -- cgit v1.2.3 From 820436f97821b5e1774fda8daf86ea0dcc379186 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 8 Jul 2009 13:58:30 -0600 Subject: demos: use glEnable/DisableClientState() for vertex arrays --- progs/demos/isosurf.c | 4 ++-- progs/glsl/multitex.c | 2 +- progs/slang/vstest.c | 24 ++++++++++++------------ progs/tests/bufferobj.c | 8 ++++---- progs/tests/mapbufrange.c | 4 ++-- progs/tests/mapvbo.c | 4 ++-- progs/xdemos/glxswapcontrol.c | 8 ++++---- 7 files changed, 27 insertions(+), 27 deletions(-) (limited to 'progs/glsl/multitex.c') diff --git a/progs/demos/isosurf.c b/progs/demos/isosurf.c index 6923ca2bba..2e9dff1726 100644 --- a/progs/demos/isosurf.c +++ b/progs/demos/isosurf.c @@ -847,8 +847,8 @@ static void Init(int argc, char *argv[]) glClearColor(0.0, 0.0, 1.0, 0.0); glEnable( GL_DEPTH_TEST ); - glEnable( GL_VERTEX_ARRAY_EXT ); - glEnable( GL_NORMAL_ARRAY_EXT ); + glEnableClientState( GL_VERTEX_ARRAY ); + glEnableClientState( GL_NORMAL_ARRAY ); glMatrixMode(GL_PROJECTION); glLoadIdentity(); diff --git a/progs/glsl/multitex.c b/progs/glsl/multitex.c index cbf173304c..2e3770dc40 100644 --- a/progs/glsl/multitex.c +++ b/progs/glsl/multitex.c @@ -140,7 +140,7 @@ DrawPolygonArray(void) } else { glVertexPointer(2, GL_FLOAT, 0, vertPtr); - glEnable(GL_VERTEX_ARRAY); + glEnableClientState(GL_VERTEX_ARRAY); } glVertexAttribPointer_func(TexCoord0_attr, 2, GL_FLOAT, GL_FALSE, diff --git a/progs/slang/vstest.c b/progs/slang/vstest.c index 5108d15742..472ea9b62e 100644 --- a/progs/slang/vstest.c +++ b/progs/slang/vstest.c @@ -128,29 +128,29 @@ static void va_render () { case C: glColorPointer (4, GL_FLOAT, 0, att->data); - glEnable (GL_COLOR_ARRAY); + glEnableClientState (GL_COLOR_ARRAY); break; case S: glSecondaryColorPointerEXT (4, GL_FLOAT, 0, att->data); - glEnable (GL_SECONDARY_COLOR_ARRAY_EXT); + glEnableClientState (GL_SECONDARY_COLOR_ARRAY_EXT); break; case N: glNormalPointer (GL_FLOAT, 0, att->data); - glEnable (GL_NORMAL_ARRAY); + glEnableClientState (GL_NORMAL_ARRAY); break; case V: glVertexPointer (4, GL_FLOAT, 0, att->data); - glEnable (GL_VERTEX_ARRAY); + glEnableClientState (GL_VERTEX_ARRAY); break; case T: assert (att->index >= 0 && att->index < 8); glClientActiveTextureARB (GL_TEXTURE0_ARB + att->index); glTexCoordPointer (4, GL_FLOAT, 0, att->data); - glEnable (GL_TEXTURE_COORD_ARRAY); + glEnableClientState (GL_TEXTURE_COORD_ARRAY); break; case F: glFogCoordPointerEXT (GL_FLOAT, 0, att->data); - glEnable (GL_FOG_COORDINATE_ARRAY_EXT); + glEnableClientState (GL_FOG_COORDINATE_ARRAY_EXT); break; case A: assert (att->index > 0 && att->index < 16); @@ -169,23 +169,23 @@ static void va_render () switch (att->dispatch) { case C: - glDisable (GL_COLOR_ARRAY); + glDisableClientState (GL_COLOR_ARRAY); break; case S: - glDisable (GL_SECONDARY_COLOR_ARRAY_EXT); + glDisableClientState (GL_SECONDARY_COLOR_ARRAY_EXT); break; case N: - glDisable (GL_NORMAL_ARRAY); + glDisableClientState (GL_NORMAL_ARRAY); break; case V: - glDisable (GL_VERTEX_ARRAY); + glDisableClientState (GL_VERTEX_ARRAY); break; case T: glClientActiveTextureARB (GL_TEXTURE0_ARB + att->index); - glDisable (GL_TEXTURE_COORD_ARRAY); + glDisableClientState (GL_TEXTURE_COORD_ARRAY); break; case F: - glDisable (GL_FOG_COORDINATE_ARRAY_EXT); + glDisableClientState (GL_FOG_COORDINATE_ARRAY_EXT); break; case A: glDisableVertexAttribArrayARB (att->index); diff --git a/progs/tests/bufferobj.c b/progs/tests/bufferobj.c index 220bd1f506..d4ca270016 100644 --- a/progs/tests/bufferobj.c +++ b/progs/tests/bufferobj.c @@ -73,7 +73,7 @@ static void DrawObject( const struct object *obj ) glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->VertexBufferID); glVertexPointer(3, GL_FLOAT, obj->VertexStride, (void *) obj->VertexOffset); - glEnable(GL_VERTEX_ARRAY); + glEnableClientState(GL_VERTEX_ARRAY); /* test push/pop attrib */ /* XXX this leads to a segfault with NVIDIA's 53.36 driver */ @@ -88,7 +88,7 @@ static void DrawObject( const struct object *obj ) #endif glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->ColorBufferID); glColorPointer(3, GL_FLOAT, obj->ColorStride, (void *) obj->ColorOffset); - glEnable(GL_COLOR_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); if (obj->NumElements > 0) { /* indexed arrays */ @@ -223,11 +223,11 @@ CreateVertexArrayObject(struct object *obj) glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->VertexBufferID); glVertexPointer(3, GL_FLOAT, obj->VertexStride, (void *) obj->VertexOffset); - glEnable(GL_VERTEX_ARRAY); + glEnableClientState(GL_VERTEX_ARRAY); glBindBufferARB(GL_ARRAY_BUFFER_ARB, obj->ColorBufferID); glColorPointer(3, GL_FLOAT, obj->ColorStride, (void *) obj->ColorOffset); - glEnable(GL_COLOR_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); glBindVertexArray(0); } diff --git a/progs/tests/mapbufrange.c b/progs/tests/mapbufrange.c index 0021bb2607..76e02dd406 100644 --- a/progs/tests/mapbufrange.c +++ b/progs/tests/mapbufrange.c @@ -98,10 +98,10 @@ Draw(void) { glBindBufferARB(GL_ARRAY_BUFFER_ARB, BufferID); glVertexPointer(3, GL_FLOAT, 24, 0); - glEnable(GL_VERTEX_ARRAY); + glEnableClientState(GL_VERTEX_ARRAY); glColorPointer(3, GL_FLOAT, 24, (void*) 12); - glEnable(GL_COLOR_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); glDrawArrays(GL_QUADS, 0, NumRects * 4); diff --git a/progs/tests/mapvbo.c b/progs/tests/mapvbo.c index c392e76835..52a22a5e79 100644 --- a/progs/tests/mapvbo.c +++ b/progs/tests/mapvbo.c @@ -54,10 +54,10 @@ Draw(void) glBindBufferARB(GL_ARRAY_BUFFER_ARB, BufferID); glVertexPointer(3, GL_FLOAT, 24, 0); - glEnable(GL_VERTEX_ARRAY); + glEnableClientState(GL_VERTEX_ARRAY); glColorPointer(3, GL_FLOAT, 24, (void*) 12); - glEnable(GL_COLOR_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); glDrawArrays(GL_TRIANGLE_FAN, 0, 4); diff --git a/progs/xdemos/glxswapcontrol.c b/progs/xdemos/glxswapcontrol.c index 5a5d084f90..df9f7ad784 100644 --- a/progs/xdemos/glxswapcontrol.c +++ b/progs/xdemos/glxswapcontrol.c @@ -303,13 +303,13 @@ draw(void) glDisable(GL_LIGHTING); glShadeModel(GL_SMOOTH); - glEnable( GL_VERTEX_ARRAY ); - glEnable( GL_COLOR_ARRAY ); + glEnableClientState( GL_VERTEX_ARRAY ); + glEnableClientState( GL_COLOR_ARRAY ); glVertexPointer( 3, GL_FLOAT, 0, vert ); glColorPointer( 3, GL_FLOAT, 0, col ); glDrawArrays( GL_POLYGON, 0, 4 ); - glDisable( GL_COLOR_ARRAY ); - glDisable( GL_VERTEX_ARRAY ); + glDisableClientState( GL_COLOR_ARRAY ); + glDisableClientState( GL_VERTEX_ARRAY ); glMatrixMode(GL_PROJECTION); glLoadIdentity(); -- cgit v1.2.3 From f742f2c0b308430da38f8eeddfed889f883615e9 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 8 Jul 2009 13:59:03 -0600 Subject: demos: indentation fix --- progs/glsl/multitex.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'progs/glsl/multitex.c') diff --git a/progs/glsl/multitex.c b/progs/glsl/multitex.c index 2e3770dc40..c6e0b10b49 100644 --- a/progs/glsl/multitex.c +++ b/progs/glsl/multitex.c @@ -153,7 +153,7 @@ DrawPolygonArray(void) glDrawArrays(GL_TRIANGLE_FAN, 0, 4); - glBindBufferARB_func(GL_ARRAY_BUFFER_ARB, 0); + glBindBufferARB_func(GL_ARRAY_BUFFER_ARB, 0); } -- cgit v1.2.3 From ee0b1bc7d3fe659e0ed2f34a61b322f2bd2b8843 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 17 Jul 2009 13:23:11 -0600 Subject: progs/glsl: finish conversion to GLEW This is a follow-on to b799af91d5ffbee1481161fec29eb4c92b161272. Remove _func function suffix and unneeded #includes. --- progs/glsl/array.c | 16 +++++-------- progs/glsl/bitmap.c | 27 +++++++++------------ progs/glsl/brick.c | 19 ++++++--------- progs/glsl/bump.c | 24 ++++++++----------- progs/glsl/deriv.c | 19 ++++++--------- progs/glsl/fragcoord.c | 19 ++++++--------- progs/glsl/identity.c | 19 ++++++--------- progs/glsl/linktest.c | 53 +++++++++++++++++++----------------------- progs/glsl/mandelbrot.c | 31 +++++++++++------------- progs/glsl/multinoise.c | 39 ++++++++++++++----------------- progs/glsl/multitex.c | 35 +++++++++++++--------------- progs/glsl/noise.c | 21 +++++++---------- progs/glsl/pointcoord.c | 23 +++++++----------- progs/glsl/points.c | 23 +++++++----------- progs/glsl/samplers.c | 9 +++---- progs/glsl/shadow_sampler.c | 49 ++++++++++++++++++-------------------- progs/glsl/skinning.c | 27 +++++++++------------ progs/glsl/texaaline.c | 5 ---- progs/glsl/texdemo1.c | 9 +++---- progs/glsl/toyball.c | 13 ++++------- progs/glsl/trirast.c | 31 +++++++++++------------- progs/glsl/twoside.c | 27 +++++++++------------ progs/glsl/vert-or-frag-only.c | 25 ++++++++------------ progs/glsl/vert-tex.c | 13 ++++------- 24 files changed, 232 insertions(+), 344 deletions(-) (limited to 'progs/glsl/multitex.c') diff --git a/progs/glsl/array.c b/progs/glsl/array.c index 6da15b2fcc..4ed18485ea 100644 --- a/progs/glsl/array.c +++ b/progs/glsl/array.c @@ -10,9 +10,7 @@ #include #include #include -#include #include -#include "extfuncs.h" #include "shaderutil.h" @@ -144,9 +142,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -219,19 +217,17 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - vertShader = CompileShaderText(GL_VERTEX_SHADER, VertShaderText); fragShader = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderText); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); /* Setup the HeightArray[] uniform */ for (i = 0; i < 20; i++) HeightArray[i] = i / 20.0; - u = glGetUniformLocation_func(program, "HeightArray"); - glUniform1fv_func(u, 20, HeightArray); + u = glGetUniformLocation(program, "HeightArray"); + glUniform1fv(u, 20, HeightArray); assert(glGetError() == 0); diff --git a/progs/glsl/bitmap.c b/progs/glsl/bitmap.c index 08fac15c89..8b1853d9ab 100644 --- a/progs/glsl/bitmap.c +++ b/progs/glsl/bitmap.c @@ -10,10 +10,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -79,11 +76,11 @@ Redisplay(void) BitmapText("-X"); } else { - glUseProgram_func(Program); + glUseProgram(Program); /* vertex positions (deltas) depend on texture size and window size */ if (uScale != -1) { - glUniform2f_func(uScale, + glUniform2f(uScale, 2.0 * TEX_WIDTH / WinWidth, 2.0 * TEX_HEIGHT / WinHeight); } @@ -106,7 +103,7 @@ Redisplay(void) glTexCoord2f(0, 1); glVertex3fv(nx); glEnd(); - glUseProgram_func(0); + glUseProgram(0); } glPopMatrix(); @@ -161,9 +158,9 @@ Key(unsigned char key, int x, int y) printf("Using billboard texture\n"); break; case 27: - glDeleteShader_func(FragShader); - glDeleteShader_func(VertShader); - glDeleteProgram_func(Program); + glDeleteShader(FragShader); + glDeleteShader(VertShader); + glDeleteProgram(Program); glutDestroyWindow(Win); exit(0); } @@ -278,21 +275,19 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - VertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText); FragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText); Program = LinkShaders(VertShader, FragShader); - glUseProgram_func(Program); + glUseProgram(Program); - uScale = glGetUniformLocation_func(Program, "scale"); - uTex = glGetUniformLocation_func(Program, "tex2d"); + uScale = glGetUniformLocation(Program, "scale"); + uTex = glGetUniformLocation(Program, "tex2d"); if (uTex != -1) { - glUniform1i_func(uTex, 0); /* tex unit 0 */ + glUniform1i(uTex, 0); /* tex unit 0 */ } - glUseProgram_func(0); + glUseProgram(0); glClearColor(0.3f, 0.3f, 0.3f, 0.0f); glEnable(GL_DEPTH_TEST); diff --git a/progs/glsl/brick.c b/progs/glsl/brick.c index 607acd0597..1d08b231e7 100644 --- a/progs/glsl/brick.c +++ b/progs/glsl/brick.c @@ -10,10 +10,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -83,9 +80,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -145,13 +142,11 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile); fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); InitUniforms(program, Uniforms); @@ -161,9 +156,9 @@ Init(void) printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - assert(glIsProgram_func(program)); - assert(glIsShader_func(fragShader)); - assert(glIsShader_func(vertShader)); + assert(glIsProgram(program)); + assert(glIsShader(fragShader)); + assert(glIsShader(vertShader)); glColor3f(1, 0, 0); } diff --git a/progs/glsl/bump.c b/progs/glsl/bump.c index c401e590f7..ddb986abcb 100644 --- a/progs/glsl/bump.c +++ b/progs/glsl/bump.c @@ -9,10 +9,8 @@ #include #include #include +#include #include -#include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -60,7 +58,7 @@ static void Square(GLfloat size) { glNormal3f(0, 0, 1); - glVertexAttrib3f_func(tangentAttrib, 1, 0, 0); + glVertexAttrib3f(tangentAttrib, 1, 0, 0); glBegin(GL_POLYGON); glTexCoord2f(0, 0); glVertex2f(-size, -size); glTexCoord2f(1, 0); glVertex2f( size, -size); @@ -164,9 +162,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -230,17 +228,15 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile); fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); - assert(glIsProgram_func(program)); - assert(glIsShader_func(fragShader)); - assert(glIsShader_func(vertShader)); + assert(glIsProgram(program)); + assert(glIsShader(fragShader)); + assert(glIsShader(vertShader)); assert(glGetError() == 0); @@ -250,7 +246,7 @@ Init(void) CheckError(__LINE__); - tangentAttrib = glGetAttribLocation_func(program, "Tangent"); + tangentAttrib = glGetAttribLocation(program, "Tangent"); printf("Tangent Attrib: %d\n", tangentAttrib); assert(tangentAttrib >= 0); diff --git a/progs/glsl/deriv.c b/progs/glsl/deriv.c index 3fd674c331..9cf1e40e3e 100644 --- a/progs/glsl/deriv.c +++ b/progs/glsl/deriv.c @@ -14,10 +14,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -71,9 +68,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -178,13 +175,11 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText); fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); /*assert(glGetError() == 0);*/ @@ -198,9 +193,9 @@ Init(void) printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - assert(glIsProgram_func(program)); - assert(glIsShader_func(fragShader)); - assert(glIsShader_func(vertShader)); + assert(glIsProgram(program)); + assert(glIsShader(fragShader)); + assert(glIsShader(vertShader)); glColor3f(1, 0, 0); } diff --git a/progs/glsl/fragcoord.c b/progs/glsl/fragcoord.c index 509ad47e7f..9f56a038c9 100644 --- a/progs/glsl/fragcoord.c +++ b/progs/glsl/fragcoord.c @@ -13,10 +13,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -86,9 +83,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -130,13 +127,11 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText); fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); /*assert(glGetError() == 0);*/ @@ -144,9 +139,9 @@ Init(void) printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - assert(glIsProgram_func(program)); - assert(glIsShader_func(fragShader)); - assert(glIsShader_func(vertShader)); + assert(glIsProgram(program)); + assert(glIsShader(fragShader)); + assert(glIsShader(vertShader)); glColor3f(1, 0, 0); } diff --git a/progs/glsl/identity.c b/progs/glsl/identity.c index 5ba7468cc4..a772ccd716 100644 --- a/progs/glsl/identity.c +++ b/progs/glsl/identity.c @@ -10,10 +10,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -70,9 +67,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -142,8 +139,6 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - if (FragProgFile) fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile); else @@ -156,7 +151,7 @@ Init(void) program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); /*assert(glGetError() == 0);*/ @@ -165,9 +160,9 @@ Init(void) printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - assert(glIsProgram_func(program)); - assert(glIsShader_func(fragShader)); - assert(glIsShader_func(vertShader)); + assert(glIsProgram(program)); + assert(glIsShader(fragShader)); + assert(glIsShader(vertShader)); glColor3f(1, 0, 0); } diff --git a/progs/glsl/linktest.c b/progs/glsl/linktest.c index fe5d1564e0..ec3fffbf9c 100644 --- a/progs/glsl/linktest.c +++ b/progs/glsl/linktest.c @@ -10,10 +10,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -133,11 +130,11 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(VertShader1); - glDeleteShader_func(VertShader2); - glDeleteShader_func(FragShader1); - glDeleteShader_func(FragShader2); - glDeleteProgram_func(Program); + glDeleteShader(VertShader1); + glDeleteShader(VertShader2); + glDeleteShader(FragShader1); + glDeleteShader(FragShader2); + glDeleteProgram(Program); glutDestroyWindow(Win); } @@ -176,11 +173,11 @@ static void CheckLink(GLuint prog) { GLint stat; - glGetProgramiv_func(prog, GL_LINK_STATUS, &stat); + glGetProgramiv(prog, GL_LINK_STATUS, &stat); if (!stat) { GLchar log[1000]; GLsizei len; - glGetProgramInfoLog_func(prog, 1000, &len, log); + glGetProgramInfoLog(prog, 1000, &len, log); fprintf(stderr, "Linker error:\n%s\n", log); } } @@ -192,8 +189,6 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); VertShader1 = CompileShaderText(GL_VERTEX_SHADER, VertShaderSource1); @@ -201,26 +196,26 @@ Init(void) FragShader1 = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderSource1); FragShader2 = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderSource2); - Program = glCreateProgram_func(); - glAttachShader_func(Program, VertShader1); - glAttachShader_func(Program, VertShader2); - glAttachShader_func(Program, FragShader1); - glAttachShader_func(Program, FragShader2); + Program = glCreateProgram(); + glAttachShader(Program, VertShader1); + glAttachShader(Program, VertShader2); + glAttachShader(Program, FragShader1); + glAttachShader(Program, FragShader2); - glLinkProgram_func(Program); + glLinkProgram(Program); CheckLink(Program); - glUseProgram_func(Program); + glUseProgram(Program); - uDiffuse = glGetUniformLocation_func(Program, "diffuse"); - uSpecular = glGetUniformLocation_func(Program, "specular"); - uTexture = glGetUniformLocation_func(Program, "texture"); + uDiffuse = glGetUniformLocation(Program, "diffuse"); + uSpecular = glGetUniformLocation(Program, "specular"); + uTexture = glGetUniformLocation(Program, "texture"); printf("DiffusePos %d SpecularPos %d TexturePos %d\n", uDiffuse, uSpecular, uTexture); - glUniform4fv_func(uDiffuse, 1, diffuse); - glUniform4fv_func(uSpecular, 1, specular); + glUniform4fv(uDiffuse, 1, diffuse); + glUniform4fv(uSpecular, 1, specular); glClearColor(0.3f, 0.3f, 0.3f, 0.0f); glEnable(GL_DEPTH_TEST); @@ -229,11 +224,11 @@ Init(void) glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular); glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 10.0f); - assert(glIsProgram_func(Program)); - assert(glIsShader_func(VertShader1)); - assert(glIsShader_func(VertShader2)); - assert(glIsShader_func(FragShader1)); - assert(glIsShader_func(FragShader2)); + assert(glIsProgram(Program)); + assert(glIsShader(VertShader1)); + assert(glIsShader(VertShader2)); + assert(glIsShader(FragShader1)); + assert(glIsShader(FragShader2)); glColor3f(1, 0, 0); } diff --git a/progs/glsl/mandelbrot.c b/progs/glsl/mandelbrot.c index eeea4eb52a..38dffc3e74 100644 --- a/progs/glsl/mandelbrot.c +++ b/progs/glsl/mandelbrot.c @@ -10,10 +10,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -57,9 +54,9 @@ Redisplay(void) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* set interactive uniform parameters */ - glUniform1fv_func(uZoom, 1, &zoom); - glUniform1fv_func(uXcenter, 1, &xCenter); - glUniform1fv_func(uYcenter, 1, &yCenter); + glUniform1fv(uZoom, 1, &zoom); + glUniform1fv(uXcenter, 1, &xCenter); + glUniform1fv(uYcenter, 1, &yCenter); glPushMatrix(); glRotatef(xRot, 1.0f, 0.0f, 0.0f); @@ -95,9 +92,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -156,19 +153,17 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile); fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); InitUniforms(program, Uniforms); - uZoom = glGetUniformLocation_func(program, "Zoom"); - uXcenter = glGetUniformLocation_func(program, "Xcenter"); - uYcenter = glGetUniformLocation_func(program, "Ycenter"); + uZoom = glGetUniformLocation(program, "Zoom"); + uXcenter = glGetUniformLocation(program, "Xcenter"); + uYcenter = glGetUniformLocation(program, "Ycenter"); assert(glGetError() == 0); @@ -176,9 +171,9 @@ Init(void) printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - assert(glIsProgram_func(program)); - assert(glIsShader_func(fragShader)); - assert(glIsShader_func(vertShader)); + assert(glIsProgram(program)); + assert(glIsShader(fragShader)); + assert(glIsShader(vertShader)); glColor3f(1, 0, 0); } diff --git a/progs/glsl/multinoise.c b/progs/glsl/multinoise.c index 400511508e..0afe230801 100644 --- a/progs/glsl/multinoise.c +++ b/progs/glsl/multinoise.c @@ -9,10 +9,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" static const char *VertShaderText = "void main() {\n" @@ -108,10 +105,10 @@ CleanUp(void) { GLint i; - glDeleteShader_func(vertShader); + glDeleteShader(vertShader); for( i = 0; i < 4; i++ ) { - glDeleteShader_func(fragShader[ i ]); - glDeleteProgram_func(program[ i ]); + glDeleteShader(fragShader[ i ]); + glDeleteProgram(program[ i ]); } glutDestroyWindow(win); } @@ -144,7 +141,7 @@ Key(unsigned char key, int x, int y) case '2': case '3': case '4': - glUseProgram_func(program[ key - '1' ]); + glUseProgram(program[ key - '1' ]); break; case 27: CleanUp(); @@ -187,15 +184,15 @@ LoadAndCompileShader(GLuint shader, const char *text) { GLint stat; - glShaderSource_func(shader, 1, (const GLchar **) &text, NULL); + glShaderSource(shader, 1, (const GLchar **) &text, NULL); - glCompileShader_func(shader); + glCompileShader(shader); - glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat); + glGetShaderiv(shader, GL_COMPILE_STATUS, &stat); if (!stat) { GLchar log[1000]; GLsizei len; - glGetShaderInfoLog_func(shader, 1000, &len, log); + glGetShaderInfoLog(shader, 1000, &len, log); fprintf(stderr, "noise: problem compiling shader: %s\n", log); exit(1); } @@ -209,11 +206,11 @@ static void CheckLink(GLuint prog) { GLint stat; - glGetProgramiv_func(prog, GL_LINK_STATUS, &stat); + glGetProgramiv(prog, GL_LINK_STATUS, &stat); if (!stat) { GLchar log[1000]; GLsizei len; - glGetProgramInfoLog_func(prog, 1000, &len, log); + glGetProgramInfoLog(prog, 1000, &len, log); fprintf(stderr, "Linker error:\n%s\n", log); } else { @@ -234,22 +231,20 @@ Init(void) /*exit(1);*/ } - GetExtensionFuncs(); - - vertShader = glCreateShader_func(GL_VERTEX_SHADER); + vertShader = glCreateShader(GL_VERTEX_SHADER); LoadAndCompileShader(vertShader, VertShaderText); for( i = 0; i < 4; i++ ) { - fragShader[ i ] = glCreateShader_func(GL_FRAGMENT_SHADER); + fragShader[ i ] = glCreateShader(GL_FRAGMENT_SHADER); LoadAndCompileShader(fragShader[ i ], FragShaderText[ i ]); - program[ i ] = glCreateProgram_func(); - glAttachShader_func(program[ i ], fragShader[ i ]); - glAttachShader_func(program[ i ], vertShader); - glLinkProgram_func(program[ i ]); + program[ i ] = glCreateProgram(); + glAttachShader(program[ i ], fragShader[ i ]); + glAttachShader(program[ i ], vertShader); + glLinkProgram(program[ i ]); CheckLink(program[ i ]); } - glUseProgram_func(program[ 0 ]); + glUseProgram(program[ 0 ]); assert(glGetError() == 0); diff --git a/progs/glsl/multitex.c b/progs/glsl/multitex.c index 724f15e1a3..913f73be17 100644 --- a/progs/glsl/multitex.c +++ b/progs/glsl/multitex.c @@ -31,7 +31,6 @@ #include #include "GL/glut.h" #include "readtex.h" -#include "extfuncs.h" #include "shaderutil.h" static const char *Demo = "multitex"; @@ -81,22 +80,22 @@ static void DrawPolygonArray(void) { if (VertCoord_attr >= 0) { - glVertexAttribPointer_func(VertCoord_attr, 2, GL_FLOAT, GL_FALSE, + glVertexAttribPointer(VertCoord_attr, 2, GL_FLOAT, GL_FALSE, 0, VertCoords); - glEnableVertexAttribArray_func(VertCoord_attr); + glEnableVertexAttribArray(VertCoord_attr); } else { glVertexPointer(2, GL_FLOAT, 0, VertCoords); glEnable(GL_VERTEX_ARRAY); } - glVertexAttribPointer_func(TexCoord0_attr, 2, GL_FLOAT, GL_FALSE, + glVertexAttribPointer(TexCoord0_attr, 2, GL_FLOAT, GL_FALSE, 0, Tex0Coords); - glEnableVertexAttribArray_func(TexCoord0_attr); + glEnableVertexAttribArray(TexCoord0_attr); - glVertexAttribPointer_func(TexCoord1_attr, 2, GL_FLOAT, GL_FALSE, + glVertexAttribPointer(TexCoord1_attr, 2, GL_FLOAT, GL_FALSE, 0, Tex1Coords); - glEnableVertexAttribArray_func(TexCoord1_attr); + glEnableVertexAttribArray(TexCoord1_attr); glDrawArrays(GL_TRIANGLE_FAN, 0, 4); } @@ -110,11 +109,11 @@ DrawPolygonVert(void) glBegin(GL_TRIANGLE_FAN); for (i = 0; i < 4; i++) { - glVertexAttrib2fv_func(TexCoord0_attr, Tex0Coords[i]); - glVertexAttrib2fv_func(TexCoord1_attr, Tex1Coords[i]); + glVertexAttrib2fv(TexCoord0_attr, Tex0Coords[i]); + glVertexAttrib2fv(TexCoord1_attr, Tex1Coords[i]); if (VertCoord_attr >= 0) - glVertexAttrib2fv_func(VertCoord_attr, VertCoords[i]); + glVertexAttrib2fv(VertCoord_attr, VertCoords[i]); else glVertex2fv(VertCoords[i]); } @@ -268,27 +267,27 @@ CreateProgram(const char *vertProgFile, const char *fragProgFile, assert(vertShader); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); InitUniforms(program, uniforms); - VertCoord_attr = glGetAttribLocation_func(program, "VertCoord"); + VertCoord_attr = glGetAttribLocation(program, "VertCoord"); if (VertCoord_attr > 0) { /* We want the VertCoord attrib to have position zero so that * the call to glVertexAttrib(0, xyz) triggers vertex processing. * Otherwise, if TexCoord0 or TexCoord1 gets position 0 we'd have * to set that attribute last (which is a PITA to manage). */ - glBindAttribLocation_func(program, 0, "VertCoord"); + glBindAttribLocation(program, 0, "VertCoord"); /* re-link */ - glLinkProgram_func(program); + glLinkProgram(program); /* VertCoord_attr should be zero now */ - VertCoord_attr = glGetAttribLocation_func(program, "VertCoord"); + VertCoord_attr = glGetAttribLocation(program, "VertCoord"); assert(VertCoord_attr == 0); } - TexCoord0_attr = glGetAttribLocation_func(program, "TexCoord0"); - TexCoord1_attr = glGetAttribLocation_func(program, "TexCoord1"); + TexCoord0_attr = glGetAttribLocation(program, "TexCoord0"); + TexCoord1_attr = glGetAttribLocation(program, "TexCoord1"); printf("TexCoord0_attr = %d\n", TexCoord0_attr); printf("TexCoord1_attr = %d\n", TexCoord1_attr); @@ -316,8 +315,6 @@ InitGL(void) } printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - GetExtensionFuncs(); - InitTextures(); InitPrograms(); diff --git a/progs/glsl/noise.c b/progs/glsl/noise.c index 83e4696fc9..59f594e78b 100644 --- a/progs/glsl/noise.c +++ b/progs/glsl/noise.c @@ -9,10 +9,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -68,7 +65,7 @@ Redisplay(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glUniform1fv_func(Uniforms[2].location, 1, &Slice); + glUniform1fv(Uniforms[2].location, 1, &Slice); glPushMatrix(); glRotatef(xRot, 1.0f, 0.0f, 0.0f); @@ -104,9 +101,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -176,13 +173,11 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - vertShader = CompileShaderText(GL_VERTEX_SHADER, VertShaderText); fragShader = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderText); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); InitUniforms(program, Uniforms); @@ -192,9 +187,9 @@ Init(void) printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - assert(glIsProgram_func(program)); - assert(glIsShader_func(fragShader)); - assert(glIsShader_func(vertShader)); + assert(glIsProgram(program)); + assert(glIsShader(fragShader)); + assert(glIsShader(vertShader)); glColor3f(1, 0, 0); } diff --git a/progs/glsl/pointcoord.c b/progs/glsl/pointcoord.c index aa01e2166d..27b73a05de 100644 --- a/progs/glsl/pointcoord.c +++ b/progs/glsl/pointcoord.c @@ -11,10 +11,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -65,9 +62,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -142,18 +139,16 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText); fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); - tex0 = glGetUniformLocation_func(program, "tex0"); + tex0 = glGetUniformLocation(program, "tex0"); printf("Uniforms: tex0: %d\n", tex0); - glUniform1i_func(tex0, 0); /* tex unit 0 */ + glUniform1i(tex0, 0); /* tex unit 0 */ /*assert(glGetError() == 0);*/ @@ -161,9 +156,9 @@ Init(void) printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - assert(glIsProgram_func(program)); - assert(glIsShader_func(fragShader)); - assert(glIsShader_func(vertShader)); + assert(glIsProgram(program)); + assert(glIsShader(fragShader)); + assert(glIsShader(vertShader)); MakeTexture(); diff --git a/progs/glsl/points.c b/progs/glsl/points.c index 1b346228aa..e5ee38c449 100644 --- a/progs/glsl/points.c +++ b/progs/glsl/points.c @@ -11,10 +11,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -100,7 +97,7 @@ Redisplay(void) */ glPushMatrix(); glTranslatef(0, 1.2, 0); - glUseProgram_func(0); + glUseProgram(0); DrawPoints(GL_FALSE); glPopMatrix(); @@ -109,9 +106,9 @@ Redisplay(void) */ glPushMatrix(); glTranslatef(0, -1.2, 0); - glUseProgram_func(Program); + glUseProgram(Program); if (uViewportInv != -1) { - glUniform2f_func(uViewportInv, 1.0 / WinWidth, 1.0 / WinHeight); + glUniform2f(uViewportInv, 1.0 / WinWidth, 1.0 / WinHeight); } DrawPoints(GL_TRUE); glPopMatrix(); @@ -151,9 +148,9 @@ Key(unsigned char key, int x, int y) Smooth = !Smooth; break; case 27: - glDeleteShader_func(FragShader); - glDeleteShader_func(VertShader); - glDeleteProgram_func(Program); + glDeleteShader(FragShader); + glDeleteShader(VertShader); + glDeleteProgram(Program); glutDestroyWindow(Win); exit(0); } @@ -226,17 +223,15 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - VertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText); FragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText); Program = LinkShaders(VertShader, FragShader); - glUseProgram_func(Program); + glUseProgram(Program); - uViewportInv = glGetUniformLocation_func(Program, "viewportInv"); + uViewportInv = glGetUniformLocation(Program, "viewportInv"); - glUseProgram_func(0); + glUseProgram(0); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } diff --git a/progs/glsl/samplers.c b/progs/glsl/samplers.c index cbb264dad1..113e5bbeff 100644 --- a/progs/glsl/samplers.c +++ b/progs/glsl/samplers.c @@ -42,7 +42,6 @@ #include #include "GL/glut.h" #include "readtex.h" -#include "extfuncs.h" #include "shaderutil.h" @@ -291,7 +290,7 @@ CreateProgram(void) assert(vertShader); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); free(fragShaderText); @@ -316,10 +315,10 @@ InitProgram(void) #else sprintf(uname, "tex[%d]", s); #endif - loc = glGetUniformLocation_func(Program, uname); + loc = glGetUniformLocation(Program, uname); assert(loc >= 0); - glUniform1i_func(loc, s); + glUniform1i(loc, s); } } @@ -334,8 +333,6 @@ InitGL(void) printf("GL_RENDERER = %s\n", (const char *) glGetString(GL_RENDERER)); - GetExtensionFuncs(); - glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &NumSamplers); if (NumSamplers > MAX_SAMPLERS) NumSamplers = MAX_SAMPLERS; diff --git a/progs/glsl/shadow_sampler.c b/progs/glsl/shadow_sampler.c index 673ad465ad..0a4d04dd8c 100644 --- a/progs/glsl/shadow_sampler.c +++ b/progs/glsl/shadow_sampler.c @@ -11,10 +11,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" /** Use GL_RECTANGLE texture (with projective texcoords)? */ @@ -67,7 +64,7 @@ Redisplay(void) glPushMatrix(); CheckError(__LINE__); - glUseProgram_func(program); + glUseProgram(program); CheckError(__LINE__); glBegin(GL_POLYGON); @@ -87,7 +84,7 @@ Redisplay(void) glPopMatrix(); - glUseProgram_func(0); + glUseProgram(0); glWindowPos2iARB(80, 20); PrintString("white black white black"); @@ -111,9 +108,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -179,13 +176,13 @@ static void LoadAndCompileShader(GLuint shader, const char *text) { GLint stat; - glShaderSource_func(shader, 1, (const GLchar **) &text, NULL); - glCompileShader_func(shader); - glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat); + glShaderSource(shader, 1, (const GLchar **) &text, NULL); + glCompileShader(shader); + glGetShaderiv(shader, GL_COMPILE_STATUS, &stat); if (!stat) { GLchar log[1000]; GLsizei len; - glGetShaderInfoLog_func(shader, 1000, &len, log); + glGetShaderInfoLog(shader, 1000, &len, log); fprintf(stderr, "fslight: problem compiling shader:\n%s\n", log); exit(1); } @@ -223,11 +220,11 @@ static void CheckLink(GLuint prog) { GLint stat; - glGetProgramiv_func(prog, GL_LINK_STATUS, &stat); + glGetProgramiv(prog, GL_LINK_STATUS, &stat); if (!stat) { GLchar log[1000]; GLsizei len; - glGetProgramInfoLog_func(prog, 1000, &len, log); + glGetProgramInfoLog(prog, 1000, &len, log); fprintf(stderr, "Linker error:\n%s\n", log); } } @@ -267,35 +264,33 @@ Init(void) } printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - GetExtensionFuncs(); - - fragShader = glCreateShader_func(GL_FRAGMENT_SHADER); + fragShader = glCreateShader(GL_FRAGMENT_SHADER); if (FragProgFile) ReadShader(fragShader, FragProgFile); else LoadAndCompileShader(fragShader, fragShaderText); - vertShader = glCreateShader_func(GL_VERTEX_SHADER); + vertShader = glCreateShader(GL_VERTEX_SHADER); if (VertProgFile) ReadShader(vertShader, VertProgFile); else LoadAndCompileShader(vertShader, vertShaderText); - program = glCreateProgram_func(); - glAttachShader_func(program, fragShader); - glAttachShader_func(program, vertShader); - glLinkProgram_func(program); + program = glCreateProgram(); + glAttachShader(program, fragShader); + glAttachShader(program, vertShader); + glLinkProgram(program); CheckLink(program); - glUseProgram_func(program); + glUseProgram(program); - uTexture2D = glGetUniformLocation_func(program, "shadowTex2D"); - uTextureRect = glGetUniformLocation_func(program, "shadowTexRect"); + uTexture2D = glGetUniformLocation(program, "shadowTex2D"); + uTextureRect = glGetUniformLocation(program, "shadowTexRect"); printf("uTexture2D %d uTextureRect %d\n", uTexture2D, uTextureRect); if (uTexture2D >= 0) { - glUniform1i_func(uTexture2D, 0); /* use texture unit 0 */ + glUniform1i(uTexture2D, 0); /* use texture unit 0 */ } if (uTextureRect >= 0) { - glUniform1i_func(uTextureRect, 1); /* use texture unit 0 */ + glUniform1i(uTextureRect, 1); /* use texture unit 0 */ } CheckError(__LINE__); diff --git a/progs/glsl/skinning.c b/progs/glsl/skinning.c index d7b968fed0..65ba98348b 100644 --- a/progs/glsl/skinning.c +++ b/progs/glsl/skinning.c @@ -13,10 +13,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -65,11 +62,11 @@ Cylinder(GLfloat length, GLfloat radius, GLint slices, GLint stacks) float a = (float) i / (slices - 1) * M_PI * 2.0; float x = radius * cos(a); float y = radius * sin(a); - glVertexAttrib1f_func(WeightAttr, w0); + glVertexAttrib1f(WeightAttr, w0); glNormal3f(x, y, 0.0); glVertex3f(x, y, z0); - glVertexAttrib1f_func(WeightAttr, w0 + dw); + glVertexAttrib1f(WeightAttr, w0 + dw); glNormal3f(x, y, 0.0); glVertex3f(x, y, z0 + dz); } @@ -107,8 +104,8 @@ Redisplay(void) { UpdateMatrices(); - glUniformMatrix4fv_func(uMat0, 1, GL_FALSE, Matrices[0]); - glUniformMatrix4fv_func(uMat1, 1, GL_FALSE, Matrices[1]); + glUniformMatrix4fv(uMat0, 1, GL_FALSE, Matrices[0]); + glUniformMatrix4fv(uMat1, 1, GL_FALSE, Matrices[1]); if (WireFrame) glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); @@ -149,9 +146,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -222,18 +219,16 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile); fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); - uMat0 = glGetUniformLocation_func(program, "mat0"); - uMat1 = glGetUniformLocation_func(program, "mat1"); + uMat0 = glGetUniformLocation(program, "mat0"); + uMat1 = glGetUniformLocation(program, "mat1"); - WeightAttr = glGetAttribLocation_func(program, "weight"); + WeightAttr = glGetAttribLocation(program, "weight"); assert(glGetError() == 0); diff --git a/progs/glsl/texaaline.c b/progs/glsl/texaaline.c index 6720941a6e..1f566c86a6 100644 --- a/progs/glsl/texaaline.c +++ b/progs/glsl/texaaline.c @@ -12,10 +12,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" static GLint WinWidth = 300, WinHeight = 300; @@ -329,8 +326,6 @@ Init(void) exit(1); } - GetExtensionFuncs(); - glClearColor(0.3f, 0.3f, 0.3f, 0.0f); printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); diff --git a/progs/glsl/texdemo1.c b/progs/glsl/texdemo1.c index 08a87a5152..d55f9e7dd9 100644 --- a/progs/glsl/texdemo1.c +++ b/progs/glsl/texdemo1.c @@ -31,7 +31,6 @@ #include #include "GL/glut.h" #include "readtex.h" -#include "extfuncs.h" #include "shaderutil.h" static const char *Demo = "texdemo1"; @@ -98,7 +97,7 @@ draw(void) /* sphere w/ reflection map */ glPushMatrix(); glTranslatef(0, 1, 0); - glUseProgram_func(Program1); + glUseProgram(Program1); /* setup texture matrix */ glActiveTexture(GL_TEXTURE0); @@ -117,7 +116,7 @@ draw(void) glPopMatrix(); /* ground */ - glUseProgram_func(Program2); + glUseProgram(Program2); glTranslatef(0, -1.0, 0); DrawGround(5); @@ -381,7 +380,7 @@ CreateProgram(const char *vertProgFile, const char *fragProgFile, fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, fragProgFile); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); InitUniforms(program, uniforms); @@ -408,8 +407,6 @@ Init(GLboolean useImageFiles) } printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - GetExtensionFuncs(); - InitTextures(useImageFiles); InitPrograms(); diff --git a/progs/glsl/toyball.c b/progs/glsl/toyball.c index 2b644acb6d..7fe27aebfe 100644 --- a/progs/glsl/toyball.c +++ b/progs/glsl/toyball.c @@ -10,10 +10,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -100,9 +97,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -170,13 +167,11 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile); fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); InitUniforms(program, Uniforms); diff --git a/progs/glsl/trirast.c b/progs/glsl/trirast.c index 3d4decaa2f..f7546f25a2 100644 --- a/progs/glsl/trirast.c +++ b/progs/glsl/trirast.c @@ -16,10 +16,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -86,9 +83,9 @@ Redisplay(void) RotateVerts(Zrot, 3, TriVerts, v); ComputeBounds(3, v, &xmin, &ymin, &xmax, &ymax); - glUniform2fv_func(uv0, 1, v[0]); - glUniform2fv_func(uv1, 1, v[1]); - glUniform2fv_func(uv2, 1, v[2]); + glUniform2fv(uv0, 1, v[0]); + glUniform2fv(uv1, 1, v[1]); + glUniform2fv(uv2, 1, v[2]); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -133,9 +130,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -197,17 +194,15 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText); fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); - uv0 = glGetUniformLocation_func(program, "v0"); - uv1 = glGetUniformLocation_func(program, "v1"); - uv2 = glGetUniformLocation_func(program, "v2"); + uv0 = glGetUniformLocation(program, "v0"); + uv1 = glGetUniformLocation(program, "v1"); + uv2 = glGetUniformLocation(program, "v2"); printf("Uniforms: %d %d %d\n", uv0, uv1, uv2); /*assert(glGetError() == 0);*/ @@ -217,9 +212,9 @@ Init(void) printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - assert(glIsProgram_func(program)); - assert(glIsShader_func(fragShader)); - assert(glIsShader_func(vertShader)); + assert(glIsProgram(program)); + assert(glIsShader(fragShader)); + assert(glIsShader(vertShader)); glColor3f(1, 0, 0); } diff --git a/progs/glsl/twoside.c b/progs/glsl/twoside.c index 9ebc4ec360..b6c1b477dd 100644 --- a/progs/glsl/twoside.c +++ b/progs/glsl/twoside.c @@ -13,10 +13,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -60,11 +57,11 @@ Redisplay(void) glFrontFace(FrontWinding); if (DetermineFacingInFragProg) { - glUniform1i_func(u_fragface, 1); + glUniform1i(u_fragface, 1); glDisable(GL_VERTEX_PROGRAM_TWO_SIDE); } else { - glUniform1i_func(u_fragface, 0); + glUniform1i(u_fragface, 0); glEnable(GL_VERTEX_PROGRAM_TWO_SIDE); } @@ -76,7 +73,7 @@ Redisplay(void) /* Draw a tristrip ring */ glBegin(GL_TRIANGLE_STRIP); glColor4fv(Red); - glSecondaryColor3fv_func(Green); + glSecondaryColor3fv(Green); for (i = 0; i <= sections; i++) { float a = (float) i / (sections) * M_PI * 2.0; float x = radius * cos(a); @@ -126,9 +123,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -230,15 +227,13 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText); fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); - u_fragface = glGetUniformLocation_func(program, "fragface"); + u_fragface = glGetUniformLocation(program, "fragface"); printf("Uniforms: %d\n", u_fragface); /*assert(glGetError() == 0);*/ @@ -247,9 +242,9 @@ Init(void) printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - assert(glIsProgram_func(program)); - assert(glIsShader_func(fragShader)); - assert(glIsShader_func(vertShader)); + assert(glIsProgram(program)); + assert(glIsShader(fragShader)); + assert(glIsShader(vertShader)); glEnable(GL_DEPTH_TEST); diff --git a/progs/glsl/vert-or-frag-only.c b/progs/glsl/vert-or-frag-only.c index 8e1612aca4..81fcab8c5b 100644 --- a/progs/glsl/vert-or-frag-only.c +++ b/progs/glsl/vert-or-frag-only.c @@ -12,10 +12,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -59,14 +56,14 @@ Redisplay(void) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* render with vertex shader only */ - glUseProgram_func(VertProgram); + glUseProgram(VertProgram); glPushMatrix(); glTranslatef(-1.5, 0, 0); DrawQuadTex(); glPopMatrix(); /* render with fragment shader only */ - glUseProgram_func(FragProgram); + glUseProgram(FragProgram); glPushMatrix(); glTranslatef(+1.5, 0, 0); DrawQuadColor(); @@ -91,10 +88,10 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(FragShader); - glDeleteShader_func(VertShader); - glDeleteProgram_func(VertProgram); - glDeleteProgram_func(FragProgram); + glDeleteShader(FragShader); + glDeleteShader(VertShader); + glDeleteProgram(VertProgram); + glDeleteProgram(FragProgram); glutDestroyWindow(Win); } @@ -130,8 +127,6 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - if (FragProgFile) FragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile); else @@ -150,10 +145,10 @@ Init(void) printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER)); - assert(glIsProgram_func(VertProgram)); - assert(glIsProgram_func(FragProgram)); - assert(glIsShader_func(FragShader)); - assert(glIsShader_func(VertShader)); + assert(glIsProgram(VertProgram)); + assert(glIsProgram(FragProgram)); + assert(glIsShader(FragShader)); + assert(glIsShader(VertShader)); glColor3f(1, 0, 0); } diff --git a/progs/glsl/vert-tex.c b/progs/glsl/vert-tex.c index b74bf50679..e791a5759a 100644 --- a/progs/glsl/vert-tex.c +++ b/progs/glsl/vert-tex.c @@ -10,10 +10,7 @@ #include #include #include -#include #include -#include -#include "extfuncs.h" #include "shaderutil.h" @@ -134,9 +131,9 @@ Reshape(int width, int height) static void CleanUp(void) { - glDeleteShader_func(fragShader); - glDeleteShader_func(vertShader); - glDeleteProgram_func(program); + glDeleteShader(fragShader); + glDeleteShader(vertShader); + glDeleteProgram(program); glutDestroyWindow(win); } @@ -240,13 +237,11 @@ Init(void) if (!ShadersSupported()) exit(1); - GetExtensionFuncs(); - vertShader = CompileShaderText(GL_VERTEX_SHADER, VertShaderText); fragShader = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderText); program = LinkShaders(vertShader, fragShader); - glUseProgram_func(program); + glUseProgram(program); assert(glGetError() == 0); -- cgit v1.2.3 From 74504c48ade0fdf2b2c6a932f2608bb51f88a29a Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 10 Aug 2009 15:50:22 -0700 Subject: demos: Fix the VBO usage in glsl/multitex. The fix for 965 to be noisy when apps sent pointers instead of VBO offsets caught this app in the act of doing exactly that. Bug #23203 --- progs/glsl/multitex.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'progs/glsl/multitex.c') diff --git a/progs/glsl/multitex.c b/progs/glsl/multitex.c index 5e971716ad..a4a8bbe38f 100644 --- a/progs/glsl/multitex.c +++ b/progs/glsl/multitex.c @@ -134,7 +134,7 @@ DrawPolygonArray(void) if (VertCoord_attr >= 0) { glVertexAttribPointer(VertCoord_attr, 2, GL_FLOAT, GL_FALSE, - 0, VertCoords); + 0, vertPtr); glEnableVertexAttribArray(VertCoord_attr); } else { @@ -143,11 +143,11 @@ DrawPolygonArray(void) } glVertexAttribPointer(TexCoord0_attr, 2, GL_FLOAT, GL_FALSE, - 0, Tex0Coords); + 0, tex0Ptr); glEnableVertexAttribArray(TexCoord0_attr); glVertexAttribPointer(TexCoord1_attr, 2, GL_FLOAT, GL_FALSE, - 0, Tex1Coords); + 0, tex1Ptr); glEnableVertexAttribArray(TexCoord1_attr); glDrawArrays(GL_TRIANGLE_FAN, 0, 4); -- cgit v1.2.3 From 684049d97d423a5a873aefc5313d0c4b22528b95 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 12 Aug 2009 13:53:56 -0600 Subject: demos: rename InitUniforms() to SetUniformValues() And call new PrintUniforms() in demos. --- progs/glsl/brick.c | 3 ++- progs/glsl/bump.c | 3 ++- progs/glsl/mandelbrot.c | 3 ++- progs/glsl/multitex.c | 3 ++- progs/glsl/noise.c | 3 ++- progs/glsl/texdemo1.c | 3 ++- progs/glsl/toyball.c | 3 ++- progs/util/shaderutil.c | 2 +- progs/util/shaderutil.h | 2 +- 9 files changed, 16 insertions(+), 9 deletions(-) (limited to 'progs/glsl/multitex.c') diff --git a/progs/glsl/brick.c b/progs/glsl/brick.c index 1d08b231e7..e5f5c96607 100644 --- a/progs/glsl/brick.c +++ b/progs/glsl/brick.c @@ -148,7 +148,8 @@ Init(void) glUseProgram(program); - InitUniforms(program, Uniforms); + SetUniformValues(program, Uniforms); + PrintUniforms(Uniforms); assert(glGetError() == 0); diff --git a/progs/glsl/bump.c b/progs/glsl/bump.c index ddb986abcb..29af26f7a1 100644 --- a/progs/glsl/bump.c +++ b/progs/glsl/bump.c @@ -242,7 +242,8 @@ Init(void) CheckError(__LINE__); - InitUniforms(program, Uniforms); + SetUniformValues(program, Uniforms); + PrintUniforms(Uniforms); CheckError(__LINE__); diff --git a/progs/glsl/mandelbrot.c b/progs/glsl/mandelbrot.c index 38dffc3e74..09c65d2c2b 100644 --- a/progs/glsl/mandelbrot.c +++ b/progs/glsl/mandelbrot.c @@ -159,7 +159,8 @@ Init(void) glUseProgram(program); - InitUniforms(program, Uniforms); + SetUniformValues(program, Uniforms); + PrintUniforms(Uniforms); uZoom = glGetUniformLocation(program, "Zoom"); uXcenter = glGetUniformLocation(program, "Xcenter"); diff --git a/progs/glsl/multitex.c b/progs/glsl/multitex.c index a4a8bbe38f..ce79bc1b4d 100644 --- a/progs/glsl/multitex.c +++ b/progs/glsl/multitex.c @@ -328,7 +328,8 @@ CreateProgram(const char *vertProgFile, const char *fragProgFile, glUseProgram(program); - InitUniforms(program, uniforms); + SetUniformValues(program, uniforms); + PrintUniforms(Uniforms); VertCoord_attr = glGetAttribLocation(program, "VertCoord"); if (VertCoord_attr > 0) { diff --git a/progs/glsl/noise.c b/progs/glsl/noise.c index 59f594e78b..6ef2a80f78 100644 --- a/progs/glsl/noise.c +++ b/progs/glsl/noise.c @@ -179,7 +179,8 @@ Init(void) glUseProgram(program); - InitUniforms(program, Uniforms); + SetUniformValues(program, Uniforms); + PrintUniforms(Uniforms); assert(glGetError() == 0); diff --git a/progs/glsl/texdemo1.c b/progs/glsl/texdemo1.c index d55f9e7dd9..f0dce8555e 100644 --- a/progs/glsl/texdemo1.c +++ b/progs/glsl/texdemo1.c @@ -382,7 +382,8 @@ CreateProgram(const char *vertProgFile, const char *fragProgFile, glUseProgram(program); - InitUniforms(program, uniforms); + SetUniformValues(program, uniforms); + PrintUniforms(uniforms); return program; } diff --git a/progs/glsl/toyball.c b/progs/glsl/toyball.c index 7fe27aebfe..13f5776684 100644 --- a/progs/glsl/toyball.c +++ b/progs/glsl/toyball.c @@ -173,7 +173,8 @@ Init(void) glUseProgram(program); - InitUniforms(program, Uniforms); + SetUniformValues(program, Uniforms); + PrintUniforms(Uniforms); assert(glGetError() == 0); diff --git a/progs/util/shaderutil.c b/progs/util/shaderutil.c index bd04ce5c6a..f057adf5c7 100644 --- a/progs/util/shaderutil.c +++ b/progs/util/shaderutil.c @@ -122,7 +122,7 @@ LinkShaders(GLuint vertShader, GLuint fragShader) void -InitUniforms(GLuint program, struct uniform_info uniforms[]) +SetUniformValues(GLuint program, struct uniform_info uniforms[]) { GLuint i; diff --git a/progs/util/shaderutil.h b/progs/util/shaderutil.h index 607ed28491..22dc4dc431 100644 --- a/progs/util/shaderutil.h +++ b/progs/util/shaderutil.h @@ -37,7 +37,7 @@ extern GLuint LinkShaders(GLuint vertShader, GLuint fragShader); extern void -InitUniforms(GLuint program, struct uniform_info uniforms[]); +SetUniformValues(GLuint program, struct uniform_info uniforms[]); extern GLuint GetUniforms(GLuint program, struct uniform_info uniforms[]); -- cgit v1.2.3 From fdfb0d4b0e04bff2f3dbae2d1f8e3765fb4b0dce Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 12 Aug 2009 17:25:49 -0600 Subject: progs/glsl: change uniform_info::type field to use GLSL vector types --- progs/glsl/brick.c | 10 ++--- progs/glsl/bump.c | 10 ++--- progs/glsl/mandelbrot.c | 8 ++-- progs/glsl/multitex.c | 4 +- progs/glsl/noise.c | 4 +- progs/glsl/texdemo1.c | 8 ++-- progs/glsl/toyball.c | 24 +++++------ progs/glsl/vert-tex.c | 2 +- progs/tests/floattex.c | 2 +- progs/util/shaderutil.c | 107 +++++++----------------------------------------- progs/util/shaderutil.h | 4 +- 11 files changed, 53 insertions(+), 130 deletions(-) (limited to 'progs/glsl/multitex.c') diff --git a/progs/glsl/brick.c b/progs/glsl/brick.c index e5f5c96607..0653c592e5 100644 --- a/progs/glsl/brick.c +++ b/progs/glsl/brick.c @@ -24,12 +24,12 @@ static GLuint program; static struct uniform_info Uniforms[] = { /* vert */ - { "LightPosition", 3, GL_FLOAT, { 0.1, 0.1, 9.0, 0}, -1 }, + { "LightPosition", 1, GL_FLOAT_VEC3, { 0.1, 0.1, 9.0, 0}, -1 }, /* frag */ - { "BrickColor", 3, GL_FLOAT, { 0.8, 0.2, 0.2, 0 }, -1 }, - { "MortarColor", 3, GL_FLOAT, { 0.6, 0.6, 0.6, 0 }, -1 }, - { "BrickSize", 2, GL_FLOAT, { 1.0, 0.3, 0, 0 }, -1 }, - { "BrickPct", 2, GL_FLOAT, { 0.9, 0.8, 0, 0 }, -1 }, + { "BrickColor", 1, GL_FLOAT_VEC3, { 0.8, 0.2, 0.2, 0 }, -1 }, + { "MortarColor", 1, GL_FLOAT_VEC3, { 0.6, 0.6, 0.6, 0 }, -1 }, + { "BrickSize", 1, GL_FLOAT_VEC2, { 1.0, 0.3, 0, 0 }, -1 }, + { "BrickPct", 1, GL_FLOAT_VEC2, { 0.9, 0.8, 0, 0 }, -1 }, END_OF_UNIFORMS }; diff --git a/progs/glsl/bump.c b/progs/glsl/bump.c index 29af26f7a1..c0d39c049d 100644 --- a/progs/glsl/bump.c +++ b/progs/glsl/bump.c @@ -24,11 +24,11 @@ static GLuint program; static struct uniform_info Uniforms[] = { - { "LightPosition", 3, GL_FLOAT, { 0.57737, 0.57735, 0.57735, 0.0 }, -1 }, - { "SurfaceColor", 3, GL_FLOAT, { 0.8, 0.8, 0.2, 0 }, -1 }, - { "BumpDensity", 1, GL_FLOAT, { 10.0, 0, 0, 0 }, -1 }, - { "BumpSize", 1, GL_FLOAT, { 0.125, 0, 0, 0 }, -1 }, - { "SpecularFactor", 1, GL_FLOAT, { 0.5, 0, 0, 0 }, -1 }, + { "LightPosition", 1, GL_FLOAT_VEC3, { 0.57737, 0.57735, 0.57735, 0.0 }, -1 }, + { "SurfaceColor", 1, GL_FLOAT_VEC3, { 0.8, 0.8, 0.2, 0 }, -1 }, + { "BumpDensity", 1, GL_FLOAT, { 10.0, 0, 0, 0 }, -1 }, + { "BumpSize", 1, GL_FLOAT, { 0.125, 0, 0, 0 }, -1 }, + { "SpecularFactor", 1, GL_FLOAT, { 0.5, 0, 0, 0 }, -1 }, END_OF_UNIFORMS }; diff --git a/progs/glsl/mandelbrot.c b/progs/glsl/mandelbrot.c index 09c65d2c2b..729a6f125a 100644 --- a/progs/glsl/mandelbrot.c +++ b/progs/glsl/mandelbrot.c @@ -25,7 +25,7 @@ static GLuint program; static struct uniform_info Uniforms[] = { /* vert */ - { "LightPosition", 3, GL_FLOAT, { 0.1, 0.1, 9.0, 0}, -1 }, + { "LightPosition", 1, GL_FLOAT_VEC3, { 0.1, 0.1, 9.0, 0}, -1 }, { "SpecularContribution", 1, GL_FLOAT, { 0.5, 0, 0, 0 }, -1 }, { "DiffuseContribution", 1, GL_FLOAT, { 0.5, 0, 0, 0 }, -1 }, { "Shininess", 1, GL_FLOAT, { 20.0, 0, 0, 0 }, -1 }, @@ -34,9 +34,9 @@ static struct uniform_info Uniforms[] = { { "Zoom", 1, GL_FLOAT, { 0.125, 0, 0, 0 }, -1 }, { "Xcenter", 1, GL_FLOAT, { -1.5, 0, 0, 0 }, -1 }, { "Ycenter", 1, GL_FLOAT, { .005, 0, 0, 0 }, -1 }, - { "InnerColor", 3, GL_FLOAT, { 1, 0, 0, 0 }, -1 }, - { "OuterColor1", 3, GL_FLOAT, { 0, 1, 0, 0 }, -1 }, - { "OuterColor2", 3, GL_FLOAT, { 0, 0, 1, 0 }, -1 }, + { "InnerColor", 1, GL_FLOAT_VEC3, { 1, 0, 0, 0 }, -1 }, + { "OuterColor1", 1, GL_FLOAT_VEC3, { 0, 1, 0, 0 }, -1 }, + { "OuterColor2", 1, GL_FLOAT_VEC3, { 0, 0, 1, 0 }, -1 }, END_OF_UNIFORMS }; diff --git a/progs/glsl/multitex.c b/progs/glsl/multitex.c index ce79bc1b4d..6ec9c833e6 100644 --- a/progs/glsl/multitex.c +++ b/progs/glsl/multitex.c @@ -59,8 +59,8 @@ static GLint VertCoord_attr = -1, TexCoord0_attr = -1, TexCoord1_attr = -1; /* value[0] = tex unit */ static struct uniform_info Uniforms[] = { - { "tex1", 1, GL_INT, { 0, 0, 0, 0 }, -1 }, - { "tex2", 1, GL_INT, { 1, 0, 0, 0 }, -1 }, + { "tex1", 1, GL_SAMPLER_2D, { 0, 0, 0, 0 }, -1 }, + { "tex2", 1, GL_SAMPLER_2D, { 1, 0, 0, 0 }, -1 }, END_OF_UNIFORMS }; diff --git a/progs/glsl/noise.c b/progs/glsl/noise.c index 6ef2a80f78..8c36e1c59b 100644 --- a/progs/glsl/noise.c +++ b/progs/glsl/noise.c @@ -35,8 +35,8 @@ static const char *FragShaderText = static struct uniform_info Uniforms[] = { - { "Scale", 4, GL_FLOAT, { 0.5, 0.4, 0.0, 0}, -1 }, - { "Bias", 4, GL_FLOAT, { 0.5, 0.3, 0.0, 0}, -1 }, + { "Scale", 1, GL_FLOAT_VEC4, { 0.5, 0.4, 0.0, 0}, -1 }, + { "Bias", 1, GL_FLOAT_VEC4, { 0.5, 0.3, 0.0, 0}, -1 }, { "Slice", 1, GL_FLOAT, { 0.5, 0, 0, 0}, -1 }, END_OF_UNIFORMS }; diff --git a/progs/glsl/texdemo1.c b/progs/glsl/texdemo1.c index f0dce8555e..5b1913a722 100644 --- a/progs/glsl/texdemo1.c +++ b/progs/glsl/texdemo1.c @@ -53,14 +53,14 @@ static int win = 0; static struct uniform_info ReflectUniforms[] = { - { "cubeTex", 1, GL_INT, { 0, 0, 0, 0 }, -1 }, - { "lightPos", 3, GL_FLOAT, { 10, 10, 20, 0 }, -1 }, + { "cubeTex", 1, GL_SAMPLER_CUBE, { 0, 0, 0, 0 }, -1 }, + { "lightPos", 1, GL_FLOAT_VEC3, { 10, 10, 20, 0 }, -1 }, END_OF_UNIFORMS }; static struct uniform_info SimpleUniforms[] = { - { "tex2d", 1, GL_INT, { 1, 0, 0, 0 }, -1 }, - { "lightPos", 3, GL_FLOAT, { 10, 10, 20, 0 }, -1 }, + { "tex2d", 1, GL_SAMPLER_2D, { 1, 0, 0, 0 }, -1 }, + { "lightPos", 1, GL_FLOAT_VEC3, { 10, 10, 20, 0 }, -1 }, END_OF_UNIFORMS }; diff --git a/progs/glsl/toyball.c b/progs/glsl/toyball.c index 13f5776684..89733d6175 100644 --- a/progs/glsl/toyball.c +++ b/progs/glsl/toyball.c @@ -24,18 +24,18 @@ static GLuint program; static struct uniform_info Uniforms[] = { - { "LightDir", 4, GL_FLOAT, { 0.57737, 0.57735, 0.57735, 0.0 }, -1 }, - { "HVector", 4, GL_FLOAT, { 0.32506, 0.32506, 0.88808, 0.0 }, -1 }, - { "BallCenter", 4, GL_FLOAT, { 0.0, 0.0, 0.0, 1.0 }, -1 }, - { "SpecularColor", 4, GL_FLOAT, { 0.4, 0.4, 0.4, 60.0 }, -1 }, - { "Red", 4, GL_FLOAT, { 0.6, 0.0, 0.0, 1.0 }, -1 }, - { "Blue", 4, GL_FLOAT, { 0.0, 0.3, 0.6, 1.0 }, -1 }, - { "Yellow", 4, GL_FLOAT, { 0.6, 0.5, 0.0, 1.0 }, -1 }, - { "HalfSpace0", 4, GL_FLOAT, { 1.0, 0.0, 0.0, 0.2 }, -1 }, - { "HalfSpace1", 4, GL_FLOAT, { 0.309016994, 0.951056516, 0.0, 0.2 }, -1 }, - { "HalfSpace2", 4, GL_FLOAT, { -0.809016994, 0.587785252, 0.0, 0.2 }, -1 }, - { "HalfSpace3", 4, GL_FLOAT, { -0.809016994, -0.587785252, 0.0, 0.2 }, -1 }, - { "HalfSpace4", 4, GL_FLOAT, { 0.309116994, -0.951056516, 0.0, 0.2 }, -1 }, + { "LightDir", 1, GL_FLOAT_VEC4, { 0.57737, 0.57735, 0.57735, 0.0 }, -1 }, + { "HVector", 1, GL_FLOAT_VEC4, { 0.32506, 0.32506, 0.88808, 0.0 }, -1 }, + { "BallCenter", 1, GL_FLOAT_VEC4, { 0.0, 0.0, 0.0, 1.0 }, -1 }, + { "SpecularColor", 1, GL_FLOAT_VEC4, { 0.4, 0.4, 0.4, 60.0 }, -1 }, + { "Red", 1, GL_FLOAT_VEC4, { 0.6, 0.0, 0.0, 1.0 }, -1 }, + { "Blue", 1, GL_FLOAT_VEC4, { 0.0, 0.3, 0.6, 1.0 }, -1 }, + { "Yellow", 1, GL_FLOAT_VEC4, { 0.6, 0.5, 0.0, 1.0 }, -1 }, + { "HalfSpace0", 1, GL_FLOAT_VEC4, { 1.0, 0.0, 0.0, 0.2 }, -1 }, + { "HalfSpace1", 1, GL_FLOAT_VEC4, { 0.309016994, 0.951056516, 0.0, 0.2 }, -1 }, + { "HalfSpace2", 1, GL_FLOAT_VEC4, { -0.809016994, 0.587785252, 0.0, 0.2 }, -1 }, + { "HalfSpace3", 1, GL_FLOAT_VEC4, { -0.809016994, -0.587785252, 0.0, 0.2 }, -1 }, + { "HalfSpace4", 1, GL_FLOAT_VEC4, { 0.309116994, -0.951056516, 0.0, 0.2 }, -1 }, { "InOrOutInit", 1, GL_FLOAT, { -3.0, 0, 0, 0 }, -1 }, { "StripeWidth", 1, GL_FLOAT, { 0.3, 0, 0, 0 }, -1 }, { "FWidth", 1, GL_FLOAT, { 0.005, 0, 0, 0 }, -1 }, diff --git a/progs/glsl/vert-tex.c b/progs/glsl/vert-tex.c index e791a5759a..4c8bfa587a 100644 --- a/progs/glsl/vert-tex.c +++ b/progs/glsl/vert-tex.c @@ -43,7 +43,7 @@ static GLfloat xRot = -70.0f, yRot = 0.0f, zRot = 0.0f; /* value[0] = tex unit */ static struct uniform_info Uniforms[] = { - { "tex1", 1, GL_INT, { 0, 0, 0, 0 }, -1 }, + { "tex1", 1, GL_SAMPLER_2D, { 0, 0, 0, 0 }, -1 }, END_OF_UNIFORMS }; diff --git a/progs/tests/floattex.c b/progs/tests/floattex.c index e6b7658150..39302ce3af 100644 --- a/progs/tests/floattex.c +++ b/progs/tests/floattex.c @@ -33,7 +33,7 @@ static const char *VertShaderText = "} \n"; static struct uniform_info Uniforms[] = { - { "tex1", 1, GL_INT, { 0, 0, 0, 0 }, -1 }, + { "tex1", 1, GL_SAMPLER_2D, { 0, 0, 0, 0 }, -1 }, END_OF_UNIFORMS }; diff --git a/progs/util/shaderutil.c b/progs/util/shaderutil.c index f057adf5c7..233252112a 100644 --- a/progs/util/shaderutil.c +++ b/progs/util/shaderutil.c @@ -130,21 +130,26 @@ SetUniformValues(GLuint program, struct uniform_info uniforms[]) uniforms[i].location = glGetUniformLocation(program, uniforms[i].name); - switch (uniforms[i].size) { - case 1: - if (uniforms[i].type == GL_INT) - glUniform1i(uniforms[i].location, - (GLint) uniforms[i].value[0]); - else - glUniform1fv(uniforms[i].location, 1, uniforms[i].value); + switch (uniforms[i].type) { + case GL_INT: + case GL_SAMPLER_1D: + case GL_SAMPLER_2D: + case GL_SAMPLER_3D: + case GL_SAMPLER_CUBE: + case GL_SAMPLER_2D_RECT_ARB: + glUniform1i(uniforms[i].location, + (GLint) uniforms[i].value[0]); + break; + case GL_FLOAT: + glUniform1fv(uniforms[i].location, 1, uniforms[i].value); break; - case 2: + case GL_FLOAT_VEC2: glUniform2fv(uniforms[i].location, 1, uniforms[i].value); break; - case 3: + case GL_FLOAT_VEC3: glUniform3fv(uniforms[i].location, 1, uniforms[i].value); break; - case 4: + case GL_FLOAT_VEC4: glUniform4fv(uniforms[i].location, 1, uniforms[i].value); break; default: @@ -171,52 +176,6 @@ GetUniforms(GLuint program, struct uniform_info uniforms[]) glGetActiveUniform(program, i, 100, &len, &size, &type, name); uniforms[i].name = strdup(name); - switch (type) { - case GL_FLOAT: - size = 1; - type = GL_FLOAT; - break; - case GL_FLOAT_VEC2: - size = 2; - type = GL_FLOAT; - break; - case GL_FLOAT_VEC3: - size = 3; - type = GL_FLOAT; - break; - case GL_FLOAT_VEC4: - size = 4; - type = GL_FLOAT; - break; - case GL_INT: - size = 1; - type = GL_INT; - break; - case GL_INT_VEC2: - size = 2; - type = GL_INT; - break; - case GL_INT_VEC3: - size = 3; - type = GL_INT; - break; - case GL_INT_VEC4: - size = 4; - type = GL_INT; - break; - case GL_FLOAT_MAT3: - /* XXX fix me */ - size = 3; - type = GL_FLOAT; - break; - case GL_FLOAT_MAT4: - /* XXX fix me */ - size = 4; - type = GL_FLOAT; - break; - default: - abort(); - } uniforms[i].size = size; uniforms[i].type = type; uniforms[i].location = glGetUniformLocation(program, name); @@ -267,42 +226,6 @@ GetAttribs(GLuint program, struct attrib_info attribs[]) glGetActiveAttrib(program, i, 100, &len, &size, &type, name); attribs[i].name = strdup(name); - switch (type) { - case GL_FLOAT: - size = 1; - type = GL_FLOAT; - break; - case GL_FLOAT_VEC2: - size = 2; - type = GL_FLOAT; - break; - case GL_FLOAT_VEC3: - size = 3; - type = GL_FLOAT; - break; - case GL_FLOAT_VEC4: - size = 4; - type = GL_FLOAT; - break; - case GL_INT: - size = 1; - type = GL_INT; - break; - case GL_INT_VEC2: - size = 2; - type = GL_INT; - break; - case GL_INT_VEC3: - size = 3; - type = GL_INT; - break; - case GL_INT_VEC4: - size = 4; - type = GL_INT; - break; - default: - abort(); - } attribs[i].size = size; attribs[i].type = type; attribs[i].location = glGetAttribLocation(program, name); diff --git a/progs/util/shaderutil.h b/progs/util/shaderutil.h index 22dc4dc431..0a6be02675 100644 --- a/progs/util/shaderutil.h +++ b/progs/util/shaderutil.h @@ -7,7 +7,7 @@ struct uniform_info { const char *name; GLuint size; /**< number of value[] elements: 1, 2, 3 or 4 */ - GLenum type; /**< GL_FLOAT or GL_INT */ + GLenum type; /**< GL_FLOAT, GL_FLOAT_VEC4, GL_INT, etc */ GLfloat value[4]; GLint location; /**< filled in by InitUniforms() */ }; @@ -19,7 +19,7 @@ struct attrib_info { const char *name; GLuint size; /**< number of value[] elements: 1, 2, 3 or 4 */ - GLenum type; /**< GL_FLOAT or GL_INT */ + GLenum type; /**< GL_FLOAT, GL_FLOAT_VEC4, GL_INT, etc */ GLint location; }; -- cgit v1.2.3 From 42675ff0e3e2a0403a6e614b3c84287f2f412661 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 25 Aug 2009 17:45:50 -0600 Subject: progs/glsl: call ValidateShaderProgram() --- progs/glsl/multitex.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'progs/glsl/multitex.c') diff --git a/progs/glsl/multitex.c b/progs/glsl/multitex.c index 6ec9c833e6..bf46fd5210 100644 --- a/progs/glsl/multitex.c +++ b/progs/glsl/multitex.c @@ -331,6 +331,8 @@ CreateProgram(const char *vertProgFile, const char *fragProgFile, SetUniformValues(program, uniforms); PrintUniforms(Uniforms); + assert(ValidateShaderProgram(program)); + VertCoord_attr = glGetAttribLocation(program, "VertCoord"); if (VertCoord_attr > 0) { /* We want the VertCoord attrib to have position zero so that -- cgit v1.2.3