Module: wine Branch: master Commit: 91352c5aa4edfe4169fe24fbb3bc934556f7bd22 URL: http://source.winehq.org/git/wine.git/?a=commit;h=91352c5aa4edfe4169fe24fbb3...
Author: Vincent Povirk vincent@codeweavers.com Date: Tue Feb 16 16:10:21 2016 -0600
gdiplus/tests: Add test for matrix transform in GdipWidenPath.
Signed-off-by: Vincent Povirk vincent@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/gdiplus/tests/graphicspath.c | 93 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+)
diff --git a/dlls/gdiplus/tests/graphicspath.c b/dlls/gdiplus/tests/graphicspath.c index 400123c..81670a4 100644 --- a/dlls/gdiplus/tests/graphicspath.c +++ b/dlls/gdiplus/tests/graphicspath.c @@ -1055,6 +1055,13 @@ static path_test_t widenline_path[] = { {5.0, 15.0, PathPointTypeLine|PathPointTypeCloseSubpath, 0, 0} /*3*/ };
+static path_test_t widenline_wide_path[] = { + {5.0, 0.0, PathPointTypeStart, 0, 1}, /*0*/ + {50.0, 0.0, PathPointTypeLine, 0, 1}, /*1*/ + {50.0, 20.0, PathPointTypeLine, 0, 1}, /*2*/ + {5.0, 20.0, PathPointTypeLine|PathPointTypeCloseSubpath, 0, 1} /*3*/ + }; + static void test_widen(void) { GpStatus status; @@ -1099,6 +1106,92 @@ static void test_widen(void) expect(Ok, status); ok_path(path, widenline_path, sizeof(widenline_path)/sizeof(path_test_t), FALSE);
+ /* horizontal 2x stretch */ + status = GdipResetPath(path); + expect(Ok, status); + status = GdipAddPathLine(path, 2.5, 10.0, 25.0, 10.0); + expect(Ok, status); + + status = GdipScaleMatrix(m, 2.0, 1.0, MatrixOrderAppend); + expect(Ok, status); + + status = GdipWidenPath(path, pen, m, 1.0); + expect(Ok, status); + ok_path(path, widenline_path, sizeof(widenline_path)/sizeof(path_test_t), FALSE); + + /* vertical 2x stretch */ + status = GdipResetPath(path); + expect(Ok, status); + status = GdipAddPathLine(path, 5.0, 5.0, 50.0, 5.0); + expect(Ok, status); + + status = GdipScaleMatrix(m, 0.5, 2.0, MatrixOrderAppend); + expect(Ok, status); + + status = GdipWidenPath(path, pen, m, 1.0); + expect(Ok, status); + ok_path(path, widenline_path, sizeof(widenline_path)/sizeof(path_test_t), FALSE); + + status = GdipScaleMatrix(m, 1.0, 0.5, MatrixOrderAppend); + expect(Ok, status); + + /* pen width in UnitWorld */ + GdipDeletePen(pen); + status = GdipCreatePen1(0xffffffff, 10.0, UnitWorld, &pen); + expect(Ok, status); + + status = GdipResetPath(path); + expect(Ok, status); + status = GdipAddPathLine(path, 5.0, 10.0, 50.0, 10.0); + expect(Ok, status); + + status = GdipWidenPath(path, pen, m, 1.0); + expect(Ok, status); + ok_path(path, widenline_path, sizeof(widenline_path)/sizeof(path_test_t), FALSE); + + /* horizontal 2x stretch */ + status = GdipResetPath(path); + expect(Ok, status); + status = GdipAddPathLine(path, 2.5, 10.0, 25.0, 10.0); + expect(Ok, status); + + status = GdipScaleMatrix(m, 2.0, 1.0, MatrixOrderAppend); + expect(Ok, status); + + status = GdipWidenPath(path, pen, m, 1.0); + expect(Ok, status); + ok_path(path, widenline_path, sizeof(widenline_path)/sizeof(path_test_t), FALSE); + + /* vertical 2x stretch */ + status = GdipResetPath(path); + expect(Ok, status); + status = GdipAddPathLine(path, 5.0, 5.0, 50.0, 5.0); + expect(Ok, status); + + status = GdipScaleMatrix(m, 0.5, 2.0, MatrixOrderAppend); + expect(Ok, status); + + status = GdipWidenPath(path, pen, m, 1.0); + expect(Ok, status); + ok_path(path, widenline_wide_path, sizeof(widenline_wide_path)/sizeof(path_test_t), FALSE); + + status = GdipScaleMatrix(m, 1.0, 0.5, MatrixOrderAppend); + expect(Ok, status); + + /* pen width in UnitInch */ + GdipDeletePen(pen); + status = GdipCreatePen1(0xffffffff, 10.0, UnitWorld, &pen); + expect(Ok, status); + + status = GdipResetPath(path); + expect(Ok, status); + status = GdipAddPathLine(path, 5.0, 10.0, 50.0, 10.0); + expect(Ok, status); + + status = GdipWidenPath(path, pen, m, 1.0); + expect(Ok, status); + ok_path(path, widenline_path, sizeof(widenline_path)/sizeof(path_test_t), FALSE); + GdipDeleteMatrix(m); GdipDeletePen(pen); GdipDeletePath(path);