UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IStreamingManager Struct Referenceabstract

#include <ContentStreaming.h>

+ Inheritance diagram for IStreamingManager:

Classes

struct  FSecondaryLocation
 

Public Member Functions

 IStreamingManager ()
 
virtual ~IStreamingManager ()
 
virtual ENGINE_API void Tick (float DeltaTime, bool bProcessEverything=false)
 
virtual void UpdateResourceStreaming (float DeltaTime, bool bProcessEverything=false)=0
 
virtual ENGINE_API int32 StreamAllResources (float TimeLimit=0.0f)
 
virtual int32 BlockTillAllRequestsFinished (float TimeLimit=0.0f, bool bLogResults=false)=0
 
virtual void CancelForcedResources ()=0
 
virtual void NotifyLevelChange ()=0
 
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)
 
virtual void SetDisregardWorldResourcesForFrames (int32 NumFrames)=0
 
virtual bool Exec (UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar)
 
virtual void AddLevel (class ULevel *Level)=0
 
virtual void RemoveLevel (class ULevel *Level)=0
 
virtual void NotifyLevelOffset (class ULevel *Level, const FVector &Offset)=0
 
virtual void NotifyActorDestroyed (AActor *Actor)
 
virtual void NotifyPrimitiveDetached (const UPrimitiveComponent *Primitive)
 
virtual void NotifyPrimitiveUpdated (const UPrimitiveComponent *Primitive)
 
virtual void NotifyPrimitiveUpdated_Concurrent (const UPrimitiveComponent *Primitive)
 
int32 GetNumViews () const
 
const FStreamingViewInfoGetViewInformation (int32 ViewIndex) const
 
virtual int32 GetNumWantingResources () const
 
virtual int32 GetNumWantingResourcesID () const
 
virtual void PropagateLightingScenarioChange ()
 

Static Public Member Functions

static ENGINE_API struct FStreamingManagerCollectionGet ()
 
static ENGINE_API struct FStreamingManagerCollectionGet_Concurrent ()
 
static ENGINE_API void Shutdown ()
 
static ENGINE_API bool HasShutdown ()
 

Protected Member Functions

void SetupViewInfos (float DeltaTime)
 

Static Protected Member Functions

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

int32 NumWantingResources
 
int32 NumWantingResourcesCounter
 

Static Protected Attributes

static ENGINE_API TArray< FStreamingViewInfoCurrentViewInfos
 
static TArray< FStreamingViewInfoPendingViewInfos
 
static TArray< FStreamingViewInfoLastingViewInfos
 
static TArray< FSecondaryLocationSecondaryLocations
 
static bool bPendingRemoveViews = false
 

Detailed Description

Pure virtual base class of a streaming manager.

Constructor & Destructor Documentation

◆ IStreamingManager()

IStreamingManager::IStreamingManager ( )
inline

◆ ~IStreamingManager()

virtual IStreamingManager::~IStreamingManager ( )
inlinevirtual

Virtual destructor

Member Function Documentation

◆ AddLevel()

◆ AddViewInformation()

void IStreamingManager::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 
)

Adds the passed in view information to the static array.

Parameters
ScreenSizeScreen size
FOVScreenSizeScreen size taking FOV into account
BoostFactorA factor that affects all streaming distances for this location. 1.0f is default. Higher means higher-resolution textures and vice versa.
bOverrideLocationWhether this is an override location, which forces the streaming system to ignore all other regular locations
DurationHow long the streaming system should keep checking this location, in seconds. 0 means just for the next Tick.
InActorToBoostOptional pointer to an actor who's textures should have their streaming priority boosted
InWorldThe world this view is located in

Adds the passed in view information to the static array.

Parameters
ViewOriginView origin
ScreenSizeScreen size
FOVScreenSizeScreen size taking FOV into account
BoostFactorA factor that affects all streaming distances for this location. 1.0f is default. Higher means higher-resolution textures and vice versa.
bOverrideLocationWhether this is an override location, which forces the streaming system to ignore all other regular locations
DurationHow long the streaming system should keep checking this location (in seconds). 0 means just for the next Tick.
InActorToBoostOptional pointer to an actor who's textures should have their streaming priority boosted

◆ AddViewInfoToArray()

void IStreamingManager::AddViewInfoToArray ( TArray< FStreamingViewInfo > &  ViewInfos,
const FVector ViewOrigin,
float  ScreenSize,
float  FOVScreenSize,
float  BoostFactor,
bool  bOverrideLocation,
float  Duration,
TWeakObjectPtr< AActor InActorToBoost,
TWeakObjectPtr< UWorld InWorld 
)
staticprotected

Adds the passed in view information to the static array.

Parameters
ViewInfosArray to add the view to
ViewOriginView origin
ScreenSizeScreen size
FOVScreenSizeScreen size taking FOV into account
BoostFactorA factor that affects all streaming distances for this location. 1.0f is default. Higher means higher-resolution textures and vice versa.
bOverrideLocationWhether this is an override location, which forces the streaming system to ignore all other regular locations
DurationHow long the streaming system should keep checking this location (in seconds). 0 means just for the next Tick.
InActorToBoostOptional pointer to an actor who's textures should have their streaming priority boosted
InWorldThe world this view is located in

Adds the passed in view information to the static array.

Parameters
ViewInfos[in/out] Array to add the view to
ViewOriginView origin
ScreenSizeScreen size
FOVScreenSizeScreen size taking FOV into account
BoostFactorA factor that affects all streaming distances for this location. 1.0f is default. Higher means higher-resolution textures and vice versa.
bOverrideLocationWhether this is an override location, which forces the streaming system to ignore all other regular locations
DurationHow long the streaming system should keep checking this location (in seconds). 0 means just for the next Tick.
InActorToBoostOptional pointer to an actor who's textures should have their streaming priority boosted

◆ AddViewLocation()

void IStreamingManager::AddViewLocation ( const FVector Location,
float  BoostFactor = 1.0f,
bool  bOverrideLocation = false,
float  Duration = 0.0f 
)

Queue up view locations to the streaming system. These locations will be added properly at the next call to AddViewInformation, re-using the screensize and FOV settings.

Parameters
LocationWorld-space view origin
BoostFactorA factor that affects all streaming distances for this location. 1.0f is default. Higher means higher-resolution textures and vice versa.
bOverrideLocationWhether this is an override location, which forces the streaming system to ignore all other locations
DurationHow long the streaming system should keep checking this location, in seconds. 0 means just for the next Tick.

Queue up view locations to the streaming system. These locations will be added properly at the next call to AddViewInformation, re-using the screensize and FOV settings.

Parameters
LocationWorld-space view origin
BoostFactorA factor that affects all streaming distances for this location. 1.0f is default. Higher means higher-resolution textures and vice versa.
bOverrideLocationWhether this is an override location, which forces the streaming system to ignore all other locations
DurationHow long the streaming system should keep checking this location (in seconds). 0 means just for the next Tick.

◆ BlockTillAllRequestsFinished()

virtual int32 IStreamingManager::BlockTillAllRequestsFinished ( float  TimeLimit = 0.0f,
bool  bLogResults = false 
)
pure virtual

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.

Implemented in FVolumetricLightmapGridStreamingManager, FRenderAssetStreamingManager, FVirtualTextureChunkStreamingManager, FAnimationStreamingManager, FCachedAudioStreamingManager, FDummyAudioStreamingManager, FStreamingManagerCollection, and Nanite::FCoarseMeshStreamingManager.

◆ CancelForcedResources()

virtual void IStreamingManager::CancelForcedResources ( )
pure virtual

◆ Exec()

virtual bool IStreamingManager::Exec ( UWorld InWorld,
const TCHAR Cmd,
FOutputDevice Ar 
)
inlinevirtual

Allows the streaming manager to process exec commands.

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

Reimplemented in FRenderAssetStreamingManager, and FStreamingManagerCollection.

◆ Get()

FStreamingManagerCollection & IStreamingManager::Get ( )
static

◆ Get_Concurrent()

FStreamingManagerCollection * IStreamingManager::Get_Concurrent ( )
static

Same as get but could fail if state not allocated or shutdown.

◆ GetNumViews()

int32 IStreamingManager::GetNumViews ( ) const
inline

Returns the number of view infos.

◆ GetNumWantingResources()

virtual int32 IStreamingManager::GetNumWantingResources ( ) const
inlinevirtual

Returns the number of resources that currently wants to be streamed in.

Reimplemented in FVolumetricLightmapGridStreamingManager, and FStreamingManagerCollection.

◆ GetNumWantingResourcesID()

virtual int32 IStreamingManager::GetNumWantingResourcesID ( ) const
inlinevirtual

Returns the current ID for GetNumWantingResources(). The ID is incremented every time NumWantingResources is updated by the streaming system (every few frames). Can be used to verify that any changes have been fully examined, by comparing current ID with what it was when the changes were made.

Reimplemented in FStreamingManagerCollection.

◆ GetViewInformation()

const FStreamingViewInfo & IStreamingManager::GetViewInformation ( int32  ViewIndex) const
inline

Returns the view info by the specified index.

◆ HasShutdown()

bool IStreamingManager::HasShutdown ( )
static

Checks if the streaming manager has already been shut down.

◆ NotifyActorDestroyed()

virtual void IStreamingManager::NotifyActorDestroyed ( AActor Actor)
inlinevirtual

Called when a spawned actor is destroyed.

Reimplemented in FRenderAssetStreamingManager, FStreamingManagerCollection, and Nanite::FCoarseMeshStreamingManager.

◆ NotifyLevelChange()

◆ NotifyLevelOffset()

virtual void IStreamingManager::NotifyLevelOffset ( class ULevel Level,
const FVector Offset 
)
pure virtual

◆ NotifyPrimitiveDetached()

virtual void IStreamingManager::NotifyPrimitiveDetached ( const UPrimitiveComponent *  Primitive)
inlinevirtual

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

Reimplemented in FRenderAssetStreamingManager, FStreamingManagerCollection, and Nanite::FCoarseMeshStreamingManager.

◆ NotifyPrimitiveUpdated()

virtual void IStreamingManager::NotifyPrimitiveUpdated ( const UPrimitiveComponent *  Primitive)
inlinevirtual

Called when a primitive streaming data needs to be updated.

Reimplemented in FRenderAssetStreamingManager, FStreamingManagerCollection, and Nanite::FCoarseMeshStreamingManager.

◆ NotifyPrimitiveUpdated_Concurrent()

virtual void IStreamingManager::NotifyPrimitiveUpdated_Concurrent ( const UPrimitiveComponent *  Primitive)
inlinevirtual

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

Reimplemented in FRenderAssetStreamingManager, FStreamingManagerCollection, and Nanite::FCoarseMeshStreamingManager.

◆ PropagateLightingScenarioChange()

virtual void IStreamingManager::PropagateLightingScenarioChange ( )
inlinevirtual

Propagates a change to the active lighting scenario.

Reimplemented in FRenderAssetStreamingManager, and FStreamingManagerCollection.

◆ RemoveLevel()

◆ RemoveStreamingViews()

void IStreamingManager::RemoveStreamingViews ( ERemoveStreamingViews  RemovalType)

Removes streaming views from the streaming manager. This is also called by Tick().

Parameters
RemovalTypeWhat types of views to remove (all or just the normal views)

◆ RemoveViewInfoFromArray()

void IStreamingManager::RemoveViewInfoFromArray ( TArray< FStreamingViewInfo > &  ViewInfos,
const FVector ViewOrigin 
)
staticprotected

Remove view infos with the same location from the given array.

Parameters
ViewInfos[in/out] Array to remove the view from
ViewOriginView origin

◆ SetDisregardWorldResourcesForFrames()

virtual void IStreamingManager::SetDisregardWorldResourcesForFrames ( int32  NumFrames)
pure virtual

◆ SetupViewInfos()

void IStreamingManager::SetupViewInfos ( float  DeltaTime)
protected

Sets up the CurrentViewInfos array based on PendingViewInfos, LastingViewInfos and SecondaryLocations. Removes out-dated LastingViewInfos.

Parameters
DeltaTimeTime since last call in seconds

◆ Shutdown()

void IStreamingManager::Shutdown ( )
static

◆ StreamAllResources()

int32 IStreamingManager::StreamAllResources ( float  TimeLimit = 0.0f)
virtual

Streams in/out all resources that wants to and blocks until it's done.

Parameters
TimeLimitMaximum number of seconds to wait for streaming I/O. If zero, uses .ini setting
Returns
Number of streaming requests still in flight, if the time limit was reached before they were finished.

Reimplemented in FStreamingManagerCollection.

◆ Tick()

void IStreamingManager::Tick ( float  DeltaTime,
bool  bProcessEverything = false 
)
virtual

Calls UpdateResourceStreaming(), and does per-frame cleaning. Call once per frame.

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

Reimplemented in FVolumetricLightmapGridStreamingManager, and FStreamingManagerCollection.

◆ UpdateResourceStreaming()

virtual void IStreamingManager::UpdateResourceStreaming ( float  DeltaTime,
bool  bProcessEverything = false 
)
pure virtual

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

Implemented in FVolumetricLightmapGridStreamingManager, FRenderAssetStreamingManager, FVirtualTextureChunkStreamingManager, FAnimationStreamingManager, FCachedAudioStreamingManager, FDummyAudioStreamingManager, FStreamingManagerCollection, and Nanite::FCoarseMeshStreamingManager.

Member Data Documentation

◆ bPendingRemoveViews

bool IStreamingManager::bPendingRemoveViews = false
staticprotected

Set when Tick() has been called. The first time a new view is added, it will clear out all old views.

◆ CurrentViewInfos

TArray< FStreamingViewInfo > IStreamingManager::CurrentViewInfos
staticprotected

Current collection of views that need to be taken into account for streaming. Emptied every frame.

Collection of views that need to be taken into account for streaming.

◆ LastingViewInfos

TArray< FStreamingViewInfo > IStreamingManager::LastingViewInfos
staticprotected

Views that stick around for a while. Override views are ignored if no movie is playing.

◆ NumWantingResources

int32 IStreamingManager::NumWantingResources
protected

Number of resources that currently wants to be streamed in.

◆ NumWantingResourcesCounter

int32 IStreamingManager::NumWantingResourcesCounter
protected

The current counter for NumWantingResources. This counter is bumped every time NumWantingResources is updated by the streaming system (every few frames). Can be used to verify that any changes have been fully examined, by comparing current counter with what it was when the changes were made.

◆ PendingViewInfos

TArray< FStreamingViewInfo > IStreamingManager::PendingViewInfos
staticprotected

Pending views. Emptied every frame.

◆ SecondaryLocations

TArray< IStreamingManager::FSecondaryLocation > IStreamingManager::SecondaryLocations
staticprotected

Collection of view locations that will be added at the next call to AddViewInformation.


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