diff --git a/modules/gltf/gltf_document.cpp b/modules/gltf/gltf_document.cpp index 652ffdbd168..b2a568e585c 100644 --- a/modules/gltf/gltf_document.cpp +++ b/modules/gltf/gltf_document.cpp @@ -188,12 +188,6 @@ Error GLTFDocument::_serialize(Ref p_state) { return Error::FAILED; } - /* STEP SERIALIZE ACCESSORS */ - err = _encode_accessors(p_state); - if (err != OK) { - return Error::FAILED; - } - /* STEP SERIALIZE IMAGES */ err = _serialize_images(p_state); if (err != OK) { @@ -206,12 +200,6 @@ Error GLTFDocument::_serialize(Ref p_state) { return Error::FAILED; } - /* STEP SERIALIZE BUFFER VIEWS */ - err = _encode_buffer_views(p_state); - if (err != OK) { - return Error::FAILED; - } - /* STEP SERIALIZE NODES */ err = _serialize_nodes(p_state); if (err != OK) { @@ -242,6 +230,18 @@ Error GLTFDocument::_serialize(Ref p_state) { return Error::FAILED; } + /* STEP SERIALIZE ACCESSORS */ + err = _encode_accessors(p_state); + if (err != OK) { + return Error::FAILED; + } + + /* STEP SERIALIZE BUFFER VIEWS */ + err = _encode_buffer_views(p_state); + if (err != OK) { + return Error::FAILED; + } + for (Ref ext : document_extensions) { ERR_CONTINUE(ext.is_null()); err = ext->export_post(p_state); @@ -6992,6 +6992,18 @@ Error GLTFDocument::_parse_asset_header(Ref p_state) { Error GLTFDocument::_parse_gltf_state(Ref p_state, const String &p_search_path) { Error err; + /* PARSE BUFFERS */ + err = _parse_buffers(p_state, p_search_path); + ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR); + + /* PARSE BUFFER VIEWS */ + err = _parse_buffer_views(p_state); + ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR); + + /* PARSE ACCESSORS */ + err = _parse_accessors(p_state); + ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR); + /* PARSE EXTENSIONS */ err = _parse_gltf_extensions(p_state); ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR); @@ -7004,21 +7016,6 @@ Error GLTFDocument::_parse_gltf_state(Ref p_state, const String &p_se err = _parse_nodes(p_state); ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR); - /* PARSE BUFFERS */ - err = _parse_buffers(p_state, p_search_path); - - ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR); - - /* PARSE BUFFER VIEWS */ - err = _parse_buffer_views(p_state); - - ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR); - - /* PARSE ACCESSORS */ - err = _parse_accessors(p_state); - - ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR); - if (!p_state->discard_meshes_and_materials) { /* PARSE IMAGES */ err = _parse_images(p_state, p_search_path);