UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GameViewportSubsystem.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Layout/Margin.h"
7#include "UObject/ObjectKey.h"
10#include "GameViewportSubsystem.generated.h"
11
12class ULevel;
13class ULocalPlayer;
14class UWidget;
15class UWorld;
17
21USTRUCT(BlueprintType)
23{
25
26 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "User Interface")
27 FAnchors Anchors = FAnchors(0.f, 0.f, 1.f, 1.f);
28
29 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "User Interface")
30 FMargin Offsets;
31
32 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "User Interface")
33 FVector2D Alignment = FVector2D(0.f, 0.f);
34
36 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "User Interface")
37 int32 ZOrder = 0;
38
43 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "User Interface")
44 bool bAutoRemoveOnWorldRemoved = true;
45};
46
47
51UCLASS(MinimalAPI)
53{
55
56public:
57 //~ Begin Subsystem
59 UMG_API virtual void Deinitialize() override;
60 //~ End Subsystem
61
62 static UMG_API UGameViewportSubsystem* Get();
64
65public:
66 /* @return true if the widget was added to the viewport using AddWidget or AddWidgetForPlayer. */
67 UFUNCTION(BlueprintPure, BlueprintCosmetic, Category = "User Interface")
68 UMG_API bool IsWidgetAdded(const UWidget* Widget) const;
69
71 UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "User Interface")
73
78 UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "User Interface")
79 UMG_API bool AddWidgetForPlayer(UWidget* Widget, ULocalPlayer* Player, FGameViewportWidgetSlot Slot);
80
82 UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "User Interface")
83 UMG_API void RemoveWidget(UWidget* Widget);
84
85 /* The slot info from previously added widget or info that is store for later. */
86 UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "User Interface")
87 UMG_API FGameViewportWidgetSlot GetWidgetSlot(const UWidget* Widget) const;
88
89 /* Update the slot info of a previously added widget or Store the slot info for later use. */
90 UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "User Interface")
92
96
100
101public:
109 UFUNCTION(BlueprintCallable, Category = "GameViewportWidgetSlot")
111
115 UFUNCTION(BlueprintCallable, Category = "GameViewportWidgetSlot")
117
118private:
119 struct FSlotInfo
120 {
123 TWeakPtr<SConstraintCanvas> FullScreenWidget;
124 SConstraintCanvas::FSlot* FullScreenWidgetSlot = nullptr;
125 };
126
127private:
128 bool AddToScreen(UWidget* Widget, ULocalPlayer* Player, FGameViewportWidgetSlot& Slot);
129 void RemoveWidgetInternal(UWidget* Widget, const TWeakPtr<SConstraintCanvas>& FullScreenWidget, const TWeakObjectPtr<ULocalPlayer>& LocalPlayer);
130 void HandleWorldCleanup(UWorld* InWorld, bool bSessionEnded, bool bCleanupResoures);
131 void HandleRemoveWorld(UWorld* InWorld);
132 void HandleLevelRemovedFromWorld(ULevel* InLevel, UWorld* InWorld);
133
134 FMargin GetFullScreenOffsetForWidget(UWidget* Widget) const;
135 TPair<FMargin, bool> GetOffsetAttribute(UWidget* Widget, const FGameViewportWidgetSlot& Slot) const;
136
137private:
138 using FViewportWidgetList = TMap<TObjectKey<UWidget>, FSlotInfo>;
139 FViewportWidgetList ViewportWidgets;
140};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint32 Size
Definition VulkanMemory.cpp:4034
Definition SubsystemCollection.h:15
Definition SConstraintCanvas.h:35
Definition SConstraintCanvas.h:28
static SLATE_API FSlot::FSlotArguments Slot()
Definition SConstraintCanvas.cpp:127
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1295
Definition EngineSubsystem.h:22
Definition GameViewportSubsystem.h:53
DECLARE_EVENT_TwoParams(UGameViewportSubsystem, FWidgetAddedEvent, UWidget *, ULocalPlayer *)
DECLARE_EVENT_OneParam(UGameViewportSubsystem, FWidgetRemovedEvent, UWidget *)
FWidgetRemovedEvent OnWidgetRemoved
Definition GameViewportSubsystem.h:99
FWidgetAddedEvent OnWidgetAdded
Definition GameViewportSubsystem.h:95
Definition Level.h:423
Definition LocalPlayer.h:169
Definition Widget.h:217
Definition World.h:918
Definition Anchors.h:14
Definition GameViewportSubsystem.h:23
Definition Margin.h:17
Definition Tuple.h:652
Definition WeakObjectPtrTemplates.h:25