 |
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/geometry/dl_path.h"
11 #include "flutter/display_list/utils/dl_receiver_utils.h"
12 #include "fml/logging.h"
51 void setColorSource(
const flutter::DlColorSource* source)
override;
54 void setColorFilter(
const flutter::DlColorFilter* filter)
override;
63 void setMaskFilter(
const flutter::DlMaskFilter* filter)
override;
66 void setImageFilter(
const flutter::DlImageFilter* filter)
override;
69 void save(uint32_t total_content_depth)
override;
73 const flutter::SaveLayerOptions& options,
74 uint32_t total_content_depth,
75 flutter::DlBlendMode max_content_mode,
76 const flutter::DlImageFilter* backdrop)
override;
123 void clipRect(
const DlRect& rect, ClipOp clip_op,
bool is_aa)
override;
126 void clipOval(
const DlRect& bounds, ClipOp clip_op,
bool is_aa)
override;
129 void clipRRect(
const SkRRect& rrect, ClipOp clip_op,
bool is_aa)
override;
132 void clipPath(
const DlPath& path, ClipOp clip_op,
bool is_aa)
override;
135 void drawColor(flutter::DlColor
color, flutter::DlBlendMode mode)
override;
159 void drawRRect(
const SkRRect& rrect)
override;
162 void drawDRRect(
const SkRRect& outer,
const SkRRect& inner)
override;
171 bool use_center)
override;
176 const DlPoint points[])
override;
179 void drawVertices(
const std::shared_ptr<flutter::DlVertices>& vertices,
180 flutter::DlBlendMode dl_mode)
override;
183 void drawImage(
const sk_sp<flutter::DlImage> image,
185 flutter::DlImageSampling sampling,
186 bool render_with_attributes)
override;
192 flutter::DlImageSampling sampling,
193 bool render_with_attributes,
194 SrcRectConstraint constraint)
override;
200 flutter::DlFilterMode filter,
201 bool render_with_attributes)
override;
204 void drawAtlas(
const sk_sp<flutter::DlImage> atlas,
205 const SkRSXform xform[],
207 const flutter::DlColor colors[],
209 flutter::DlBlendMode mode,
210 flutter::DlImageSampling sampling,
212 bool render_with_attributes)
override;
224 void drawTextFrame(
const std::shared_ptr<impeller::TextFrame>& text_frame,
230 const flutter::DlColor
color,
232 bool transparent_occluder,
250 bool has_root_backdrop_filter,
251 flutter::DlBlendMode max_root_blend_mode,
266 const flutter::SaveLayerOptions options,
267 const flutter::DlImageFilter* backdrop)
override {
277 void drawVertices(
const std::shared_ptr<flutter::DlVertices>& vertices,
278 flutter::DlBlendMode dl_mode)
override;
284 Canvas& GetCanvas()
override;
289 public flutter::IgnoreClipDispatchHelper,
290 public flutter::IgnoreDrawDispatchHelper {
293 const Matrix& initial_matrix,
294 const Rect cull_rect);
298 void save()
override;
301 const flutter::SaveLayerOptions options,
302 const flutter::DlImageFilter* backdrop)
override;
328 void drawTextFrame(
const std::shared_ptr<impeller::TextFrame>& text_frame,
354 void setImageFilter(
const flutter::DlImageFilter* filter)
override;
357 const Rect GetCurrentLocalCullingBounds()
const;
361 std::vector<Matrix> stack_;
363 std::vector<Rect> cull_rect_state_;
364 bool has_image_filter_ =
false;
370 const sk_sp<flutter::DisplayList>& display_list,
373 bool reset_host_buffer =
true,
374 bool generate_mips =
false);
378 const sk_sp<flutter::DisplayList>& display_list,
380 bool reset_host_buffer);
384 #endif // FLUTTER_IMPELLER_DISPLAY_LIST_DL_DISPATCHER_H_
void drawDRRect(const SkRRect &outer, const SkRRect &inner) override
void transformReset() override
void setStrokeWidth(DlScalar width) override
void drawRect(const DlRect &rect) override
void scale(DlScalar sx, DlScalar sy) override
void save(uint32_t total_content_depth) override
void drawColor(flutter::DlColor color, flutter::DlBlendMode mode) override
void setDrawStyle(flutter::DlDrawStyle style) override
void drawImageRect(const sk_sp< flutter::DlImage > image, const DlRect &src, const DlRect &dst, flutter::DlImageSampling sampling, bool render_with_attributes, SrcRectConstraint constraint) override
TextFrameDispatcher(const ContentContext &renderer, const Matrix &initial_matrix, const Rect cull_rect)
void setStrokeJoin(flutter::DlStrokeJoin join) override
void setStrokeCap(flutter::DlStrokeCap cap) override
void scale(DlScalar sx, DlScalar sy) override
void saveLayer(const DlRect &bounds, const flutter::SaveLayerOptions &options, uint32_t total_content_depth, flutter::DlBlendMode max_content_mode, const flutter::DlImageFilter *backdrop) override
bool RenderToOnscreen(ContentContext &context, RenderTarget render_target, const sk_sp< flutter::DisplayList > &display_list, SkIRect cull_rect, bool reset_host_buffer)
Render the provided display list to the render target.
void drawTextFrame(const std::shared_ptr< impeller::TextFrame > &text_frame, DlScalar x, DlScalar y) override
void translate(DlScalar tx, DlScalar ty) override
~CanvasDlDispatcher()=default
void setStrokeCap(flutter::DlStrokeCap cap) override
void setColorFilter(const flutter::DlColorFilter *filter) override
void drawShadow(const DlPath &path, const flutter::DlColor color, const DlScalar elevation, bool transparent_occluder, DlScalar dpr) override
void drawTextFrame(const std::shared_ptr< impeller::TextFrame > &text_frame, DlScalar x, DlScalar y) override
void drawCircle(const DlPoint ¢er, DlScalar radius) override
void setStrokeMiter(DlScalar limit) override
void translate(DlScalar tx, DlScalar ty) override
void setImageFilter(const flutter::DlImageFilter *filter) override
void drawLine(const DlPoint &p0, const DlPoint &p1) override
void drawAtlas(const sk_sp< flutter::DlImage > atlas, const SkRSXform xform[], const DlRect tex[], const flutter::DlColor colors[], int count, flutter::DlBlendMode mode, flutter::DlImageSampling sampling, const DlRect *cull_rect, bool render_with_attributes) override
void drawVertices(const std::shared_ptr< flutter::DlVertices > &vertices, flutter::DlBlendMode dl_mode) override
void transform2DAffine(DlScalar mxx, DlScalar mxy, DlScalar mxt, DlScalar myx, DlScalar myy, DlScalar myt) override
void setColor(flutter::DlColor color) override
void transformFullPerspective(DlScalar mxx, DlScalar mxy, DlScalar mxz, DlScalar mxt, DlScalar myx, DlScalar myy, DlScalar myz, DlScalar myt, DlScalar mzx, DlScalar mzy, DlScalar mzz, DlScalar mzt, DlScalar mwx, DlScalar mwy, DlScalar mwz, DlScalar mwt) override
void drawRRect(const SkRRect &rrect) override
void drawPoints(PointMode mode, uint32_t count, const DlPoint points[]) override
void setImageFilter(const flutter::DlImageFilter *filter) override
void clipPath(const DlPath &path, ClipOp clip_op, bool is_aa) override
void setColorSource(const flutter::DlColorSource *source) override
void setDrawStyle(flutter::DlDrawStyle style) override
void setStrokeJoin(flutter::DlStrokeJoin join) override
void transformReset() override
void skew(DlScalar sx, DlScalar sy) override
void drawVertices(const std::shared_ptr< flutter::DlVertices > &vertices, flutter::DlBlendMode dl_mode) override
void rotate(DlScalar degrees) override
void setAntiAlias(bool aa) override
CanvasDlDispatcher(ContentContext &renderer, RenderTarget &render_target, bool has_root_backdrop_filter, flutter::DlBlendMode max_root_blend_mode, IRect cull_rect)
void drawPath(const DlPath &path) override
virtual Canvas & GetCanvas()=0
void drawImageNine(const sk_sp< flutter::DlImage > image, const DlIRect ¢er, const DlRect &dst, flutter::DlFilterMode filter, bool render_with_attributes) override
void clipRRect(const SkRRect &rrect, ClipOp clip_op, bool is_aa) override
void saveLayer(const DlRect &bounds, const flutter::SaveLayerOptions options, const flutter::DlImageFilter *backdrop) override
static void SimplifyOrDrawPath(Canvas &canvas, const DlPath &cache, const Paint &paint)
void drawDashedLine(const DlPoint &p0, const DlPoint &p1, DlScalar on_length, DlScalar off_length) override
void drawDisplayList(const sk_sp< flutter::DisplayList > display_list, DlScalar opacity) override
void drawArc(const DlRect &oval_bounds, DlScalar start_degrees, DlScalar sweep_degrees, bool use_center) override
void drawDisplayList(const sk_sp< flutter::DisplayList > display_list, DlScalar opacity) override
void setBlendMode(flutter::DlBlendMode mode) override
void setStrokeMiter(DlScalar limit) override
void transform2DAffine(DlScalar mxx, DlScalar mxy, DlScalar mxt, DlScalar myx, DlScalar myy, DlScalar myt) override
void skew(DlScalar sx, DlScalar sy) override
void setColor(flutter::DlColor color) override
void setStrokeWidth(DlScalar width) override
std::shared_ptr< Texture > DisplayListToTexture(const sk_sp< flutter::DisplayList > &display_list, ISize size, AiksContext &context, bool reset_host_buffer, bool generate_mips)
Render the provided display list to a texture with the given size.
void drawPaint() override
Performs a first pass over the display list to collect all text frames.
void drawOval(const DlRect &bounds) override
void clipRect(const DlRect &rect, ClipOp clip_op, bool is_aa) override
void setMaskFilter(const flutter::DlMaskFilter *filter) override
void clipOval(const DlRect &bounds, ClipOp clip_op, bool is_aa) override
void setInvertColors(bool invert) override
flutter::DlScalar DlScalar
void transformFullPerspective(DlScalar mxx, DlScalar mxy, DlScalar mxz, DlScalar mxt, DlScalar myx, DlScalar myy, DlScalar myz, DlScalar myt, DlScalar mzx, DlScalar mzy, DlScalar mzz, DlScalar mzt, DlScalar mwx, DlScalar mwy, DlScalar mwz, DlScalar mwt) override
A 4x4 matrix using column-major storage.
void saveLayer(const DlRect &bounds, const flutter::SaveLayerOptions options, const flutter::DlImageFilter *backdrop) override
void drawImage(const sk_sp< flutter::DlImage > image, const DlPoint &point, flutter::DlImageSampling sampling, bool render_with_attributes) override
void rotate(DlScalar degrees) override
void drawTextBlob(const sk_sp< SkTextBlob > blob, DlScalar x, DlScalar y) override