 |
Flutter Impeller
|
|
Go to the documentation of this file.
5 #ifndef FLUTTER_IMPELLER_DISPLAY_LIST_DL_DISPATCHER_H_
6 #define FLUTTER_IMPELLER_DISPLAY_LIST_DL_DISPATCHER_H_
8 #include "flutter/display_list/dl_op_receiver.h"
9 #include "flutter/display_list/geometry/dl_geometry_types.h"
10 #include "flutter/display_list/utils/dl_receiver_utils.h"
11 #include "fml/logging.h"
52 void setColorSource(
const flutter::DlColorSource* source)
override;
55 void setColorFilter(
const flutter::DlColorFilter* filter)
override;
64 void setMaskFilter(
const flutter::DlMaskFilter* filter)
override;
67 void setImageFilter(
const flutter::DlImageFilter* filter)
override;
70 void save(uint32_t total_content_depth)
override;
74 const flutter::SaveLayerOptions& options,
75 uint32_t total_content_depth,
76 flutter::DlBlendMode max_content_mode,
77 const flutter::DlImageFilter* backdrop)
override;
83 void translate(SkScalar tx, SkScalar ty)
override;
86 void scale(SkScalar sx, SkScalar sy)
override;
89 void rotate(SkScalar degrees)
override;
92 void skew(SkScalar sx, SkScalar sy)
override;
100 SkScalar myt)
override;
118 SkScalar mwt)
override;
124 void clipRect(
const SkRect& rect, ClipOp clip_op,
bool is_aa)
override;
127 void clipRRect(
const SkRRect& rrect, ClipOp clip_op,
bool is_aa)
override;
130 void clipPath(
const SkPath& path, ClipOp clip_op,
bool is_aa)
override;
133 void clipPath(
const CacheablePath& cache,
135 bool is_aa)
override;
138 void drawColor(flutter::DlColor
color, flutter::DlBlendMode mode)
override;
144 void drawLine(
const SkPoint& p0,
const SkPoint& p1)
override;
153 void drawRect(
const SkRect& rect)
override;
156 void drawOval(
const SkRect& bounds)
override;
159 void drawCircle(
const SkPoint& center, SkScalar radius)
override;
162 void drawRRect(
const SkRRect& rrect)
override;
165 void drawDRRect(
const SkRRect& outer,
const SkRRect& inner)
override;
168 void drawPath(
const SkPath& path)
override;
171 void drawPath(
const CacheablePath& cache)
override;
174 void drawArc(
const SkRect& oval_bounds,
175 SkScalar start_degrees,
176 SkScalar sweep_degrees,
177 bool use_center)
override;
182 const SkPoint points[])
override;
185 void drawVertices(
const std::shared_ptr<flutter::DlVertices>& vertices,
186 flutter::DlBlendMode dl_mode)
override;
189 void drawImage(
const sk_sp<flutter::DlImage> image,
191 flutter::DlImageSampling sampling,
192 bool render_with_attributes)
override;
198 flutter::DlImageSampling sampling,
199 bool render_with_attributes,
200 SrcRectConstraint constraint)
override;
204 const SkIRect& center,
206 flutter::DlFilterMode filter,
207 bool render_with_attributes)
override;
210 void drawAtlas(
const sk_sp<flutter::DlImage> atlas,
211 const SkRSXform xform[],
213 const flutter::DlColor colors[],
215 flutter::DlBlendMode mode,
216 flutter::DlImageSampling sampling,
217 const SkRect* cull_rect,
218 bool render_with_attributes)
override;
222 SkScalar opacity)
override;
227 SkScalar y)
override;
230 void drawTextFrame(
const std::shared_ptr<impeller::TextFrame>& text_frame,
232 SkScalar y)
override;
236 const flutter::DlColor
color,
237 const SkScalar elevation,
238 bool transparent_occluder,
239 SkScalar dpr)
override;
243 const flutter::DlColor
color,
244 const SkScalar elevation,
245 bool transparent_occluder,
246 SkScalar dpr)
override;
254 static const Path& GetOrCachePath(
const CacheablePath& cache);
256 static void SimplifyOrDrawPath(
Canvas& canvas,
257 const CacheablePath& cache,
282 const flutter::SaveLayerOptions options,
283 const flutter::DlImageFilter* backdrop)
override {
288 flutter::DlBlendMode::kLastMode, backdrop);
295 Canvas& GetCanvas()
override;
302 bool has_root_backdrop_filter,
303 flutter::DlBlendMode max_root_blend_mode,
318 const flutter::SaveLayerOptions options,
319 const flutter::DlImageFilter* backdrop)
override {
331 Canvas& GetCanvas()
override;
336 public flutter::IgnoreClipDispatchHelper,
337 public flutter::IgnoreDrawDispatchHelper {
340 const Matrix& initial_matrix);
341 void save()
override;
344 const flutter::SaveLayerOptions options,
345 const flutter::DlImageFilter* backdrop)
override;
349 void translate(SkScalar tx, SkScalar ty)
override;
351 void scale(SkScalar sx, SkScalar sy)
override;
353 void rotate(SkScalar degrees)
override;
355 void skew(SkScalar sx, SkScalar sy)
override;
360 SkScalar myx, SkScalar myy, SkScalar myt)
override;
364 SkScalar mxx, SkScalar mxy, SkScalar mxz, SkScalar mxt,
365 SkScalar myx, SkScalar myy, SkScalar myz, SkScalar myt,
366 SkScalar mzx, SkScalar mzy, SkScalar mzz, SkScalar mzt,
367 SkScalar mwx, SkScalar mwy, SkScalar mwz, SkScalar mwt)
override;
371 void drawTextFrame(
const std::shared_ptr<impeller::TextFrame>& text_frame,
373 SkScalar y)
override;
376 SkScalar opacity)
override;
399 std::vector<Matrix> stack_;
405 #endif // FLUTTER_IMPELLER_DISPLAY_LIST_DL_DISPATCHER_H_
void drawDRRect(const SkRRect &outer, const SkRRect &inner) override
void translate(SkScalar tx, SkScalar ty) override
void transformReset() override
Picture EndRecordingAsPicture()
void drawShadow(const SkPath &path, const flutter::DlColor color, const SkScalar elevation, bool transparent_occluder, SkScalar dpr) override
void drawPoints(PointMode mode, uint32_t count, const SkPoint points[]) override
DlDispatcher()
Subclasses.
void saveLayer(const SkRect &bounds, const flutter::SaveLayerOptions options, const flutter::DlImageFilter *backdrop) override
flutter::DlScalar DlScalar
void rotate(SkScalar degrees) override
void save(uint32_t total_content_depth) override
void drawColor(flutter::DlColor color, flutter::DlBlendMode mode) override
ExperimentalDlDispatcher(ContentContext &renderer, RenderTarget &render_target, bool has_root_backdrop_filter, flutter::DlBlendMode max_root_blend_mode, IRect cull_rect)
void setDrawStyle(flutter::DlDrawStyle style) override
void setStrokeJoin(flutter::DlStrokeJoin join) override
void setStrokeCap(flutter::DlStrokeCap cap) override
void transform2DAffine(SkScalar mxx, SkScalar mxy, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myt) override
void transform2DAffine(SkScalar mxx, SkScalar mxy, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myt) override
void setStrokeCap(flutter::DlStrokeCap cap) override
void setColorFilter(const flutter::DlColorFilter *filter) override
TextFrameDispatcher(const ContentContext &renderer, const Matrix &initial_matrix)
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 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 clipRect(const SkRect &rect, ClipOp clip_op, bool is_aa) 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 drawOval(const SkRect &bounds) override
void drawVertices(const std::shared_ptr< flutter::DlVertices > &vertices, flutter::DlBlendMode dl_mode) override
void setColor(flutter::DlColor color) override
void drawTextBlob(const sk_sp< SkTextBlob > blob, SkScalar x, SkScalar y) override
void drawRRect(const SkRRect &rrect) override
void drawArc(const SkRect &oval_bounds, SkScalar start_degrees, SkScalar sweep_degrees, bool use_center) override
void setImageFilter(const flutter::DlImageFilter *filter) override
void saveLayer(const SkRect &bounds, const flutter::SaveLayerOptions options, const flutter::DlImageFilter *backdrop) override
void clipPath(const SkPath &path, ClipOp clip_op, bool is_aa) override
void setColorSource(const flutter::DlColorSource *source) override
void setDrawStyle(flutter::DlDrawStyle style) override
Paths are lightweight objects that describe a collection of linear, quadratic, or cubic segments....
void setStrokeJoin(flutter::DlStrokeJoin join) override
void transformReset() override
void drawPath(const SkPath &path) override
void drawImageNine(const sk_sp< flutter::DlImage > image, const SkIRect ¢er, const SkRect &dst, flutter::DlFilterMode filter, bool render_with_attributes) override
void drawImage(const sk_sp< flutter::DlImage > image, const SkPoint point, flutter::DlImageSampling sampling, bool render_with_attributes) override
void skew(SkScalar sx, SkScalar sy) 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 setAntiAlias(bool aa) override
void setStrokeMiter(SkScalar limit) override
void setStrokeWidth(SkScalar width) override
void drawLine(const SkPoint &p0, const SkPoint &p1) override
virtual Canvas & GetCanvas()=0
void clipRRect(const SkRRect &rrect, ClipOp clip_op, bool is_aa) override
void drawDisplayList(const sk_sp< flutter::DisplayList > display_list, SkScalar opacity) override
void drawDashedLine(const DlPoint &p0, const DlPoint &p1, DlScalar on_length, DlScalar off_length) override
void drawTextFrame(const std::shared_ptr< impeller::TextFrame > &text_frame, SkScalar x, SkScalar y) override
void setStrokeMiter(SkScalar limit) override
void setBlendMode(flutter::DlBlendMode mode) override
void saveLayer(const SkRect &bounds, const flutter::SaveLayerOptions options, const flutter::DlImageFilter *backdrop) override
bool PrefersImpellerPaths() const override
void setStrokeWidth(SkScalar width) override
void drawRect(const SkRect &rect) override
void setColor(flutter::DlColor color) override
~ExperimentalDlDispatcher()=default
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 drawPaint() override
void scale(SkScalar sx, SkScalar sy) override
void drawDisplayList(const sk_sp< flutter::DisplayList > display_list, SkScalar opacity) override
void drawTextFrame(const std::shared_ptr< impeller::TextFrame > &text_frame, SkScalar x, SkScalar y) override
Performs a first pass over the display list to collect all text frames.
void translate(SkScalar tx, SkScalar ty) override
void skew(SkScalar sx, SkScalar sy) override
void setMaskFilter(const flutter::DlMaskFilter *filter) override
void setInvertColors(bool invert) override
A 4x4 matrix using column-major storage.
void drawCircle(const SkPoint ¢er, SkScalar radius) override
void rotate(SkScalar degrees) override
void scale(SkScalar sx, SkScalar sy) override