| Flutter Impeller |

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

`#include <dl_dispatcher.h>`

Inheritance diagram for impeller::DlDispatcher:

## Public Member Functions
| DlDispatcher ()
| Subclasses. More...
| DlDispatcher (IRect cull_rect)
| DlDispatcher (Rect cull_rect)
| ~DlDispatcher ()=default
void | save () override
void | saveLayer (const SkRect &bounds, const flutter::SaveLayerOptions options, const flutter::DlImageFilter *backdrop) 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
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 261 of file dl_dispatcher.h.

## Constructor & Destructor Documentation

## ◆ DlDispatcher() [1/3]

impeller::DlDispatcher::DlDispatcher | ( |  | ) |
| default

Subclasses.

## ◆ DlDispatcher() [2/3]

impeller::DlDispatcher::DlDispatcher | ( | IRect | cull_rect | ) |
| explicit

Definition at line 1212 of file dl_dispatcher.cc.

1212 : canvas_(cull_rect) {}

## ◆ DlDispatcher() [3/3]

impeller::DlDispatcher::DlDispatcher | ( | Rect | cull_rect | ) |
| explicit

Definition at line 1214 of file dl_dispatcher.cc.

1214 : canvas_(cull_rect) {}

## ◆ ~DlDispatcher()

impeller::DlDispatcher::~DlDispatcher | ( |  | ) |
| default

## Member Function Documentation

## ◆ save() [1/2]

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

Definition at line 272 of file dl_dispatcher.h.

272 {
273 // This dispatcher is used from test cases that might not supply
274 // a content_depth parameter. Since this dispatcher doesn't use
275 // the value, we just pass through a 0.
276 DlDispatcherBase::save(0u);
277 }

References impeller::DlDispatcherBase::save().

Referenced by impeller::testing::TEST_P().

## ◆ 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::DlDispatcher::saveLayer | ( | const SkRect & | bounds,
|  | const flutter::SaveLayerOptions | options,
|  | const flutter::DlImageFilter * | backdrop
| ) |  |
| inline override

Definition at line 281 of file dl_dispatcher.h.

283 {
284 // This dispatcher is used from test cases that might not supply
285 // a content_depth parameter. Since this dispatcher doesn't use
286 // the value, we just pass through a 0.
287 DlDispatcherBase::saveLayer(bounds, options, 0u,
288 flutter::DlBlendMode::kLastMode, backdrop);
289 }

References impeller::DlDispatcherBase::saveLayer().

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

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

impeller::DlDispatcherBase::save
void save(uint32_t total_content_depth) override
Definition: dl_dispatcher.cc:611
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::DlDispatcherBase::saveLayer
void saveLayer(const SkRect &bounds, const flutter::SaveLayerOptions &options, uint32_t total_content_depth, flutter::DlBlendMode max_content_mode, const flutter::DlImageFilter *backdrop) override
Definition: dl_dispatcher.cc:619
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