Makes the plugin registration structure consistent with macOS. This will
be used in generated plugin registrant files rather than a specific
implemenation class, so this helps unblock the creation of generated
registrants on Windows and Linux.
Significantly improves the behavior of non-ASCII text input on Windows. Correctly
processes incoming character events as UTF-16, and for now uses UTF-32 for
the text model so that the existing index-based logic will work much more often.
Future work is still needed, but this will handle far more cases correctly.
* Begin API evolution to a more native win32 API
* Child-window based hosting
* Plumb through an initial size for child window to avoid reallocated surface on start
* Windows API cleanup part 1
* Fix wrapper tests
* Ensure flutter's HWND resources are destroyed
* Final API cleanup
* Fix dynamic DPI handling
* Cleanup
* Fix a bug that was causing engine to not be shutdown correctly
* CR feedback
* auto format
* CR feedback: combine FlutterView and FlutterViewController
* The one that clang-format seems to always get wrong
* expletive
* fix sources for licesnse file
* CR Feedback
* cleanup
* Update GetNativeWindow() to return an HWND rather than a long
* fix formatting
Start work on flutter/flutter#30726 by adding an alternative win32 shell platform implementation for Windows that is not based on GLFW and that uses LIBANGLE for rendering and native win32 windowing and input. This change does not replace the GLFW implementation but rather runs side by side with it producing a secondary flutter_windows_win32.dll artifact. The following items must be added to attain parity with the GLFW implementation:
- Custom task scheduling
- Support for keyboard modifier keys
- Async texture uploads
- Correct high DPI handling on Windows versions < 1703
and will be added in subsequent changes.