From: Changping Yu Subject: [PATCH V2 1/2] gdiplus/tests: Add Gdip{Get, Release}DC more test. Message-Id: Date: Mon, 22 Jun 2020 20:02:14 +0800 From 792e60bf471b077985d02d912ec718cb9358aa76 Mon Sep 17 00:00:00 2001 From: Changping Yu Date: Mon, 22 Jun 2020 19:54:29 +0800 Subject: [PATCH V2 1/2] gdiplus/tests: Add Gdip{Get, Release}DC more test. Signed-off-by: Changping Yu --- dlls/gdiplus/tests/graphics.c | 45 +++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/dlls/gdiplus/tests/graphics.c b/dlls/gdiplus/tests/graphics.c index f2ff589ab5..2b47171d96 100644 --- a/dlls/gdiplus/tests/graphics.c +++ b/dlls/gdiplus/tests/graphics.c @@ -1619,6 +1619,10 @@ static void test_Get_Release_DC(void) BOOL res; ARGB color = 0x00000000; HRGN hrgn = CreateRectRgn(0, 0, 10, 10); + GpFont *fnt = NULL; + LOGFONTA logfont; + GpBitmap *bm = NULL; + GpGraphics *img_graphics = NULL; pt[0].X = 10; pt[0].Y = 10; @@ -1694,6 +1698,47 @@ static void test_Get_Release_DC(void) status = GdipGetDC(graphics, &retdc); expect(ObjectBusy, status); + /* call GdipCreateFontFromLogfontA */ + memset(&logfont, 0, sizeof(logfont)); + strcpy(logfont.lfFaceName,"Arial"); + logfont.lfHeight = 12; + logfont.lfCharSet = DEFAULT_CHARSET; + /* try to use temp dc normal */ + status = GdipCreateFontFromLogfontA(retdc, &logfont, &fnt); + expect(Ok, status); + status = GdipDeleteFont(fnt); + ok(status == Ok, "GdipDeleteFont failed: %d\n", status); + + /* try to use temp dc released */ + status = GdipReleaseDC(graphics, retdc); + expect(Ok, status); + status = GdipCreateFontFromLogfontA(retdc, &logfont, &fnt); + expect(Ok, status); + status = GdipDeleteFont(fnt); + ok(status == Ok, "GdipDeleteFont failed: %d\n", status); + + /* binding image of ImageTypeBitmap & PixelFormatAlpha to graphics */ + status = GdipCreateBitmapFromScan0(10, 10, 0, PixelFormat32bppARGB, NULL, &bm); + expect(Ok, status); + status = GdipGetImageGraphicsContext((GpImage*)bm, &img_graphics); + expect(Ok, status); + status = GdipGetDC(img_graphics, &retdc); + expect(Ok, status); + status = GdipReleaseDC(img_graphics, retdc); + expect(Ok, status); + /* try to use temp dc released on image */ + status = GdipCreateFontFromLogfontA(retdc, &logfont, &fnt); + todo_wine + expect(Ok, status); + + status = GdipDisposeImage((GpImage*)bm); + expect(Ok, status); + + status = GdipDeleteGraphics(img_graphics); + + status = GdipGetDC(graphics, &retdc); + expect(Ok, status); + /* try all Graphics calls here */ status = GdipDrawArc(graphics, pen, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0); expect(ObjectBusy, status); -- 2.26.2.windows.1