I'm trying to transition Piglit from using GLUT to using Waffle. This requires killing all uses of GLUT functions, one-by-one.
Two remaining tests called glutSwapBuffers directly, read-front and texline, for which piglit_preset_results is unsuitable. These tests call glReadPixels on the front buffer. This patch replaces those calls with a new wrapper, piglit_swap_buffers. Signed-off-by: Chad Versace <[email protected]> --- tests/general/read-front.c | 2 +- tests/mesa/tests/texline.c | 2 +- tests/util/piglit-framework-fbo.c | 10 ++++++++++ tests/util/piglit-framework-fbo.h | 3 +++ tests/util/piglit-framework-glut.c | 6 ++++++ tests/util/piglit-framework-glut.h | 4 ++++ tests/util/piglit-framework.c | 9 +++++++++ tests/util/piglit-framework.h | 1 + 8 files changed, 35 insertions(+), 2 deletions(-) diff --git a/tests/general/read-front.c b/tests/general/read-front.c index 2e999ba..83e7da0 100644 --- a/tests/general/read-front.c +++ b/tests/general/read-front.c @@ -58,7 +58,7 @@ piglit_display(void) glReadBuffer(GL_FRONT); - glutSwapBuffers(); + piglit_swap_buffers(); pass &= piglit_probe_rect_rgb(0, 0, piglit_width, piglit_height / 2, blue); diff --git a/tests/mesa/tests/texline.c b/tests/mesa/tests/texline.c index 726c51f..3389d72 100644 --- a/tests/mesa/tests/texline.c +++ b/tests/mesa/tests/texline.c @@ -114,7 +114,7 @@ static void DoFrame(void) glPopMatrix(); } - glutSwapBuffers(); + piglit_swap_buffers(); } static void Screenshot(void) diff --git a/tests/util/piglit-framework-fbo.c b/tests/util/piglit-framework-fbo.c index 6fda821..8610724 100644 --- a/tests/util/piglit-framework-fbo.c +++ b/tests/util/piglit-framework-fbo.c @@ -337,3 +337,13 @@ piglit_framework_fbo_run(const struct piglit_gl_test_info *info) piglit_framework_fbo_destroy(); piglit_report_result(result); } + +void +piglit_framework_fbo_swap_buffers(void) +{ +#if defined(PIGLIT_FRAMEWORK_FBO_USE_GLX) + glXSwapBuffers(piglit_glx_dpy, piglit_glx_window); +#elif defined(PIGLIT_FRAMEWORK_FBO_USE_WAFFLE) + waffle_window_swap_buffers(piglit_waffle_window); +#endif +} diff --git a/tests/util/piglit-framework-fbo.h b/tests/util/piglit-framework-fbo.h index f9da2ae..08f13e2 100644 --- a/tests/util/piglit-framework-fbo.h +++ b/tests/util/piglit-framework-fbo.h @@ -30,3 +30,6 @@ piglit_framework_fbo_init(const struct piglit_gl_test_info *info); void piglit_framework_fbo_run(const struct piglit_gl_test_info *info); + +void +piglit_framework_fbo_swap_buffers(void); diff --git a/tests/util/piglit-framework-glut.c b/tests/util/piglit-framework-glut.c index 9f203ef..ea26404 100644 --- a/tests/util/piglit-framework-glut.c +++ b/tests/util/piglit-framework-glut.c @@ -147,3 +147,9 @@ piglit_framework_glut_run(const struct piglit_gl_test_info *info) glutMainLoop(); piglit_report_result(result); } + +void +piglit_framework_glut_swap_buffers(void) +{ + glutSwapBuffers(); +} diff --git a/tests/util/piglit-framework-glut.h b/tests/util/piglit-framework-glut.h index c94ef51..816d10e 100644 --- a/tests/util/piglit-framework-glut.h +++ b/tests/util/piglit-framework-glut.h @@ -31,3 +31,7 @@ piglit_framework_glut_init(int argc, char *argv[], void piglit_framework_glut_run(const struct piglit_gl_test_info *info); + + +void +piglit_framework_glut_swap_buffers(void); diff --git a/tests/util/piglit-framework.c b/tests/util/piglit-framework.c index ac951ae..e8999f4 100644 --- a/tests/util/piglit-framework.c +++ b/tests/util/piglit-framework.c @@ -154,3 +154,12 @@ piglit_set_keyboard_func(void (*func)(unsigned char key, int x, int y)) if (!piglit_automatic && !piglit_use_fbo) glutKeyboardFunc(func); } + +void +piglit_swap_buffers(void) +{ + if (piglit_use_fbo) + piglit_framework_fbo_swap_buffers(); + else + piglit_framework_glut_swap_buffers(); +} diff --git a/tests/util/piglit-framework.h b/tests/util/piglit-framework.h index 68af5ee..325d00d 100644 --- a/tests/util/piglit-framework.h +++ b/tests/util/piglit-framework.h @@ -128,6 +128,7 @@ extern int piglit_height; extern bool piglit_use_fbo; extern unsigned int piglit_winsys_fbo; +void piglit_swap_buffers(void); extern void piglit_present_results(); void piglit_post_redisplay(void); void piglit_set_keyboard_func(void (*func)(unsigned char key, int x, int y)); -- 1.7.12.1 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
