mirror of https://github.com/bjornbytes/lovr.git
Handle scene root properly;
This commit is contained in:
parent
db391a7d68
commit
9deab224da
|
@ -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
|
||||
if (rootScene >= 0 && scenes[rootScene].nodeCount > 1) {
|
||||
model->nodeCount++;
|
||||
info.childCount += model->nodeCount;
|
||||
info.totalSize += sizeof(ModelNode) + model->nodeCount * sizeof(uint32_t);
|
||||
model->nodeCount++;
|
||||
}
|
||||
|
||||
size_t offset = 0;
|
||||
|
@ -833,7 +834,7 @@ ModelData* lovrModelDataInit(ModelData* model, Blob* source, ModelDataIO io) {
|
|||
gltfString key = NOM_STR(json, token);
|
||||
if (STR_EQ(key, "nodes")) {
|
||||
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 {
|
||||
token += NOM_VALUE(json, token);
|
||||
|
|
|
@ -192,8 +192,8 @@ void lovrModelDestroy(void* ref) {
|
|||
}
|
||||
|
||||
void lovrModelDraw(Model* model, mat4 transform, int instances) {
|
||||
updateGlobalNodeTransform(model, 0, transform);
|
||||
renderNode(model, 0, instances); // TODO use root
|
||||
updateGlobalNodeTransform(model, model->data->rootNode, transform);
|
||||
renderNode(model, model->data->rootNode, instances);
|
||||
}
|
||||
|
||||
Animator* lovrModelGetAnimator(Model* model) {
|
||||
|
|
Loading…
Reference in New Issue