engine icon indicating copy to clipboard operation
engine copied to clipboard

GLFW example with dirty region management

Open betrevisan opened this issue 3 years ago • 4 comments

The changes proposed in this PR update the GLFW example to support dirty region management. It updates the example to a loading spinner in the center of the screen and adjusts the user-defined embedder callbacks to manage the information necessary for partial repaint. The goal of this example is also to serve as a local benchmark for dirty region management within the Embedder API.

Note: This PR is dependent on https://github.com/flutter/engine/pull/35022.

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].
  • [ ] I added new tests to check the change I am making or feature I am adding, or Hixie said 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.

betrevisan avatar Aug 01 '22 18:08 betrevisan

It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat (don't just cc him here, he won't see it! He's on Discord!).

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

flutter-dashboard[bot] avatar Aug 01 '22 20:08 flutter-dashboard[bot]

Given the additional complexity and build requirements not available on MacOS (EGL), can we make this a separate GLFW example? Perhaps under examples/glfw_drm with a README.md explaining what DRM is/pointing to the doc? It would be nice to keep example/glfw as the simplest practical demonstration for people just getting started with embedding Flutter.

bdero avatar Aug 01 '22 21:08 bdero

Given the additional complexity and build requirements not available on MacOS (EGL), can we make this a separate GLFW example? Perhaps under examples/glfw_drm with a README.md explaining what DRM is/pointing to the doc? It would be nice to keep example/glfw as the simplest practical demonstration for people just getting started with embedding Flutter.

I agree that it would be nice to keep the example as simple as possible. I will add the partial repaint example as an extra then.

betrevisan avatar Aug 01 '22 21:08 betrevisan

This looks like it should be good to go as soon as https://github.com/flutter/engine/pull/35022 lands

bdero avatar Aug 04 '22 19:08 bdero