Flutter Engine
 
Loading...
Searching...
No Matches
dl_receiver_utils.h
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef FLUTTER_DISPLAY_LIST_UTILS_DL_RECEIVER_UTILS_H_
6#define FLUTTER_DISPLAY_LIST_UTILS_DL_RECEIVER_UTILS_H_
7
10
11// This file contains various utility classes to ease implementing
12// a Flutter DisplayList DlOpReceiver, including:
13//
14// IgnoreAttributeDispatchHelper:
15// IgnoreClipDispatchHelper:
16// IgnoreTransformDispatchHelper
17// Empty overrides of all of the associated methods of DlOpReceiver
18// for receivers that only track some of the rendering operations
19
20namespace flutter {
21
22// A utility class that will ignore all DlOpReceiver methods relating
23// to the setting of attributes.
25 public:
26 void setAntiAlias(bool aa) override {}
27 void setInvertColors(bool invert) override {}
28 void setStrokeCap(DlStrokeCap cap) override {}
29 void setStrokeJoin(DlStrokeJoin join) override {}
30 void setDrawStyle(DlDrawStyle style) override {}
31 void setStrokeWidth(float width) override {}
32 void setStrokeMiter(float limit) override {}
33 void setColor(DlColor color) override {}
34 void setBlendMode(DlBlendMode mode) override {}
35 void setColorSource(const DlColorSource* source) override {}
36 void setImageFilter(const DlImageFilter* filter) override {}
37 void setColorFilter(const DlColorFilter* filter) override {}
38 void setMaskFilter(const DlMaskFilter* filter) override {}
39};
40
41// A utility class that will ignore all DlOpReceiver methods relating
42// to setting a clip.
43class IgnoreClipDispatchHelper : public virtual DlOpReceiver {
44 void clipRect(const DlRect& rect, DlClipOp clip_op, bool is_aa) override {}
45 void clipOval(const DlRect& bounds, DlClipOp clip_op, bool is_aa) override {}
46 void clipRoundRect(const DlRoundRect& rrect,
47 DlClipOp clip_op,
48 bool is_aa) override {}
49 void clipPath(const DlPath& path, DlClipOp clip_op, bool is_aa) override {}
50 void clipRoundSuperellipse(const DlRoundSuperellipse& rse,
51 DlClipOp clip_op,
52 bool is_aa) override {}
53};
54
55// A utility class that will ignore all DlOpReceiver methods relating
56// to modifying the transform.
58 public:
59 void translate(DlScalar tx, DlScalar ty) override {}
60 void scale(DlScalar sx, DlScalar sy) override {}
61 void rotate(DlScalar degrees) override {}
62 void skew(DlScalar sx, DlScalar sy) override {}
63 // clang-format off
64 // 2x3 2D affine subset of a 4x4 transform in row major order
66 DlScalar myx, DlScalar myy, DlScalar myt) override {}
67 // full 4x4 transform in row major order
69 DlScalar mxx, DlScalar mxy, DlScalar mxz, DlScalar mxt,
70 DlScalar myx, DlScalar myy, DlScalar myz, DlScalar myt,
71 DlScalar mzx, DlScalar mzy, DlScalar mzz, DlScalar mzt,
72 DlScalar mwx, DlScalar mwy, DlScalar mwz, DlScalar mwt) override {}
73 // clang-format on
74 void transformReset() override {}
75};
76
77class IgnoreDrawDispatchHelper : public virtual DlOpReceiver {
78 public:
79 void save() override {}
80 void saveLayer(const DlRect& bounds,
81 const SaveLayerOptions options,
82 const DlImageFilter* backdrop,
83 std::optional<int64_t> backdrop_id) override {}
84 void restore() override {}
85 void drawColor(DlColor color, DlBlendMode mode) override {}
86 void drawPaint() override {}
87 void drawLine(const DlPoint& p0, const DlPoint& p1) override {}
88 void drawDashedLine(const DlPoint& p0,
89 const DlPoint& p1,
90 DlScalar on_length,
91 DlScalar off_length) override {}
92 void drawRect(const DlRect& rect) override {}
93 void drawOval(const DlRect& bounds) override {}
94 void drawCircle(const DlPoint& center, DlScalar radius) override {}
95 void drawRoundRect(const DlRoundRect& rrect) override {}
96 void drawDiffRoundRect(const DlRoundRect& outer,
97 const DlRoundRect& inner) override {}
98 void drawRoundSuperellipse(const DlRoundSuperellipse& rse) override {}
99 void drawPath(const DlPath& path) override {}
100 void drawArc(const DlRect& oval_bounds,
101 DlScalar start_degrees,
102 DlScalar sweep_degrees,
103 bool use_center) override {}
105 uint32_t count,
106 const DlPoint points[]) override {}
107 void drawVertices(const std::shared_ptr<DlVertices>& vertices,
108 DlBlendMode mode) override {}
109 void drawImage(const sk_sp<DlImage> image,
110 const DlPoint& point,
111 DlImageSampling sampling,
112 bool render_with_attributes) override {}
113 void drawImageRect(const sk_sp<DlImage> image,
114 const DlRect& src,
115 const DlRect& dst,
116 DlImageSampling sampling,
117 bool render_with_attributes,
118 DlSrcRectConstraint constraint) override {}
119 void drawImageNine(const sk_sp<DlImage> image,
120 const DlIRect& center,
121 const DlRect& dst,
122 DlFilterMode filter,
123 bool render_with_attributes) override {}
124 void drawAtlas(const sk_sp<DlImage> atlas,
125 const DlRSTransform xform[],
126 const DlRect tex[],
127 const DlColor colors[],
128 int count,
129 DlBlendMode mode,
130 DlImageSampling sampling,
131 const DlRect* cull_rect,
132 bool render_with_attributes) override {}
133 void drawDisplayList(const sk_sp<DisplayList> display_list,
134 DlScalar opacity) override {}
135 void drawText(const std::shared_ptr<DlText>& text,
136 DlScalar x,
137 DlScalar y) override {}
138 void drawShadow(const DlPath& path,
139 const DlColor color,
140 const DlScalar elevation,
141 bool transparent_occluder,
142 DlScalar dpr) override {}
143};
144
145} // namespace flutter
146
147#endif // FLUTTER_DISPLAY_LIST_UTILS_DL_RECEIVER_UTILS_H_
Internal API for rendering recorded display lists to backends.
void setDrawStyle(DlDrawStyle style) override
void setColorSource(const DlColorSource *source) override
void setMaskFilter(const DlMaskFilter *filter) override
void setColorFilter(const DlColorFilter *filter) override
void setColor(DlColor color) override
void setStrokeJoin(DlStrokeJoin join) override
void setStrokeMiter(float limit) override
void setInvertColors(bool invert) override
void setStrokeCap(DlStrokeCap cap) override
void setBlendMode(DlBlendMode mode) override
void setStrokeWidth(float width) override
void setImageFilter(const DlImageFilter *filter) override
void drawColor(DlColor color, DlBlendMode mode) override
void drawRect(const DlRect &rect) override
void drawCircle(const DlPoint &center, DlScalar radius) override
void drawShadow(const DlPath &path, const DlColor color, const DlScalar elevation, bool transparent_occluder, DlScalar dpr) override
void drawOval(const DlRect &bounds) override
void drawPoints(DlPointMode mode, uint32_t count, const DlPoint points[]) override
void drawText(const std::shared_ptr< DlText > &text, DlScalar x, DlScalar y) override
void drawVertices(const std::shared_ptr< DlVertices > &vertices, DlBlendMode mode) override
void drawArc(const DlRect &oval_bounds, DlScalar start_degrees, DlScalar sweep_degrees, bool use_center) override
void drawAtlas(const sk_sp< DlImage > atlas, const DlRSTransform xform[], const DlRect tex[], const DlColor colors[], int count, DlBlendMode mode, DlImageSampling sampling, const DlRect *cull_rect, bool render_with_attributes) override
void saveLayer(const DlRect &bounds, const SaveLayerOptions options, const DlImageFilter *backdrop, std::optional< int64_t > backdrop_id) override
void drawImage(const sk_sp< DlImage > image, const DlPoint &point, DlImageSampling sampling, bool render_with_attributes) override
void drawRoundRect(const DlRoundRect &rrect) override
void drawDisplayList(const sk_sp< DisplayList > display_list, DlScalar opacity) override
void drawLine(const DlPoint &p0, const DlPoint &p1) override
void drawPath(const DlPath &path) override
void drawImageNine(const sk_sp< DlImage > image, const DlIRect &center, const DlRect &dst, DlFilterMode filter, bool render_with_attributes) override
void drawDiffRoundRect(const DlRoundRect &outer, const DlRoundRect &inner) override
void drawRoundSuperellipse(const DlRoundSuperellipse &rse) override
void drawImageRect(const sk_sp< DlImage > image, const DlRect &src, const DlRect &dst, DlImageSampling sampling, bool render_with_attributes, DlSrcRectConstraint constraint) override
void drawDashedLine(const DlPoint &p0, const DlPoint &p1, DlScalar on_length, DlScalar off_length) override
void scale(DlScalar sx, DlScalar sy) 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 skew(DlScalar sx, DlScalar sy) override
void rotate(DlScalar degrees) override
void translate(DlScalar tx, DlScalar ty) override
void transform2DAffine(DlScalar mxx, DlScalar mxy, DlScalar mxt, DlScalar myx, DlScalar myy, DlScalar myt) override
int32_t x
FlutterVulkanImage * image
std::u16string text
double y
impeller::Scalar DlScalar
DlStrokeJoin
Definition dl_paint.h:37
DlStrokeCap
Definition dl_paint.h:28
DlPointMode
Definition dl_types.h:15
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path
Definition switch_defs.h:52
DlDrawStyle
Definition dl_paint.h:19
DlSrcRectConstraint
Definition dl_types.h:21
BlendMode
Definition color.h:58
int32_t width
std::vector< Point > points