[ros-diffs] [gschneider] 44671: [win32k] - Mapping mode works with the virtual device resolution - Initialize virtual resolution when initializing the DC - Fixes ~30 gdi32 mapping tests
gschneider at svn.reactos.org
gschneider at svn.reactos.org
Sun Dec 20 14:55:45 CET 2009
Author: gschneider
Date: Sun Dec 20 14:55:45 2009
New Revision: 44671
URL: http://svn.reactos.org/svn/reactos?rev=44671&view=rev
Log:
[win32k]
- Mapping mode works with the virtual device resolution
- Initialize virtual resolution when initializing the DC
- Fixes ~30 gdi32 mapping tests
Modified:
trunk/reactos/subsystems/win32/win32k/objects/coord.c
trunk/reactos/subsystems/win32/win32k/objects/dclife.c
Modified: trunk/reactos/subsystems/win32/win32k/objects/coord.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/coord.c?rev=44671&r1=44670&r2=44671&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/coord.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/coord.c [iso-8859-1] Sun Dec 20 14:55:45 2009
@@ -688,38 +688,38 @@
/* Fall through */
case MM_LOMETRIC:
- pdcattr->szlWindowExt.cx = dc->ppdev->gdiinfo.ulHorzSize * 10;
- pdcattr->szlWindowExt.cy = dc->ppdev->gdiinfo.ulVertSize * 10;
- pdcattr->szlViewportExt.cx = dc->ppdev->gdiinfo.ulHorzRes;
- pdcattr->szlViewportExt.cy = -dc->ppdev->gdiinfo.ulVertRes;
+ pdcattr->szlWindowExt.cx = pdcattr->szlVirtualDeviceMm.cx * 10;
+ pdcattr->szlWindowExt.cy = pdcattr->szlVirtualDeviceMm.cy * 10;
+ pdcattr->szlViewportExt.cx = pdcattr->szlVirtualDevicePixel.cx;
+ pdcattr->szlViewportExt.cy = -pdcattr->szlVirtualDevicePixel.cy;
break;
case MM_HIMETRIC:
- pdcattr->szlWindowExt.cx = dc->ppdev->gdiinfo.ulHorzSize * 100;
- pdcattr->szlWindowExt.cy = dc->ppdev->gdiinfo.ulVertSize * 100;
- pdcattr->szlViewportExt.cx = dc->ppdev->gdiinfo.ulHorzRes;
- pdcattr->szlViewportExt.cy = -dc->ppdev->gdiinfo.ulVertRes;
+ pdcattr->szlWindowExt.cx = pdcattr->szlVirtualDeviceMm.cx * 100;
+ pdcattr->szlWindowExt.cy = pdcattr->szlVirtualDeviceMm.cy * 100;
+ pdcattr->szlViewportExt.cx = pdcattr->szlVirtualDevicePixel.cx;
+ pdcattr->szlViewportExt.cy = -pdcattr->szlVirtualDevicePixel.cy;
break;
case MM_LOENGLISH:
- pdcattr->szlWindowExt.cx = MulDiv(1000, dc->ppdev->gdiinfo.ulHorzSize, 254);
- pdcattr->szlWindowExt.cy = MulDiv(1000, dc->ppdev->gdiinfo.ulVertSize, 254);
- pdcattr->szlViewportExt.cx = dc->ppdev->gdiinfo.ulHorzRes;
- pdcattr->szlViewportExt.cy = -dc->ppdev->gdiinfo.ulVertRes;
+ pdcattr->szlWindowExt.cx = MulDiv(1000, pdcattr->szlVirtualDeviceMm.cx, 254);
+ pdcattr->szlWindowExt.cy = MulDiv(1000, pdcattr->szlVirtualDeviceMm.cy, 254);
+ pdcattr->szlViewportExt.cx = pdcattr->szlVirtualDevicePixel.cx;
+ pdcattr->szlViewportExt.cy = -pdcattr->szlVirtualDevicePixel.cy;
break;
case MM_HIENGLISH:
- pdcattr->szlWindowExt.cx = MulDiv(10000, dc->ppdev->gdiinfo.ulHorzSize, 254);
- pdcattr->szlWindowExt.cy = MulDiv(10000, dc->ppdev->gdiinfo.ulVertSize, 254);
- pdcattr->szlViewportExt.cx = dc->ppdev->gdiinfo.ulHorzRes;
- pdcattr->szlViewportExt.cy = -dc->ppdev->gdiinfo.ulVertRes;
+ pdcattr->szlWindowExt.cx = MulDiv(10000, pdcattr->szlVirtualDeviceMm.cx, 254);
+ pdcattr->szlWindowExt.cy = MulDiv(10000, pdcattr->szlVirtualDeviceMm.cy, 254);
+ pdcattr->szlViewportExt.cx = pdcattr->szlVirtualDevicePixel.cx;
+ pdcattr->szlViewportExt.cy = -pdcattr->szlVirtualDevicePixel.cy;
break;
case MM_TWIPS:
- pdcattr->szlWindowExt.cx = MulDiv(14400, dc->ppdev->gdiinfo.ulHorzSize, 254);
- pdcattr->szlWindowExt.cy = MulDiv(14400, dc->ppdev->gdiinfo.ulVertSize, 254);
- pdcattr->szlViewportExt.cx = dc->ppdev->gdiinfo.ulHorzRes;
- pdcattr->szlViewportExt.cy = -dc->ppdev->gdiinfo.ulVertRes;
+ pdcattr->szlWindowExt.cx = MulDiv(14400, pdcattr->szlVirtualDeviceMm.cx, 254);
+ pdcattr->szlWindowExt.cy = MulDiv(14400, pdcattr->szlVirtualDeviceMm.cy, 254);
+ pdcattr->szlViewportExt.cx = pdcattr->szlVirtualDevicePixel.cx;
+ pdcattr->szlViewportExt.cy = -pdcattr->szlVirtualDevicePixel.cy;
break;
case MM_ANISOTROPIC:
Modified: trunk/reactos/subsystems/win32/win32k/objects/dclife.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/dclife.c?rev=44671&r1=44670&r2=44671&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/dclife.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/dclife.c [iso-8859-1] Sun Dec 20 14:55:45 2009
@@ -568,6 +568,9 @@
ASSERT ( res != ERROR );
}
*/
+
+ /* Set virtual resolution */
+ NtGdiSetVirtualResolution(DCHandle, 0, 0, 0, 0);
}
/*
More information about the Ros-diffs
mailing list