5#ifndef FLUTTER_IMPELLER_DISPLAY_LIST_DL_DISPATCHER_H_
6#define FLUTTER_IMPELLER_DISPLAY_LIST_DL_DISPATCHER_H_
9#include "flutter/display_list/dl_op_receiver.h"
68 void save(uint32_t total_content_depth)
override;
73 uint32_t total_content_depth,
130 void clipPath(
const CacheablePath& cache,
132 bool is_aa)
override;
162 void drawPath(
const CacheablePath& cache)
override;
168 bool use_center)
override;
183 bool render_with_attributes)
override;
190 bool render_with_attributes,
198 bool render_with_attributes)
override;
209 bool render_with_attributes)
override;
221 void drawTextFrame(
const std::shared_ptr<impeller::TextFrame>& text_frame,
229 bool transparent_occluder,
236 bool transparent_occluder,
247 static void SimplifyOrDrawPath(
Canvas& canvas,
328 const Matrix& initial_matrix);
329 void save()
override;
359 void drawTextFrame(
const std::shared_ptr<impeller::TextFrame>& text_frame,
369 std::vector<Matrix> stack_;
static const int points[]
static SkScalar center(float pos0, float pos1)
Internal API for rendering recorded display lists to backends.
DlCanvas::SrcRectConstraint SrcRectConstraint
DlCanvas::PointMode PointMode
Holds all of the data (both required and optional) for a DisplayList drawVertices call.
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 setImageFilter(const flutter::DlImageFilter *filter) override
void drawVertices(const flutter::DlVertices *vertices, flutter::DlBlendMode dl_mode) override
void drawTextFrame(const std::shared_ptr< impeller::TextFrame > &text_frame, SkScalar x, SkScalar y) override
void setStrokeCap(flutter::DlStrokeCap cap) override
void drawPath(const SkPath &path) override
void saveLayer(const SkRect &bounds, const flutter::SaveLayerOptions &options, uint32_t total_content_depth, const flutter::DlImageFilter *backdrop) override
void setAntiAlias(bool aa) override
void drawPoints(PointMode mode, uint32_t count, const SkPoint points[]) override
void drawLine(const SkPoint &p0, const SkPoint &p1) override
bool PrefersImpellerPaths() const override
void clipRect(const SkRect &rect, ClipOp clip_op, bool is_aa) override
void drawOval(const SkRect &bounds) override
void drawCircle(const SkPoint ¢er, SkScalar radius) override
void drawPaint() override
Picture EndRecordingAsPicture()
void setStrokeJoin(flutter::DlStrokeJoin join) override
void setStrokeWidth(SkScalar width) override
void setColorFilter(const flutter::DlColorFilter *filter) override
void translate(SkScalar tx, SkScalar ty) override
void setDrawStyle(flutter::DlDrawStyle style) override
void clipRRect(const SkRRect &rrect, ClipOp clip_op, bool is_aa) override
void drawShadow(const SkPath &path, const flutter::DlColor color, const SkScalar elevation, bool transparent_occluder, SkScalar dpr) override
void setStrokeMiter(SkScalar limit) override
void setPathEffect(const flutter::DlPathEffect *effect) override
void skew(SkScalar sx, SkScalar sy) override
void clipPath(const SkPath &path, ClipOp clip_op, bool is_aa) override
void setInvertColors(bool invert) override
void drawImage(const sk_sp< flutter::DlImage > image, const SkPoint point, flutter::DlImageSampling sampling, bool render_with_attributes) override
void drawImageNine(const sk_sp< flutter::DlImage > image, const SkIRect ¢er, 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 drawDRRect(const SkRRect &outer, const SkRRect &inner) override
void drawRect(const SkRect &rect) override
void drawDisplayList(const sk_sp< flutter::DisplayList > display_list, SkScalar opacity) override
void setColor(flutter::DlColor color) 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 setMaskFilter(const flutter::DlMaskFilter *filter) override
virtual Canvas & GetCanvas()=0
void setColorSource(const flutter::DlColorSource *source) override
void transformReset() override
void setBlendMode(flutter::DlBlendMode mode) override
void drawArc(const SkRect &oval_bounds, SkScalar start_degrees, SkScalar sweep_degrees, bool use_center) override
void drawColor(flutter::DlColor color, flutter::DlBlendMode mode) override
void drawTextBlob(const sk_sp< SkTextBlob > blob, SkScalar x, SkScalar y) override
void transform2DAffine(SkScalar mxx, SkScalar mxy, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myt) override
void rotate(SkScalar degrees) override
void drawRRect(const SkRRect &rrect) override
void saveLayer(const SkRect &bounds, const flutter::SaveLayerOptions options, const flutter::DlImageFilter *backdrop) override
DlDispatcher()
Subclasses.
Canvas & GetCanvas() override
~ExperimentalDlDispatcher()=default
void saveLayer(const SkRect &bounds, const flutter::SaveLayerOptions options, const flutter::DlImageFilter *backdrop) override
Canvas & GetCanvas() override
Paths are lightweight objects that describe a collection of linear, quadratic, or cubic segments....
Performs a first pass over the display list to collect all text frames.
void drawDisplayList(const sk_sp< flutter::DisplayList > display_list, SkScalar opacity) override
void transformReset() override
void rotate(SkScalar degrees) override
void skew(SkScalar sx, SkScalar sy) override
void saveLayer(const SkRect &bounds, const flutter::SaveLayerOptions options, const flutter::DlImageFilter *backdrop) 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 translate(SkScalar tx, SkScalar ty) override
void drawTextFrame(const std::shared_ptr< impeller::TextFrame > &text_frame, SkScalar x, SkScalar y) override
#define FML_UNREACHABLE()
A 4x4 matrix using column-major storage.