tree: 200a1b4cb1d4f5c8da2e13c76c435e84657f0f83
  1. client_wrapper/
  2. egl/
  3. fixtures/
  4. public/
  5. testing/
  6. accessibility_bridge_windows.cc
  7. accessibility_bridge_windows.h
  8. accessibility_bridge_windows_unittests.cc
  9. accessibility_plugin.cc
  10. accessibility_plugin.h
  11. accessibility_plugin_unittests.cc
  12. BUILD.gn
  13. compositor.h
  14. compositor_opengl.cc
  15. compositor_opengl.h
  16. compositor_opengl_unittests.cc
  17. compositor_software.cc
  18. compositor_software.h
  19. compositor_software_unittests.cc
  20. cursor_handler.cc
  21. cursor_handler.h
  22. cursor_handler_unittests.cc
  23. direct_manipulation.cc
  24. direct_manipulation.h
  25. direct_manipulation_unittests.cc
  26. display_manager.cc
  27. display_manager.h
  28. display_manager_unittests.cc
  29. dpi_utils.cc
  30. dpi_utils.h
  31. dpi_utils_unittests.cc
  32. event_watcher.cc
  33. event_watcher.h
  34. external_texture.h
  35. external_texture_d3d.cc
  36. external_texture_d3d.h
  37. external_texture_pixelbuffer.cc
  38. external_texture_pixelbuffer.h
  39. flutter_desktop_messenger.h
  40. flutter_key_map.g.cc
  41. flutter_platform_node_delegate_windows.cc
  42. flutter_platform_node_delegate_windows.h
  43. flutter_project_bundle.cc
  44. flutter_project_bundle.h
  45. flutter_project_bundle_unittests.cc
  46. flutter_window.cc
  47. flutter_window.h
  48. flutter_window_unittests.cc
  49. flutter_windows.cc
  50. flutter_windows_engine.cc
  51. flutter_windows_engine.h
  52. flutter_windows_engine_unittests.cc
  53. flutter_windows_internal.h
  54. flutter_windows_texture_registrar.cc
  55. flutter_windows_texture_registrar.h
  56. flutter_windows_texture_registrar_unittests.cc
  57. flutter_windows_unittests.cc
  58. flutter_windows_view.cc
  59. flutter_windows_view.h
  60. flutter_windows_view_controller.cc
  61. flutter_windows_view_controller.h
  62. flutter_windows_view_unittests.cc
  63. host_window.cc
  64. host_window.h
  65. host_window_dialog.cc
  66. host_window_dialog.h
  67. host_window_popup.cc
  68. host_window_popup.h
  69. host_window_regular.cc
  70. host_window_regular.h
  71. host_window_tooltip.cc
  72. host_window_tooltip.h
  73. keyboard_handler_base.h
  74. keyboard_key_channel_handler.cc
  75. keyboard_key_channel_handler.h
  76. keyboard_key_channel_handler_unittests.cc
  77. keyboard_key_embedder_handler.cc
  78. keyboard_key_embedder_handler.h
  79. keyboard_key_embedder_handler_unittests.cc
  80. keyboard_key_handler.cc
  81. keyboard_key_handler.h
  82. keyboard_key_handler_unittests.cc
  83. keyboard_manager.cc
  84. keyboard_manager.h
  85. keyboard_unittests.cc
  86. keyboard_utils.cc
  87. keyboard_utils.h
  88. keyboard_utils_unittests.cc
  89. platform_handler.cc
  90. platform_handler.h
  91. platform_handler_unittests.cc
  92. platform_view_manager.cc
  93. platform_view_manager.h
  94. platform_view_plugin.cc
  95. platform_view_plugin.h
  96. README.md
  97. rect_helper.h
  98. sequential_id_generator.cc
  99. sequential_id_generator.h
  100. sequential_id_generator_unittests.cc
  101. settings_plugin.cc
  102. settings_plugin.h
  103. settings_plugin_unittests.cc
  104. system_utils.cc
  105. system_utils.h
  106. system_utils_unittests.cc
  107. task_runner.cc
  108. task_runner.h
  109. task_runner_unittests.cc
  110. task_runner_window.cc
  111. task_runner_window.h
  112. text_input_manager.cc
  113. text_input_manager.h
  114. text_input_plugin.cc
  115. text_input_plugin.h
  116. text_input_plugin_unittest.cc
  117. wchar_util.cc
  118. wchar_util.h
  119. window_binding_handler.h
  120. window_binding_handler_delegate.h
  121. window_manager.cc
  122. window_manager.h
  123. window_manager_unittests.cc
  124. window_proc_delegate_manager.cc
  125. window_proc_delegate_manager.h
  126. window_proc_delegate_manager_unittests.cc
  127. window_state.h
  128. window_unittests.cc
  129. windows_lifecycle_manager.cc
  130. windows_lifecycle_manager.h
  131. windows_lifecycle_manager_unittests.cc
  132. windows_proc_table.cc
  133. windows_proc_table.h
  134. windowsx_shim.h
engine/src/flutter/shell/platform/windows/README.md

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.

[!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!

See also:

  1. Flutter tool's Windows logic - Builds and runs Flutter Windows apps on the command line.
  2. Windows app template - The entrypoint for Flutter Windows app. This launches the Windows embedder.
  3. platform-windows GitHub issues label
  4. #hackers-desktop Discord channel

Developing

See:

  1. Setting up the Engine development environment
  2. Compiling for Windows
  3. Debugging Windows builds with Visual Studio

Notable files

Some notable files include:

  1. flutter_windows_engine.h - Connects the Windows embedder to the Flutter engine.
  2. flutter_windows_view.h - The logic for a Flutter view.
  3. flutter_window.h - Integrates a Flutter view with Windows (using a win32 child window).
  4. //shell/platform/embedder/embedder.h - The API boundary between the Windows embedder and the Flutter engine.