[4fLinearGradient] Avoid NaNs for degenerate perspectives
authorFlorin Malita <fmalita@chromium.org>
Wed, 8 Feb 2017 22:03:56 +0000 (17:03 -0500)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Thu, 9 Feb 2017 14:06:00 +0000 (14:06 +0000)
BUG=skia:6211

Change-Id: I92148497b29860b3844fe35c2985070a197e4085
Reviewed-on: https://skia-review.googlesource.com/8229
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
src/effects/gradients/Sk4fLinearGradient.cpp

index ba4d3c6..4953ce2 100644 (file)
@@ -465,7 +465,9 @@ LinearGradient4fContext::mapTs(int x, int y, SkScalar ts[], int count) const {
     } else {
         for (int i = 0; i < count; ++i) {
             fDstToPosProc(fDstToPos, sx, sy, &pt);
-            ts[i] = pt.x();
+            // Perspective may yield NaN values.
+            // Short of a better idea, drop to 0.
+            ts[i] = SkScalarIsNaN(pt.x()) ? 0 : pt.x();
             sx += SK_Scalar1;
         }
     }