Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
dl_op_records.h File Reference

Go to the source code of this file.

Classes

struct  flutter::DLOp
 
struct  flutter::SetStyleOp
 
struct  flutter::SetStrokeWidthOp
 
struct  flutter::SetStrokeMiterOp
 
struct  flutter::SetColorOp
 
struct  flutter::SetBlendModeOp
 
struct  flutter::SetImageColorSourceOp
 
struct  flutter::SetRuntimeEffectColorSourceOp
 
struct  flutter::SetSharedImageFilterOp
 
struct  flutter::SaveOpBase
 
struct  flutter::SaveOp
 
struct  flutter::SaveLayerOpBase
 
struct  flutter::SaveLayerOp
 
struct  flutter::SaveLayerBackdropOp
 
struct  flutter::RestoreOp
 
struct  flutter::TransformClipOpBase
 
struct  flutter::TranslateOp
 
struct  flutter::ScaleOp
 
struct  flutter::RotateOp
 
struct  flutter::SkewOp
 
struct  flutter::Transform2DAffineOp
 
struct  flutter::TransformFullPerspectiveOp
 
struct  flutter::TransformResetOp
 
struct  flutter::DrawOpBase
 
struct  flutter::DrawPaintOp
 
struct  flutter::DrawColorOp
 
struct  flutter::DrawPathOp
 
struct  flutter::DrawDashedLineOp
 
struct  flutter::DrawArcOp
 
struct  flutter::DrawVerticesOp
 
struct  flutter::DrawImageRectOp
 
struct  flutter::DrawAtlasBaseOp
 
struct  flutter::DrawAtlasOp
 
struct  flutter::DrawAtlasCulledOp
 
struct  flutter::DrawDisplayListOp
 
struct  flutter::DrawTextOp
 

Namespaces

namespace  flutter
 

Macros

#define DEFINE_SET_BOOL_OP(name)
 
#define DEFINE_SET_ENUM_OP(name)
 
#define DEFINE_SET_CLEAR_DLATTR_OP(name, field)
 
#define DEFINE_CLIP_SHAPE_OP(shapename, shapetype, clipop)
 
#define DEFINE_CLIP_PATH_OP(clipop)
 
#define DEFINE_DRAW_1ARG_OP(op_name, arg_type, arg_name)
 
#define DEFINE_DRAW_2ARG_OP(op_name, type1, name1, type2, name2)
 
#define DEFINE_DRAW_POINTS_OP(name, mode)
 
#define DEFINE_DRAW_IMAGE_OP(name, with_attributes)
 
#define DEFINE_DRAW_IMAGE_NINE_OP(name, render_with_attributes)
 
#define DEFINE_DRAW_SHADOW_OP(name, transparent_occluder)
 

Enumerations

enum class  flutter::DisplayListCompare {
  flutter::kUseBulkCompare ,
  flutter::kNotEqual ,
  flutter::kEqual
}
 

Functions

 flutter::DEFINE_DRAW_POINTS_OP (Points, kPoints)
 
 flutter::DEFINE_DRAW_POINTS_OP (Lines, kLines)
 
 flutter::DEFINE_DRAW_POINTS_OP (Polygon, kPolygon)
 

Macro Definition Documentation

◆ DEFINE_CLIP_PATH_OP

#define DEFINE_CLIP_PATH_OP (   clipop)
Value:
struct Clip##clipop##PathOp final : TransformClipOpBase { \
static constexpr auto kType = DisplayListOpType::kClip##clipop##Path; \
\
Clip##clipop##PathOp(const DlPath& path, bool is_aa) \
: TransformClipOpBase(kType), is_aa(is_aa), path(path) {} \
\
const bool is_aa; \
const DlPath path; \
\
void dispatch(DlOpReceiver& receiver) const { \
receiver.clipPath(path, DlClipOp::k##clipop, is_aa); \
} \
\
DisplayListCompare equals(const Clip##clipop##PathOp* other) const { \
return is_aa == other->is_aa && path == other->path \
? DisplayListCompare::kEqual \
: DisplayListCompare::kNotEqual; \
} \
};
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

Definition at line 518 of file dl_op_records.h.

519 : TransformClipOpBase { \
520 static constexpr auto kType = DisplayListOpType::kClip##clipop##Path; \
521 \
522 Clip##clipop##PathOp(const DlPath& path, bool is_aa) \
523 : TransformClipOpBase(kType), is_aa(is_aa), path(path) {} \
524 \
525 const bool is_aa; \
526 const DlPath path; \
527 \
528 void dispatch(DlOpReceiver& receiver) const { \
529 receiver.clipPath(path, DlClipOp::k##clipop, is_aa); \
530 } \
531 \
532 DisplayListCompare equals(const Clip##clipop##PathOp* other) const { \
533 return is_aa == other->is_aa && path == other->path \
534 ? DisplayListCompare::kEqual \
535 : DisplayListCompare::kNotEqual; \
536 } \
537 };
CanvasPath Path
Definition dart_ui.cc:54
flutter::DlPath DlPath

◆ DEFINE_CLIP_SHAPE_OP

#define DEFINE_CLIP_SHAPE_OP (   shapename,
  shapetype,
  clipop 
)
Value:
struct Clip##clipop##shapename##Op final : TransformClipOpBase { \
static constexpr auto kType = DisplayListOpType::kClip##clipop##shapename; \
\
Clip##clipop##shapename##Op(shapetype shape, bool is_aa) \
: TransformClipOpBase(kType), is_aa(is_aa), shape(shape) {} \
\
const bool is_aa; \
const shapetype shape; \
\
void dispatch(DlOpReceiver& receiver) const { \
receiver.clip##shapename(shape, DlClipOp::k##clipop, is_aa); \
} \
};

Definition at line 493 of file dl_op_records.h.

494 : TransformClipOpBase { \
495 static constexpr auto kType = DisplayListOpType::kClip##clipop##shapename; \
496 \
497 Clip##clipop##shapename##Op(shapetype shape, bool is_aa) \
498 : TransformClipOpBase(kType), is_aa(is_aa), shape(shape) {} \
499 \
500 const bool is_aa; \
501 const shapetype shape; \
502 \
503 void dispatch(DlOpReceiver& receiver) const { \
504 receiver.clip##shapename(shape, DlClipOp::k##clipop, is_aa); \
505 } \
506 };
void Op(SkPathBuilder *one, SkPathBuilder *two, SkPathOp op)
Definition path_ops.cc:44

◆ DEFINE_DRAW_1ARG_OP

#define DEFINE_DRAW_1ARG_OP (   op_name,
  arg_type,
  arg_name 
)
Value:
struct Draw##op_name##Op final : DrawOpBase { \
static constexpr auto kType = DisplayListOpType::kDraw##op_name; \
\
explicit Draw##op_name##Op(arg_type arg_name) \
: DrawOpBase(kType), arg_name(arg_name) {} \
\
const arg_type arg_name; \
\
void dispatch(DlOpReceiver& receiver) const { \
receiver.draw##op_name(arg_name); \
} \
};

Definition at line 582 of file dl_op_records.h.

583 : DrawOpBase { \
584 static constexpr auto kType = DisplayListOpType::kDraw##op_name; \
585 \
586 explicit Draw##op_name##Op(arg_type arg_name) \
587 : DrawOpBase(kType), arg_name(arg_name) {} \
588 \
589 const arg_type arg_name; \
590 \
591 void dispatch(DlOpReceiver& receiver) const { \
592 receiver.draw##op_name(arg_name); \
593 } \
594 };

◆ DEFINE_DRAW_2ARG_OP

#define DEFINE_DRAW_2ARG_OP (   op_name,
  type1,
  name1,
  type2,
  name2 
)
Value:
struct Draw##op_name##Op final : DrawOpBase { \
static constexpr auto kType = DisplayListOpType::kDraw##op_name; \
\
Draw##op_name##Op(type1 name1, type2 name2) \
: DrawOpBase(kType), name1(name1), name2(name2) {} \
\
const type1 name1; \
const type2 name2; \
\
void dispatch(DlOpReceiver& receiver) const { \
receiver.draw##op_name(name1, name2); \
} \
};

Definition at line 626 of file dl_op_records.h.

627 : DrawOpBase { \
628 static constexpr auto kType = DisplayListOpType::kDraw##op_name; \
629 \
630 Draw##op_name##Op(type1 name1, type2 name2) \
631 : DrawOpBase(kType), name1(name1), name2(name2) {} \
632 \
633 const type1 name1; \
634 const type2 name2; \
635 \
636 void dispatch(DlOpReceiver& receiver) const { \
637 receiver.draw##op_name(name1, name2); \
638 } \
639 };

◆ DEFINE_DRAW_IMAGE_NINE_OP

#define DEFINE_DRAW_IMAGE_NINE_OP (   name,
  render_with_attributes 
)

Definition at line 806 of file dl_op_records.h.

807 : DrawOpBase { \
808 static constexpr auto kType = DisplayListOpType::k##name; \
809 static constexpr uint32_t kDepthInc = 9; \
810 \
811 name##Op(const sk_sp<DlImage>& image, \
812 const DlIRect& center, \
813 const DlRect& dst, \
814 DlFilterMode mode) \
815 : DrawOpBase(kType), \
816 center(center), \
817 dst(dst), \
818 mode(mode), \
819 image(std::move(image)) {} \
820 \
821 const DlIRect center; \
822 const DlRect dst; \
823 const DlFilterMode mode; \
824 const sk_sp<DlImage> image; \
825 \
826 void dispatch(DlOpReceiver& receiver) const { \
827 receiver.drawImageNine(image, center, dst, mode, \
828 render_with_attributes); \
829 } \
830 \
831 DisplayListCompare equals(const name##Op* other) const { \
832 return (center == other->center && dst == other->dst && \
833 mode == other->mode && image->Equals(other->image)) \
834 ? DisplayListCompare::kEqual \
835 : DisplayListCompare::kNotEqual; \
836 } \
837 };
FlutterVulkanImage * image
const char * name
Definition fuchsia.cc:50
impeller::Rect DlRect
impeller::IRect32 DlIRect
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

◆ DEFINE_DRAW_IMAGE_OP

#define DEFINE_DRAW_IMAGE_OP (   name,
  with_attributes 
)
Value:
struct name##Op final : DrawOpBase { \
static constexpr auto kType = DisplayListOpType::k##name; \
\
name##Op(const sk_sp<DlImage>& image, \
const DlPoint& point, \
DlImageSampling sampling) \
: DrawOpBase(kType), \
point(point), \
sampling(sampling), \
image(std::move(image)) {} \
\
const DlPoint point; \
const DlImageSampling sampling; \
const sk_sp<DlImage> image; \
\
void dispatch(DlOpReceiver& receiver) const { \
receiver.drawImage(image, point, sampling, with_attributes); \
} \
\
DisplayListCompare equals(const name##Op* other) const { \
return (point == other->point && sampling == other->sampling && \
image->Equals(other->image)) \
? DisplayListCompare::kEqual \
: DisplayListCompare::kNotEqual; \
} \
};

Definition at line 733 of file dl_op_records.h.

734 : DrawOpBase { \
735 static constexpr auto kType = DisplayListOpType::k##name; \
736 \
737 name##Op(const sk_sp<DlImage>& image, \
738 const DlPoint& point, \
739 DlImageSampling sampling) \
740 : DrawOpBase(kType), \
741 point(point), \
742 sampling(sampling), \
743 image(std::move(image)) {} \
744 \
745 const DlPoint point; \
746 const DlImageSampling sampling; \
747 const sk_sp<DlImage> image; \
748 \
749 void dispatch(DlOpReceiver& receiver) const { \
750 receiver.drawImage(image, point, sampling, with_attributes); \
751 } \
752 \
753 DisplayListCompare equals(const name##Op* other) const { \
754 return (point == other->point && sampling == other->sampling && \
755 image->Equals(other->image)) \
756 ? DisplayListCompare::kEqual \
757 : DisplayListCompare::kNotEqual; \
758 } \
759 };
impeller::Point DlPoint

◆ DEFINE_DRAW_POINTS_OP

#define DEFINE_DRAW_POINTS_OP (   name,
  mode 
)
Value:
struct Draw##name##Op final : DrawOpBase { \
static constexpr auto kType = DisplayListOpType::kDraw##name; \
\
explicit Draw##name##Op(uint32_t count) \
: DrawOpBase(kType), count(count) {} \
\
const uint32_t count; \
\
void dispatch(DlOpReceiver& receiver) const { \
const DlPoint* pts = reinterpret_cast<const DlPoint*>(this + 1); \
receiver.drawPoints(DlPointMode::mode, count, pts); \
} \
};

Definition at line 696 of file dl_op_records.h.

697 : DrawOpBase { \
698 static constexpr auto kType = DisplayListOpType::kDraw##name; \
699 \
700 explicit Draw##name##Op(uint32_t count) \
701 : DrawOpBase(kType), count(count) {} \
702 \
703 const uint32_t count; \
704 \
705 void dispatch(DlOpReceiver& receiver) const { \
706 const DlPoint* pts = reinterpret_cast<const DlPoint*>(this + 1); \
707 receiver.drawPoints(DlPointMode::mode, count, pts); \
708 } \
709 };

◆ DEFINE_DRAW_SHADOW_OP

#define DEFINE_DRAW_SHADOW_OP (   name,
  transparent_occluder 
)
Value:
struct Draw##name##Op final : DrawOpBase { \
static constexpr auto kType = DisplayListOpType::kDraw##name; \
\
Draw##name##Op(const DlPath& path, \
DlColor color, \
DlScalar elevation, \
DlScalar dpr) \
: DrawOpBase(kType), \
color(color), \
elevation(elevation), \
dpr(dpr), \
path(path) {} \
\
const DlColor color; \
const DlScalar elevation; \
const DlScalar dpr; \
const DlPath path; \
\
void dispatch(DlOpReceiver& receiver) const { \
receiver.drawShadow(path, color, elevation, transparent_occluder, dpr); \
} \
\
DisplayListCompare equals(const Draw##name##Op* other) const { \
return color == other->color && elevation == other->elevation && \
dpr == other->dpr && path == other->path \
? DisplayListCompare::kEqual \
: DisplayListCompare::kNotEqual; \
} \
};

Definition at line 1021 of file dl_op_records.h.

1022 : DrawOpBase { \
1023 static constexpr auto kType = DisplayListOpType::kDraw##name; \
1024 \
1025 Draw##name##Op(const DlPath& path, \
1026 DlColor color, \
1027 DlScalar elevation, \
1028 DlScalar dpr) \
1029 : DrawOpBase(kType), \
1030 color(color), \
1031 elevation(elevation), \
1032 dpr(dpr), \
1033 path(path) {} \
1034 \
1035 const DlColor color; \
1036 const DlScalar elevation; \
1037 const DlScalar dpr; \
1038 const DlPath path; \
1039 \
1040 void dispatch(DlOpReceiver& receiver) const { \
1041 receiver.drawShadow(path, color, elevation, transparent_occluder, dpr); \
1042 } \
1043 \
1044 DisplayListCompare equals(const Draw##name##Op* other) const { \
1045 return color == other->color && elevation == other->elevation && \
1046 dpr == other->dpr && path == other->path \
1047 ? DisplayListCompare::kEqual \
1048 : DisplayListCompare::kNotEqual; \
1049 } \
1050 };
impeller::Scalar DlScalar
flutter::DlColor DlColor

◆ DEFINE_SET_BOOL_OP

#define DEFINE_SET_BOOL_OP (   name)
Value:
struct Set##name##Op final : DLOp { \
static constexpr auto kType = DisplayListOpType::kSet##name; \
\
explicit Set##name##Op(bool value) : DLOp(kType), value(value) {} \
\
const bool value; \
\
void dispatch(DlOpReceiver& receiver) const { receiver.set##name(value); } \
};
int32_t value

Definition at line 71 of file dl_op_records.h.

72 : DLOp { \
73 static constexpr auto kType = DisplayListOpType::kSet##name; \
74 \
75 explicit Set##name##Op(bool value) : DLOp(kType), value(value) {} \
76 \
77 const bool value; \
78 \
79 void dispatch(DlOpReceiver& receiver) const { receiver.set##name(value); } \
80 };

◆ DEFINE_SET_CLEAR_DLATTR_OP

#define DEFINE_SET_CLEAR_DLATTR_OP (   name,
  field 
)
Value:
struct Clear##name##Op final : DLOp { \
static constexpr auto kType = DisplayListOpType::kClear##name; \
\
Clear##name##Op() : DLOp(kType) {} \
\
void dispatch(DlOpReceiver& receiver) const { \
receiver.set##name(nullptr); \
} \
}; \
struct SetPod##name##Op final : DLOp { \
static constexpr auto kType = DisplayListOpType::kSetPod##name; \
\
SetPod##name##Op() : DLOp(kType) {} \
\
void dispatch(DlOpReceiver& receiver) const { \
const Dl##name* filter = reinterpret_cast<const Dl##name*>(this + 1); \
receiver.set##name(filter); \
} \
};

Definition at line 169 of file dl_op_records.h.

170 : DLOp { \
171 static constexpr auto kType = DisplayListOpType::kClear##name; \
172 \
173 Clear##name##Op() : DLOp(kType) {} \
174 \
175 void dispatch(DlOpReceiver& receiver) const { \
176 receiver.set##name(nullptr); \
177 } \
178 }; \
179 struct SetPod##name##Op final : DLOp { \
180 static constexpr auto kType = DisplayListOpType::kSetPod##name; \
181 \
182 SetPod##name##Op() : DLOp(kType) {} \
183 \
184 void dispatch(DlOpReceiver& receiver) const { \
185 const Dl##name* filter = reinterpret_cast<const Dl##name*>(this + 1); \
186 receiver.set##name(filter); \
187 } \
188 };

◆ DEFINE_SET_ENUM_OP

#define DEFINE_SET_ENUM_OP (   name)
Value:
struct SetStroke##name##Op final : DLOp { \
static constexpr auto kType = DisplayListOpType::kSetStroke##name; \
\
explicit SetStroke##name##Op(DlStroke##name value) \
: DLOp(kType), value(value) {} \
\
const DlStroke##name value; \
\
void dispatch(DlOpReceiver& receiver) const { \
receiver.setStroke##name(value); \
} \
};

Definition at line 86 of file dl_op_records.h.

87 : DLOp { \
88 static constexpr auto kType = DisplayListOpType::kSetStroke##name; \
89 \
90 explicit SetStroke##name##Op(DlStroke##name value) \
91 : DLOp(kType), value(value) {} \
92 \
93 const DlStroke##name value; \
94 \
95 void dispatch(DlOpReceiver& receiver) const { \
96 receiver.setStroke##name(value); \
97 } \
98 };