From 64498490980d1d31b6e7e1e3dc36563d68389a30 Mon Sep 17 00:00:00 2001 From: James Tabor Date: Fri, 18 Apr 2008 02:23:38 +0000 Subject: [PATCH] Add new examples for retrieving DC origin. svn path=/trunk/; revision=33015 --- reactos/subsystems/win32/win32k/include/dc.h | 2 +- reactos/subsystems/win32/win32k/objects/dc.c | 31 +++++++++++++++++--- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/reactos/subsystems/win32/win32k/include/dc.h b/reactos/subsystems/win32/win32k/include/dc.h index 5f83a8dc0e2..de005fd5dec 100644 --- a/reactos/subsystems/win32/win32k/include/dc.h +++ b/reactos/subsystems/win32/win32k/include/dc.h @@ -97,7 +97,7 @@ typedef struct _DC HDC hNext; HDC hPrev; RECTL erclClip; - POINTL ptlSaveFillOrig; + POINTL ptlDCOrig; RECTL erclWindow; RECTL erclBounds; RECTL erclBoundsApp; diff --git a/reactos/subsystems/win32/win32k/objects/dc.c b/reactos/subsystems/win32/win32k/objects/dc.c index 6e7f7fbfcc3..b680f04efe4 100644 --- a/reactos/subsystems/win32/win32k/objects/dc.c +++ b/reactos/subsystems/win32/win32k/objects/dc.c @@ -1116,8 +1116,8 @@ IntGdiGetDCOrgEx(DC *dc, LPPOINT Point) LONG FASTCALL IntCalcFillOrigin(PDC pdc) { - pdc->ptlFillOrigin.x = pdc->DcLevel.ptlBrushOrigin.x + pdc->ptlSaveFillOrig.x; - pdc->ptlFillOrigin.y = pdc->DcLevel.ptlBrushOrigin.y + pdc->ptlSaveFillOrig.y; + pdc->ptlFillOrigin.x = pdc->DcLevel.ptlBrushOrigin.x + pdc->ptlDCOrig.x; + pdc->ptlFillOrigin.y = pdc->DcLevel.ptlBrushOrigin.y + pdc->ptlDCOrig.y; return pdc->ptlFillOrigin.y; } @@ -1131,8 +1131,8 @@ GdiSetDCOrg(HDC hDC, LONG Left, LONG Top, PRECTL prc) pdc = DC_LockDc(hDC); if (!pdc) return; - pdc->ptlSaveFillOrig.x = Left; - pdc->ptlSaveFillOrig.y = Top; + pdc->ptlDCOrig.x = Left; + pdc->ptlDCOrig.y = Top; IntCalcFillOrigin(pdc); @@ -1141,6 +1141,29 @@ GdiSetDCOrg(HDC hDC, LONG Left, LONG Top, PRECTL prc) DC_UnlockDc(pdc); } + +BOOL FASTCALL +IntGdiGetDCOrg(PDC pDc, PPOINTL ppt) +{ + *ppt = pDc->ptlDCOrig; + return TRUE; +} + +BOOL STDCALL +GdiGetDCOrgEx(HDC hDC, PPOINTL ppt, PRECTL prc) +{ + PDC pdc; + + pdc = DC_LockDc(hDC); + if (!pdc) return FALSE; + + *prc = pdc->erclWindow; + *ppt = pdc->ptlDCOrig; + + DC_UnlockDc(pdc); + return TRUE; +} + BOOL FASTCALL IntGetAspectRatioFilter(PDC pDC, LPSIZE AspectRatio)