mirror of
https://github.com/reactos/reactos.git
synced 2024-10-07 01:44:21 +00:00
[WIN32K]
Fix calculating of ScanLines and source point in NtGdiGetDIBitsInternal for top-down bitmaps to more closely mimic win xp behavior. (Timo - high five for your test app) See issue #5524 for more details. svn path=/trunk/; revision=50935
This commit is contained in:
parent
c6182beb15
commit
9fb8200d9b
|
@ -940,8 +940,25 @@ NtGdiGetDIBitsInternal(
|
|||
rcDest.right = psurf->SurfObj.sizlBitmap.cx;
|
||||
|
||||
srcPoint.x = 0;
|
||||
srcPoint.y = height < 0 ?
|
||||
psurf->SurfObj.sizlBitmap.cy - (StartScan + ScanLines) : StartScan;
|
||||
|
||||
if(height < 0)
|
||||
{
|
||||
srcPoint.y = 0;
|
||||
|
||||
if(ScanLines <= StartScan)
|
||||
{
|
||||
ScanLines = 1;
|
||||
SURFACE_ShareUnlockSurface(psurfDest);
|
||||
GreDeleteObject(hBmpDest);
|
||||
goto done;
|
||||
}
|
||||
|
||||
ScanLines -= StartScan;
|
||||
}
|
||||
else
|
||||
{
|
||||
srcPoint.y = StartScan;
|
||||
}
|
||||
|
||||
EXLATEOBJ_vInitialize(&exlo, psurf->ppal, psurfDest->ppal, 0xffffff, 0xffffff, 0);
|
||||
|
||||
|
|
Loading…
Reference in a new issue