16 const std::shared_ptr<IOSContext>& context)
17 : platform_views_controller_(platform_views_controller), ios_context_(context) {
24DlCanvas* IOSExternalViewEmbedder::GetRootCanvas() {
31void IOSExternalViewEmbedder::CancelFrame() {
32 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::CancelFrame");
34 [platform_views_controller_ cancelFrame];
38void IOSExternalViewEmbedder::BeginFrame(
39 GrDirectContext* context,
43void IOSExternalViewEmbedder::PrepareFlutterView(
DlISize frame_size,
double device_pixel_ratio) {
45 [platform_views_controller_ beginFrameWithSize:frame_size];
49void IOSExternalViewEmbedder::PrerollCompositeEmbeddedView(
51 std::unique_ptr<EmbeddedViewParams>
params) {
52 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::PrerollCompositeEmbeddedView");
54 [platform_views_controller_ prerollCompositeEmbeddedView:
view_id withParams:std::move(
params)];
60 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::PostPrerollAction");
63 [platform_views_controller_ postPrerollActionWithThreadMerger:raster_thread_merger];
68DlCanvas* IOSExternalViewEmbedder::CompositeEmbeddedView(int64_t
view_id) {
69 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::CompositeEmbeddedView");
71 return [platform_views_controller_ compositeEmbeddedViewWithId:
view_id];
75void IOSExternalViewEmbedder::SubmitFlutterView(
76 int64_t flutter_view_id,
77 GrDirectContext* context,
78 const std::shared_ptr<impeller::AiksContext>& aiks_context,
79 std::unique_ptr<SurfaceFrame> frame) {
80 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::SubmitFlutterView");
86 [platform_views_controller_ submitFrame:std::move(frame) withIosContext:ios_context_];
87 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::DidSubmitFrame");
91void IOSExternalViewEmbedder::EndFrame(
92 bool should_resubmit_frame,
94 TRACE_EVENT0(
"flutter",
"IOSExternalViewEmbedder::EndFrame");
95 [platform_views_controller_ endFrameWithResubmit:should_resubmit_frame
96 threadMerger:raster_thread_merger];
100bool IOSExternalViewEmbedder::SupportsDynamicThreadMerging() {
105void IOSExternalViewEmbedder::PushFilterToVisitedPlatformViews(
106 const std::shared_ptr<DlImageFilter>& filter,
107 const DlRect& filter_rect) {
108 [platform_views_controller_ pushFilterToVisitedPlatformViews:filter withRect:filter_rect];
112void IOSExternalViewEmbedder::PushVisitedPlatformView(int64_t
view_id) {
113 [platform_views_controller_ pushVisitedPlatformViewId:
view_id];
Developer-facing API for rendering anything within the engine.
IOSExternalViewEmbedder(__weak FlutterPlatformViewsController *platform_views_controller, const std::shared_ptr< IOSContext > &context)
virtual ~IOSExternalViewEmbedder() override
const EmbeddedViewParams * params
G_BEGIN_DECLS FlutterViewId view_id
#define FML_CHECK(condition)
#define FML_DCHECK(condition)
constexpr int64_t kFlutterImplicitViewId
impeller::ISize32 DlISize
flutter::DlCanvas DlCanvas
#define TRACE_EVENT0(category_group, name)