1. 13 10月, 2020 2 次提交
  2. 12 10月, 2020 1 次提交
  3. 10 10月, 2020 1 次提交
    • G
      Migration to PlatformDispatcher and multi-window (#20496) · 85b0031f
      Greg Spencer 提交于
      This is a PR for converting the dart:ui code in the engine to use a multi-window API. The goal here is to convert from the window singleton to an API that has the concept of multiple windows. Also, I'm matching up the new PlatformDispatcher class to talk directly to the PlatformConfiguration class in the engine. I'm not attempting to actually enable creating multiple windows here, just migrate to an API that has a concept of multiple windows. The multi-window API in this PR currently only ever creates one window.
      
      The design doc for this change is here.
      
      The major changes in this PR:
      
      Move the platfom-specific attributes out of Window, and into the new PlatformDispatcher class that holds all of the platform state, so that the platform code need only update the configuration on this class.
      Create FlutterView, FlutterWindow, and SingletonFlutterWindow classes to separate out the concepts of a view (of which there may be multiple in a window), a window (of which there may be multiple on a screen, and they host views), and a window where there is only ever expected to be one (this hosts the entire API of the former Window class, and will eventually be the type of the window singleton).
      Next step after this PR lands:
      
      Remove the Window class entirely (it is replaced by SingletonFlutterWindow). Some minor changes in the Framework are needed to switch to using SingletonFlutterWindow directly first.
      
      The Window class still exists in this PR, but will be removed as soon as the framework is converted to point to the SingletonFlutterWindow class instead. They share the same API, just have different names (Window is currently a subclass of SingletonFlutterWindow). The intention is that the Window name will be freed up to use as a widget class name in the framework for managing windows. The singleton called window will remain, and keep the same API it has now.
      85b0031f
  4. 09 10月, 2020 1 次提交
  5. 08 10月, 2020 2 次提交
  6. 01 10月, 2020 1 次提交
  7. 30 9月, 2020 1 次提交
    • B
      Replace kLegacyFontHost_InitType with kUnknown_SkPixelGeometry. (#21474) · a6a6fd16
      bungeman 提交于
      Skia is removing the deprecated legacy display setting globals and
      associated kLegacyFontHost_InitType. This change replaces all such uses
      with default surface properties with no special flags and an unknown
      pixel geometry. Flutter never set the associated globals, leaving them
      with their initial default values, which were no special flags and
      horizontal RGB pixel geometry. The values used here are different but
      this change should make no difference as Flutter never mentions
      SkFont::kSubpixelAntiAlias to take advantage of the pixel geometry.
      a6a6fd16
  8. 29 9月, 2020 1 次提交
  9. 26 9月, 2020 2 次提交
  10. 25 9月, 2020 1 次提交
  11. 24 9月, 2020 4 次提交
  12. 22 9月, 2020 1 次提交
  13. 14 9月, 2020 1 次提交
  14. 12 9月, 2020 3 次提交
  15. 11 9月, 2020 5 次提交
    • C
      Copyright header hygiene improvements (#21089) · 36f7f3ca
      Chris Bracken 提交于
      Add copyright headers in a few files where they were missing.
      
      Trim trailing blank comment line where present, for consistency with
      other engine code.
      
      Use the standard libtxt copyright header in one file where it differed
      (extra (C) and comma compared to other files in libtxt).
      
      This also amends tools/const_finder/test/const_finder_test.dart to look
      for a const an additional four lines down to account for the copyright
      header added to the test fixture.
      36f7f3ca
    • C
      Re-enable (most) iOS Scenarios tests (#21087) · bdaac368
      Chris Bracken 提交于
      This re-enables the iOS Scenarios tests which have been flaky in the
      last couple days.
      
      Disabling two tests where we've seen the flakes:
      * AppLifecycleTests testFlutterViewControllerDetachingSendsApplicationLifecycle
      * FlutterViewControllerInitialRouteTest testSettingInitialRoute
      
      This reverts commit 0c6c265a.
      bdaac368
    • X
      add back a line to build host for scenario tests (#21076) · 216a1ab6
      xster 提交于
      216a1ab6
    • C
      Disable iOS ScenariosTests suite (#21080) · 0c6c265a
      Chris Bracken 提交于
      This disables the macOS Scenarios app tests until a fix for the current
      flakiness is found.
      
      This also reverts commit 55d447a1 where
      one test was previously disabled. However, another started failing soon
      after, so instead we disable the whole suite here.
      0c6c265a
    • C
      Disable a flaky Scenarios test (#21075) · 55d447a1
      Chris Bracken 提交于
      This disables the macOS Scenarios app test
      testFlutterViewControllerDetachingSendsApplicationLifecycle
      until a fix for the flakiness is found.
      
      Related issue: https://github.com/flutter/flutter/issues/61620
      55d447a1
  16. 10 9月, 2020 2 次提交
  17. 09 9月, 2020 1 次提交
    • C
      Update web lerpDouble to match C++ behaviour (#21010) · cf8c6b8b
      Chris Bracken 提交于
      This updates the web_ui implementation of lerpDouble to match the
      behaviour of the C++ engine implementation in dart:ui.
      
      Specifically this covers the following changes:
      * #20871: stricter handling of NaN and infinity
      * #20879: Improve the precision of lerpDouble
      
      lerpDouble: stricter handling of NaN and infinity (#20871)
      ----------------------------------------------------------
      
      Previously, the behaviour of lerpDouble with respect to NaN and infinity
      was relatively complex and difficult to reason about. This patch
      simplifies the behaviour with respect to those conditions and adds
      documentation and tests.
      
      In general, if `a == b` or both values are null, infinite, or NaN, `a`
      is returned. Otherwise we require `a` and `b` and `t` to be finite or
      null and the result of the linear interpolation is returned.
      
      Improve the precision of lerpDouble (#20879)
      --------------------------------------------
      
      Reduces errors caused by the loss of floating point precision when the
      two extrema of the lerp differ significantly in magnitude. Previously,
      we used the calculation:
      
          a + (b - a) * t
      
      When the difference in magnitude between `a` and `b` exceeds the
      precision representable by double-precision floating point math, `b - a`
      results in the larger-magnitude value of `a` or `b`. The error between
      the value produced and the correct value is then scaled by t.
      
      A simple example of the impact can be seen when `a` is significantly
      larger in magnitude than `b`. In that case, `b - a` results in `a` and
      when `t` is 1.0, the resulting value is `a - (a) * 1.0 == 0`.
      
      The patch transforms the computation to the mathematically-equivalent
      expression:
      
          a * (1.0 - t) + b * t
      
      By scaling each value independently, the behaviour is more accurate.
      From the point of view of performance, this adds an extra
      multiplication, but multiplication is relatively cheap and the behaviour
      is significantly better.
      
      This patch also adds a `precisionErrorTolerance` constant to
      test_utils.dart and migrates existing tests to use `closeTo()` for
      testing.
      
      The tests themselves *do* currently use values that have an exact
      floating-point representation, but we should allow for flexibility in
      future implementation changes.
      cf8c6b8b
  18. 07 9月, 2020 1 次提交
    • C
      Enable lazy-async-stacks by-default in all modes (Take 3) (#20895) · 575a5194
      Clement Skau 提交于
      Lazy async stacks were already enabled by-default in AOT mode in [0] - which made the
      gen_snapshot invocations use "--lazy-async-stacks --no-causal-async-stacks".
      
      This change does the same with the engine defaults, which makes this be enabled
      by-default in JIT mode as well.
      
      See go/dart-10x-faster-async for more information.
      
      This is a re-land: A fix for what we believe to have caused the last revert has landed upstream in Dart in dart-lang/sdk@0004589
      
      [0] flutter/flutter@3478232
      575a5194
  19. 04 9月, 2020 1 次提交
  20. 03 9月, 2020 2 次提交
  21. 02 9月, 2020 2 次提交
  22. 01 9月, 2020 1 次提交
  23. 31 8月, 2020 3 次提交
    • C
      Improve the precision of lerpDouble (#20879) · 784e6d74
      Chris Bracken 提交于
      Reduces errors caused by the loss of floating point precision when the
      two extrema of the lerp differ significantly in magnitude. Previously,
      we used the calculation:
      
          a + (b - a) * t
      
      When the difference in magnitude between `a` and `b` exceeds the
      precision representable by double-precision floating point math, `b - a`
      results in the larger-magnitude value of `a` or `b`. The error between
      the value produced and the correct value is then scaled by t.
      
      A simple example of the impact can be seen when `a` is significantly
      larger in magnitude than `b`. In that case, `b - a` results in `a` and
      when `t` is 1.0, the resulting value is `a - (a) * 1.0 == 0`.
      
      The patch transforms the computation to the mathematically-equivalent
      expression:
      
          a * (1.0 - t) + b * t
      
      By scaling each value independently, the behaviour is more accurate.
      From the point of view of performance, this adds an extra
      multiplication, but multiplication is relatively cheap and the behaviour
      is significantly better.
      
      This patch also adds a `precisionErrorTolerance` constant to
      test_utils.dart and migrates existing tests to use `closeTo()` for
      testing.
      
      The tests themselves *do* currently use values that have an exact
      floating-point representation, but we should allow for flexibility in
      future implementation changes.
      784e6d74
    • C
      lerpDouble: stricter handling of NaN and infinity (#20871) · dbc9b1a8
      Chris Bracken 提交于
      Previously, the behaviour of lerpDouble with respect to NaN and infinity
      was relatively complex and difficult to reason about. This patch
      simplifies the behaviour with respect to those conditions and adds
      documentation and tests.
      
      In general, if `a == b` or both values are null, infinite, or NaN, `a`
      is returned. Otherwise we require `a` and `b` and `t` to be finite or
      null and the result of the linear interpolation is returned.
      dbc9b1a8
    • C
      Extract Dart test utilities library (#20874) · 14ac65c9
      Chris Bracken 提交于
      This extracts a Dart test utilities library, containing
      `expectAssertion` and `expectArgumentError` functions that simplify
      running tests that test assertions across debug, profile, and release
      configurations.
      
      This change also restricts Dart unit tests to testing files whose
      filename matches `*_test.dart` under `flutter/testing/dart`; previously
      any file in that directory was run, but all files matched the above
      pattern.
      14ac65c9