380f198563bda6828d02c65c28b2ddda039c3bc4
1 /* $Id: cva.c,v 1.2 2000/11/03 00:09:31 gareth Exp $ */
4 * Trivial CVA test, good for testing driver fastpaths (especially
5 * indexed vertex buffers if they are supported).
14 #define GL_GLEXT_LEGACY
18 GLfloat verts
[][4] = {
19 { -0.5, -0.5, -2.0, 0.0 },
20 { 0.5, -0.5, -2.0, 0.0 },
21 { -0.5, 0.5, -2.0, 0.0 },
24 GLubyte color
[][4] = {
25 { 0xff, 0x00, 0x00, 0x00 },
26 { 0x00, 0xff, 0x00, 0x00 },
27 { 0x00, 0x00, 0xff, 0x00 },
30 GLuint indices
[] = { 0, 1, 2 };
32 GLboolean compiled
= GL_TRUE
;
37 glClearColor( 0.0, 0.0, 0.0, 0.0 );
38 glShadeModel( GL_SMOOTH
);
40 glEnable( GL_DEPTH_TEST
);
42 glEnableClientState( GL_VERTEX_ARRAY
);
43 glEnableClientState( GL_COLOR_ARRAY
);
45 glMatrixMode( GL_PROJECTION
);
47 glFrustum( -1.0, 1.0, -1.0, 1.0, 2.0, 10.0 );
48 glMatrixMode( GL_MODELVIEW
);
51 glVertexPointer( 3, GL_FLOAT
, sizeof(verts
[0]), verts
);
52 glColorPointer( 4, GL_UNSIGNED_BYTE
, 0, color
);
54 #ifdef GL_EXT_compiled_vertex_array
56 glLockArraysEXT( 0, 3 );
63 glClear( GL_COLOR_BUFFER_BIT
| GL_DEPTH_BUFFER_BIT
);
65 glDrawElements( GL_TRIANGLES
, 3, GL_UNSIGNED_INT
, indices
);
70 void keyboard( unsigned char key
, int x
, int y
)
79 int main( int argc
, char **argv
)
83 glutInit( &argc
, argv
);
84 glutInitDisplayMode( GLUT_SINGLE
| GLUT_RGB
| GLUT_DEPTH
);
85 glutInitWindowSize( 250, 250 );
86 glutInitWindowPosition( 100, 100 );
87 glutCreateWindow( "CVA Test" );
89 /* Make sure the server supports GL 1.2 vertex arrays.
91 string
= (char *) glGetString( GL_VERSION
);
93 if ( !strstr( string
, "1.2" ) ) {
94 fprintf( stderr
, "This program requires OpenGL 1.2 vertex arrays.\n" );
98 /* See if the server supports compiled vertex arrays.
100 string
= (char *) glGetString( GL_EXTENSIONS
);
102 if ( !strstr( string
, "GL_EXT_compiled_vertex_array" ) ) {
103 fprintf( stderr
, "Compiled vertex arrays not supported by this renderer.\n" );
109 glutDisplayFunc( display
);
110 glutKeyboardFunc( keyboard
);