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

#include <SkSGColorFilter.h>

Inheritance diagram for sksg::ColorFilter:
sksg::EffectNode sksg::RenderNode sksg::Node SkRefCnt SkRefCntBase sksg::GradientColorFilter sksg::ModeColorFilter

Protected Member Functions

 ColorFilter (sk_sp< RenderNode >)
 
void onRender (SkCanvas *, const RenderContext *) const final
 
const RenderNodeonNodeAt (const SkPoint &) const final
 
SkRect onRevalidate (InvalidationController *, const SkMatrix &) final
 
virtual sk_sp< SkColorFilteronRevalidateFilter ()=0
 
- Protected Member Functions inherited from sksg::EffectNode
 EffectNode (sk_sp< RenderNode >, uint32_t inval_traits=0)
 
 ~EffectNode () override
 
void onRender (SkCanvas *, const RenderContext *) const override
 
const RenderNodeonNodeAt (const SkPoint &) const override
 
SkRect onRevalidate (InvalidationController *, const SkMatrix &) override
 
const sk_sp< RenderNode > & getChild () const
 
- Protected Member Functions inherited from sksg::RenderNode
 RenderNode (uint32_t inval_traits=0)
 
- Protected Member Functions inherited from sksg::Node
 Node (uint32_t invalTraits)
 
 ~Node () override
 
const SkRectbounds () const
 
bool hasInval () const
 
void observeInval (const sk_sp< Node > &)
 
void unobserveInval (const sk_sp< Node > &)
 

Additional Inherited Members

- Public Member Functions inherited from sksg::RenderNode
void render (SkCanvas *, const RenderContext *=nullptr) const
 
const RenderNodenodeAt (const SkPoint &point) const
 
bool isVisible () const
 
void setVisible (bool)
 
- 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 Types inherited from sksg::Node
enum  InvalTraits { kBubbleDamage_Trait = 1 << 0 , kOverrideDamage_Trait = 1 << 1 }
 

Detailed Description

Base class for nodes which apply a color filter when rendering their descendants.

Definition at line 33 of file SkSGColorFilter.h.

Constructor & Destructor Documentation

◆ ColorFilter()

sksg::ColorFilter::ColorFilter ( sk_sp< RenderNode child)
explicitprotected

Definition at line 29 of file SkSGColorFilter.cpp.

30 : INHERITED(std::move(child)) {}

Member Function Documentation

◆ onNodeAt()

const RenderNode * sksg::ColorFilter::onNodeAt ( const SkPoint p) const
finalprotectedvirtual

Implements sksg::RenderNode.

Definition at line 38 of file SkSGColorFilter.cpp.

38 {
39 // TODO: we likely need to do something more sophisticated than delegate to descendants here.
40 return this->INHERITED::onNodeAt(p);
41}
const RenderNode * onNodeAt(const SkPoint &) const override

◆ onRender()

void sksg::ColorFilter::onRender ( SkCanvas canvas,
const RenderContext ctx 
) const
finalprotectedvirtual

Implements sksg::RenderNode.

Definition at line 32 of file SkSGColorFilter.cpp.

32 {
33 const auto local_ctx = ScopedRenderContext(canvas, ctx).modulateColorFilter(fColorFilter);
34
35 this->INHERITED::onRender(canvas, local_ctx);
36}
void onRender(SkCanvas *, const RenderContext *) const override

◆ onRevalidate()

SkRect sksg::ColorFilter::onRevalidate ( InvalidationController ic,
const SkMatrix ctm 
)
finalprotectedvirtual

Implements sksg::Node.

Definition at line 43 of file SkSGColorFilter.cpp.

43 {
44 SkASSERT(this->hasInval());
45
46 fColorFilter = this->onRevalidateFilter();
47
48 return this->INHERITED::onRevalidate(ic, ctm);
49}
#define SkASSERT(cond)
Definition SkAssert.h:116
virtual sk_sp< SkColorFilter > onRevalidateFilter()=0
SkRect onRevalidate(InvalidationController *, const SkMatrix &) override
bool hasInval() const
Definition SkSGNode.h:60

◆ onRevalidateFilter()

virtual sk_sp< SkColorFilter > sksg::ColorFilter::onRevalidateFilter ( )
protectedpure virtual

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