35SceneBuilder::SceneBuilder() {
38 PushLayer(std::make_shared<flutter::ContainerLayer>());
44 tonic::Float64List& matrix4,
47 auto layer = std::make_shared<flutter::TransformLayer>(matrix);
53 if (old_layer && old_layer->Layer()) {
54 layer->AssignOldLayer(old_layer->Layer().
get());
63 auto layer = std::make_shared<flutter::TransformLayer>(matrix);
67 if (old_layer && old_layer->Layer()) {
68 layer->AssignOldLayer(old_layer->Layer().
get());
81 auto layer = std::make_shared<flutter::ClipRectLayer>(
86 if (old_layer && old_layer->Layer()) {
87 layer->AssignOldLayer(old_layer->Layer().
get());
95 auto layer = std::make_shared<flutter::ClipRRectLayer>(
100 if (old_layer && old_layer->Layer()) {
101 layer->AssignOldLayer(old_layer->Layer().
get());
106 Dart_Handle layer_handle,
110 auto layer = std::make_shared<flutter::ClipRSuperellipseLayer>(
115 if (old_layer && old_layer->Layer()) {
116 layer->AssignOldLayer(old_layer->Layer().
get());
127 auto layer = std::make_shared<flutter::ClipPathLayer>(
132 if (old_layer && old_layer->Layer()) {
133 layer->AssignOldLayer(old_layer->Layer().
get());
142 auto layer = std::make_shared<flutter::OpacityLayer>(
147 if (old_layer && old_layer->Layer()) {
148 layer->AssignOldLayer(old_layer->Layer().
get());
156 std::make_shared<flutter::ColorFilterLayer>(color_filter->
filter());
160 if (old_layer && old_layer->Layer()) {
161 layer->AssignOldLayer(old_layer->Layer().
get());
170 auto layer = std::make_shared<flutter::ImageFilterLayer>(
176 if (old_layer && old_layer->Layer()) {
177 layer->AssignOldLayer(old_layer->Layer().
get());
182 Dart_Handle layer_handle,
185 Dart_Handle backdrop_id,
187 std::optional<int64_t> converted_backdrop_id;
188 if (Dart_IsInteger(backdrop_id)) {
190 Dart_IntegerToInt64(backdrop_id, &out);
191 converted_backdrop_id = out;
194 auto layer = std::make_shared<flutter::BackdropFilterLayer>(
196 converted_backdrop_id);
200 if (old_layer && old_layer->Layer()) {
201 layer->AssignOldLayer(old_layer->Layer().
get());
207 double mask_rect_left,
208 double mask_rect_right,
209 double mask_rect_top,
210 double mask_rect_bottom,
212 int filter_quality_index,
218 auto layer = std::make_shared<flutter::ShaderMaskLayer>(
223 if (old_layer && old_layer->Layer()) {
224 layer->AssignOldLayer(old_layer->Layer().
get());
229 AddLayer(retained_layer->Layer());
248 auto layer = std::make_unique<flutter::DisplayListLayer>(
250 !!(hints & 1), !!(hints & 2));
251 AddLayer(std::move(layer));
261 int filter_quality_index) {
263 auto layer = std::make_unique<flutter::TextureLayer>(
267 AddLayer(std::move(layer));
275 auto layer = std::make_unique<flutter::PlatformViewLayer>(
278 AddLayer(std::move(layer));
289 std::make_unique<flutter::PerformanceOverlayLayer>(enabled_options);
290 layer->set_paint_bounds(rect);
291 AddLayer(std::move(layer));
298 layer_stack_.clear();
302void SceneBuilder::AddLayer(std::shared_ptr<Layer> layer) {
305 if (!layer_stack_.empty()) {
306 layer_stack_.back()->Add(std::move(layer));
310void SceneBuilder::PushLayer(std::shared_ptr<ContainerLayer> layer) {
312 layer_stack_.push_back(std::move(layer));
315void SceneBuilder::PopLayer() {
317 if (layer_stack_.size() > 1) {
318 layer_stack_.pop_back();
const std::shared_ptr< const DlColorFilter > filter() const
static void MakeRetained(Dart_Handle dart_handle, const std::shared_ptr< flutter::ContainerLayer > &layer)
static DlImageSampling SamplingFromIndex(int filterQualityIndex)
const std::shared_ptr< DlImageFilter > filter(DlTileMode mode) const
sk_sp< DisplayList > display_list() const
flutter::DlRoundSuperellipse rsuperellipse() const
void pushOffset(Dart_Handle layer_handle, double dx, double dy, const fml::RefPtr< EngineLayer > &old_layer)
void pushClipPath(Dart_Handle layer_handle, const CanvasPath *path, int clip_behavior, const fml::RefPtr< EngineLayer > &old_layer)
void build(Dart_Handle scene_handle)
void pushTransform(Dart_Handle layer_handle, tonic::Float64List &matrix4, const fml::RefPtr< EngineLayer > &old_layer)
void pushColorFilter(Dart_Handle layer_handle, const ColorFilter *color_filter, const fml::RefPtr< EngineLayer > &old_layer)
void pushBackdropFilter(Dart_Handle layer_handle, ImageFilter *filter, int blend_mode, Dart_Handle backdrop_id, const fml::RefPtr< EngineLayer > &old_layer)
void pushClipRSuperellipse(Dart_Handle layer_handle, const RSuperellipse *rse, int clip_behavior, const fml::RefPtr< EngineLayer > &old_layer)
void addRetained(const fml::RefPtr< EngineLayer > &retained_layer)
void addTexture(double dx, double dy, double width, double height, int64_t texture_id, bool freeze, int filter_quality)
void pushShaderMask(Dart_Handle layer_handle, Shader *shader, double mask_rect_left, double mask_rect_right, double mask_rect_top, double mask_rect_bottom, int blend_mode, int filter_quality_index, const fml::RefPtr< EngineLayer > &old_layer)
void addPerformanceOverlay(uint64_t enabled_options, double left, double right, double top, double bottom)
void pushClipRRect(Dart_Handle layer_handle, const RRect &rrect, int clip_behavior, const fml::RefPtr< EngineLayer > &old_layer)
void pushClipRect(Dart_Handle layer_handle, double left, double right, double top, double bottom, int clip_behavior, const fml::RefPtr< EngineLayer > &old_layer)
void addPicture(double dx, double dy, Picture *picture, int hints)
void pushOpacity(Dart_Handle layer_handle, int alpha, double dx, double dy, const fml::RefPtr< EngineLayer > &old_layer)
void pushImageFilter(Dart_Handle layer_handle, const ImageFilter *image_filter, double dx, double dy, const fml::RefPtr< EngineLayer > &old_layer)
void addPlatformView(double dx, double dy, double width, double height, int64_t view_id)
static void create(Dart_Handle scene_handle, std::shared_ptr< flutter::Layer > rootLayer)
virtual std::shared_ptr< DlColorSource > shader(DlImageSampling)=0
#define IMPLEMENT_WRAPPERTYPEINFO(LibraryName, ClassName)
G_BEGIN_DECLS FlutterViewId view_id
#define FML_DCHECK(condition)
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
static float SafeNarrow(double value)
DlMatrix ToDlMatrix(const SkMatrix &matrix)
A 4x4 matrix using column-major storage.
static constexpr Matrix MakeTranslation(const Vector3 &t)
static constexpr TRect MakeLTRB(Type left, Type top, Type right, Type bottom)