Skip to content

Commit fc033ce

Browse files
committed
Merge pull request #113245 from aaronfranke/gltf-order-of-operations
GLTF: Fix order of operations for buffers and accessors
2 parents 67d9154 + 1eb4972 commit fc033ce

File tree

1 file changed

+23
-26
lines changed

1 file changed

+23
-26
lines changed

modules/gltf/gltf_document.cpp

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -188,12 +188,6 @@ Error GLTFDocument::_serialize(Ref<GLTFState> p_state) {
188188
return Error::FAILED;
189189
}
190190

191-
/* STEP SERIALIZE ACCESSORS */
192-
err = _encode_accessors(p_state);
193-
if (err != OK) {
194-
return Error::FAILED;
195-
}
196-
197191
/* STEP SERIALIZE IMAGES */
198192
err = _serialize_images(p_state);
199193
if (err != OK) {
@@ -206,12 +200,6 @@ Error GLTFDocument::_serialize(Ref<GLTFState> p_state) {
206200
return Error::FAILED;
207201
}
208202

209-
/* STEP SERIALIZE BUFFER VIEWS */
210-
err = _encode_buffer_views(p_state);
211-
if (err != OK) {
212-
return Error::FAILED;
213-
}
214-
215203
/* STEP SERIALIZE NODES */
216204
err = _serialize_nodes(p_state);
217205
if (err != OK) {
@@ -242,6 +230,18 @@ Error GLTFDocument::_serialize(Ref<GLTFState> p_state) {
242230
return Error::FAILED;
243231
}
244232

233+
/* STEP SERIALIZE ACCESSORS */
234+
err = _encode_accessors(p_state);
235+
if (err != OK) {
236+
return Error::FAILED;
237+
}
238+
239+
/* STEP SERIALIZE BUFFER VIEWS */
240+
err = _encode_buffer_views(p_state);
241+
if (err != OK) {
242+
return Error::FAILED;
243+
}
244+
245245
for (Ref<GLTFDocumentExtension> ext : document_extensions) {
246246
ERR_CONTINUE(ext.is_null());
247247
err = ext->export_post(p_state);
@@ -6992,31 +6992,28 @@ Error GLTFDocument::_parse_asset_header(Ref<GLTFState> p_state) {
69926992
Error GLTFDocument::_parse_gltf_state(Ref<GLTFState> p_state, const String &p_search_path) {
69936993
Error err;
69946994

6995-
/* PARSE EXTENSIONS */
6996-
err = _parse_gltf_extensions(p_state);
6997-
ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
6998-
6999-
/* PARSE SCENE */
7000-
err = _parse_scenes(p_state);
7001-
ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
7002-
7003-
/* PARSE NODES */
7004-
err = _parse_nodes(p_state);
7005-
ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
7006-
70076995
/* PARSE BUFFERS */
70086996
err = _parse_buffers(p_state, p_search_path);
7009-
70106997
ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
70116998

70126999
/* PARSE BUFFER VIEWS */
70137000
err = _parse_buffer_views(p_state);
7014-
70157001
ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
70167002

70177003
/* PARSE ACCESSORS */
70187004
err = _parse_accessors(p_state);
7005+
ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
7006+
7007+
/* PARSE EXTENSIONS */
7008+
err = _parse_gltf_extensions(p_state);
7009+
ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
70197010

7011+
/* PARSE SCENE */
7012+
err = _parse_scenes(p_state);
7013+
ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
7014+
7015+
/* PARSE NODES */
7016+
err = _parse_nodes(p_state);
70207017
ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
70217018

70227019
if (!p_state->discard_meshes_and_materials) {

0 commit comments

Comments
 (0)