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

#include <TexturePageMap.h>

Public Member Functions

 FTexturePageMap ()
 
 ~FTexturePageMap ()
 
void Initialize (uint32 InSize, uint32 InLayerIndex, uint32 InDimensions)
 
uint32 GetSize () const
 
uint32 FindPageAddress (uint8 vLogSize, uint32 vAddress) const
 
FPhysicalSpaceIDAndAddress FindPagePhysicalSpaceIDAndAddress (const FTexturePage &CheckPage, uint16 Hash) const
 
FPhysicalSpaceIDAndAddress FindPagePhysicalSpaceIDAndAddress (uint8 vLogSize, uint32 vAddress) const
 
uint32 FindNearestPageAddress (uint8 vLogSize, uint32 vAddress) const
 
uint32 FindNearestPageLevel (uint8 vLogSize, uint32 vAddress) const
 
void UnmapPage (FVirtualTextureSystem *System, FVirtualTextureSpace *Space, uint8 vLogSize, uint32 vAddress, bool bMapAncestorPage)
 
void MapPage (FVirtualTextureSpace *Space, FVirtualTexturePhysicalSpace *PhysicalSpace, uint32 PackedProducerHandle, uint8 MaxLevel, uint8 vLogSize, uint32 vAddress, uint8 Local_vLevel, uint16 pAddress)
 
void GetMappedPagesInRange (uint32 vAddress, uint32 Width, uint32 Height, TArray< FMappedTexturePage > &OutMappedPages) const
 
void RefreshEntirePageTable (FVirtualTextureSystem *System, TArray< FPageTableUpdate > *Output)
 
void ExpandPageTableUpdatePainters (FVirtualTextureSystem *System, FPageTableUpdate Update, TArray< FPageTableUpdate > *Output)
 
void ExpandPageTableUpdateMasked (FVirtualTextureSystem *System, FPageTableUpdate Update, TArray< FPageTableUpdate > *Output)
 
void InvalidateUnmappedRootPage (FVirtualTextureSpace *Space, FVirtualTexturePhysicalSpace *PhysicalSpace, uint32 PackedProducerHandle, uint8 MaxLevel, uint8 vLogSize, uint32 vAddress, uint8 Local_vLevel)
 

Detailed Description

Manages a single layer of a VT page table, contains mappings of virtual->physical address Pages should not be directly mapped/unmapped from this class, this should instead go through FTexturePagePool In the context of page mappings, vLogSize and vLevel refer to 2 similar but slightly different things

  • vLogSize is the mip level of the virtual address space being mapped (from the allocated VT)
  • vLevel is the mip level of the producer that's being mapped (somethings called Local_vLevel)
  • These are often the same value, but can be different in certain situations. For example when unmapping a page, the ancestor page with a higher vLevel is mapped to the same address at vLogSize When different layers have different sizes, mip bias will cause lower vLevel pages to be mapped to address at vLogSize

Constructor & Destructor Documentation

◆ FTexturePageMap()

FTexturePageMap::FTexturePageMap ( )

◆ ~FTexturePageMap()

FTexturePageMap::~FTexturePageMap ( )

Member Function Documentation

◆ ExpandPageTableUpdateMasked()

void FTexturePageMap::ExpandPageTableUpdateMasked ( FVirtualTextureSystem System,
FPageTableUpdate  Update,
TArray< FPageTableUpdate > *  Output 
)

◆ ExpandPageTableUpdatePainters()

void FTexturePageMap::ExpandPageTableUpdatePainters ( FVirtualTextureSystem System,
FPageTableUpdate  Update,
TArray< FPageTableUpdate > *  Output 
)

◆ FindNearestPageAddress()

uint32 FTexturePageMap::FindNearestPageAddress ( uint8  vLogSize,
uint32  vAddress 
) const

Find the best matching physical address along the mipmap fall back chain for the given virtual address. Returns ~0u if none found at all.

◆ FindNearestPageLevel()

uint32 FTexturePageMap::FindNearestPageLevel ( uint8  vLogSize,
uint32  vAddress 
) const

◆ FindPageAddress()

uint32 FTexturePageMap::FindPageAddress ( uint8  vLogSize,
uint32  vAddress 
) const

Find the physical address for the given virtual address. Returns ~0u if not found.

◆ FindPagePhysicalSpaceIDAndAddress() [1/2]

FPhysicalSpaceIDAndAddress FTexturePageMap::FindPagePhysicalSpaceIDAndAddress ( const FTexturePage CheckPage,
uint16  Hash 
) const
inline

◆ FindPagePhysicalSpaceIDAndAddress() [2/2]

FPhysicalSpaceIDAndAddress FTexturePageMap::FindPagePhysicalSpaceIDAndAddress ( uint8  vLogSize,
uint32  vAddress 
) const

◆ GetMappedPagesInRange()

void FTexturePageMap::GetMappedPagesInRange ( uint32  vAddress,
uint32  Width,
uint32  Height,
TArray< FMappedTexturePage > &  OutMappedPages 
) const

◆ GetSize()

uint32 FTexturePageMap::GetSize ( ) const
inline

◆ Initialize()

void FTexturePageMap::Initialize ( uint32  InSize,
uint32  InLayerIndex,
uint32  InDimensions 
)

◆ InvalidateUnmappedRootPage()

void FTexturePageMap::InvalidateUnmappedRootPage ( FVirtualTextureSpace Space,
FVirtualTexturePhysicalSpace PhysicalSpace,
uint32  PackedProducerHandle,
uint8  MaxLevel,
uint8  vLogSize,
uint32  vAddress,
uint8  Local_vLevel 
)

◆ MapPage()

void FTexturePageMap::MapPage ( FVirtualTextureSpace Space,
FVirtualTexturePhysicalSpace PhysicalSpace,
uint32  PackedProducerHandle,
uint8  MaxLevel,
uint8  vLogSize,
uint32  vAddress,
uint8  Local_vLevel,
uint16  pAddress 
)

Map the physical address to a specific virtual address.

◆ RefreshEntirePageTable()

void FTexturePageMap::RefreshEntirePageTable ( FVirtualTextureSystem System,
TArray< FPageTableUpdate > *  Output 
)

◆ UnmapPage()

void FTexturePageMap::UnmapPage ( FVirtualTextureSystem System,
FVirtualTextureSpace Space,
uint8  vLogSize,
uint32  vAddress,
bool  bMapAncestorPage 
)

Unmap the physical address from any virtual address it was mapped to before.


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