Vincent Povirk : gdiplus/tests: Add test for matrix transform in GdipWidenPath.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Feb 17 11:15:03 CST 2016
Module: wine
Branch: master
Commit: 91352c5aa4edfe4169fe24fbb3bc934556f7bd22
URL: http://source.winehq.org/git/wine.git/?a=commit;h=91352c5aa4edfe4169fe24fbb3bc934556f7bd22
Author: Vincent Povirk <vincent at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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);
More information about the wine-cvs
mailing list