summaryrefslogtreecommitdiff
path: root/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp
diff options
context:
space:
mode:
authorBen Wagner <bungeman@google.com>2019-04-15 11:59:33 -0400
committerBen Wagner <bungeman@google.com>2019-04-15 14:08:01 -0400
commit62b389411be2d9233eac58cd856bfcb643db0684 (patch)
tree632e4b02926610435ab78ce1872281ad6cf1a8be /libs/hwui/pipeline/skia/RenderNodeDrawable.cpp
parentb302e72787b0372507a54960168ff4fc2c369ff6 (diff)
Move AlphaFilterCanvas to new API.
The AlphaFilterCanvas is only used when it will make a copy of the paint anyway. Remove the need to keep track of copy on write semantics when they are never used. Test: refactoring CL. Existing unit tests still pass. Change-Id: I20c0d618db7d1a76756bd4c16fe686ce7fb44f38
Diffstat (limited to 'libs/hwui/pipeline/skia/RenderNodeDrawable.cpp')
-rw-r--r--libs/hwui/pipeline/skia/RenderNodeDrawable.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp b/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp
index 1bd30eb5371b..e65fe3a3b811 100644
--- a/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp
+++ b/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp
@@ -187,17 +187,13 @@ public:
AlphaFilterCanvas(SkCanvas* canvas, float alpha) : SkPaintFilterCanvas(canvas), mAlpha(alpha) {}
protected:
- bool onFilter(SkTCopyOnFirstWrite<SkPaint>* paint, Type t) const override {
- std::optional<SkPaint> defaultPaint;
- if (!*paint) {
- paint->init(defaultPaint.emplace());
- }
- paint->writable()->setAlpha((uint8_t)(*paint)->getAlpha() * mAlpha);
+ bool onFilter(SkPaint& paint) const override {
+ paint.setAlpha((uint8_t)paint.getAlpha() * mAlpha);
return true;
}
void onDrawDrawable(SkDrawable* drawable, const SkMatrix* matrix) override {
// We unroll the drawable using "this" canvas, so that draw calls contained inside will
- // get their alpha applied. THe default SkPaintFilterCanvas::onDrawDrawable does not unroll.
+ // get their alpha applied. The default SkPaintFilterCanvas::onDrawDrawable does not unroll.
drawable->draw(this, matrix);
}