Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ci/licenses_golden/excluded_files
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,7 @@
../../../flutter/shell/platform/glfw/client_wrapper/plugin_registrar_glfw_unittests.cc
../../../flutter/shell/platform/glfw/client_wrapper/testing
../../../flutter/shell/platform/linux/testing
../../../flutter/shell/platform/windows/README.md
../../../flutter/shell/platform/windows/accessibility_bridge_windows_unittests.cc
../../../flutter/shell/platform/windows/client_wrapper/dart_project_unittests.cc
../../../flutter/shell/platform/windows/client_wrapper/flutter_engine_unittests.cc
Expand Down
42 changes: 42 additions & 0 deletions shell/platform/windows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Windows Platform Embedder

This code is the glue between the Flutter engine and the Windows platform.
It is responsible for:

1. Launching the Flutter engine.
2. Providing a view for the Flutter engine to render into.
3. Dispatching events to the Flutter engine.

For more information on embedders, see the
[Flutter architectural overview](https://docs.flutter.dev/resources/architectural-overview).

> [!CAUTION]
> This is a best effort attempt to document the Windows embedder. It is not
> guaranteed to be up to date or complete. If you find a discrepancy, please
> [send a pull request](https://github.com/flutter/engine/compare)!

See also:

1. [Flutter tool's Windows logic](https://github.com/flutter/flutter/tree/master/packages/flutter_tools/lib/src/windows) - Builds and runs Flutter Windows apps on
the command line.
1. [Windows app template](https://github.com/flutter/flutter/tree/master/packages/flutter_tools/templates/app_shared/windows.tmpl) - The entrypoint for Flutter Windows app. This
launches the Windows embedder.
1. [`platform-windows` GitHub issues label](https://github.com/flutter/flutter/issues?q=is%3Aopen+label%3Aplatform-windows+sort%3Aupdated-desc)
1. [`#hackers-desktop` Discord channel](https://discord.com/channels/608014603317936148/608020180177780791)

## Developing

See:

1. [Setting up the Engine development environment](https://github.com/flutter/flutter/wiki/Setting-up-the-Engine-development-environment)
2. [Compiling for Windows](https://github.com/flutter/flutter/wiki/Compiling-the-engine#compiling-for-windows)
3. [Debugging Windows builds with Visual Studio](https://github.com/flutter/flutter/wiki/Debugging-the-engine#debugging-windows-builds-with-visual-studio)

### Notable files

Some notable files include:

1. [`flutter_windows_engine.h`](https://github.com/flutter/engine/blob/main/shell/platform/windows/flutter_windows_engine.h) - Connects the Windows embedder to the Flutter engine.
1. [`flutter_windows_view.h`](https://github.com/flutter/engine/blob/main/shell/platform/windows/flutter_windows_view.h) - The logic for a Flutter view.
1. [`flutter_window.h`](https://github.com/flutter/engine/blob/main/shell/platform/windows/flutter_window.h) - Integrates a Flutter view with Windows (using a win32 child window).
1. [`//shell/platform/embedder/embedder.h`](https://github.com/flutter/engine/blob/main/shell/platform/embedder/embedder.h) - The API boundary between the Windows embedder and the Flutter engine.