Flutter Engine
 
Loading...
Searching...
No Matches
flutter::OverlayLayer Struct Reference

State holder for a Flutter overlay layer. More...

#include <surface_pool.h>

Public Member Functions

 OverlayLayer (int id, std::unique_ptr< AndroidSurface > android_surface, std::unique_ptr< Surface > surface)
 
 ~OverlayLayer ()
 
 OverlayLayer (UIView *overlay_view, UIView *overlay_view_wrapper, std::unique_ptr< IOSSurface > ios_surface, std::unique_ptr< Surface > surface)
 
 ~OverlayLayer ()=default
 
void UpdateViewState (UIView *flutter_view, DlRect rect, int64_t view_id, int64_t overlay_id)
 

Public Attributes

const int id
 
const std::unique_ptr< AndroidSurfaceandroid_surface
 
std::unique_ptr< Surfacesurface
 
intptr_t gr_context_key
 
UIView * overlay_view
 
UIView * overlay_view_wrapper
 
std::unique_ptr< IOSSurfaceios_surface
 
bool did_submit_last_frame
 

Detailed Description

State holder for a Flutter overlay layer.

An Overlay layer represents an android.view.View in the C side.

The id is used to uniquely identify the layer and recycle it between frames.

Definition at line 22 of file surface_pool.h.

Constructor & Destructor Documentation

◆ OverlayLayer() [1/2]

flutter::OverlayLayer::OverlayLayer ( int  id,
std::unique_ptr< AndroidSurface android_surface,
std::unique_ptr< Surface surface 
)

Definition at line 11 of file surface_pool.cc.

14 : id(id),
16 surface(std::move(surface)) {};
const std::unique_ptr< AndroidSurface > android_surface
std::unique_ptr< Surface > surface

References surface.

◆ ~OverlayLayer() [1/2]

flutter::OverlayLayer::~OverlayLayer ( )
default

◆ OverlayLayer() [2/2]

flutter::OverlayLayer::OverlayLayer ( UIView *  overlay_view,
UIView *  overlay_view_wrapper,
std::unique_ptr< IOSSurface ios_surface,
std::unique_ptr< Surface surface 
)

Definition at line 12 of file overlay_layer_pool.mm.

References surface.

◆ ~OverlayLayer() [2/2]

flutter::OverlayLayer::~OverlayLayer ( )
default

Member Function Documentation

◆ UpdateViewState()

void flutter::OverlayLayer::UpdateViewState ( UIView *  flutter_view,
DlRect  rect,
int64_t  view_id,
int64_t  overlay_id 
)

Definition at line 21 of file overlay_layer_pool.mm.

24 {
25 auto screenScale = [UIScreen mainScreen].scale;
26 // Set the size of the overlay view wrapper.
27 // This wrapper view masks the overlay view.
29 CGRectMake(rect.GetX() / screenScale, rect.GetY() / screenScale,
30 rect.GetWidth() / screenScale, rect.GetHeight() / screenScale);
31 // Set a unique view identifier, so the overlay_view_wrapper can be identified in XCUITests.
32 overlay_view_wrapper.accessibilityIdentifier =
33 [NSString stringWithFormat:@"platform_view[%lld].overlay[%lld]", view_id, overlay_id];
34
35 // Set the size of the overlay view.
36 // This size is equal to the device screen size.
37 overlay_view.frame = [flutter_view convertRect:flutter_view.bounds toView:overlay_view_wrapper];
38 // Set a unique view identifier, so the overlay_view can be identified in XCUITests.
39 overlay_view.accessibilityIdentifier =
40 [NSString stringWithFormat:@"platform_view[%lld].overlay_view[%lld]", view_id, overlay_id];
41}
G_BEGIN_DECLS FlutterViewId view_id

References impeller::TRect< T >::GetHeight(), impeller::TRect< T >::GetWidth(), impeller::TRect< T >::GetX(), impeller::TRect< T >::GetY(), overlay_view, overlay_view_wrapper, and view_id.

Member Data Documentation

◆ android_surface

const std::unique_ptr<AndroidSurface> flutter::OverlayLayer::android_surface

Definition at line 33 of file surface_pool.h.

◆ did_submit_last_frame

bool flutter::OverlayLayer::did_submit_last_frame

Definition at line 36 of file overlay_layer_pool.h.

◆ gr_context_key

intptr_t flutter::OverlayLayer::gr_context_key

Definition at line 43 of file surface_pool.h.

◆ id

const int flutter::OverlayLayer::id

Definition at line 30 of file surface_pool.h.

◆ ios_surface

std::unique_ptr<IOSSurface> flutter::OverlayLayer::ios_surface

Definition at line 32 of file overlay_layer_pool.h.

◆ overlay_view

UIView* flutter::OverlayLayer::overlay_view

Definition at line 30 of file overlay_layer_pool.h.

Referenced by UpdateViewState().

◆ overlay_view_wrapper

UIView* flutter::OverlayLayer::overlay_view_wrapper

Definition at line 31 of file overlay_layer_pool.h.

Referenced by UpdateViewState().

◆ surface

std::unique_ptr< Surface > flutter::OverlayLayer::surface

Definition at line 36 of file surface_pool.h.


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