diff --git a/src/Globals.cpp b/src/Globals.cpp index 398dde8183..825918f31f 100644 --- a/src/Globals.cpp +++ b/src/Globals.cpp @@ -104,6 +104,37 @@ namespace globals DX12SwapChain* dx12SwapChain = nullptr; FidelityFX* fidelityFX = nullptr; + void OnInit() + { + shaderCache = &SIE::ShaderCache::Instance(); + state = State::GetSingleton(); + menu = Menu::GetSingleton(); + deferred = Deferred::GetSingleton(); + truePBR = TruePBR::GetSingleton(); + streamline = Streamline::GetSingleton(); + upscaling = Upscaling::GetSingleton(); + dx12SwapChain = DX12SwapChain::GetSingleton(); + fidelityFX = FidelityFX::GetSingleton(); + + features::cloudShadows = CloudShadows::GetSingleton(); + features::dynamicCubemaps = DynamicCubemaps::GetSingleton(); + features::extendedMaterials = ExtendedMaterials::GetSingleton(); + features::grassCollision = GrassCollision::GetSingleton(); + features::grassLighting = GrassLighting::GetSingleton(); + features::lightLimitFix = LightLimitFix::GetSingleton(); + features::screenSpaceGI = ScreenSpaceGI::GetSingleton(); + features::screenSpaceShadows = ScreenSpaceShadows::GetSingleton(); + features::skylighting = Skylighting::GetSingleton(); + features::subsurfaceScattering = SubsurfaceScattering::GetSingleton(); + features::terrainBlending = TerrainBlending::GetSingleton(); + features::terrainShadows = TerrainShadows::GetSingleton(); + features::volumetricLighting = VolumetricLighting::GetSingleton(); + features::waterEffects = WaterEffects::GetSingleton(); + features::wetnessEffects = WetnessEffects::GetSingleton(); + + features::llf::particleLights = ParticleLights::GetSingleton(); + } + void ReInit() { { @@ -133,34 +164,6 @@ namespace globals d3d::device = reinterpret_cast(game::renderer->GetRuntimeData().forwarder); d3d::context = reinterpret_cast(game::renderer->GetRuntimeData().context); d3d::swapChain = reinterpret_cast(game::renderer->GetRuntimeData().renderWindows->swapChain); - - state = State::GetSingleton(); - menu = Menu::GetSingleton(); - shaderCache = &SIE::ShaderCache::Instance(); - deferred = Deferred::GetSingleton(); - truePBR = TruePBR::GetSingleton(); - streamline = Streamline::GetSingleton(); - upscaling = Upscaling::GetSingleton(); - dx12SwapChain = DX12SwapChain::GetSingleton(); - fidelityFX = FidelityFX::GetSingleton(); - - features::cloudShadows = CloudShadows::GetSingleton(); - features::dynamicCubemaps = DynamicCubemaps::GetSingleton(); - features::extendedMaterials = ExtendedMaterials::GetSingleton(); - features::grassCollision = GrassCollision::GetSingleton(); - features::grassLighting = GrassLighting::GetSingleton(); - features::lightLimitFix = LightLimitFix::GetSingleton(); - features::screenSpaceGI = ScreenSpaceGI::GetSingleton(); - features::screenSpaceShadows = ScreenSpaceShadows::GetSingleton(); - features::skylighting = Skylighting::GetSingleton(); - features::subsurfaceScattering = SubsurfaceScattering::GetSingleton(); - features::terrainBlending = TerrainBlending::GetSingleton(); - features::terrainShadows = TerrainShadows::GetSingleton(); - features::volumetricLighting = VolumetricLighting::GetSingleton(); - features::waterEffects = WaterEffects::GetSingleton(); - features::wetnessEffects = WetnessEffects::GetSingleton(); - - features::llf::particleLights = ParticleLights::GetSingleton(); } void OnDataLoaded() diff --git a/src/Globals.h b/src/Globals.h index 168b02e20e..da6bbfbffa 100644 --- a/src/Globals.h +++ b/src/Globals.h @@ -104,6 +104,7 @@ namespace globals extern DX12SwapChain* dx12SwapChain; extern FidelityFX* fidelityFX; + void OnInit(); void ReInit(); void OnDataLoaded(); } \ No newline at end of file diff --git a/src/XSEPlugin.cpp b/src/XSEPlugin.cpp index 54104080e4..0185497cea 100644 --- a/src/XSEPlugin.cpp +++ b/src/XSEPlugin.cpp @@ -162,6 +162,7 @@ bool Load() auto messaging = SKSE::GetMessagingInterface(); messaging->RegisterListener("SKSE", MessageHandler); + globals::OnInit(); globals::ReInit(); auto state = globals::state;