diff options
Diffstat (limited to 'progs/vpglsl')
-rw-r--r-- | progs/vpglsl/.gitignore | 1 | ||||
-rw-r--r-- | progs/vpglsl/Makefile | 52 | ||||
-rw-r--r-- | progs/vpglsl/SConscript | 6 | ||||
-rw-r--r-- | progs/vpglsl/for.glsl | 7 | ||||
-rw-r--r-- | progs/vpglsl/func.glsl | 33 | ||||
-rw-r--r-- | progs/vpglsl/func2.glsl | 54 | ||||
-rw-r--r-- | progs/vpglsl/if.glsl | 7 | ||||
-rw-r--r-- | progs/vpglsl/ifelse.glsl | 8 | ||||
-rw-r--r-- | progs/vpglsl/mov.glsl | 5 | ||||
-rw-r--r-- | progs/vpglsl/nestedifs.glsl | 13 | ||||
-rw-r--r-- | progs/vpglsl/nestedswizzle.glsl | 9 | ||||
-rw-r--r-- | progs/vpglsl/off2f.glsl | 18 | ||||
-rw-r--r-- | progs/vpglsl/psiz-imm.glsl | 6 | ||||
-rw-r--r-- | progs/vpglsl/psiz-mul.glsl | 6 | ||||
-rw-r--r-- | progs/vpglsl/varfor1f.glsl | 22 | ||||
-rw-r--r-- | progs/vpglsl/varfor2f.glsl | 24 | ||||
-rw-r--r-- | progs/vpglsl/varfor4f.glsl | 19 | ||||
-rw-r--r-- | progs/vpglsl/vp-tris.c | 363 |
18 files changed, 0 insertions, 653 deletions
diff --git a/progs/vpglsl/.gitignore b/progs/vpglsl/.gitignore deleted file mode 100644 index a5ff9935254..00000000000 --- a/progs/vpglsl/.gitignore +++ /dev/null @@ -1 +0,0 @@ -vp-tris diff --git a/progs/vpglsl/Makefile b/progs/vpglsl/Makefile deleted file mode 100644 index 3982aca5650..00000000000 --- a/progs/vpglsl/Makefile +++ /dev/null @@ -1,52 +0,0 @@ -# progs/tests/Makefile - - -# These programs aren't intended to be included with the normal distro. -# They're not too interesting but they're good for testing. - -TOP = ../.. -include $(TOP)/configs/current - -LIBS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLEW_LIB) -l$(GLU_LIB) -l$(GL_LIB) $(APP_LIB_DEPS) - -SOURCES = \ - vp-tris.c - - - -PROGS = $(SOURCES:%.c=%) - -INCLUDES = -I. -I$(TOP)/include -I../samples - - -##### RULES ##### - -.SUFFIXES: -.SUFFIXES: .c - -.c: - $(CC) $(INCLUDES) $(CFLAGS) $< $(LIBS) -o $@ - -.c.o: - $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ - -.S.o: - $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ - - -##### TARGETS ##### - -default: $(PROGS) - -clean: - rm -f $(PROGS) - rm -f *.o - rm -f getproclist.h - - - - - -# Emacs tags -tags: - etags `find . -name \*.[ch]` `find ../include` diff --git a/progs/vpglsl/SConscript b/progs/vpglsl/SConscript deleted file mode 100644 index 787cb793af2..00000000000 --- a/progs/vpglsl/SConscript +++ /dev/null @@ -1,6 +0,0 @@ -Import('*') - -progs_env.Program( - target = 'vp-tris', - source = ['vp-tris.c'], - ) diff --git a/progs/vpglsl/for.glsl b/progs/vpglsl/for.glsl deleted file mode 100644 index 45d6845dacc..00000000000 --- a/progs/vpglsl/for.glsl +++ /dev/null @@ -1,7 +0,0 @@ - -void main() { - gl_Position = gl_Vertex; - gl_FrontColor = vec4(0); - for (int i = 0; i < 4; ++i) - gl_FrontColor += gl_Color; -} diff --git a/progs/vpglsl/func.glsl b/progs/vpglsl/func.glsl deleted file mode 100644 index 05539880fd8..00000000000 --- a/progs/vpglsl/func.glsl +++ /dev/null @@ -1,33 +0,0 @@ -#version 120 -const int KernelSize = 16; -uniform float KernelValue1f[KernelSize]; - - -float add_two(float a, float b) -{ - if (a > b) - return a - b; - else - return a + b; -} - -vec4 func(vec4 x) -{ - int i; - vec4 tmp = gl_Color; - vec4 sum = x; - - for (i = 0; i < KernelSize; ++i) { - sum = vec4( add_two(sum.x, KernelValue1f[i]) ); - } - return sum; -} - -void main(void) -{ - vec4 sum = vec4(0.0); - - sum = func(sum); - gl_Position = gl_Vertex; - gl_FrontColor = sum; -} diff --git a/progs/vpglsl/func2.glsl b/progs/vpglsl/func2.glsl deleted file mode 100644 index df964ed6f02..00000000000 --- a/progs/vpglsl/func2.glsl +++ /dev/null @@ -1,54 +0,0 @@ -#version 120 -const int KernelSize = 16; -uniform float KernelValue1f[KernelSize]; - - -float add_two(float a, float b) -{ - if (a > b) - return a - b; - else - return a + b; -} - -vec4 myfunc(vec4 x, vec4 mult, vec4 c) -{ - if (x.x >= 0.5) { - return mult * c; - } else { - return mult + c; - } -} - -vec4 func2(vec4 x) -{ - int i; - vec4 color = vec4(0); - for (i = 0; i < KernelSize; ++i) { - vec4 tmp = vec4(1./KernelSize); - color += myfunc(x, tmp, gl_Color); - } - return x * color; -} - -vec4 func(vec4 x) -{ - int i; - vec4 tmp = gl_Color; - vec4 sum = x; - - for (i = 0; i < KernelSize; ++i) { - sum = vec4( add_two(sum.x, KernelValue1f[i]) ); - } - sum = func2(sum); - return sum; -} - -void main(void) -{ - vec4 sum = vec4(0.0); - - sum = func(sum); - gl_Position = gl_Vertex; - gl_FrontColor = sum; -} diff --git a/progs/vpglsl/if.glsl b/progs/vpglsl/if.glsl deleted file mode 100644 index 174f69c19c9..00000000000 --- a/progs/vpglsl/if.glsl +++ /dev/null @@ -1,7 +0,0 @@ - -void main() { - gl_FrontColor = gl_Color; - gl_Position = gl_Vertex; - if (gl_Position.x < 0.5) - gl_FrontColor = vec4(1.0, 0.0, 0.0, 1.0); -} diff --git a/progs/vpglsl/ifelse.glsl b/progs/vpglsl/ifelse.glsl deleted file mode 100644 index 645b2117a17..00000000000 --- a/progs/vpglsl/ifelse.glsl +++ /dev/null @@ -1,8 +0,0 @@ - -void main() { - gl_Position = gl_Vertex; - if (gl_Position.x < 0.5) - gl_FrontColor = vec4(1.0, 0.0, 0.0, 1.0); - else - gl_FrontColor = gl_Color; -} diff --git a/progs/vpglsl/mov.glsl b/progs/vpglsl/mov.glsl deleted file mode 100644 index 63b16f4754b..00000000000 --- a/progs/vpglsl/mov.glsl +++ /dev/null @@ -1,5 +0,0 @@ - -void main() { - gl_FrontColor = gl_Color; - gl_Position = gl_Vertex; -} diff --git a/progs/vpglsl/nestedifs.glsl b/progs/vpglsl/nestedifs.glsl deleted file mode 100644 index abb235cd65b..00000000000 --- a/progs/vpglsl/nestedifs.glsl +++ /dev/null @@ -1,13 +0,0 @@ - -void main() { - gl_Position = gl_Vertex; - if (gl_Position.x < 0.5) { - if (gl_Position.y < 0.20) { - gl_FrontColor = vec4(1.0, 0.0, 0.0, 1.0); - } else { - gl_FrontColor = vec4(0.0, 1.0, 0.0, 1.0); - } - gl_FrontColor.y = 1.0; - } else - gl_FrontColor = gl_Color; -} diff --git a/progs/vpglsl/nestedswizzle.glsl b/progs/vpglsl/nestedswizzle.glsl deleted file mode 100644 index a3adb3dfeb2..00000000000 --- a/progs/vpglsl/nestedswizzle.glsl +++ /dev/null @@ -1,9 +0,0 @@ - -void main() { - gl_Position = gl_Vertex; - gl_FrontColor = gl_Color; - if (gl_Position.x < 0.5) { - gl_FrontColor.y = 1.0; - } - gl_FrontColor.xzw = vec3(0, 0, 1); -} diff --git a/progs/vpglsl/off2f.glsl b/progs/vpglsl/off2f.glsl deleted file mode 100644 index e06cb42a0ed..00000000000 --- a/progs/vpglsl/off2f.glsl +++ /dev/null @@ -1,18 +0,0 @@ -const int KernelSize = 8; -uniform vec2 Offset2f[KernelSize]; -uniform vec4 KernelValue4f[KernelSize]; - -void main(void) -{ - int i; - vec4 sum = vec4(0.0); - vec4 tmp = gl_Color; - vec2 rg, ba; - gl_Position = gl_Vertex; - - rg = Offset2f[4]; - ba = Offset2f[5]; - - - gl_FrontColor = KernelValue4f[0] * vec4(rg, ba); -} diff --git a/progs/vpglsl/psiz-imm.glsl b/progs/vpglsl/psiz-imm.glsl deleted file mode 100644 index 101d314d584..00000000000 --- a/progs/vpglsl/psiz-imm.glsl +++ /dev/null @@ -1,6 +0,0 @@ - -void main() { - gl_FrontColor = gl_Color; - gl_PointSize = 2.0; - gl_Position = gl_Vertex; -} diff --git a/progs/vpglsl/psiz-mul.glsl b/progs/vpglsl/psiz-mul.glsl deleted file mode 100644 index d2a90d8578e..00000000000 --- a/progs/vpglsl/psiz-mul.glsl +++ /dev/null @@ -1,6 +0,0 @@ - -void main() { - gl_FrontColor = gl_Color; - gl_PointSize = 10.0 * gl_Color.x; - gl_Position = gl_Vertex; -} diff --git a/progs/vpglsl/varfor1f.glsl b/progs/vpglsl/varfor1f.glsl deleted file mode 100644 index 9c3e8f2a238..00000000000 --- a/progs/vpglsl/varfor1f.glsl +++ /dev/null @@ -1,22 +0,0 @@ -const int KernelSize = 16; -uniform float KernelValue1f[KernelSize]; - -void main(void) -{ - int i; - vec4 sum = vec4(0.0); - vec4 tmp = gl_Color; - gl_Position = gl_Vertex; - - for (i = 0; i < KernelSize; ++i) { - float x, y, z, w; - - x = KernelValue1f[i]; ++i; - y = KernelValue1f[i]; ++i; - z = KernelValue1f[i]; ++i; - w = KernelValue1f[i]; - - sum += tmp * vec4(x, y, z, w); - } - gl_FrontColor = sum; -} diff --git a/progs/vpglsl/varfor2f.glsl b/progs/vpglsl/varfor2f.glsl deleted file mode 100644 index d98a1100458..00000000000 --- a/progs/vpglsl/varfor2f.glsl +++ /dev/null @@ -1,24 +0,0 @@ -const int KernelSize = 9; -uniform vec2 KernelValue2f[KernelSize]; - -void main(void) -{ - int i; - vec4 sum = vec4(0.0); - vec4 tmp = gl_Color; - gl_Position = gl_Vertex; - - for (i = 0; i < KernelSize; ++i) { - vec2 rg, ba; - - rg = KernelValue2f[i]; - ++i; - if (i < KernelSize) - ba = KernelValue2f[i]; - else - ba = vec2(0, 0); - - sum += tmp * vec4(rg, ba); - } - gl_FrontColor = sum; -} diff --git a/progs/vpglsl/varfor4f.glsl b/progs/vpglsl/varfor4f.glsl deleted file mode 100644 index c70ba0356fd..00000000000 --- a/progs/vpglsl/varfor4f.glsl +++ /dev/null @@ -1,19 +0,0 @@ -const int KernelSize = 4; -uniform vec4 KernelValue4f[KernelSize]; - -void main(void) -{ - int i; - vec4 sum = vec4(0.0); - vec4 tmp = gl_Color; - gl_Position = gl_Vertex; - - for (i = 0; i < KernelSize; ++i) { - vec4 rgba; - - rgba = KernelValue4f[i]; - - sum += tmp * rgba; - } - gl_FrontColor = sum; -} diff --git a/progs/vpglsl/vp-tris.c b/progs/vpglsl/vp-tris.c deleted file mode 100644 index 6a1fa3d3bf0..00000000000 --- a/progs/vpglsl/vp-tris.c +++ /dev/null @@ -1,363 +0,0 @@ - -#include <assert.h> -#include <string.h> -#include <stdio.h> -#include <stdlib.h> -#include <math.h> - -#include <GL/glew.h> -#include <GL/glut.h> - -static const char *filename = NULL; -static GLuint nr_steps = 4; -static GLuint prim = GL_TRIANGLES; -static GLfloat psz = 1.0; -static GLboolean pointsmooth = 0; -static GLboolean program_point_size = 0; - -static GLuint fragShader; -static GLuint vertShader; -static GLuint program; - -static void usage( char *name ) -{ - fprintf( stderr, "usage: %s [ options ] shader_filename\n", name ); - fprintf( stderr, "\n" ); - fprintf( stderr, "options:\n" ); - fprintf( stderr, " -f flat shaded\n" ); - fprintf( stderr, " -nNr subdivision steps\n" ); -} - - -static void load_and_compile_shader(GLuint shader, const char *text) -{ - GLint stat; - - glShaderSource(shader, 1, (const GLchar **) &text, NULL); - - glCompileShader(shader); - - glGetShaderiv(shader, GL_COMPILE_STATUS, &stat); - if (!stat) { - GLchar log[1000]; - GLsizei len; - glGetShaderInfoLog(shader, 1000, &len, log); - fprintf(stderr, "vp-tris: problem compiling shader:\n%s\n", log); - exit(1); - } -} - -static void read_shader(GLuint shader, const char *filename) -{ - const int max = 100*1000; - int n; - char *buffer = (char*) malloc(max); - FILE *f = fopen(filename, "r"); - if (!f) { - fprintf(stderr, "vp-tris: Unable to open shader file %s\n", filename); - exit(1); - } - - n = fread(buffer, 1, max, f); - printf("vp-tris: read %d bytes from shader file %s\n", n, filename); - if (n > 0) { - buffer[n] = 0; - load_and_compile_shader(shader, buffer); - } - - fclose(f); - free(buffer); -} - -static void check_link(GLuint prog) -{ - GLint stat; - glGetProgramiv(prog, GL_LINK_STATUS, &stat); - if (!stat) { - GLchar log[1000]; - GLsizei len; - glGetProgramInfoLog(prog, 1000, &len, log); - fprintf(stderr, "Linker error:\n%s\n", log); - } -} - -static void setup_uniforms() -{ - { - GLint loc1f = glGetUniformLocationARB(program, "Offset1f"); - GLint loc2f = glGetUniformLocationARB(program, "Offset2f"); - GLint loc4f = glGetUniformLocationARB(program, "Offset4f"); - GLfloat vecKer[] = - { 1.0, 0.0, 0.0, 1.0, - 0.0, 1.0, 0.0, 1.0, - 1.0, 0.0, 0.0, 1.0, - 0.0, 0.0, 0.0, 1.0 - }; - if (loc1f >= 0) - glUniform1fv(loc1f, 16, vecKer); - - if (loc2f >= 0) - glUniform2fv(loc2f, 8, vecKer); - - if (loc4f >= 0) - glUniform4fv(loc4f, 4, vecKer); - - } - - { - GLint loc1f = glGetUniformLocationARB(program, "KernelValue1f"); - GLint loc2f = glGetUniformLocationARB(program, "KernelValue2f"); - GLint loc4f = glGetUniformLocationARB(program, "KernelValue4f"); - GLfloat vecKer[] = - { 1.0, 0.0, 0.0, 0.25, - 0.0, 1.0, 0.0, 0.25, - 0.0, 0.0, 1.0, 0.25, - 0.0, 0.0, 0.0, 0.25, - 0.5, 0.0, 0.0, 0.35, - 0.0, 0.5, 0.0, 0.35, - 0.0, 0.0, 0.5, 0.35, - 0.0, 0.0, 0.0, 0.35 - }; - if (loc1f >= 0) - glUniform1fv(loc1f, 16, vecKer); - - if (loc2f >= 0) - glUniform2fv(loc2f, 8, vecKer); - - if (loc4f >= 0) - glUniform4fv(loc4f, 4, vecKer); - } -} - -static void prepare_shaders() -{ - static const char *fragShaderText = - "void main() {\n" - " gl_FragColor = gl_Color;\n" - "}\n"; - static const char *vertShaderText = - "void main() {\n" - " gl_FrontColor = gl_Color;\n" - " gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n" - "}\n"; - fragShader = glCreateShader(GL_FRAGMENT_SHADER); - load_and_compile_shader(fragShader, fragShaderText); - - - vertShader = glCreateShader(GL_VERTEX_SHADER); - if (filename) - read_shader(vertShader, filename); - else - load_and_compile_shader(vertShader, vertShaderText); - - program = glCreateProgram(); - glAttachShader(program, fragShader); - glAttachShader(program, vertShader); - glLinkProgram(program); - check_link(program); - glUseProgram(program); - - setup_uniforms(); -} - -static void args(int argc, char *argv[]) -{ - GLint i; - - for (i = 1; i < argc; i++) { - if (strncmp(argv[i], "-n", 2) == 0) { - nr_steps = atoi((argv[i]) + 2); - } - else if (strcmp(argv[i], "-f") == 0) { - glShadeModel(GL_FLAT); - } - else if (i == argc - 1) { - filename = argv[i]; - } - else { - usage(argv[0]); - exit(1); - } - } - - if (!filename) { - usage(argv[0]); - exit(1); - } -} - - - - -union vert { - struct { - GLfloat color[3]; - GLfloat pos[3]; - } v; - GLfloat f[6]; -}; - -static void make_midpoint( union vert *out, - const union vert *v0, - const union vert *v1) -{ - int i; - for (i = 0; i < 6; i++) - out->f[i] = v0->f[i] + .5 * (v1->f[i] - v0->f[i]); -} - -static void subdiv( union vert *v0, - union vert *v1, - union vert *v2, - GLuint depth ) -{ - if (depth == 0) { - glColor3fv(v0->v.color); - glVertex3fv(v0->v.pos); - glColor3fv(v1->v.color); - glVertex3fv(v1->v.pos); - glColor3fv(v2->v.color); - glVertex3fv(v2->v.pos); - } - else { - union vert m[3]; - - make_midpoint(&m[0], v0, v1); - make_midpoint(&m[1], v1, v2); - make_midpoint(&m[2], v2, v0); - - subdiv(&m[0], &m[2], v0, depth-1); - subdiv(&m[1], &m[0], v1, depth-1); - subdiv(&m[2], &m[1], v2, depth-1); - subdiv(&m[0], &m[1], &m[2], depth-1); - } -} - -static void enable( GLenum value, GLboolean flag ) -{ - if (flag) - glEnable(value); - else - glDisable(value); -} - -/** Assignment */ -#define ASSIGN_3V( V, V0, V1, V2 ) \ -do { \ - V[0] = V0; \ - V[1] = V1; \ - V[2] = V2; \ -} while(0) - -static void Display( void ) -{ - glClearColor(0.3, 0.3, 0.3, 1); - glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); - glPointSize(psz); - - glUseProgram(program); - enable( GL_POINT_SMOOTH, pointsmooth ); - enable( GL_VERTEX_PROGRAM_POINT_SIZE_ARB, program_point_size ); - - glBegin(prim); - - - { - union vert v[3]; - - ASSIGN_3V(v[0].v.color, 0,0,1); - ASSIGN_3V(v[0].v.pos, 0.9, -0.9, 0.0); - ASSIGN_3V(v[1].v.color, 1,0,0); - ASSIGN_3V(v[1].v.pos, 0.9, 0.9, 0.0); - ASSIGN_3V(v[2].v.color, 0,1,0); - ASSIGN_3V(v[2].v.pos, -0.9, 0, 0.0); - - subdiv(&v[0], &v[1], &v[2], nr_steps); - } - - glEnd(); - - - glFlush(); -} - - -static void Reshape( int width, int height ) -{ - glViewport( 0, 0, width, height ); - glMatrixMode( GL_PROJECTION ); - glLoadIdentity(); - glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0); - glMatrixMode( GL_MODELVIEW ); - glLoadIdentity(); - /*glTranslatef( 0.0, 0.0, -15.0 );*/ -} - - -static void CleanUp(void) -{ - glDeleteShader(fragShader); - glDeleteShader(vertShader); - glDeleteProgram(program); -} - -static void Key( unsigned char key, int x, int y ) -{ - (void) x; - (void) y; - switch (key) { - case 'p': - prim = GL_POINTS; - break; - case 't': - prim = GL_TRIANGLES; - break; - case 's': - psz += .5; - break; - case 'S': - if (psz > .5) - psz -= .5; - break; - case 'm': - pointsmooth = !pointsmooth; - break; - case 'z': - program_point_size = !program_point_size; - break; - case '+': - nr_steps++; - break; - case '-': - if (nr_steps) - nr_steps--; - break; - case ' ': - psz = 1.0; - prim = GL_TRIANGLES; - nr_steps = 4; - break; - case 27: - CleanUp(); - exit(0); - break; - } - glutPostRedisplay(); -} - -int main( int argc, char *argv[] ) -{ - glutInit( &argc, argv ); - glutInitWindowPosition( 0, 0 ); - glutInitWindowSize( 250, 250 ); - glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH ); - glutCreateWindow(argv[argc-1]); - glewInit(); - glutReshapeFunc( Reshape ); - glutKeyboardFunc( Key ); - glutDisplayFunc( Display ); - args( argc, argv ); - prepare_shaders(); - glutMainLoop(); - return 0; -} |