[GDI] - Add type for setting world transform modification modes.

References:
https://msdn.microsoft.com/en-us/library/cc230538.aspx
https://github.com/KDE/krita/blob/master/libs/vectorimage/libemf/EmfEnums.h
This commit is contained in:
jimtabor 2017-11-24 17:22:43 -06:00
parent f310b02337
commit d85023c9c9
4 changed files with 9 additions and 4 deletions

View file

@ -302,8 +302,7 @@ SetWorldTransform(
_In_ HDC hdc,
_Out_ CONST XFORM *pxform)
{
/* FIXME shall we add undoc #define MWT_SETXFORM 4 ?? */
return ModifyWorldTransform(hdc, pxform, MWT_MAX+1);
return ModifyWorldTransform(hdc, pxform, MWT_SET);
}

View file

@ -480,7 +480,7 @@ GreModifyWorldTransform(
XFORMOBJ_iCombine(&xoDC, &xoDC, &xoSrc);
break;
case MWT_MAX+1: // Must be MWT_SET????
case MWT_SET:
XFORMOBJ_vInit(&xoDC, &pdc->pdcattr->mxWorldToPage);
if (XFORMOBJ_iSetXform(&xoDC, pxform) == DDI_ERROR)
return FALSE;

View file

@ -1529,7 +1529,7 @@ PATH_FillPath(
/* Go to GM_ADVANCED temporarily to restore the world transform */
graphicsMode = pdcattr->iGraphicsMode;
pdcattr->iGraphicsMode = GM_ADVANCED;
GreModifyWorldTransform(dc, &xform, MWT_MAX+1);
GreModifyWorldTransform(dc, &xform, MWT_SET);
pdcattr->iGraphicsMode = graphicsMode;
return TRUE;
}

View file

@ -170,6 +170,12 @@ typedef enum GDILoObjType
GDILoObjType_LO_METADC16_TYPE = 0x660000
} GDILOOBJTYPE, *PGDILOOBJTYPE;
/**
World Transform modification modes
See [MS-EMF] Section 2.1.24
*/
#define MWT_SET 0x04
#define GdiWorldSpaceToPageSpace 0x203
#define GdiWorldSpaceToDeviceSpace 0x204
#define GdiPageSpaceToDeviceSpace 0x304