|
|
|
|
@ -89,6 +89,7 @@
|
|
|
|
|
#include <LmbrCentral/Rendering/EditorCameraCorrectionBus.h>
|
|
|
|
|
|
|
|
|
|
// Atom
|
|
|
|
|
#include <Atom/RPI.Public/RenderPipeline.h>
|
|
|
|
|
#include <Atom/RPI.Public/View.h>
|
|
|
|
|
#include <Atom/RPI.Public/ViewportContextManager.h>
|
|
|
|
|
#include <Atom/RPI.Public/ViewProviderBus.h>
|
|
|
|
|
@ -584,7 +585,7 @@ void EditorViewportWidget::OnEditorNotifyEvent(EEditorNotifyEvent event)
|
|
|
|
|
m_renderViewport->SetScene(nullptr);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case eNotify_OnEndSceneOpen:
|
|
|
|
|
case eNotify_OnEndLoad:
|
|
|
|
|
UpdateScene();
|
|
|
|
|
SetDefaultCamera();
|
|
|
|
|
break;
|
|
|
|
|
@ -2324,7 +2325,26 @@ void EditorViewportWidget::UpdateScene()
|
|
|
|
|
{
|
|
|
|
|
AZ::RPI::SceneNotificationBus::Handler::BusDisconnect();
|
|
|
|
|
m_renderViewport->SetScene(mainScene);
|
|
|
|
|
AZ::RPI::SceneNotificationBus::Handler::BusConnect(m_renderViewport->GetViewportContext()->GetRenderScene()->GetId());
|
|
|
|
|
auto viewportContext = m_renderViewport->GetViewportContext();
|
|
|
|
|
AZ::RPI::SceneNotificationBus::Handler::BusConnect(viewportContext->GetRenderScene()->GetId());
|
|
|
|
|
|
|
|
|
|
// Don't enable the render pipeline until a level has been loaded
|
|
|
|
|
// Also show/hide the RenderViewportWidget accordingly so that we get the
|
|
|
|
|
// expected gradient background when no level is loaded
|
|
|
|
|
auto renderPipeline = viewportContext->GetCurrentPipeline();
|
|
|
|
|
if (renderPipeline)
|
|
|
|
|
{
|
|
|
|
|
if (GetIEditor()->IsLevelLoaded())
|
|
|
|
|
{
|
|
|
|
|
m_renderViewport->show();
|
|
|
|
|
renderPipeline->AddToRenderTick();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
m_renderViewport->hide();
|
|
|
|
|
renderPipeline->RemoveFromRenderTick();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|