diff options
Diffstat (limited to 'progs/glsl')
-rw-r--r-- | progs/glsl/.gitignore | 1 | ||||
-rw-r--r-- | progs/glsl/Makefile | 8 | ||||
-rw-r--r-- | progs/glsl/convolutions.c | 27 | ||||
-rw-r--r-- | progs/glsl/texdemo1.c | 4 |
4 files changed, 25 insertions, 15 deletions
diff --git a/progs/glsl/.gitignore b/progs/glsl/.gitignore index 1e0aecebef..09340ff2ad 100644 --- a/progs/glsl/.gitignore +++ b/progs/glsl/.gitignore @@ -1,6 +1,7 @@ bitmap brick bump +convolutions deriv extfuncs.h mandelbrot diff --git a/progs/glsl/Makefile b/progs/glsl/Makefile index 850b6bdbd1..ba7a4c688f 100644 --- a/progs/glsl/Makefile +++ b/progs/glsl/Makefile @@ -23,7 +23,9 @@ PROGS = \ texdemo1 \ toyball \ twoside \ - trirast + trirast \ + texdemo1 \ + convolutions ##### RULES ##### @@ -168,7 +170,11 @@ trirast: trirast.o shaderutil.o $(CC) -I$(INCDIR) $(CFLAGS) $(LDFLAGS) trirast.o shaderutil.o $(LIBS) -o $@ +convolutions: convolutions.o readtex.o + $(CC) -I$(INCDIR) $(CFLAGS) convolutions.o readtex.o $(APP_LIB_DEPS) -o $@ +convolutions.o: convolutions.c readtex.h + $(CC) -c -I$(INCDIR) $(CFLAGS) convolutions.c clean: diff --git a/progs/glsl/convolutions.c b/progs/glsl/convolutions.c index 13c7eab0ea..a25dad5ba9 100644 --- a/progs/glsl/convolutions.c +++ b/progs/glsl/convolutions.c @@ -61,15 +61,15 @@ static void loadAndCompileShader(GLuint shader, const char *text) { GLint stat; - glShaderSourceARB(shader, 1, (const GLchar **) &text, NULL); + glShaderSource(shader, 1, (const GLchar **) &text, NULL); - glCompileShaderARB(shader); + glCompileShader(shader); - glGetObjectParameterivARB(shader, GL_COMPILE_STATUS, &stat); + glGetShaderiv(shader, GL_COMPILE_STATUS, &stat); if (!stat) { GLchar log[1000]; GLsizei len; - glGetInfoLogARB(shader, 1000, &len, log); + glGetShaderInfoLog(shader, 1000, &len, log); fprintf(stderr, "Problem compiling shader: %s\n", log); exit(1); } @@ -105,11 +105,11 @@ static void checkLink(GLuint prog) { GLint stat; - glGetObjectParameterivARB(prog, GL_LINK_STATUS, &stat); + glGetProgramiv(prog, GL_LINK_STATUS, &stat); if (!stat) { GLchar log[1000]; GLsizei len; - glGetInfoLogARB(prog, 1000, &len, log); + glGetProgramInfoLog(prog, 1000, &len, log); fprintf(stderr, "Linker error:\n%s\n", log); } else { @@ -200,12 +200,12 @@ static void setupConvolution() } loc = glGetUniformLocationARB(program, "KernelValue"); - glUniform4fvARB(loc, 9, vecKer); + glUniform4fv(loc, 9, vecKer); loc = glGetUniformLocationARB(program, "ScaleFactor"); - glUniform4fARB(loc, scale, scale, scale, scale); + glUniform4f(loc, scale, scale, scale, scale); loc = glGetUniformLocationARB(program, "BaseColor"); - glUniform4fARB(loc, baseColor[0], baseColor[1], - baseColor[2], baseColor[3]); + glUniform4f(loc, baseColor[0], baseColor[1], + baseColor[2], baseColor[3]); free(vecKer); free(kernel); @@ -229,10 +229,10 @@ static void createProgram(const char *vertProgFile, glAttachShader(program, fragShader); } - glLinkProgramARB(program); + glLinkProgram(program); checkLink(program); - glUseProgramObjectARB(program); + glUseProgram(program); /* assert(glIsProgram(program)); @@ -256,7 +256,7 @@ static void createProgram(const char *vertProgFile, 0.0 , -1.0 / texture.height, -1.0 / texture.width, -1.0 / texture.height }; GLuint offsetLoc = glGetUniformLocationARB(program, "Offset"); - glUniform2fvARB(offsetLoc, 9, offsets); + glUniform2fv(offsetLoc, 9, offsets); } setupConvolution(); @@ -331,6 +331,7 @@ static void init() fprintf(stderr, "Sorry, this program requires GL_ARB_shader_objects, GL_ARB_vertex_shader, and GL_ARB_fragment_shader\n"); exit(1); } + fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); diff --git a/progs/glsl/texdemo1.c b/progs/glsl/texdemo1.c index 41010746ee..96ddca1f32 100644 --- a/progs/glsl/texdemo1.c +++ b/progs/glsl/texdemo1.c @@ -49,6 +49,7 @@ static GLfloat TexXrot = 0, TexYrot = 0; static GLfloat Xrot = 20.0, Yrot = 20.0, Zrot = 0.0; static GLfloat EyeDist = 10; static GLboolean Anim = GL_TRUE; +static int win = 0; static struct uniform_info ReflectUniforms[] = { @@ -159,6 +160,7 @@ key(unsigned char k, int x, int y) EyeDist = 90; break; case 27: + glutDestroyWindow(win); exit(0); } glutPostRedisplay(); @@ -423,7 +425,7 @@ main(int argc, char *argv[]) glutInit(&argc, argv); glutInitWindowSize(500, 400); glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); - glutCreateWindow(Demo); + win = glutCreateWindow(Demo); glutReshapeFunc(Reshape); glutKeyboardFunc(key); glutSpecialFunc(specialkey); |