From c1a544733749cd388b9f51d087c695b2ce0ec729 Mon Sep 17 00:00:00 2001 From: Brian Date: Mon, 12 Mar 2007 09:35:44 -0600 Subject: take GL_UNPACK_ALIGNMENT into account in _mesa_image_row_stride() for GL_BITMAP type (bug 10261) --- src/mesa/main/image.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/mesa/main') diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c index eb91ebb6110..58dd771484c 100644 --- a/src/mesa/main/image.c +++ b/src/mesa/main/image.c @@ -667,7 +667,7 @@ _mesa_image_row_stride( const struct gl_pixelstore_attrib *packing, ASSERT(packing); if (type == GL_BITMAP) { /* BITMAP data */ - GLint bytes; + GLint bytes, remainder; if (packing->RowLength == 0) { bytes = (width + 7) / 8; } @@ -678,6 +678,11 @@ _mesa_image_row_stride( const struct gl_pixelstore_attrib *packing, /* negate the bytes per row (negative row stride) */ bytes = -bytes; } + + remainder = bytes % packing->Alignment; + if (remainder > 0) + bytes += (packing->Alignment - remainder); + return bytes; } else { -- cgit v1.2.3