1 /* Test glGenProgramsNV(), glIsProgramNV(), glLoadProgramNV() */
11 static float Zrot
= 0.0;
14 static void Display( void )
16 glClearColor(0.3, 0.3, 0.3, 1);
17 glClear( GL_COLOR_BUFFER_BIT
| GL_DEPTH_BUFFER_BIT
);
19 glEnable(GL_VERTEX_PROGRAM_NV
);
22 glRotatef(Zrot
, 0, 0, 1);
24 glTrackMatrixNV(GL_VERTEX_PROGRAM_NV
, 0, GL_MODELVIEW
, GL_IDENTITY_NV
);
27 glVertexAttrib3fNV(3, 1, 0.5, 0.25);
28 glBegin(GL_TRIANGLES
);
30 glVertexAttrib3fNV(3, 1.0, 0.0, 0.0);
31 glVertexAttrib2fNV(0, -0.5, -0.5);
32 glVertexAttrib3fNV(3, 0.0, 1.0, 0.0);
33 glVertexAttrib2fNV(0, 0.5, -0.5);
34 glVertexAttrib3fNV(3, 0.0, 0.0, 1.0);
35 glVertexAttrib2fNV(0, 0, 0.5);
49 static void Reshape( int width
, int height
)
51 glViewport( 0, 0, width
, height
);
52 glMatrixMode( GL_PROJECTION
);
54 /* glFrustum( -2.0, 2.0, -2.0, 2.0, 5.0, 25.0 );*/
55 glOrtho(-2.0, 2.0, -2.0, 2.0, -2.0, 2.0 );
56 glMatrixMode( GL_MODELVIEW
);
58 /*glTranslatef( 0.0, 0.0, -15.0 );*/
62 static void Key( unsigned char key
, int x
, int y
)
81 static void Init( void )
83 static const char *prog1
=
85 "MOV o[COL0], v[COL0];\n"
87 "MOV o[HPOS], v[OPOS];\n"
89 "DP4 o[HPOS].x, v[OPOS], c[0];\n"
90 "DP4 o[HPOS].y, v[OPOS], c[1];\n"
91 "DP4 o[HPOS].z, v[OPOS], c[2];\n"
92 "DP4 o[HPOS].w, v[OPOS], c[3];\n"
96 glLoadProgramNV(GL_VERTEX_PROGRAM_NV
, 1,
98 (const GLubyte
*) prog1
);
99 assert(glIsProgramNV(1));
101 glBindProgramNV(GL_VERTEX_PROGRAM_NV
, 1);
103 printf("glGetError = %d\n", (int) glGetError());
107 int main( int argc
, char *argv
[] )
109 glutInit( &argc
, argv
);
110 glutInitWindowPosition( 0, 0 );
111 glutInitWindowSize( 250, 250 );
112 glutInitDisplayMode( GLUT_RGB
| GLUT_DOUBLE
| GLUT_DEPTH
);
113 glutCreateWindow(argv
[0]);
115 glutReshapeFunc( Reshape
);
116 glutKeyboardFunc( Key
);
117 glutDisplayFunc( Display
);