gdiplus: Add GdipDrawImagePointsRect test on EmfTypeEmfPlusOnly file.
Signed-off-by: Piotr Caban <piotr@codeweavers.com> Signed-off-by: Vincent Povirk <vincent@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
3399321828
commit
4884815505
|
@ -2322,6 +2322,73 @@ static void test_gditransform(void)
|
||||||
expect(Ok, stat);
|
expect(Ok, stat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const emfplus_record draw_image_records[] = {
|
||||||
|
{0, EMR_HEADER},
|
||||||
|
{0, EmfPlusRecordTypeHeader},
|
||||||
|
{1, EmfPlusRecordTypeObject},
|
||||||
|
{1, EmfPlusRecordTypeDrawImagePoints},
|
||||||
|
{1, EMR_SAVEDC},
|
||||||
|
{1, EMR_SETICMMODE},
|
||||||
|
{1, EMR_BITBLT},
|
||||||
|
{1, EMR_RESTOREDC},
|
||||||
|
{0, EmfPlusRecordTypeEndOfFile},
|
||||||
|
{0, EMR_EOF},
|
||||||
|
{0}
|
||||||
|
};
|
||||||
|
|
||||||
|
static void test_drawimage(void)
|
||||||
|
{
|
||||||
|
static const WCHAR description[] = {'w','i','n','e','t','e','s','t',0};
|
||||||
|
static const GpPointF dst_points[3] = {{10.0,10.0},{25.0,15.0},{10.0,20.0}};
|
||||||
|
static const GpRectF frame = {0.0, 0.0, 100.0, 100.0};
|
||||||
|
|
||||||
|
GpMetafile *metafile;
|
||||||
|
GpGraphics *graphics;
|
||||||
|
HENHMETAFILE hemf;
|
||||||
|
GpStatus stat;
|
||||||
|
BITMAPINFO info;
|
||||||
|
BYTE buff[400];
|
||||||
|
GpBitmap *bm;
|
||||||
|
HDC hdc;
|
||||||
|
|
||||||
|
memset(buff, 0x80, sizeof(buff));
|
||||||
|
hdc = CreateCompatibleDC(0);
|
||||||
|
stat = GdipRecordMetafile(hdc, EmfTypeEmfPlusOnly, &frame, MetafileFrameUnitPixel, description, &metafile);
|
||||||
|
expect(Ok, stat);
|
||||||
|
DeleteDC(hdc);
|
||||||
|
|
||||||
|
stat = GdipGetImageGraphicsContext((GpImage*)metafile, &graphics);
|
||||||
|
expect(Ok, stat);
|
||||||
|
|
||||||
|
memset(&info, 0, sizeof(info));
|
||||||
|
info.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
|
||||||
|
info.bmiHeader.biWidth = 10;
|
||||||
|
info.bmiHeader.biHeight = 10;
|
||||||
|
info.bmiHeader.biPlanes = 1;
|
||||||
|
info.bmiHeader.biBitCount = 32;
|
||||||
|
info.bmiHeader.biCompression = BI_RGB;
|
||||||
|
stat = GdipCreateBitmapFromGdiDib(&info, buff, &bm);
|
||||||
|
expect(Ok, stat);
|
||||||
|
|
||||||
|
stat = GdipDrawImagePointsRect(graphics, (GpImage*)bm, dst_points, 3,
|
||||||
|
0.0, 0.0, 10.0, 10.0, UnitPixel, NULL, NULL, NULL);
|
||||||
|
expect(Ok, stat);
|
||||||
|
|
||||||
|
GdipDisposeImage((GpImage*)bm);
|
||||||
|
|
||||||
|
stat = GdipDeleteGraphics(graphics);
|
||||||
|
expect(Ok, stat);
|
||||||
|
sync_metafile(&metafile, "draw_image.emf");
|
||||||
|
|
||||||
|
stat = GdipGetHemfFromMetafile(metafile, &hemf);
|
||||||
|
expect(Ok, stat);
|
||||||
|
|
||||||
|
check_emfplus(hemf, draw_image_records, "draw image");
|
||||||
|
|
||||||
|
stat = GdipDisposeImage((GpImage*)metafile);
|
||||||
|
expect(Ok, stat);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(metafile)
|
START_TEST(metafile)
|
||||||
{
|
{
|
||||||
struct GdiplusStartupInput gdiplusStartupInput;
|
struct GdiplusStartupInput gdiplusStartupInput;
|
||||||
|
@ -2359,6 +2426,7 @@ START_TEST(metafile)
|
||||||
test_containers();
|
test_containers();
|
||||||
test_clipping();
|
test_clipping();
|
||||||
test_gditransform();
|
test_gditransform();
|
||||||
|
test_drawimage();
|
||||||
|
|
||||||
GdiplusShutdown(gdiplusToken);
|
GdiplusShutdown(gdiplusToken);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue