UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PreLoadScreenBase.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "PreLoadScreen.h"
6
7// Base implementation of the IPreLoadScreen that handles all the logic for controlling / updating the UI for PreLoadScreens.
8// Designed to be overriden by a game specific Plugin that calls FPreloadScreenManager::RegisterPreLoadScreen so that functions are called by the PreLoadScreenManager correctly.
10{
11
12 /**** IPreLoadScreen implementation ****/
13public:
14 //We don't use these in the FPreLoadScreenBase, but they are useful for game-specific implementations
15 virtual void Tick(float DeltaTime) override {}
16 virtual bool ShouldRender() const override { return true; }
17 virtual void RenderTick(FRHICommandListImmediate& RHICmdList, float DeltaTime) override {};
18 virtual void OnStop() override {}
19
20 //Store off TargetWindow
22
23 //By default have a small added tick delay so we don't super spin out while waiting on other threads to load data / etc.
24 virtual float GetAddedTickDelay() override { return 0.00f; }
25
26 virtual void Init() override {}
27
28 virtual TSharedPtr<SWidget> GetWidget() override { return nullptr; }
29 virtual const TSharedPtr<const SWidget> GetWidget() const override { return nullptr; }
30
31 //IMPORTANT: This changes a LOT of functionality and implementation details. EarlyStartupScreens happen before the engine is fully initialized and block engine initialization before they finish.
32 // this means they have to forgo even the most basic of engine features like UObject support, as they are displayed before those systems are initialized.
34
36
37 // PreLoadScreens not using this functionality should return NAME_None
38 virtual FName GetPreLoadScreenTag() const override { return NAME_None; }
39
40 PRELOADSCREEN_API virtual void CleanUp() override;
41
42 //Default behavior is just to see if we have an active widget. Should really overload with our own behavior to see if we are done displaying
43 PRELOADSCREEN_API virtual bool IsDone() const override;
44
45public:
49
50 virtual ~FPreLoadScreenBase() override {};
51
52 //Handles constructing a FPreLoadSettingsContainerBase with the
53 PRELOADSCREEN_API virtual void InitSettingsFromConfig(const FString& ConfigFileName);
54
55 //Set what plugin is creating this PreLoadScreenBase. Used to make file paths relative to that plugin as well as
56 //determining . Used for converting locations for content to be relative to the plugin calling us
57 virtual void SetPluginName(const FString& PluginNameIn) { PluginName = PluginNameIn; }
58
59protected:
61
63private:
64
65 //The name of the Plugin creating this FPreLoadScreenBase.
66 //Important: Should be set before Initting settings from Config!
67 FString PluginName;
68};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EPreLoadScreenTypes
Definition PreLoadScreen.h:10
Definition NameTypes.h:617
Definition PreLoadScreenBase.h:10
virtual FName GetPreLoadScreenTag() const override
Definition PreLoadScreenBase.h:38
virtual ~FPreLoadScreenBase() override
Definition PreLoadScreenBase.h:50
virtual EPreLoadScreenTypes GetPreLoadScreenType() const override
Definition PreLoadScreenBase.h:33
TAtomic< bool > bIsEngineLoadingFinished
Definition PreLoadScreenBase.h:62
virtual PRELOADSCREEN_API bool IsDone() const override
Definition PreLoadScreenBase.cpp:107
virtual bool ShouldRender() const override
Definition PreLoadScreenBase.h:16
TWeakPtr< SWindow > OwningWindow
Definition PreLoadScreenBase.h:60
virtual void OnStop() override
Definition PreLoadScreenBase.h:18
FPreLoadScreenBase()
Definition PreLoadScreenBase.h:46
virtual PRELOADSCREEN_API void InitSettingsFromConfig(const FString &ConfigFileName)
Definition PreLoadScreenBase.cpp:10
virtual PRELOADSCREEN_API void CleanUp() override
Definition PreLoadScreenBase.cpp:103
virtual void OnPlay(TWeakPtr< SWindow > TargetWindow) override
Definition PreLoadScreenBase.h:21
virtual float GetAddedTickDelay() override
Definition PreLoadScreenBase.h:24
virtual void SetPluginName(const FString &PluginNameIn)
Definition PreLoadScreenBase.h:57
virtual void Init() override
Definition PreLoadScreenBase.h:26
virtual void Tick(float DeltaTime) override
Definition PreLoadScreenBase.h:15
virtual void RenderTick(FRHICommandListImmediate &RHICmdList, float DeltaTime) override
Definition PreLoadScreenBase.h:17
virtual const TSharedPtr< const SWidget > GetWidget() const override
Definition PreLoadScreenBase.h:29
virtual TSharedPtr< SWidget > GetWidget() override
Definition PreLoadScreenBase.h:28
virtual void SetEngineLoadingFinished(bool IsEngineLoadingFinished) override
Definition PreLoadScreenBase.h:35
Definition RHICommandList.h:4626
Definition PreLoadScreen.h:20
Definition Atomic.h:538
Definition SharedPointer.h:692
Definition SharedPointer.h:1295
@ false
Definition radaudio_common.h:23