Module: wine Branch: master Commit: 33993218282290a92f51aea36299730e5ede2346 URL: http://source.winehq.org/git/wine.git/?a=commit;h=33993218282290a92f51aea362...
Author: Piotr Caban piotr@codeweavers.com Date: Wed Jun 28 20:47:21 2017 +0200
gdiplus: Add GdipDrawLine test on EmfTypeEmfOnly metafile.
Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Vincent Povirk vincent@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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[] = {