Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

harryterkelsen
Copy link
Contributor

This allows us to fix some bugs in the CanvasKit backend.

  • Implement RRect where the radii are different
  • Implement drawDRRect
  • Implement ColorFilter
  • Implement the correct arcTo for arcToPoint

Screenshots

Using drawDRRect for checkboxes

drrect

Showing ColorFilter in the "Animation" demo

colorfilter

Using correct arcTo to get the correct notch under the FAB

correctnotch

This allows us to fix some bugs in the CanvasKit backend.

- Implement RRect where the radii are different
- Implement drawDRRect
- Implement ColorFilter
- Implement the correct `arcTo` for `arcToPoint`
final js.JsArray colorMatrix = js.JsArray();
colorMatrix.length = 20;
for (int i = 0; i < 20; i++) {
colorMatrix[i] = filter._matrix[i];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's leave a todo to remove this double-conversion. This should, at least, convert straight to a Float64List, but ideally we should write to WASM memory directly.

/cc @kjlubick - here's an example for excessive conversion that we talked about at the last sync.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -6,10 +6,10 @@ part of engine;

/// EXPERIMENTAL: Enable the Skia-based rendering backend.
const bool experimentalUseSkia =
bool.fromEnvironment('FLUTTER_WEB_USE_SKIA', defaultValue: false);
bool.fromEnvironment('FLUTTER_WEB_USE_SKIA', defaultValue: true);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We probably want to keep this as false.

BTW, have you checked the code size difference with and without this backend? If the size difference is small (say <50KB gzipped), I'd say let's make it a dynamic option. I imagine most of the size cost is from the WASM blob, not from Dart code.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll investigate after landing this PR

- Add TODO to avoid unnecessary conversions
- Don't set CanvasKit to default
- Fix licenses file
@harryterkelsen harryterkelsen merged commit 5cc7416 into flutter:master Oct 21, 2019
@harryterkelsen harryterkelsen deleted the canvaskit-0.7.0 branch October 21, 2019 19:44
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 21, 2019
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 22, 2019
engine-flutter-autoroll added a commit to flutter/flutter that referenced this pull request Oct 22, 2019
[email protected]:flutter/engine.git/compare/8882bf3c73f5...39e6901

git log 8882bf3..39e6901 --no-merges --oneline
2019-10-21 [email protected] Add recipe changelog (flutter/engine#13270)
2019-10-21 [email protected] fix NPE in accessibility bridge (flutter/engine#13255)
2019-10-21 [email protected] Roll src/third_party/skia 9889d509ed9f..56f569d9bec2 (21 commits) (flutter/engine#13266)
2019-10-21 [email protected] Roll fuchsia/sdk/core/mac-amd64 from hc4p_... to hALu4... (flutter/engine#13252)
2019-10-21 [email protected] [web] Support input action (flutter/engine#13268)
2019-10-21 [email protected] [web] Support -j to use goma in felt build (flutter/engine#13259)
2019-10-21 [email protected] Roll fuchsia/sdk/core/linux-amd64 from 30Ua7... to _e7Up... (flutter/engine#13254)
2019-10-21 [email protected] Hold a reference to the Skia unref queue in UIDartState (flutter/engine#13239)
2019-10-21 [email protected] Do not attempt to drain the SkiaUnrefQueue in the destructor (flutter/engine#13237)
2019-10-21 [email protected] Updated license script to ignore testdata directories, which often contain object files and other compilation results (flutter/engine#13261)
2019-10-21 [email protected] Add templates to generate fuchsia host bundles (flutter/engine#13158)
2019-10-21 [email protected] Update ui.instantiateImageCodec docs to reflect what it does. (flutter/engine#13233)
2019-10-21 [email protected] Update CanvasKit to 0.7.0 and flesh out painting (flutter/engine#13240)
2019-10-19 [email protected] Roll fuchsia/sdk/core/linux-amd64 from CYDvx... to 30Ua7... (flutter/engine#13251)
2019-10-19 [email protected] Roll fuchsia/sdk/core/mac-amd64 from 0JpMS... to hc4p_... (flutter/engine#13250)
2019-10-19 [email protected] Roll fuchsia/sdk/core/linux-amd64 from bdTv5... to CYDvx... (flutter/engine#13249)
2019-10-19 [email protected] Roll src/third_party/skia c65eb34d2f37..9889d509ed9f (1 commits) (flutter/engine#13248)
2019-10-19 [email protected] Roll fuchsia/sdk/core/mac-amd64 from SevlL... to 0JpMS... (flutter/engine#13244)
2019-10-19 [email protected] Roll src/third_party/skia 7605c89c00f7..c65eb34d2f37 (3 commits) (flutter/engine#13243)
2019-10-19 [email protected] Ignore *.obj files when gathering licenses (flutter/engine#13241)
2019-10-18 [email protected] Roll buildroot to 994c6 (flutter/engine#13236)


If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
Inconnu08 pushed a commit to Inconnu08/flutter that referenced this pull request Nov 26, 2019
[email protected]:flutter/engine.git/compare/8882bf3c73f5...39e6901

git log 8882bf3..39e6901 --no-merges --oneline
2019-10-21 [email protected] Add recipe changelog (flutter/engine#13270)
2019-10-21 [email protected] fix NPE in accessibility bridge (flutter/engine#13255)
2019-10-21 [email protected] Roll src/third_party/skia 9889d509ed9f..56f569d9bec2 (21 commits) (flutter/engine#13266)
2019-10-21 [email protected] Roll fuchsia/sdk/core/mac-amd64 from hc4p_... to hALu4... (flutter/engine#13252)
2019-10-21 [email protected] [web] Support input action (flutter/engine#13268)
2019-10-21 [email protected] [web] Support -j to use goma in felt build (flutter/engine#13259)
2019-10-21 [email protected] Roll fuchsia/sdk/core/linux-amd64 from 30Ua7... to _e7Up... (flutter/engine#13254)
2019-10-21 [email protected] Hold a reference to the Skia unref queue in UIDartState (flutter/engine#13239)
2019-10-21 [email protected] Do not attempt to drain the SkiaUnrefQueue in the destructor (flutter/engine#13237)
2019-10-21 [email protected] Updated license script to ignore testdata directories, which often contain object files and other compilation results (flutter/engine#13261)
2019-10-21 [email protected] Add templates to generate fuchsia host bundles (flutter/engine#13158)
2019-10-21 [email protected] Update ui.instantiateImageCodec docs to reflect what it does. (flutter/engine#13233)
2019-10-21 [email protected] Update CanvasKit to 0.7.0 and flesh out painting (flutter/engine#13240)
2019-10-19 [email protected] Roll fuchsia/sdk/core/linux-amd64 from CYDvx... to 30Ua7... (flutter/engine#13251)
2019-10-19 [email protected] Roll fuchsia/sdk/core/mac-amd64 from 0JpMS... to hc4p_... (flutter/engine#13250)
2019-10-19 [email protected] Roll fuchsia/sdk/core/linux-amd64 from bdTv5... to CYDvx... (flutter/engine#13249)
2019-10-19 [email protected] Roll src/third_party/skia c65eb34d2f37..9889d509ed9f (1 commits) (flutter/engine#13248)
2019-10-19 [email protected] Roll fuchsia/sdk/core/mac-amd64 from SevlL... to 0JpMS... (flutter/engine#13244)
2019-10-19 [email protected] Roll src/third_party/skia 7605c89c00f7..c65eb34d2f37 (3 commits) (flutter/engine#13243)
2019-10-19 [email protected] Ignore *.obj files when gathering licenses (flutter/engine#13241)
2019-10-18 [email protected] Roll buildroot to 994c6 (flutter/engine#13236)


If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants