5#ifndef FLUTTER_TESTING_DISPLAY_LIST_TESTING_H_
6#define FLUTTER_TESTING_DISPLAY_LIST_TESTING_H_
17 const DisplayList* b);
23 const sk_sp<const DisplayList>& a,
24 const sk_sp<const DisplayList>& b) {
34 const sk_sp<const DisplayList>& a,
35 const sk_sp<const DisplayList>& b) {
49extern std::ostream&
operator<<(std::ostream& os,
51extern std::ostream&
operator<<(std::ostream& os,
54extern std::ostream&
operator<<(std::ostream& os,
56extern std::ostream&
operator<<(std::ostream& os,
58extern std::ostream&
operator<<(std::ostream& os,
60extern std::ostream&
operator<<(std::ostream& os,
62extern std::ostream&
operator<<(std::ostream& os,
64extern std::ostream&
operator<<(std::ostream& os,
66extern std::ostream&
operator<<(std::ostream& os,
68extern std::ostream&
operator<<(std::ostream& os,
70extern std::ostream&
operator<<(std::ostream& os,
72extern std::ostream&
operator<<(std::ostream& os,
74extern std::ostream&
operator<<(std::ostream& os,
76extern std::ostream&
operator<<(std::ostream& os,
78extern std::ostream&
operator<<(std::ostream& os,
80extern std::ostream&
operator<<(std::ostream& os,
82extern std::ostream&
operator<<(std::ostream& os,
85extern std::ostream&
operator<<(std::ostream& os,
87extern std::ostream&
operator<<(std::ostream& os,
89extern std::ostream&
operator<<(std::ostream& os,
91extern std::ostream&
operator<<(std::ostream& os,
103 : os_(os), cur_indent_(cur_indent), indent_(indent) {}
119 void save()
override;
123 std::optional<int64_t> backdrop_id)
override;
145 bool is_aa)
override;
148 bool is_aa)
override;
173 void drawVertices(
const std::shared_ptr<DlVertices>& vertices,
178 bool render_with_attributes)
override;
183 bool render_with_attributes,
189 bool render_with_attributes)
override;
190 void drawAtlas(
const sk_sp<DlImage> atlas,
198 bool render_with_attributes)
override;
207 bool transparent_occluder,
221 void indent() { indent(indent_); }
222 void outdent() { outdent(indent_); }
223 void indent(
int spaces) { cur_indent_ += spaces; }
224 void outdent(
int spaces) { cur_indent_ -= spaces; }
227 std::ostream& out_array(std::string
name,
int count,
const T array[]);
229 std::ostream& startl();
235 explicit DlPathStreamer(DisplayListStreamDispatcher& dispatcher)
236 : dispatcher_(dispatcher) {}
238 void MoveTo(
const DlPoint& p2,
bool will_be_closed)
override;
241 bool ConicTo(
const DlPoint& cp,
247 void Close()
override;
251 bool done_with_info_ =
false;
292 switch (source->
type()) {
297 RecordByType(DisplayListOpType::kSetRuntimeEffectColorSource);
312 switch (filter->
type()) {
332 switch (filter->
type()) {
346 switch (filter->
type()) {
380 RecordByType(DisplayListOpType::kTransformFullPerspective);
409 bool is_aa)
override {
412 RecordByType(DisplayListOpType::kClipIntersectRoundRect);
415 RecordByType(DisplayListOpType::kClipDifferenceRoundRect);
421 bool is_aa)
override {
424 RecordByType(DisplayListOpType::kClipIntersectRoundSuperellipse);
427 RecordByType(DisplayListOpType::kClipDifferenceRoundSuperellipse);
446 std::optional<int64_t> backdrop_id)
override {
485 RecordByType(DisplayListOpType::kDrawRoundSuperellipse);
518 bool render_with_attributes)
override {
519 if (render_with_attributes) {
529 bool render_with_attributes,
537 bool render_with_attributes)
override {
538 if (render_with_attributes) {
539 RecordByType(DisplayListOpType::kDrawImageNineWithAttr);
552 bool render_with_attributes)
override {
571 bool transparent_occluder,
573 if (transparent_occluder) {
574 RecordByType(DisplayListOpType::kDrawShadowTransparentOccluder);
DisplayListOpCategory GetOpCategory(DlIndex index) const
Return an enum describing the general category of the operation record stored at the indicated index.
virtual T type() const =0
Represents an image whose allocation is (usually) resident on device memory.
Internal API for rendering recorded display lists to backends.
void drawColor(DlColor color, DlBlendMode mode) override
void clipRoundSuperellipse(const DlRoundSuperellipse &rse, DlClipOp clip_op, bool is_aa) override
void setImageFilter(const DlImageFilter *filter) override
void drawOval(const DlRect &bounds) override
void drawImage(const sk_sp< DlImage > image, const DlPoint &point, DlImageSampling sampling, bool render_with_attributes) override
void setColorSource(const DlColorSource *source) override
void setInvertColors(bool invert) override
void setColor(DlColor color) override
void drawImageNine(const sk_sp< DlImage > image, const DlIRect ¢er, const DlRect &dst, DlFilterMode filter, bool render_with_attributes) override
void setMaskFilter(const DlMaskFilter *filter) override
void saveLayer(const DlRect &bounds, const SaveLayerOptions options, const DlImageFilter *backdrop, std::optional< int64_t > backdrop_id) override
void transformReset() override
void drawRoundRect(const DlRoundRect &rrect) override
virtual void RecordRestore()
void skew(DlScalar sx, DlScalar sy) override
DisplayListGeneralReceiver()
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
virtual void RecordTransform()
static constexpr size_t kTypeCount
std::array< uint32_t, kTypeCount > type_counts_
void drawPoints(DlPointMode mode, uint32_t count, const DlPoint points[]) override
void rotate(DlScalar degrees) override
void translate(DlScalar tx, DlScalar ty) override
void scale(DlScalar sx, DlScalar sy) override
virtual void RecordByType(DisplayListOpType type)
void drawDashedLine(const DlPoint &p0, const DlPoint &p1, DlScalar on_length, DlScalar off_length) override
virtual void RecordInvalid()
void drawImageRect(const sk_sp< DlImage > image, const DlRect &src, const DlRect &dst, DlImageSampling sampling, bool render_with_attributes, DlSrcRectConstraint constraint) override
void setAntiAlias(bool aa) override
uint32_t GetOpsReceived()
void setBlendMode(DlBlendMode mode) override
void drawRoundSuperellipse(const DlRoundSuperellipse &rse) override
void setColorFilter(const DlColorFilter *filter) override
void drawCircle(const DlPoint ¢er, DlScalar radius) override
void drawDisplayList(const sk_sp< DisplayList > display_list, DlScalar opacity) override
virtual void RecordSaveLayer()
void setStrokeJoin(DlStrokeJoin join) override
void drawArc(const DlRect &oval_bounds, DlScalar start_degrees, DlScalar sweep_degrees, bool use_center) override
void drawPath(const DlPath &path) override
void clipPath(const DlPath &path, DlClipOp clip_op, bool is_aa) override
virtual void RecordSave()
void setStrokeMiter(float limit) override
std::array< uint32_t, kCategoryCount > category_counts_
void setStrokeWidth(float width) override
virtual void RecordSubDisplayList()
static constexpr size_t kCategoryCount
uint32_t GetOpsReceived(DisplayListOpType type)
void drawLine(const DlPoint &p0, const DlPoint &p1) override
virtual void RecordAttribute()
virtual void RecordRendering()
void clipOval(const DlRect &bounds, DlClipOp clip_op, bool is_aa) override
void clipRect(const DlRect &rect, DlClipOp clip_op, bool is_aa) 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 setStrokeCap(DlStrokeCap cap) override
void transform2DAffine(DlScalar mxx, DlScalar mxy, DlScalar mxt, DlScalar myx, DlScalar myy, DlScalar myt) override
uint32_t GetOpsReceived(DisplayListOpCategory category)
void drawShadow(const DlPath &path, const DlColor color, const DlScalar elevation, bool transparent_occluder, DlScalar dpr) override
void drawText(const std::shared_ptr< DlText > &text, DlScalar x, DlScalar y) override
void drawRect(const DlRect &rect) override
virtual void RecordClip()
void drawDiffRoundRect(const DlRoundRect &outer, const DlRoundRect &inner) override
virtual void RecordByCategory(DisplayListOpCategory category)
void clipRoundRect(const DlRoundRect &rrect, DlClipOp clip_op, bool is_aa) override
void setDrawStyle(DlDrawStyle style) override
void drawVertices(const std::shared_ptr< DlVertices > &vertices, DlBlendMode mode) override
void drawPaint() override
void setInvertColors(bool invert) override
void drawVertices(const std::shared_ptr< DlVertices > &vertices, DlBlendMode mode) override
void drawShadow(const DlPath &path, const DlColor color, const DlScalar elevation, bool transparent_occluder, DlScalar dpr) override
void drawImageNine(const sk_sp< DlImage > image, const DlIRect ¢er, const DlRect &dst, DlFilterMode filter, bool render_with_attributes) override
void clipRect(const DlRect &rect, DlClipOp clip_op, bool is_aa) override
void drawCircle(const DlPoint ¢er, DlScalar radius) override
void setImageFilter(const DlImageFilter *filter) override
void setStrokeCap(DlStrokeCap cap) override
void drawArc(const DlRect &oval_bounds, DlScalar start_degrees, DlScalar sweep_degrees, bool use_center) override
DisplayListStreamDispatcher(std::ostream &os, int cur_indent=2, int indent=2)
void rotate(DlScalar degrees) override
void transform2DAffine(DlScalar mxx, DlScalar mxy, DlScalar mxt, DlScalar myx, DlScalar myy, DlScalar myt) override
void drawText(const std::shared_ptr< DlText > &text, DlScalar x, DlScalar y) override
void drawDisplayList(const sk_sp< DisplayList > display_list, DlScalar opacity) override
void setAntiAlias(bool aa) override
void drawPoints(DlPointMode mode, uint32_t count, const DlPoint points[]) override
void drawImageRect(const sk_sp< DlImage > image, const DlRect &src, const DlRect &dst, DlImageSampling sampling, bool render_with_attributes, DlSrcRectConstraint constraint) override
void drawImage(const sk_sp< DlImage > image, const DlPoint &point, DlImageSampling sampling, bool render_with_attributes) override
void setMaskFilter(const DlMaskFilter *filter) override
void clipPath(const DlPath &path, DlClipOp clip_op, bool is_aa) override
void clipRoundSuperellipse(const DlRoundSuperellipse &rse, DlClipOp clip_op, bool is_aa) override
void clipRoundRect(const DlRoundRect &rrect, DlClipOp clip_op, bool is_aa) 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 drawDashedLine(const DlPoint &p0, const DlPoint &p1, DlScalar on_length, DlScalar off_length) override
void drawRoundRect(const DlRoundRect &rrect) override
void clipOval(const DlRect &bounds, DlClipOp clip_op, bool is_aa) override
void setStrokeJoin(DlStrokeJoin join) override
void setStrokeWidth(DlScalar width) override
void setStrokeMiter(DlScalar limit) 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 setColorFilter(const DlColorFilter *filter) override
void drawPath(const DlPath &path) override
friend class DlPathStreamer
void drawDiffRoundRect(const DlRoundRect &outer, const DlRoundRect &inner) override
void drawOval(const DlRect &bounds) override
void setBlendMode(DlBlendMode mode) override
void setDrawStyle(DlDrawStyle style) override
void drawRect(const DlRect &rect) override
void saveLayer(const DlRect &bounds, const SaveLayerOptions options, const DlImageFilter *backdrop, std::optional< int64_t > backdrop_id) override
void transformReset() override
void drawPaint() override
void skew(DlScalar sx, DlScalar sy) override
void drawRoundSuperellipse(const DlRoundSuperellipse &rse) override
void drawLine(const DlPoint &p0, const DlPoint &p1) override
void drawColor(DlColor color, DlBlendMode mode) override
void setColor(DlColor color) override
void translate(DlScalar tx, DlScalar ty) override
void scale(DlScalar sx, DlScalar sy) override
void setColorSource(const DlColorSource *source) override
DlVerbosePath(const DlPath &path)
FlutterVulkanImage * image
bool DisplayListsNE_Verbose(const DisplayList *a, const DisplayList *b)
bool DisplayListsEQ_Verbose(const DisplayList *a, const DisplayList *b)
impeller::Scalar DlScalar
impeller::PathReceiver DlPathReceiver
@ kLines
draw each separate pair of points as a line segment
@ kPolygon
draw each pair of overlapping points as a line segment
@ kPoints
draw each point separately
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
DEF_SWITCHES_START aot vmservice shared library name
DlVertexMode
Defines the way in which the vertices of a DlVertices object are separated into triangles into which ...
it will be possible to load the file into Perfetto s trace viewer use test Running tests that layout and measure text will not yield consistent results across various platforms Enabling this option will make font resolution default to the Ahem test font on all 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
void MoveTo(PathBuilder *builder, Scalar x, Scalar y)
void LineTo(PathBuilder *builder, Scalar x, Scalar y)
void CubicTo(PathBuilder *builder, Scalar x1, Scalar y1, Scalar x2, Scalar y2, Scalar x3, Scalar y3)
void Close(PathBuilder *builder)
flutter::testing::DisplayListStreamDispatcher DisplayListStreamDispatcher
std::ostream & operator<<(std::ostream &out, const impeller::Arc &a)
std::vector< Point > points