[PATCH 5/5] Always create a context for DIB_RGB_COLORS
Nikolay Sivov
bunglehead at gmail.com
Thu Oct 22 04:15:30 CDT 2009
---
dlls/gdi32/dib.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/gdi32/dib.c b/dlls/gdi32/dib.c
index 3b1ba92..767c0a9 100644
--- a/dlls/gdi32/dib.c
+++ b/dlls/gdi32/dib.c
@@ -336,17 +336,17 @@ INT WINAPI SetDIBits( HDC hdc, HBITMAP hbitmap, UINT startscan,
BITMAPOBJ *bitmap;
INT result = 0;
+ if (coloruse == DIB_RGB_COLORS) hdc = CreateCompatibleDC(0);
+
if (!(dc = get_dc_ptr( hdc )))
- {
- if (coloruse == DIB_RGB_COLORS) FIXME( "shouldn't require a DC for DIB_RGB_COLORS\n" );
return 0;
- }
update_dc( dc );
if (!(bitmap = GDI_GetObjPtr( hbitmap, OBJ_BITMAP )))
{
release_dc_ptr( dc );
+ if (coloruse == DIB_RGB_COLORS) DeleteDC(hdc);
return 0;
}
@@ -365,6 +365,7 @@ INT WINAPI SetDIBits( HDC hdc, HBITMAP hbitmap, UINT startscan,
done:
GDI_ReleaseObj( hbitmap );
release_dc_ptr( dc );
+ if (coloruse == DIB_RGB_COLORS) DeleteDC(hdc);
return result;
}
--
1.5.6.5
--=-Kc3kNjQPDGlS3OXPSWCU--
More information about the wine-patches
mailing list