UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FStreamingTextureLevelContext Class Reference

#include <TextureStreamingTypes.h>

Public Member Functions

ENGINE_API FStreamingTextureLevelContext (EMaterialQualityLevel::Type InQualityLevel, const ULevel *InLevel=nullptr, const TMap< FGuid, int32 > *InTextureGuidToLevelIndex=nullptr)
 
ENGINE_API FStreamingTextureLevelContext (EMaterialQualityLevel::Type InQualityLevel, ERHIFeatureLevel::Type InFeatureLevel, bool InUseRelativeBoxes)
 
ENGINE_API FStreamingTextureLevelContext (EMaterialQualityLevel::Type InQualityLevel, const UPrimitiveComponent *Primitive)
 
ENGINE_API ~FStreamingTextureLevelContext ()
 
void SetForceNoUseBuiltData (bool bValue)
 
ENGINE_API void UpdateContext (EMaterialQualityLevel::Type InQualityLevel, const ULevel *InLevel, const TMap< FGuid, int32 > *InTextureGuidToLevelIndex)
 
ENGINE_API void BindBuildData (const TArray< FStreamingTextureBuildInfo > *PreBuiltData)
 
ENGINE_API void ProcessMaterial (const FBoxSphereBounds &ComponentBounds, const FPrimitiveMaterialInfo &MaterialData, float ComponentScaling, TArray< FStreamingRenderAssetPrimitiveInfo > &OutStreamingTextures, bool bIsComponentBuildDataValid=false, const UPrimitiveComponent *DebugComponent=nullptr)
 
ENGINE_API bool CanUseTextureStreamingBuiltData () const
 
EMaterialQualityLevel::Type GetQualityLevel ()
 
ERHIFeatureLevel::Type GetFeatureLevel ()
 

Detailed Description

Context used to resolve FStreamingTextureBuildInfo to FStreamingRenderAssetPrimitiveInfo The context make sure that build data and each texture is only processed once per component (with constant time). It manage internally structures used to accelerate the binding between precomputed data and textures, so that there is only one map lookup per texture per level. There is some complexity here because the build data does not reference directly texture objects to avoid hard references which would load texture when the component is loaded, which could be wrong since the build data is built for a specific feature level and quality level. The current feature and quality could reference more or less textures. This requires the logic to not submit a streaming entry for precomputed data, as well as submit fallback data for texture that were referenced in the texture streaming build.

Constructor & Destructor Documentation

◆ FStreamingTextureLevelContext() [1/3]

FStreamingTextureLevelContext::FStreamingTextureLevelContext ( EMaterialQualityLevel::Type  InQualityLevel,
const ULevel InLevel = nullptr,
const TMap< FGuid, int32 > *  InTextureGuidToLevelIndex = nullptr 
)

◆ FStreamingTextureLevelContext() [2/3]

FStreamingTextureLevelContext::FStreamingTextureLevelContext ( EMaterialQualityLevel::Type  InQualityLevel,
ERHIFeatureLevel::Type  InFeatureLevel,
bool  InUseRelativeBoxes 
)

◆ FStreamingTextureLevelContext() [3/3]

FStreamingTextureLevelContext::FStreamingTextureLevelContext ( EMaterialQualityLevel::Type  InQualityLevel,
const UPrimitiveComponent *  Primitive 
)

◆ ~FStreamingTextureLevelContext()

FStreamingTextureLevelContext::~FStreamingTextureLevelContext ( )

Member Function Documentation

◆ BindBuildData()

void FStreamingTextureLevelContext::BindBuildData ( const TArray< FStreamingTextureBuildInfo > *  PreBuiltData)

◆ CanUseTextureStreamingBuiltData()

bool FStreamingTextureLevelContext::CanUseTextureStreamingBuiltData ( ) const

◆ GetFeatureLevel()

ERHIFeatureLevel::Type FStreamingTextureLevelContext::GetFeatureLevel ( )
inline

◆ GetQualityLevel()

EMaterialQualityLevel::Type FStreamingTextureLevelContext::GetQualityLevel ( )
inline

◆ ProcessMaterial()

void FStreamingTextureLevelContext::ProcessMaterial ( const FBoxSphereBounds ComponentBounds,
const FPrimitiveMaterialInfo MaterialData,
float  ComponentScaling,
TArray< FStreamingRenderAssetPrimitiveInfo > &  OutStreamingTextures,
bool  bIsComponentBuildDataValid = false,
const UPrimitiveComponent *  DebugComponent = nullptr 
)

◆ SetForceNoUseBuiltData()

void FStreamingTextureLevelContext::SetForceNoUseBuiltData ( bool  bValue)
inline

◆ UpdateContext()

void FStreamingTextureLevelContext::UpdateContext ( EMaterialQualityLevel::Type  InQualityLevel,
const ULevel InLevel,
const TMap< FGuid, int32 > *  InTextureGuidToLevelIndex 
)

The documentation for this class was generated from the following files: