From 025b140b2fd6860039a0d4b545130751473563c5 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Fri, 9 Nov 2007 08:19:27 -0500 Subject: Add a simple fps counter to the example --- progs/vp/vp-tris.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'progs/vp/vp-tris.c') diff --git a/progs/vp/vp-tris.c b/progs/vp/vp-tris.c index 5dbe5ac835..e5be65e78c 100644 --- a/progs/vp/vp-tris.c +++ b/progs/vp/vp-tris.c @@ -7,6 +7,8 @@ #include #define GL_GLEXT_PROTOTYPES #include +#include +#include static const char *filename = NULL; static GLuint nr_steps = 4; @@ -18,8 +20,24 @@ static void usage( char *name ) fprintf( stderr, "options:\n" ); fprintf( stderr, " -f flat shaded\n" ); fprintf( stderr, " -nNr subdivision steps\n" ); + fprintf( stderr, " -fps show frames per second\n" ); } +unsigned show_fps = 0; +unsigned int frame_cnt = 0; +void alarmhandler(int); + +void alarmhandler (int sig) +{ + if (sig == SIGALRM) { + printf("%d frames in 5.0 seconds = %.3f FPS\n", frame_cnt, + frame_cnt / 5.0); + + frame_cnt = 0; + } + signal(SIGALRM, alarmhandler); + alarm(5); +} static void args(int argc, char *argv[]) { @@ -32,6 +50,9 @@ static void args(int argc, char *argv[]) else if (strcmp(argv[i], "-f") == 0) { glShadeModel(GL_FLAT); } + else if (strcmp(argv[i], "-fps") == 0) { + show_fps = 1; + } else if (i == argc - 1) { filename = argv[i]; } @@ -168,7 +189,11 @@ static void Display( void ) glEnd(); - glFlush(); + glFlush(); + if (show_fps) { + ++frame_cnt; + glutPostRedisplay(); + } } @@ -211,6 +236,10 @@ int main( int argc, char *argv[] ) glutDisplayFunc( Display ); args( argc, argv ); Init(); + if (show_fps) { + signal(SIGALRM, alarmhandler); + alarm(5); + } glutMainLoop(); return 0; } -- cgit v1.2.3 From 6f111e9c81a0c28f057092836a3b7fc6100cdb6d Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Thu, 13 Dec 2007 10:31:39 -0500 Subject: Don't generate spurious vs, move the enable a bit to do that. --- progs/vp/vp-tris.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'progs/vp/vp-tris.c') diff --git a/progs/vp/vp-tris.c b/progs/vp/vp-tris.c index e5be65e78c..f9e6cdad74 100644 --- a/progs/vp/vp-tris.c +++ b/progs/vp/vp-tris.c @@ -90,7 +90,9 @@ static void Init( void ) } fprintf(stderr, "%.*s\n", sz, buf); - + + glEnable(GL_VERTEX_PROGRAM_NV); + glGenProgramsARB(1, &prognum); glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum); @@ -168,8 +170,6 @@ static void Display( void ) glClearColor(0.3, 0.3, 0.3, 1); glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); - glEnable(GL_VERTEX_PROGRAM_NV); - glBegin(GL_TRIANGLES); -- cgit v1.2.3 From 2f13d4cd58ec2bd60fd9a31cb1b2fb4bc8ee4ec7 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Wed, 21 May 2008 13:17:48 +0100 Subject: vp-tris: use test name as window name --- progs/vp/vp-tris.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'progs/vp/vp-tris.c') diff --git a/progs/vp/vp-tris.c b/progs/vp/vp-tris.c index f9e6cdad74..eb450cb598 100644 --- a/progs/vp/vp-tris.c +++ b/progs/vp/vp-tris.c @@ -230,7 +230,7 @@ int main( int argc, char *argv[] ) glutInitWindowPosition( 0, 0 ); glutInitWindowSize( 250, 250 ); glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH ); - glutCreateWindow(argv[0]); + glutCreateWindow(argv[argc-1]); glutReshapeFunc( Reshape ); glutKeyboardFunc( Key ); glutDisplayFunc( Display ); -- cgit v1.2.3 From 5b16730df8e19792ed92441857f586e0ec773a1f Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Mon, 18 Aug 2008 21:44:54 +0200 Subject: Port vp to Windows. --- progs/vp/vp-tris.c | 32 ++++++++++- progs/vp/windows/vp2003.sln | 21 +++++++ progs/vp/windows/vp2003.vcproj | 121 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 171 insertions(+), 3 deletions(-) create mode 100644 progs/vp/windows/vp2003.sln create mode 100644 progs/vp/windows/vp2003.vcproj (limited to 'progs/vp/vp-tris.c') diff --git a/progs/vp/vp-tris.c b/progs/vp/vp-tris.c index eb450cb598..a65ac11dc3 100644 --- a/progs/vp/vp-tris.c +++ b/progs/vp/vp-tris.c @@ -5,10 +5,22 @@ #include #include #include -#define GL_GLEXT_PROTOTYPES #include + +#ifndef WIN32 #include #include +#define GL_GLEXT_PROTOTYPES +#else +#include +#endif + +#ifdef WIN32 +static PFNGLBINDPROGRAMARBPROC glBindProgramARB = NULL; +static PFNGLGENPROGRAMSARBPROC glGenProgramsARB = NULL; +static PFNGLPROGRAMSTRINGARBPROC glProgramStringARB = NULL; +static PFNGLISPROGRAMARBPROC glIsProgramARB = NULL; +#endif static const char *filename = NULL; static GLuint nr_steps = 4; @@ -25,6 +37,9 @@ static void usage( char *name ) unsigned show_fps = 0; unsigned int frame_cnt = 0; + +#ifndef WIN32 + void alarmhandler(int); void alarmhandler (int sig) @@ -39,6 +54,8 @@ void alarmhandler (int sig) alarm(5); } +#endif + static void args(int argc, char *argv[]) { GLint i; @@ -83,7 +100,7 @@ static void Init( void ) exit(1); } - sz = fread(buf, 1, sizeof(buf), f); + sz = (GLuint) fread(buf, 1, sizeof(buf), f); if (!feof(f)) { fprintf(stderr, "file too long\n"); exit(1); @@ -91,7 +108,14 @@ static void Init( void ) fprintf(stderr, "%.*s\n", sz, buf); - glEnable(GL_VERTEX_PROGRAM_NV); +#ifdef WIN32 + glBindProgramARB = (PFNGLBINDPROGRAMARBPROC) wglGetProcAddress( "glBindProgramARB" ); + glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC) wglGetProcAddress( "glGenProgramsARB" ); + glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC) wglGetProcAddress( "glProgramStringARB" ); + glIsProgramARB = (PFNGLISPROGRAMARBPROC) wglGetProcAddress( "glIsProgramARB" ); +#endif + + glEnable(GL_VERTEX_PROGRAM_ARB); glGenProgramsARB(1, &prognum); @@ -236,10 +260,12 @@ int main( int argc, char *argv[] ) glutDisplayFunc( Display ); args( argc, argv ); Init(); +#ifndef WIN32 if (show_fps) { signal(SIGALRM, alarmhandler); alarm(5); } +#endif glutMainLoop(); return 0; } diff --git a/progs/vp/windows/vp2003.sln b/progs/vp/windows/vp2003.sln new file mode 100644 index 0000000000..76de5cfd7f --- /dev/null +++ b/progs/vp/windows/vp2003.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vp2003", "vp2003.vcproj", "{E1C70416-98E7-4282-B6B2-6C9CF90B12C0}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {E1C70416-98E7-4282-B6B2-6C9CF90B12C0}.Debug.ActiveCfg = Debug|Win32 + {E1C70416-98E7-4282-B6B2-6C9CF90B12C0}.Debug.Build.0 = Debug|Win32 + {E1C70416-98E7-4282-B6B2-6C9CF90B12C0}.Release.ActiveCfg = Release|Win32 + {E1C70416-98E7-4282-B6B2-6C9CF90B12C0}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/progs/vp/windows/vp2003.vcproj b/progs/vp/windows/vp2003.vcproj new file mode 100644 index 0000000000..adca2c5073 --- /dev/null +++ b/progs/vp/windows/vp2003.vcproj @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From 2858ec66c2dfb67c904cab5c56291b621c62720d Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Tue, 19 Aug 2008 14:43:19 +0200 Subject: Add support for NVIDIA programs. --- progs/vp/vp-tris.c | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) (limited to 'progs/vp/vp-tris.c') diff --git a/progs/vp/vp-tris.c b/progs/vp/vp-tris.c index a65ac11dc3..3fe35f7e3e 100644 --- a/progs/vp/vp-tris.c +++ b/progs/vp/vp-tris.c @@ -20,6 +20,11 @@ static PFNGLBINDPROGRAMARBPROC glBindProgramARB = NULL; static PFNGLGENPROGRAMSARBPROC glGenProgramsARB = NULL; static PFNGLPROGRAMSTRINGARBPROC glProgramStringARB = NULL; static PFNGLISPROGRAMARBPROC glIsProgramARB = NULL; + +static PFNGLBINDPROGRAMNVPROC glBindProgramNV = NULL; +static PFNGLGENPROGRAMSNVPROC glGenProgramsNV = NULL; +static PFNGLLOADPROGRAMNVPROC glLoadProgramNV = NULL; +static PFNGLISPROGRAMNVPROC glIsProgramNV = NULL; #endif static const char *filename = NULL; @@ -108,20 +113,37 @@ static void Init( void ) fprintf(stderr, "%.*s\n", sz, buf); + if (strncmp( buf, "!!VP", 4 ) == 0) { #ifdef WIN32 - glBindProgramARB = (PFNGLBINDPROGRAMARBPROC) wglGetProcAddress( "glBindProgramARB" ); - glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC) wglGetProcAddress( "glGenProgramsARB" ); - glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC) wglGetProcAddress( "glProgramStringARB" ); - glIsProgramARB = (PFNGLISPROGRAMARBPROC) wglGetProcAddress( "glIsProgramARB" ); + glBindProgramNV = (PFNGLBINDPROGRAMNVPROC) wglGetProcAddress( "glBindProgramNV" ); + glGenProgramsNV = (PFNGLGENPROGRAMSNVPROC) wglGetProcAddress( "glGenProgramsNV" ); + glLoadProgramNV = (PFNGLLOADPROGRAMNVPROC) wglGetProcAddress( "glLoadProgramNV" ); + glIsProgramNV = (PFNGLISPROGRAMNVPROC) wglGetProcAddress( "glIsProgramNV" ); #endif - glEnable(GL_VERTEX_PROGRAM_ARB); + glEnable( GL_VERTEX_PROGRAM_NV ); + glGenProgramsNV( 1, &prognum ); + glBindProgramNV( GL_VERTEX_PROGRAM_NV, prognum ); + glLoadProgramNV( GL_VERTEX_PROGRAM_NV, prognum, sz, (const GLubyte *) buf ); + assert( glIsProgramNV( prognum ) ); + } + else { +#ifdef WIN32 + glBindProgramARB = (PFNGLBINDPROGRAMARBPROC) wglGetProcAddress( "glBindProgramARB" ); + glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC) wglGetProcAddress( "glGenProgramsARB" ); + glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC) wglGetProcAddress( "glProgramStringARB" ); + glIsProgramARB = (PFNGLISPROGRAMARBPROC) wglGetProcAddress( "glIsProgramARB" ); +#endif + + glEnable(GL_VERTEX_PROGRAM_ARB); - glGenProgramsARB(1, &prognum); + glGenProgramsARB(1, &prognum); - glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum); - glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, - sz, (const GLubyte *) buf); + glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum); + glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, + sz, (const GLubyte *) buf); + assert(glIsProgramARB(prognum)); + } errno = glGetError(); printf("glGetError = %d\n", errno); @@ -133,7 +155,6 @@ static void Init( void ) printf("errorpos: %d\n", errorpos); printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB)); } - assert(glIsProgramARB(prognum)); } -- cgit v1.2.3 From 5548a3072f73b8868746b640535c4774657dc306 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Tue, 14 Oct 2008 13:52:38 +0100 Subject: vp: add simple vertex transform test --- progs/vp/vp-tris.c | 11 +++++++++++ progs/vp/xform.txt | 11 +++++++++++ 2 files changed, 22 insertions(+) create mode 100644 progs/vp/xform.txt (limited to 'progs/vp/vp-tris.c') diff --git a/progs/vp/vp-tris.c b/progs/vp/vp-tris.c index 3fe35f7e3e..58014dd48d 100644 --- a/progs/vp/vp-tris.c +++ b/progs/vp/vp-tris.c @@ -155,6 +155,17 @@ static void Init( void ) printf("errorpos: %d\n", errorpos); printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB)); } + + { + const float Ambient[4] = { 0.0, 1.0, 0.0, 0.0 }; + const float Diffuse[4] = { 1.0, 0.0, 0.0, 0.0 }; + const float Specular[4] = { 0.0, 0.0, 1.0, 0.0 }; + const float Emission[4] = { 0.0, 0.0, 0.0, 1.0 }; + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, Ambient); + glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, Diffuse); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, Specular); + glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, Emission); + } } diff --git a/progs/vp/xform.txt b/progs/vp/xform.txt new file mode 100644 index 0000000000..d1548f1f10 --- /dev/null +++ b/progs/vp/xform.txt @@ -0,0 +1,11 @@ +!!ARBvp1.0 +PARAM Emission = state.material.emission; +PARAM Ambient = state.material.ambient; +PARAM Diffuse = state.material.diffuse; +PARAM Specular = state.material.specular; +DP4 result.position.x, Ambient, vertex.position; +DP4 result.position.y, Diffuse, vertex.position; +DP4 result.position.z, Specular, vertex.position; +DP4 result.position.w, Emission, vertex.position; +MOV result.color, vertex.color; +END -- cgit v1.2.3 From 54d684f23d3fb723d7f226b5ce093248476ab26a Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 28 Oct 2008 19:01:38 -0600 Subject: move glut.h include --- progs/vp/vp-tris.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'progs/vp/vp-tris.c') diff --git a/progs/vp/vp-tris.c b/progs/vp/vp-tris.c index 58014dd48d..e1ddb2e14d 100644 --- a/progs/vp/vp-tris.c +++ b/progs/vp/vp-tris.c @@ -5,7 +5,6 @@ #include #include #include -#include #ifndef WIN32 #include @@ -15,6 +14,8 @@ #include #endif +#include + #ifdef WIN32 static PFNGLBINDPROGRAMARBPROC glBindProgramARB = NULL; static PFNGLGENPROGRAMSARBPROC glGenProgramsARB = NULL; -- cgit v1.2.3 From 528a0a885e85907888738cd7b28fff1334697e50 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Fri, 23 Jan 2009 16:24:43 +0000 Subject: progs: Port vp-tris to glew. There was some wglGetProcAddress calls to setup extensions already, but including glext caused many compilation errors in MinGW. --- progs/SConscript | 1 + progs/vp/Makefile | 2 +- progs/vp/SConscript | 13 +++++++++++++ progs/vp/vp-tris.c | 31 ++----------------------------- 4 files changed, 17 insertions(+), 30 deletions(-) create mode 100644 progs/vp/SConscript (limited to 'progs/vp/vp-tris.c') diff --git a/progs/SConscript b/progs/SConscript index 245fc26725..ffb6de4f16 100644 --- a/progs/SConscript +++ b/progs/SConscript @@ -1,4 +1,5 @@ SConscript([ 'demos/SConscript', 'trivial/SConscript', + 'vp/SConscript', ]) diff --git a/progs/vp/Makefile b/progs/vp/Makefile index 41d025c574..58a0dacb22 100644 --- a/progs/vp/Makefile +++ b/progs/vp/Makefile @@ -8,7 +8,7 @@ TOP = ../.. include $(TOP)/configs/current -LIBS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) $(APP_LIB_DEPS) +LIBS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLEW_LIB) -l$(GLU_LIB) -l$(GL_LIB) $(APP_LIB_DEPS) SOURCES = \ vp-tris.c diff --git a/progs/vp/SConscript b/progs/vp/SConscript new file mode 100644 index 0000000000..640c5dd847 --- /dev/null +++ b/progs/vp/SConscript @@ -0,0 +1,13 @@ +Import('env') + +if not env['GLUT']: + Return() + +env = env.Clone() + +env.Prepend(LIBS = ['$GLUT_LIB']) + +env.Program( + target = 'vp-tris', + source = ['vp-tris.c'], + ) diff --git a/progs/vp/vp-tris.c b/progs/vp/vp-tris.c index e1ddb2e14d..87cb12b984 100644 --- a/progs/vp/vp-tris.c +++ b/progs/vp/vp-tris.c @@ -9,25 +9,11 @@ #ifndef WIN32 #include #include -#define GL_GLEXT_PROTOTYPES -#else -#include #endif +#include #include -#ifdef WIN32 -static PFNGLBINDPROGRAMARBPROC glBindProgramARB = NULL; -static PFNGLGENPROGRAMSARBPROC glGenProgramsARB = NULL; -static PFNGLPROGRAMSTRINGARBPROC glProgramStringARB = NULL; -static PFNGLISPROGRAMARBPROC glIsProgramARB = NULL; - -static PFNGLBINDPROGRAMNVPROC glBindProgramNV = NULL; -static PFNGLGENPROGRAMSNVPROC glGenProgramsNV = NULL; -static PFNGLLOADPROGRAMNVPROC glLoadProgramNV = NULL; -static PFNGLISPROGRAMNVPROC glIsProgramNV = NULL; -#endif - static const char *filename = NULL; static GLuint nr_steps = 4; @@ -115,13 +101,6 @@ static void Init( void ) fprintf(stderr, "%.*s\n", sz, buf); if (strncmp( buf, "!!VP", 4 ) == 0) { -#ifdef WIN32 - glBindProgramNV = (PFNGLBINDPROGRAMNVPROC) wglGetProcAddress( "glBindProgramNV" ); - glGenProgramsNV = (PFNGLGENPROGRAMSNVPROC) wglGetProcAddress( "glGenProgramsNV" ); - glLoadProgramNV = (PFNGLLOADPROGRAMNVPROC) wglGetProcAddress( "glLoadProgramNV" ); - glIsProgramNV = (PFNGLISPROGRAMNVPROC) wglGetProcAddress( "glIsProgramNV" ); -#endif - glEnable( GL_VERTEX_PROGRAM_NV ); glGenProgramsNV( 1, &prognum ); glBindProgramNV( GL_VERTEX_PROGRAM_NV, prognum ); @@ -129,13 +108,6 @@ static void Init( void ) assert( glIsProgramNV( prognum ) ); } else { -#ifdef WIN32 - glBindProgramARB = (PFNGLBINDPROGRAMARBPROC) wglGetProcAddress( "glBindProgramARB" ); - glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC) wglGetProcAddress( "glGenProgramsARB" ); - glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC) wglGetProcAddress( "glProgramStringARB" ); - glIsProgramARB = (PFNGLISPROGRAMARBPROC) wglGetProcAddress( "glIsProgramARB" ); -#endif - glEnable(GL_VERTEX_PROGRAM_ARB); glGenProgramsARB(1, &prognum); @@ -288,6 +260,7 @@ int main( int argc, char *argv[] ) glutInitWindowSize( 250, 250 ); glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH ); glutCreateWindow(argv[argc-1]); + glewInit(); glutReshapeFunc( Reshape ); glutKeyboardFunc( Key ); glutDisplayFunc( Display ); -- cgit v1.2.3 From dbc3e8e93f6dc7540ace4d5c543204bdad0d0d71 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Fri, 13 Mar 2009 11:17:03 +0000 Subject: progs/vp: add keys for point prims, etc, and various new tests --- progs/vp/addimm.txt | 5 +++++ progs/vp/arl-static.txt | 7 +++++++ progs/vp/arl-unused.txt | 7 +++++++ progs/vp/exp-no-w.txt | 6 ++++++ progs/vp/msk.txt | 7 +++++++ progs/vp/vp-tris.c | 36 ++++++++++++++++++++++++++++++++---- 6 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 progs/vp/addimm.txt create mode 100644 progs/vp/arl-static.txt create mode 100644 progs/vp/arl-unused.txt create mode 100644 progs/vp/exp-no-w.txt create mode 100644 progs/vp/msk.txt (limited to 'progs/vp/vp-tris.c') diff --git a/progs/vp/addimm.txt b/progs/vp/addimm.txt new file mode 100644 index 0000000000..f5796d7810 --- /dev/null +++ b/progs/vp/addimm.txt @@ -0,0 +1,5 @@ +!!ARBvp1.0 +TEMP R0; +ADD result.color, vertex.color, {.5}.x; +MOV result.position, vertex.position; +END diff --git a/progs/vp/arl-static.txt b/progs/vp/arl-static.txt new file mode 100644 index 0000000000..aea87b79a4 --- /dev/null +++ b/progs/vp/arl-static.txt @@ -0,0 +1,7 @@ +!!ARBvp1.0 +PARAM arr[5] = { {.0,.1,.2,.3}, {.4,.5,.6,.7}, {.8,.9,.10,.1}, {.12,.3,.4,.14}, {.5,.8,.1,.9}, {.2,0,.4,.1}, {.6,.1,.8,.9}}; +ADDRESS addr; +ARL addr.x, {3}.x; +MOV result.color, arr[addr.x]; +MOV result.position, vertex.position; +END diff --git a/progs/vp/arl-unused.txt b/progs/vp/arl-unused.txt new file mode 100644 index 0000000000..7bdbb8e86c --- /dev/null +++ b/progs/vp/arl-unused.txt @@ -0,0 +1,7 @@ +!!ARBvp1.0 +PARAM arr[5] = { {.0,.1,.2,.3}, {.4,.5,.6,.7}, {.8,.9,.10,.1}, {.12,.3,.4,.14}, {.5,.8,.1,.9}, {.2,0,.4,.1}, {.6,.1,.8,.9}}; +ADDRESS addr; +ARL addr.x, {3}.x; # not actually used +MOV result.color, arr[3]; +MOV result.position, vertex.position; +END diff --git a/progs/vp/exp-no-w.txt b/progs/vp/exp-no-w.txt new file mode 100644 index 0000000000..98ed4b7a98 --- /dev/null +++ b/progs/vp/exp-no-w.txt @@ -0,0 +1,6 @@ +!!ARBvp1.0 +TEMP R0; +EXP R0, vertex.color.x; +SUB result.color, R0.z, {1.0}.x; +MOV result.position, vertex.position; +END diff --git a/progs/vp/msk.txt b/progs/vp/msk.txt new file mode 100644 index 0000000000..9e925aca11 --- /dev/null +++ b/progs/vp/msk.txt @@ -0,0 +1,7 @@ +!!ARBvp1.0 +TEMP R0; +MOV R0.xz, vertex.color; +MOV R0.yw, {0.5}.x; +MOV result.color, R0; +MOV result.position, vertex.position; +END diff --git a/progs/vp/vp-tris.c b/progs/vp/vp-tris.c index 87cb12b984..e9b2479c63 100644 --- a/progs/vp/vp-tris.c +++ b/progs/vp/vp-tris.c @@ -16,6 +16,8 @@ static const char *filename = NULL; static GLuint nr_steps = 4; +static GLuint prim = GL_TRIANGLES; +static GLfloat psz = 1.0; static void usage( char *name ) { @@ -198,8 +200,9 @@ static void Display( void ) { glClearColor(0.3, 0.3, 0.3, 1); glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); + glPointSize(psz); - glBegin(GL_TRIANGLES); + glBegin(prim); { @@ -243,9 +246,34 @@ static void Key( unsigned char key, int x, int y ) (void) x; (void) y; switch (key) { - case 27: - exit(0); - break; + 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 '+': + nr_steps++; + break; + case '-': + if (nr_steps) + nr_steps--; + break; + case ' ': + psz = 1.0; + prim = GL_TRIANGLES; + nr_steps = 4; + break; + case 27: + exit(0); + break; } glutPostRedisplay(); } -- cgit v1.2.3 From 48012157ba56d5ed5566e6170b0f253b4e68ef28 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Fri, 13 Mar 2009 11:37:17 +0000 Subject: vp: add test for pointsize output --- progs/vp/psiz-mul.txt | 6 ++++++ progs/vp/vp-tris.c | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 progs/vp/psiz-mul.txt (limited to 'progs/vp/vp-tris.c') diff --git a/progs/vp/psiz-mul.txt b/progs/vp/psiz-mul.txt new file mode 100644 index 0000000000..a74df66de2 --- /dev/null +++ b/progs/vp/psiz-mul.txt @@ -0,0 +1,6 @@ +!!ARBvp1.0 +MOV result.color, vertex.color; +MUL result.pointsize, vertex.color.x, {10.0}.x; +MOV result.position, vertex.position; +END + diff --git a/progs/vp/vp-tris.c b/progs/vp/vp-tris.c index e9b2479c63..97995accdd 100644 --- a/progs/vp/vp-tris.c +++ b/progs/vp/vp-tris.c @@ -18,6 +18,8 @@ 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 void usage( char *name ) { @@ -188,6 +190,14 @@ static void subdiv( union vert *v0, } } +static void enable( GLenum value, GLboolean flag ) +{ + if (flag) + glEnable(value); + else + glDisable(value); +} + /** Assignment */ #define ASSIGN_3V( V, V0, V1, V2 ) \ do { \ @@ -202,6 +212,9 @@ static void Display( void ) glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glPointSize(psz); + enable( GL_POINT_SMOOTH, pointsmooth ); + enable( GL_VERTEX_PROGRAM_POINT_SIZE_ARB, program_point_size ); + glBegin(prim); @@ -259,6 +272,12 @@ static void Key( unsigned char key, int x, int y ) if (psz > .5) psz -= .5; break; + case 'm': + pointsmooth = !pointsmooth; + break; + case 'z': + program_point_size = !program_point_size; + break; case '+': nr_steps++; break; -- cgit v1.2.3