1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-04 13:33:34 +00:00

Handle scene root properly;

This commit is contained in:
bjorn 2019-01-19 21:46:42 -08:00 committed by Bjorn Swenson
parent db391a7d68
commit 9deab224da
2 changed files with 5 additions and 4 deletions

View file

@ -356,8 +356,9 @@ ModelData* lovrModelDataInit(ModelData* model, Blob* source, ModelDataIO io) {
// Make space for fake root node if the root scene has multiple root nodes // Make space for fake root node if the root scene has multiple root nodes
if (rootScene >= 0 && scenes[rootScene].nodeCount > 1) { if (rootScene >= 0 && scenes[rootScene].nodeCount > 1) {
model->nodeCount++;
info.childCount += model->nodeCount; info.childCount += model->nodeCount;
info.totalSize += sizeof(ModelNode) + model->nodeCount * sizeof(uint32_t);
model->nodeCount++;
} }
size_t offset = 0; size_t offset = 0;
@ -833,7 +834,7 @@ ModelData* lovrModelDataInit(ModelData* model, Blob* source, ModelDataIO io) {
gltfString key = NOM_STR(json, token); gltfString key = NOM_STR(json, token);
if (STR_EQ(key, "nodes")) { if (STR_EQ(key, "nodes")) {
for (int j = (token++)->size; j > 0; j--) { for (int j = (token++)->size; j > 0; j--) {
lastNode->children[i] = NOM_INT(json, token); lastNode->children[lastNode->childCount - j] = NOM_INT(json, token);
} }
} else { } else {
token += NOM_VALUE(json, token); token += NOM_VALUE(json, token);

View file

@ -192,8 +192,8 @@ void lovrModelDestroy(void* ref) {
} }
void lovrModelDraw(Model* model, mat4 transform, int instances) { void lovrModelDraw(Model* model, mat4 transform, int instances) {
updateGlobalNodeTransform(model, 0, transform); updateGlobalNodeTransform(model, model->data->rootNode, transform);
renderNode(model, 0, instances); // TODO use root renderNode(model, model->data->rootNode, instances);
} }
Animator* lovrModelGetAnimator(Model* model) { Animator* lovrModelGetAnimator(Model* model) {