Greg Price e5a35f458f
Document RenderObject._relayoutBoundary and its invariant; small refactors (#150527)
Fixes part of #150524.

Recently I was studying RenderObject and related code to understand
how the rendering library tracks which objects need layout, and in
particular just how the concept of "relayout boundary" works.
The [RenderObject._relayoutBoundary] property itself had no docs,
and there were some other areas that I felt could be clearer;
so here's a PR where I add those docs.

In addition to docs, this makes some small pure refactors.  Mostly
those are in order to make clear docs easier to write.  One rename
is to fix a lone straggler from #4425 / #4483.

One key thing I learned, which this documents, is an invariant that
this code maintains on [_relayoutBoundary].  With that invariant in
mind, I found it's possible to simplify that bookkeeping, and to get a
measurable performance improvement as a bonus.  To keep things simple,
though, I'll leave those for follow-up PRs.

For ease of review, the PR is broken into several commits each with
their own commit message.
2024-06-25 18:27:38 +00:00
..
2024-06-24 11:00:53 -07:00
2024-06-17 17:26:08 +00:00

Flutter

Flutter is a new way to build high-performance, cross-platform mobile, web, and desktop apps. Flutter is optimized for today's — and tomorrow's — mobile and desktop devices. We are focused on low-latency input and high frame rates on all platforms.

See the getting started guide for information about using Flutter.