diff options
| -rw-r--r-- | libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp index 6657fe852ecc..91b35c281b04 100644 --- a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp +++ b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp @@ -144,22 +144,25 @@ void SkiaRecordingCanvas::drawVectorDrawable(VectorDrawableRoot* tree) { // ---------------------------------------------------------------------------- inline static const SkPaint* bitmapPaint(const SkPaint* origPaint, SkPaint* tmpPaint, - sk_sp<SkColorFilter> colorFilter) { - if ((origPaint && origPaint->isAntiAlias()) || colorFilter) { + sk_sp<SkColorFilter> colorSpaceFilter) { + if ((origPaint && origPaint->isAntiAlias()) || colorSpaceFilter) { if (origPaint) { *tmpPaint = *origPaint; } - sk_sp<SkColorFilter> filter; - if (colorFilter && tmpPaint->getColorFilter()) { - filter = SkColorFilter::MakeComposeFilter(tmpPaint->refColorFilter(), colorFilter); - LOG_ALWAYS_FATAL_IF(!filter); - } else { - filter = colorFilter; + if (colorSpaceFilter) { + if (tmpPaint->getColorFilter()) { + tmpPaint->setColorFilter( + SkColorFilter::MakeComposeFilter(tmpPaint->refColorFilter(), colorSpaceFilter)); + } else { + tmpPaint->setColorFilter(colorSpaceFilter); + } + LOG_ALWAYS_FATAL_IF(!tmpPaint->getColorFilter()); } + + // disabling AA on bitmap draws matches legacy HWUI behavior tmpPaint->setAntiAlias(false); - tmpPaint->setColorFilter(filter); return tmpPaint; } else { return origPaint; |