Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Friends | List of all members
sksg::GeometryNode Class Referenceabstract

#include <SkSGGeometryNode.h>

Inheritance diagram for sksg::GeometryNode:
sksg::Node SkRefCnt SkRefCntBase sksg::GeometryEffect sksg::Merge sksg::Path sksg::Plane sksg::RRect sksg::Rect sksg::Text sksg::DashEffect sksg::GeometryTransform sksg::OffsetEffect sksg::RoundEffect sksg::TrimEffect

Public Member Functions

void clip (SkCanvas *, bool antiAlias) const
 
void draw (SkCanvas *, const SkPaint &) const
 
bool contains (const SkPoint &) const
 
SkPath asPath () const
 
- Public Member Functions inherited from sksg::Node
const SkRectrevalidate (InvalidationController *, const SkMatrix &)
 
void invalidate (bool damage=true)
 
- Public Member Functions inherited from SkRefCntBase
 SkRefCntBase ()
 
virtual ~SkRefCntBase ()
 
bool unique () const
 
void ref () const
 
void unref () const
 

Protected Member Functions

 GeometryNode ()
 
virtual void onClip (SkCanvas *, bool antiAlias) const =0
 
virtual void onDraw (SkCanvas *, const SkPaint &) const =0
 
virtual bool onContains (const SkPoint &) const =0
 
virtual SkPath onAsPath () const =0
 
- Protected Member Functions inherited from sksg::Node
 Node (uint32_t invalTraits)
 
 ~Node () override
 
const SkRectbounds () 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 Draw
 

Additional Inherited Members

- Protected Types inherited from sksg::Node
enum  InvalTraits { kBubbleDamage_Trait = 1 << 0 , kOverrideDamage_Trait = 1 << 1 }
 

Detailed Description

Base class for nodes which provide 'geometry' (as opposed to paint) for drawing.

Think SkRect, SkPath, etc.

Definition at line 26 of file SkSGGeometryNode.h.

Constructor & Destructor Documentation

◆ GeometryNode()

sksg::GeometryNode::GeometryNode ( )
protected

Definition at line 18 of file SkSGGeometryNode.cpp.

18: INHERITED(kBubbleDamage_Trait) {}
@ kBubbleDamage_Trait
Definition SkSGNode.h:46

Member Function Documentation

◆ asPath()

SkPath sksg::GeometryNode::asPath ( ) const

Definition at line 35 of file SkSGGeometryNode.cpp.

35 {
36 SkASSERT(!this->hasInval());
37 return this->onAsPath();
38}
#define SkASSERT(cond)
Definition SkAssert.h:116
virtual SkPath onAsPath() const =0
bool hasInval() const
Definition SkSGNode.h:60

◆ clip()

void sksg::GeometryNode::clip ( SkCanvas canvas,
bool  antiAlias 
) const

Definition at line 20 of file SkSGGeometryNode.cpp.

20 {
21 SkASSERT(!this->hasInval());
22 this->onClip(canvas, aa);
23}
virtual void onClip(SkCanvas *, bool antiAlias) const =0

◆ contains()

bool sksg::GeometryNode::contains ( const SkPoint p) const

Definition at line 30 of file SkSGGeometryNode.cpp.

30 {
31 SkASSERT(!this->hasInval());
32 return this->bounds().contains(p.x(), p.y()) ? this->onContains(p) : false;
33}
virtual bool onContains(const SkPoint &) const =0
const SkRect & bounds() const
Definition SkSGNode.h:55
constexpr float x() const
bool contains(SkScalar x, SkScalar y) const
Definition extension.cpp:19

◆ draw()

void sksg::GeometryNode::draw ( SkCanvas canvas,
const SkPaint paint 
) const

Definition at line 25 of file SkSGGeometryNode.cpp.

25 {
26 SkASSERT(!this->hasInval());
27 this->onDraw(canvas, paint);
28}
virtual void onDraw(SkCanvas *, const SkPaint &) const =0
const Paint & paint

◆ onAsPath()

virtual SkPath sksg::GeometryNode::onAsPath ( ) const
protectedpure virtual

◆ onClip()

virtual void sksg::GeometryNode::onClip ( SkCanvas ,
bool  antiAlias 
) const
protectedpure virtual

◆ onContains()

virtual bool sksg::GeometryNode::onContains ( const SkPoint ) const
protectedpure virtual

◆ onDraw()

virtual void sksg::GeometryNode::onDraw ( SkCanvas ,
const SkPaint  
) const
protectedpure virtual

Friends And Related Symbol Documentation

◆ Draw

friend class Draw
friend

Definition at line 47 of file SkSGGeometryNode.h.


The documentation for this class was generated from the following files: