Flutter iOS Embedder
FlutterPlatformViewsController.mm File Reference
#import "shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsController.h"
#include "flutter/display_list/effects/image_filters/dl_blur_image_filter.h"
#include "flutter/display_list/utils/dl_matrix_clip_tracker.h"
#include "flutter/flow/surface_frame.h"
#include "flutter/flow/view_slicer.h"
#include "flutter/fml/make_copyable.h"
#include "flutter/fml/synchronization/count_down_latch.h"
#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterOverlayView.h"
#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterView.h"
#import "flutter/shell/platform/darwin/ios/framework/Source/UIViewController+FlutterScreenAndSceneIfLoaded.h"
#include "flutter/shell/platform/darwin/ios/framework/Source/overlay_layer_pool.h"
#import "flutter/shell/platform/darwin/ios/ios_surface.h"

Go to the source code of this file.

Classes

struct  LayerData
 
struct  PlatformViewData
 

Typedefs

using LayersMap = std::unordered_map< int64_t, LayerData >
 

Functions

static CATransform3D GetCATransform3DFromDlMatrix (const DlMatrix &matrix)
 
static void ResetAnchor (CALayer *layer)
 
static CGRect GetCGRectFromDlRect (const DlRect &clipDlRect)
 

Variables

static constexpr NSUInteger kFlutterClippingMaskViewPoolCapacity = 5
 
std::unordered_map< int64_t, std::unique_ptr< flutter::EmbedderViewSlice > > _slices
 
std::unordered_map< std::string, NSObject< FlutterPlatformViewFactory > * > _factories
 
std::unordered_map< std::string, FlutterPlatformViewGestureRecognizersBlockingPolicy_gestureRecognizersBlockingPolicies
 
fml::RefPtr< fml::TaskRunner > _platformTaskRunner
 
std::unordered_map< int64_t, PlatformViewData_platformViews
 
std::unordered_map< int64_t, flutter::EmbeddedViewParams > _currentCompositionParams
 
std::unordered_set< int64_t > _viewsToDispose
 
std::vector< int64_t > _compositionOrder
 
std::vector< int64_t > _visitedPlatformViews
 
std::unordered_set< int64_t > _viewsToRecomposite
 
std::vector< int64_t > _previousCompositionOrder
 

Typedef Documentation

◆ LayersMap

using LayersMap = std::unordered_map<int64_t, LayerData>

Definition at line 31 of file FlutterPlatformViewsController.mm.

Function Documentation

◆ GetCATransform3DFromDlMatrix()

static CATransform3D GetCATransform3DFromDlMatrix ( const DlMatrix &  matrix)
static

Definition at line 46 of file FlutterPlatformViewsController.mm.

46  {
47  CATransform3D transform = CATransform3DIdentity;
48  transform.m11 = matrix.m[0];
49  transform.m12 = matrix.m[1];
50  transform.m13 = matrix.m[2];
51  transform.m14 = matrix.m[3];
52 
53  transform.m21 = matrix.m[4];
54  transform.m22 = matrix.m[5];
55  transform.m23 = matrix.m[6];
56  transform.m24 = matrix.m[7];
57 
58  transform.m31 = matrix.m[8];
59  transform.m32 = matrix.m[9];
60  transform.m33 = matrix.m[10];
61  transform.m34 = matrix.m[11];
62 
63  transform.m41 = matrix.m[12];
64  transform.m42 = matrix.m[13];
65  transform.m43 = matrix.m[14];
66  transform.m44 = matrix.m[15];
67  return transform;
68 }

Referenced by FlutterClippingMaskView::clipPath:matrix:, FlutterClippingMaskView::clipRect:matrix:, and FlutterClippingMaskView::clipRRect:matrix:.

◆ GetCGRectFromDlRect()

static CGRect GetCGRectFromDlRect ( const DlRect &  clipDlRect)
static

Definition at line 79 of file FlutterPlatformViewsController.mm.

79  {
80  return CGRectMake(clipDlRect.GetLeft(), //
81  clipDlRect.GetTop(), //
82  clipDlRect.GetWidth(), //
83  clipDlRect.GetHeight());
84 }

Referenced by FlutterClippingMaskView::clipRect:matrix:, and FlutterClippingMaskView::clipRRect:matrix:.

◆ ResetAnchor()

static void ResetAnchor ( CALayer *  layer)
static

Definition at line 73 of file FlutterPlatformViewsController.mm.

73  {
74  // Flow uses (0, 0) to apply transform matrix so we need to match that in Quartz.
75  layer.anchorPoint = CGPointZero;
76  layer.position = CGPointZero;
77 }

Variable Documentation

◆ _compositionOrder

std::vector<int64_t> _compositionOrder

Definition at line 247 of file FlutterPlatformViewsController.mm.

◆ _currentCompositionParams

std::unordered_map<int64_t, flutter::EmbeddedViewParams> _currentCompositionParams

Definition at line 245 of file FlutterPlatformViewsController.mm.

◆ _factories

std::unordered_map<std::string, NSObject<FlutterPlatformViewFactory>*> _factories

Definition at line 240 of file FlutterPlatformViewsController.mm.

◆ _gestureRecognizersBlockingPolicies

std::unordered_map<std::string, FlutterPlatformViewGestureRecognizersBlockingPolicy> _gestureRecognizersBlockingPolicies

Definition at line 242 of file FlutterPlatformViewsController.mm.

◆ _platformTaskRunner

fml::RefPtr<fml::TaskRunner> _platformTaskRunner

Definition at line 243 of file FlutterPlatformViewsController.mm.

◆ _platformViews

std::unordered_map<int64_t, PlatformViewData> _platformViews

Definition at line 244 of file FlutterPlatformViewsController.mm.

◆ _previousCompositionOrder

std::vector<int64_t> _previousCompositionOrder

Definition at line 250 of file FlutterPlatformViewsController.mm.

◆ _slices

std::unordered_map<int64_t, std::unique_ptr<flutter::EmbedderViewSlice> > _slices
Initial value:
{
std::unique_ptr<flutter::OverlayLayerPool> _layerPool

Definition at line 230 of file FlutterPlatformViewsController.mm.

◆ _viewsToDispose

std::unordered_set<int64_t> _viewsToDispose

Definition at line 246 of file FlutterPlatformViewsController.mm.

◆ _viewsToRecomposite

std::unordered_set<int64_t> _viewsToRecomposite

Definition at line 249 of file FlutterPlatformViewsController.mm.

◆ _visitedPlatformViews

std::vector<int64_t> _visitedPlatformViews

Definition at line 248 of file FlutterPlatformViewsController.mm.

◆ kFlutterClippingMaskViewPoolCapacity

constexpr NSUInteger kFlutterClippingMaskViewPoolCapacity = 5
staticconstexpr

Definition at line 23 of file FlutterPlatformViewsController.mm.