[4fGradient] Relax interval checks
authorFlorin Malita <fmalita@chromium.org>
Thu, 9 Feb 2017 18:46:55 +0000 (13:46 -0500)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Thu, 9 Feb 2017 19:21:35 +0000 (19:21 +0000)
commite659c7f36fef20a6b1605c6b29d1642b4f1f01b5
tree97ed74473be4a727861c3a955a41397879a5ff4d
parentcf1bff945b70bdcbe9243c22760d4e1fee4523cb
[4fGradient] Relax interval checks

We're currently considering intervals open at one extremity, in order to
ensure that a given value is always contained in a single interval.

This creates problems with synthetic clamp intervals [1, +inf), for
t == +inf (no interval can contain it).

Treat intervals as closed at both extremities instead.  This introduces
some ambiguitiy for overlapping values (contained in both adjacent
intervals), but solves the more serious problem above.

BUG=skia:6213

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