Happenstance Posted June 30, 2017 Share Posted June 30, 2017 Posting this here instead of creating a new issue on github because I'm not exactly sure why this happens (or rather, why it doesn't happen in a stock build of T3D).In my build (based off of the latest dev branch with these changes to remove Basic Lighting) I get an assert when exiting the engine:ShadowMapManager::instance() - The singleton has not been created! The problem seems to be caused by ShadowMapManager being destroyed before AdvancedLightManager. The callstack looks something like this: // This causes ShadowMapManager's MODULE_SHUTDOWN macro to run which calls ShadowMapManager::deleteSingleton(). EngineModuleManager::shutdownSystem() .. .. // This calls SHADOWMGR->deactivate(). SHADOWMGR is simply a #define pointing to, you guessed it, ShadowMapManager's singleton instance. Assert time! AdvancedLightManager::deactivate() I can fix this in my build by adding the following to ShadowMapManager's MODULE_BEGIN definition: MODULE_SHUTDOWN_AFTER(Scene) This delays the shutdown of ShadowMapManager until the SceneManager has been destroyed which ensures AdvancedLightManager has also been destroyed. What I can't figure out is why this doesn't happen in stock T3D. Removing Basic Lighting seems to be related to this but I have no idea why. Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.