aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/sksg/SkSGNode.h
diff options
context:
space:
mode:
Diffstat (limited to 'experimental/sksg/SkSGNode.h')
-rw-r--r--experimental/sksg/SkSGNode.h11
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*);