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

#include <TextureStreamIn.h>

+ Inheritance diagram for FTextureStreamIn:

Public Member Functions

 FTextureStreamIn (const UTexture *InTexture, FTextureMipAllocator *InMipAllocator, FTextureMipDataProvider *InCustomMipDataProvider, FTextureMipDataProvider *InDefaultMipDataProvider)
 
 ~FTextureStreamIn ()
 
void InitMipDataProviders (const FContext &Context)
 
void AllocateNewMips (const FContext &Context)
 
void GetMipData (const FContext &Context)
 
void PollMipData (const FContext &Context)
 
void UploadNewMips (const FContext &Context)
 
void PostprocessGPUMipData (const FContext &Context)
 
void FinalizeNewMips (const FContext &Context)
 
void CleanUpMipDataProviders (const FContext &Context)
 
void Cancel (const FContext &Context)
 
void Abort () final override
 
- Public Member Functions inherited from TRenderAssetUpdate< FTextureUpdateContext >
 TRenderAssetUpdate (const UStreamableRenderAsset *InAsset)
 
void PushTask (const FContext &Context, EThreadType InTaskThread, const FCallback &InTaskCallback, EThreadType InCancelationThread, const FCallback &InCancelationCallback)
 
EThreadType GetRelevantThread () const final override
 
- Public Member Functions inherited from FRenderAssetUpdate
UE_API FRenderAssetUpdate (const UStreamableRenderAsset *InAsset)
 
UE_API void Tick (EThreadType InCurrentThread)
 
bool IsCompleted () const
 
virtual bool CanAbandon () const
 
virtual void OnAbandoned ()
 
bool IsCancelled () const
 
bool IsSuccessfullyFinished () const
 
UE_API ETaskState DoLock ()
 
UE_API void DoUnlock (ETaskState PreviousTaskState)
 
bool IsLocked () const
 
FReturnedRefCountValue AddRef () const final override
 
UE_API uint32 Release () const final override
 
uint32 GetRefCount () const final override
 
- Public Member Functions inherited from IRefCountedObject
virtual ~IRefCountedObject ()
 

Protected Member Functions

void DoInitMipDataProviders (const FContext &Context)
 
bool DoAllocateNewMips (const FContext &Context)
 
void DoGetMipData (const FContext &Context)
 
bool DoPollMipData (const FContext &Context)
 
bool DoUploadNewMips (const FContext &Context)
 
bool DoPostprocessGPUMipData (const FContext &Context)
 
bool DoFinalizeNewMips (const FContext &Context)
 
void DoCleanUpMipDataProviders (const FContext &Context)
 
EThreadType GetMipDataProviderThread (FTextureMipDataProvider::ETickState TickState) const
 
EThreadType GetMipAllocatorThread (FTextureMipAllocator::ETickState TickState) const
 
EThreadType GetCancelThread () const
 
- Protected Member Functions inherited from TRenderAssetUpdate< FTextureUpdateContext >
ETaskState TickInternal (EThreadType InCurrentThread, bool bCheckForSuspension) final override
 
void ClearCallbacks ()
 
- Protected Member Functions inherited from FRenderAssetUpdate
virtual UE_API ~FRenderAssetUpdate ()
 
void MarkAsCancelled ()
 
void MarkAsSuccessfullyFinished ()
 
UE_API void ScheduleGTTask ()
 
UE_API void ScheduleRenderTask ()
 
UE_API void ScheduleAsyncTask ()
 

Protected Attributes

int32 StartingMipIndex = INDEX_NONE
 
TUniquePtr< FTextureMipAllocatorMipAllocator
 
FTextureMipDataProviderArray MipDataProviders
 
FTextureUpdateSyncOptions SyncOptions
 
FTextureMipInfoArray MipInfos
 
- Protected Attributes inherited from TRenderAssetUpdate< FTextureUpdateContext >
EThreadType TaskThread
 
FCallback TaskCallback
 
EThreadType CancelationThread
 
FCallback CancelationCallback
 
- Protected Attributes inherited from FRenderAssetUpdate
const FStreamableRenderResourceState ResourceState
 
const int32 CurrentFirstLODIdx = INDEX_NONE
 
const int32 PendingFirstLODIdx = INDEX_NONE
 
FCriticalSection CS
 
int32 ScheduledGTTasks
 
int32 ScheduledRenderTasks
 
int32 ScheduledAsyncTasks
 
const UStreamableRenderAssetStreamableAsset = nullptr
 
FThreadSafeCounter TaskSynchronization
 
bool bIsCancelled
 
bool bDeferExecution
 
bool bSuccess
 
volatile ETaskState TaskState
 

Friends

class FAbortPollMipsTask
 

Additional Inherited Members

- Public Types inherited from TRenderAssetUpdate< FTextureUpdateContext >
typedef FTextureUpdateContext FContext
 
typedef TFunction< void(const FContext &Context)> FCallback
 
- Public Types inherited from FRenderAssetUpdate
enum  EThreadType {
  TT_None , TT_Render , TT_Async , TT_GameThread ,
  TT_GameRunningAsync
}
 
enum  ETaskState {
  TS_Done , TS_Suspended , TS_InProgress , TS_Locked ,
  TS_Init
}
 
- Protected Types inherited from FRenderAssetUpdate
typedef FAutoDeleteAsyncTask< FMipUpdateTaskFAsyncMipUpdateTask
 

Detailed Description

FTextureStreamIn implements a generic framework to stream in textures while decoupling the source of the mip data (FTextureMipDataProvider) and the creation steps (FTextureMipAllocator) of the new texture. It is also texture type independent so it can be used as a base class for any streaming implementation.

The engine uses some private implementations to handle DDC and cooked content files, as well as the different texture creation strategy, but allows for custom implementations of FTextureMipDataProvider (which is an ENGINE_API) through UTextureMipDataProviderFactory (of type UAssetUserData). Those implementation can choose to override the default mip content for specific mips (see FTextureMipDataProvider::GetMips())

Constructor & Destructor Documentation

◆ FTextureStreamIn()

FTextureStreamIn::FTextureStreamIn ( const UTexture InTexture,
FTextureMipAllocator InMipAllocator,
FTextureMipDataProvider InCustomMipDataProvider,
FTextureMipDataProvider InDefaultMipDataProvider 
)

◆ ~FTextureStreamIn()

FTextureStreamIn::~FTextureStreamIn ( )

Member Function Documentation

◆ Abort()

void FTextureStreamIn::Abort ( )
finaloverridevirtual

Cancel the current update. Will also attempt to cancel pending IO requests, see FTexture2DStreamIn_IO::Abort(). This is called outside of the update loop when a cancelation is required for external events.

Reimplemented from FRenderAssetUpdate.

◆ AllocateNewMips()

void FTextureStreamIn::AllocateNewMips ( const FContext Context)

◆ Cancel()

void FTextureStreamIn::Cancel ( const FContext Context)

◆ CleanUpMipDataProviders()

void FTextureStreamIn::CleanUpMipDataProviders ( const FContext Context)

◆ DoAllocateNewMips()

bool FTextureStreamIn::DoAllocateNewMips ( const FContext Context)
protected

◆ DoCleanUpMipDataProviders()

void FTextureStreamIn::DoCleanUpMipDataProviders ( const FContext Context)
protected

◆ DoFinalizeNewMips()

bool FTextureStreamIn::DoFinalizeNewMips ( const FContext Context)
protected

◆ DoGetMipData()

void FTextureStreamIn::DoGetMipData ( const FContext Context)
protected

◆ DoInitMipDataProviders()

void FTextureStreamIn::DoInitMipDataProviders ( const FContext Context)
protected

◆ DoPollMipData()

bool FTextureStreamIn::DoPollMipData ( const FContext Context)
protected

◆ DoPostprocessGPUMipData()

bool FTextureStreamIn::DoPostprocessGPUMipData ( const FContext Context)
protected

◆ DoUploadNewMips()

bool FTextureStreamIn::DoUploadNewMips ( const FContext Context)
protected

◆ FinalizeNewMips()

void FTextureStreamIn::FinalizeNewMips ( const FContext Context)

◆ GetCancelThread()

FRenderAssetUpdate::EThreadType FTextureStreamIn::GetCancelThread ( ) const
protected

◆ GetMipAllocatorThread()

FRenderAssetUpdate::EThreadType FTextureStreamIn::GetMipAllocatorThread ( FTextureMipAllocator::ETickState  TickState) const
protected

◆ GetMipData()

void FTextureStreamIn::GetMipData ( const FContext Context)

◆ GetMipDataProviderThread()

FRenderAssetUpdate::EThreadType FTextureStreamIn::GetMipDataProviderThread ( FTextureMipDataProvider::ETickState  TickState) const
protected

◆ InitMipDataProviders()

void FTextureStreamIn::InitMipDataProviders ( const FContext Context)

◆ PollMipData()

void FTextureStreamIn::PollMipData ( const FContext Context)

◆ PostprocessGPUMipData()

void FTextureStreamIn::PostprocessGPUMipData ( const FContext Context)

◆ UploadNewMips()

void FTextureStreamIn::UploadNewMips ( const FContext Context)

Friends And Related Symbol Documentation

◆ FAbortPollMipsTask

friend class FAbortPollMipsTask
friend

Member Data Documentation

◆ MipAllocator

TUniquePtr<FTextureMipAllocator> FTextureStreamIn::MipAllocator
protected

◆ MipDataProviders

FTextureMipDataProviderArray FTextureStreamIn::MipDataProviders
protected

◆ MipInfos

FTextureMipInfoArray FTextureStreamIn::MipInfos
protected

◆ StartingMipIndex

int32 FTextureStreamIn::StartingMipIndex = INDEX_NONE
protected

◆ SyncOptions

FTextureUpdateSyncOptions FTextureStreamIn::SyncOptions
protected

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