UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VirtualTextureDataBuilder.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4#include "CoreMinimal.h"
5#include "Engine/Texture.h"
6#include "ImageCore.h"
8
9struct FImage;
15struct FSlowTask;
16
22
27
29{
30 // Block size in pixels (each block can be different size)
33
34 // Block coordinate (in block units) in texture where block is located
37
38 // Normally each blocks covers a 1x1 block area in output, but it can cover more.
39 // For example, miptail covers multiple input blocks. Thease are in block units.
42
43 int32 MipBias = 0; // First mip level in block that contains actual data (because blocks can be smaller than others)
44 int32 NumMips = 0; // Count of mips (may be less than source texture reqests because of MipBias)
48};
49
54
64
71
84
85// Holds a bunch of stuff we derive from the input data that we use during the build.
99
117{
118public:
121
122 // note: InSourceData is freed by this function
124
125private:
126 friend struct FAsyncMacroBlockTask;
127
128 bool BuildPagesForChunk(const TArray<FVTSourceTileEntry>& ActiveTileList);
129 void BuildTiles(const TArray<FVTSourceTileEntry>& TileList, uint32 layer, FLayerData& GeneratedData);
130 bool PushDataToChunk(const TArray<FVTSourceTileEntry>& Tiles, const TArray<FLayerData>& LayerData);
131
132 int32 FindSourceBlockIndex(int32 MipIndex, int32 BlockX, int32 BlockY);
133
135 void BuildBlockTiles(uint32 LayerIndex, uint32 BlockIndex, FVTBlockPayload& Block, const FVirtualTextureSourceLayerData& LayerData, bool bAllowAsync);
136 bool BuildChunks();
137
138 TArray<FVTLayerPayload> LayerPayload;
139
140 // Cached inside this object
141 TArray<FTextureBuildSettings> SettingsPerLayer;
143
144 // Some convenience variables (mostly derived from the passed in build settings)
146
149
150 const FString& DebugTexturePathName;
151 int32 ChunkDumpIndex = 0;
152};
EGammaSpace
Definition Color.h:32
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
EPixelFormat
Definition PixelFormat.h:16
@ PF_Unknown
Definition PixelFormat.h:17
ETextureSourceFormat
Definition TextureDefines.h:351
EVirtualTextureCodec
Definition VirtualTextureBuiltData.h:21
int BlockIndex
Definition binka_ue_decode_test.cpp:38
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition VirtualTextureDataBuilder.h:117
friend struct FAsyncMacroBlockTask
Definition VirtualTextureDataBuilder.h:126
bool Build(FTextureSourceData &InSourceData, FTextureSourceData &InCompositeSourceData, const FTextureBuildSettings *InSettingsPerLayer, bool bAllowAsync)
FVirtualTextureDataBuilder(FVirtualTextureBuiltData &SetOutData, const FString &DebugTexturePathName, ITextureCompressorModule *InCompressor=nullptr, IImageWrapperModule *InImageWrapper=nullptr)
Definition IImageWrapperModule.h:50
Definition ImageWrapper.Build.cs:6
Definition Array.h:670
Type
Definition ImageCore.h:57
Definition ImageCore.h:416
Definition VirtualTextureDataBuilder.h:66
TArray< TArray< uint8 > > TilePayload
Definition VirtualTextureDataBuilder.h:67
EVirtualTextureCodec Codec
Definition VirtualTextureDataBuilder.h:69
TArray< uint8 > CodecPayload
Definition VirtualTextureDataBuilder.h:68
Definition SlowTask.h:29
Definition VirtualTextureDataBuilder.h:29
int32 BlockX
Definition VirtualTextureDataBuilder.h:35
int32 BlockY
Definition VirtualTextureDataBuilder.h:36
int32 MipBias
Definition VirtualTextureDataBuilder.h:43
TArray< FImage > Mips
Definition VirtualTextureDataBuilder.h:47
int32 NumSlices
Definition VirtualTextureDataBuilder.h:45
int32 SizeInBlocksY
Definition VirtualTextureDataBuilder.h:41
int32 SizeX
Definition VirtualTextureDataBuilder.h:31
TArray< FVTTilePayload > Tiles
Definition VirtualTextureDataBuilder.h:46
int32 NumMips
Definition VirtualTextureDataBuilder.h:44
int32 SizeInBlocksX
Definition VirtualTextureDataBuilder.h:40
int32 SizeY
Definition VirtualTextureDataBuilder.h:32
Definition VirtualTextureDataBuilder.h:51
TArray< FVTBlockPayload > Blocks
Definition VirtualTextureDataBuilder.h:52
Definition VirtualTextureDataBuilder.h:56
int32 TileIndex
Definition VirtualTextureDataBuilder.h:58
int32 BlockIndex
Definition VirtualTextureDataBuilder.h:57
int32 MipIndexInBlock
Definition VirtualTextureDataBuilder.h:60
int32 TileY
Definition VirtualTextureDataBuilder.h:62
int32 TileX
Definition VirtualTextureDataBuilder.h:61
int32 MipIndex
Definition VirtualTextureDataBuilder.h:59
Definition VirtualTextureDataBuilder.h:18
EPixelFormat CompressedFormat
Definition VirtualTextureDataBuilder.h:19
TArray< uint8 > Payload
Definition VirtualTextureDataBuilder.h:20
Definition VirtualTextureDataBuilder.h:24
TArray< FVTTileMipPayload > Mips
Definition VirtualTextureDataBuilder.h:25
Definition VirtualTextureDataBuilder.h:87
int32 BlockSizeX
Definition VirtualTextureDataBuilder.h:90
int32 BlockSizeY
Definition VirtualTextureDataBuilder.h:91
int32 NumMips
Definition VirtualTextureDataBuilder.h:95
int32 SizeY
Definition VirtualTextureDataBuilder.h:94
int32 SizeInBlocksX
Definition VirtualTextureDataBuilder.h:88
int32 BlockSizeScale
Definition VirtualTextureDataBuilder.h:92
int32 SizeX
Definition VirtualTextureDataBuilder.h:93
bool InitializeFromBuildSettings(const FTextureSourceData &InSourceData, const FTextureBuildSettings *InSettingsPerLayer)
int32 SizeInBlocksY
Definition VirtualTextureDataBuilder.h:89
Definition VirtualTextureBuiltData.h:131
Definition VirtualTextureDataBuilder.h:73
FName TextureFormatName
Definition VirtualTextureDataBuilder.h:79
ETextureSourceFormat SourceFormat
Definition VirtualTextureDataBuilder.h:76
EPixelFormat PixelFormat
Definition VirtualTextureDataBuilder.h:77
bool bHasAlpha
Definition VirtualTextureDataBuilder.h:82
ERawImageFormat::Type ImageFormat
Definition VirtualTextureDataBuilder.h:75
EGammaSpace GammaSpace
Definition VirtualTextureDataBuilder.h:81
FName FormatName
Definition VirtualTextureDataBuilder.h:78