|
| | 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) |
| |
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