Deprecate NOTIFICATION_MOVED_IN_PARENT

* NOTIFICATION_MOVED_IN_PARENT makes node children management very inefficient.
* Replaced by a NOTIFICATION_CHILD_ORDER_CHANGED (and children_changed signal).
* Most of the previous tasks carried out by NOTIFICATION_MOVED_IN_PARENT are now done not more than a single time per frame.

This PR breaks compatibility (although this notification was very rarely used, even within the engine), but provides an alternate way to do the same.
This commit is contained in:
lawnjelly
2024-04-19 09:53:06 +01:00
parent 1869243644
commit d56d1ff4d2
14 changed files with 224 additions and 47 deletions

View File

@ -2399,6 +2399,12 @@ bool Main::iteration() {
exit = true;
}
visual_server_callbacks->flush();
// Ensure that VisualServer is kept up to date at least once with any ordering changes
// of canvas items before a render.
// This ensures this will be done at least once in apps that create their own MainLoop.
Viewport::flush_canvas_parents_dirty_order();
message_queue->flush();
VisualServer::get_singleton()->sync(); //sync if still drawing from previous frames.