---
title: Today's Flutter Windows object model
---
flowchart LR
subgraph "Windows embedder (internal)"
FlutterWindowsEngine
FlutterWindowsView
FlutterDesktopViewControllerState
FlutterWindowsEngine-- points to -->FlutterWindowsView
FlutterWindowsView-- std::unique_ptr -->FlutterWindowsEngine
FlutterDesktopViewControllerState-- std::unique_ptr -->FlutterWindowsView
end
subgraph "Public C API"
FlutterDesktopEngineRef
FlutterDesktopViewControllerRef
end
app["Native app"]
app-- owns -->FlutterDesktopViewControllerRef
app-- points to -->FlutterDesktopEngineRef
FlutterDesktopEngineRef-- "alias of" ---FlutterWindowsEngine
FlutterDesktopViewControllerRef-- "alias of" ---FlutterDesktopViewControllerState
Last active
July 21, 2023 23:44
-
-
Save loic-sharma/8f34d8c5ddff9538343f7d5aa56fc0a4 to your computer and use it in GitHub Desktop.
Flutter Windows object model
---
title: Flutter Windows object model
---
flowchart LR
subgraph "Windows embedder (internal)"
FlutterWindowsEngine
fvcs1[FlutterDesktopViewControllerState]
fwv1[FlutterWindowsView]
FlutterWindowsEngine-- points to -->fwv1
fwv1-- points to-->FlutterWindowsEngine
fvcs1-- std::unique_ptr -->fwv1
end
subgraph "Public C API"
FlutterDesktopEngineRef
fvcref1[FlutterDesktopViewControllerRef]
end
app["Native app"]
app-- owns-->FlutterDesktopEngineRef
app-- owns -->fvcref1
FlutterDesktopEngineRef-- "alias of" ---FlutterWindowsEngine
fvcref1-- "alias of" ---fvcs1
---
title: Flutter Windows object model
---
flowchart LR
subgraph "Windows embedder (internal)"
FlutterWindowsEngine
subgraph "View 1"
fvcs1[FlutterDesktopViewControllerState]
fwv1[FlutterWindowsView]
fvcs1--std::unique_ptr-->fwv1
end
subgraph "View 2"
fvcs2[FlutterDesktopViewControllerState]
fwv2[FlutterWindowsView]
fvcs2-- std::unique_ptr-->fwv2
end
FlutterWindowsEngine-- points to -->fwv1
FlutterWindowsEngine-- points to-->fwv2
fwv1-- points to -->FlutterWindowsEngine
fwv2-- points to -->FlutterWindowsEngine
end
subgraph "Public C API"
FlutterDesktopEngineRef
subgraph "View 1"
fvcref1[FlutterDesktopViewControllerRef]
end
subgraph "View 2"
fvcref2[FlutterDesktopViewControllerRef]
end
end
app["Native app"]
app-- owns -->FlutterDesktopEngineRef
app-- owns -->fvcref1
app-- owns -->fvcref2
FlutterDesktopEngineRef-- "alias of" ---FlutterWindowsEngine
fvcref1-- "alias of" ---fvcs1
fvcref2-- "alias of" ---fvcs2
---
title: Flutter Windows object model
---
flowchart LR
subgraph "Windows embedder (internal)"
FlutterWindowsEngine
fvcs1[FlutterDesktopViewControllerState]
fwv1[FlutterWindowsView]
FlutterWindowsEngine-- points to -->fwv1
fwv1-- points to-->FlutterWindowsEngine
fvcs1-- std::unique_ptr -->FlutterWindowsEngine
fvcs1-- std::unique_ptr -->fwv1
end
subgraph "Public C API"
FlutterDesktopEngineRef
fvcref1[FlutterDesktopViewControllerRef]
end
app["Native app"]
app-- owns -->fvcref1
app-- points to-->FlutterDesktopEngineRef
FlutterDesktopEngineRef-- "alias of" ---FlutterWindowsEngine
fvcref1-- "alias of" ---fvcs1
---
title: Today's Flutter Windows object model
---
flowchart LR
subgraph "Windows embedder (internal)"
FlutterWindowsEngine
FlutterWindowsView
FlutterDesktopViewControllerState
FlutterWindowsEngine -- points to -->FlutterWindowsView
FlutterWindowsView-- std::unique_ptr -->FlutterWindowsEngine
FlutterDesktopViewControllerState-- std::unique_ptr -->FlutterWindowsView
end
subgraph "Public C API"
FlutterDesktopEngineRef
FlutterDesktopViewControllerRef
end
subgraph "Public C++ API"
FlutterEngine
FlutterViewController
FlutterViewController-- std::unique_ptr -->FlutterEngine
end
app["Native app"]
app-- owns -->FlutterViewController
FlutterEngine-- points to -->FlutterDesktopEngineRef
FlutterViewController-- owns -->FlutterDesktopViewControllerRef
FlutterDesktopEngineRef-- "alias of" ---FlutterWindowsEngine
FlutterDesktopViewControllerRef-- "alias of" ---FlutterDesktopViewControllerState
---
title: Flutter Windows object model
---
flowchart LR
subgraph "Windows embedder (internal)"
FlutterWindowsEngine
fvcs1[FlutterDesktopViewControllerState]
fwv1[FlutterWindowsView]
FlutterWindowsEngine-- points to -->fwv1
fwv1-- points to-->FlutterWindowsEngine
fvcs1-- std::unique_ptr -->fwv1
end
subgraph "Public C API"
FlutterDesktopEngineRef
fvcref1[FlutterDesktopViewControllerRef]
end
subgraph "Public C++ API"
fvc1[FlutterViewController]
FlutterEngine
fvc1-- std::shared_ptr -->FlutterEngine
end
app["Native app"]
app-- owns -->fvc1
FlutterEngine-- owns -->FlutterDesktopEngineRef
fvc1-- owns -->fvcref1
FlutterDesktopEngineRef-- "alias of" ---FlutterWindowsEngine
fvcref1-- "alias of" ---fvcs1
---
title: Flutter Windows object model
---
flowchart LR
subgraph "Windows embedder (internal)"
FlutterWindowsEngine
subgraph "View 1"
fvcs1[FlutterDesktopViewControllerState]
fwv1[FlutterWindowsView]
fvcs1-- std::unique_ptr -->fwv1
end
subgraph "View 2"
fvcs2[FlutterDesktopViewControllerState]
fwv2[FlutterWindowsView]
fvcs2-- std::unique_ptr -->fwv2
end
FlutterWindowsEngine-- points to -->fwv1
FlutterWindowsEngine-- points to -->fwv2
fwv1-- points to -->FlutterWindowsEngine
fwv2-- points to -->FlutterWindowsEngine
end
subgraph "Public C API"
FlutterDesktopEngineRef
subgraph "View 1"
fvcref1[FlutterDesktopViewControllerRef]
end
subgraph "View 2"
fvcref2[FlutterDesktopViewControllerRef]
end
end
subgraph "Public C++ API"
subgraph "View 1"
fvc1[FlutterViewController]
end
subgraph "View 2"
fvc2[FlutterViewController]
end
FlutterEngine
fvc1-- std::shared_ptr -->FlutterEngine
fvc2-- std::shared_ptr -->FlutterEngine
end
app["Native app"]
app-- std::shared_ptr -->FlutterEngine
app-- owns -->fvc1
app-- owns -->fvc2
FlutterEngine-- owns -->FlutterDesktopEngineRef
fvc1-- owns -->fvcref1
fvc2-- owns -->fvcref2
FlutterDesktopEngineRef-- "alias of" ---FlutterWindowsEngine
fvcref1-- "alias of" ---fvcs1
fvcref2-- "alias of" ---fvcs2
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment