6#include "CoreMinimal.h"
8#include "UObject/ObjectMacros.h"
9#include "Engine/World.h"
10#include "HAL/Runnable.h"
11#include "HAL/ThreadSafeBool.h"
16class UOptimizationProxyComponent;
18class APlayerCameraManager;
26 virtual uint32
Run()
override;
27 virtual void Exit()
override;
44 TArray<TObjectPtr<UOptimizationProxyComponent>>
Components;
51 TObjectPtr<FOptimizationManager>
Manager =
nullptr;
EOptimizationWave
Definition NPC_Optimizator_Types.h:12
DECLARE_STATS_GROUP(TEXT("NPC_Optimizator"), STATGROUP_NPC_Optimizator, STATCAT_Advanced)
Definition OptimizationManager.h:55
void UnregisterComponent(const UOptimizationProxyComponent *Component) const
Definition OptimizationManager.cpp:343
void HandlePostGarbageCollect() const
Definition OptimizationManager.cpp:351
TObjectPtr< UWorld > GameWorld
Definition OptimizationManager.h:73
virtual ~FOptimizationManager() override
Definition OptimizationManager.cpp:315
virtual FString GetReferencerName() const override
Definition OptimizationManager.cpp:330
virtual void AddReferencedObjects(FReferenceCollector &Collector) override
Definition OptimizationManager.cpp:325
void RegisterComponent(UOptimizationProxyComponent *Component) const
Definition OptimizationManager.cpp:335
FDelegateHandle OnWorldPreActorTickHandle
Definition OptimizationManager.h:70
FOptimizationManager(UWorld *InWorld)
Definition OptimizationManager.cpp:310
FDelegateHandle PostGarbageCollectHandle
Definition OptimizationManager.h:71
TUniquePtr< FOptimizationThread > OptimizationThread
Definition OptimizationManager.h:74
FCriticalSection Mutex
Definition OptimizationManager.h:75
Definition OptimizationManager.h:21
virtual FString GetReferencerName() const override
Definition OptimizationManager.cpp:148
virtual void AddReferencedObjects(FReferenceCollector &Collector) override
Definition OptimizationManager.cpp:138
void RegisterComponent(UOptimizationProxyComponent *Component)
Definition OptimizationManager.cpp:153
void RemoveComponentByHandle(int32 Handle)
Definition OptimizationManager.cpp:288
TObjectPtr< FOptimizationManager > Manager
Definition OptimizationManager.h:51
static bool IsInCameraSight(const APlayerCameraManager *Camera, const APawn *LocalPlayer, IOptimizationProxy *Proxy, float InFOV)
Definition OptimizationManager.cpp:205
FThreadSafeBool bIsRunning
Definition OptimizationManager.h:49
FCriticalSection Mutex
Definition OptimizationManager.h:46
virtual uint32 Run() override
Definition OptimizationManager.cpp:48
TObjectPtr< UWorld > GameWorld
Definition OptimizationManager.h:50
virtual void Exit() override
Definition OptimizationManager.cpp:132
void HandlePostGarbageCollect()
Definition OptimizationManager.cpp:184
FOptimizationThread(UWorld *World, class FOptimizationManager *InManager)
Definition OptimizationManager.cpp:40
TUniquePtr< FRunnableThread > Thread
Definition OptimizationManager.h:48
static EOptimizationWave GetOptimizationWave(const APawn *LocalPlayer, const APlayerCameraManager *Camera, IOptimizationProxy *Proxy, bool IsVisible)
Definition OptimizationManager.cpp:236
FCriticalSection ProxyMutex
Definition OptimizationManager.h:47
void UnregisterComponent(const UOptimizationProxyComponent *Component)
Definition OptimizationManager.cpp:169
TArray< TObjectPtr< UOptimizationProxyComponent > > Components
Definition OptimizationManager.h:44
Definition NPC_Optimizator_Types.h:88