[4fGradient] Fix degenerate vertical gradient assert
authorFlorin Malita <fmalita@chromium.org>
Wed, 8 Feb 2017 20:35:42 +0000 (15:35 -0500)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Wed, 8 Feb 2017 21:23:54 +0000 (21:23 +0000)
commit69d8d66eae7688f4c5485428e06866a274af0c0e
tree0facf05debaf3ce82375fe06678ae4e5d0979e40
parent73fe7b07e6391da81dfc48d600d7b3141be1f471
[4fGradient] Fix degenerate vertical gradient assert

For vertical gradients, we rely on LinearIntervalProcessor to yield a
fAdvX == +inf, thanks to division by dx (== +/-0).

But certain degenerate values may cause the numerator to also collapse
to 0, resulting in fAdvX == NaN.

Instead or relying on float semantics, pin fAdvX to +inf explicitly for
vertical gradients.

BUG=skia:5912

Change-Id: Ia8007b99802a6b1e0b22f5618a0ca8959b0cfbb2
Reviewed-on: https://skia-review.googlesource.com/8223
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
src/effects/gradients/Sk4fLinearGradient.cpp