Skip to content

Commit d1e95b8

Browse files
Fixes
1 parent 36f5c26 commit d1e95b8

5 files changed

Lines changed: 24 additions & 8 deletions

File tree

Engine/Source/Sandbox/Private/Sandbox/Sandbox.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff 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();

Engine/Source/Volt-Application/Private/Volt-Application/UI/ImGuiSubSystem.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
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>
@@ -15,6 +16,8 @@
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)

Engine/Source/Volt-Application/Public/Volt-Application/ApplicationRenderer.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff 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;

Engine/Source/Volt-Renderer/Private/Volt-Renderer/SceneRendererBindless/SceneRendererBindless.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff 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)

Engine/Source/Volt-Renderer/Public/Volt-Renderer/SceneRendererBindless/SceneRendererBindless.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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;

0 commit comments

Comments
 (0)