UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TextureStreamingTypes.h File Reference
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "Misc/Guid.h"
#include "HAL/IConsoleManager.h"
#include "RHIDefinitions.h"
#include "SceneTypes.h"
#include "TextureStreamingTypes.generated.h"

Go to the source code of this file.

Classes

struct  FStreamingRenderAssetPrimitiveInfo
 
struct  ITextureStreamingContainer
 
struct  FStreamingTextureBuildInfo
 
struct  FPrimitiveMaterialInfo
 
class  FStreamingTextureLevelContext
 

Macros

#define TEXSTREAM_MAX_NUM_UVCHANNELS   4
 
#define TEXSTREAM_INITIAL_GPU_SCALE   256
 
#define TEXSTREAM_TILE_RESOLUTION   32
 
#define TEXSTREAM_MAX_NUM_TEXTURES_PER_MATERIAL   256
 

Typedefs

typedef TFunction< void(UPrimitiveComponent *, UStreamableRenderAsset *, ELODStreamingCallbackResult)> FLODStreamingCallback
 
typedef TMap< UMaterialInterface *, TArray< FMaterialTextureInfo > > FTexCoordScaleMap
 
typedef TMap< UMaterialInterface *, TArray< ULevel * > > FMaterialToLevelsMap
 

Enumerations

enum  ETextureStreamingBuildType { TSB_MapBuild , TSB_ActorBuild , TSB_ValidationOnly , TSB_ViewMode }
 
enum class  ELODStreamingCallbackResult {
  Success , TimedOut , AssetRemoved , ComponentRemoved ,
  StreamingDisabled , NotImplemented
}
 

Functions

ENGINE_API DECLARE_LOG_CATEGORY_EXTERN (TextureStreamingBuild, Log, All)
 
ENGINE_API bool BuildTextureStreamingComponentData (UWorld *InWorld, EMaterialQualityLevel::Type QualityLevel, ERHIFeatureLevel::Type FeatureLevel, bool bFullRebuild, FSlowTask &BuildTextureStreamingTask)
 
ENGINE_API void CheckTextureStreamingBuildValidity (UWorld *InWorld)
 
ENGINE_API uint32 PackRelativeBox (const FVector &RefOrigin, const FVector &RefExtent, const FVector &Origin, const FVector &Extent)
 
ENGINE_API uint32 PackRelativeBox (const FBox &RefBox, const FBox &Box)
 
ENGINE_API void UnpackRelativeBox (const FBoxSphereBounds &InRefBounds, uint32 InPackedRelBox, FBoxSphereBounds &OutBounds)
 
ENGINE_API void ResetAverageRequiredTexturePoolSize ()
 
ENGINE_API int64 GetAverageRequiredTexturePoolSize ()
 

Variables

constexpr uint32 PackedRelativeBox_Identity = 0xffff0000
 
constexpr uint16 InvalidRegisteredStreamableTexture = (uint16)INDEX_NONE
 
ENGINE_API TAutoConsoleVariable< int32CVarStreamingUseNewMetrics
 
ENGINE_API TAutoConsoleVariable< int32CVarFramesForFullUpdate
 

Macro Definition Documentation

◆ TEXSTREAM_INITIAL_GPU_SCALE

#define TEXSTREAM_INITIAL_GPU_SCALE   256

◆ TEXSTREAM_MAX_NUM_TEXTURES_PER_MATERIAL

#define TEXSTREAM_MAX_NUM_TEXTURES_PER_MATERIAL   256

◆ TEXSTREAM_MAX_NUM_UVCHANNELS

#define TEXSTREAM_MAX_NUM_UVCHANNELS   4

◆ TEXSTREAM_TILE_RESOLUTION

#define TEXSTREAM_TILE_RESOLUTION   32

Typedef Documentation

◆ FLODStreamingCallback

◆ FMaterialToLevelsMap

A mapping between used material and levels for refering primitives.

◆ FTexCoordScaleMap

A Map that gives the (smallest) texture coordinate scale used when sampling each texture register of a shader. The array index is the register index, and the value, is the coordinate scale. Since a texture resource can be bound to several texture registers, it can related to different indices. This is reflected in UMaterialInterface::GetUsedTexturesAndIndices where each texture is bound to an array of texture register indices.

Enumeration Type Documentation

◆ ELODStreamingCallbackResult

Enumerator
Success 
TimedOut 
AssetRemoved 
ComponentRemoved 
StreamingDisabled 
NotImplemented 

◆ ETextureStreamingBuildType

Enumerator
TSB_MapBuild 
TSB_ActorBuild 
TSB_ValidationOnly 
TSB_ViewMode 

Function Documentation

◆ BuildTextureStreamingComponentData()

ENGINE_API bool BuildTextureStreamingComponentData ( UWorld InWorld,
EMaterialQualityLevel::Type  QualityLevel,
ERHIFeatureLevel::Type  FeatureLevel,
bool  bFullRebuild,
FSlowTask BuildTextureStreamingTask 
)

Build the shaders required for the texture streaming build. Returns whether or not the action was successful.

◆ CheckTextureStreamingBuildValidity()

ENGINE_API void CheckTextureStreamingBuildValidity ( UWorld InWorld)

Check if the lighting build is dirty. Updates the needs rebuild status of the level and world.

◆ DECLARE_LOG_CATEGORY_EXTERN()

ENGINE_API DECLARE_LOG_CATEGORY_EXTERN ( TextureStreamingBuild  ,
Log  ,
All   
)

◆ GetAverageRequiredTexturePoolSize()

ENGINE_API int64 GetAverageRequiredTexturePoolSize ( )

Returns the average value of the required texture pool "r.streaming.PoolSize" since engine start or since the last ResetAverageRequiredTexturePoolSize(). This value gives the perfect value for "r.streaming.PoolSize" so that the streamer would always have enough memory to stream in everything. The requirements are different depending on whether GPoolSizeVRAMPercentage > 0 or not. When GPoolSizeVRAMPercentage > 0, the non streaming mips are not accounted in the required pool size since StreamingPool = Min(TexturePool, GPoolSizeVRAMPercentage * VRAM - RenderTargets - NonStreamingTexture) This means that the StreamingPool = TexturePool, unless there is not enough VRAM Otherwise, when GPoolSizeVRAMPercentage == 0, StreamingPool = TexturePool - NonStreamingTexture. In which case "r.streaming.PoolSize" must account for the size of NonStreamingTexture

◆ PackRelativeBox() [1/2]

ENGINE_API uint32 PackRelativeBox ( const FBox RefBox,
const FBox Box 
)

◆ PackRelativeBox() [2/2]

ENGINE_API uint32 PackRelativeBox ( const FVector RefOrigin,
const FVector RefExtent,
const FVector Origin,
const FVector Extent 
)

◆ ResetAverageRequiredTexturePoolSize()

ENGINE_API void ResetAverageRequiredTexturePoolSize ( )

Reset the history of the value returned by GetAverageRequiredTexturePoolSize()

◆ UnpackRelativeBox()

ENGINE_API void UnpackRelativeBox ( const FBoxSphereBounds InRefBounds,
uint32  InPackedRelBox,
FBoxSphereBounds OutBounds 
)

Variable Documentation

◆ CVarFramesForFullUpdate

ENGINE_API TAutoConsoleVariable<int32> CVarFramesForFullUpdate
extern

◆ CVarStreamingUseNewMetrics

ENGINE_API TAutoConsoleVariable<int32> CVarStreamingUseNewMetrics
extern

◆ InvalidRegisteredStreamableTexture

constexpr uint16 InvalidRegisteredStreamableTexture = (uint16)INDEX_NONE
inlineconstexpr

◆ PackedRelativeBox_Identity

constexpr uint32 PackedRelativeBox_Identity = 0xffff0000
inlineconstexpr