Module: wine Branch: master Commit: e664c2bd3ac39da32d6093aa3be272a6fa7f6ce4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e664c2bd3ac39da32d6093aa3b...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Mon Oct 8 16:48:59 2012 +0900
gdiplus: Add a font transformation test.
---
dlls/gdiplus/tests/font.c | 70 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 70 insertions(+), 0 deletions(-)
diff --git a/dlls/gdiplus/tests/font.c b/dlls/gdiplus/tests/font.c index 66517b1..0ac9558 100644 --- a/dlls/gdiplus/tests/font.c +++ b/dlls/gdiplus/tests/font.c @@ -804,6 +804,75 @@ todo_wine DeleteDC(hdc); }
+static void test_font_transform(void) +{ + GpStatus status; + HDC hdc; + LOGFONT lf; + GpFont *font; + GpGraphics *graphics; + GpMatrix *matrix; + + hdc = CreateCompatibleDC(0); + status = GdipCreateFromHDC(hdc, &graphics); + expect(Ok, status); + + memset(&lf, 0, sizeof(lf)); + lstrcpy(lf.lfFaceName, "Tahoma"); + lf.lfHeight = -100; + lf.lfWidth = 100; + status = GdipCreateFontFromLogfontA(hdc, &lf, &font); + expect(Ok, status); + + /* identity matrix */ + status = GdipCreateMatrix(&matrix); + expect(Ok, status); + status = GdipSetWorldTransform(graphics, matrix); + expect(Ok, status); + status = GdipGetLogFontA(font, graphics, &lf); + expect(Ok, status); + expect(-100, lf.lfHeight); + expect(0, lf.lfWidth); + + /* scale matrix */ + status = GdipScaleMatrix(matrix, 2.0, 3.0, MatrixOrderAppend); + expect(Ok, status); + status = GdipSetWorldTransform(graphics, matrix); + expect(Ok, status); + status = GdipGetLogFontA(font, graphics, &lf); + expect(Ok, status); +todo_wine + expect(-300, lf.lfHeight); + expect(0, lf.lfWidth); + + /* scale + ratate matrix */ + status = GdipRotateMatrix(matrix, 45.0, MatrixOrderAppend); + expect(Ok, status); + status = GdipSetWorldTransform(graphics, matrix); + expect(Ok, status); + status = GdipGetLogFontA(font, graphics, &lf); + expect(Ok, status); +todo_wine + expect(-300, lf.lfHeight); + expect(0, lf.lfWidth); + + /* scale + ratate + shear matrix */ + status = GdipShearMatrix(matrix, 4.0, 5.0, MatrixOrderAppend); + expect(Ok, status); + status = GdipSetWorldTransform(graphics, matrix); + expect(Ok, status); + status = GdipGetLogFontA(font, graphics, &lf); + expect(Ok, status); +todo_wine + expect(1032, lf.lfHeight); + expect(0, lf.lfWidth); + + GdipDeleteMatrix(matrix); + GdipDeleteFont(font); + GdipDeleteGraphics(graphics); + DeleteDC(hdc); +} + START_TEST(font) { struct GdiplusStartupInput gdiplusStartupInput; @@ -816,6 +885,7 @@ START_TEST(font)
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
+ test_font_transform(); test_font_substitution(); test_font_metrics(); test_createfont();