summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/hwui/VectorDrawable.cpp9
-rw-r--r--libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp5
2 files changed, 6 insertions, 8 deletions
diff --git a/libs/hwui/VectorDrawable.cpp b/libs/hwui/VectorDrawable.cpp
index 402fbadfec22..9f82d0fa3018 100644
--- a/libs/hwui/VectorDrawable.cpp
+++ b/libs/hwui/VectorDrawable.cpp
@@ -474,14 +474,13 @@ SkPaint* Tree::getPaint() {
// Update the given paint with alpha and color filter. Return nullptr if no color filter is
// specified and root alpha is 1. Otherwise, return updated paint.
SkPaint* Tree::updatePaint(SkPaint* outPaint, TreeProperties* prop) {
- if (prop->getRootAlpha() == 1.0f && prop->getColorFilter() == nullptr) {
- return nullptr;
- } else {
+ // HWUI always draws VD with bilinear filtering.
+ outPaint->setFilterQuality(kLow_SkFilterQuality);
+ if (prop->getRootAlpha() < 1.0f || prop->getColorFilter() != nullptr) {
outPaint->setColorFilter(sk_ref_sp(prop->getColorFilter()));
- outPaint->setFilterQuality(kLow_SkFilterQuality);
outPaint->setAlpha(prop->getRootAlpha() * 255);
- return outPaint;
}
+ return outPaint;
}
Bitmap& Tree::getBitmapUpdateIfDirty() {
diff --git a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
index 46e39aa58c6f..b9748afc6cb4 100644
--- a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
+++ b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
@@ -257,9 +257,8 @@ void SkiaRecordingCanvas::drawNinePatch(Bitmap& bitmap, const Res_png_9patch& ch
SkRect dst = SkRect::MakeLTRB(dstLeft, dstTop, dstRight, dstBottom);
PaintCoW filteredPaint(paint);
- // Besides kNone, the other three SkFilterQualities are treated the same. And Android's
- // Java API only supports kLow and kNone anyway.
- if (!filteredPaint || filteredPaint->getFilterQuality() == kNone_SkFilterQuality) {
+ // HWUI always draws 9-patches with bilinear filtering, regardless of what is set in the Paint.
+ if (!filteredPaint || filteredPaint->getFilterQuality() != kLow_SkFilterQuality) {
filteredPaint.writeable().setFilterQuality(kLow_SkFilterQuality);
}
sk_sp<SkColorFilter> colorFilter;