File tree Expand file tree Collapse file tree
Private/Volt-Application/UI
Private/Volt-Renderer/SceneRendererBindless
Public/Volt-Renderer/SceneRendererBindless Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -518,7 +518,6 @@ void Sandbox::OpenScene(Volt::AssetHandle sceneHandle)
518518 SelectionManager::DeselectAll ();
519519
520520 // load new scene
521- if (!isSameScene)
522521 {
523522 Volt::SceneContainer* newSceneContainer = m_sceneManager->LoadScene (sceneHandle);
524523
@@ -540,11 +539,6 @@ void Sandbox::OpenScene(Volt::AssetHandle sceneHandle)
540539 m_sceneContainer = newSceneContainer;
541540 m_runtimeScene = newSceneContainer->GetScene ();
542541 }
543- else
544- {
545- // Reload the scene.
546- g_assetManager->ReloadAsset (sceneHandle);
547- }
548542
549543 SetupNewSceneData ();
550544 m_runtimeScene->LoadEntities ();
Original file line number Diff line number Diff line change 44#include " Volt-Application/UI/UIUtility.h"
55#include " Volt-Application/UI/UIFonts.h"
66#include " Volt-Application/BaseApplication.h"
7+ #include " Volt-Application/ApplicationRenderer.h"
78
89#include < CoreUtilities/ConsoleVariableRegistry.h>
910#include < Volt-ImGui/ImGuiImplementation.h>
1516#include < WindowModule/WindowManager.h>
1617#include < WindowModule/Window.h>
1718
19+ #include < SubSystem/SubSystemManager.h>
20+
1821#include < EventSystem/ApplicationEvents.h>
1922#include < EventSystem/EventSystem.h>
2023
@@ -121,6 +124,8 @@ namespace Volt
121124 WindowManager::Get ().Present ();
122125 }
123126
127+ ApplicationRenderer* applicationRenderer = SubSystemManager::GetSubSystem<ApplicationRenderer>();
128+
124129 bool hasCalledCallback = false ;
125130
126131 while (m_isBlockingActive)
@@ -132,6 +137,8 @@ namespace Volt
132137 AppPreRenderEvent preRenderEvent (BaseApplication::Get ().GetFrameIndex ());
133138 EventSystem::DispatchEvent (preRenderEvent);
134139
140+ applicationRenderer->PreRender (preRenderEvent.GetFrameIndex ());
141+
135142 m_imguiImplementation->Begin ();
136143
137144 if (!hasCalledCallback && onEnterCallback)
Original file line number Diff line number Diff line change @@ -32,11 +32,14 @@ namespace Volt
3232 static void GetSubSystemDependencies (SubSystemDependencyList& outDependencies);
3333 VT_DECLARE_SUBSYSTEM (" {6596CB16-B988-421B-BC68-7F01DCA6D758}" _guid);
3434
35+ // #Note: This should not be public! Just a
36+ // ducttape solution for imgui overlay!
37+ void PreRender (uint64_t frameIndex);
38+
3539 private:
3640 void UpdateRenderScene (IRenderScene& renderScene, uint64_t frameIndex);
3741 void RenderSceneRenderer (ISceneRenderer& sceneRenderer, float timestep);
3842
39- void PreRender (uint64_t frameIndex);
4043 void PostRender ();
4144
4245 class SceneManager * m_sceneManager = nullptr ;
Original file line number Diff line number Diff line change @@ -50,6 +50,18 @@ namespace Volt
5050 m_skyboxMesh = ShapeLibrary::GetCube ();
5151 }
5252
53+ SceneRendererBindless::~SceneRendererBindless ()
54+ {
55+ if (m_renderGraphExecutionCounter)
56+ {
57+ JobSystem::WaitForAndDestroyCounter (m_renderGraphExecutionCounter);
58+ }
59+
60+ m_renderScene->GetRenderSceneInstanceAddedDelegate ().Remove (m_renderSceneInstanceAddedDelegateHandle);
61+ m_renderScene->GetRenderSceneInstanceRemovedDelegate ().Remove (m_renderSceneInstanceRemovedDelegateHandle);
62+ m_renderScene->GetRenderSceneInstanceReSortDelegate ().Remove (m_renderSceneInstanceReSortDelegateHandle);
63+ }
64+
5365 void SceneRendererBindless::OnRender (float timestep)
5466 {
5567 if (!m_renderingCamera)
Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ namespace Volt
1818 {
1919 public:
2020 SceneRendererBindless (const SceneRendererInitializer& initializer, Ref<IRenderScene> renderScene);
21- ~SceneRendererBindless () override = default ;
21+ ~SceneRendererBindless () override ;
2222
2323 void OnRender (float timestep) override ;
2424 void Resize (uint32_t width, uint32_t height) override ;
You can’t perform that action at this time.
0 commit comments