Huw Davies : gdi32: Don't use the bitfields for the BI_RGB case.
Alexandre Julliard
julliard at winehq.org
Tue Apr 12 11:07:38 CDT 2011
Module: wine
Branch: master
Commit: 673dd73548e1d52afd89041f5e9970760cd0cf07
URL: http://source.winehq.org/git/wine.git/?a=commit;h=673dd73548e1d52afd89041f5e9970760cd0cf07
Author: Huw Davies <huw at codeweavers.com>
Date: Tue Apr 12 12:46:24 2011 +0100
gdi32: Don't use the bitfields for the BI_RGB case.
---
dlls/gdi32/dib.c | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/dlls/gdi32/dib.c b/dlls/gdi32/dib.c
index 96f6920..b63eb13 100644
--- a/dlls/gdi32/dib.c
+++ b/dlls/gdi32/dib.c
@@ -774,7 +774,17 @@ INT WINAPI GetDIBits(
case 16:
if (info->bmiHeader.biCompression == BI_BITFIELDS)
{
- if (bmp->dib) memcpy( info->bmiColors, bmp->dib->dsBitfields, 3 * sizeof(DWORD) );
+ if (bmp->dib)
+ {
+ if (bmp->dib->dsBmih.biCompression == BI_BITFIELDS)
+ memcpy( info->bmiColors, bmp->dib->dsBitfields, 3 * sizeof(DWORD) );
+ else
+ {
+ ((PDWORD)info->bmiColors)[0] = 0x7c00;
+ ((PDWORD)info->bmiColors)[1] = 0x03e0;
+ ((PDWORD)info->bmiColors)[2] = 0x001f;
+ }
+ }
else
{
((PDWORD)info->bmiColors)[0] = 0xf800;
@@ -788,7 +798,8 @@ INT WINAPI GetDIBits(
case 32:
if (info->bmiHeader.biCompression == BI_BITFIELDS)
{
- if (bmp->dib) memcpy( info->bmiColors, bmp->dib->dsBitfields, 3 * sizeof(DWORD) );
+ if (bmp->dib && bmp->dib->dsBmih.biCompression == BI_BITFIELDS)
+ memcpy( info->bmiColors, bmp->dib->dsBitfields, 3 * sizeof(DWORD) );
else
{
((PDWORD)info->bmiColors)[0] = 0xff0000;
More information about the wine-cvs
mailing list