UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RendererOnScreenNotification.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
8
15{
16public:
25
34
39 template<typename FunctorType, typename... VarTypes>
41 {
42 FScopeLock Lock(&DelgateCS);
43 return ProxyDelegate.AddLambda(MoveTemp(InFunctor), Vars...);
44 }
45
51 {
52 FScopeLock Lock(&DelgateCS);
53 return ProxyDelegate.Remove(InHandle);
54 }
55
60 void Broadcast()
61 {
62 // Broadcast using temporary container to reduce any lock contention.
64 MessagesTmp.Empty(Messages.Num());
65
66 {
67 FScopeLock Lock(&DelgateCS);
68 ProxyDelegate.Broadcast(MessagesTmp);
69 }
70 {
71 FScopeLock Lock(&MessageCS);
72 Messages = MoveTemp(MessagesTmp);
73 }
74 }
75
76private:
77 friend FLazySingleton;
78
80 {
82 {
83 FScopeLock Lock(&MessageCS);
84 OutMessages.Append(Messages);
85 });
86 }
87
89 {
90 FCoreDelegates::OnGetOnScreenMessages.Remove(BaseDelegateHandle);
91 }
92
93private:
94 FCriticalSection DelgateCS;
95 FCriticalSection MessageCS;
97 FDelegateHandle BaseDelegateHandle;
99};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
FRWLock Lock
Definition UnversionedPropertySerialization.cpp:921
TMultiMap< EOnScreenMessageSeverity, FText > FSeverityMessageMap
Definition CoreDelegates.h:513
static CORE_API TMulticastDelegate< void(FSeverityMessageMap &)> OnGetOnScreenMessages
Definition CoreDelegates.h:521
Definition IDelegateInstance.h:14
Definition LazySingleton.h:9
Definition RendererOnScreenNotification.h:15
void Broadcast()
Definition RendererOnScreenNotification.h:60
static void TearDown()
Definition RendererOnScreenNotification.h:30
FDelegateHandle AddLambda(FunctorType &&InFunctor, VarTypes... Vars)
Definition RendererOnScreenNotification.h:40
static FRendererOnScreenNotification & Get()
Definition RendererOnScreenNotification.h:21
bool Remove(FDelegateHandle InHandle)
Definition RendererOnScreenNotification.h:50
Definition ScopeLock.h:141
static void TearDown()
Definition LazySingleton.h:64
static T & Get()
Definition LazySingleton.h:58
Definition DelegateSignatureImpl.inl:1029