![]() |
Flutter Engine
The Flutter Engine
|
Internal API for rendering recorded display lists to backends. More...
#include <dl_op_receiver.h>
Classes | |
struct | CacheablePath |
Public Member Functions | |
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 | setAntiAlias (bool aa)=0 |
virtual void | setDrawStyle (DlDrawStyle style)=0 |
virtual void | setColor (DlColor color)=0 |
virtual void | setStrokeWidth (float width)=0 |
virtual void | setStrokeMiter (float limit)=0 |
virtual void | setStrokeCap (DlStrokeCap cap)=0 |
virtual void | setStrokeJoin (DlStrokeJoin join)=0 |
virtual void | setColorSource (const DlColorSource *source)=0 |
virtual void | setColorFilter (const DlColorFilter *filter)=0 |
virtual void | setInvertColors (bool invert)=0 |
virtual void | setBlendMode (DlBlendMode mode)=0 |
virtual void | setMaskFilter (const DlMaskFilter *filter)=0 |
virtual void | setImageFilter (const DlImageFilter *filter)=0 |
virtual void | save ()=0 |
virtual void | save (uint32_t total_content_depth) |
virtual void | saveLayer (const SkRect &bounds, const SaveLayerOptions options, const DlImageFilter *backdrop=nullptr)=0 |
virtual void | saveLayer (const SkRect &bounds, const SaveLayerOptions &options, uint32_t total_content_depth, DlBlendMode max_content_blend_mode, const DlImageFilter *backdrop=nullptr) |
virtual void | restore ()=0 |
virtual void | saveLayer (const SkRect *bounds, const SaveLayerOptions options, const DlImageFilter *backdrop=nullptr) final |
virtual void | translate (SkScalar tx, SkScalar ty)=0 |
virtual void | scale (SkScalar sx, SkScalar sy)=0 |
virtual void | rotate (SkScalar degrees)=0 |
virtual void | skew (SkScalar sx, SkScalar sy)=0 |
virtual void | transform2DAffine (SkScalar mxx, SkScalar mxy, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myt)=0 |
virtual void | transformFullPerspective (SkScalar mxx, SkScalar mxy, SkScalar mxz, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myz, SkScalar myt, SkScalar mzx, SkScalar mzy, SkScalar mzz, SkScalar mzt, SkScalar mwx, SkScalar mwy, SkScalar mwz, SkScalar mwt)=0 |
virtual void | transformReset ()=0 |
virtual void | clipRect (const SkRect &rect, ClipOp clip_op, bool is_aa)=0 |
virtual void | clipRRect (const SkRRect &rrect, ClipOp clip_op, bool is_aa)=0 |
virtual void | clipPath (const SkPath &path, ClipOp clip_op, bool is_aa)=0 |
virtual void | drawColor (DlColor color, DlBlendMode mode)=0 |
virtual void | drawPaint ()=0 |
virtual void | drawLine (const SkPoint &p0, const SkPoint &p1)=0 |
virtual void | drawDashedLine (const DlPoint &p0, const DlPoint &p1, DlScalar on_length, DlScalar off_length)=0 |
virtual void | drawRect (const SkRect &rect)=0 |
virtual void | drawOval (const SkRect &bounds)=0 |
virtual void | drawCircle (const SkPoint ¢er, SkScalar radius)=0 |
virtual void | drawRRect (const SkRRect &rrect)=0 |
virtual void | drawDRRect (const SkRRect &outer, const SkRRect &inner)=0 |
virtual void | drawPath (const SkPath &path)=0 |
virtual void | drawArc (const SkRect &oval_bounds, SkScalar start_degrees, SkScalar sweep_degrees, bool use_center)=0 |
virtual void | drawPoints (PointMode mode, uint32_t count, const SkPoint points[])=0 |
virtual void | drawVertices (const DlVertices *vertices, DlBlendMode mode)=0 |
virtual void | drawImage (const sk_sp< DlImage > image, const SkPoint point, DlImageSampling sampling, bool render_with_attributes)=0 |
virtual void | drawImageRect (const sk_sp< DlImage > image, const SkRect &src, const SkRect &dst, DlImageSampling sampling, bool render_with_attributes, SrcRectConstraint constraint=SrcRectConstraint::kFast)=0 |
virtual void | drawImageNine (const sk_sp< DlImage > image, const SkIRect ¢er, const SkRect &dst, DlFilterMode filter, bool render_with_attributes)=0 |
virtual 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)=0 |
virtual void | drawDisplayList (const sk_sp< DisplayList > display_list, SkScalar opacity=SK_Scalar1)=0 |
virtual void | drawTextBlob (const sk_sp< SkTextBlob > blob, SkScalar x, SkScalar y)=0 |
virtual void | drawTextFrame (const std::shared_ptr< impeller::TextFrame > &text_frame, SkScalar x, SkScalar y)=0 |
virtual void | drawShadow (const SkPath &path, const DlColor color, const SkScalar elevation, bool transparent_occluder, SkScalar dpr)=0 |
Static Public Attributes | |
static constexpr int | kMaxDrawPointsCount = ((1 << 29) - 1) |
Protected Types | |
using | ClipOp = DlCanvas::ClipOp |
using | PointMode = DlCanvas::PointMode |
using | SrcRectConstraint = DlCanvas::SrcRectConstraint |
Internal API for rendering recorded display lists to backends.
The |DisplayList| object will play back recorded operations in this format. Most developers should not need to deal with this interface unless they are writing a utility that needs to examine the contents of a display list.
Similar to |DlCanvas|, this interface carries clip and transform state which are saved and restored by the |save|, |saveLayer|, and |restore| calls.
Unlike DlCanvas, this interface has attribute state which is global across an entire DisplayList (not affected by save/restore).
DISPLAYLIST DEPTH TRACKING
Each rendering call in the DisplayList stream is assumed to have a "depth" value relative to the beginning of its DisplayList. The depth value is implicitly allocated during recording and only reported in 2 places so it is important for a dispatcher to perform the same internal allocations if it is to make sense of the information reported by the save/saveLayer calls. This depth value is maintained as follows:
DisplayList::total_depth()
method reporting the total depth accumulated for every operation in the DisplayListDefinition at line 89 of file dl_op_receiver.h.
|
protected |
Definition at line 91 of file dl_op_receiver.h.
|
protected |
Definition at line 92 of file dl_op_receiver.h.
|
protected |
Definition at line 93 of file dl_op_receiver.h.
|
inlinevirtual |
Reimplemented in impeller::DlDispatcherBase.
Definition at line 124 of file dl_op_receiver.h.
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
inlinevirtual |
Reimplemented in impeller::DlDispatcherBase.
Definition at line 129 of file dl_op_receiver.h.
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
inlinevirtual |
Reimplemented in impeller::DlDispatcherBase.
Definition at line 130 of file dl_op_receiver.h.
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
inlinevirtual |
Reimplemented in impeller::DlDispatcherBase.
Definition at line 111 of file dl_op_receiver.h.
|
pure virtual |
|
pure virtual |
|
pure virtual |
Implemented in flutter::ComplexityCalculatorHelper, flutter::testing::DepthExpector, flutter::DlSkCanvasDispatcher, flutter::testing::MockDispatchHelper, flutter::IgnoreDrawDispatchHelper, impeller::DlDispatcher, impeller::ExperimentalDlDispatcher, impeller::TextFrameDispatcher, and flutter::testing::DisplayListStreamDispatcher.
|
inlinevirtual |
Reimplemented in flutter::testing::DepthExpector, impeller::DlDispatcherBase, impeller::DlDispatcher, and impeller::ExperimentalDlDispatcher.
Definition at line 167 of file dl_op_receiver.h.
|
inlinevirtual |
Reimplemented in impeller::DlDispatcherBase, impeller::DlDispatcher, impeller::ExperimentalDlDispatcher, flutter::testing::SaveLayerExpector, and flutter::testing::DepthExpector.
Definition at line 189 of file dl_op_receiver.h.
|
pure virtual |
Implemented in impeller::DlDispatcher, impeller::ExperimentalDlDispatcher, impeller::TextFrameDispatcher, flutter::testing::SaveLayerExpector, flutter::testing::SaveLayerBoundsExpector, flutter::DlSkCanvasDispatcher, flutter::IgnoreDrawDispatchHelper, flutter::testing::DisplayListStreamDispatcher, and flutter::testing::DepthExpector.
|
inlinefinalvirtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
staticconstexpr |
Definition at line 97 of file dl_op_receiver.h.