UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TRenderResourcePool< ResourceType, ResourcePoolPolicy, ResourceCreationArguments > Class Template Reference

#include <ResourcePool.h>

+ Inheritance diagram for TRenderResourcePool< ResourceType, ResourcePoolPolicy, ResourceCreationArguments >:

Public Member Functions

 TRenderResourcePool ()
 
 TRenderResourcePool (ResourcePoolPolicy InPolicy)
 
virtual ~TRenderResourcePool ()
 
ResourceType CreatePooledResource (FRHICommandListBase &RHICmdList, ResourceCreationArguments Args)
 
ResourceType CreatePooledResource (ResourceCreationArguments Args)
 
void ReleasePooledResource (ResourceType &&Resource)
 
virtual void Tick (FRHICommandListImmediate &RHICmdList, float DeltaTime) override
 
virtual bool IsTickable () const override
 
virtual bool NeedsRenderingResumedForRenderingThreadTick () const override
 
virtual void InitRHI (FRHICommandListBase &RHICmdList) override
 
virtual void ReleaseRHI () override
 
- Public Member Functions inherited from TResourcePool< ResourceType, ResourcePoolPolicy, ResourceCreationArguments >
 TResourcePool ()=default
 
 TResourcePool (ResourcePoolPolicy InPolicy)
 
virtual ~TResourcePool ()
 
uint32 PooledSizeForCreationArguments (ResourceCreationArguments Args)
 
ResourceType CreatePooledResource (FRHICommandListBase &RHICmdList, ResourceCreationArguments Args)
 
void ReleasePooledResource (ResourceType &&Resource)
 
void DrainPool (bool bForceDrainAll)
 
- Public Member Functions inherited from FTickableObjectRenderThread
 FTickableObjectRenderThread (bool bRegisterImmediately=true, bool bInHighFrequency=false)
 
virtual ~FTickableObjectRenderThread ()
 
void Unregister ()
 
void Register ()
 
void Register (bool bIsRenderingThreadObject)
 
virtual TStatId GetStatId () const =0
 
- Public Member Functions inherited from FRenderResource
RENDERCORE_API FRenderResource ()
 
RENDERCORE_API FRenderResource (ERHIFeatureLevel::Type InFeatureLevel)
 
RENDERCORE_API FRenderResource (const FRenderResource &)
 
RENDERCORE_API FRenderResource (FRenderResource &&)
 
RENDERCORE_API FRenderResourceoperator= (const FRenderResource &Other)
 
RENDERCORE_API FRenderResourceoperator= (FRenderResource &&Other)
 
virtual RENDERCORE_API ~FRenderResource ()
 
virtual RENDERCORE_API void InitResource (FRHICommandListBase &RHICmdList)
 
virtual RENDERCORE_API void ReleaseResource ()
 
RENDERCORE_API void UpdateRHI (FRHICommandListBase &RHICmdList)
 
virtual FString GetFriendlyName () const
 
bool IsInitialized () const
 
int32 GetListIndex () const
 
EInitPhase GetInitPhase () const
 
void SetOwnerName (FName InOwnerName)
 
FName GetOwnerName () const
 
void SetResourceName (FName InResourceName)
 
FName GetResourceName () const
 

Additional Inherited Members

- Public Types inherited from FRenderResource
enum class  EInitPhase : uint8 { Pre , Default , MAX }
 
- Static Public Member Functions inherited from FRenderResource
static RENDERCORE_API void ReleaseRHIForAllResources ()
 
static RENDERCORE_API void InitPreRHIResources ()
 
static RENDERCORE_API void ChangeFeatureLevel (ERHIFeatureLevel::Type NewFeatureLevel)
 
static RENDERCORE_API FName SetScopeName (FName Name)
 
- Public Attributes inherited from FRenderResource
ERenderResourceState ResourceState = ERenderResourceState::Default
 
- Static Public Attributes inherited from FTickableObjectRenderThread
static RENDERCORE_API FRenderingThreadTickableObjectsArray RenderingThreadTickableObjects
 
static RENDERCORE_API FRenderingThreadTickableObjectsArray RenderingThreadHighFrequencyTickableObjects
 
- Protected Member Functions inherited from FRenderResource
void SetFeatureLevel (const FStaticFeatureLevel InFeatureLevel)
 
const FStaticFeatureLevel GetFeatureLevel () const
 
bool HasValidFeatureLevel () const
 
template<typename T >
FBufferRHIRef CreateRHIBuffer (FRHICommandListBase &RHICmdList, T &InOutResourceObject, uint32 ResourceCount, EBufferUsageFlags InBufferUsageFlags, const TCHAR *InDebugName)
 
void SetInitPhase (EInitPhase InInitPhase)
 
- Static Protected Member Functions inherited from FRenderResource
static RENDERCORE_API FRHICommandListBaseGetImmediateCommandList ()
 

Detailed Description

template<typename ResourceType, class ResourcePoolPolicy, class ResourceCreationArguments>
class TRenderResourcePool< ResourceType, ResourcePoolPolicy, ResourceCreationArguments >

A resource pool that automatically handles render-thread resources

Constructor & Destructor Documentation

◆ TRenderResourcePool() [1/2]

◆ TRenderResourcePool() [2/2]

Constructor with policy argument

Parameters
InPolicyAn initialised policy object

◆ ~TRenderResourcePool()

Destructor

Member Function Documentation

◆ CreatePooledResource() [1/2]

template<typename ResourceType , class ResourcePoolPolicy , class ResourceCreationArguments >
ResourceType TRenderResourcePool< ResourceType, ResourcePoolPolicy, ResourceCreationArguments >::CreatePooledResource ( FRHICommandListBase RHICmdList,
ResourceCreationArguments  Args 
)
inline

Creates a pooled resource.

Parameters
Argsthe argument object for construction.
Returns
An initialised resource or the policy's NullResource if not initialised.

◆ CreatePooledResource() [2/2]

template<typename ResourceType , class ResourcePoolPolicy , class ResourceCreationArguments >
ResourceType TRenderResourcePool< ResourceType, ResourcePoolPolicy, ResourceCreationArguments >::CreatePooledResource ( ResourceCreationArguments  Args)
inline

◆ InitRHI()

template<typename ResourceType , class ResourcePoolPolicy , class ResourceCreationArguments >
virtual void TRenderResourcePool< ResourceType, ResourcePoolPolicy, ResourceCreationArguments >::InitRHI ( FRHICommandListBase RHICmdList)
inlineoverridevirtual

Initializes the RHI resources used by this resource. Called when entering the state where both the resource and the RHI have been initialized. This is only called by the rendering thread.

Reimplemented from FRenderResource.

◆ IsTickable()

template<typename ResourceType , class ResourcePoolPolicy , class ResourceCreationArguments >
virtual bool TRenderResourcePool< ResourceType, ResourcePoolPolicy, ResourceCreationArguments >::IsTickable ( ) const
inlineoverridevirtual

Pure virtual that must be overloaded by the inheriting class. It is used to determine whether an object is ready to be ticked. This is required for example for all UObject derived classes as they might be loaded async and therefore won't be ready immediately.

Returns
true if class is ready to be ticked, false otherwise.

Implements FTickableObjectRenderThread.

◆ NeedsRenderingResumedForRenderingThreadTick()

template<typename ResourceType , class ResourcePoolPolicy , class ResourceCreationArguments >
virtual bool TRenderResourcePool< ResourceType, ResourcePoolPolicy, ResourceCreationArguments >::NeedsRenderingResumedForRenderingThreadTick ( ) const
inlineoverridevirtual

Used to determine if a rendering thread tickable object must have rendering in a non-suspended state during it's Tick function.

Returns
true if the RHIResumeRendering should be called before tick if rendering has been suspended

Reimplemented from FTickableObjectRenderThread.

◆ ReleasePooledResource()

template<typename ResourceType , class ResourcePoolPolicy , class ResourceCreationArguments >
void TRenderResourcePool< ResourceType, ResourcePoolPolicy, ResourceCreationArguments >::ReleasePooledResource ( ResourceType &&  Resource)
inline

Release a resource back into the pool.

Parameters
ResourceThe resource to return to the pool

◆ ReleaseRHI()

template<typename ResourceType , class ResourcePoolPolicy , class ResourceCreationArguments >
virtual void TRenderResourcePool< ResourceType, ResourcePoolPolicy, ResourceCreationArguments >::ReleaseRHI ( )
inlineoverridevirtual

Releases the RHI resources used by this resource. Called when leaving the state where both the resource and the RHI have been initialized. This is only called by the rendering thread.

Reimplemented from FRenderResource.

◆ Tick()

template<typename ResourceType , class ResourcePoolPolicy , class ResourceCreationArguments >
virtual void TRenderResourcePool< ResourceType, ResourcePoolPolicy, ResourceCreationArguments >::Tick ( FRHICommandListImmediate RHICmdList,
float  DeltaTime 
)
inlineoverridevirtual

Pure virtual that must be overloaded by the inheriting class. It will be called from the rendering thread.

Parameters
DeltaTimeGame time passed since the last call.

Implements FTickableObjectRenderThread.


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