UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SkinWeightProfileManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
8#include "Engine/World.h"
9#include "SkinWeightProfile.h"
10#include "Stats/Stats.h"
11#include "Templates/Function.h"
12#include "Tickable.h"
15
16#include "SkinWeightProfileManager.generated.h"
17
19class UWorld;
20
22
25{
32
37
40
42 {
43 return A.ProfileStack == B.ProfileStack && A.WeakSkeletalMesh == B.WeakSkeletalMesh && A.IdentifyingObject == B.IdentifyingObject;
44 }
45
47 {
48 return HashCombine(GetTypeHash(A.ProfileStack), GetTypeHash(A.WeakSkeletalMesh));
49 }
50};
51
73
74USTRUCT()
76{
78
79 //~ FTickFunction Interface
80 virtual void ExecuteTick(float DeltaTime, ELevelTick TickType, ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent) override;
81 virtual FString DiagnosticMessage() override;
82 virtual FName DiagnosticContext(bool bDetailed) override;
83 //~ FTickFunction Interface
84
86};
87
88template<>
89struct TStructOpsTypeTraits<FSkinWeightProfileManagerTickFunction> : public TStructOpsTypeTraitsBase2<FSkinWeightProfileManagerTickFunction>
90{
91 enum
92 {
93 WithCopy = false
94 };
95};
96
98{
99protected:
101
106 static void OnWorldBeginTearDown(UWorld* World);
107
108public:
109 static void OnStartup();
110 static void OnShutdown();
112 static bool AllowCPU();
113 static bool HandleDelayedLoads();
114
116
119
120 void DoTick(float DeltaTime, ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent);
121protected:
122 void CleanupRequest(const FSetProfileRequest& Request);
123 bool ShouldIgnoreLOD(const FSkinWeightProfilesData& SkinWeightProfilesData, const USkeletalMesh& SkeletalMesh, int32 NumResidentLODsRequired) const;
124 bool ShouldSkipTick() const;
126protected:
133
135
137public:
138 virtual bool IsTickableWhenPaused() const override;
139 virtual bool IsTickableInEditor() const override;
140 virtual void Tick(float DeltaTime) override;
141 virtual bool IsTickable() const override;
142 virtual TStatId GetStatId() const override;
143
144};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define RETURN_QUICK_DECLARE_CYCLE_STAT(StatId, GroupId)
Definition Stats.h:655
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ELevelTick
Definition EngineBaseTypes.h:70
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
TFunction< void(TWeakObjectPtr< USkeletalMesh > WeakMesh, FSkinWeightProfileStack ProfileStack)> FRequestFinished
Definition SkinWeightProfileManager.h:21
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition SkinWeightProfileManager.h:54
FSkinWeightProfileManagerAsyncTask(FSkinWeightProfileManager *InOwner)
Definition SkinWeightProfileManager.h:58
ENamedThreads::Type GetDesiredThread()
Definition SkinWeightProfileManager.cpp:459
void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent)
Definition SkinWeightProfileManager.cpp:481
TStatId GetStatId() const
Definition SkinWeightProfileManager.h:64
static ESubsequentsMode::Type GetSubsequentsMode()
Definition SkinWeightProfileManager.h:70
Definition SkinWeightProfileManager.h:98
int32 ConvertLODIndexToCount(const USkeletalMesh &SkeletalMesh, int32 Index) const
Definition SkinWeightProfileManager.cpp:428
static bool AllowCPU()
Definition SkinWeightProfileManager.cpp:116
void CancelSkinWeightProfileRequest(UObject *Requester)
Definition SkinWeightProfileManager.cpp:194
void DoTick(float DeltaTime, ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent)
Definition SkinWeightProfileManager.cpp:209
static TMap< UWorld *, FSkinWeightProfileManager * > WorldManagers
Definition SkinWeightProfileManager.h:102
static void OnWorldCleanup(UWorld *World, bool bSessionEnded, bool bCleanupResources)
Definition SkinWeightProfileManager.cpp:79
TWeakObjectPtr< UWorld > WeakWorld
Definition SkinWeightProfileManager.h:134
FSkinWeightProfileManagerTickFunction TickFunction
Definition SkinWeightProfileManager.h:130
static ENGINE_API FSkinWeightProfileManager * Get(UWorld *World)
Definition SkinWeightProfileManager.cpp:106
static void OnPreWorldFinishDestroy(UWorld *World)
Definition SkinWeightProfileManager.cpp:88
bool WaitingForStreaming
Definition SkinWeightProfileManager.h:132
TMap< TWeakObjectPtr< USkeletalMesh >, int32 > PendingMeshes
Definition SkinWeightProfileManager.h:129
virtual TStatId GetStatId() const override
Definition SkinWeightProfileManager.cpp:344
void CleanupRequest(const FSetProfileRequest &Request)
Definition SkinWeightProfileManager.cpp:349
bool ShouldSkipTick() const
Definition SkinWeightProfileManager.cpp:404
virtual bool IsTickableInEditor() const override
Definition SkinWeightProfileManager.cpp:439
TArray< FSetProfileRequest, TInlineAllocator< 4 > > CanceledRequest
Definition SkinWeightProfileManager.h:127
TArray< FSetProfileRequest > PendingSetProfileRequests
Definition SkinWeightProfileManager.h:128
bool ShouldIgnoreLOD(const FSkinWeightProfilesData &SkinWeightProfilesData, const USkeletalMesh &SkeletalMesh, int32 NumResidentLODsRequired) const
Definition SkinWeightProfileManager.cpp:379
int32 LastGamethreadProfileIndex
Definition SkinWeightProfileManager.h:131
static bool HandleDelayedLoads()
Definition SkinWeightProfileManager.cpp:121
static void OnWorldInit(UWorld *World, const UWorld::InitializationValues IVS)
Definition SkinWeightProfileManager.cpp:71
static void OnWorldBeginTearDown(UWorld *World)
Definition SkinWeightProfileManager.cpp:97
virtual bool IsTickable() const override
Definition SkinWeightProfileManager.cpp:339
static void OnShutdown()
Definition SkinWeightProfileManager.cpp:134
virtual bool IsTickableWhenPaused() const override
Definition SkinWeightProfileManager.cpp:434
static void OnStartup()
Definition SkinWeightProfileManager.cpp:126
FGraphEventRef AsyncTask
Definition SkinWeightProfileManager.h:136
void ENGINE_API RequestSkinWeightProfileStack(FSkinWeightProfileStack InProfileStack, USkinnedAsset *SkinnedAsset, UObject *Requester, FRequestFinished &Callback, int32 LODIndex=INDEX_NONE)
Definition SkinWeightProfileManager.cpp:146
friend FSkinWeightProfileManagerAsyncTask
Definition SkinWeightProfileManager.h:100
Definition Tickable.h:135
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition Object.h:95
Definition SkeletalMesh.h:440
Definition SkinnedAsset.h:47
Definition World.h:918
Type
Definition TaskGraphInterfaces.h:57
Type
Definition TaskGraphInterfaces.h:249
@ TrackSubsequents
Definition TaskGraphInterfaces.h:251
U16 Index
Definition radfft.cpp:71
Definition SkinWeightProfileManager.h:25
friend uint32 GetTypeHash(FSetProfileRequest A)
Definition SkinWeightProfileManager.h:46
FRequestFinished Callback
Definition SkinWeightProfileManager.h:31
int32 ExpectedResidentLODs
Definition SkinWeightProfileManager.h:39
TArray< int32 > LODIndices
Definition SkinWeightProfileManager.h:29
friend bool operator==(const FSetProfileRequest &A, const FSetProfileRequest &B)
Definition SkinWeightProfileManager.h:41
TWeakObjectPtr< UObject > IdentifyingObject
Definition SkinWeightProfileManager.h:34
FSkinWeightProfileStack ProfileStack
Definition SkinWeightProfileManager.h:27
TWeakObjectPtr< USkeletalMesh > WeakSkeletalMesh
Definition SkinWeightProfileManager.h:36
Definition SkinWeightProfileManager.h:76
FSkinWeightProfileManager * Owner
Definition SkinWeightProfileManager.h:85
Definition SkinWeightProfile.h:133
Definition SkinWeightProfile.h:238
Definition EngineBaseTypes.h:173
Definition WorldInitializationValues.h:9
Definition LightweightStats.h:416
Definition StructOpsTypeTraits.h:11
@ WithCopy
Definition StructOpsTypeTraits.h:17
Definition StructOpsTypeTraits.h:46
Definition WeakObjectPtrTemplates.h:25