UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FStreamableRenderResourceState Struct Reference

#include <StreamableRenderResourceState.h>

Public Member Functions

 FStreamableRenderResourceState ()
 
 FStreamableRenderResourceState (const FStreamableRenderResourceState &Other)
 
void operator= (const FStreamableRenderResourceState &Other)
 
int32 LODCountToAssetFirstLODIdx (int32 InLODCount) const
 
int32 LODCountToFirstLODIdx (int32 InLODCount) const
 
int32 ResidentFirstLODIdx () const
 
int32 RequestedFirstLODIdx () const
 
bool IsValid () const
 
void Clear ()
 
bool IsValidForStreamingRequest () const
 
bool StreamIn (int32 InLODCount)
 
bool StreamOut (int32 InLODCount)
 

Public Attributes

union { 
 
   struct { 
 
      uint8   bSupportsStreaming: 1 
 
      uint8   bSupportsVirtualStreaming: 1 
 
      uint8   bHasPendingInitHint: 1 
 
      uint8   bHasPendingLODTransitionHint: 1 
 
      uint8   NumNonStreamingLODs 
 
      uint8   NumNonOptionalLODs 
 
      uint8   MaxNumLODs 
 
      uint8   AssetLODBias 
 
      uint8   NumResidentLODs 
 
      uint8   NumRequestedLODs 
 
      uint8   LODBiasModifier 
 
   }  
 
   uint64   Data 
 
};  
 

Static Public Attributes

static const uint32 MAX_LOD_COUNT = 16
 

Detailed Description

Define the streaming capabilities of a UStreamableRenderAsset render resources. The properties defines the current render states, coherent on the gamethread for UStreamableRenderAsset::CachedSSRState. If used within render resources, like in FStreamableTextureResource::State, then it is coherent on the renderthread.

Is it only expected to be valid, if the render resource are created, with InitRHI command sent, in order to simplify logic. Also, { bSupportsStreaming, NumNonStreamingLODs, NumNonOptionalLODs, MaxNumLODs, AssetLODBias } are expected to be constant throughout the resource lifetime.

An important concept within this structure is that the resource first LOD is not required to be the first asset LOD, the offset being defined by AssetLODBias. This allows the streaming logic to ignore invalid, non relevant entries, or too many entries in the asset.

Constructor & Destructor Documentation

◆ FStreamableRenderResourceState() [1/2]

FStreamableRenderResourceState::FStreamableRenderResourceState ( )
inline

◆ FStreamableRenderResourceState() [2/2]

FStreamableRenderResourceState::FStreamableRenderResourceState ( const FStreamableRenderResourceState Other)
inline

Member Function Documentation

◆ Clear()

void FStreamableRenderResourceState::Clear ( )
inline

◆ IsValid()

bool FStreamableRenderResourceState::IsValid ( ) const
inline

Return whether this has any information to be relied on.

◆ IsValidForStreamingRequest()

bool FStreamableRenderResourceState::IsValidForStreamingRequest ( ) const
inline

Validate that everything is valid and makes sense for a streaming requests.

◆ LODCountToAssetFirstLODIdx()

int32 FStreamableRenderResourceState::LODCountToAssetFirstLODIdx ( int32  InLODCount) const
inline

Considering the given render resource LOD count, return the corresponding first LOD index within the asset LOD array.

◆ LODCountToFirstLODIdx()

int32 FStreamableRenderResourceState::LODCountToFirstLODIdx ( int32  InLODCount) const
inline

Considering the given render resource LOD count, return the corresponding first LOD index within the render resource LOD array.

◆ operator=()

void FStreamableRenderResourceState::operator= ( const FStreamableRenderResourceState Other)
inline

◆ RequestedFirstLODIdx()

int32 FStreamableRenderResourceState::RequestedFirstLODIdx ( ) const
inline

Return the first requested LOD index within the render resource LOD array.

◆ ResidentFirstLODIdx()

int32 FStreamableRenderResourceState::ResidentFirstLODIdx ( ) const
inline

Return the first resident LOD index within the render resource LOD array.

◆ StreamIn()

bool FStreamableRenderResourceState::StreamIn ( int32  InLODCount)
inline

Validate that everything is valid and makes sense for a streaming requests.

◆ StreamOut()

bool FStreamableRenderResourceState::StreamOut ( int32  InLODCount)
inline

Member Data Documentation

◆ [union]

◆ AssetLODBias

uint8 FStreamableRenderResourceState::AssetLODBias

The asset LOD index of the resource LOD 0. Non-zero when the render resource doesn't use all the asset LODs, for example ignore the first one.

◆ bHasPendingInitHint

uint8 FStreamableRenderResourceState::bHasPendingInitHint
mutable

◆ bHasPendingLODTransitionHint

uint8 FStreamableRenderResourceState::bHasPendingLODTransitionHint
mutable

◆ bSupportsStreaming

uint8 FStreamableRenderResourceState::bSupportsStreaming

◆ bSupportsVirtualStreaming

uint8 FStreamableRenderResourceState::bSupportsVirtualStreaming

Whether the resource uses virtual texture streaming. Virtual textures need to use a specific memory category.

◆ Data

uint64 FStreamableRenderResourceState::Data

◆ LODBiasModifier

uint8 FStreamableRenderResourceState::LODBiasModifier

An additional LOD bias modifier set during asset loading based on the current RHI feature level or other settings

◆ MAX_LOD_COUNT

const uint32 FStreamableRenderResourceState::MAX_LOD_COUNT = 16
static

◆ MaxNumLODs

uint8 FStreamableRenderResourceState::MaxNumLODs

◆ NumNonOptionalLODs

uint8 FStreamableRenderResourceState::NumNonOptionalLODs

◆ NumNonStreamingLODs

uint8 FStreamableRenderResourceState::NumNonStreamingLODs

◆ NumRequestedLODs

uint8 FStreamableRenderResourceState::NumRequestedLODs

The expected number of LODs after the current streaming request completes. Between NumNonStreamingLODs and MaxNumLODs.

◆ NumResidentLODs

uint8 FStreamableRenderResourceState::NumResidentLODs

The current number of LODs the resource has. Between NumNonStreamingLODs and MaxNumLODs.


The documentation for this struct was generated from the following file: