From 2fbd4068bde6a9fb50341c0bdfbb8bf18b70d015 Mon Sep 17 00:00:00 2001 From: joshualitt Date: Thu, 7 May 2015 13:06:41 -0700 Subject: tesselating path renderer unit tests BUG=skia: Review URL: https://codereview.chromium.org/1127183006 --- src/gpu/GrTestUtils.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'src/gpu/GrTestUtils.cpp') diff --git a/src/gpu/GrTestUtils.cpp b/src/gpu/GrTestUtils.cpp index 163fb56389..0bb4044eaa 100644 --- a/src/gpu/GrTestUtils.cpp +++ b/src/gpu/GrTestUtils.cpp @@ -12,9 +12,9 @@ #ifdef GR_TEST_UTILS -namespace GrTest { -const SkMatrix& TestMatrix(SkRandom* random) { +static const SkMatrix& test_matrix(SkRandom* random, bool includePerspective) { static SkMatrix gMatrices[5]; + static const int kPerspectiveCount = 1; static bool gOnce; if (!gOnce) { gOnce = true; @@ -24,13 +24,24 @@ const SkMatrix& TestMatrix(SkRandom* random) { gMatrices[3].setRotate(SkIntToScalar(185)); gMatrices[3].postTranslate(SkIntToScalar(66), SkIntToScalar(-33)); gMatrices[3].postScale(SkIntToScalar(2), SK_ScalarHalf); + + // Perspective matrices gMatrices[4].setRotate(SkIntToScalar(215)); gMatrices[4].set(SkMatrix::kMPersp0, 0.00013f); gMatrices[4].set(SkMatrix::kMPersp1, -0.000039f); } - return gMatrices[random->nextULessThan(static_cast(SK_ARRAY_COUNT(gMatrices)))]; + + uint32_t count = static_cast(SK_ARRAY_COUNT(gMatrices)); + if (includePerspective) { + return gMatrices[random->nextULessThan(count)]; + } else { + return gMatrices[random->nextULessThan(count - kPerspectiveCount)]; + } } +namespace GrTest { +const SkMatrix& TestMatrix(SkRandom* random) { return test_matrix(random, true); } + const SkMatrix& TestMatrixPreservesRightAngles(SkRandom* random) { static SkMatrix gMatrices[5]; static bool gOnce; @@ -83,6 +94,8 @@ const SkMatrix& TestMatrixRectStaysRect(SkRandom* random) { return gMatrices[random->nextULessThan(static_cast(SK_ARRAY_COUNT(gMatrices)))]; } +const SkMatrix& TestMatrixInvertible(SkRandom* random) { return test_matrix(random, false); } + const SkRect& TestRect(SkRandom* random) { static SkRect gRects[7]; static bool gOnce; -- cgit v1.2.3