mirror of
https://github.com/reactos/reactos.git
synced 2024-10-05 17:06:29 +00:00
[WIN32K]
- In BITMAP_CopyBitmap, also "copy" the palette of the source bitmap, instead of assuming the one created by GreCreateBitmapEx matches the bitmap bits we have copied. Fixes broken colors on the firefox firstrun page See issue #5902 for more details. svn path=/trunk/; revision=50902
This commit is contained in:
parent
0fcd8261f2
commit
25a9c6fb49
|
@ -842,7 +842,7 @@ BITMAP_CopyBitmap(HBITMAP hBitmap)
|
|||
return 0;
|
||||
}
|
||||
|
||||
Bitmap = SURFACE_LockSurface(hBitmap);
|
||||
Bitmap = SURFACE_ShareLockSurface(hBitmap);
|
||||
if (Bitmap == NULL)
|
||||
{
|
||||
return 0;
|
||||
|
@ -867,11 +867,14 @@ BITMAP_CopyBitmap(HBITMAP hBitmap)
|
|||
|
||||
if (res)
|
||||
{
|
||||
resBitmap = SURFACE_LockSurface(res);
|
||||
resBitmap = SURFACE_ShareLockSurface(res);
|
||||
if (resBitmap)
|
||||
{
|
||||
IntSetBitmapBits(resBitmap, Bitmap->SurfObj.cjBits, Bitmap->SurfObj.pvBits);
|
||||
SURFACE_UnlockSurface(resBitmap);
|
||||
GDIOBJ_IncrementShareCount(&Bitmap->ppal->BaseObject);
|
||||
GDIOBJ_ShareUnlockObjByPtr(&resBitmap->ppal->BaseObject);
|
||||
resBitmap->ppal = Bitmap->ppal;
|
||||
SURFACE_ShareUnlockSurface(resBitmap);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -880,7 +883,7 @@ BITMAP_CopyBitmap(HBITMAP hBitmap)
|
|||
}
|
||||
}
|
||||
|
||||
SURFACE_UnlockSurface(Bitmap);
|
||||
SURFACE_ShareUnlockSurface(Bitmap);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue