Merge pull request #7152 from aws-lumberyard-dev/cgalvan/DisableRenderPipelineUntilLevelIsLoaded
Disable render pipeline for EditorViewportWidget until a level has been loaded
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user