aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/image/SkImageShader.cpp
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2016-11-17 14:04:22 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-11-17 20:49:25 +0000
commit7776029b54cc8c21fd6e0c1aa5a3b30e8bb52939 (patch)
treefef14d70feee546b0d3f758c958a6616ce164297 /src/image/SkImageShader.cpp
parentb4460886905cc3b86987c6366a9721de77101111 (diff)
Strength reduce bilerp to nearest neighbor when the matrix is integer translate.
BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4967 Change-Id: I986f5695660d198532f5b0b367868ae904de92a1 Reviewed-on: https://skia-review.googlesource.com/4967 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/image/SkImageShader.cpp')
-rw-r--r--src/image/SkImageShader.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/image/SkImageShader.cpp b/src/image/SkImageShader.cpp
index 152007d6e8..da7bb2fb96 100644
--- a/src/image/SkImageShader.cpp
+++ b/src/image/SkImageShader.cpp
@@ -300,6 +300,13 @@ bool SkImageShader::onAppendStages(SkRasterPipeline* p, SkColorSpace* dst, SkFal
return false;
}
+ // When the matrix is just an integer translate, bilerp == nearest neighbor.
+ if (matrix.getType() <= SkMatrix::kTranslate_Mask &&
+ matrix.getTranslateX() == (int)matrix.getTranslateX() &&
+ matrix.getTranslateY() == (int)matrix.getTranslateY()) {
+ quality = kNone_SkFilterQuality;
+ }
+
// TODO: bilerp
if (quality != kNone_SkFilterQuality) {
return false;