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

Conversation

@harryterkelsen
Copy link
Contributor

Enhances the overlay optimization by pushing new pictures to the earliest RenderCanvas they can go into. This improvement is made especially clear in the new test case I added to embedded_views_test.dart, with the previous algorithm we would have used an overlay for each platform view even though all of the pictures could go into the base canvas with no issue.

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide and the C++, Objective-C, Java style guides.
  • I listed at least one issue that this PR fixes in the description above.
  • 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.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the CLA.
  • All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@github-actions github-actions bot added the platform-web Code specifically for the web engine label Aug 13, 2024
@harryterkelsen harryterkelsen requested a review from yjbanov August 14, 2024 00:06
///
/// [paramsForViews] is required to compute the bounds of the platform views.
// TODO(harryterkelsen): Extend this to work for any sequence of platform views
// and pictures.
Copy link
Contributor

Choose a reason for hiding this comment

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

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.

// it intersects with is "P_0", so we create a new render canvas and add "P_0"
// to it.
// The first picture is added to the rendering in a new render canvas.
RenderingRenderCanvas tentativeCanvas = RenderingRenderCanvas();
Copy link
Contributor

Choose a reason for hiding this comment

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

Can't quite parse all the possible situations when the loop below can exit. Is there a chance of the initial tentativeCanvas to never be used? If so, do we need to dispose of any resources it might be holding onto?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's possible for the tentativeCanvas to never be used. A RenderingRenderCanvas doesn't have any resources that need to be cleaned up until they are actually used and assigned a real RenderCanvas to paint their pictures to. Before that, they are basically just a list of pictures.

@harryterkelsen harryterkelsen added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 15, 2024
@auto-submit auto-submit bot merged commit 65fd6ca into flutter:main Aug 15, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Aug 15, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

autosubmit Merge PR when tree becomes green via auto submit App platform-web Code specifically for the web engine

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants