RealtimeStyleTransferRuntime/Source/LyraGame/UI/IndicatorSystem/IndicatorLayer.cpp

41 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "IndicatorLayer.h"
#include "Widgets/DeclarativeSyntaxSupport.h"
#include "Widgets/Layout/SBox.h"
#include "Engine/LocalPlayer.h"
#include "SActorCanvas.h"
/////////////////////////////////////////////////////
// UIndicatorLayer
UIndicatorLayer::UIndicatorLayer(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
bIsVariable = true;
SetVisibility(ESlateVisibility::HitTestInvisible);
}
void UIndicatorLayer::ReleaseSlateResources(bool bReleaseChildren)
{
Super::ReleaseSlateResources(bReleaseChildren);
MyActorCanvas.Reset();
}
TSharedRef<SWidget> UIndicatorLayer::RebuildWidget()
{
if (!IsDesignTime())
{
ULocalPlayer* LocalPlayer = GetOwningLocalPlayer();
if (ensureMsgf(LocalPlayer, TEXT("Attempting to rebuild a UActorCanvas without a valid LocalPlayer!")))
{
MyActorCanvas = SNew(SActorCanvas, FLocalPlayerContext(LocalPlayer), &ArrowBrush);
return MyActorCanvas.ToSharedRef();
}
}
// Give it a trivial box, NullWidget isn't safe to use from a UWidget
return SNew(SBox);
}