diff options
author | Brian Paul <[email protected]> | 2009-10-24 11:33:58 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-10-24 11:33:58 -0600 |
commit | d255aaf54f9a4398247698408bd45698b1cefe58 (patch) | |
tree | b288160cc0ae9734e6e63631882de837920c3153 | |
parent | 7b16c43e436715bef9118fdb28ca8a9ad91b1e66 (diff) |
mesa: remove hard-coded block sizes
-rw-r--r-- | src/mesa/main/texstore.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c index d0d42503524..ff6931156e6 100644 --- a/src/mesa/main/texstore.c +++ b/src/mesa/main/texstore.c @@ -3670,14 +3670,18 @@ _mesa_store_compressed_texsubimage2d(GLcontext *ctx, GLenum target, GLubyte *dest; const GLubyte *src; const gl_format texFormat = texImage->TexFormat; + GLuint bw, bh; + _mesa_get_format_block_size(texFormat, &bw, &bh); + + (void) level; (void) format; /* these should have been caught sooner */ - ASSERT((width & 3) == 0 || width == 2 || width == 1); - ASSERT((height & 3) == 0 || height == 2 || height == 1); - ASSERT((xoffset & 3) == 0); - ASSERT((yoffset & 3) == 0); + ASSERT((width % bw) == 0 || width == 2 || width == 1); + ASSERT((height % bh) == 0 || height == 2 || height == 1); + ASSERT((xoffset % bw) == 0); + ASSERT((yoffset % bh) == 0); /* get pointer to src pixels (may be in a pbo which we'll map here) */ data = _mesa_validate_pbo_compressed_teximage(ctx, imageSize, data, @@ -3696,7 +3700,7 @@ _mesa_store_compressed_texsubimage2d(GLcontext *ctx, GLenum target, (GLubyte *) texImage->Data); bytesPerRow = srcRowStride; - rows = height / 4; + rows = height / bh; /* rows in blocks */ for (i = 0; i < rows; i++) { MEMCPY(dest, src, bytesPerRow); |