mesa: minor code re-org
authorBrian Paul <brian.paul@tungstengraphics.com>
Fri, 21 Mar 2008 17:06:08 +0000 (11:06 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Fri, 21 Mar 2008 17:06:52 +0000 (11:06 -0600)
progs/tests/copypixrate.c

index e9a42a1c8c9a841c832bf18f1c9f1f78bf57cab1..142315364c6b3b6fc62937fdbc3e5976a6cec8a8 100644 (file)
@@ -73,6 +73,32 @@ Rand(int max)
 }
 
 
+static void
+BlitOne(void)
+{
+   int x, y;
+
+   do {
+      x = Rand(WinWidth);
+      y = Rand(WinHeight);
+   } while (x <= ImgWidth && y <= ImgHeight);
+
+#ifdef GL_EXT_framebuffer_blit
+   if (UseBlit)
+   {
+      glBlitFramebufferEXT_func(0, 0, ImgWidth, ImgHeight,
+                                x, y, x + ImgWidth, y + ImgHeight,
+                                GL_COLOR_BUFFER_BIT, GL_LINEAR);
+   }
+   else
+#endif
+   {
+      glWindowPos2iARB(x, y);
+      glCopyPixels(0, 0, ImgWidth, ImgHeight, GL_COLOR);
+   }
+}
+
+
 /**
  * Measure glCopyPixels rate
  */
@@ -96,30 +122,14 @@ RunTest(void)
    bpp = (r + g + b + a) / 8;
 
    do {
-      int x, y;
-      x = Rand(WinWidth);
-      y = Rand(WinHeight);
+      BlitOne();
 
-      if (x > ImgWidth || y > ImgHeight) {
-#ifdef GL_EXT_framebuffer_blit
-         if (UseBlit)
-         {
-            glBlitFramebufferEXT_func(0, 0, ImgWidth, ImgHeight,
-                                      x, y, x + ImgWidth, y + ImgHeight,
-                                      GL_COLOR_BUFFER_BIT, GL_LINEAR);
-         }
-         else
-#endif
-         {
-            glWindowPos2iARB(x, y);
-            glCopyPixels(0, 0, ImgWidth, ImgHeight, GL_COLOR);
-         }
-         glFinish(); /* XXX OK? */
+      if (Buffer == GL_FRONT)
+         glFinish(); /* XXX to view progress */
 
-         iters++;
+      iters++;
 
-         t1 = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
-      }
+      t1 = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
    } while (t1 - t0 < 5.0);
 
    glDisable(GL_ALPHA_TEST);
@@ -151,8 +161,10 @@ Draw(void)
    else
       glutSwapBuffers();
 
+#if 1
    printf("exiting\n");
    exit(0);
+#endif
 }
 
 
@@ -175,9 +187,12 @@ Key(unsigned char key, int x, int y)
    (void) x;
    (void) y;
    switch (key) {
-      case 27:
-         exit(0);
-         break;
+   case 'b':
+      BlitOne();
+      break;
+   case 27:
+      exit(0);
+      break;
    }
    glutPostRedisplay();
 }