From 33993218282290a92f51aea36299730e5ede2346 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Wed, 28 Jun 2017 20:47:21 +0200 Subject: [PATCH] gdiplus: Add GdipDrawLine test on EmfTypeEmfOnly metafile. Signed-off-by: Piotr Caban Signed-off-by: Vincent Povirk Signed-off-by: Alexandre Julliard --- 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 a61206d57a0..f73dc429142 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[] = { -- 2.11.4.GIT