[Piglit] [PATCH] Adjust draw-pixel-with-texture to ensure glTexCoord is taken into account.

Matthew Dawson matthew at mjdsystems.ca
Sat Mar 28 09:36:12 PDT 2015


The old version of the test assumed the glTexCoord call was being properly
used in the system.  However, at least in mesa, it is easy for an
implementation to ignore the given coordinate.  Thus setup the texture and
texture coordinate to ensure it is respected.

Also call glWindowPos2i, to ensure the texture coordinates are actually put
into the raster position state.

V2:
 - Add the glWindowPos2i call, to avoid undefined behaviour.
 - Use the bottom left texel, to detect issues copying over the raster position.
 - Change the pixels passed into glDrawPixels, to ensure each quadrant of
the texture is visibly different.
 - Add explanatory comment about the texture coordinates.

V3:
 - Fix the explanatory comment to make sense.

Reviewed-by: Brian Paul <brianp at vmware.com> (v1)
---
 tests/general/draw-pixel-with-texture.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/tests/general/draw-pixel-with-texture.c b/tests/general/draw-pixel-with-texture.c
index c03131e..430b041 100644
--- a/tests/general/draw-pixel-with-texture.c
+++ b/tests/general/draw-pixel-with-texture.c
@@ -39,8 +39,8 @@ piglit_display(void)
 {
 	GLboolean pass = GL_TRUE;
 	GLfloat tex_data[2 * 2 * 4] = {
-		1, 0, 0, 1, 	1, 0, 0, 1,
-		1, 0, 0, 1, 	1, 0, 0, 1,
+		0, 0, 1, 1, 	0, 1, 1, 1,
+		0, 1, 0, 1, 	1, 0, 0, 1,
 	};
 	GLfloat *pixels;
 	GLfloat expected[4] = {0.2, 0, 0, 1};
@@ -53,13 +53,15 @@ piglit_display(void)
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
 	glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 
-	glTexCoord2f(0.5, 0.5);
+	// This is meant to grab the top right texel, with a colour of {1, 0, 0, 1}
+	glTexCoord2f(0.75, 0.75);
+	glWindowPos2i(0, 0);
 	glEnable(GL_TEXTURE_2D);
 
 	for (i = 0; i < SCREEN_SIZE_IN_PIXELS; i += 4) {
 		pixels[i + 0] = 0.2;
 		pixels[i + 1] = 1;
-		pixels[i + 2] = 0;
+		pixels[i + 2] = 0.4;
 		pixels[i + 3] = 1;
 	}
 
-- 
2.0.5



More information about the Piglit mailing list