diff options
| author | 2018-08-21 18:42:02 +0000 | |
|---|---|---|
| committer | 2018-08-21 18:42:02 +0000 | |
| commit | fc305269eeb26e4bc1bcdcfb581b63977ea2625f (patch) | |
| tree | 45d34482242f2f7937fe1621aa076992c07e8b3d | |
| parent | b3d3dd2173cb0d292f3daffd6755705e39890c6c (diff) | |
| parent | 1d155336a89abb51f9f86f735750eac4c13ac081 (diff) | |
Merge "Remove use of SkTLazy."
| -rw-r--r-- | libs/hwui/hwui/AnimatedImageDrawable.cpp | 19 | ||||
| -rw-r--r-- | libs/hwui/pipeline/skia/RenderNodeDrawable.cpp | 6 |
2 files changed, 14 insertions, 11 deletions
diff --git a/libs/hwui/hwui/AnimatedImageDrawable.cpp b/libs/hwui/hwui/AnimatedImageDrawable.cpp index 007961a6bedb..8d4e7e09b458 100644 --- a/libs/hwui/hwui/AnimatedImageDrawable.cpp +++ b/libs/hwui/hwui/AnimatedImageDrawable.cpp @@ -21,7 +21,8 @@ #include <SkPicture.h> #include <SkRefCnt.h> -#include <SkTLazy.h> + +#include <optional> namespace android { @@ -126,13 +127,13 @@ AnimatedImageDrawable::Snapshot AnimatedImageDrawable::reset() { // Only called on the RenderThread. void AnimatedImageDrawable::onDraw(SkCanvas* canvas) { - SkTLazy<SkPaint> lazyPaint; + std::optional<SkPaint> lazyPaint; SkAutoCanvasRestore acr(canvas, false); if (mProperties.mAlpha != SK_AlphaOPAQUE || mProperties.mColorFilter.get()) { - lazyPaint.init(); - lazyPaint.get()->setAlpha(mProperties.mAlpha); - lazyPaint.get()->setColorFilter(mProperties.mColorFilter); - lazyPaint.get()->setFilterQuality(kLow_SkFilterQuality); + lazyPaint.emplace(); + lazyPaint->setAlpha(mProperties.mAlpha); + lazyPaint->setColorFilter(mProperties.mColorFilter); + lazyPaint->setFilterQuality(kLow_SkFilterQuality); } if (mProperties.mMirrored) { canvas->save(); @@ -147,8 +148,8 @@ void AnimatedImageDrawable::onDraw(SkCanvas* canvas) { if (drawDirectly) { // The image is not animating, and never was. Draw directly from // mSkAnimatedImage. - if (lazyPaint.isValid()) { - canvas->saveLayer(mSkAnimatedImage->getBounds(), lazyPaint.get()); + if (lazyPaint) { + canvas->saveLayer(mSkAnimatedImage->getBounds(), &*lazyPaint); } std::unique_lock lock{mImageLock}; @@ -193,7 +194,7 @@ void AnimatedImageDrawable::onDraw(SkCanvas* canvas) { if (!drawDirectly) { // No other thread will modify mCurrentSnap so this should be safe to // use without locking. - canvas->drawPicture(mSnapshot.mPic, nullptr, lazyPaint.getMaybeNull()); + canvas->drawPicture(mSnapshot.mPic, nullptr, lazyPaint ? &*lazyPaint : nullptr); } if (finalFrame) { diff --git a/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp b/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp index 85fdc103b1e3..ea14d11b7b3e 100644 --- a/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp +++ b/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp @@ -21,6 +21,8 @@ #include "SkiaPipeline.h" #include "utils/TraceUtils.h" +#include <optional> + namespace android { namespace uirenderer { namespace skiapipeline { @@ -171,9 +173,9 @@ public: protected: bool onFilter(SkTCopyOnFirstWrite<SkPaint>* paint, Type t) const override { - SkTLazy<SkPaint> defaultPaint; + std::optional<SkPaint> defaultPaint; if (!*paint) { - paint->init(*defaultPaint.init()); + paint->init(defaultPaint.emplace()); } paint->writable()->setAlpha((uint8_t)(*paint)->getAlpha() * mAlpha); return true; |