summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2011-03-12 06:38:09 +0100
committerMarek Olšák <maraeo@gmail.com>2011-03-13 07:31:29 +0100
commit97c646880526dd9f5cc61497ab4a232514398bf3 (patch)
treee9d85fd21f813091375212d01fc3a8b9dfb418de
parent5e80f77a18b97612e3d457eaf2fd4506e22b1348 (diff)
util: add functions piglit_probe_pixel_rgb(a)_silent
which don't print anything, but can return the probed pixel color.
-rw-r--r--tests/util/piglit-util-gl.c40
-rw-r--r--tests/util/piglit-util.h2
2 files changed, 42 insertions, 0 deletions
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);