You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
This was caused by the cascade viewport widget rendering all the time, even when in a hidden tab. [CL 2533407 by Simon Tovey in Main branch]
92 lines
2.2 KiB
C++
92 lines
2.2 KiB
C++
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "CascadeModule.h"
|
|
#include "Cascade.h"
|
|
#include "PreviewScene.h"
|
|
#include "Runtime/Engine/Public/Slate/SceneViewport.h"
|
|
#include "CascadePreviewViewportClient.h"
|
|
#include "SCascadePreviewToolbar.h"
|
|
#include "SCascadePreviewViewport.h"
|
|
#include "SDockTab.h"
|
|
|
|
|
|
|
|
void SCascadePreviewViewport::Tick(const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime)
|
|
{
|
|
SEditorViewport::Tick(AllottedGeometry, InCurrentTime, InDeltaTime);
|
|
|
|
JustTicked = true;
|
|
}
|
|
|
|
|
|
SCascadePreviewViewport::~SCascadePreviewViewport()
|
|
{
|
|
if (ViewportClient.IsValid())
|
|
{
|
|
ViewportClient->Viewport = NULL;
|
|
}
|
|
}
|
|
|
|
void SCascadePreviewViewport::Construct(const FArguments& InArgs)
|
|
{
|
|
CascadePtr = InArgs._Cascade;
|
|
|
|
SEditorViewport::Construct( SEditorViewport::FArguments() );
|
|
}
|
|
|
|
void SCascadePreviewViewport::RefreshViewport()
|
|
{
|
|
SceneViewport->Invalidate();
|
|
}
|
|
|
|
bool SCascadePreviewViewport::IsVisible() const
|
|
{
|
|
return ViewportWidget.IsValid() && (!ParentTab.IsValid() || ParentTab.Pin()->IsForeground()) && SEditorViewport::IsVisible();
|
|
}
|
|
|
|
TSharedPtr<FSceneViewport> SCascadePreviewViewport::GetViewport() const
|
|
{
|
|
return SceneViewport;
|
|
}
|
|
|
|
TSharedPtr<FCascadeEdPreviewViewportClient> SCascadePreviewViewport::GetViewportClient() const
|
|
{
|
|
return ViewportClient;
|
|
}
|
|
|
|
TSharedPtr<SViewport> SCascadePreviewViewport::GetViewportWidget() const
|
|
{
|
|
return ViewportWidget;
|
|
}
|
|
|
|
TSharedRef<FEditorViewportClient> SCascadePreviewViewport::MakeEditorViewportClient()
|
|
{
|
|
ViewportClient = MakeShareable(new FCascadeEdPreviewViewportClient(CascadePtr, SharedThis(this)));
|
|
|
|
ViewportClient->bSetListenerPosition = false;
|
|
|
|
ViewportClient->SetRealtime(true);
|
|
ViewportClient->VisibilityDelegate.BindSP(this, &SCascadePreviewViewport::IsVisible);
|
|
|
|
return ViewportClient.ToSharedRef();
|
|
}
|
|
|
|
TSharedPtr<SWidget> SCascadePreviewViewport::MakeViewportToolbar()
|
|
{
|
|
return
|
|
SNew(SCascadePreviewViewportToolBar)
|
|
.CascadePtr(CascadePtr)
|
|
.IsEnabled(FSlateApplication::Get().GetNormalExecutionAttribute());
|
|
}
|
|
|
|
|
|
void SCascadePreviewViewport::OnFocusViewportToSelection()
|
|
{
|
|
UParticleSystemComponent* Component = CascadePtr.Pin()->GetParticleSystemComponent();
|
|
|
|
if( Component )
|
|
{
|
|
ViewportClient->FocusViewportOnBox( Component->Bounds.GetBox() );
|
|
}
|
|
}
|