UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MaterialCacheVirtualTextureDescriptor.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Math/UnrealMath.h"
6#include "NaniteDefinitions.h"
7#include "TextureResource.h"
8#include "VirtualTexturing.h"
9
11
13{
14 operator FUintVector2() const
15 {
16 FUintVector2 Out;
17 FMemory::Memcpy(&Out, this, sizeof(FUintVector2));
18 return Out;
19 }
20
21 // DWord0
26
27 // DWord1
32};
33
35{
36 checkf(UVCoordinateIndex <= 3 && UVCoordinateIndex < NANITE_MAX_UVS, TEXT("Out of bounds coordinate index, consider expanding bit-width of UVCoordinateIndex"));
37
39 if (!Resource)
40 {
41 return Descriptor;
42 }
43
46 {
47 return Descriptor;
48 }
49
50 IAllocatedVirtualTexture* Allocation = VirtualResource->GetAllocatedVT();
51 if (!ensure(Allocation))
52 {
53 return Descriptor;
54 }
55
56 Descriptor.PageX = Allocation->GetVirtualPageX();
57 Descriptor.PageY = Allocation->GetVirtualPageY();
58 Descriptor.WidthInPages = Allocation->GetWidthInTiles();
59 Descriptor.HeightInPages = Allocation->GetHeightInTiles();
60 Descriptor.PageTableMipBias = FMath::FloorLog2(Allocation->GetVirtualTileSize());
61 Descriptor.SpaceID = Allocation->GetSpaceID();
62 Descriptor.MaxLevel = Allocation->GetMaxLevel();
63 Descriptor.UVCoordinateIndex = UVCoordinateIndex;
64 return Descriptor;
65}
66
67static_assert(sizeof(UMaterialCacheVirtualTextureDescriptor) == sizeof(FUintVector2), "Unexpected descriptor size");
#define ensure( InExpression)
Definition AssertionMacros.h:464
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UMaterialCacheVirtualTextureDescriptor PackMaterialCacheTextureDescriptor(FTextureResource *Resource, uint32_t UVCoordinateIndex)
Definition MaterialCacheVirtualTextureDescriptor.h:34
UE::Math::TIntVector2< uint32 > FUintVector2
Definition MathFwd.h:103
Definition TextureResource.h:103
virtual FVirtualTexture2DResource * GetVirtualTexture2DResource()
Definition TextureResource.h:119
Definition TextureResource.h:175
Definition VirtualTexturing.h:374
uint32 GetVirtualPageY() const
Definition VirtualTexturing.h:437
uint32 GetWidthInTiles() const
Definition VirtualTexturing.h:428
uint32 GetVirtualTileSize() const
Definition VirtualTexturing.h:419
uint32 GetVirtualPageX() const
Definition VirtualTexturing.h:436
uint32 GetHeightInTiles() const
Definition VirtualTexturing.h:429
uint32 GetMaxLevel() const
Definition VirtualTexturing.h:438
uint32 GetSpaceID() const
Definition VirtualTexturing.h:434
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160
Definition MaterialCacheVirtualTextureDescriptor.h:13
uint32_t MaxLevel
Definition MaterialCacheVirtualTextureDescriptor.h:30
uint32_t PageX
Definition MaterialCacheVirtualTextureDescriptor.h:22
uint32_t UVCoordinateIndex
Definition MaterialCacheVirtualTextureDescriptor.h:31
uint32_t WidthInPages
Definition MaterialCacheVirtualTextureDescriptor.h:28
uint32_t PageTableMipBias
Definition MaterialCacheVirtualTextureDescriptor.h:24
uint32_t PageY
Definition MaterialCacheVirtualTextureDescriptor.h:23
uint32_t HeightInPages
Definition MaterialCacheVirtualTextureDescriptor.h:29
uint32_t SpaceID
Definition MaterialCacheVirtualTextureDescriptor.h:25