From 38ba5f59c9fcf38eab5db74cce14321459f0fec0 Mon Sep 17 00:00:00 2001 From: Aaron Franke Date: Thu, 27 Mar 2025 22:02:50 -0700 Subject: [PATCH] GLTF: Fix export_post_convert not running for multi-root scenes --- modules/gltf/gltf_document.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/modules/gltf/gltf_document.cpp b/modules/gltf/gltf_document.cpp index 4c999c07e12..5d30e9b7fb0 100644 --- a/modules/gltf/gltf_document.cpp +++ b/modules/gltf/gltf_document.cpp @@ -8552,18 +8552,16 @@ Error GLTFDocument::append_from_scene(Node *p_node, Ref p_state, uint // Add the root node(s) and their descendants to the state. if (_root_node_mode == RootNodeMode::ROOT_NODE_MODE_MULTI_ROOT) { const int child_count = p_node->get_child_count(); - if (child_count > 0) { - for (int i = 0; i < child_count; i++) { - _convert_scene_node(state, p_node->get_child(i), -1, -1); - } - state->scene_name = p_node->get_name(); - return OK; + for (int i = 0; i < child_count; i++) { + _convert_scene_node(state, p_node->get_child(i), -1, -1); } + state->scene_name = p_node->get_name(); + } else { + if (_root_node_mode == RootNodeMode::ROOT_NODE_MODE_SINGLE_ROOT) { + state->extensions_used.append("GODOT_single_root"); + } + _convert_scene_node(state, p_node, -1, -1); } - if (_root_node_mode == RootNodeMode::ROOT_NODE_MODE_SINGLE_ROOT) { - state->extensions_used.append("GODOT_single_root"); - } - _convert_scene_node(state, p_node, -1, -1); // Run post-convert for each extension, in case an extension needs to do something after converting the scene. for (Ref ext : document_extensions) { ERR_CONTINUE(ext.is_null());