[Piglit] [PATCH 2/3] s3tc-errors: use new piglit compressed texture helpers
Brian Paul
brianp at vmware.com
Sat Sep 29 07:34:37 PDT 2012
---
tests/texturing/s3tc-errors.c | 90 +++++++----------------------------------
1 files changed, 15 insertions(+), 75 deletions(-)
diff --git a/tests/texturing/s3tc-errors.c b/tests/texturing/s3tc-errors.c
index 2f6ef89..8a6546d 100644
--- a/tests/texturing/s3tc-errors.c
+++ b/tests/texturing/s3tc-errors.c
@@ -99,66 +99,6 @@ check_rendering_(int width, int height, int line)
/**
- * Return block size info for a compressed format.
- * XXX this could be a piglit utility function someday
- */
-static void
-get_compressed_block_size(GLenum format, int *bw, int *bh, int *bytes)
-{
- switch (format) {
- case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
- case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
- *bytes = 8;
- break;
- case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
- case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
- *bytes = 16;
- break;
- default:
- assert(!"Unexpected format in get_compressed_block_size()");
- }
- /* XXX all formats use 4x4 blocks at this time */
- *bw = *bh = 4;
-}
-
-
-/**
- * Compute size (in bytes) neede to store an image in the given compressed
- * format.
- * XXX this could be a piglit utility function someday
- */
-static int
-compressed_image_size(GLenum format, int width, int height)
-{
- int bw, bh, bytes;
- get_compressed_block_size(format, &bw, &bh, &bytes);
- return width / bw * height / bh * bytes;
-}
-
-
-/**
- * Return offset (in bytes) to the given texel in a compressed image.
- * Note the x and y must be multiples of the compressed block size.
- * XXX this could be a piglit utility function someday
- */
-static int
-compressed_offset(GLenum format, int x, int y, int width)
-{
- int bw, bh, bytes, offset;
-
- get_compressed_block_size(format, &bw, &bh, &bytes);
-
- assert(x % bw == 0);
- assert(y % bh == 0);
- assert(width % bw == 0);
-
- offset = (width / bw * bytes * y / bh) + (x / bw * bytes);
-
- return offset;
-}
-
-
-/**
* Check for either of two expected GL errors.
* XXX this could be a piglit util function
*/
@@ -181,7 +121,7 @@ static bool
test_format(int width, int height, GLfloat *image, GLenum format)
{
GLubyte *compressed_image =
- malloc(compressed_image_size(format, width, height));
+ malloc(piglit_compressed_image_size(format, width, height));
GLenum format2;
int x, y, w, h;
GLuint tex;
@@ -238,9 +178,9 @@ test_format(int width, int height, GLfloat *image, GLenum format)
glCompressedTexSubImage2D(GL_TEXTURE_2D, 0,
x, y, w, h,
format,
- compressed_image_size(format, w, h),
+ piglit_compressed_image_size(format, w, h),
compressed_image +
- compressed_offset(format, x, y, width));
+ piglit_compressed_pixel_offset(format, width, x, y));
pass = piglit_check_gl_error(GL_NO_ERROR) && pass;
pass = check_rendering(width, height) && pass;
@@ -253,9 +193,9 @@ test_format(int width, int height, GLfloat *image, GLenum format)
glCompressedTexSubImage2D(GL_TEXTURE_2D, 0,
x, y, w, h,
format,
- compressed_image_size(format, w, h),
+ piglit_compressed_image_size(format, w, h),
compressed_image +
- compressed_offset(format, 0, 0, width));
+ piglit_compressed_pixel_offset(format, width, 0, 0));
pass = piglit_check_gl_error(GL_INVALID_OPERATION) && pass;
@@ -271,9 +211,9 @@ test_format(int width, int height, GLfloat *image, GLenum format)
glCompressedTexSubImage2D(GL_TEXTURE_2D, 0,
x, y, w, h,
format,
- compressed_image_size(format, 4, 4),
+ piglit_compressed_image_size(format, 4, 4),
compressed_image +
- compressed_offset(format, x, y, width));
+ piglit_compressed_pixel_offset(format, width, x, y));
/* Note, we can get either of these errors depending on the order
* in which glCompressedTexSubImage parameters are checked.
* INVALID_OPERATION for the bad size or INVALID_VALUE for the
@@ -291,9 +231,9 @@ test_format(int width, int height, GLfloat *image, GLenum format)
glCompressedTexSubImage2D(GL_TEXTURE_2D, 0,
x, y, w, h,
format,
- compressed_image_size(format, w, h),
+ piglit_compressed_image_size(format, w, h),
compressed_image +
- compressed_offset(format, 0, 0, width));
+ piglit_compressed_pixel_offset(format, width, 0, 0));
pass = piglit_check_gl_error(GL_INVALID_VALUE) && pass;
@@ -307,9 +247,9 @@ test_format(int width, int height, GLfloat *image, GLenum format)
glCompressedTexSubImage2D(GL_TEXTURE_2D, 0,
x, y, w, h,
format,
- compressed_image_size(format, w, h),
+ piglit_compressed_image_size(format, w, h),
compressed_image +
- compressed_offset(format, x, y, width));
+ piglit_compressed_pixel_offset(format, width, x, y));
pass = piglit_check_gl_error(GL_INVALID_VALUE) && pass;
@@ -327,9 +267,9 @@ test_format(int width, int height, GLfloat *image, GLenum format)
glCompressedTexSubImage2D(GL_TEXTURE_2D, 0,
x, y, w, h,
format2,
- compressed_image_size(format2, w, h),
+ piglit_compressed_image_size(format2, w, h),
compressed_image +
- compressed_offset(format2, x, y, width));
+ piglit_compressed_pixel_offset(format2, width, x, y));
pass = piglit_check_gl_error(GL_INVALID_OPERATION) && pass;
@@ -343,9 +283,9 @@ test_format(int width, int height, GLfloat *image, GLenum format)
glCompressedTexSubImage2D(GL_TEXTURE_2D, 1,
x, y, w, h,
format,
- compressed_image_size(format, w, h),
+ piglit_compressed_image_size(format, w, h),
compressed_image +
- compressed_offset(format, x, y, width));
+ piglit_compressed_pixel_offset(format, width, x, y));
pass = piglit_check_gl_error(GL_INVALID_OPERATION) && pass;
--
1.7.3.4
More information about the Piglit
mailing list