From 97c646880526dd9f5cc61497ab4a232514398bf3 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Sat, 12 Mar 2011 06:38:09 +0100 Subject: util: add functions piglit_probe_pixel_rgb(a)_silent which don't print anything, but can return the probed pixel color. --- tests/util/piglit-util-gl.c | 40 ++++++++++++++++++++++++++++++++++++++++ tests/util/piglit-util.h | 2 ++ 2 files changed, 42 insertions(+) diff --git a/tests/util/piglit-util-gl.c b/tests/util/piglit-util-gl.c index 773c1c00e..d18dd1196 100644 --- a/tests/util/piglit-util-gl.c +++ b/tests/util/piglit-util-gl.c @@ -86,6 +86,46 @@ int piglit_probe_pixel_rgba(int x, int y, const float* expected) return 0; } +int piglit_probe_pixel_rgb_silent(int x, int y, const float* expected, float *out_probe) +{ + GLfloat probe[3]; + int i; + GLboolean pass = GL_TRUE; + + glReadPixels(x, y, 1, 1, GL_RGB, GL_FLOAT, probe); + + for(i = 0; i < 3; ++i) { + if (fabs(probe[i] - expected[i]) > piglit_tolerance[i]) { + pass = GL_FALSE; + } + } + + if (out_probe) + memcpy(out_probe, probe, sizeof(probe)); + + return pass; +} + +int piglit_probe_pixel_rgba_silent(int x, int y, const float* expected, float *out_probe) +{ + GLfloat probe[4]; + int i; + GLboolean pass = GL_TRUE; + + glReadPixels(x, y, 1, 1, GL_RGBA, GL_FLOAT, probe); + + for(i = 0; i < 4; ++i) { + if (fabs(probe[i] - expected[i]) > piglit_tolerance[i]) { + pass = GL_FALSE; + } + } + + if (out_probe) + memcpy(out_probe, probe, sizeof(probe)); + + return pass; +} + int piglit_probe_rect_rgba(int x, int y, int w, int h, const float *expected) { diff --git a/tests/util/piglit-util.h b/tests/util/piglit-util.h index c9c2a4f9c..0b9b42dc1 100644 --- a/tests/util/piglit-util.h +++ b/tests/util/piglit-util.h @@ -105,6 +105,8 @@ int FindLine(const char *program, int position); void piglit_report_result(enum piglit_result result); void piglit_require_extension(const char *name); void piglit_require_not_extension(const char *name); +int piglit_probe_pixel_rgb_silent(int x, int y, const float* expected, float *out_probe); +int piglit_probe_pixel_rgba_silent(int x, int y, const float* expected, float *out_probe); int piglit_probe_pixel_rgb(int x, int y, const float* expected); int piglit_probe_pixel_rgba(int x, int y, const float* expected); int piglit_probe_rect_rgb(int x, int y, int w, int h, const float* expected); -- cgit v1.2.3