diff options
author | 2016-11-17 14:04:22 -0500 | |
---|---|---|
committer | 2016-11-17 20:49:25 +0000 | |
commit | 7776029b54cc8c21fd6e0c1aa5a3b30e8bb52939 (patch) | |
tree | fef14d70feee546b0d3f758c958a6616ce164297 /src/image/SkImageShader.cpp | |
parent | b4460886905cc3b86987c6366a9721de77101111 (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.cpp | 7 |
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; |