diff options
Diffstat (limited to 'progs/tests/arbgpuprog.c')
-rw-r--r-- | progs/tests/arbgpuprog.c | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/progs/tests/arbgpuprog.c b/progs/tests/arbgpuprog.c deleted file mode 100644 index 6098dca787b..00000000000 --- a/progs/tests/arbgpuprog.c +++ /dev/null @@ -1,234 +0,0 @@ -/** - * Just compile ARB vert/frag program from named file(s). - */ - -#include <assert.h> -#include <string.h> -#include <stdio.h> -#include <stdlib.h> -#include <math.h> -#include <GL/glut.h> - - -static GLuint FragProg; -static GLuint VertProg; -static GLint Win; - -static PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB_func; -static PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB_func; -static PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB_func; -static PFNGLGENPROGRAMSARBPROC glGenProgramsARB_func; -static PFNGLPROGRAMSTRINGARBPROC glProgramStringARB_func; -static PFNGLBINDPROGRAMARBPROC glBindProgramARB_func; -static PFNGLISPROGRAMARBPROC glIsProgramARB_func; -static PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB_func; - - -static void Redisplay( void ) -{ - glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); - glutSwapBuffers(); - exit(0); -} - - -static void Reshape( int width, int height ) -{ - glViewport( 0, 0, width, height ); - glMatrixMode( GL_PROJECTION ); - glLoadIdentity(); - glFrustum( -1.0, 1.0, -1.0, 1.0, 5.0, 25.0 ); - glMatrixMode( GL_MODELVIEW ); - glLoadIdentity(); - glTranslatef( 0.0, 0.0, -15.0 ); -} - - -static void Key( unsigned char key, int x, int y ) -{ - (void) x; - (void) y; - switch (key) { - case 27: - glDeleteProgramsARB_func(1, &VertProg); - glDeleteProgramsARB_func(1, &FragProg); - glutDestroyWindow(Win); - exit(0); - break; - } - glutPostRedisplay(); -} - - -/* A helper for finding errors in program strings */ -static int FindLine( const char *program, int position ) -{ - int i, line = 1; - for (i = 0; i < position; i++) { - if (program[i] == '\n') - line++; - } - return line; -} - - -static void Init( const char *vertProgFile, - const char *fragProgFile ) -{ - GLint errorPos; - char buf[10*1000]; - - if (!glutExtensionSupported("GL_ARB_vertex_program")) { - printf("Sorry, this demo requires GL_ARB_vertex_program\n"); - exit(1); - } - if (!glutExtensionSupported("GL_ARB_fragment_program")) { - printf("Sorry, this demo requires GL_ARB_fragment_program\n"); - exit(1); - } - - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - - /* - * Get extension function pointers. - */ - glProgramLocalParameter4fvARB_func = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) glutGetProcAddress("glProgramLocalParameter4fvARB"); - assert(glProgramLocalParameter4fvARB_func); - - glProgramLocalParameter4dARB_func = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC) glutGetProcAddress("glProgramLocalParameter4dARB"); - assert(glProgramLocalParameter4dARB_func); - - glGetProgramLocalParameterdvARB_func = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) glutGetProcAddress("glGetProgramLocalParameterdvARB"); - assert(glGetProgramLocalParameterdvARB_func); - - glGenProgramsARB_func = (PFNGLGENPROGRAMSARBPROC) glutGetProcAddress("glGenProgramsARB"); - assert(glGenProgramsARB_func); - - glProgramStringARB_func = (PFNGLPROGRAMSTRINGARBPROC) glutGetProcAddress("glProgramStringARB"); - assert(glProgramStringARB_func); - - glBindProgramARB_func = (PFNGLBINDPROGRAMARBPROC) glutGetProcAddress("glBindProgramARB"); - assert(glBindProgramARB_func); - - glIsProgramARB_func = (PFNGLISPROGRAMARBPROC) glutGetProcAddress("glIsProgramARB"); - assert(glIsProgramARB_func); - - glDeleteProgramsARB_func = (PFNGLDELETEPROGRAMSARBPROC) glutGetProcAddress("glDeleteProgramsARB"); - assert(glDeleteProgramsARB_func); - - /* - * Vertex program - */ - if (vertProgFile) { - FILE *f; - int len; - - glGenProgramsARB_func(1, &VertProg); - assert(VertProg > 0); - glBindProgramARB_func(GL_VERTEX_PROGRAM_ARB, VertProg); - - f = fopen(vertProgFile, "r"); - if (!f) { - printf("Unable to open %s\n", fragProgFile); - exit(1); - } - - len = fread(buf, 1, 10*1000,f); - fclose(f); - - glProgramStringARB_func(GL_VERTEX_PROGRAM_ARB, - GL_PROGRAM_FORMAT_ASCII_ARB, - len, - (const GLubyte *) buf); - - glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorPos); - if (glGetError() != GL_NO_ERROR || errorPos != -1) { - int l = FindLine(buf, errorPos); - printf("Vertex Program Error (pos=%d line=%d): %s\n", errorPos, l, - (char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB)); - exit(0); - } - else { - glEnable(GL_VERTEX_PROGRAM_ARB); - printf("Vertex Program OK\n"); - } - } - - /* - * Fragment program - */ - if (fragProgFile) { - FILE *f; - int len; - - glGenProgramsARB_func(1, &FragProg); - assert(FragProg > 0); - glBindProgramARB_func(GL_FRAGMENT_PROGRAM_ARB, FragProg); - - f = fopen(fragProgFile, "r"); - if (!f) { - printf("Unable to open %s\n", fragProgFile); - exit(1); - } - - len = fread(buf, 1, 10*1000,f); - fclose(f); - - glProgramStringARB_func(GL_FRAGMENT_PROGRAM_ARB, - GL_PROGRAM_FORMAT_ASCII_ARB, - len, - (const GLubyte *) buf); - - glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorPos); - if (glGetError() != GL_NO_ERROR || errorPos != -1) { - int l = FindLine(buf, errorPos); - printf("Fragment Program Error (pos=%d line=%d): %s\n", errorPos, l, - (char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB)); - exit(0); - } - else { - glEnable(GL_FRAGMENT_PROGRAM_ARB); - printf("Fragment Program OK\n"); - } - } -} - - -int main( int argc, char *argv[] ) -{ - const char *vertProgFile = NULL, *fragProgFile = NULL; - int i; - - glutInit( &argc, argv ); - glutInitWindowPosition( 0, 0 ); - glutInitWindowSize( 200, 200 ); - glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH ); - Win = glutCreateWindow(argv[0]); - glutReshapeFunc( Reshape ); - glutKeyboardFunc( Key ); - glutDisplayFunc( Redisplay ); - - if (argc == 1) { - printf("arbgpuprog:\n"); - printf(" Compile GL_ARB_vertex/fragment_programs, report any errors.\n"); - printf("Usage:\n"); - printf(" arbgpuprog [--vp vertprogfile] [--fp fragprogfile]\n"); - exit(1); - } - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "--vp") == 0) { - vertProgFile = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "--fp") == 0) { - fragProgFile = argv[i+1]; - i++; - } - } - - Init(vertProgFile, fragProgFile); - - glutMainLoop(); - return 0; -} |