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:
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
|
// 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);
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in a new issue