summaryrefslogtreecommitdiff
path: root/libs/hwui/jni/BitmapFactory.cpp
diff options
context:
space:
mode:
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);
}