UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FRenderAssetStreamingManager Struct Referencefinal

#include <StreamingManagerTexture.h>

+ Inheritance diagram for FRenderAssetStreamingManager:

Public Member Functions

 FRenderAssetStreamingManager ()
 
virtual ~FRenderAssetStreamingManager ()
 
void OnPreGarbageCollect ()
 
virtual void UpdateResourceStreaming (float DeltaTime, bool bProcessEverything=false) override
 
virtual void UpdateIndividualRenderAsset (UStreamableRenderAsset *RenderAsset) override
 
virtual bool FastForceFullyResident (UStreamableRenderAsset *RenderAsset) override
 
virtual int32 BlockTillAllRequestsFinished (float TimeLimit=0.0f, bool bLogResults=false) override
 
virtual void CancelForcedResources () override
 
virtual void NotifyLevelChange () override
 
virtual void SetDisregardWorldResourcesForFrames (int32 NumFrames) override
 
virtual bool StreamOutRenderAssetData (int64 RequiredMemorySize) override
 
virtual int64 GetMemoryOverBudget () const override
 
virtual int64 GetPoolSize () const override
 
virtual int64 GetRequiredPoolSize () const override
 
virtual int64 GetMaxEverRequired () const override
 
virtual float GetCachedMips () const override
 
virtual void ResetMaxEverRequired () override
 
virtual bool Exec (UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar) override
 
bool HandleDumpTextureStreamingStatsCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandleListStreamingRenderAssetsCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandleResetMaxEverRequiredRenderAssetMemoryCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandleLightmapStreamingFactorCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandleCancelRenderAssetStreamingCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandleShadowmapStreamingFactorCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandleNumStreamedMipsCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandleTrackRenderAssetCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandleListTrackedRenderAssetsCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandleDebugTrackedRenderAssetsCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandleUntrackRenderAssetCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandleStreamOutCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandlePauseRenderAssetStreamingCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandleStreamingManagerMemoryCommand (const TCHAR *Cmd, FOutputDevice &Ar, UWorld *InWorld)
 
bool HandleLODGroupsCommand (const TCHAR *Cmd, FOutputDevice &Ar)
 
bool HandleInvestigateRenderAssetCommand (const TCHAR *Cmd, FOutputDevice &Ar, UWorld *InWorld)
 
virtual void AddStreamingRenderAsset (UStreamableRenderAsset *RenderAsset) override
 
virtual void RemoveStreamingRenderAsset (UStreamableRenderAsset *RenderAsset) override
 
virtual bool IsFullyStreamedIn (UStreamableRenderAsset *RenderAsset) override
 
virtual void AddLevel (class ULevel *Level) override
 
virtual void RemoveLevel (class ULevel *Level) override
 
virtual void NotifyLevelOffset (ULevel *Level, const FVector &Offset) override
 
virtual void NotifyActorDestroyed (AActor *Actor) override
 
virtual void NotifyPrimitiveDetached (const UPrimitiveComponent *Primitive) override
 
virtual void NotifyPrimitiveUpdated (const UPrimitiveComponent *Primitive) override
 
virtual void NotifyPrimitiveUpdated_Concurrent (const UPrimitiveComponent *Primitive) override
 
FStreamingRenderAssetGetStreamingRenderAsset (const UStreamableRenderAsset *RenderAsset)
 
virtual void PauseRenderAssetStreaming (bool bInShouldPause) override
 
virtual void GetObjectReferenceBounds (const UObject *RefObject, TArray< FBox > &AssetBoxes) override
 
virtual void GetAssetComponents (const UStreamableRenderAsset *RenderAsset, TArray< const UPrimitiveComponent * > &OutComps, TFunction< bool(const UPrimitiveComponent *)> ShouldChoose) override
 
void PropagateLightingScenarioChange () override
 
void AddRenderedTextureStats (TMap< FString, FRenderedTextureStats > &InOutRenderedTextureStats) override
 
void OnRenderAssetUpdateAbandoned (UStreamableRenderAsset *OwningRenderAsset, TRefCountPtr< class FRenderAssetUpdate > &RenderAssetUpdate) override
 
void SetRenderAssetsRemovedTimestamp (const FRemovedRenderAssetArray &RemovedRenderAssets)
 
- Public Member Functions inherited from IRenderAssetStreamingManager
ENGINE_API void UpdateIndividualTexture (UTexture2D *Texture)
 
ENGINE_API bool StreamOutTextureData (int64 RequiredMemorySize)
 
ENGINE_API void AddStreamingTexture (UTexture2D *Texture)
 
ENGINE_API void RemoveStreamingTexture (UTexture2D *Texture)
 
ENGINE_API void PauseTextureStreaming (bool bInShouldPause)
 
- Public Member Functions inherited from IStreamingManager
 IStreamingManager ()
 
virtual ~IStreamingManager ()
 
virtual ENGINE_API void Tick (float DeltaTime, bool bProcessEverything=false)
 
virtual ENGINE_API int32 StreamAllResources (float TimeLimit=0.0f)
 
void RemoveStreamingViews (ERemoveStreamingViews RemovalType)
 
ENGINE_API void AddViewInformation (const FVector &ViewOrigin, float ScreenSize, float FOVScreenSize, float BoostFactor=1.0f, bool bOverrideLocation=false, float Duration=0.0f, TWeakObjectPtr< AActor > InActorToBoost=NULL, TWeakObjectPtr< UWorld > InWorld=NULL)
 
ENGINE_API void AddViewLocation (const FVector &Location, float BoostFactor=1.0f, bool bOverrideLocation=false, float Duration=0.0f)
 
int32 GetNumViews () const
 
const FStreamingViewInfoGetViewInformation (int32 ViewIndex) const
 
virtual int32 GetNumWantingResources () const
 
virtual int32 GetNumWantingResourcesID () const
 

Static Public Member Functions

static bool IsParallelForAllowedDuringIncrementalUpdate (int32 NumElementsToProcess, int32 &OutParallelForMinBatchSize)
 
- Static Public Member Functions inherited from IStreamingManager
static ENGINE_API struct FStreamingManagerCollectionGet ()
 
static ENGINE_API struct FStreamingManagerCollectionGet_Concurrent ()
 
static ENGINE_API void Shutdown ()
 
static ENGINE_API bool HasShutdown ()
 

Friends

class FRenderAssetStreamingMipCalcTask
 
class FUpdateStreamingRenderAssetsTask
 
struct FScopedLevelRenderAssetManagersLock
 
bool TrackRenderAssetEvent (FStreamingRenderAsset *StreamingRenderAsset, UStreamableRenderAsset *RenderAsset, bool bForceMipLevelsToBeResident, const FRenderAssetStreamingManager *Manager)
 

Additional Inherited Members

- Static Public Attributes inherited from IRenderAssetStreamingManager
static constexpr auto ShouldChooseDefault = [](const UPrimitiveComponent*) { return true; }
 
- Protected Member Functions inherited from IStreamingManager
void SetupViewInfos (float DeltaTime)
 
- Static Protected Member Functions inherited from IStreamingManager
static void AddViewInfoToArray (TArray< FStreamingViewInfo > &ViewInfos, const FVector &ViewOrigin, float ScreenSize, float FOVScreenSize, float BoostFactor, bool bOverrideLocation, float Duration, TWeakObjectPtr< AActor > InActorToBoost, TWeakObjectPtr< UWorld > InWorld)
 
static void RemoveViewInfoFromArray (TArray< FStreamingViewInfo > &ViewInfos, const FVector &ViewOrigin)
 
- Protected Attributes inherited from IStreamingManager
int32 NumWantingResources
 
int32 NumWantingResourcesCounter
 
- Static Protected Attributes inherited from IStreamingManager
static ENGINE_API TArray< FStreamingViewInfoCurrentViewInfos
 
static TArray< FStreamingViewInfoPendingViewInfos
 
static TArray< FStreamingViewInfoLastingViewInfos
 
static TArray< FSecondaryLocationSecondaryLocations
 
static bool bPendingRemoveViews = false
 

Detailed Description

Streaming manager dealing with textures/meshes.

Constructor & Destructor Documentation

◆ FRenderAssetStreamingManager()

FRenderAssetStreamingManager::FRenderAssetStreamingManager ( )

Constructor, initializing all members

Constructor, initializing all members and

◆ ~FRenderAssetStreamingManager()

FRenderAssetStreamingManager::~FRenderAssetStreamingManager ( )
virtual

Member Function Documentation

◆ AddLevel()

void FRenderAssetStreamingManager::AddLevel ( class ULevel Level)
overridevirtual

Adds a ULevel to the streaming manager.

Adds a ULevel to the streaming manager. This is called from 2 paths : after PostPostLoad and after AddToWorld

Implements IStreamingManager.

◆ AddRenderedTextureStats()

void FRenderAssetStreamingManager::AddRenderedTextureStats ( TMap< FString, FRenderedTextureStats > &  InOutRenderedTextureStats)
overridevirtual

◆ AddStreamingRenderAsset()

void FRenderAssetStreamingManager::AddStreamingRenderAsset ( UStreamableRenderAsset RenderAsset)
overridevirtual

Adds a new texture/mesh to the streaming manager.

Implements IRenderAssetStreamingManager.

◆ BlockTillAllRequestsFinished()

int32 FRenderAssetStreamingManager::BlockTillAllRequestsFinished ( float  TimeLimit = 0.0f,
bool  bLogResults = false 
)
overridevirtual

Blocks till all pending requests are fulfilled.

Parameters
TimeLimitOptional time limit for processing, in seconds. Specifying 0 means infinite time limit.
bLogResultsWhether to dump the results to the log.
Returns
Number of streaming requests still in flight, if the time limit was reached before they were finished.

Implements IStreamingManager.

◆ CancelForcedResources()

void FRenderAssetStreamingManager::CancelForcedResources ( )
overridevirtual

Cancels the timed Forced resources (i.e used the Kismet action "Stream In Textures").

Implements IStreamingManager.

◆ Exec()

bool FRenderAssetStreamingManager::Exec ( UWorld InWorld,
const TCHAR Cmd,
FOutputDevice Ar 
)
overridevirtual

Allows the streaming manager to process exec commands.

Parameters
InWorldWorld context
CmdExec command
ArOutput device for feedback
Returns
true if the command was handled

Allows the streaming manager to process exec commands.

Parameters
InWorldworld contexxt
CmdExec command
ArOutput device for feedback
Returns
true if the command was handled

Reimplemented from IStreamingManager.

◆ FastForceFullyResident()

bool FRenderAssetStreamingManager::FastForceFullyResident ( UStreamableRenderAsset RenderAsset)
overridevirtual

Register an asset whose non-resident mips need to be loaded ASAP when visible. bIgnoreStreamingMipBias must be set on the asset. Either bForceMiplevelsToBeResident or ForceMipLevelsToBeResidentTimestamp need to be set on the asset.

Parameters
RenderAssetThe asset to register
Returns
bool True if the streaming request is successful

Implements IRenderAssetStreamingManager.

◆ GetAssetComponents()

void FRenderAssetStreamingManager::GetAssetComponents ( const UStreamableRenderAsset RenderAsset,
TArray< const UPrimitiveComponent * > &  OutComps,
TFunction< bool(const UPrimitiveComponent *)>  ShouldChoose 
)
overridevirtual

Return all components referencing the asset

Implements IRenderAssetStreamingManager.

◆ GetCachedMips()

virtual float FRenderAssetStreamingManager::GetCachedMips ( ) const
inlineoverridevirtual

Amount of memory cached in pool

Implements IRenderAssetStreamingManager.

◆ GetMaxEverRequired()

virtual int64 FRenderAssetStreamingManager::GetMaxEverRequired ( ) const
inlineoverridevirtual

Max required textures/meshes ever seen in bytes.

Implements IRenderAssetStreamingManager.

◆ GetMemoryOverBudget()

virtual int64 FRenderAssetStreamingManager::GetMemoryOverBudget ( ) const
inlineoverridevirtual

◆ GetObjectReferenceBounds()

void FRenderAssetStreamingManager::GetObjectReferenceBounds ( const UObject RefObject,
TArray< FBox > &  AssetBoxes 
)
overridevirtual

Return all bounds related to the ref object

Implements IRenderAssetStreamingManager.

◆ GetPoolSize()

int64 FRenderAssetStreamingManager::GetPoolSize ( ) const
overridevirtual

Pool size for streaming.

Implements IRenderAssetStreamingManager.

◆ GetRequiredPoolSize()

virtual int64 FRenderAssetStreamingManager::GetRequiredPoolSize ( ) const
inlineoverridevirtual

Estimated memory in bytes the streamer would use if there was no limit

Implements IRenderAssetStreamingManager.

◆ GetStreamingRenderAsset()

FStreamingRenderAsset * FRenderAssetStreamingManager::GetStreamingRenderAsset ( const UStreamableRenderAsset RenderAsset)

Returns the corresponding FStreamingRenderAsset for a texture or mesh.

◆ HandleCancelRenderAssetStreamingCommand()

bool FRenderAssetStreamingManager::HandleCancelRenderAssetStreamingCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

◆ HandleDebugTrackedRenderAssetsCommand()

bool FRenderAssetStreamingManager::HandleDebugTrackedRenderAssetsCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

◆ HandleDumpTextureStreamingStatsCommand()

bool FRenderAssetStreamingManager::HandleDumpTextureStreamingStatsCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

Exec command handlers

◆ HandleInvestigateRenderAssetCommand()

bool FRenderAssetStreamingManager::HandleInvestigateRenderAssetCommand ( const TCHAR Cmd,
FOutputDevice Ar,
UWorld InWorld 
)

◆ HandleLightmapStreamingFactorCommand()

bool FRenderAssetStreamingManager::HandleLightmapStreamingFactorCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

◆ HandleListStreamingRenderAssetsCommand()

bool FRenderAssetStreamingManager::HandleListStreamingRenderAssetsCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

◆ HandleListTrackedRenderAssetsCommand()

bool FRenderAssetStreamingManager::HandleListTrackedRenderAssetsCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

◆ HandleLODGroupsCommand()

bool FRenderAssetStreamingManager::HandleLODGroupsCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

◆ HandleNumStreamedMipsCommand()

bool FRenderAssetStreamingManager::HandleNumStreamedMipsCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

◆ HandlePauseRenderAssetStreamingCommand()

bool FRenderAssetStreamingManager::HandlePauseRenderAssetStreamingCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

◆ HandleResetMaxEverRequiredRenderAssetMemoryCommand()

bool FRenderAssetStreamingManager::HandleResetMaxEverRequiredRenderAssetMemoryCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

◆ HandleShadowmapStreamingFactorCommand()

bool FRenderAssetStreamingManager::HandleShadowmapStreamingFactorCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

◆ HandleStreamingManagerMemoryCommand()

bool FRenderAssetStreamingManager::HandleStreamingManagerMemoryCommand ( const TCHAR Cmd,
FOutputDevice Ar,
UWorld InWorld 
)

◆ HandleStreamOutCommand()

bool FRenderAssetStreamingManager::HandleStreamOutCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

◆ HandleTrackRenderAssetCommand()

bool FRenderAssetStreamingManager::HandleTrackRenderAssetCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

◆ HandleUntrackRenderAssetCommand()

bool FRenderAssetStreamingManager::HandleUntrackRenderAssetCommand ( const TCHAR Cmd,
FOutputDevice Ar 
)

◆ IsFullyStreamedIn()

bool FRenderAssetStreamingManager::IsFullyStreamedIn ( UStreamableRenderAsset RenderAsset)
overridevirtual

Only call on the game thread.

Implements IRenderAssetStreamingManager.

◆ IsParallelForAllowedDuringIncrementalUpdate()

bool FRenderAssetStreamingManager::IsParallelForAllowedDuringIncrementalUpdate ( int32  NumElementsToProcess,
int32 OutParallelForMinBatchSize 
)
static

Whether it is allowed for this manager to use more cores using ParallelFor when doing the incremental update.

◆ NotifyActorDestroyed()

void FRenderAssetStreamingManager::NotifyActorDestroyed ( AActor Actor)
overridevirtual

Called when a spawned actor is destroyed.

Called when a spawned primitive is deleted, or when an actor is destroyed in the editor.

Reimplemented from IStreamingManager.

◆ NotifyLevelChange()

void FRenderAssetStreamingManager::NotifyLevelChange ( )
overridevirtual

Notifies manager of "level" change so it can prioritize character textures for a few frames.

Implements IStreamingManager.

◆ NotifyLevelOffset()

void FRenderAssetStreamingManager::NotifyLevelOffset ( ULevel Level,
const FVector Offset 
)
overridevirtual

Notifies manager that level primitives were shifted

Implements IStreamingManager.

◆ NotifyPrimitiveDetached()

void FRenderAssetStreamingManager::NotifyPrimitiveDetached ( const UPrimitiveComponent *  Primitive)
overridevirtual

Called when a primitive is detached from an actor or another component.

Called when a primitive is detached from an actor or another component. Note: We should not be accessing the primitive or the UTexture after this call!

Reimplemented from IStreamingManager.

◆ NotifyPrimitiveUpdated()

void FRenderAssetStreamingManager::NotifyPrimitiveUpdated ( const UPrimitiveComponent *  Primitive)
overridevirtual

Called when a primitive streaming data needs to be updated.

Reimplemented from IStreamingManager.

◆ NotifyPrimitiveUpdated_Concurrent()

void FRenderAssetStreamingManager::NotifyPrimitiveUpdated_Concurrent ( const UPrimitiveComponent *  Primitive)
overridevirtual

Called when a primitive streaming data needs to be updated in the last stage of the frame.

Called when a primitive has had its textures/mesh changed. Only affects primitives that were already attached. Replaces previous info.

Reimplemented from IStreamingManager.

◆ OnPreGarbageCollect()

void FRenderAssetStreamingManager::OnPreGarbageCollect ( )

Called before GC to clear pending kill levels.

◆ OnRenderAssetUpdateAbandoned()

void FRenderAssetStreamingManager::OnRenderAssetUpdateAbandoned ( UStreamableRenderAsset OwningRenderAsset,
TRefCountPtr< class FRenderAssetUpdate > &  RenderAssetUpdate 
)
overridevirtual

◆ PauseRenderAssetStreaming()

virtual void FRenderAssetStreamingManager::PauseRenderAssetStreaming ( bool  bInShouldPause)
inlineoverridevirtual

Set current pause state for texture/mesh streaming

Implements IRenderAssetStreamingManager.

◆ PropagateLightingScenarioChange()

void FRenderAssetStreamingManager::PropagateLightingScenarioChange ( )
overridevirtual

Propagates a change to the active lighting scenario.

Reimplemented from IStreamingManager.

◆ RemoveLevel()

void FRenderAssetStreamingManager::RemoveLevel ( class ULevel Level)
overridevirtual

Removes a ULevel from the streaming manager.

Implements IStreamingManager.

◆ RemoveStreamingRenderAsset()

void FRenderAssetStreamingManager::RemoveStreamingRenderAsset ( UStreamableRenderAsset RenderAsset)
overridevirtual

Removes a texture/mesh from the streaming manager.

Implements IRenderAssetStreamingManager.

◆ ResetMaxEverRequired()

virtual void FRenderAssetStreamingManager::ResetMaxEverRequired ( )
inlineoverridevirtual

Resets the max ever required textures/meshes. For possibly when changing resolutions or screen pct.

Implements IRenderAssetStreamingManager.

◆ SetDisregardWorldResourcesForFrames()

void FRenderAssetStreamingManager::SetDisregardWorldResourcesForFrames ( int32  NumFrames)
overridevirtual

Don't stream world resources for the next NumFrames.

Implements IStreamingManager.

◆ SetRenderAssetsRemovedTimestamp()

void FRenderAssetStreamingManager::SetRenderAssetsRemovedTimestamp ( const FRemovedRenderAssetArray RemovedRenderAssets)

Mark the textures/meshes with a timestamp. They're about to lose their location-based heuristic and we don't want them to start using LastRenderTime heuristic for a few seconds until they are garbage collected!

Parameters
RemovedRenderAssetsList of removed textures or meshes.

◆ StreamOutRenderAssetData()

bool FRenderAssetStreamingManager::StreamOutRenderAssetData ( int64  RequiredMemorySize)
overridevirtual

Try to stream out texture/mesh mip-levels to free up more memory.

Parameters
RequiredMemorySize- Required minimum available texture memory
Returns
- Whether it succeeded or not

Try to stream out texture/mesh mip-levels to free up more memory.

Parameters
RequiredMemorySize- Additional texture memory required
Returns
- Whether it succeeded or not

Implements IRenderAssetStreamingManager.

◆ UpdateIndividualRenderAsset()

void FRenderAssetStreamingManager::UpdateIndividualRenderAsset ( UStreamableRenderAsset RenderAsset)
overridevirtual

Updates streaming for an individual texture/mesh, taking into account all view infos.

Parameters
RenderAssetTexture or mesh to update

Implements IRenderAssetStreamingManager.

◆ UpdateResourceStreaming()

void FRenderAssetStreamingManager::UpdateResourceStreaming ( float  DeltaTime,
bool  bProcessEverything = false 
)
overridevirtual

Updates streaming, taking into account all current view infos. Can be called multiple times per frame.

Parameters
DeltaTimeTime since last call in seconds
bProcessEverything[opt] If true, process all resources with no throttling limits

Implements IStreamingManager.

Friends And Related Symbol Documentation

◆ FRenderAssetStreamingMipCalcTask

◆ FScopedLevelRenderAssetManagersLock

friend struct FScopedLevelRenderAssetManagersLock
friend

◆ FUpdateStreamingRenderAssetsTask

◆ TrackRenderAssetEvent

bool TrackRenderAssetEvent ( FStreamingRenderAsset StreamingRenderAsset,
UStreamableRenderAsset RenderAsset,
bool  bForceMipLevelsToBeResident,
const FRenderAssetStreamingManager Manager 
)
friend

Checks a texture/mesh and tracks it if its name contains any of the tracked render asset names (GTrackedRenderAssetNames).

Parameters
RenderAssetTexture/mesh to check
bForceMipLEvelsToBeResidentWhether all mip-levels in the texture/mesh are forced to be resident
Managercan be null

Turn on ENABLE_RENDER_ASSET_TRACKING in ContentStreaming.cpp and setup GTrackedTextures to track specific textures/meshes through the streaming system.


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