| Flutter Impeller |

Public Member Functions | List of all members
impeller::ExperimentalDlDispatcher Class Reference

`#include <dl_dispatcher.h>`

Inheritance diagram for impeller::ExperimentalDlDispatcher:

## Public Member Functions
| ExperimentalDlDispatcher (ContentContext &renderer, RenderTarget &render_target, bool has_root_backdrop_filter, flutter::DlBlendMode max_root_blend_mode, IRect cull_rect)
| ~ExperimentalDlDispatcher ()=default
void | save () override
void | saveLayer (const SkRect &bounds, const flutter::SaveLayerOptions options, const flutter::DlImageFilter *backdrop) override
void | FinishRecording ()
void | save (uint32_t total_content_depth) override
void | saveLayer (const SkRect &bounds, const flutter::SaveLayerOptions &options, uint32_t total_content_depth, flutter::DlBlendMode max_content_mode, const flutter::DlImageFilter *backdrop) override
Public Member Functions inherited from impeller::DlDispatcherBase
Picture | EndRecordingAsPicture ()
bool | PrefersImpellerPaths () const override
void | setAntiAlias (bool aa) override
void | setDrawStyle (flutter::DlDrawStyle style) override
void | setColor (flutter::DlColor color) override
void | setStrokeWidth (SkScalar width) override
void | setStrokeMiter (SkScalar limit) override
void | setStrokeCap (flutter::DlStrokeCap cap) override
void | setStrokeJoin (flutter::DlStrokeJoin join) override
void | setColorSource (const flutter::DlColorSource *source) override
void | setColorFilter (const flutter::DlColorFilter *filter) override
void | setInvertColors (bool invert) override
void | setBlendMode (flutter::DlBlendMode mode) override
void | setMaskFilter (const flutter::DlMaskFilter *filter) override
void | setImageFilter (const flutter::DlImageFilter *filter) override
void | save (uint32_t total_content_depth) override
void | saveLayer (const SkRect &bounds, const flutter::SaveLayerOptions &options, uint32_t total_content_depth, flutter::DlBlendMode max_content_mode, const flutter::DlImageFilter *backdrop) override
void | restore () override
void | translate (SkScalar tx, SkScalar ty) override
void | scale (SkScalar sx, SkScalar sy) override
void | rotate (SkScalar degrees) override
void | skew (SkScalar sx, SkScalar sy) override
void | transform2DAffine (SkScalar mxx, SkScalar mxy, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myt) override
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) override
void | transformReset () override
void | clipRect (const SkRect &rect, ClipOp clip_op, bool is_aa) override
void | clipRRect (const SkRRect &rrect, ClipOp clip_op, bool is_aa) override
void | clipPath (const SkPath &path, ClipOp clip_op, bool is_aa) override
void | clipPath (const CacheablePath &cache, ClipOp clip_op, bool is_aa) override
void | drawColor (flutter::DlColor color, flutter::DlBlendMode mode) override
void | drawPaint () override
void | drawLine (const SkPoint &p0, const SkPoint &p1) override
void | drawDashedLine (const DlPoint &p0, const DlPoint &p1, DlScalar on_length, DlScalar off_length) 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 | drawPath (const CacheablePath &cache) 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 std::shared_ptr< flutter::DlVertices > &vertices, flutter::DlBlendMode dl_mode) override
void | drawImage (const sk_sp< flutter::DlImage > image, const SkPoint point, flutter::DlImageSampling sampling, bool render_with_attributes) override
void | drawImageRect (const sk_sp< flutter::DlImage > image, const SkRect &src, const SkRect &dst, flutter::DlImageSampling sampling, bool render_with_attributes, SrcRectConstraint constraint) override
void | drawImageNine (const sk_sp< flutter::DlImage > image, const SkIRect &center, const SkRect &dst, flutter::DlFilterMode filter, bool render_with_attributes) override
void | drawAtlas (const sk_sp< flutter::DlImage > atlas, const SkRSXform xform[], const SkRect tex[], const flutter::DlColor colors[], int count, flutter::DlBlendMode mode, flutter::DlImageSampling sampling, const SkRect *cull_rect, bool render_with_attributes) override
void | drawDisplayList (const sk_sp< flutter::DisplayList > display_list, SkScalar opacity) 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 flutter::DlColor color, const SkScalar elevation, bool transparent_occluder, SkScalar dpr) override
void | drawShadow (const CacheablePath &cache, const flutter::DlColor color, const SkScalar elevation, bool transparent_occluder, SkScalar dpr) override

## Detailed Description

Definition at line 298 of file dl_dispatcher.h.

## Constructor & Destructor Documentation

## ◆ ExperimentalDlDispatcher()

impeller::ExperimentalDlDispatcher::ExperimentalDlDispatcher | ( | ContentContext & | renderer,
|  | RenderTarget & | render_target,
|  | bool | has_root_backdrop_filter,
|  | flutter::DlBlendMode | max_root_blend_mode,
|  | IRect | cull_rect
| ) |  |

Definition at line 1227 of file dl_dispatcher.cc.

1233 : canvas_(renderer,
1234 render_target,
1235 has_root_backdrop_filter ||
1236 RequiresReadbackForBlends(renderer, max_root_blend_mode),
1237 cull_rect) {}

## ◆ ~ExperimentalDlDispatcher()

impeller::ExperimentalDlDispatcher::~ExperimentalDlDispatcher | ( |  | ) |
| default

## Member Function Documentation

## ◆ FinishRecording()

void impeller::ExperimentalDlDispatcher::FinishRecording | ( |  | ) |
| inline

Definition at line 326 of file dl_dispatcher.h.

326 { canvas_.EndReplay(); }

References impeller::ExperimentalCanvas::EndReplay().

Referenced by impeller::DlPlayground::OpenPlaygroundHere().

## ◆ save() [1/2]

void impeller::ExperimentalDlDispatcher::save | ( |  | ) |
| inline override

Definition at line 309 of file dl_dispatcher.h.

309 {
310 // This dispatcher should never be used with the save() variant
311 // that does not include the content_depth parameter.
312 FML_UNREACHABLE();
313 }

## ◆ save() [2/2]

void impeller::DlDispatcherBase::save
| override

Definition at line 611 of file dl_dispatcher.cc.

611 {
612 GetCanvas().Save(total_content_depth);
613 }

## ◆ saveLayer() [1/2]

void impeller::DlDispatcherBase::saveLayer
| override

Definition at line 619 of file dl_dispatcher.cc.

623 {
624 auto paint = options.renders_with_attributes() ? paint_ : Paint{};
625 auto promise = options.content_is_clipped()
626 ? ContentBoundsPromise::kMayClipContents
627 : ContentBoundsPromise::kContainsContents;
628 std::optional<Rect> impeller_bounds;
629 if (bounds == kMaxCullRect) {
630 impeller_bounds = std::nullopt;
631 } else {
632 impeller_bounds = skia_conversions::ToRect(bounds);
633 }
634
635 GetCanvas().SaveLayer(paint, impeller_bounds, ToImageFilter(backdrop),
636 promise, total_content_depth,
637 options.can_distribute_opacity());
638 }

## ◆ saveLayer() [2/2]

void impeller::ExperimentalDlDispatcher::saveLayer | ( | const SkRect & | bounds,
|  | const flutter::SaveLayerOptions | options,
|  | const flutter::DlImageFilter * | backdrop
| ) |  |
| inline override

Definition at line 317 of file dl_dispatcher.h.

319 {
320 // This dispatcher should never be used with the saveLayer() variant
321 // that does not include the content_depth parameter.
322 FML_UNREACHABLE();
323 }

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

- impeller/display_list/dl_dispatcher.h
- impeller/display_list/dl_dispatcher.cc

impeller::ContentBoundsPromise::kMayClipContents
@ kMayClipContents
The caller claims the bounds are a subset of an estimate of the reasonably tight bounds but likely cl...
impeller::kMaxCullRect
static constexpr SkRect kMaxCullRect
Definition: dl_dispatcher.cc:615
impeller::ToImageFilter
static std::shared_ptr< ImageFilter > ToImageFilter(const flutter::DlImageFilter *filter)
Definition: dl_dispatcher.cc:515
impeller::skia_conversions::ToRect
Rect ToRect(const SkRect &rect)
Definition: skia_conversions.cc:26
impeller::ExperimentalCanvas::EndReplay
void EndReplay()
Definition: experimental_canvas.cc:745
impeller::Canvas::Save
virtual void Save(uint32_t total_content_depth=kMaxDepth)
Definition: canvas.cc:184
paint
const Paint & paint
Definition: color_source.cc:38
impeller::ContentBoundsPromise::kContainsContents
@ kContainsContents
The caller claims the bounds are a reasonably tight estimate of the coverage of the contents and shou...
impeller::Canvas::SaveLayer
virtual void SaveLayer(const Paint &paint, std::optional< Rect > bounds=std::nullopt, const std::shared_ptr< ImageFilter > &backdrop_filter=nullptr, ContentBoundsPromise bounds_promise=ContentBoundsPromise::kUnknown, uint32_t total_content_depth=kMaxDepth, bool can_distribute_opacity=false)
Definition: canvas.cc:842
impeller::RequiresReadbackForBlends
static bool RequiresReadbackForBlends(const ContentContext &renderer, flutter::DlBlendMode max_root_blend_mode)
Definition: dl_dispatcher.cc:1220