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

Commit de8d9ee

Browse files
Optimize overlays in CanvasKit (#47317)
Optimize overlays by detecting when Flutter-rendered content intersects with platform views. Overlay canvases are only needed when the content intersects, so by checking for this, we can optimize out most overlays. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I added new tests to check the change I am making or feature I am adding, or the PR is [test-exempt]. See [testing the engine] for instructions on writing and running engine tests. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I signed the [CLA]. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/wiki/Tree-hygiene#overview [Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene [test-exempt]: https://github.com/flutter/flutter/wiki/Tree-hygiene#tests [Flutter Style Guide]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style [testing the engine]: https://github.com/flutter/flutter/wiki/Testing-the-engine [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/wiki/Chat
1 parent de2ad7a commit de8d9ee

File tree

10 files changed

+1014
-942
lines changed

10 files changed

+1014
-942
lines changed

ci/licenses_golden/licenses_flutter

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38578,7 +38578,6 @@ ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/canvaskit_canvas.da
3857838578
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/color_filter.dart + ../../../flutter/LICENSE
3857938579
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/display_canvas_factory.dart + ../../../flutter/LICENSE
3858038580
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/embedded_views.dart + ../../../flutter/LICENSE
38581-
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/embedded_views_diff.dart + ../../../flutter/LICENSE
3858238581
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/fonts.dart + ../../../flutter/LICENSE
3858338582
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/image.dart + ../../../flutter/LICENSE
3858438583
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/image_filter.dart + ../../../flutter/LICENSE
@@ -38592,6 +38591,7 @@ ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/multi_surface_raste
3859238591
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/n_way_canvas.dart + ../../../flutter/LICENSE
3859338592
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/native_memory.dart + ../../../flutter/LICENSE
3859438593
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/offscreen_canvas_rasterizer.dart + ../../../flutter/LICENSE
38594+
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/overlay_scene_optimizer.dart + ../../../flutter/LICENSE
3859538595
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/painting.dart + ../../../flutter/LICENSE
3859638596
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/path.dart + ../../../flutter/LICENSE
3859738597
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/path_metrics.dart + ../../../flutter/LICENSE
@@ -41435,7 +41435,6 @@ FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/canvaskit_canvas.dart
4143541435
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/color_filter.dart
4143641436
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/display_canvas_factory.dart
4143741437
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/embedded_views.dart
41438-
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/embedded_views_diff.dart
4143941438
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/fonts.dart
4144041439
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/image.dart
4144141440
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/image_filter.dart
@@ -41449,6 +41448,7 @@ FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/multi_surface_rasteri
4144941448
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/n_way_canvas.dart
4145041449
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/native_memory.dart
4145141450
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/offscreen_canvas_rasterizer.dart
41451+
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/overlay_scene_optimizer.dart
4145241452
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/painting.dart
4145341453
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/path.dart
4145441454
FILE: ../../../flutter/lib/web_ui/lib/src/engine/canvaskit/path_metrics.dart

lib/web_ui/lib/src/engine.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ export 'engine/canvaskit/canvaskit_canvas.dart';
2525
export 'engine/canvaskit/color_filter.dart';
2626
export 'engine/canvaskit/display_canvas_factory.dart';
2727
export 'engine/canvaskit/embedded_views.dart';
28-
export 'engine/canvaskit/embedded_views_diff.dart';
2928
export 'engine/canvaskit/fonts.dart';
3029
export 'engine/canvaskit/image.dart';
3130
export 'engine/canvaskit/image_filter.dart';
@@ -39,6 +38,7 @@ export 'engine/canvaskit/multi_surface_rasterizer.dart';
3938
export 'engine/canvaskit/n_way_canvas.dart';
4039
export 'engine/canvaskit/native_memory.dart';
4140
export 'engine/canvaskit/offscreen_canvas_rasterizer.dart';
41+
export 'engine/canvaskit/overlay_scene_optimizer.dart';
4242
export 'engine/canvaskit/painting.dart';
4343
export 'engine/canvaskit/path.dart';
4444
export 'engine/canvaskit/path_metrics.dart';

0 commit comments

Comments
 (0)