From 620cc248517a509040d3f94f29710edf3a151c5b Mon Sep 17 00:00:00 2001 From: Stephen White Date: Tue, 22 Aug 2017 13:41:05 -0400 Subject: GrTessellator: when sanitizing contours, remove non-finite points. NaNs can't be correctly sorted. Bug: 757650 Change-Id: Id1ca2fe1d1de7884da2a64ceef9491b1da7e8e77 Reviewed-on: https://skia-review.googlesource.com/37220 Reviewed-by: Brian Salomon Commit-Queue: Stephen White --- tests/TessellatingPathRendererTests.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'tests/TessellatingPathRendererTests.cpp') diff --git a/tests/TessellatingPathRendererTests.cpp b/tests/TessellatingPathRendererTests.cpp index dbb328e3e3..786978118b 100644 --- a/tests/TessellatingPathRendererTests.cpp +++ b/tests/TessellatingPathRendererTests.cpp @@ -362,6 +362,17 @@ static SkPath create_path_23() { return path; } +// A path which results in infs and nans when conics are converted to quads. +static SkPath create_path_24() { + SkPath path; + path.moveTo(-2.20883e+37f, -1.02892e+37f); + path.conicTo(-2.00958e+38f, -9.36107e+37f, -1.7887e+38f, -8.33215e+37f, 0.707107f); + path.conicTo(-1.56782e+38f, -7.30323e+37f, 2.20883e+37f, 1.02892e+37f, 0.707107f); + path.conicTo(2.00958e+38f, 9.36107e+37f, 1.7887e+38f, 8.33215e+37f, 0.707107f); + path.conicTo(1.56782e+38f, 7.30323e+37f, -2.20883e+37f, -1.02892e+37f, 0.707107f); + return path; +} + static std::unique_ptr create_linear_gradient_processor(GrContext* ctx) { SkPoint pts[2] = { {0, 0}, {1, 1} }; SkColor colors[2] = { SK_ColorGREEN, SK_ColorBLUE }; @@ -443,5 +454,6 @@ DEF_GPUTEST_FOR_ALL_CONTEXTS(TessellatingPathRendererTests, reporter, ctxInfo) { test_path(ctx, rtc.get(), create_path_21(), SkMatrix(), GrAAType::kCoverage); test_path(ctx, rtc.get(), create_path_22()); test_path(ctx, rtc.get(), create_path_23()); + test_path(ctx, rtc.get(), create_path_24()); } #endif -- cgit v1.2.3