r300g: fix TFP stride override.
[mesa.git] / progs / demos / reflect.c
index ce0239211fff68dffdf536a57d4770f440d19a91..b72af12885d24c13643f0d3da30dc9b5431a0f7e 100644 (file)
@@ -302,11 +302,21 @@ DrawWindow(void)
    GLfloat dist = 20.0;
    GLfloat eyex, eyey, eyez;
 
-   glDrawBuffer(w->drawBuffer);
-   glReadBuffer(w->drawBuffer);
+   if (w->drawBuffer == GL_NONE) {
+      glDrawBuffer(GL_BACK);
+      glReadBuffer(GL_BACK);
+   }
+   else {
+      glDrawBuffer(w->drawBuffer);
+      glReadBuffer(w->drawBuffer);
+   }
 
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
 
+   if (w->drawBuffer == GL_NONE) {
+      glDrawBuffer(GL_NONE);
+   }
+
    eyex = dist  *  cos(w->yrot * DEG2RAD)  *  cos(w->xrot * DEG2RAD);
    eyez = dist  *  sin(w->yrot * DEG2RAD)  *  cos(w->xrot * DEG2RAD);
    eyey = dist  *  sin(w->xrot * DEG2RAD);
@@ -376,10 +386,10 @@ DrawWindow(void)
       ShowAlphaBuffer(w->width, w->height);
    }
 
-   if (w->drawBuffer == GL_BACK)
-      glutSwapBuffers();
-   else
+   if (w->drawBuffer == GL_FRONT)
       glFinish();
+   else
+      glutSwapBuffers();
 
    /* calc/show frame rate */
    {
@@ -391,6 +401,7 @@ DrawWindow(void)
          GLfloat seconds = (t - t0) / 1000.0;
          GLfloat fps = frames / seconds;
          printf("%d frames in %g seconds = %g FPS\n", frames, seconds, fps);
+         fflush(stdout);
          t0 = t;
          frames = 0;
       }
@@ -460,6 +471,10 @@ Key(unsigned char key, int x, int y)
          w->drawBuffer = GL_FRONT;
       glutPostRedisplay();
       break;
+   case '0':
+      w->drawBuffer = GL_NONE;
+      glutPostRedisplay();
+      break;
    case ' ':
       w->anim = !w->anim;
       w->t0 = -1;