mirror of
https://github.com/reactos/wine.git
synced 2025-01-19 10:13:01 +00:00
gdi32: Use supplied hdc for DIB_RGB_COLORS if it's valid.
This is about fixing regression introduced with 2854884a428e222cbb9078d875068a72f25365c4. Initial patch fixed MSVS 2005 toolbars blackness, this one doesn't break a fix, and fixes regressed Animation control glitches (and probably reported games related problems).
This commit is contained in:
parent
6f0560dfa7
commit
352e2ff6eb
@ -332,21 +332,26 @@ INT WINAPI SetDIBits( HDC hdc, HBITMAP hbitmap, UINT startscan,
|
||||
UINT lines, LPCVOID bits, const BITMAPINFO *info,
|
||||
UINT coloruse )
|
||||
{
|
||||
DC *dc;
|
||||
DC *dc = get_dc_ptr( hdc );
|
||||
BOOL delete_hdc = FALSE;
|
||||
BITMAPOBJ *bitmap;
|
||||
INT result = 0;
|
||||
|
||||
if (coloruse == DIB_RGB_COLORS) hdc = CreateCompatibleDC(0);
|
||||
if (coloruse == DIB_RGB_COLORS && !dc)
|
||||
{
|
||||
hdc = CreateCompatibleDC(0);
|
||||
dc = get_dc_ptr( hdc );
|
||||
delete_hdc = TRUE;
|
||||
}
|
||||
|
||||
if (!(dc = get_dc_ptr( hdc )))
|
||||
return 0;
|
||||
if (!dc) return 0;
|
||||
|
||||
update_dc( dc );
|
||||
|
||||
if (!(bitmap = GDI_GetObjPtr( hbitmap, OBJ_BITMAP )))
|
||||
{
|
||||
release_dc_ptr( dc );
|
||||
if (coloruse == DIB_RGB_COLORS) DeleteDC(hdc);
|
||||
if (delete_hdc) DeleteDC(hdc);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -365,7 +370,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);
|
||||
if (delete_hdc) DeleteDC(hdc);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user