Merge remote branch 'origin/7.8'
[mesa.git] / progs / tests / antialias.c
index c389bbea3a8d4bf7b6c584c5f40b961bcae4e55f..a6456a52181bf2a977d24685d7af58a0dac4cd08 100644 (file)
@@ -1,4 +1,3 @@
-/* $Id: antialias.c,v 1.2 2003/03/29 16:42:57 brianp Exp $ */
 
 /*
  * Test multisampling and polygon smoothing.
@@ -10,6 +9,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
+#include <GL/glew.h>
 #include <GL/glut.h>
 
 
@@ -30,15 +30,17 @@ PrintString(const char *s)
 
 
 static void
-Polygon( GLint verts, GLfloat radius, GLfloat z )
+doPolygon( GLenum mode, GLint verts, GLfloat radius, GLfloat z )
 {
    int i;
+   glBegin(mode);
    for (i = 0; i < verts; i++) {
       float a = (i * 2.0 * 3.14159) / verts;
       float x = radius * cos(a);
       float y = radius * sin(a);
       glVertex3f(x, y, z);
    }
+   glEnd();
 }
 
 
@@ -47,35 +49,23 @@ DrawObject( void )
 {
    glLineWidth(3.0);
    glColor3f(1, 1, 1);
-   glBegin(GL_LINE_LOOP);
-   Polygon(12, 1.2, 0);
-   glEnd();
+   doPolygon(GL_LINE_LOOP, 12, 1.2, 0);
 
    glLineWidth(1.0);
    glColor3f(1, 1, 1);
-   glBegin(GL_LINE_LOOP);
-   Polygon(12, 1.1, 0);
-   glEnd();
+   doPolygon(GL_LINE_LOOP, 12, 1.1, 0);
 
    glColor3f(1, 0, 0);
-   glBegin(GL_POLYGON);
-   Polygon(12, 0.4, 0.3);
-   glEnd();
+   doPolygon(GL_POLYGON, 12, 0.4, 0.3);
 
    glColor3f(0, 1, 0);
-   glBegin(GL_POLYGON);
-   Polygon(12, 0.6, 0.2);
-   glEnd();
+   doPolygon(GL_POLYGON, 12, 0.6, 0.2);
 
    glColor3f(0, 0, 1);
-   glBegin(GL_POLYGON);
-   Polygon(12, 0.8, 0.1);
-   glEnd();
+   doPolygon(GL_POLYGON, 12, 0.8, 0.1);
 
    glColor3f(1, 1, 1);
-   glBegin(GL_POLYGON);
-   Polygon(12, 1.0, 0);
-   glEnd();
+   doPolygon(GL_POLYGON, 12, 1.0, 0);
 }
 
 
@@ -85,43 +75,46 @@ Display( void )
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
 
    glColor3f(1, 1, 1);
+
+   glRasterPos2f(-3.1, -1.6);
+   PrintString("No antialiasing");
+
+   glRasterPos2f(-0.8, -1.6);
    if (HaveMultisample) {
-      glRasterPos2f(-3.1, -1.6);
       if (DoMultisample)
-         PrintString("MULTISAMPLE");
+         PrintString("  MULTISAMPLE");
       else
          PrintString("MULTISAMPLE (off)");
    }
-   glRasterPos2f(-0.8, -1.6);
-   PrintString("No antialiasing");
+   else
+      PrintString("MULTISAMPLE (N/A)");
+
    glRasterPos2f(1.6, -1.6);
    PrintString("GL_POLYGON_SMOOTH");
 
-   /* multisample */
-   if (HaveMultisample) {
-      glEnable(GL_DEPTH_TEST);
-      if (DoMultisample)
-         glEnable(GL_MULTISAMPLE_ARB);
-      glPushMatrix();
-      glTranslatef(-2.5, 0, 0);
-      glPushMatrix();
-      glRotatef(Zrot, 0, 0, 1);
-      DrawObject();
-      glPopMatrix();
-      glPopMatrix();
-      glDisable(GL_MULTISAMPLE_ARB);
-      glDisable(GL_DEPTH_TEST);
-   }
-
    /* non-aa */
    glEnable(GL_DEPTH_TEST);
    glPushMatrix();
+   glTranslatef(-2.5, 0, 0);
+   glPushMatrix();
+   glRotatef(Zrot, 0, 0, 1);
+   DrawObject();
+   glPopMatrix();
+   glPopMatrix();
+   glDisable(GL_DEPTH_TEST);
+
+   /* multisample */
+   glEnable(GL_DEPTH_TEST);
+   if (HaveMultisample && DoMultisample)
+      glEnable(GL_MULTISAMPLE_ARB);
+   glPushMatrix();
    glTranslatef(0, 0, 0);
    glPushMatrix();
    glRotatef(Zrot, 0, 0, 1);
    DrawObject();
    glPopMatrix();
    glPopMatrix();
+   glDisable(GL_MULTISAMPLE_ARB);
    glDisable(GL_DEPTH_TEST);
 
    /* polygon smooth */
@@ -226,6 +219,7 @@ main( int argc, char *argv[] )
    glutInitDisplayMode( GLUT_RGB | GLUT_ALPHA | GLUT_DOUBLE |
                         GLUT_DEPTH | GLUT_MULTISAMPLE );
    glutCreateWindow(argv[0]);
+   glewInit();
    glutReshapeFunc( Reshape );
    glutKeyboardFunc( Key );
    glutDisplayFunc( Display );