2731be6929
If an actor sets flag `CLUTTER_ACTOR_NO_LAYOUT` then that means it is (or should be) unaffected by `queue_relayout` calls in its children. So we can avoid propagating `queue_relayout` all the way up to the stage and avoid a full stage relayout each time. But those children whose parent has `CLUTTER_ACTOR_NO_LAYOUT` still need to be allocated at some point. So we do it at the same point where it happened before. Only we now queue a *shallow* relayout so the `allocate` run on the next frame doesn't need to descend the whole actor tree anymore. Only a subtree and hopefully very small. For free-floating and top-level actors this provides a measurable performance benefit. According to Google Profiler, calls to `_clutter_stage_maybe_relayout` are now so cheap that they no longer show up in performance profiles. https://gitlab.gnome.org/GNOME/mutter/merge_requests/575 |
||
---|---|---|
.. | ||
clutter | ||
.gitignore | ||
meson.build |