summaryrefslogtreecommitdiff
path: root/libs/hwui/jni/BitmapFactory.cpp
diff options
context:
space:
mode:
authorDaniel Norman <danielnorman@google.com>2021-02-08 11:11:18 -0800
committerDaniel Norman <danielnorman@google.com>2021-02-17 08:39:59 -0800
commit337095f9d277c566cb888bc3adbac16576f1ae70 (patch)
tree8818a5cd44fdfa89f7ef4d8570dbc67239e087dd /libs/hwui/jni/BitmapFactory.cpp
parent80b7ed3f7373212a33fe42af8a7b7fc0ebcb187c (diff)
parenta66768631e6f47e1f7ffcf4ec86f96d6e8f35282 (diff)
Merge SP1A.210208.001
Change-Id: I7d4929024872b369444e276a60ded06e37b1fefb
Diffstat (limited to 'libs/hwui/jni/BitmapFactory.cpp')
-rw-r--r--libs/hwui/jni/BitmapFactory.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/libs/hwui/jni/BitmapFactory.cpp b/libs/hwui/jni/BitmapFactory.cpp
index cf02051831c6..4e9daa4b0c16 100644
--- a/libs/hwui/jni/BitmapFactory.cpp
+++ b/libs/hwui/jni/BitmapFactory.cpp
@@ -457,11 +457,12 @@ static jobject doDecode(JNIEnv* env, std::unique_ptr<SkStreamRewindable> stream,
// outputBitmap. Otherwise we would blend by default, which is not
// what we want.
paint.setBlendMode(SkBlendMode::kSrc);
- paint.setFilterQuality(kLow_SkFilterQuality); // bilinear filtering
SkCanvas canvas(outputBitmap, SkCanvas::ColorBehavior::kLegacy);
canvas.scale(scaleX, scaleY);
- canvas.drawBitmap(decodingBitmap, 0.0f, 0.0f, &paint);
+ decodingBitmap.setImmutable(); // so .asImage() doesn't make a copy
+ canvas.drawImage(decodingBitmap.asImage(), 0.0f, 0.0f,
+ SkSamplingOptions(SkFilterMode::kLinear), &paint);
} else {
outputBitmap.swap(decodingBitmap);
}