diff options
author | Daniel Norman <danielnorman@google.com> | 2021-02-08 11:11:18 -0800 |
---|---|---|
committer | Daniel Norman <danielnorman@google.com> | 2021-02-17 08:39:59 -0800 |
commit | 337095f9d277c566cb888bc3adbac16576f1ae70 (patch) | |
tree | 8818a5cd44fdfa89f7ef4d8570dbc67239e087dd /libs/hwui/pipeline/skia/LayerDrawable.cpp | |
parent | 80b7ed3f7373212a33fe42af8a7b7fc0ebcb187c (diff) | |
parent | a66768631e6f47e1f7ffcf4ec86f96d6e8f35282 (diff) |
Merge SP1A.210208.001
Change-Id: I7d4929024872b369444e276a60ded06e37b1fefb
Diffstat (limited to 'libs/hwui/pipeline/skia/LayerDrawable.cpp')
-rw-r--r-- | libs/hwui/pipeline/skia/LayerDrawable.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libs/hwui/pipeline/skia/LayerDrawable.cpp b/libs/hwui/pipeline/skia/LayerDrawable.cpp index f95f347cffaf..34df5ddbb210 100644 --- a/libs/hwui/pipeline/skia/LayerDrawable.cpp +++ b/libs/hwui/pipeline/skia/LayerDrawable.cpp @@ -141,18 +141,20 @@ bool LayerDrawable::DrawLayer(GrRecordingContext* context, // then use nearest neighbor, otherwise use bilerp sampling. // Skia TextureOp has the above logic build-in, but not NonAAFillRectOp. TextureOp works // only for SrcOver blending and without color filter (readback uses Src blending). + SkSamplingOptions sampling(SkFilterMode::kNearest); if (layer->getForceFilter() || shouldFilterRect(totalMatrix, skiaSrcRect, skiaDestRect)) { - paint.setFilterQuality(kLow_SkFilterQuality); + sampling = SkSamplingOptions(SkFilterMode::kLinear); } - canvas->drawImageRect(layerImage.get(), skiaSrcRect, skiaDestRect, &paint, + canvas->drawImageRect(layerImage.get(), skiaSrcRect, skiaDestRect, sampling, &paint, SkCanvas::kFast_SrcRectConstraint); } else { SkRect imageRect = SkRect::MakeIWH(layerImage->width(), layerImage->height()); + SkSamplingOptions sampling(SkFilterMode::kNearest); if (layer->getForceFilter() || shouldFilterRect(totalMatrix, imageRect, imageRect)) { - paint.setFilterQuality(kLow_SkFilterQuality); + sampling = SkSamplingOptions(SkFilterMode::kLinear); } - canvas->drawImage(layerImage.get(), 0, 0, &paint); + canvas->drawImage(layerImage.get(), 0, 0, sampling, &paint); } // restore the original matrix if (nonIdentityMatrix) { |