UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FLinkerInstancingContext Class Reference

#include <LinkerInstancingContext.h>

Classes

class  FSharedLinkerInstancingContextData
 

Public Member Functions

COREUOBJECT_API FLinkerInstancingContext ()
 
COREUOBJECT_API FLinkerInstancingContext (TSet< FName > InTags)
 
COREUOBJECT_API FLinkerInstancingContext (bool bInSoftObjectPathRemappingEnabled)
 
COREUOBJECT_API bool IsInstanced () const
 
COREUOBJECT_API FName RemapPackage (const FName &PackageName) const
 
COREUOBJECT_API FSoftObjectPath RemapPath (const FSoftObjectPath &Path) const
 
COREUOBJECT_API void AddPackageMapping (FName Original, FName Instanced)
 
COREUOBJECT_API void AddPackageMappingFunc (TFunction< FName(FName)> InInstancedPackageMapFunc)
 
COREUOBJECT_API void AddPathMapping (FSoftObjectPath Original, FSoftObjectPath Instanced)
 
COREUOBJECT_API void AddTag (FName NewTag)
 
COREUOBJECT_API void AppendTags (const TSet< FName > &NewTags)
 
COREUOBJECT_API bool HasTag (FName Tag) const
 
COREUOBJECT_API void SetSoftObjectPathRemappingEnabled (bool bInSoftObjectPathRemappingEnabled)
 
COREUOBJECT_API bool GetSoftObjectPathRemappingEnabled () const
 
void SetRegenerateUniqueBulkDataGuids (bool bFlag)
 
bool ShouldRegenerateUniqueBulkDataGuids () const
 
COREUOBJECT_API void FixupSoftObjectPath (FSoftObjectPath &InOutSoftObjectPath) const
 

Static Public Member Functions

static COREUOBJECT_API FLinkerInstancingContext DuplicateContext (const FLinkerInstancingContext &InLinkerInstancingContext)
 
static FString GetInstancedPackageName (const FString &InOuterPackageName, const FString &InPackageName)
 
static FName GetInstancedPackageName (FName InOuterPackageName, FName InPackageName)
 

Friends

class FLinkerLoad
 
struct FAsyncPackage2
 
class FLinkerInstancingContextTests
 

Detailed Description

Helper class to remap package imports during loading. This is usually when objects in a package are outer-ed to object in another package or vice versa. Instancing such a package without a instance remapping would resolve imports to the original package which is not desirable in an instancing context (i.e. loading a level instance) This is because an instanced package has a different name than the package file name on disk, this class is used in the linker to remaps reference to the package name as stored in import tables on disk to the corresponding instanced package or packages we are loading.

Constructor & Destructor Documentation

◆ FLinkerInstancingContext() [1/3]

FLinkerInstancingContext::FLinkerInstancingContext ( )

◆ FLinkerInstancingContext() [2/3]

FLinkerInstancingContext::FLinkerInstancingContext ( TSet< FName InTags)
explicit

◆ FLinkerInstancingContext() [3/3]

FLinkerInstancingContext::FLinkerInstancingContext ( bool  bInSoftObjectPathRemappingEnabled)
explicit

Member Function Documentation

◆ AddPackageMapping()

void FLinkerInstancingContext::AddPackageMapping ( FName  Original,
FName  Instanced 
)

Add a mapping from a package name to a new package name. There should be no separators (. or :) in these strings.

◆ AddPackageMappingFunc()

void FLinkerInstancingContext::AddPackageMappingFunc ( TFunction< FName(FName)>  InInstancedPackageMapFunc)

Add a mapping function from a package name to a new package name. This function should be thread-safe, as it can be invoked from ALT.

◆ AddPathMapping()

void FLinkerInstancingContext::AddPathMapping ( FSoftObjectPath  Original,
FSoftObjectPath  Instanced 
)

Add a mapping from a top level asset path (/Path/To/Package.AssetName) to another.

◆ AddTag()

void FLinkerInstancingContext::AddTag ( FName  NewTag)

◆ AppendTags()

void FLinkerInstancingContext::AppendTags ( const TSet< FName > &  NewTags)

◆ DuplicateContext()

FLinkerInstancingContext FLinkerInstancingContext::DuplicateContext ( const FLinkerInstancingContext InLinkerInstancingContext)
static

◆ FixupSoftObjectPath()

void FLinkerInstancingContext::FixupSoftObjectPath ( FSoftObjectPath InOutSoftObjectPath) const

◆ GetInstancedPackageName() [1/2]

static FString FLinkerInstancingContext::GetInstancedPackageName ( const FString &  InOuterPackageName,
const FString &  InPackageName 
)
inlinestatic

Return the instanced package name for a given instanced outer package and an object package name

◆ GetInstancedPackageName() [2/2]

static FName FLinkerInstancingContext::GetInstancedPackageName ( FName  InOuterPackageName,
FName  InPackageName 
)
inlinestatic

◆ GetSoftObjectPathRemappingEnabled()

bool FLinkerInstancingContext::GetSoftObjectPathRemappingEnabled ( ) const

◆ HasTag()

bool FLinkerInstancingContext::HasTag ( FName  Tag) const

◆ IsInstanced()

bool FLinkerInstancingContext::IsInstanced ( ) const

◆ RemapPackage()

FName FLinkerInstancingContext::RemapPackage ( const FName PackageName) const

Remap the package name from the import table to its instanced counterpart, otherwise return the name unmodified.

◆ RemapPath()

FSoftObjectPath FLinkerInstancingContext::RemapPath ( const FSoftObjectPath Path) const

Remap the top level asset part of the path name to its instanced counterpart, otherwise return the name unmodified. i.e. remaps /Path/To/Package.AssetName:Inner to /NewPath/To/NewPackage.NewAssetName:Inner

◆ SetRegenerateUniqueBulkDataGuids()

void FLinkerInstancingContext::SetRegenerateUniqueBulkDataGuids ( bool  bFlag)
inline

◆ SetSoftObjectPathRemappingEnabled()

void FLinkerInstancingContext::SetSoftObjectPathRemappingEnabled ( bool  bInSoftObjectPathRemappingEnabled)

◆ ShouldRegenerateUniqueBulkDataGuids()

bool FLinkerInstancingContext::ShouldRegenerateUniqueBulkDataGuids ( ) const
inline

Friends And Related Symbol Documentation

◆ FAsyncPackage2

◆ FLinkerInstancingContextTests

friend class FLinkerInstancingContextTests
friend

◆ FLinkerLoad

friend class FLinkerLoad
friend

The documentation for this class was generated from the following files: