summaryrefslogtreecommitdiff
path: root/tests/texturing
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2014-04-29 08:55:27 -0600
committerBrian Paul <brianp@vmware.com>2014-04-30 08:35:31 -0600
commitab7f5fbfef27ea637f6ab32f5e119f83c22069c0 (patch)
treec608ce5cac156b90d73e682476d4fe3392d7cb45 /tests/texturing
parent43373da3b0e23db0301084ccaac74f495ef85aa7 (diff)
tex3d-npot: assorted clean-ups
As with the previous patch for the tex3d test. Reviewed-by: José Fonseca <jfonseca@vmware.com>
Diffstat (limited to 'tests/texturing')
-rw-r--r--tests/texturing/tex3d-npot.c51
1 files changed, 24 insertions, 27 deletions
diff --git a/tests/texturing/tex3d-npot.c b/tests/texturing/tex3d-npot.c
index e9e460420..6911521e6 100644
--- a/tests/texturing/tex3d-npot.c
+++ b/tests/texturing/tex3d-npot.c
@@ -32,9 +32,7 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
config.supports_gl_compat_version = 10;
- config.window_width = 128;
- config.window_height = 128;
- config.window_visual = PIGLIT_GL_VISUAL_RGBA;
+ config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
PIGLIT_GL_TEST_CONFIG_END
@@ -50,17 +48,8 @@ static int nrcomponents(GLenum format)
}
}
-static const char* formatname(GLenum format)
-{
- switch(format) {
- case GL_RGBA: return "GL_RGBA";
- case GL_RGB: return "GL_RGB";
- case GL_ALPHA: return "GL_ALPHA";
- default: abort();
- }
-}
-
-static void expected_rgba(GLenum format, const unsigned char* texdata, unsigned char* expected)
+static void
+expected_rgba(GLenum format, const GLubyte *texdata, GLubyte *expected)
{
switch(format) {
case GL_RGBA:
@@ -84,13 +73,15 @@ static void expected_rgba(GLenum format, const unsigned char* texdata, unsigned
}
}
-static int render_and_check(int w, int h, int d, GLenum format, float q, unsigned char* data, const char* test)
+static bool
+render_and_check(int w, int h, int d, GLenum format, float q,
+ const GLubyte *data, const char* test)
{
int x, y, z;
int layer;
- unsigned char* readback;
- unsigned char* texp;
- unsigned char* readp;
+ GLubyte *readback;
+ const GLubyte *texp;
+ GLubyte *readp;
int ncomp = 0;
glClearColor(0.0, 0.0, 0.0, 0.0);
@@ -145,7 +136,7 @@ static int render_and_check(int w, int h, int d, GLenum format, float q, unsigne
fprintf(stderr, " Readback: %i,%i,%i,%i\n",
readp[0], readp[1], readp[2], readp[3]);
free(readback);
- return 0;
+ return false;
}
}
}
@@ -154,7 +145,7 @@ static int render_and_check(int w, int h, int d, GLenum format, float q, unsigne
free(readback);
piglit_present_results();
- return 1;
+ return true;
}
@@ -162,12 +153,13 @@ static int render_and_check(int w, int h, int d, GLenum format, float q, unsigne
* Load non-mipmapped 3D texture of the given size
* and check whether it is rendered correctly.
*/
-static void test_simple(int w, int h, int d, GLenum format)
+static bool
+test_simple(int w, int h, int d, GLenum format)
{
int size;
unsigned char *data;
int i;
- int success = 1;
+ bool success = true;
assert(1 <= w && w <= 16);
assert(1 <= h && h <= 16);
@@ -194,9 +186,10 @@ static void test_simple(int w, int h, int d, GLenum format)
if (!success) {
fprintf(stderr, "Failure with texture size %ix%ix%i, format = %s\n",
- w, h, d, formatname(format));
- piglit_report_result(PIGLIT_FAIL);
+ w, h, d, piglit_get_gl_enum_name(format));
}
+
+ return success;
}
enum piglit_result
@@ -204,6 +197,7 @@ piglit_display(void)
{
GLenum formats[] = { GL_RGBA, GL_RGB, GL_ALPHA };
int w, h, d, fmt;
+ bool pass = true;
piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE);
@@ -214,7 +208,9 @@ piglit_display(void)
if (h != 4 && h != 8) {
for(d = 3; d <= 15; d++) {
if (d != 4 && d != 8) {
- test_simple(w, h, d, formats[fmt]);
+ pass = test_simple(w, h, d, formats[fmt]);
+ if (!pass)
+ goto end;
}
}
}
@@ -223,17 +219,18 @@ piglit_display(void)
}
}
- return PIGLIT_PASS;
+end:
+ return pass ? PIGLIT_PASS : PIGLIT_FAIL;
}
void
piglit_init(int argc, char **argv)
{
- piglit_automatic = GL_TRUE;
piglit_require_extension("GL_ARB_texture_non_power_of_two");
glDisable(GL_DITHER);
glGenTextures(1, &Texture);
glBindTexture(GL_TEXTURE_3D, Texture);
+ glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
}