gdi32: Fetch CURVECAPS, LINECAPS and POLYGONALCAPS for an EMF from parent device.

Dmitry Timoshkov dmitry at baikal.ru
Fri May 20 02:01:18 CDT 2011


This follows the way how it's done for other device capabilities.
---
 dlls/gdi32/enhmfdrv/dc.c             |    9 +++------
 dlls/gdi32/enhmfdrv/enhmetafiledrv.h |    3 +++
 dlls/gdi32/enhmfdrv/init.c           |    3 +++
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/dlls/gdi32/enhmfdrv/dc.c b/dlls/gdi32/enhmfdrv/dc.c
index 7a84265..e15a525 100644
--- a/dlls/gdi32/enhmfdrv/dc.c
+++ b/dlls/gdi32/enhmfdrv/dc.c
@@ -542,14 +542,11 @@ INT CDECL EMFDRV_GetDeviceCaps(PHYSDEV dev, INT cap)
     case NUMCOLORS:
         return physDev->numcolors;
     case CURVECAPS:
-        return (CC_CIRCLES | CC_PIE | CC_CHORD | CC_ELLIPSES | CC_WIDE |
-                CC_STYLED | CC_WIDESTYLED | CC_INTERIORS | CC_ROUNDRECT);
+        return physDev->curvecaps;
     case LINECAPS:
-        return (LC_POLYLINE | LC_MARKER | LC_POLYMARKER | LC_WIDE |
-                LC_STYLED | LC_WIDESTYLED | LC_INTERIORS);
+        return physDev->linecaps;
     case POLYGONALCAPS:
-        return (PC_POLYGON | PC_RECTANGLE | PC_WINDPOLYGON | PC_SCANLINE |
-                PC_WIDE | PC_STYLED | PC_WIDESTYLED | PC_INTERIORS);
+        return physDev->polygonalcaps;
     default:
         FIXME("Unimplemented cap %d\n", cap);
 	return 0;
diff --git a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
index 34f09b3..494df43 100644
--- a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
+++ b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
@@ -48,6 +48,9 @@ typedef struct
     INT        technology;
     INT        planes;
     INT        numcolors;
+    INT        curvecaps;
+    INT        linecaps;
+    INT        polygonalcaps;
     INT        restoring;          /* RestoreDC counter */
 } EMFDRV_PDEVICE;
 
diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c
index 839c21f..8c1dbae 100644
--- a/dlls/gdi32/enhmfdrv/init.c
+++ b/dlls/gdi32/enhmfdrv/init.c
@@ -353,6 +353,9 @@ HDC WINAPI CreateEnhMetaFileW(
     physDev->technology = GetDeviceCaps(hRefDC, TECHNOLOGY);
     physDev->planes = GetDeviceCaps(hRefDC, PLANES);
     physDev->numcolors = GetDeviceCaps(hRefDC, NUMCOLORS);
+    physDev->curvecaps = GetDeviceCaps(hRefDC, CURVECAPS);
+    physDev->linecaps = GetDeviceCaps(hRefDC, LINECAPS);
+    physDev->polygonalcaps = GetDeviceCaps(hRefDC, POLYGONALCAPS);
     physDev->restoring = 0;
 
     SetVirtualResolution(physDev->dev.hdc, 0, 0, 0, 0);
-- 
1.7.5.1




More information about the wine-patches mailing list