UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AdaptiveVirtualTexture.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "Containers/HashTable.h"
8#include "VirtualTexturing.h"
9
11class FRDGBuilder;
16
25{
26public:
28
31
42
43 //~ Begin IAdaptiveVirtualTexture Interface.
45 virtual int32 GetSpaceID() const override;
46 //~ End IAdaptiveVirtualTexture Interface.
47
57
67
68protected:
69 //~ Begin IAdaptiveVirtualTexture Interface.
70 virtual void Destroy(class FVirtualTextureSystem* InSystem) override;
71 //~ End IAdaptiveVirtualTexture Interface.
72
73private:
75 uint32 GetAllocationIndex(uint32 GridIndex) const;
77 uint32 GetAllocationIndex(FAllocatedVirtualTexture* InAllocatedVT) const;
78
87
88 static IAllocatedVirtualTexture* AllocateVirtualTexture(
89 FRHICommandListBase& RHICmdList,
98
101
102private:
104 FAdaptiveVTDescription AdaptiveDesc;
106 FAllocatedVTDescription AllocatedDesc;
108 int32 MaxLevel;
110 FIntPoint GridSize;
111
113 FAllocatedVirtualTexture* AllocatedVirtualTextureLowMips;
114
116 struct FAllocation
117 {
119 : GridIndex(InGridIndex)
120 , AllocatedVT(InAllocatedVT)
121 {}
122
124 uint32 GridIndex;
126 FAllocatedVirtualTexture* AllocatedVT;
127 };
128
130 int32 NumAllocated;
132 TArray<FAllocation> AllocationSlots;
134 TArray<int32> FreeSlots;
136 FHashTable GridIndexMap;
138 FHashTable AllocatedVTMap;
140 TArray<int32> SlotsPendingRootPageMap;
143
145 TArray<uint32> RequestsToMap;
146
148 struct FIndirectionTextureUpdate
149 {
150 uint32 X;
151 uint32 Y;
153 };
154
157
159 TArray<FVirtualTextureProducerHandle> ProducersToRelease;
160};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define X(Name, Desc)
Definition FormatStringSan.h:47
void Init()
Definition LockFreeList.h:4
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition AdaptiveVirtualTexture.h:25
virtual IAllocatedVirtualTexture * GetAllocatedVirtualTexture() override
Definition AdaptiveVirtualTexture.cpp:304
void QueuePackedAllocationRequests(TConstArrayView< uint32 > InRequests, uint32 InFrame)
Definition AdaptiveVirtualTexture.cpp:558
virtual int32 GetSpaceID() const override
Definition AdaptiveVirtualTexture.cpp:309
void GetProducers(FIntRect const &InTextureRegion, uint32 InMaxLevel, TArray< FProducerInfo > &OutProducerInfos) const
Definition AdaptiveVirtualTexture.cpp:314
void UpdateAllocations(FVirtualTextureSystem *InSystem, FRHICommandListImmediate &RHICmdList, uint32 InFrame)
Definition AdaptiveVirtualTexture.cpp:742
uint32 GetPackedAllocationRequest(uint32 vAddress, uint32 vLevelPlusOne, uint32 Frame) const
Definition AdaptiveVirtualTexture.cpp:463
void ApplyPageTableUpdates(FVirtualTextureSystem *InSystem, FRDGBuilder &GraphBuilder, FRDGExternalAccessQueue &ExternalAccessQueue)
Definition AdaptiveVirtualTexture.cpp:844
void GetAllocatedVirtualTextures(FBox2D const &InUVRegion, uint32 InLevel, TArray< FAllocatedInfo > &OutInfos, TArray< uint32 > &OutAllocationRequests)
Definition AdaptiveVirtualTexture.cpp:374
Definition AllocatedVirtualTexture.h:18
Definition BinaryHeap.h:20
Definition HashTable.h:210
Definition RenderGraphBuilder.h:49
Definition RenderGraphUtils.h:1272
Definition RHICommandList.h:455
Definition RHICommandList.h:4626
Definition VirtualTextureSystem.h:108
Definition VirtualTexturing.h:471
Definition VirtualTexturing.h:374
Definition Array.h:670
@ Y
Definition Axis.h:14
Definition VirtualTexturing.h:485
Definition AdaptiveVirtualTexture.h:60
uint32 RemappedLevel
Definition AdaptiveVirtualTexture.h:63
FBox2D RemappedUV
Definition AdaptiveVirtualTexture.h:62
IAllocatedVirtualTexture * AllocatedVirtualTexture
Definition AdaptiveVirtualTexture.h:61
Definition AdaptiveVirtualTexture.h:50
FIntRect RemappedTextureRegion
Definition AdaptiveVirtualTexture.h:52
FVirtualTextureProducerHandle ProducerHandle
Definition AdaptiveVirtualTexture.h:51
uint32 RemappedMaxLevel
Definition AdaptiveVirtualTexture.h:53
Definition VirtualTexturing.h:69
Definition IntPoint.h:25
Definition VirtualTexturing.h:33