diff options
author | Brian Paul <[email protected]> | 2009-02-10 16:44:02 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-02-10 16:44:02 -0700 |
commit | 5340b6dff73a0a23531ce2a5f28fba8303adab6e (patch) | |
tree | b141fc3648568dd8b941c966059e6ed32a8bd0ad /progs/tests/copypixrate.c | |
parent | 9fd26daec24f21dbe17afcb2e2ab272667ee9a69 (diff) | |
parent | ee4c921b65fb76998711f3c40330505cbc49a0e0 (diff) |
Merge commit 'origin/gallium-master-merge'
This is the big merge of the gallium-0.2 branch into master.
gallium-master-merge was just the staging area for it.
Both gallium-0.2 and gallium-master-merge are considered closed now.
Conflicts:
progs/demos/Makefile
src/mesa/main/state.c
src/mesa/main/texenvprogram.c
Diffstat (limited to 'progs/tests/copypixrate.c')
-rw-r--r-- | progs/tests/copypixrate.c | 63 |
1 files changed, 39 insertions, 24 deletions
diff --git a/progs/tests/copypixrate.c b/progs/tests/copypixrate.c index e9a42a1c8c9..142315364c6 100644 --- a/progs/tests/copypixrate.c +++ b/progs/tests/copypixrate.c @@ -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(); } |