1. 07 4月, 2020 1 次提交
    • S
      Improve C++ plugin lifetime handling (#17489) · faf44fed
      stuartmorgan 提交于
      This makes two changes:
      - Adds a way to register a callback for when a FlutterDesktopPluginRegistrarRef is destroyed, and implements the logic to call it in the Windows and Linux embeddings.
      - Adds a class to the C++ wrapper that handles making a singleton owning PluginRegistrar wrappers, and destroying them when the underlying reference goes away, to avoid needing that boilerplate code in every plugin's source.
      
      Fixes https://github.com/flutter/flutter/issues/53496
      faf44fed
  2. 03 4月, 2020 1 次提交
    • S
      Remove JSON codec from C++ client wrapper (#17312) · 08ae3bb6
      stuartmorgan 提交于
      The JSON codec is awkward to use in the wrapper (since the client has to build and link one of the JSON libraries to do so). Since it would be very cumbersome to wrap in a C API, and there's essentially no reason to use it instead of the standard codec, this removes it from the wrapper entirely.
      
      Since some system channels (internal to the engine) still use it, it's moved into common/cpp instead of being eliminated entirely. Internally we always use RapidJSON though, so the jsoncpp implementation is removed. Also adds some unit test coverage, since there wasn't any.
      
      Fixes #30669
      08ae3bb6
  3. 24 3月, 2020 1 次提交
    • S
      Add DartProject for Windows embedding API (#17210) · 33a21d1f
      stuartmorgan 提交于
      This is a step toward aligning the API with macOS, and will make it easier to add the precompiled library later for release mode (since it can just be added to the project directory, without any code changes required for wrapper clients).
      
      At the C API, uses a struct instead of individual arguments, mirroring a change that was already made on the Linux side to make the C API cleaner.
      
      Functional changes in addition to the restructuring:
      
      adds relative path support, as was recently added for GLFW
      Uses wstring, rather than string, for paths; the conversion to UTF-8 is actually a potential problem on Windows, so pushing it into the embedding allows us the possibility of removing it later (if we can figure out a good solution at the embedder.h layer) without API breakage.
      The old APIs used by the standard runner are left in place for now to avoid breaking the template on an engine roll. Once the framework template has been updated, the old API paths will be removed.
      33a21d1f
  4. 12 2月, 2020 1 次提交
  5. 07 2月, 2020 1 次提交
  6. 06 2月, 2020 1 次提交
  7. 01 2月, 2020 1 次提交
    • C
      Remove all uses of the redundant flutter_root variable. (#16311) · f7b78e00
      Chinmay Garde 提交于
      This was only necessary when the Engine had to build in multiple buildroots
      where the sources where checked out at different paths relative to the
      buildroot. This is no longer the case and there are already cases GN rules
      have been written that mix and match variable usage with the direct
      specification of the path to the Flutter sources relative to the sole buildroot.
      f7b78e00
  8. 28 1月, 2020 1 次提交
  9. 22 1月, 2020 1 次提交
  10. 14 1月, 2020 1 次提交
    • S
      Implement HWND access for Windows plugins (#15378) · b454251f
      stuartmorgan 提交于
      plugin_registrar_windows.h was never fully updated for the Win32 switch,
      and didn't actually compile. This introduces FlutterView (parallel to
      the GLFW wrapper's FlutterWindow) as a ways of holding view-specific
      functionality to expose via the plugin registrar, and moves HWND access
      from the FlutterViewController to the FlutterView so that it's
      available to plugins. This allows the implementation of plugins that need
      access to the native HWND (e.g., moving or resizing the top-level window).
      
      Adds simple unit tests of the new wrapper functionality, ensuring that the
      files actually compile, and that the passthroughs work as expected.
      
      This is a breaking change for Windows runners due to moving
      GetNativeWindow() in the wrapper. It's not being done as a multi-stage
      change (addition + deprecation + later removal) since this API is explicitly
      unstable.
      b454251f
  11. 08 1月, 2020 1 次提交
  12. 23 11月, 2019 1 次提交
  13. 17 10月, 2019 1 次提交
    • S
      Add a task runner for the Win32 embedding (#13043) · 508146f0
      stuartmorgan 提交于
      Adds a task runner, and exposes API to allow application-level runloops to know when they need to next call the API to process engine events. Internally, sends null events to wake up the app runloop when new events are scheduled to ensure the wait time is updated accordingly.
      
      Fixes #36420
      508146f0
  14. 09 10月, 2019 1 次提交
  15. 04 10月, 2019 1 次提交
  16. 27 9月, 2019 1 次提交
  17. 24 9月, 2019 2 次提交
  18. 18 9月, 2019 1 次提交
    • S
      Adds PluginRegistry to the C++ client wrapper API (#12287) · 709fc6e0
      stuartmorgan 提交于
      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.
      709fc6e0
  19. 13 9月, 2019 1 次提交
  20. 09 9月, 2019 1 次提交
    • S
      Improve Unicode handling on Windows (#11899) · 38d545ee
      shoryukenn 提交于
      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.
      38d545ee
  21. 05 9月, 2019 1 次提交
  22. 03 9月, 2019 1 次提交
    • J
      [Windows] Update API for alternative Windows shell platform implementation (#11327) · 51a376d7
      James Clarke 提交于
      * 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
      51a376d7
  23. 29 8月, 2019 1 次提交
  24. 21 8月, 2019 1 次提交
  25. 16 8月, 2019 1 次提交
  26. 15 8月, 2019 1 次提交
    • J
      [Windows] Alternative Windows shell platform implementation (#9835) · ff484d4f
      James Clarke 提交于
      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.
      ff484d4f
  27. 30 3月, 2019 1 次提交
  28. 28 3月, 2019 1 次提交