Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | List of all members
flutter::IOSExternalViewEmbedder Class Reference

#include <ios_external_view_embedder.h>

Inheritance diagram for flutter::IOSExternalViewEmbedder:
flutter::ExternalViewEmbedder

Public Member Functions

 IOSExternalViewEmbedder (const std::shared_ptr< FlutterPlatformViewsController > &platform_views_controller, std::shared_ptr< IOSContext > context)
 
virtual ~IOSExternalViewEmbedder () override
 
- Public Member Functions inherited from flutter::ExternalViewEmbedder
 ExternalViewEmbedder ()=default
 
virtual ~ExternalViewEmbedder ()=default
 
virtual void CollectView (int64_t view_id)
 
virtual void Teardown ()
 
void SetUsedThisFrame (bool used_this_frame)
 
bool GetUsedThisFrame () const
 

Private Member Functions

DlCanvasGetRootCanvas () override
 
void CancelFrame () override
 
void BeginFrame (GrDirectContext *context, const fml::RefPtr< fml::RasterThreadMerger > &raster_thread_merger) override
 
void PrepareFlutterView (SkISize frame_size, double device_pixel_ratio) override
 
void PrerollCompositeEmbeddedView (int64_t view_id, std::unique_ptr< flutter::EmbeddedViewParams > params) override
 
PostPrerollResult PostPrerollAction (const fml::RefPtr< fml::RasterThreadMerger > &raster_thread_merger) override
 
DlCanvasCompositeEmbeddedView (int64_t view_id) override
 
void SubmitFlutterView (int64_t flutter_view_id, GrDirectContext *context, const std::shared_ptr< impeller::AiksContext > &aiks_context, std::unique_ptr< SurfaceFrame > frame) override
 
void EndFrame (bool should_resubmit_frame, const fml::RefPtr< fml::RasterThreadMerger > &raster_thread_merger) override
 
bool SupportsDynamicThreadMerging () override
 
void PushFilterToVisitedPlatformViews (const std::shared_ptr< const DlImageFilter > &filter, const SkRect &filter_rect) override
 
void PushVisitedPlatformView (int64_t view_id) override
 

Detailed Description

Definition at line 13 of file ios_external_view_embedder.h.

Constructor & Destructor Documentation

◆ IOSExternalViewEmbedder()

flutter::IOSExternalViewEmbedder::IOSExternalViewEmbedder ( const std::shared_ptr< FlutterPlatformViewsController > &  platform_views_controller,
std::shared_ptr< IOSContext context 
)

Definition at line 11 of file ios_external_view_embedder.mm.

14 : platform_views_controller_(platform_views_controller), ios_context_(std::move(context)) {
15 FML_CHECK(ios_context_);
16}
#define FML_CHECK(condition)
Definition logging.h:85

◆ ~IOSExternalViewEmbedder()

flutter::IOSExternalViewEmbedder::~IOSExternalViewEmbedder ( )
overridevirtualdefault

Member Function Documentation

◆ BeginFrame()

void flutter::IOSExternalViewEmbedder::BeginFrame ( GrDirectContext context,
const fml::RefPtr< fml::RasterThreadMerger > &  raster_thread_merger 
)
overrideprivatevirtual

Implements flutter::ExternalViewEmbedder.

Definition at line 35 of file ios_external_view_embedder.mm.

37 {}

◆ CancelFrame()

void flutter::IOSExternalViewEmbedder::CancelFrame ( )
overrideprivatevirtual

Implements flutter::ExternalViewEmbedder.

Definition at line 28 of file ios_external_view_embedder.mm.

28 {
29 TRACE_EVENT0("flutter", "IOSExternalViewEmbedder::CancelFrame");
30 FML_CHECK(platform_views_controller_);
31 platform_views_controller_->CancelFrame();
32}
#define TRACE_EVENT0(category_group, name)

◆ CompositeEmbeddedView()

DlCanvas * flutter::IOSExternalViewEmbedder::CompositeEmbeddedView ( int64_t  view_id)
overrideprivatevirtual

Implements flutter::ExternalViewEmbedder.

Definition at line 64 of file ios_external_view_embedder.mm.

64 {
65 TRACE_EVENT0("flutter", "IOSExternalViewEmbedder::CompositeEmbeddedView");
66 FML_CHECK(platform_views_controller_);
67 return platform_views_controller_->CompositeEmbeddedView(view_id);
68}

◆ EndFrame()

void flutter::IOSExternalViewEmbedder::EndFrame ( bool  should_resubmit_frame,
const fml::RefPtr< fml::RasterThreadMerger > &  raster_thread_merger 
)
overrideprivatevirtual

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 86 of file ios_external_view_embedder.mm.

88 {
89 TRACE_EVENT0("flutter", "IOSExternalViewEmbedder::EndFrame");
90 platform_views_controller_->EndFrame(should_resubmit_frame, raster_thread_merger);
91}

◆ GetRootCanvas()

DlCanvas * flutter::IOSExternalViewEmbedder::GetRootCanvas ( )
overrideprivatevirtual

Implements flutter::ExternalViewEmbedder.

Definition at line 21 of file ios_external_view_embedder.mm.

21 {
22 // On iOS, the root surface is created from the on-screen render target. Only the surfaces for the
23 // various overlays are controlled by this class.
24 return nullptr;
25}

◆ PostPrerollAction()

PostPrerollResult flutter::IOSExternalViewEmbedder::PostPrerollAction ( const fml::RefPtr< fml::RasterThreadMerger > &  raster_thread_merger)
overrideprivatevirtual

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 55 of file ios_external_view_embedder.mm.

56 {
57 TRACE_EVENT0("flutter", "IOSExternalViewEmbedder::PostPrerollAction");
58 FML_CHECK(platform_views_controller_);
59 PostPrerollResult result = platform_views_controller_->PostPrerollAction(raster_thread_merger);
60 return result;
61}
GAsyncResult * result

◆ PrepareFlutterView()

void flutter::IOSExternalViewEmbedder::PrepareFlutterView ( SkISize  frame_size,
double  device_pixel_ratio 
)
overrideprivatevirtual

Implements flutter::ExternalViewEmbedder.

Definition at line 40 of file ios_external_view_embedder.mm.

40 {
41 FML_CHECK(platform_views_controller_);
42 platform_views_controller_->BeginFrame(frame_size);
43}

◆ PrerollCompositeEmbeddedView()

void flutter::IOSExternalViewEmbedder::PrerollCompositeEmbeddedView ( int64_t  view_id,
std::unique_ptr< flutter::EmbeddedViewParams params 
)
overrideprivatevirtual

Implements flutter::ExternalViewEmbedder.

Definition at line 46 of file ios_external_view_embedder.mm.

48 {
49 TRACE_EVENT0("flutter", "IOSExternalViewEmbedder::PrerollCompositeEmbeddedView");
50 FML_CHECK(platform_views_controller_);
51 platform_views_controller_->PrerollCompositeEmbeddedView(view_id, std::move(params));
52}
const EmbeddedViewParams * params

◆ PushFilterToVisitedPlatformViews()

void flutter::IOSExternalViewEmbedder::PushFilterToVisitedPlatformViews ( const std::shared_ptr< const DlImageFilter > &  filter,
const SkRect filter_rect 
)
overrideprivatevirtual

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 99 of file ios_external_view_embedder.mm.

101 {
102 platform_views_controller_->PushFilterToVisitedPlatformViews(filter, filter_rect);
103}

◆ PushVisitedPlatformView()

void flutter::IOSExternalViewEmbedder::PushVisitedPlatformView ( int64_t  view_id)
overrideprivatevirtual

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 106 of file ios_external_view_embedder.mm.

106 {
107 platform_views_controller_->PushVisitedPlatformView(view_id);
108}

◆ SubmitFlutterView()

void flutter::IOSExternalViewEmbedder::SubmitFlutterView ( int64_t  flutter_view_id,
GrDirectContext context,
const std::shared_ptr< impeller::AiksContext > &  aiks_context,
std::unique_ptr< SurfaceFrame frame 
)
overrideprivatevirtual

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 71 of file ios_external_view_embedder.mm.

75 {
76 TRACE_EVENT0("flutter", "IOSExternalViewEmbedder::SubmitFlutterView");
77 // TODO(dkwingsmt): This class only supports rendering into the implicit view.
78 // Properly support multi-view in the future.
79 FML_DCHECK(flutter_view_id == kFlutterImplicitViewId);
80 FML_CHECK(platform_views_controller_);
81 platform_views_controller_->SubmitFrame(context, ios_context_, std::move(frame));
82 TRACE_EVENT0("flutter", "IOSExternalViewEmbedder::DidSubmitFrame");
83}
double frame
Definition examples.cpp:31
#define FML_DCHECK(condition)
Definition logging.h:103
constexpr int64_t kFlutterImplicitViewId
Definition constants.h:35

◆ SupportsDynamicThreadMerging()

bool flutter::IOSExternalViewEmbedder::SupportsDynamicThreadMerging ( )
overrideprivatevirtual

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 94 of file ios_external_view_embedder.mm.

94 {
95 return true;
96}

The documentation for this class was generated from the following files: