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

The external view embedder used by |ShellTestPlatformViewGL|. More...

#include <shell_test_external_view_embedder.h>

Inheritance diagram for flutter::ShellTestExternalViewEmbedder:
flutter::ExternalViewEmbedder

Public Types

using EndFrameCallBack = std::function< void(bool, fml::RefPtr< fml::RasterThreadMerger >)>
 

Public Member Functions

 ShellTestExternalViewEmbedder (const EndFrameCallBack &end_frame_call_back, PostPrerollResult post_preroll_result, bool support_thread_merging)
 
 ~ShellTestExternalViewEmbedder ()=default
 
void UpdatePostPrerollResult (PostPrerollResult post_preroll_result)
 
int GetSubmittedFrameCount ()
 
SkISize GetLastSubmittedFrameSize ()
 
MutatorsStack GetStack (int64_t)
 
std::vector< int64_t > GetVisitedPlatformViews ()
 
- 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

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< EmbeddedViewParams > params) override
 
PostPrerollResult PostPrerollAction (const fml::RefPtr< fml::RasterThreadMerger > &raster_thread_merger) override
 
DlCanvasCompositeEmbeddedView (int64_t view_id) override
 
void PushVisitedPlatformView (int64_t view_id) override
 
void PushFilterToVisitedPlatformViews (const std::shared_ptr< const DlImageFilter > &filter, const SkRect &filter_rect) 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
 
DlCanvasGetRootCanvas () override
 
bool SupportsDynamicThreadMerging () override
 

Detailed Description

The external view embedder used by |ShellTestPlatformViewGL|.

Definition at line 16 of file shell_test_external_view_embedder.h.

Member Typedef Documentation

◆ EndFrameCallBack

Definition at line 18 of file shell_test_external_view_embedder.h.

Constructor & Destructor Documentation

◆ ShellTestExternalViewEmbedder()

flutter::ShellTestExternalViewEmbedder::ShellTestExternalViewEmbedder ( const EndFrameCallBack end_frame_call_back,
PostPrerollResult  post_preroll_result,
bool  support_thread_merging 
)

Definition at line 9 of file shell_test_external_view_embedder.cc.

13 : end_frame_call_back_(end_frame_call_back),
14 post_preroll_result_(post_preroll_result),
15 support_thread_merging_(support_thread_merging),
16 submitted_frame_count_(0) {}

◆ ~ShellTestExternalViewEmbedder()

flutter::ShellTestExternalViewEmbedder::~ShellTestExternalViewEmbedder ( )
default

Member Function Documentation

◆ BeginFrame()

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

Implements flutter::ExternalViewEmbedder.

Definition at line 43 of file shell_test_external_view_embedder.cc.

45 {}

◆ CancelFrame()

void flutter::ShellTestExternalViewEmbedder::CancelFrame ( )
overrideprivatevirtual

Implements flutter::ExternalViewEmbedder.

Definition at line 40 of file shell_test_external_view_embedder.cc.

40{}

◆ CompositeEmbeddedView()

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

Implements flutter::ExternalViewEmbedder.

Definition at line 89 of file shell_test_external_view_embedder.cc.

90 {
91 return slices_[view_id]->canvas();
92}

◆ EndFrame()

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

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 114 of file shell_test_external_view_embedder.cc.

116 {
117 end_frame_call_back_(should_resubmit_frame, raster_thread_merger);
118}

◆ GetLastSubmittedFrameSize()

SkISize flutter::ShellTestExternalViewEmbedder::GetLastSubmittedFrameSize ( )

Definition at line 27 of file shell_test_external_view_embedder.cc.

27 {
28 return last_submitted_frame_size_;
29}

◆ GetRootCanvas()

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

Implements flutter::ExternalViewEmbedder.

Definition at line 121 of file shell_test_external_view_embedder.cc.

121 {
122 return nullptr;
123}

◆ GetStack()

MutatorsStack flutter::ShellTestExternalViewEmbedder::GetStack ( int64_t  view_id)

Definition at line 35 of file shell_test_external_view_embedder.cc.

35 {
36 return mutators_stacks_[view_id];
37}

◆ GetSubmittedFrameCount()

int flutter::ShellTestExternalViewEmbedder::GetSubmittedFrameCount ( )

Definition at line 23 of file shell_test_external_view_embedder.cc.

23 {
24 return submitted_frame_count_;
25}

◆ GetVisitedPlatformViews()

std::vector< int64_t > flutter::ShellTestExternalViewEmbedder::GetVisitedPlatformViews ( )

Definition at line 31 of file shell_test_external_view_embedder.cc.

31 {
32 return visited_platform_views_;
33}

◆ PostPrerollAction()

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

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 66 of file shell_test_external_view_embedder.cc.

67 {
68 FML_DCHECK(raster_thread_merger);
69 return post_preroll_result_;
70}
#define FML_DCHECK(condition)
Definition logging.h:103

◆ PrepareFlutterView()

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

Implements flutter::ExternalViewEmbedder.

Definition at line 48 of file shell_test_external_view_embedder.cc.

50 {
51 visited_platform_views_.clear();
52 mutators_stacks_.clear();
53 current_composition_params_.clear();
54}

◆ PrerollCompositeEmbeddedView()

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

Implements flutter::ExternalViewEmbedder.

Definition at line 57 of file shell_test_external_view_embedder.cc.

59 {
60 SkRect view_bounds = SkRect::Make(frame_size_);
61 auto view = std::make_unique<DisplayListEmbedderViewSlice>(view_bounds);
62 slices_.insert_or_assign(view_id, std::move(view));
63}
static SkRect Make(const SkISize &size)
Definition SkRect.h:669

◆ PushFilterToVisitedPlatformViews()

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

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 78 of file shell_test_external_view_embedder.cc.

80 {
81 for (int64_t id : visited_platform_views_) {
82 EmbeddedViewParams params = current_composition_params_[id];
83 params.PushImageFilter(filter, filter_rect);
84 current_composition_params_[id] = params;
85 mutators_stacks_[id] = params.mutatorsStack();
86 }
87}
const EmbeddedViewParams * params
const uintptr_t id

◆ PushVisitedPlatformView()

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

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 73 of file shell_test_external_view_embedder.cc.

73 {
74 visited_platform_views_.push_back(view_id);
75}

◆ SubmitFlutterView()

void flutter::ShellTestExternalViewEmbedder::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 95 of file shell_test_external_view_embedder.cc.

99 {
100 if (!frame) {
101 return;
102 }
103 frame->Submit();
104 if (frame->SkiaSurface()) {
105 last_submitted_frame_size_ = SkISize::Make(frame->SkiaSurface()->width(),
106 frame->SkiaSurface()->height());
107 } else {
108 last_submitted_frame_size_ = SkISize::MakeEmpty();
109 }
110 submitted_frame_count_++;
111}
double frame
Definition examples.cpp:31
static constexpr SkISize MakeEmpty()
Definition SkSize.h:22
static constexpr SkISize Make(int32_t w, int32_t h)
Definition SkSize.h:20

◆ SupportsDynamicThreadMerging()

bool flutter::ShellTestExternalViewEmbedder::SupportsDynamicThreadMerging ( )
overrideprivatevirtual

Reimplemented from flutter::ExternalViewEmbedder.

Definition at line 125 of file shell_test_external_view_embedder.cc.

125 {
126 return support_thread_merging_;
127}

◆ UpdatePostPrerollResult()

void flutter::ShellTestExternalViewEmbedder::UpdatePostPrerollResult ( PostPrerollResult  post_preroll_result)

Definition at line 18 of file shell_test_external_view_embedder.cc.

19 {
20 post_preroll_result_ = post_preroll_result;
21}

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