Loading libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp +0 −25 Original line number Diff line number Diff line Loading @@ -148,31 +148,6 @@ void SkiaRecordingCanvas::drawVectorDrawable(VectorDrawableRoot* tree) { // Recording Canvas draw operations: Bitmaps // ---------------------------------------------------------------------------- inline static const SkPaint* bitmapPaint(const SkPaint* origPaint, SkPaint* tmpPaint, sk_sp<SkColorFilter> colorSpaceFilter) { if ((origPaint && origPaint->isAntiAlias()) || colorSpaceFilter) { if (origPaint) { *tmpPaint = *origPaint; } 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); return tmpPaint; } else { return origPaint; } } void SkiaRecordingCanvas::drawBitmap(Bitmap& bitmap, float left, float top, const SkPaint* paint) { SkPaint tmpPaint; Loading libs/hwui/pipeline/skia/SkiaRecordingCanvas.h +39 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,45 @@ private: * @param height used to calculate recording bounds. */ void initDisplayList(uirenderer::RenderNode* renderNode, int width, int height); inline static const SkPaint* bitmapPaint(const SkPaint* origPaint, SkPaint* tmpPaint, sk_sp<SkColorFilter> colorSpaceFilter) { bool fixBlending = false; bool fixAA = false; if (origPaint) { // kClear blend mode is drawn as kDstOut on HW for compatibility with Android O and // older. fixBlending = sApiLevel <= 27 && origPaint->getBlendMode() == SkBlendMode::kClear; fixAA = origPaint->isAntiAlias(); } if (fixBlending || fixAA || colorSpaceFilter) { if (origPaint) { *tmpPaint = *origPaint; } if (fixBlending) { tmpPaint->setBlendMode(SkBlendMode::kDstOut); } 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); return tmpPaint; } else { return origPaint; } } }; }; // namespace skiapipeline Loading Loading
libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp +0 −25 Original line number Diff line number Diff line Loading @@ -148,31 +148,6 @@ void SkiaRecordingCanvas::drawVectorDrawable(VectorDrawableRoot* tree) { // Recording Canvas draw operations: Bitmaps // ---------------------------------------------------------------------------- inline static const SkPaint* bitmapPaint(const SkPaint* origPaint, SkPaint* tmpPaint, sk_sp<SkColorFilter> colorSpaceFilter) { if ((origPaint && origPaint->isAntiAlias()) || colorSpaceFilter) { if (origPaint) { *tmpPaint = *origPaint; } 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); return tmpPaint; } else { return origPaint; } } void SkiaRecordingCanvas::drawBitmap(Bitmap& bitmap, float left, float top, const SkPaint* paint) { SkPaint tmpPaint; Loading
libs/hwui/pipeline/skia/SkiaRecordingCanvas.h +39 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,45 @@ private: * @param height used to calculate recording bounds. */ void initDisplayList(uirenderer::RenderNode* renderNode, int width, int height); inline static const SkPaint* bitmapPaint(const SkPaint* origPaint, SkPaint* tmpPaint, sk_sp<SkColorFilter> colorSpaceFilter) { bool fixBlending = false; bool fixAA = false; if (origPaint) { // kClear blend mode is drawn as kDstOut on HW for compatibility with Android O and // older. fixBlending = sApiLevel <= 27 && origPaint->getBlendMode() == SkBlendMode::kClear; fixAA = origPaint->isAntiAlias(); } if (fixBlending || fixAA || colorSpaceFilter) { if (origPaint) { *tmpPaint = *origPaint; } if (fixBlending) { tmpPaint->setBlendMode(SkBlendMode::kDstOut); } 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); return tmpPaint; } else { return origPaint; } } }; }; // namespace skiapipeline Loading