Flutter Engine
 
Loading...
Searching...
No Matches
flutter::AndroidExternalViewEmbedderWrapper Class Referencefinal

#include <external_view_embedder_wrapper.h>

Inheritance diagram for flutter::AndroidExternalViewEmbedderWrapper:
flutter::ExternalViewEmbedder

Public Member Functions

 AndroidExternalViewEmbedderWrapper (bool meets_hcpp_criteria, const AndroidContext &android_context, std::shared_ptr< PlatformViewAndroidJNI > jni_facade, std::shared_ptr< AndroidSurfaceFactory > surface_factory, const TaskRunners &task_runners)
 
void PrerollCompositeEmbeddedView (int64_t view_id, std::unique_ptr< flutter::EmbeddedViewParams > params) 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
 
PostPrerollResult PostPrerollAction (const fml::RefPtr< fml::RasterThreadMerger > &raster_thread_merger) override
 
DlCanvasGetRootCanvas () override
 
void BeginFrame (GrDirectContext *context, const fml::RefPtr< fml::RasterThreadMerger > &raster_thread_merger) override
 
void PrepareFlutterView (DlISize frame_size, double device_pixel_ratio) override
 
void CancelFrame () override
 
void EndFrame (bool should_resubmit_frame, const fml::RefPtr< fml::RasterThreadMerger > &raster_thread_merger) override
 
bool SupportsDynamicThreadMerging () override
 
void Teardown () override
 
- Public Member Functions inherited from flutter::ExternalViewEmbedder
 ExternalViewEmbedder ()=default
 
virtual ~ExternalViewEmbedder ()=default
 
virtual void CollectView (int64_t view_id)
 
virtual void PrerollCompositeEmbeddedView (int64_t platform_view_id, std::unique_ptr< EmbeddedViewParams > params)=0
 
void SetUsedThisFrame (bool used_this_frame)
 
bool GetUsedThisFrame () const
 
virtual void PushVisitedPlatformView (int64_t platform_view_id)
 
virtual void PushFilterToVisitedPlatformViews (const std::shared_ptr< DlImageFilter > &filter, const DlRect &filter_rect)
 

Detailed Description

A wrapper for the android external view embedder classes that dynamically selects the implementation to use.

This wrapper is used to defer external view embedder construction until the impeller context setup has completed on the raster thread.

Definition at line 24 of file external_view_embedder_wrapper.h.

Constructor & Destructor Documentation

◆ AndroidExternalViewEmbedderWrapper()

flutter::AndroidExternalViewEmbedderWrapper::AndroidExternalViewEmbedderWrapper ( bool  meets_hcpp_criteria,
const AndroidContext android_context,
std::shared_ptr< PlatformViewAndroidJNI jni_facade,
std::shared_ptr< AndroidSurfaceFactory surface_factory,
const TaskRunners task_runners 
)

Definition at line 16 of file external_view_embedder_wrapper.cc.

23 meets_hcpp_criteria_(meets_hcpp_criteria),
24 android_context_(android_context),
25 task_runners_(task_runners),
26 jni_facade_(std::move(jni_facade)),
27 surface_factory_(std::move(surface_factory)) {}

Member Function Documentation

◆ BeginFrame()

void flutter::AndroidExternalViewEmbedderWrapper::BeginFrame ( GrDirectContext *  context,
const fml::RefPtr< fml::RasterThreadMerger > &  raster_thread_merger 
)
overridevirtual

Implements flutter::ExternalViewEmbedder.

Definition at line 103 of file external_view_embedder_wrapper.cc.

105 {
106 EnsureInitialized();
107 if (hcpp_view_embedder_) {
108 hcpp_view_embedder_->BeginFrame(context, raster_thread_merger);
109 } else {
110 non_hcpp_view_embedder_->BeginFrame(context, raster_thread_merger);
111 }
112}

◆ CancelFrame()

void flutter::AndroidExternalViewEmbedderWrapper::CancelFrame ( )
overridevirtual

Implements flutter::ExternalViewEmbedder.

Definition at line 127 of file external_view_embedder_wrapper.cc.

127 {
128 EnsureInitialized();
129 if (hcpp_view_embedder_) {
130 hcpp_view_embedder_->CancelFrame();
131 } else {
132 non_hcpp_view_embedder_->CancelFrame();
133 }
134}

◆ CompositeEmbeddedView()

DlCanvas * flutter::AndroidExternalViewEmbedderWrapper::CompositeEmbeddedView ( int64_t  view_id)
overridevirtual

Implements flutter::ExternalViewEmbedder.

Definition at line 60 of file external_view_embedder_wrapper.cc.

61 {
62 EnsureInitialized();
63 if (hcpp_view_embedder_) {
64 return hcpp_view_embedder_->CompositeEmbeddedView(view_id);
65 } else {
66 return non_hcpp_view_embedder_->CompositeEmbeddedView(view_id);
67 }
68}
G_BEGIN_DECLS FlutterViewId view_id

References view_id.

◆ EndFrame()

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

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 137 of file external_view_embedder_wrapper.cc.

139 {
140 EnsureInitialized();
141 if (hcpp_view_embedder_) {
142 hcpp_view_embedder_->EndFrame(should_resubmit_frame, raster_thread_merger);
143 } else {
144 non_hcpp_view_embedder_->EndFrame(should_resubmit_frame,
145 raster_thread_merger);
146 }
147}

◆ GetRootCanvas()

DlCanvas * flutter::AndroidExternalViewEmbedderWrapper::GetRootCanvas ( )
overridevirtual

Implements flutter::ExternalViewEmbedder.

Definition at line 97 of file external_view_embedder_wrapper.cc.

97 {
98 // On Android, the root surface is created from the on-screen render target.
99 return nullptr;
100}

◆ PostPrerollAction()

PostPrerollResult flutter::AndroidExternalViewEmbedderWrapper::PostPrerollAction ( const fml::RefPtr< fml::RasterThreadMerger > &  raster_thread_merger)
overridevirtual

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 87 of file external_view_embedder_wrapper.cc.

88 {
89 EnsureInitialized();
90 if (hcpp_view_embedder_) {
91 return hcpp_view_embedder_->PostPrerollAction(raster_thread_merger);
92 } else {
93 return non_hcpp_view_embedder_->PostPrerollAction(raster_thread_merger);
94 }
95}

◆ PrepareFlutterView()

void flutter::AndroidExternalViewEmbedderWrapper::PrepareFlutterView ( DlISize  frame_size,
double  device_pixel_ratio 
)
overridevirtual

Implements flutter::ExternalViewEmbedder.

Definition at line 115 of file external_view_embedder_wrapper.cc.

117 {
118 EnsureInitialized();
119 if (hcpp_view_embedder_) {
120 hcpp_view_embedder_->PrepareFlutterView(frame_size, device_pixel_ratio);
121 } else {
122 non_hcpp_view_embedder_->PrepareFlutterView(frame_size, device_pixel_ratio);
123 }
124}

◆ PrerollCompositeEmbeddedView()

void flutter::AndroidExternalViewEmbedderWrapper::PrerollCompositeEmbeddedView ( int64_t  view_id,
std::unique_ptr< flutter::EmbeddedViewParams params 
)
override

Definition at line 46 of file external_view_embedder_wrapper.cc.

48 {
49 EnsureInitialized();
50 if (hcpp_view_embedder_) {
51 hcpp_view_embedder_->PrerollCompositeEmbeddedView(view_id,
52 std::move(params));
53 } else {
54 non_hcpp_view_embedder_->PrerollCompositeEmbeddedView(view_id,
55 std::move(params));
56 }
57}
const EmbeddedViewParams * params

References params, and view_id.

◆ SubmitFlutterView()

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

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 71 of file external_view_embedder_wrapper.cc.

75 {
76 EnsureInitialized();
77 if (hcpp_view_embedder_) {
78 hcpp_view_embedder_->SubmitFlutterView(flutter_view_id, context,
79 aiks_context, std::move(frame));
80 } else {
81 non_hcpp_view_embedder_->SubmitFlutterView(flutter_view_id, context,
82 aiks_context, std::move(frame));
83 }
84}

◆ SupportsDynamicThreadMerging()

bool flutter::AndroidExternalViewEmbedderWrapper::SupportsDynamicThreadMerging ( )
overridevirtual

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 150 of file external_view_embedder_wrapper.cc.

150 {
151 EnsureInitialized();
152 if (hcpp_view_embedder_) {
153 return hcpp_view_embedder_->SupportsDynamicThreadMerging();
154 } else {
155 return non_hcpp_view_embedder_->SupportsDynamicThreadMerging();
156 }
157}

◆ Teardown()

void flutter::AndroidExternalViewEmbedderWrapper::Teardown ( )
overridevirtual

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 160 of file external_view_embedder_wrapper.cc.

160 {
161 EnsureInitialized();
162 if (hcpp_view_embedder_) {
163 hcpp_view_embedder_->Teardown();
164 } else {
165 non_hcpp_view_embedder_->Teardown();
166 }
167}

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