[1/3] gdiplus: Add FIXME for EMF records we need to implement.

Vincent Povirk madewokherd at gmail.com
Fri Oct 7 16:03:42 CDT 2016


From: Vincent Povirk <vincent at codeweavers.com>

These records cause state tracking in gdi32, but the state tracking doesn't
work correctly because we didn't pass a DC to EnumEnhMetaFile.

Since native updates transforms immediately (see patch 2), while gdi32
updates it only when returning from a callback, gdi's state tracking
wouldn't help us anyway. We have to do this within GdipPlayMetafileRecord.

Signed-off-by: Vincent Povirk <vincent at codeweavers.com>
---
 dlls/gdiplus/metafile.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/dlls/gdiplus/metafile.c b/dlls/gdiplus/metafile.c
index 9de584c..803384a 100644
--- a/dlls/gdiplus/metafile.c
+++ b/dlls/gdiplus/metafile.c
@@ -1131,6 +1131,26 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile,
         {
             ENHMETARECORD *record;
 
+            switch (recordType)
+            {
+            case EMR_SETMAPMODE:
+            case EMR_SAVEDC:
+            case EMR_RESTOREDC:
+            case EMR_SETWINDOWORGEX:
+            case EMR_SETWINDOWEXTEX:
+            case EMR_SETVIEWPORTORGEX:
+            case EMR_SETVIEWPORTEXTEX:
+            case EMR_EXTSELECTCLIPRGN:
+            case EMR_SETWORLDTRANSFORM:
+            case EMR_SCALEVIEWPORTEXTEX:
+            case EMR_SCALEWINDOWEXTEX:
+            case EMR_MODIFYWORLDTRANSFORM:
+                FIXME("not implemented for record type %x\n", recordType);
+                break;
+            default:
+                break;
+            }
+
             record = heap_alloc_zero(dataSize + 8);
 
             if (record)
-- 
2.7.4




More information about the wine-patches mailing list