13819 Commits

Author SHA1 Message Date
skia-flutter-autoroll
7e1d09247e Roll Skia from 85f51b2a409c to ba1e083d37f6 (1 revision) (flutter/engine#20892) 2020-08-30 22:58:01 -07:00
Chris Bracken
5f363dcee6 Improve the precision of lerpDouble (flutter/engine#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.
2020-08-30 22:26:10 -07:00
Ferhat
aaefbb493c [web] Fix path clip crash when reused (flutter/engine#20846) 2020-08-30 19:35:39 -07:00
skia-flutter-autoroll
1c8e9253af Roll Fuchsia Mac SDK from Z0aq5SyVC... to _4kJfDM-L... (flutter/engine#20891) 2020-08-30 15:23:01 -07:00
skia-flutter-autoroll
4fb1e6175b Roll Fuchsia Linux SDK from UAi35C_0e... to URyuiPqyX... (flutter/engine#20889) 2020-08-30 11:33:01 -07:00
Chris Bracken
f113960205 lerpDouble: stricter handling of NaN and infinity (flutter/engine#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.
2020-08-30 11:08:59 -07:00
Chris Bracken
d42e2f004c Extract Dart test utilities library (flutter/engine#20874)
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.
2020-08-30 11:07:05 -07:00
skia-flutter-autoroll
02bc5ffa90 Roll Skia from 3872c989512c to 85f51b2a409c (1 revision) (flutter/engine#20888) 2020-08-30 09:23:01 -07:00
skia-flutter-autoroll
8cee49c7ae Roll Skia from d5961b33e87f to 3872c989512c (1 revision) (flutter/engine#20887) 2020-08-30 07:23:01 -07:00
skia-flutter-autoroll
395a859438 Roll Fuchsia Mac SDK from buv4PNHA2... to Z0aq5SyVC... (flutter/engine#20886) 2020-08-30 02:18:02 -07:00
skia-flutter-autoroll
9f7b181e23 Roll Skia from 8702b8f4444f to d5961b33e87f (1 revision) (flutter/engine#20885) 2020-08-30 00:48:01 -07:00
xster
c09700b409 Add a java injector for testing (flutter/engine#20789) 2020-08-29 22:29:23 -07:00
skia-flutter-autoroll
caf1b0b806 Roll Fuchsia Linux SDK from KkG4iMAx5... to UAi35C_0e... (flutter/engine#20883) 2020-08-29 22:13:01 -07:00
Chris Bracken
399a7961cd Add integer input tests for lerpDouble (flutter/engine#20880)
The `a` and `b` parameters to `lerpDouble` have type `num`. This adds
tests for integer parameter values.
2020-08-29 16:48:41 -07:00
skia-flutter-autoroll
1cba2c8570 Roll Skia from 5d3314c53ce5 to 8702b8f4444f (1 revision) (flutter/engine#20878) 2020-08-29 12:33:01 -07:00
skia-flutter-autoroll
6d87f674a2 Roll Fuchsia Mac SDK from zZMS49-sB... to buv4PNHA2... (flutter/engine#20877) 2020-08-29 09:28:01 -07:00
skia-flutter-autoroll
8e9330d955 Roll Fuchsia Linux SDK from eOA32nYKY... to KkG4iMAx5... (flutter/engine#20876) 2020-08-29 07:28:02 -07:00
skia-flutter-autoroll
36d3b3fd3f Roll Skia from 6fd391a016f3 to 5d3314c53ce5 (1 revision) (flutter/engine#20875) 2020-08-29 07:23:02 -07:00
skia-flutter-autoroll
3da57fc95d Roll Dart SDK from 5831471fac7b to 92782d2b94b5 (2 revisions) (flutter/engine#20873) 2020-08-28 20:28:02 -07:00
skia-flutter-autoroll
88f759dd4c Roll Fuchsia Mac SDK from koO5t2tfw... to zZMS49-sB... (flutter/engine#20872) 2020-08-28 20:23:01 -07:00
skia-flutter-autoroll
58de64e442 Roll Fuchsia Linux SDK from jyKllAGRu... to eOA32nYKY... (flutter/engine#20870) 2020-08-28 18:08:02 -07:00
Emmanuel Garcia
9d05be2966 Add ability to disable the raster thread merger (flutter/engine#20800) 2020-08-28 17:25:00 -07:00
skia-flutter-autoroll
28aa4c1ccc Roll Skia from 6052c0bee0d9 to 6fd391a016f3 (5 revisions) (flutter/engine#20866) 2020-08-28 16:18:02 -07:00
Chris Bracken
6a210704a8 lerpDouble: add tests for NaN, infinity (flutter/engine#20848)
Adds tests for lerpDouble for cases where NaN or infinite values are
passed. These tests simply specify the current behaviour.
2020-08-28 15:11:15 -07:00
skia-flutter-autoroll
5272bd442d Roll Dart SDK from fe5c8c44701e to 5831471fac7b (1 revision) (flutter/engine#20862) 2020-08-28 14:53:03 -07:00
skia-flutter-autoroll
ab7adb1d36 Roll Skia from 280fa3d303bf to 6052c0bee0d9 (6 revisions) (flutter/engine#20859) 2020-08-28 14:48:02 -07:00
Greg Spencer
408d2228fa Reland: Implement delayed event synthesis key event handling for Android (flutter/engine#20736)
This re-lands the key event synthesis implementation for Android (Original PR: #19024, Revert PR: #19956). The only difference is sending the synthesized key events to the root view instead of the current view.

Without sending it to the root view, the system doesn't have any chance of handling keys like the back button. The event will still not be sent to the framework twice, since we turn off event propagation while re-dispatching the event.
2020-08-28 14:45:38 -07:00
Mouad Debbar
fd88de8492 [web] Better format for line break tests (flutter/engine#20767) 2020-08-28 14:43:01 -07:00
David Worsham
c852497059 fuchsia: create new flutter_runner render path (flutter/engine#19584) 2020-08-28 14:17:17 -07:00
nturgut
8a60d590bc Fix debugging issue (flutter/engine#20841) 2020-08-28 10:03:55 -07:00
skia-flutter-autoroll
eb1e1ba1d3 Roll Skia from 8a43e206609e to 280fa3d303bf (2 revisions) (flutter/engine#20857) 2020-08-28 10:03:01 -07:00
skia-flutter-autoroll
7a7e58a0c0 Roll Skia from d385091edd58 to 8a43e206609e (3 revisions) (flutter/engine#20855) 2020-08-28 08:23:02 -07:00
skia-flutter-autoroll
292b1606fa Roll Dart SDK from 066c5625ac7b to fe5c8c44701e (1 revision) (flutter/engine#20854) 2020-08-28 08:03:02 -07:00
skia-flutter-autoroll
6a4457b187 Roll Fuchsia Mac SDK from tG1GErEv9... to koO5t2tfw... (flutter/engine#20850) 2020-08-28 06:08:01 -07:00
skia-flutter-autoroll
67b4a2440d Roll Fuchsia Linux SDK from kbanTZZRS... to jyKllAGRu... (flutter/engine#20851) 2020-08-28 04:48:01 -07:00
skia-flutter-autoroll
92400445a5 Roll Dart SDK from ac54810c36a9 to 066c5625ac7b (1 revision) (flutter/engine#20849) 2020-08-28 03:33:01 -07:00
skia-flutter-autoroll
8da6aecfc3 Roll Skia from 952f088d41e1 to d385091edd58 (4 revisions) (flutter/engine#20847) 2020-08-28 00:18:02 -07:00
skia-flutter-autoroll
da66acad6f Roll Dart SDK from 8e50ccae259f to ac54810c36a9 (1 revision) (flutter/engine#20844) 2020-08-27 23:23:02 -07:00
Ferhat
02a654f8ea Cliprect op (flutter/engine#20837)
* Switched PathCommand apply parameter to non-nullable. Add clip op parameter to ClipCommand.
2020-08-27 22:38:03 -07:00
Ferhat
7ad78711f9 [web] Fix path rendering when addPolygon is chained with other verbs. (flutter/engine#20803) 2020-08-27 20:25:38 -07:00
William Wold
2752ef1dcd Replace FlRenderer::get_visual() with more generic FlRenderer::setup_window_attr() (flutter/engine#20833) 2020-08-28 14:31:34 +12:00
skia-flutter-autoroll
e1ce9c4a4b Roll Skia from 716e281185b5 to 952f088d41e1 (1 revision) (flutter/engine#20839) 2020-08-27 19:08:02 -07:00
skia-flutter-autoroll
04aec5fe70 Roll Skia from ee58da9d6f49 to 716e281185b5 (2 revisions) (flutter/engine#20835) 2020-08-27 17:48:01 -07:00
skia-flutter-autoroll
2387f367e7 Roll Dart SDK from b0f6d5483b79 to 8e50ccae259f (2 revisions) (flutter/engine#20834) 2020-08-27 17:43:02 -07:00
Casey Hillers
b3d1cff1a1 [fuchsia] Add fuchsia_ctl func to test script (flutter/engine#20827) 2020-08-27 17:38:02 -07:00
skia-flutter-autoroll
f68a871974 Roll Skia from 55f02eb3ff5f to ee58da9d6f49 (7 revisions) (flutter/engine#20832) 2020-08-27 15:43:02 -07:00
skia-flutter-autoroll
38d7e636d7 Roll Fuchsia Mac SDK from fqYfP5y9V... to tG1GErEv9... (flutter/engine#20831) 2020-08-27 15:33:01 -07:00
skia-flutter-autoroll
4a0f159037 Roll Fuchsia Linux SDK from lqjGEhKFW... to kbanTZZRS... (flutter/engine#20830) 2020-08-27 15:28:01 -07:00
William Wold
aff51746dd Consolidate FlRenderer initialization into fl_renderer_start() (flutter/engine#20763) 2020-08-28 09:57:14 +12:00
Ferhat
5bb7ec6611 [web] Fix analyzer warnings in web engine. (flutter/engine#20825) 2020-08-27 14:55:43 -07:00