5#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTERCOMPOSITOR_H_
6#define FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTERCOMPOSITOR_H_
10#include <unordered_map>
13#include "flutter/fml/macros.h"
14#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterMutatorView.h"
15#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterPlatformViewController.h"
16#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterTimeConverter.h"
17#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterViewProvider.h"
18#include "flutter/shell/platform/embedder/embedder.h"
29using LayerVariant = std::variant<PlatformViewLayer, BackingStoreLayer>;
74 void PresentPlatformViews(
FlutterView* default_base_view,
75 const std::vector<LayerVariant>& layers,
80 NSMapTable<NSView*, FlutterMutatorView*>* mutator_views_;
91 size_t layer_position,
98 id<FlutterViewProvider>
const view_provider_;
106 std::unordered_map<int64_t, ViewPresenter> presenters_;
FlutterCompositor(id< FlutterViewProvider > view_provider, FlutterTimeConverter *time_converter, FlutterPlatformViewController *platform_views_controller)
bool CreateBackingStore(const FlutterBackingStoreConfig *config, FlutterBackingStore *backing_store_out)
bool Present(FlutterViewIdentifier view_id, const FlutterLayer **layers, size_t layers_count)
~FlutterCompositor()=default
#define FML_DISALLOW_COPY_AND_ASSIGN(TypeName)
Converts between the time representation used by Flutter Engine and CAMediaTime.
std::variant< PlatformViewLayer, BackingStoreLayer > LayerVariant
std::vector< FlutterRect > paint_region