5#import "flutter/shell/platform/darwin/ios/ios_external_view_embedder.h"
7#include "flutter/common/constants.h"
12 const std::shared_ptr<FlutterPlatformViewsController>& platform_views_controller,
13 std::shared_ptr<IOSContext> context)
14 : platform_views_controller_(platform_views_controller), ios_context_(
std::move(context)) {
29 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::CancelFrame");
31 platform_views_controller_->CancelFrame();
42 platform_views_controller_->BeginFrame(frame_size);
48 std::unique_ptr<EmbeddedViewParams>
params) {
49 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::PrerollCompositeEmbeddedView");
51 platform_views_controller_->PrerollCompositeEmbeddedView(view_id, std::move(
params));
57 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::PostPrerollAction");
65 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::CompositeEmbeddedView");
67 return platform_views_controller_->CompositeEmbeddedView(view_id);
72 int64_t flutter_view_id,
74 const std::shared_ptr<impeller::AiksContext>& aiks_context,
75 std::unique_ptr<SurfaceFrame>
frame) {
76 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::SubmitFlutterView");
81 platform_views_controller_->SubmitFrame(context, ios_context_, std::move(
frame));
82 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::DidSubmitFrame");
87 bool should_resubmit_frame,
89 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::EndFrame");
90 platform_views_controller_->EndFrame(should_resubmit_frame, raster_thread_merger);
100 const std::shared_ptr<const DlImageFilter>& filter,
101 const SkRect& filter_rect) {
102 platform_views_controller_->PushFilterToVisitedPlatformViews(filter, filter_rect);
107 platform_views_controller_->PushVisitedPlatformView(view_id);
Developer-facing API for rendering anything within the engine.
void EndFrame(bool should_resubmit_frame, const fml::RefPtr< fml::RasterThreadMerger > &raster_thread_merger) override
void BeginFrame(GrDirectContext *context, const fml::RefPtr< fml::RasterThreadMerger > &raster_thread_merger) override
void SubmitFlutterView(int64_t flutter_view_id, GrDirectContext *context, const std::shared_ptr< impeller::AiksContext > &aiks_context, std::unique_ptr< SurfaceFrame > frame) override
IOSExternalViewEmbedder(const std::shared_ptr< FlutterPlatformViewsController > &platform_views_controller, std::shared_ptr< IOSContext > context)
void CancelFrame() override
DlCanvas * GetRootCanvas() override
bool SupportsDynamicThreadMerging() override
void PrepareFlutterView(SkISize frame_size, double device_pixel_ratio) override
DlCanvas * CompositeEmbeddedView(int64_t view_id) override
void PushFilterToVisitedPlatformViews(const std::shared_ptr< const DlImageFilter > &filter, const SkRect &filter_rect) override
PostPrerollResult PostPrerollAction(const fml::RefPtr< fml::RasterThreadMerger > &raster_thread_merger) override
void PushVisitedPlatformView(int64_t view_id) override
virtual ~IOSExternalViewEmbedder() override
void PrerollCompositeEmbeddedView(int64_t view_id, std::unique_ptr< flutter::EmbeddedViewParams > params) override
const EmbeddedViewParams * params
#define FML_CHECK(condition)
#define FML_DCHECK(condition)
constexpr int64_t kFlutterImplicitViewId
#define TRACE_EVENT0(category_group, name)