From cae8c23a9f03643249c3a731f18ab31d93f5d8b6 Mon Sep 17 00:00:00 2001 From: Gregor Schneider Date: Sun, 25 Oct 2009 17:23:19 +0000 Subject: [PATCH] [win32k] GetTransform: - Add support for more transforms - Fix return value for invalid/unsupported transform types - Fixes 10 gdi32 mapping winetests svn path=/trunk/; revision=43745 --- reactos/include/reactos/win32k/ntgdityp.h | 3 +++ reactos/subsystems/win32/win32k/objects/coord.c | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/reactos/include/reactos/win32k/ntgdityp.h b/reactos/include/reactos/win32k/ntgdityp.h index 42bd035c059..2e710ca6bdf 100644 --- a/reactos/include/reactos/win32k/ntgdityp.h +++ b/reactos/include/reactos/win32k/ntgdityp.h @@ -163,6 +163,9 @@ typedef enum GDILoObjType } GDILOOBJTYPE, *PGDILOOBJTYPE; #define GdiWorldSpaceToPageSpace 0x203 +#define GdiWorldSpaceToDeviceSpace 0x204 +#define GdiPageSpaceToDeviceSpace 0x304 +#define GdiDeviceSpaceToWorldSpace 0x402 /* FIXME: Unknown */ typedef DWORD FULLSCREENCONTROL; diff --git a/reactos/subsystems/win32/win32k/objects/coord.c b/reactos/subsystems/win32/win32k/objects/coord.c index 0a17bc59e64..7c664525c13 100644 --- a/reactos/subsystems/win32/win32k/objects/coord.c +++ b/reactos/subsystems/win32/win32k/objects/coord.c @@ -198,7 +198,17 @@ NtGdiGetTransform( MatrixS2XForm(XForm, &dc->dclevel.mxWorldToPage); break; + case GdiWorldSpaceToDeviceSpace: + MatrixS2XForm(XForm, &dc->dclevel.mxWorldToDevice); + break; + + case GdiDeviceSpaceToWorldSpace: + MatrixS2XForm(XForm, &dc->dclevel.mxDeviceToWorld); + break; + default: + DPRINT1("Unknown or unsupported transform %lu\n", iXform); + Status = STATUS_INVALID_PARAMETER; break; } }