Module: wine Branch: master Commit: bd3b0e4f70a7ffb90aeafac0711ae81cddc1fa46 URL: http://source.winehq.org/git/wine.git/?a=commit;h=bd3b0e4f70a7ffb90aeafac071...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Aug 29 12:03:27 2011 +0200
comctl32: Simplify the DIB byte width computation.
---
dlls/comctl32/imagelist.c | 30 +----------------------------- dlls/comctl32/tests/imagelist.c | 19 +------------------ 2 files changed, 2 insertions(+), 47 deletions(-)
diff --git a/dlls/comctl32/imagelist.c b/dlls/comctl32/imagelist.c index 66cd03d..ec62370 100644 --- a/dlls/comctl32/imagelist.c +++ b/dlls/comctl32/imagelist.c @@ -2061,41 +2061,13 @@ ImageList_Merge (HIMAGELIST himl1, INT i1, HIMAGELIST himl2, INT i2,
/*********************************************************************** - * DIB_GetDIBWidthBytes - * - * Return the width of a DIB bitmap in bytes. DIB bitmap data is 32-bit aligned. - */ -static int DIB_GetDIBWidthBytes( int width, int depth ) -{ - int words; - - switch(depth) - { - case 1: words = (width + 31) / 32; break; - case 4: words = (width + 7) / 8; break; - case 8: words = (width + 3) / 4; break; - case 15: - case 16: words = (width + 1) / 2; break; - case 24: words = (width * 3 + 3)/4; break; - - default: - WARN("(%d): Unsupported depth\n", depth ); - /* fall through */ - case 32: - words = width; - break; - } - return 4 * words; -} - -/*********************************************************************** * DIB_GetDIBImageBytes * * Return the number of bytes used to hold the image in a DIB bitmap. */ static int DIB_GetDIBImageBytes( int width, int height, int depth ) { - return DIB_GetDIBWidthBytes( width, depth ) * abs( height ); + return (((width * depth + 31) / 8) & ~3) * abs( height ); }
diff --git a/dlls/comctl32/tests/imagelist.c b/dlls/comctl32/tests/imagelist.c index 46b3595..0441fd0 100644 --- a/dlls/comctl32/tests/imagelist.c +++ b/dlls/comctl32/tests/imagelist.c @@ -738,24 +738,7 @@ static struct my_IStream Test_Stream = { { &Test_Stream_Vtbl }, 0, 0 };
static INT DIB_GetWidthBytes( int width, int bpp ) { - int words; - - switch (bpp) - { - case 1: words = (width + 31) / 32; break; - case 4: words = (width + 7) / 8; break; - case 8: words = (width + 3) / 4; break; - case 15: - case 16: words = (width + 1) / 2; break; - case 24: words = (width * 3 + 3)/4; break; - case 32: words = width; break; - - default: - trace("Unknown depth %d, please report.\n", bpp ); - assert(0); - return -1; - } - return 4 * words; + return ((width * bpp + 31) / 8) & ~3; }
static void check_bitmap_data(const char *bm_data, ULONG bm_data_size,