From d86ba24956f9a0efc1f7ad098bb3535bec0900cb Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Tue, 16 Aug 2022 11:32:29 +1000 Subject: [PATCH] defer freeing resource until after source data released and enable culling by default --- ios/src/SceneAssetLoader.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ios/src/SceneAssetLoader.cpp b/ios/src/SceneAssetLoader.cpp index 3bbe3fa6..005940c7 100644 --- a/ios/src/SceneAssetLoader.cpp +++ b/ios/src/SceneAssetLoader.cpp @@ -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);