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

#include <dl_op_spy.h>

Inheritance diagram for flutter::DlOpSpy:
flutter::DlOpReceiver flutter::IgnoreAttributeDispatchHelper flutter::IgnoreClipDispatchHelper flutter::IgnoreTransformDispatchHelper

Public Member Functions

bool did_draw ()
 Returns true if any non transparent content has been drawn.
 
- Public Member Functions inherited from flutter::DlOpReceiver
virtual bool PrefersImpellerPaths () const
 
virtual void clipPath (const CacheablePath &cache, ClipOp clip_op, bool is_aa)
 
virtual void drawPath (const CacheablePath &cache)
 
virtual void drawShadow (const CacheablePath &cache, const DlColor color, const SkScalar elevation, bool transparent_occluder, SkScalar dpr)
 
virtual void save (uint32_t total_content_depth)
 
virtual void saveLayer (const SkRect &bounds, const SaveLayerOptions &options, uint32_t total_content_depth, const DlImageFilter *backdrop=nullptr)
 
virtual void saveLayer (const SkRect *bounds, const SaveLayerOptions options, const DlImageFilter *backdrop=nullptr) final
 

Private Member Functions

void setColor (DlColor color) override
 
void setColorSource (const DlColorSource *source) override
 
void save () override
 
void saveLayer (const SkRect &bounds, const SaveLayerOptions options, const DlImageFilter *backdrop) override
 
void restore () override
 
void drawColor (DlColor color, DlBlendMode mode) override
 
void drawPaint () override
 
void drawLine (const SkPoint &p0, const SkPoint &p1) override
 
void drawRect (const SkRect &rect) override
 
void drawOval (const SkRect &bounds) override
 
void drawCircle (const SkPoint &center, SkScalar radius) override
 
void drawRRect (const SkRRect &rrect) override
 
void drawDRRect (const SkRRect &outer, const SkRRect &inner) override
 
void drawPath (const SkPath &path) override
 
void drawArc (const SkRect &oval_bounds, SkScalar start_degrees, SkScalar sweep_degrees, bool use_center) override
 
void drawPoints (PointMode mode, uint32_t count, const SkPoint points[]) override
 
void drawVertices (const DlVertices *vertices, DlBlendMode mode) override
 
void drawImage (const sk_sp< DlImage > image, const SkPoint point, DlImageSampling sampling, bool render_with_attributes) override
 
void drawImageRect (const sk_sp< DlImage > image, const SkRect &src, const SkRect &dst, DlImageSampling sampling, bool render_with_attributes, SrcRectConstraint constraint=SrcRectConstraint::kFast) override
 
void drawImageNine (const sk_sp< DlImage > image, const SkIRect &center, const SkRect &dst, DlFilterMode filter, bool render_with_attributes) override
 
void drawAtlas (const sk_sp< DlImage > atlas, const SkRSXform xform[], const SkRect tex[], const DlColor colors[], int count, DlBlendMode mode, DlImageSampling sampling, const SkRect *cull_rect, bool render_with_attributes) override
 
void drawDisplayList (const sk_sp< DisplayList > display_list, SkScalar opacity=SK_Scalar1) override
 
void drawTextBlob (const sk_sp< SkTextBlob > blob, SkScalar x, SkScalar y) override
 
void drawTextFrame (const std::shared_ptr< impeller::TextFrame > &text_frame, SkScalar x, SkScalar y) override
 
void drawShadow (const SkPath &path, const DlColor color, const SkScalar elevation, bool transparent_occluder, SkScalar dpr) override
 

Additional Inherited Members

- Static Public Attributes inherited from flutter::DlOpReceiver
static constexpr int kMaxDrawPointsCount = ((1 << 29) - 1)
 
- Protected Types inherited from flutter::DlOpReceiver
using ClipOp = DlCanvas::ClipOp
 
using PointMode = DlCanvas::PointMode
 
using SrcRectConstraint = DlCanvas::SrcRectConstraint
 

Detailed Description

Receives to drawing commands of a DisplayListBuilder.

This is used to determine whether any non-transparent pixels will be drawn on the canvas. All the drawImage operations are considered drawing non-transparent pixels.

To use this class, dispatch the operations from DisplayList to a concrete DlOpSpy object, and check the result of did_draw method.

DlOpSpy dl_op_spy;
display_list.Dispatch(dl_op_spy);
bool did_draw = dl_op_spy.did_draw()
bool did_draw()
Returns true if any non transparent content has been drawn.
Definition dl_op_spy.cc:9

Definition at line 29 of file dl_op_spy.h.

Member Function Documentation

◆ did_draw()

bool flutter::DlOpSpy::did_draw ( )

Returns true if any non transparent content has been drawn.

Definition at line 9 of file dl_op_spy.cc.

9 {
10 return did_draw_;
11}

◆ drawArc()

void flutter::DlOpSpy::drawArc ( const SkRect oval_bounds,
SkScalar  start_degrees,
SkScalar  sweep_degrees,
bool  use_center 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 65 of file dl_op_spy.cc.

68 {
69 did_draw_ |= will_draw_;
70}

◆ drawAtlas()

void flutter::DlOpSpy::drawAtlas ( const sk_sp< DlImage atlas,
const SkRSXform  xform[],
const SkRect  tex[],
const DlColor  colors[],
int  count,
DlBlendMode  mode,
DlImageSampling  sampling,
const SkRect cull_rect,
bool  render_with_attributes 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 105 of file dl_op_spy.cc.

113 {
114 did_draw_ = true;
115}

◆ drawCircle()

void flutter::DlOpSpy::drawCircle ( const SkPoint center,
SkScalar  radius 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 53 of file dl_op_spy.cc.

53 {
54 did_draw_ |= will_draw_;
55}

◆ drawColor()

void flutter::DlOpSpy::drawColor ( DlColor  color,
DlBlendMode  mode 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 36 of file dl_op_spy.cc.

36 {
37 did_draw_ |= !color.isTransparent();
38}
SkColor4f color

◆ drawDisplayList()

void flutter::DlOpSpy::drawDisplayList ( const sk_sp< DisplayList display_list,
SkScalar  opacity = SK_Scalar1 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 116 of file dl_op_spy.cc.

117 {
118 if (did_draw_ || opacity == 0) {
119 return;
120 }
121 DlOpSpy receiver;
122 display_list->Dispatch(receiver);
123 did_draw_ |= receiver.did_draw();
124}

◆ drawDRRect()

void flutter::DlOpSpy::drawDRRect ( const SkRRect outer,
const SkRRect inner 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 59 of file dl_op_spy.cc.

59 {
60 did_draw_ |= will_draw_;
61}

◆ drawImage()

void flutter::DlOpSpy::drawImage ( const sk_sp< DlImage image,
const SkPoint  point,
DlImageSampling  sampling,
bool  render_with_attributes 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 84 of file dl_op_spy.cc.

87 {
88 did_draw_ = true;
89}

◆ drawImageNine()

void flutter::DlOpSpy::drawImageNine ( const sk_sp< DlImage image,
const SkIRect center,
const SkRect dst,
DlFilterMode  filter,
bool  render_with_attributes 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 98 of file dl_op_spy.cc.

102 {
103 did_draw_ = true;
104}

◆ drawImageRect()

void flutter::DlOpSpy::drawImageRect ( const sk_sp< DlImage image,
const SkRect src,
const SkRect dst,
DlImageSampling  sampling,
bool  render_with_attributes,
SrcRectConstraint  constraint = SrcRectConstraint::kFast 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 90 of file dl_op_spy.cc.

95 {
96 did_draw_ = true;
97}

◆ drawLine()

void flutter::DlOpSpy::drawLine ( const SkPoint p0,
const SkPoint p1 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 44 of file dl_op_spy.cc.

44 {
45 did_draw_ |= will_draw_;
46}

◆ drawOval()

void flutter::DlOpSpy::drawOval ( const SkRect bounds)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 50 of file dl_op_spy.cc.

50 {
51 did_draw_ |= will_draw_;
52}

◆ drawPaint()

void flutter::DlOpSpy::drawPaint ( )
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 39 of file dl_op_spy.cc.

39 {
40 did_draw_ |= will_draw_;
41}

◆ drawPath()

void flutter::DlOpSpy::drawPath ( const SkPath path)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 62 of file dl_op_spy.cc.

62 {
63 did_draw_ |= will_draw_;
64}

◆ drawPoints()

void flutter::DlOpSpy::drawPoints ( PointMode  mode,
uint32_t  count,
const SkPoint  points[] 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 71 of file dl_op_spy.cc.

73 {
74 did_draw_ |= will_draw_;
75}

◆ drawRect()

void flutter::DlOpSpy::drawRect ( const SkRect rect)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 47 of file dl_op_spy.cc.

47 {
48 did_draw_ |= will_draw_;
49}

◆ drawRRect()

void flutter::DlOpSpy::drawRRect ( const SkRRect rrect)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 56 of file dl_op_spy.cc.

56 {
57 did_draw_ |= will_draw_;
58}

◆ drawShadow()

void flutter::DlOpSpy::drawShadow ( const SkPath path,
const DlColor  color,
const SkScalar  elevation,
bool  transparent_occluder,
SkScalar  dpr 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 138 of file dl_op_spy.cc.

142 {
143 did_draw_ |= !color.isTransparent();
144}

◆ drawTextBlob()

void flutter::DlOpSpy::drawTextBlob ( const sk_sp< SkTextBlob blob,
SkScalar  x,
SkScalar  y 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 125 of file dl_op_spy.cc.

127 {
128 did_draw_ |= will_draw_;
129}

◆ drawTextFrame()

void flutter::DlOpSpy::drawTextFrame ( const std::shared_ptr< impeller::TextFrame > &  text_frame,
SkScalar  x,
SkScalar  y 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 131 of file dl_op_spy.cc.

134 {
135 did_draw_ |= will_draw_;
136}

◆ drawVertices()

void flutter::DlOpSpy::drawVertices ( const DlVertices vertices,
DlBlendMode  mode 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 76 of file dl_op_spy.cc.

76 {
77 did_draw_ |= will_draw_;
78}

◆ restore()

void flutter::DlOpSpy::restore ( )
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 35 of file dl_op_spy.cc.

35{}

◆ save()

void flutter::DlOpSpy::save ( )
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 31 of file dl_op_spy.cc.

31{}

◆ saveLayer()

void flutter::DlOpSpy::saveLayer ( const SkRect bounds,
const SaveLayerOptions  options,
const DlImageFilter backdrop 
)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 32 of file dl_op_spy.cc.

34 {}

◆ setColor()

void flutter::DlOpSpy::setColor ( DlColor  color)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 13 of file dl_op_spy.cc.

13 {
14 if (color.isTransparent()) {
15 will_draw_ = false;
16 } else {
17 will_draw_ = true;
18 }
19}

◆ setColorSource()

void flutter::DlOpSpy::setColorSource ( const DlColorSource source)
overrideprivatevirtual

Implements flutter::DlOpReceiver.

Definition at line 20 of file dl_op_spy.cc.

20 {
21 if (!source) {
22 return;
23 }
24 const DlColorColorSource* color_source = source->asColor();
25 if (color_source && color_source->color().isTransparent()) {
26 will_draw_ = false;
27 return;
28 }
29 will_draw_ = true;
30}
SkBitmap source
Definition examples.cpp:28

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