Piotr Caban : gdiplus: Add GdipDrawLine test on EmfTypeEmfOnly metafile.

Alexandre Julliard julliard at winehq.org
Thu Jun 29 15:23:24 CDT 2017


Module: wine
Branch: master
Commit: 33993218282290a92f51aea36299730e5ede2346
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=33993218282290a92f51aea36299730e5ede2346

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Wed Jun 28 20:47:21 2017 +0200

gdiplus: Add GdipDrawLine test on EmfTypeEmfOnly metafile.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Vincent Povirk <vincent at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/gdiplus/tests/metafile.c | 50 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/dlls/gdiplus/tests/metafile.c b/dlls/gdiplus/tests/metafile.c
index a61206d..f73dc42 100644
--- a/dlls/gdiplus/tests/metafile.c
+++ b/dlls/gdiplus/tests/metafile.c
@@ -640,6 +640,26 @@ static const emfplus_record emfonly_records[] = {
     {0}
 };
 
+static const emfplus_record emfonly_draw_records[] = {
+    {0, EMR_HEADER},
+    {1, EMR_SAVEDC},
+    {1, EMR_SETICMMODE},
+    {1, EMR_SETMITERLIMIT},
+    {1, EMR_MODIFYWORLDTRANSFORM},
+    {1, EMR_EXTCREATEPEN},
+    {1, EMR_SELECTOBJECT},
+    {1, EMR_SELECTOBJECT},
+    {1, EMR_POLYLINE16},
+    {1, EMR_SELECTOBJECT},
+    {1, EMR_SELECTOBJECT},
+    {1, EMR_MODIFYWORLDTRANSFORM},
+    {1, EMR_DELETEOBJECT},
+    {1, EMR_SETMITERLIMIT},
+    {1, EMR_RESTOREDC},
+    {0, EMR_EOF},
+    {1}
+};
+
 static void test_emfonly(void)
 {
     GpStatus stat;
@@ -658,6 +678,7 @@ static void test_emfonly(void)
     HBRUSH hbrush, holdbrush;
     GpBitmap *bitmap;
     ARGB color;
+    GpPen *pen;
 
     hdc = CreateCompatibleDC(0);
 
@@ -900,6 +921,35 @@ static void test_emfonly(void)
 
     stat = GdipDisposeImage((GpImage*)metafile);
     expect(Ok, stat);
+
+    /* test drawing to metafile with gdi+ functions */
+    hdc = CreateCompatibleDC(0);
+
+    stat = GdipRecordMetafile(hdc, EmfTypeEmfOnly, &frame, MetafileFrameUnitPixel, description, &metafile);
+    expect(Ok, stat);
+
+    DeleteDC(hdc);
+
+    if (stat != Ok)
+        return;
+
+    stat = GdipGetImageGraphicsContext((GpImage*)metafile, &graphics);
+    expect(Ok, stat);
+
+    stat = GdipCreatePen1((ARGB)0xffff00ff, 10.0f, UnitPixel, &pen);
+    expect(Ok, stat);
+    stat = GdipDrawLineI(graphics, pen, 0, 0, 10, 10);
+    expect(Ok, stat);
+    GdipDeletePen(pen);
+
+    stat = GdipDeleteGraphics(graphics);
+    expect(Ok, stat);
+
+    check_metafile(metafile, emfonly_draw_records, "emfonly draw metafile", dst_points, &frame, UnitPixel);
+    sync_metafile(&metafile, "emfonly_draw.emf");
+
+    stat = GdipDisposeImage((GpImage*)metafile);
+    expect(Ok, stat);
 }
 
 static const emfplus_record fillrect_records[] = {




More information about the wine-cvs mailing list