aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/sksg/SkSGPaintNode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'experimental/sksg/SkSGPaintNode.cpp')
-rw-r--r--experimental/sksg/SkSGPaintNode.cpp26
1 files changed, 12 insertions, 14 deletions
diff --git a/experimental/sksg/SkSGPaintNode.cpp b/experimental/sksg/SkSGPaintNode.cpp
index be8edac7c5..146d248b8e 100644
--- a/experimental/sksg/SkSGPaintNode.cpp
+++ b/experimental/sksg/SkSGPaintNode.cpp
@@ -9,7 +9,8 @@
namespace sksg {
-PaintNode::PaintNode() {}
+// Paint nodes don't generate damage on their own, but via their aggregation ancestor Draw nodes.
+PaintNode::PaintNode() : INHERITED(kBubbleDamage_Trait) {}
const SkPaint& PaintNode::makePaint() {
SkASSERT(!this->hasInval());
@@ -17,23 +18,20 @@ const SkPaint& PaintNode::makePaint() {
return fPaint;
}
-Node::RevalidationResult PaintNode::onRevalidate(InvalidationController*, const SkMatrix&) {
+SkRect PaintNode::onRevalidate(InvalidationController*, const SkMatrix&) {
SkASSERT(this->hasInval());
- if (this->hasSelfInval()) {
- fPaint.reset();
- fPaint.setAntiAlias(fAntiAlias);
- fPaint.setStyle(fStyle);
- fPaint.setStrokeWidth(fStrokeWidth);
- fPaint.setStrokeMiter(fStrokeMiter);
- fPaint.setStrokeJoin(fStrokeJoin);
- fPaint.setStrokeCap(fStrokeCap);
+ fPaint.reset();
+ fPaint.setAntiAlias(fAntiAlias);
+ fPaint.setStyle(fStyle);
+ fPaint.setStrokeWidth(fStrokeWidth);
+ fPaint.setStrokeMiter(fStrokeMiter);
+ fPaint.setStrokeJoin(fStrokeJoin);
+ fPaint.setStrokeCap(fStrokeCap);
- this->onApplyToPaint(&fPaint);
- }
+ this->onApplyToPaint(&fPaint);
- // Paints have no bounds and don't contribute to damage.
- return { SkRect::MakeEmpty(), Damage::kBlockSelf };
+ return SkRect::MakeEmpty();
}
} // namespace sksg