Skia
2D Graphics Library
|
Base class for all scene graph nodes. More...
#include <SkSGNode.h>
Public Member Functions | |
const SkRect & | revalidate (InvalidationController *, const SkMatrix &) |
void | invalidate (bool damage=true) |
bool | unique () const |
May return true if the caller is the only owner. More... | |
void | ref () const |
Increment the reference count. More... | |
void | unref () const |
Decrement the reference count. More... | |
Protected Types | |
enum | InvalTraits { kBubbleDamage_Trait = 1 << 0 , kOverrideDamage_Trait = 1 << 1 } |
Protected Member Functions | |
Node (uint32_t invalTraits) | |
~Node () override | |
const SkRect & | bounds () const |
bool | hasInval () const |
virtual SkRect | onRevalidate (InvalidationController *, const SkMatrix &ctm)=0 |
void | observeInval (const sk_sp< Node > &) |
void | unobserveInval (const sk_sp< Node > &) |
Friends | |
class | NodePriv |
class | RenderNode |
Base class for all scene graph nodes.
Handles ingress edge management for the DAG (i.e. node -> "parent" node mapping), and invalidation.
Note: egress edges are only implemented/supported in container subclasses (e.g. Group, Effect, Draw).
|
protected |
|
explicitprotected |
|
overrideprotected |
|
inlineprotected |
|
inlineprotected |
void sksg::Node::invalidate | ( | bool | damage = true | ) |
|
protectedpure virtual |
Implemented in sksg::TransformEffect, sksg::Matrix< T >, sksg::Text, sksg::ImageFilterEffect, sksg::ShaderEffect, sksg::RRect, sksg::Rect, sksg::Plane, sksg::Path, sksg::ShaderPaint, sksg::Color, sksg::OpacityEffect, sksg::Merge, sksg::MaskEffect, sksg::Image, sksg::Group, sksg::EffectNode, sksg::Draw, sksg::ClipEffect, sksg::ImageFilter, sksg::Shader, sksg::GeometryEffect, and sksg::ColorFilter.
|
inlineinherited |
Increment the reference count.
Must be balanced by a call to unref().
const SkRect& sksg::Node::revalidate | ( | InvalidationController * | , |
const SkMatrix & | |||
) |
|
inlineinherited |
May return true if the caller is the only owner.
Ensures that all previous owner's actions are complete.
|
inlineinherited |
Decrement the reference count.
If the reference count is 1 before the decrement, then delete the object. Note that if this is the case, then the object needs to have been allocated via new, and not on the stack.
|
friend |
|
friend |
Node* sksg::Node::fInvalObserver |
std::vector<Node*>* sksg::Node::fInvalObserverArray |