Flutter Engine
 
Loading...
Searching...
No Matches
ios_external_view_embedder.h
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_IOS_EXTERNAL_VIEW_EMBEDDER_H_
6#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_IOS_EXTERNAL_VIEW_EMBEDDER_H_
7
10
11namespace flutter {
12
14 public:
16 __weak FlutterPlatformViewsController* platform_views_controller,
17 const std::shared_ptr<IOSContext>& context);
18
19 // |ExternalViewEmbedder|
20 virtual ~IOSExternalViewEmbedder() override;
21
22 private:
23 __weak FlutterPlatformViewsController* platform_views_controller_;
24 std::shared_ptr<IOSContext> ios_context_;
25
26 // |ExternalViewEmbedder|
27 DlCanvas* GetRootCanvas() override;
28
29 // |ExternalViewEmbedder|
30 void CancelFrame() override;
31
32 // |ExternalViewEmbedder|
33 void BeginFrame(GrDirectContext* context,
35 raster_thread_merger) override;
36
37 // |ExternalViewEmbedder|
38 void PrepareFlutterView(DlISize frame_size,
39 double device_pixel_ratio) override;
40
41 // |ExternalViewEmbedder|
42 void PrerollCompositeEmbeddedView(
43 int64_t view_id,
44 std::unique_ptr<flutter::EmbeddedViewParams> params) override;
45
46 // |ExternalViewEmbedder|
47 PostPrerollResult PostPrerollAction(
48 const fml::RefPtr<fml::RasterThreadMerger>& raster_thread_merger)
49 override;
50
51 // |ExternalViewEmbedder|
52 DlCanvas* CompositeEmbeddedView(int64_t view_id) override;
53
54 // |ExternalViewEmbedder|
55 void SubmitFlutterView(
56 int64_t flutter_view_id,
57 GrDirectContext* context,
58 const std::shared_ptr<impeller::AiksContext>& aiks_context,
59 std::unique_ptr<SurfaceFrame> frame) override;
60
61 // |ExternalViewEmbedder|
62 void EndFrame(bool should_resubmit_frame,
64 raster_thread_merger) override;
65
66 // |ExternalViewEmbedder|
67 bool SupportsDynamicThreadMerging() override;
68
69 // |ExternalViewEmbedder|
70 void PushFilterToVisitedPlatformViews(
71 const std::shared_ptr<DlImageFilter>& filter,
72 const DlRect& filter_rect) override;
73
74 // |ExternalViewEmbedder|
75 void PushVisitedPlatformView(int64_t view_id) override;
76
78};
79
80} // namespace flutter
81
82#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_IOS_EXTERNAL_VIEW_EMBEDDER_H_
Developer-facing API for rendering anything within the engine.
Definition dl_canvas.h:32
virtual ~IOSExternalViewEmbedder() override
const EmbeddedViewParams * params
G_BEGIN_DECLS FlutterViewId view_id
#define FML_DISALLOW_COPY_AND_ASSIGN(TypeName)
Definition macros.h:27