defer freeing resource until after source data released and enable culling by default
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user