Removed all RCS / CVS tags (Id, Header, Date, etc.) from everything.
[mesa.git] / progs / demos / tessdemo.c
index 99f5006d60a5d20efaa3ec6d906fe1cd0c58ac78..66fdc6370c8d9de04f92c8b3505755b9da965e88 100644 (file)
@@ -1,4 +1,3 @@
-/* $Id: tessdemo.c,v 1.10 2001/03/21 02:44:36 gareth Exp $ */
 
 /*
  * A demo of the GLU polygon tesselation functions written by Bogdan Sikorski.
@@ -90,7 +89,7 @@ static void GLCALLBACK edge_callback( GLenum flag )
 
 static void GLCALLBACK end_callback()
 {
-   GLint       i;
+   GLuint      i;
 
    glBegin( GL_LINES );
 
@@ -165,6 +164,8 @@ static void set_screen_wh( GLsizei w, GLsizei h )
    height = h;
 }
 
+typedef void (GLAPIENTRY *callback_t)();
+
 static void tesse( void )
 {
    GLUtesselator       *tobj;
@@ -177,11 +178,11 @@ static void tesse( void )
 
    if ( tobj != NULL ) {
       gluTessNormal( tobj, 0.0, 0.0, 1.0 );
-      gluTessCallback( tobj, GLU_TESS_BEGIN, glBegin );
-      gluTessCallback( tobj, GLU_TESS_VERTEX, glVertex2fv );
-      gluTessCallback( tobj, GLU_TESS_END, glEnd );
-      gluTessCallback( tobj, GLU_TESS_ERROR, error_callback );
-      gluTessCallback( tobj, GLU_TESS_COMBINE, combine_callback );
+      gluTessCallback( tobj, GLU_TESS_BEGIN, (callback_t) glBegin );
+      gluTessCallback( tobj, GLU_TESS_VERTEX, (callback_t) glVertex2fv );
+      gluTessCallback( tobj, GLU_TESS_END, (callback_t) glEnd );
+      gluTessCallback( tobj, GLU_TESS_ERROR, (callback_t) error_callback );
+      gluTessCallback( tobj, GLU_TESS_COMBINE, (callback_t) combine_callback );
 
       glNewList( list_start, GL_COMPILE );
       gluBeginPolygon( tobj );
@@ -201,10 +202,10 @@ static void tesse( void )
       gluEndPolygon( tobj );
       glEndList();
 
-      gluTessCallback( tobj, GLU_TESS_BEGIN, begin_callback );
-      gluTessCallback( tobj, GLU_TESS_VERTEX, vertex_callback );
-      gluTessCallback( tobj, GLU_TESS_END, end_callback );
-      gluTessCallback( tobj, GLU_TESS_EDGE_FLAG, edge_callback );
+      gluTessCallback( tobj, GLU_TESS_BEGIN, (callback_t) begin_callback );
+      gluTessCallback( tobj, GLU_TESS_VERTEX, (callback_t) vertex_callback );
+      gluTessCallback( tobj, GLU_TESS_END, (callback_t) end_callback );
+      gluTessCallback( tobj, GLU_TESS_EDGE_FLAG, (callback_t) edge_callback );
 
       glNewList( list_start + 1, GL_COMPILE );
       gluBeginPolygon( tobj );
@@ -308,6 +309,7 @@ static void mouse_clicked( int button, int state, int x, int y )
 static void display( void )
 {
    GLuint i,j;
+   GLsizei ii, jj;
    GLuint point_cnt;
 
    glClear( GL_COLOR_BUFFER_BIT );
@@ -319,12 +321,12 @@ static void display( void )
 
       glBegin( GL_LINES );
 
-      for ( i = 0 ; i < width ; i += 10 ) {
-        for ( j = 0 ; j < height ; j += 10 ) {
-           glVertex2i( 0, j );
-           glVertex2i( width, j );
-           glVertex2i( i, height );
-           glVertex2i( i, 0 );
+      for ( ii = 0 ; ii < width ; ii += 10 ) {
+        for ( jj = 0 ; jj < height ; jj += 10 ) {
+           glVertex2i( 0, jj );
+           glVertex2i( width, jj );
+           glVertex2i( ii, height );
+           glVertex2i( ii, 0 );
         }
       }
 
@@ -479,6 +481,8 @@ static void reshape( GLsizei w, GLsizei h )
    set_screen_wh( w, h );
 }
 
+#endif
+
 
 static void usage( void )
 {
@@ -487,8 +491,6 @@ static void usage( void )
    printf( "Select tesselate from the pop-up menu.\n" );
 }
 
-#endif
-
 
 int main( int argc, char **argv )
 {
@@ -506,12 +508,16 @@ int main( int argc, char **argv )
    glutInitWindowSize( 400, 400 );
    glutCreateWindow( argv[0] );
 
+   /* GH: Bit of a hack...
+    */
+#ifdef GLU_VERSION_1_2
    myinit();
 
    glutDisplayFunc( display );
    glutReshapeFunc( reshape );
 
    glutMainLoop();
+#endif
 
    return 0;
 }