This change converts all Float64List matrices to Float32List at the dart:ui interface boundary. Internally, it only uses Float32List. Float32List requires less memory and is orders of magnitude faster to allocate, and it has sufficient precision as Flutter mobile engine and Skia use 32-bit floats anyway.
This change speeds up frame preroll by 50% on the bench_card_infinite_scroll benchmark.
For more details on Float64Array allocation in JS (which backs Float64List in Dart) see the following:
https://bugs.chromium.org/p/v8/issues/detail?id=9199https://bugs.chromium.org/p/v8/issues/detail?id=2022
* Reland "add limited analysis options (#17332)"
This time I'm starting without Cirrus. Will add Cirrus serpartely from code changes.
This reverts commit 6d33ee1a2ca7d404ebd5cb434d8ab859bf8ac0b7.
* disable Cirrus analysis check
* Switch ui.window.devicePixelRatio to browser dpi
* Add integration test for multi res image loading
* Update cirrus for new integration test
* update canvas golden test root transform
* Update compositing golden test with dpr transform
* Safari font collection tests skip failing methods
* add a clear to the semantics test to make sure no DOM elements are leaking to the other tests
* fix semantics_helper_test. skip for semantics_test. teardown didn't work
* skip test, the skipped method run for 8 minutes according to the logs
* history tests methods runs multiple times. only run them on linux for now. they were also already failing in edge/windows
* making edge default test browser on windows. adding some skips (not all) for methods failing on edge
* skip failing tests. make egde default for testing
* skip one more test
* addressing reviewer comments. removing extra bat file
* Refactor BitmapCanvas. Fix image compositing bug. Allocate canvas lazily
* Fix recording canvas test by restoring context save
* Update recording canvas test for drawColor to show multiply blend
* Introduce `SkiaObject` an object that's backed by Skia C++ objects that need to be explicitly deleted.
* Automatically delete `SkiaObject`s at the end of frame.
* Make `SkPaint` a `SkiaObject`.
Because `SkiaObject`s are deleted at the end of the frame, the object can be reused as many times as necessary within the frame. `SkPaint` in particular is a fairly expensive object. Reusing this object, for example, on `drawRRect` drops the canvas paint time by 30%.
* DRAFT: adding support for enabling semantics on desktop
* Working solution for desktop.
* Refactoring class structure. Removing unrelated comments.
* Fixing enabling semantics from dom_renderer
* Adding unit tests.Fixing failing cases. More refactoring.
* more work on tests.
* Fixing licences
* addressing PR comments
This prevents us from synthesizing an 'add' event if we get a 'move'
event after a 'down' event. This was causing errors because on the
framework side, it will synthesize an 'add' event if it receives a
'down' event, and if you send another 'add' event (e.g. with a 'move'
after a 'down') then it will throw an AssertionError since it already
has received an 'add' event for that pointer.
Fixes https://github.com/flutter/flutter/issues/40385
* WIP on fixing pointer event clicks
* Don't set canvaskit as enabled by default
* Use a Set of pressed buttons rather than a Map of button status to
avoid memory leaks
* Add test for pointer binding
Fix bug where event listeners weren't properly removed
* Interpret negative radii as 0 in recording_canvas drawDRRect
This allows drawing DRRects that may have some negative values on
its corners (caused by deflating a RRect with some non-round corners,
for example)
See added unit test for an example of the above.
Fixes https://github.com/flutter/flutter/issues/40728