aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2017-01-20 11:45:01 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-01-20 17:43:27 +0000
commitabddea0d8c05103dfb3ea63744f178b4ef4075c9 (patch)
tree6eda3c03e81f7aca62a876f3e88f6a2c43566aaf /src
parentd2eb581ebc8f8009e80cccccd74d5b341ef5bd5b (diff)
Just clamp to limit-epsilon.
I think the -0.5f was an implementation detail of Herb's bilerp that we don't need here. It happened to also be clamping us to something less than limit (limit-0.5), so we do need to replace that with a little nudge to keep us on tile. Change-Id: I4ebd32e0ad38c724a17dc8bc35d9ea228eeeca32 Reviewed-on: https://skia-review.googlesource.com/7338 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'src')
-rw-r--r--src/effects/gradients/SkLinearGradient.cpp5
-rw-r--r--src/opts/SkRasterPipeline_opts.h2
2 files changed, 2 insertions, 5 deletions
diff --git a/src/effects/gradients/SkLinearGradient.cpp b/src/effects/gradients/SkLinearGradient.cpp
index 91c0e20955..aab1ac787a 100644
--- a/src/effects/gradients/SkLinearGradient.cpp
+++ b/src/effects/gradients/SkLinearGradient.cpp
@@ -129,10 +129,7 @@ bool SkLinearGradient::onAppendStages(SkRasterPipeline* p, SkColorSpace* cs, SkA
auto* limit = alloc->make<float>(1.0f);
switch (fTileMode) {
- case kClamp_TileMode:
- *limit += 0.5f; // why is clamp_x offsetting its limit?
- p->append(SkRasterPipeline::clamp_x, limit);
- break;
+ case kClamp_TileMode: p->append(SkRasterPipeline:: clamp_x, limit); break;
case kMirror_TileMode: p->append(SkRasterPipeline::mirror_x, limit); break;
case kRepeat_TileMode: p->append(SkRasterPipeline::repeat_x, limit); break;
}
diff --git a/src/opts/SkRasterPipeline_opts.h b/src/opts/SkRasterPipeline_opts.h
index 2376c10e35..aa66d73034 100644
--- a/src/opts/SkRasterPipeline_opts.h
+++ b/src/opts/SkRasterPipeline_opts.h
@@ -872,7 +872,7 @@ SI SkNf assert_in_tile(const SkNf& v, float limit) {
}
SI SkNf clamp(const SkNf& v, float limit) {
- SkNf result = SkNf::Max(0, SkNf::Min(v, limit - 0.5f));
+ SkNf result = SkNf::Max(0, SkNf::Min(v, nextafterf(limit, 0)));
return assert_in_tile(result, limit);
}
SI SkNf repeat(const SkNf& v, float limit) {