diff options
Diffstat (limited to 'experimental/sksg/SkSGNode.h')
-rw-r--r-- | experimental/sksg/SkSGNode.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/experimental/sksg/SkSGNode.h b/experimental/sksg/SkSGNode.h index 7758eca4c5..58456cf387 100644 --- a/experimental/sksg/SkSGNode.h +++ b/experimental/sksg/SkSGNode.h @@ -47,7 +47,16 @@ protected: // Dispatched on revalidation. Subclasses are expected to recompute/cache their properties // and return their bounding box in local coordinates. - virtual SkRect onRevalidate(InvalidationController*, const SkMatrix& ctm) = 0; + enum class Damage { + kDefault, // respects the local kInvalSelf_Flag + kForceSelf, // forces self revalidation regardless of kInvalSelf_Flag + kBlockSelf, // blocks self revalidation regardless of kInvalSelf_Flag + }; + struct RevalidationResult { + SkRect fBounds; + Damage fReval; + }; + virtual RevalidationResult onRevalidate(InvalidationController*, const SkMatrix& ctm) = 0; private: void addInvalReceiver(Node*); |