Added a 4th square to the output. Expanded the message written to the
authorIan Romanick <idr@us.ibm.com>
Tue, 11 May 2004 19:59:13 +0000 (19:59 +0000)
committerIan Romanick <idr@us.ibm.com>
Tue, 11 May 2004 19:59:13 +0000 (19:59 +0000)
console.

progs/tests/blendsquare.c

index 37ad3845b99db8841c471e1f7ac33943102940dd..1694866a55742fd0b63b26c4ef298b844dd61e46 100644 (file)
@@ -25,7 +25,7 @@
 /**
  * \file blendsquare.c
  * 
- * Simple test of GL_NV_blend_square functionality.  Three squares are drawn
+ * Simple test of GL_NV_blend_square functionality.  Four squares are drawn
  * with different blending modes, but all should be rendered with the same
  * final color.
  *
@@ -36,7 +36,7 @@
 #include <stdlib.h>
 #include <GL/glut.h>
 
-static int Width = 300;
+static int Width = 400;
 static int Height = 200;
 static const GLfloat Near = 5.0, Far = 25.0;
 
@@ -47,7 +47,8 @@ static void Display( void )
    glClear( GL_COLOR_BUFFER_BIT );
 
    glPushMatrix();
-   glTranslatef(-3.0, 0, 0);
+
+   glTranslatef(-4.5, 0, 0);
    glBlendFunc( GL_ONE, GL_ZERO );
    glBegin(GL_QUADS);
    glColor3f( 0.5 * 0.5, 0.5 * 0.5, 0.5 * 0.5 );
@@ -57,8 +58,9 @@ static void Display( void )
    glVertex2f(-1,  1);
    glEnd();
 
+
    glTranslatef(3.0, 0, 0);
-   glBlendFunc( GL_SRC_COLOR, GL_ZERO );
+   glBlendFunc( GL_ONE, GL_ZERO );
    glBegin(GL_QUADS);
    glColor3f( 0.5, 0.5, 0.5 );
    glVertex2f(-1, -1);
@@ -67,6 +69,25 @@ static void Display( void )
    glVertex2f(-1,  1);
    glEnd();
 
+   glBlendFunc( GL_DST_COLOR, GL_ZERO );
+   glBegin(GL_QUADS);
+   glVertex2f(-1, -1);
+   glVertex2f( 1, -1);
+   glVertex2f( 1,  1);
+   glVertex2f(-1,  1);
+   glEnd();
+
+
+   glTranslatef(3.0, 0, 0);
+   glBlendFunc( GL_SRC_COLOR, GL_ZERO );
+   glBegin(GL_QUADS);
+   glVertex2f(-1, -1);
+   glVertex2f( 1, -1);
+   glVertex2f( 1,  1);
+   glVertex2f(-1,  1);
+   glEnd();
+
+
    glTranslatef(3.0, 0, 0);
    glBlendFunc( GL_ONE, GL_ZERO );
    glBegin(GL_QUADS);
@@ -120,7 +141,8 @@ static void Key( unsigned char key, int x, int y )
 
 static void Init( void )
 {
-   const char * const ver_string = (const char * const) glGetString( GL_VERSION );
+   const char * const ver_string = (const char * const)
+       glGetString( GL_VERSION );
    const double version = strtod( ver_string, NULL );
 
    printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
@@ -131,7 +153,10 @@ static void Init( void )
       exit(1);
    }
 
-   printf("All 3 squares should be the same color.\n");
+   printf("\nAll 4 squares should be the same color.  The two on the left are drawn\n"
+         "without NV_blend_square functionality, and the two on the right are drawn\n"
+         "with NV_blend_square functionality.  If the two on the left are dark, but\n"
+         "the two on the right are not, then NV_blend_square is broken.\n");
    glEnable( GL_BLEND );
    glBlendEquation( GL_FUNC_ADD );
 }