defer freeing resource until after source data released and enable culling by default

This commit is contained in:
Nick Fisher
2022-08-16 11:32:29 +10:00
parent 4aef34b2ae
commit d86ba24956

View File

@@ -93,22 +93,29 @@ SceneAsset *SceneAssetLoader::fromGlb(const char *uri) {
_scene->addEntities(asset->getEntities(), entityCount);
Log("Added %d entities to scene", entityCount);
size_t lightEntityCount = asset->getLightEntityCount();
Log("Found %d light entities in scene.", lightEntityCount );
_resourceLoader->loadResources(asset);
Log("Resources loaded.");
const Entity *entities = asset->getEntities();
RenderableManager &rm = _engine->getRenderableManager();
for (int i = 0; i < asset->getEntityCount(); i++) {
Entity e = entities[i];
auto inst = rm.getInstance(e);
// check this
rm.setCulling(inst, false);
rm.setCulling(inst, true);
}
_freeResource(rbuf);
asset->getAnimator()->updateBoneMatrices();
asset->releaseSourceData();
Log("Source data released.");
_freeResource(rbuf);
Log("Successfully loaded GLB.");
return new SceneAsset(asset, _engine, _ncm, _loadResource, _freeResource);