Module: wine Branch: master Commit: d23bfd8dfc74a1955a0270feaf07ccd7a23a723a URL: http://source.winehq.org/git/wine.git/?a=commit;h=d23bfd8dfc74a1955a0270feaf...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Mon Feb 25 13:30:32 2013 +0800
gdiplus: Round up when converting from 32-bit ARGB to PARGB.
---
dlls/gdiplus/gdiplus.c | 6 +++--- dlls/gdiplus/tests/image.c | 1 - 2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/dlls/gdiplus/gdiplus.c b/dlls/gdiplus/gdiplus.c index 1c016be..f199055 100644 --- a/dlls/gdiplus/gdiplus.c +++ b/dlls/gdiplus/gdiplus.c @@ -442,9 +442,9 @@ void convert_32bppARGB_to_32bppPARGB(UINT width, UINT height, for (x=0; x<width; x++) { BYTE alpha=src[3]; - *dst++ = *src++ * alpha / 255; - *dst++ = *src++ * alpha / 255; - *dst++ = *src++ * alpha / 255; + *dst++ = (*src++ * alpha + 127) / 255; + *dst++ = (*src++ * alpha + 127) / 255; + *dst++ = (*src++ * alpha + 127) / 255; *dst++ = *src++; } } diff --git a/dlls/gdiplus/tests/image.c b/dlls/gdiplus/tests/image.c index a075b42..feab70b 100644 --- a/dlls/gdiplus/tests/image.c +++ b/dlls/gdiplus/tests/image.c @@ -4129,7 +4129,6 @@ static void test_ARGB_conversion(void) ok(data.Stride == 8, "expected 8, got %d\n", data.Stride); ok(data.PixelFormat == PixelFormat32bppPARGB, "expected PixelFormat32bppPARGB, got %d\n", data.PixelFormat); match = !memcmp(data.Scan0, pargb, sizeof(pargb)); -todo_wine ok(match, "bits don't match\n"); if (!match) {