Skip to content

Commit

Permalink
Merge pull request godotengine#89003 from akien-mga/node3d-reparent-n…
Browse files Browse the repository at this point in the history
…o-global-transform

Don't access Node3D/Node2D/Control global transform in `reparent` unless needed
  • Loading branch information
akien-mga committed Feb 29, 2024
2 parents b0c184c + 810a0db commit 5c38a9f
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 6 deletions.
6 changes: 4 additions & 2 deletions scene/2d/node_2d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -143,10 +143,12 @@ void Node2D::_update_transform() {

void Node2D::reparent(Node *p_parent, bool p_keep_global_transform) {
ERR_THREAD_GUARD;
Transform2D temp = get_global_transform();
Node::reparent(p_parent);
if (p_keep_global_transform) {
Transform2D temp = get_global_transform();
Node::reparent(p_parent);
set_global_transform(temp);
} else {
Node::reparent(p_parent);
}
}

Expand Down
6 changes: 4 additions & 2 deletions scene/3d/node_3d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -719,10 +719,12 @@ void Node3D::set_disable_gizmos(bool p_enabled) {

void Node3D::reparent(Node *p_parent, bool p_keep_global_transform) {
ERR_THREAD_GUARD;
Transform3D temp = get_global_transform();
Node::reparent(p_parent);
if (p_keep_global_transform) {
Transform3D temp = get_global_transform();
Node::reparent(p_parent);
set_global_transform(temp);
} else {
Node::reparent(p_parent);
}
}

Expand Down
6 changes: 4 additions & 2 deletions scene/gui/control.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -188,10 +188,12 @@ Size2 Control::_edit_get_minimum_size() const {

void Control::reparent(Node *p_parent, bool p_keep_global_transform) {
ERR_MAIN_THREAD_GUARD;
Transform2D temp = get_global_transform();
Node::reparent(p_parent);
if (p_keep_global_transform) {
Transform2D temp = get_global_transform();
Node::reparent(p_parent);
set_global_position(temp.get_origin());
} else {
Node::reparent(p_parent);
}
}

Expand Down

0 comments on commit 5c38a9f

Please sign in to comment.