UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LinkerInstancingContext.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6
11{
12public:
18
21
23 : InstanceMappingDirection(MappingDirection)
24 , bIsInstanced(false)
26 , bEnableNonEditorPath(false)
27#else
28 , bEnableNonEditorPath(true)
29#endif
30 {
31 }
32
33 bool IsInstanced() const
34 {
35 return bIsInstanced;
36 }
37
39 FName RemapPackage(const FName& PackageName, bool* bWasFoundPtr = nullptr) const
40 {
41 if (const FName* RemappedName = InstancedPackageMapping.Find(PackageName))
42 {
43 if (bWasFoundPtr)
44 {
45 *bWasFoundPtr = true;
46 }
47 return *RemappedName;
48 }
49 if (bWasFoundPtr)
50 {
51 *bWasFoundPtr = false;
52 }
53 return PackageName;
54 }
55
58
60
62
63private:
66 void EnableAutomationTest() { bEnableNonEditorPath = true; }
67
73 TMap<FName, FName> InstancedPackageMapping;
74
78 EInstanceMappingDirection InstanceMappingDirection;
79
81 FString GeneratedPackagesFolder;
82 FString InstancedPackagePrefix;
83 FString InstancedPackageSuffix;
84
86 bool bIsInstanced;
87
89 bool bEnableNonEditorPath;
90};
91
99{
100public:
104
106
107 COREUOBJECT_API bool IsInstanced() const;
108
110 COREUOBJECT_API FName RemapPackage(const FName& PackageName) const;
111
117
120
123
126
127 COREUOBJECT_API void AddTag(FName NewTag);
129 COREUOBJECT_API bool HasTag(FName Tag) const;
132
133 UE_DEPRECATED(5.2, "No longer used, pass ELoadFlags::LOAD_RegenerateBulkDataGuids to LoadPackage instead")
135
136 UE_DEPRECATED(5.2, "No longer used, check ELoadFlags::LOAD_RegenerateBulkDataGuids in the LoadFlags instead")
138
140 static FString GetInstancedPackageName(const FString& InOuterPackageName, const FString& InPackageName)
141 {
142 return FString::Printf(TEXT("%s_InstanceOf_%s"), *InOuterPackageName, *InPackageName);
143 }
144
149
151
152private:
153 void EnableAutomationTest();
154 void BuildPackageMapping(FName Original, FName Instanced);
155 bool FindPackageMapping(FName Original, FName& Instanced) const;
156
157 friend class FLinkerLoad;
158 friend struct FAsyncPackage2;
161
163};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define WITH_EDITOR
Definition Build.h:67
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
const bool
Definition NetworkReplayStreaming.h:178
if(Failed) console_printf("Failed.\n")
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition LinkerInstancingContext.h:11
FLinkerInstancedPackageMap(EInstanceMappingDirection MappingDirection)
Definition LinkerInstancingContext.h:22
COREUOBJECT_API bool FixupSoftObjectPath(FSoftObjectPath &InOutSoftObjectPath) const
Definition LinkerInstancingContext.cpp:405
COREUOBJECT_API void BuildPackageMapping(FName Original, FName Instanced, const bool bBuildWorldPartitionCellMapping=true)
Definition LinkerInstancingContext.cpp:343
friend class FLinkerInstancingContextTests
Definition LinkerInstancingContext.h:65
EInstanceMappingDirection
Definition LinkerInstancingContext.h:14
FLinkerInstancedPackageMap()
Definition LinkerInstancingContext.h:19
bool IsInstanced() const
Definition LinkerInstancingContext.h:33
FName RemapPackage(const FName &PackageName, bool *bWasFoundPtr=nullptr) const
Definition LinkerInstancingContext.h:39
COREUOBJECT_API void AddPackageMapping(FName Original, FName Instanced)
Definition LinkerInstancingContext.cpp:322
Definition LinkerInstancingContext.cpp:27
Definition LinkerInstancingContext.h:99
static COREUOBJECT_API FLinkerInstancingContext DuplicateContext(const FLinkerInstancingContext &InLinkerInstancingContext)
Definition LinkerInstancingContext.cpp:216
COREUOBJECT_API void SetSoftObjectPathRemappingEnabled(bool bInSoftObjectPathRemappingEnabled)
Definition LinkerInstancingContext.cpp:296
static FName GetInstancedPackageName(FName InOuterPackageName, FName InPackageName)
Definition LinkerInstancingContext.h:145
COREUOBJECT_API bool IsInstanced() const
Definition LinkerInstancingContext.cpp:238
COREUOBJECT_API void AddTag(FName NewTag)
Definition LinkerInstancingContext.cpp:281
COREUOBJECT_API void AddPackageMapping(FName Original, FName Instanced)
Definition LinkerInstancingContext.cpp:259
COREUOBJECT_API FName RemapPackage(const FName &PackageName) const
Definition LinkerInstancingContext.cpp:244
COREUOBJECT_API void AddPathMapping(FSoftObjectPath Original, FSoftObjectPath Instanced)
Definition LinkerInstancingContext.cpp:271
COREUOBJECT_API void AppendTags(const TSet< FName > &NewTags)
Definition LinkerInstancingContext.cpp:286
COREUOBJECT_API void FixupSoftObjectPath(FSoftObjectPath &InOutSoftObjectPath) const
Definition LinkerInstancingContext.cpp:306
COREUOBJECT_API bool HasTag(FName Tag) const
Definition LinkerInstancingContext.cpp:291
friend class FLinkerInstancingContextTests
Definition LinkerInstancingContext.h:159
bool ShouldRegenerateUniqueBulkDataGuids() const
Definition LinkerInstancingContext.h:137
COREUOBJECT_API void AddPackageMappingFunc(TFunction< FName(FName)> InInstancedPackageMapFunc)
Definition LinkerInstancingContext.cpp:265
COREUOBJECT_API FSoftObjectPath RemapPath(const FSoftObjectPath &Path) const
Definition LinkerInstancingContext.cpp:253
COREUOBJECT_API bool GetSoftObjectPathRemappingEnabled() const
Definition LinkerInstancingContext.cpp:301
static FString GetInstancedPackageName(const FString &InOuterPackageName, const FString &InPackageName)
Definition LinkerInstancingContext.h:140
COREUOBJECT_API FLinkerInstancingContext()
Definition LinkerInstancingContext.cpp:198
void SetRegenerateUniqueBulkDataGuids(bool bFlag)
Definition LinkerInstancingContext.h:134
Definition LinkerLoad.h:124
Definition NameTypes.h:617
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
@ false
Definition radaudio_common.h:23
Definition AsyncLoading2.cpp:3560
Definition SoftObjectPath.h:56