1. 23 11月, 2019 1 次提交
  2. 20 11月, 2019 2 次提交
  3. 19 11月, 2019 1 次提交
  4. 15 11月, 2019 2 次提交
  5. 13 11月, 2019 1 次提交
  6. 12 11月, 2019 1 次提交
  7. 09 11月, 2019 6 次提交
  8. 08 11月, 2019 1 次提交
    • C
      Create a new picture recorder even when the embedder supplied render target is recycled. (#13744) · 7590336b
      Chinmay Garde 提交于
      The earlier assumption was that the render target would be re-materialized per frame. The render target needs its own picture recorder to be create per frame as well. When render targets are cached in the registry, an existing target will be reused. But submitting the previous frame would have discarded the recorder already. The layer tree paint would then attempt to dererence a null canvas causing a crash at runtime.
      
      Added tests to ensure that this does not happen both with and without a custom compositor specified by the embedder. I am going to rework this code so that the external view embedders thinks of render target access on a per frame basis but that is a larger change. This smaller patchset should unblock broken builds.
      
      Fixes b/144093523
      7590336b
  9. 07 11月, 2019 1 次提交
  10. 31 10月, 2019 2 次提交
  11. 30 10月, 2019 3 次提交
  12. 25 10月, 2019 2 次提交
  13. 24 10月, 2019 1 次提交
    • C
      Add FlutterEngineRunsAOTCompiledDartCode to the embedder API. (#13319) · 1663ac9e
      Chinmay Garde 提交于
      For embedder code that is configured for both AOT and JIT mode Dart execution
      based on the Flutter engine being linked to, this runtime check may be used to
      appropriately configure the `FlutterProjectArgs`. In JIT mode execution, the
      kernel snapshots must be present in the Flutter assets directory specified in
      the `FlutterProjectArgs`. For AOT execution, the fields `vm_snapshot_data`,
      `vm_snapshot_instructions`, `isolate_snapshot_data` and
      `isolate_snapshot_instructions` (along with their size fields) must be specified
      in `FlutterProjectArgs`.
      1663ac9e
  14. 23 10月, 2019 1 次提交
  15. 18 10月, 2019 5 次提交
  16. 17 10月, 2019 1 次提交
  17. 16 10月, 2019 1 次提交
    • C
      Allow embedders to specify a render task runner description. (#13124) · bf81971f
      Chinmay Garde 提交于
      Embedders may use this to specify a thread whose event loop is managed by them
      instead of the engine. In addition, specifying the same task runner for both
      the platform and render task runners allows embedders to effectively perform
      GPU rendering operations on the platform thread.
      
      To affect this change, the following non breaking changes to the API have been
      made:
      
      * The `FlutterCustomTaskRunners` struct now has a new field `render_task_runner`
        for the specification of a custom render task runner.
      * The `FlutterTaskRunnerDescription` has a new field `identifier`. Embedders
        must supply a unique identifier for each task runner they specify. In
        addition, when describing multiple task runners that run their tasks on the
        same thread, their identifiers must match.
      * The embedder may need to process tasks during `FlutterEngineRun` and
        `FlutterEngineShutdown`. However, the embedder doesn't have the Flutter engine
        handle before `FlutterEngineRun` and is supposed to relinquish handle right
        before `FlutterEngineShutdown`. Since the embedder needs the Flutter engine
        handle to service tasks on other threads while these calls are underway,
        there exist opportunities for deadlock. To work around this scenario, three
        new calls have been added that allow more deliberate management of the Flutter
        engine instance.
        * `FlutterEngineRun` can be replaced with `FlutterEngineInitialize` and
          `FlutterEngineRunInitialized`. The embedder can obtain a handle to the
          engine after the first call but the engine will not post any tasks to custom
          task runners specified by the embedder till the
          `FlutterEngineRunInitialized` call. Embedders can guard the Flutter engine
          handle behind a mutex for safe task runner interop.
        * `FlutterEngineShutdown` can be preceded by the `FlutterEngineDeinitialize`
          call. After this call the Flutter engine will no longer post tasks onto
          embedder managed task runners. It is still embedder responsibility to
          collect the Flutter engine handle via `FlutterEngineShutdown`.
      * To maintain backwards compatibility with the old APIs, `FlutterEngineRun` is
        now just a convenience for `FlutterEngineInitialize` and
        `FlutterEngineRunInitilaized`. `FlutterEngineShutdown` now implicitly calls
        `FlutterEngineDeinitialize` as well. This allows existing users who don't care
        are custom task runner interop to keep using the old APIs.
      * Adds complete test coverage for both old and new paths.
      
      Fixes https://github.com/flutter/flutter/issues/42460
      Prerequisite for https://github.com/flutter/flutter/issues/17579
      bf81971f
  18. 10 10月, 2019 2 次提交
  19. 09 10月, 2019 4 次提交
    • C
      Add `onUnregistered` callback in 'Texture' and 'FlutterTexture' (#12695) · 0d59c9ec
      Chris Yang 提交于
      Texture unregistration is finished on the GPU thread. The FlutterTexture implementation might not know when it is finished which leads to a race condition. Adding this callback so the FlutterTexture is aware of end of the unregistration process.
      0d59c9ec
    • L
      SkSL precompile (#12412) · df0e911c
      liyuqian 提交于
      For https://github.com/flutter/flutter/issues/40686
      
      Unit tests added:
      - CacheSkSLWorks
      - VisitFilesCanBeCalledTwice
      - CanListFilesRecursively
      df0e911c
    • C
      Add a unit-test to verify that root surface transformation affect platform... · 03d1bba6
      Chinmay Garde 提交于
      Add a unit-test to verify that root surface transformation affect platform view coordinates. (#12783)
      
      See b/141980393 for details.
      
      In the issue, the embedder (assumed to render Flutter contents of size 800 x 600 [1]) is meant to be displayed on its side. To achieve this, it specifies a root surface transformation that translates the surface by its width (or height when it held in the correct viewing position) and then rotates it counter-clockwise by 90 degrees. This test verifies that the Flutter Engine accounts for those transformations in the custom compositor platform view coodinates.
      
      [1] The actual size is something different. 800x600 is for illustrative purposes.
      03d1bba6
    • K
      Re-land Adding Link Semantics (#12972) · 58d7b841
      Kate Lovett 提交于
      58d7b841
  20. 05 10月, 2019 2 次提交