Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Member Functions | List of all members
sksg::LayerEffect Class Referencefinal

#include <SkSGRenderEffect.h>

Inheritance diagram for sksg::LayerEffect:
sksg::EffectNode sksg::RenderNode sksg::Node SkRefCnt SkRefCntBase

Public Member Functions

 ~LayerEffect () override
 
- 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
 

Static Public Member Functions

static sk_sp< LayerEffectMake (sk_sp< RenderNode > child, SkBlendMode mode=SkBlendMode::kSrcOver)
 

Private Member Functions

void onRender (SkCanvas *, const RenderContext *) const override
 

Additional Inherited Members

- Protected Types inherited from sksg::Node
enum  InvalTraits { kBubbleDamage_Trait = 1 << 0 , kOverrideDamage_Trait = 1 << 1 }
 
- Protected Member Functions inherited from sksg::EffectNode
 EffectNode (sk_sp< RenderNode >, uint32_t inval_traits=0)
 
 ~EffectNode () 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 > &)
 

Detailed Description

Definition at line 262 of file SkSGRenderEffect.h.

Constructor & Destructor Documentation

◆ ~LayerEffect()

sksg::LayerEffect::~LayerEffect ( )
overridedefault

Member Function Documentation

◆ Make()

sk_sp< LayerEffect > sksg::LayerEffect::Make ( sk_sp< RenderNode child,
SkBlendMode  mode = SkBlendMode::kSrcOver 
)
static

Definition at line 221 of file SkSGRenderEffect.cpp.

221 {
222 return child ? sk_sp<LayerEffect>(new LayerEffect(std::move(child), mode))
223 : nullptr;
224}

◆ onRender()

void sksg::LayerEffect::onRender ( SkCanvas canvas,
const RenderContext ctx 
) const
overrideprivatevirtual

Reimplemented from sksg::EffectNode.

Definition at line 232 of file SkSGRenderEffect.cpp.

232 {
233 SkAutoCanvasRestore acr(canvas, false);
234
235 // Commit any potential pending paint effects to their own layer.
236 const auto local_ctx = ScopedRenderContext(canvas, ctx).setIsolation(this->bounds(),
237 canvas->getTotalMatrix(),
238 true);
239
240 SkPaint layer_paint;
241 if (ctx) {
242 // Apply all optional context overrides upfront.
243 ctx->modulatePaint(canvas->getTotalMatrix(), &layer_paint);
244 }
245 layer_paint.setBlendMode(fMode);
246
247 canvas->saveLayer(nullptr, &layer_paint);
248
249 this->INHERITED::onRender(canvas, nullptr);
250}
int saveLayer(const SkRect *bounds, const SkPaint *paint)
Definition SkCanvas.cpp:500
SkMatrix getTotalMatrix() const
void setBlendMode(SkBlendMode mode)
Definition SkPaint.cpp:151
void onRender(SkCanvas *, const RenderContext *) const override
const SkRect & bounds() const
Definition SkSGNode.h:55

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