Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
display_list_testing.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_TESTING_DISPLAY_LIST_TESTING_H_
6#define FLUTTER_TESTING_DISPLAY_LIST_TESTING_H_
7
8#include <ostream>
9
10#include "flutter/display_list/display_list.h"
11#include "flutter/display_list/dl_op_receiver.h"
12
13namespace flutter {
14namespace testing {
15
16bool DisplayListsEQ_Verbose(const DisplayList* a, const DisplayList* b);
17bool inline DisplayListsEQ_Verbose(const DisplayList& a, const DisplayList& b) {
18 return DisplayListsEQ_Verbose(&a, &b);
19}
22 return DisplayListsEQ_Verbose(a.get(), b.get());
23}
25bool inline DisplayListsNE_Verbose(const DisplayList& a, const DisplayList& b) {
26 return DisplayListsNE_Verbose(&a, &b);
27}
30 return DisplayListsNE_Verbose(a.get(), b.get());
31}
32
33extern std::ostream& operator<<(std::ostream& os,
34 const DisplayList& display_list);
35extern std::ostream& operator<<(std::ostream& os, const DlPaint& paint);
36extern std::ostream& operator<<(std::ostream& os, const DlBlendMode& mode);
37extern std::ostream& operator<<(std::ostream& os, const DlCanvas::ClipOp& op);
38extern std::ostream& operator<<(std::ostream& os,
39 const DlCanvas::PointMode& op);
40extern std::ostream& operator<<(std::ostream& os,
42extern std::ostream& operator<<(std::ostream& os, const DlStrokeCap& cap);
43extern std::ostream& operator<<(std::ostream& os, const DlStrokeJoin& join);
44extern std::ostream& operator<<(std::ostream& os, const DlDrawStyle& style);
45extern std::ostream& operator<<(std::ostream& os, const DlBlurStyle& style);
46extern std::ostream& operator<<(std::ostream& os, const DlFilterMode& mode);
47extern std::ostream& operator<<(std::ostream& os, const DlColor& color);
48extern std::ostream& operator<<(std::ostream& os, DlImageSampling sampling);
49extern std::ostream& operator<<(std::ostream& os, const DlVertexMode& mode);
50extern std::ostream& operator<<(std::ostream& os, const DlTileMode& mode);
51extern std::ostream& operator<<(std::ostream& os, const DlImage* image);
52
54 public:
55 explicit DisplayListStreamDispatcher(std::ostream& os,
56 int cur_indent = 2,
57 int indent = 2)
58 : os_(os), cur_indent_(cur_indent), indent_(indent) {}
59
60 void setAntiAlias(bool aa) override;
61 void setDrawStyle(DlDrawStyle style) override;
62 void setColor(DlColor color) override;
63 void setStrokeWidth(SkScalar width) override;
64 void setStrokeMiter(SkScalar limit) override;
65 void setStrokeCap(DlStrokeCap cap) override;
66 void setStrokeJoin(DlStrokeJoin join) override;
67 void setColorSource(const DlColorSource* source) override;
68 void setColorFilter(const DlColorFilter* filter) override;
69 void setInvertColors(bool invert) override;
70 void setBlendMode(DlBlendMode mode) override;
71 void setPathEffect(const DlPathEffect* effect) override;
72 void setMaskFilter(const DlMaskFilter* filter) override;
73 void setImageFilter(const DlImageFilter* filter) override;
74
75 void save() override;
76 void saveLayer(const SkRect& bounds,
78 const DlImageFilter* backdrop) override;
79 void restore() override;
80
81 void translate(SkScalar tx, SkScalar ty) override;
82 void scale(SkScalar sx, SkScalar sy) override;
83 void rotate(SkScalar degrees) override;
84 void skew(SkScalar sx, SkScalar sy) override;
85 // clang-format off
87 SkScalar myx, SkScalar myy, SkScalar myt) override;
89 SkScalar mxx, SkScalar mxy, SkScalar mxz, SkScalar mxt,
90 SkScalar myx, SkScalar myy, SkScalar myz, SkScalar myt,
91 SkScalar mzx, SkScalar mzy, SkScalar mzz, SkScalar mzt,
92 SkScalar mwx, SkScalar mwy, SkScalar mwz, SkScalar mwt) override;
93 // clang-format on
94 void transformReset() override;
95
96 void clipRect(const SkRect& rect, ClipOp clip_op, bool is_aa) override;
97 void clipRRect(const SkRRect& rrect, ClipOp clip_op, bool is_aa) override;
98 void clipPath(const SkPath& path, ClipOp clip_op, bool is_aa) override;
99
100 void drawColor(DlColor color, DlBlendMode mode) override;
101 void drawPaint() override;
102 void drawLine(const SkPoint& p0, const SkPoint& p1) override;
103 void drawRect(const SkRect& rect) override;
104 void drawOval(const SkRect& bounds) override;
105 void drawCircle(const SkPoint& center, SkScalar radius) override;
106 void drawRRect(const SkRRect& rrect) override;
107 void drawDRRect(const SkRRect& outer, const SkRRect& inner) override;
108 void drawPath(const SkPath& path) override;
109 void drawArc(const SkRect& oval_bounds,
110 SkScalar start_degrees,
111 SkScalar sweep_degrees,
112 bool use_center) override;
114 uint32_t count,
115 const SkPoint points[]) override;
116 void drawVertices(const DlVertices* vertices, DlBlendMode mode) override;
117 void drawImage(const sk_sp<DlImage> image,
118 const SkPoint point,
119 DlImageSampling sampling,
120 bool render_with_attributes) override;
122 const SkRect& src,
123 const SkRect& dst,
124 DlImageSampling sampling,
125 bool render_with_attributes,
126 SrcRectConstraint constraint) override;
128 const SkIRect& center,
129 const SkRect& dst,
130 DlFilterMode filter,
131 bool render_with_attributes) override;
132 void drawAtlas(const sk_sp<DlImage> atlas,
133 const SkRSXform xform[],
134 const SkRect tex[],
135 const DlColor colors[],
136 int count,
138 DlImageSampling sampling,
139 const SkRect* cull_rect,
140 bool render_with_attributes) override;
141 void drawDisplayList(const sk_sp<DisplayList> display_list,
142 SkScalar opacity) override;
143 void drawTextBlob(const sk_sp<SkTextBlob> blob,
144 SkScalar x,
145 SkScalar y) override;
146 void drawTextFrame(const std::shared_ptr<impeller::TextFrame>& text_frame,
147 SkScalar x,
148 SkScalar y) override;
149 void drawShadow(const SkPath& path,
150 const DlColor color,
151 const SkScalar elevation,
152 bool transparent_occluder,
153 SkScalar dpr) override;
154
155 private:
156 std::ostream& os_;
157 int cur_indent_;
158 int indent_;
159
160 void indent() { indent(indent_); }
161 void outdent() { outdent(indent_); }
162 void indent(int spaces) { cur_indent_ += spaces; }
163 void outdent(int spaces) { cur_indent_ -= spaces; }
164
165 template <class T>
166 std::ostream& out_array(std::string name, int count, const T array[]);
167
168 std::ostream& startl();
169
170 void out(const DlColorFilter& filter);
171 void out(const DlColorFilter* filter);
172 void out(const DlImageFilter& filter);
173 void out(const DlImageFilter* filter);
174};
175
176} // namespace testing
177} // namespace flutter
178
179#endif // FLUTTER_TESTING_DISPLAY_LIST_TESTING_H_
const char * options
int count
static const int points[]
SkColor4f color
static SkScalar center(float pos0, float pos1)
Represents an image whose allocation is (usually) resident on device memory.
Definition dl_image.h:30
Internal API for rendering recorded display lists to backends.
DlCanvas::SrcRectConstraint SrcRectConstraint
Holds all of the data (both required and optional) for a DisplayList drawVertices call.
Definition dl_vertices.h:71
void drawOval(const SkRect &bounds) override
void setImageFilter(const DlImageFilter *filter) override
void drawVertices(const DlVertices *vertices, DlBlendMode mode) override
DisplayListStreamDispatcher(std::ostream &os, int cur_indent=2, int indent=2)
void drawDRRect(const SkRRect &outer, const SkRRect &inner) override
void clipRect(const SkRect &rect, ClipOp clip_op, bool is_aa) override
void drawShadow(const SkPath &path, const DlColor color, const SkScalar elevation, bool transparent_occluder, SkScalar dpr) override
void drawTextFrame(const std::shared_ptr< impeller::TextFrame > &text_frame, SkScalar x, SkScalar y) override
void drawImageNine(const sk_sp< DlImage > image, const SkIRect &center, const SkRect &dst, DlFilterMode filter, bool render_with_attributes) override
void setMaskFilter(const DlMaskFilter *filter) override
void drawImageRect(const sk_sp< DlImage > image, const SkRect &src, const SkRect &dst, DlImageSampling sampling, bool render_with_attributes, SrcRectConstraint constraint) override
void translate(SkScalar tx, SkScalar ty) override
void saveLayer(const SkRect &bounds, const SaveLayerOptions options, const DlImageFilter *backdrop) override
void transform2DAffine(SkScalar mxx, SkScalar mxy, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myt) override
void setColorFilter(const DlColorFilter *filter) override
void drawArc(const SkRect &oval_bounds, SkScalar start_degrees, SkScalar sweep_degrees, bool use_center) override
void drawCircle(const SkPoint &center, SkScalar radius) override
void drawImage(const sk_sp< DlImage > image, const SkPoint point, DlImageSampling sampling, bool render_with_attributes) override
void drawAtlas(const sk_sp< DlImage > atlas, const SkRSXform xform[], const SkRect tex[], const DlColor colors[], int count, DlBlendMode mode, DlImageSampling sampling, const SkRect *cull_rect, bool render_with_attributes) override
void drawDisplayList(const sk_sp< DisplayList > display_list, SkScalar opacity) override
void clipRRect(const SkRRect &rrect, ClipOp clip_op, bool is_aa) override
void drawLine(const SkPoint &p0, const SkPoint &p1) override
void drawPoints(PointMode mode, uint32_t count, const SkPoint points[]) override
void drawColor(DlColor color, DlBlendMode mode) override
void skew(SkScalar sx, SkScalar sy) override
void drawRRect(const SkRRect &rrect) override
void setColorSource(const DlColorSource *source) override
void setPathEffect(const DlPathEffect *effect) 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 drawTextBlob(const sk_sp< SkTextBlob > blob, SkScalar x, SkScalar y) override
void clipPath(const SkPath &path, ClipOp clip_op, bool is_aa) override
const Paint & paint
sk_sp< SkImage > image
Definition examples.cpp:29
SkBitmap source
Definition examples.cpp:28
float SkScalar
Definition extension.cpp:12
static bool b
struct MyStruct a[10]
gboolean invert
double y
double x
bool DisplayListsNE_Verbose(const DisplayList *a, const DisplayList *b)
std::ostream & operator<<(std::ostream &os, const DisplayList &display_list)
bool DisplayListsEQ_Verbose(const DisplayList *a, const DisplayList *b)
DlStrokeJoin
Definition dl_paint.h:38
DlStrokeCap
Definition dl_paint.h:29
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 switches.h:57
DEF_SWITCHES_START aot vmservice shared library name
Definition switches.h:32
DlVertexMode
Defines the way in which the vertices of a DlVertices object are separated into triangles into which ...
Definition dl_vertices.h:20
DlDrawStyle
Definition dl_paint.h:20
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive mode
Definition switches.h:228
#define T
int32_t width
const Scalar scale