[1/4] gdiplus: Add a font transformation test.
Dmitry Timoshkov
dmitry at baikal.ru
Mon Oct 8 02:48:59 CDT 2012
---
dlls/gdiplus/tests/font.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
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();
--
1.7.12.2
More information about the wine-patches
mailing list