UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MemoryImage.h File Reference
#include "Containers/Array.h"
#include "Containers/ContainerAllocationPolicies.h"
#include "Containers/HashTable.h"
#include "Containers/Map.h"
#include "Containers/Set.h"
#include "Containers/UnrealString.h"
#include "CoreTypes.h"
#include "HAL/MemoryBase.h"
#include "HAL/PlatformCrt.h"
#include "HAL/PlatformString.h"
#include "HAL/PreprocessorHelpers.h"
#include "HAL/UnrealMemory.h"
#include "Math/UnrealMathUtility.h"
#include "Misc/AssertionMacros.h"
#include "Misc/CString.h"
#include "Misc/Crc.h"
#include "Misc/SecureHash.h"
#include "Serialization/Archive.h"
#include "Serialization/MemoryImageWriter.h"
#include "Serialization/MemoryLayout.h"
#include "Templates/AlignmentTemplates.h"
#include "Templates/EnableIf.h"
#include "Templates/RefCounting.h"
#include "Templates/TypeHash.h"
#include "Traits/IsCharType.h"
#include "UObject/NameTypes.h"

Go to the source code of this file.

Classes

class  FPointerTableBase
 
struct  TMemoryImageObject< T >
 
struct  FMemoryImageVTablePointer
 
struct  FMemoryImageNamePointer
 
struct  FMemoryImageResult
 
class  FMemoryImageSection
 
struct  FMemoryImageSection::FSectionPointer
 
class  FMemoryImage
 
struct  FFrozenMemoryImagePtr
 
class  TMemoryImagePtr< T >
 
class  TUniqueMemoryImagePtr< T >
 
class  FMemoryImageAllocatorBase
 
class  TMemoryImageAllocator< Alignment >
 
class  TMemoryImageAllocator< Alignment >::ForAnyElementType
 
class  TMemoryImageAllocator< Alignment >::ForElementType< ElementType >
 
struct  TAllocatorTraits< TMemoryImageAllocator< Alignment > >
 
struct  TIsContiguousContainer< FMemoryImageString >
 
class  FMemoryImageString
 
class  FHashedName
 
class  FPtrTableBase
 
struct  FPtrTableBase::FPatchOffset
 
struct  FPtrTableBase::FPatchOffsetList
 
class  TPtrTableBase< T, PtrType >
 
class  TPtrTable< T >
 
class  TRefCountPtrTable< T >
 
class  FVoidPtrTable
 
class  TIndexedPtrBase< T, PtrType >
 
class  TPatchedPtrBase< T, PtrType >
 

Namespaces

namespace  Freeze
 

Macros

#define UE_MEMORYIMAGE_TRACK_TYPE_DEPENDENCIES   (WITH_EDITORONLY_DATA)
 

Typedefs

using FMemoryImageObject = TMemoryImageObject< void >
 
using FMemoryImageAllocator = TMemoryImageAllocator<>
 
using FMemoryImageSparseArrayAllocator = TSparseArrayAllocator< FMemoryImageAllocator, FMemoryImageAllocator >
 
using FMemoryImageSetAllocator = TSetAllocator< FMemoryImageSparseArrayAllocator, FMemoryImageAllocator >
 
template<typename T >
using TMemoryImageArray = TArray< T, FMemoryImageAllocator >
 
template<typename ElementType , typename KeyFuncs = DefaultKeyFuncs<ElementType>>
using TMemoryImageSet = TSet< ElementType, KeyFuncs, FMemoryImageSetAllocator >
 
template<typename KeyType , typename ValueType , typename KeyFuncs = TDefaultMapHashableKeyFuncs<KeyType, ValueType, false>>
using TMemoryImageMap = TMap< KeyType, ValueType, FMemoryImageSetAllocator, KeyFuncs >
 
template<typename T >
using TIndexedPtr = TIndexedPtrBase< T, T * >
 
template<typename T >
using TIndexedRefCountPtr = TIndexedPtrBase< T, TRefCountPtr< T > >
 
template<typename T >
using TPatchedPtr = TPatchedPtrBase< T, T * >
 
template<typename T >
using TPatchedRefCountPtr = TPatchedPtrBase< T, TRefCountPtr< T > >
 

Functions

CORE_API FMemoryImageObject FreezeMemoryImageObject (const void *Object, const FTypeLayoutDesc &TypeDesc, FPointerTableBase *PointerTable)
 
CORE_API voidUnfreezeMemoryImageObject (const void *FrozenObject, const FTypeLayoutDesc &TypeDesc, const FPointerTableBase *PointerTable)
 
template<typename T >
void Freeze::IntrinsicWriteMemoryImage (FMemoryImageWriter &Writer, const TMemoryImagePtr< T > &Object, const FTypeLayoutDesc &)
 
template<typename T >
uint32 Freeze::IntrinsicUnfrozenCopy (const FMemoryUnfreezeContent &Context, const TMemoryImagePtr< T > &Object, void *OutDst)
 
template<typename T >
uint32 Freeze::IntrinsicAppendHash (const TMemoryImagePtr< T > *DummyObject, const FTypeLayoutDesc &TypeDesc, const FPlatformTypeLayoutParameters &LayoutParams, FSHA1 &Hasher)
 
template<typename T >
uint32 Freeze::IntrinsicGetTargetAlignment (const TMemoryImagePtr< T > *DummyObject, const FTypeLayoutDesc &TypeDesc, const FPlatformTypeLayoutParameters &LayoutParams)
 
template<typename T >
void Freeze::IntrinsicToString (const TMemoryImagePtr< T > &Object, const FTypeLayoutDesc &TypeDesc, const FPlatformTypeLayoutParameters &LayoutParams, FMemoryToStringContext &OutContext)
 
 DECLARE_TEMPLATE_INTRINSIC_TYPE_LAYOUT (template< typename T >, TMemoryImagePtr< T >)
 
template<typename T , typename PtrType >
void Freeze::IntrinsicWriteMemoryImage (FMemoryImageWriter &Writer, const TIndexedPtrBase< T, PtrType > &Object, const FTypeLayoutDesc &TypeDesc)
 
template<typename T , typename PtrType >
uint32 Freeze::IntrinsicUnfrozenCopy (const FMemoryUnfreezeContent &Context, const TIndexedPtrBase< T, PtrType > &Object, void *OutDst)
 
template<typename T , typename PtrType >
uint32 Freeze::IntrinsicAppendHash (const TIndexedPtrBase< T, PtrType > *DummyObject, const FTypeLayoutDesc &TypeDesc, const FPlatformTypeLayoutParameters &LayoutParams, FSHA1 &Hasher)
 
template<typename T , typename PtrType >
uint32 Freeze::IntrinsicGetTargetAlignment (const TIndexedPtrBase< T, PtrType > *DummyObject, const FTypeLayoutDesc &TypeDesc, const FPlatformTypeLayoutParameters &LayoutParams)
 

Macro Definition Documentation

◆ UE_MEMORYIMAGE_TRACK_TYPE_DEPENDENCIES

#define UE_MEMORYIMAGE_TRACK_TYPE_DEPENDENCIES   (WITH_EDITORONLY_DATA)

Typedef Documentation

◆ FMemoryImageAllocator

◆ FMemoryImageObject

◆ FMemoryImageSetAllocator

◆ FMemoryImageSparseArrayAllocator

◆ TIndexedPtr

template<typename T >
using TIndexedPtr = TIndexedPtrBase<T, T*>

◆ TIndexedRefCountPtr

◆ TMemoryImageArray

◆ TMemoryImageMap

template<typename KeyType , typename ValueType , typename KeyFuncs = TDefaultMapHashableKeyFuncs<KeyType, ValueType, false>>
using TMemoryImageMap = TMap<KeyType, ValueType, FMemoryImageSetAllocator, KeyFuncs>

◆ TMemoryImageSet

template<typename ElementType , typename KeyFuncs = DefaultKeyFuncs<ElementType>>
using TMemoryImageSet = TSet<ElementType, KeyFuncs, FMemoryImageSetAllocator>

◆ TPatchedPtr

template<typename T >
using TPatchedPtr = TPatchedPtrBase<T, T*>

◆ TPatchedRefCountPtr

Function Documentation

◆ DECLARE_TEMPLATE_INTRINSIC_TYPE_LAYOUT()

DECLARE_TEMPLATE_INTRINSIC_TYPE_LAYOUT ( template< typename T >  ,
TMemoryImagePtr< T >   
)

◆ FreezeMemoryImageObject()

CORE_API FMemoryImageObject FreezeMemoryImageObject ( const void Object,
const FTypeLayoutDesc TypeDesc,
FPointerTableBase PointerTable 
)

◆ UnfreezeMemoryImageObject()

CORE_API void * UnfreezeMemoryImageObject ( const void FrozenObject,
const FTypeLayoutDesc TypeDesc,
const FPointerTableBase PointerTable 
)