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

#include <FXSystemSet.h>

+ Inheritance diagram for FFXSystemSet:

Public Member Functions

 FFXSystemSet (FGPUSortManager *InGPUSortManager)
 
virtual FFXSystemInterfaceGetInterface (const FName &InName) override
 
virtual void Tick (UWorld *World, float DeltaSeconds) override
 
virtual void DrawDebug (FCanvas *Canvas) override
 
virtual bool ShouldDebugDraw_RenderThread () const override
 
virtual void DrawDebug_RenderThread (FRDGBuilder &GraphBuilder, const FSceneView &View, const struct FScreenPassRenderTarget &Output) override
 
virtual void DrawSceneDebug_RenderThread (FRDGBuilder &GraphBuilder, const FSceneView &View, FRDGTextureRef SceneColor, FRDGTextureRef SceneDepth) override
 
virtual void AddVectorField (UVectorFieldComponent *VectorFieldComponent) override
 
virtual void RemoveVectorField (UVectorFieldComponent *VectorFieldComponent) override
 
virtual void UpdateVectorField (UVectorFieldComponent *VectorFieldComponent) override
 
virtual void PreInitViews (FRDGBuilder &GraphBuilder, bool bAllowGPUParticleUpdate, const TArrayView< const FSceneViewFamily * > &ViewFamilies, const FSceneViewFamily *CurrentFamily) override
 
virtual void PostInitViews (FRDGBuilder &GraphBuilder, TConstStridedView< FSceneView > Views, bool bAllowGPUParticleUpdate) override
 
virtual bool UsesGlobalDistanceField () const override
 
virtual bool UsesDepthBuffer () const override
 
virtual bool RequiresEarlyViewUniformBuffer () const override
 
virtual bool RequiresRayTracingScene () const override
 
virtual void PreRender (FRDGBuilder &GraphBuilder, TConstStridedView< FSceneView > Views, FSceneUniformBuffer &SceneUniformBuffer, bool bAllowGPUParticleSceneUpdate) override
 
virtual void PostRenderOpaque (FRDGBuilder &GraphBuilder, TConstStridedView< FSceneView > Views, FSceneUniformBuffer &SceneUniformBuffer, bool bAllowGPUParticleSceneUpdate) override
 
virtual void OnMarkPendingKill () override
 
virtual void DestroyGPUSimulation () override
 
virtual FGPUSortManagerGetGPUSortManager () const override
 
virtual void SetSceneTexturesUniformBuffer (const TUniformBufferRef< FSceneTextureUniformParameters > &InSceneTexturesUniformParams) override
 
- Public Member Functions inherited from FFXSystemInterface
void DrawDebug_RenderThread (FRDGBuilder &GraphBuilder, const FViewInfo &View, const struct FScreenPassRenderTarget &Output)
 
void DrawSceneDebug_RenderThread (FRDGBuilder &GraphBuilder, const FViewInfo &View, FRDGTextureRef SceneColor, FRDGTextureRef SceneDepth)
 
void PostInitViews (FRDGBuilder &GraphBuilder, TConstArrayView< FViewInfo > Views, bool bAllowGPUParticleUpdate)
 
void PreRender (FRDGBuilder &GraphBuilder, TConstArrayView< FViewInfo > Views, bool bAllowGPUParticleUpdate)
 
void PostRenderOpaque (FRDGBuilder &GraphBuilder, TConstArrayView< FViewInfo > Views, bool bAllowGPUParticleUpdate)
 
bool IsPendingKill () const
 
FSceneInterfaceGetSceneInterface () const
 
void SetSceneInterface (FSceneInterface *InSceneInterface)
 
FSceneGetScene () const
 
void SetScene (FScene *InScene)
 
- Public Member Functions inherited from TSharedFromThis< FFXSystemInterface >
TSharedRef< FFXSystemInterface, Mode > AsShared ()
 
TSharedRef< FFXSystemInterface const, Mode > AsShared () const
 
TSharedRef< SubobjectType, Mode > AsSharedSubobject (SubobjectType *SubobjectPtr) const
 
TWeakPtr< FFXSystemInterface, Mode > AsWeak ()
 
TWeakPtr< FFXSystemInterface const, Mode > AsWeak () const
 
TWeakPtr< SubobjectType, Mode > AsWeakSubobject (SubobjectType *SubobjectPtr) const
 
void UpdateWeakReferenceInternal (TSharedPtr< SharedPtrType, SharedPtrMode > const *InSharedPtr, OtherType *InObject) const
 
void UpdateWeakReferenceInternal (TSharedRef< SharedRefType, SharedPtrMode > const *InSharedRef, OtherType *InObject) const
 
UE_FORCEINLINE_HINT bool DoesSharedInstanceExist () const
 

Public Attributes

TArray< TSharedRef< FFXSystemInterface > > FXSystems
 

Protected Member Functions

virtual ~FFXSystemSet ()
 
- Protected Member Functions inherited from FFXSystemInterface
virtual void OnDestroy () final
 
virtual ~FFXSystemInterface ()
 
- Protected Member Functions inherited from TSharedFromThis< FFXSystemInterface >
 TSharedFromThis ()
 
 TSharedFromThis (TSharedFromThis const &)
 
UE_FORCEINLINE_HINT TSharedFromThisoperator= (TSharedFromThis const &)
 
 ~TSharedFromThis ()
 

Protected Attributes

TRefCountPtr< FGPUSortManagerGPUSortManager
 

Additional Inherited Members

- Static Public Member Functions inherited from FFXSystemInterface
static ENGINE_API FFXSystemInterfaceCreate (ERHIFeatureLevel::Type InFeatureLevel, FSceneInterface *Scene)
 
static ENGINE_API void MarkPendingKill (FFXSystemInterface *FXSystem)
 
static ENGINE_API void QueueDestroyGPUSimulation (FFXSystemInterface *FXSystem)
 
static ENGINE_API void RegisterCustomFXSystem (const FName &InterfaceName, const FCreateCustomFXSystemDelegate &InCreateDelegate)
 
static ENGINE_API void UnregisterCustomFXSystem (const FName &InterfaceName)
 
static ENGINE_API void Destroy (FFXSystemInterface *FXSystem)
 
- Static Protected Member Functions inherited from TSharedFromThis< FFXSystemInterface >
static UE_FORCEINLINE_HINT TSharedRef< OtherType, Mode > SharedThis (OtherType *ThisPtr)
 
static UE_FORCEINLINE_HINT TSharedRef< OtherType const, Mode > SharedThis (const OtherType *ThisPtr)
 

Detailed Description

FX system.

Constructor & Destructor Documentation

◆ FFXSystemSet()

FFXSystemSet::FFXSystemSet ( FGPUSortManager InGPUSortManager)

◆ ~FFXSystemSet()

FFXSystemSet::~FFXSystemSet ( )
protectedvirtual

By making the destructor protected, an instance must be destroyed via FFXSystemInterface::Destroy.

Member Function Documentation

◆ AddVectorField()

void FFXSystemSet::AddVectorField ( UVectorFieldComponent VectorFieldComponent)
overridevirtual

Add a vector field to the FX system.

Parameters
VectorFieldComponentThe vector field component to add.

Implements FFXSystemInterface.

◆ DestroyGPUSimulation()

void FFXSystemSet::DestroyGPUSimulation ( )
overridevirtual

Gamethread callback when destroy gets called, allows to clean up references.

Reimplemented from FFXSystemInterface.

◆ DrawDebug()

void FFXSystemSet::DrawDebug ( FCanvas Canvas)
overridevirtual

Draw desired debug information related to the effects system.

Parameters
CanvasThe canvas on which to draw.

Implements FFXSystemInterface.

◆ DrawDebug_RenderThread()

void FFXSystemSet::DrawDebug_RenderThread ( FRDGBuilder GraphBuilder,
const FSceneView View,
const struct FScreenPassRenderTarget Output 
)
overridevirtual

Draw desired debug information related to the effects system on the render thread. This is called at the end of the rendering when

Parameters
GraphBuilderRender Graph Builder to use
ViewThe view we are rendering for
OutputThe output buffer information

Reimplemented from FFXSystemInterface.

◆ DrawSceneDebug_RenderThread()

void FFXSystemSet::DrawSceneDebug_RenderThread ( FRDGBuilder GraphBuilder,
const FSceneView View,
FRDGTextureRef  SceneColor,
FRDGTextureRef  SceneDepth 
)
overridevirtual

Call to handle debug drawing to the scene (i.e. where depth is available)

Reimplemented from FFXSystemInterface.

◆ GetGPUSortManager()

FGPUSortManager * FFXSystemSet::GetGPUSortManager ( ) const
overridevirtual

Get the shared SortManager, used in the rendering loop to call FGPUSortManager::OnPreRender() and FGPUSortManager::OnPostRenderOpaque()

Implements FFXSystemInterface.

◆ GetInterface()

FFXSystemInterface * FFXSystemSet::GetInterface ( const FName InName)
overridevirtual

Return the interface bound to the given name.

Reimplemented from FFXSystemInterface.

◆ OnMarkPendingKill()

void FFXSystemSet::OnMarkPendingKill ( )
overridevirtual

Gamethread callback when MarkPendingKill is called, allows to clean up references. Once marked pending kill the interface can release resources and is in an undefined state.

Reimplemented from FFXSystemInterface.

◆ PostInitViews()

void FFXSystemSet::PostInitViews ( FRDGBuilder GraphBuilder,
TConstStridedView< FSceneView Views,
bool  bAllowGPUParticleUpdate 
)
overridevirtual

Implements FFXSystemInterface.

◆ PostRenderOpaque()

void FFXSystemSet::PostRenderOpaque ( FRDGBuilder GraphBuilder,
TConstStridedView< FSceneView Views,
FSceneUniformBuffer SceneUniformBuffer,
bool  bAllowGPUParticleUpdate 
)
overridevirtual

Notification from the renderer that opaque primitives have rendered.

Implements FFXSystemInterface.

◆ PreInitViews()

void FFXSystemSet::PreInitViews ( FRDGBuilder GraphBuilder,
bool  bAllowGPUParticleUpdate,
const TArrayView< const FSceneViewFamily * > &  ViewFamilies,
const FSceneViewFamily CurrentFamily 
)
overridevirtual

Notification from the renderer that it is about to perform visibility checks on FX belonging to this system.

Implements FFXSystemInterface.

◆ PreRender()

void FFXSystemSet::PreRender ( FRDGBuilder GraphBuilder,
TConstStridedView< FSceneView Views,
FSceneUniformBuffer SceneUniformBuffer,
bool  bAllowGPUParticleUpdate 
)
overridevirtual

Notification from the renderer that it is about to draw FX belonging to this system.

Implements FFXSystemInterface.

◆ RemoveVectorField()

void FFXSystemSet::RemoveVectorField ( UVectorFieldComponent VectorFieldComponent)
overridevirtual

Remove a vector field from the FX system.

Parameters
VectorFieldComponentThe vector field component to remove.

Implements FFXSystemInterface.

◆ RequiresEarlyViewUniformBuffer()

bool FFXSystemSet::RequiresEarlyViewUniformBuffer ( ) const
overridevirtual

Implements FFXSystemInterface.

◆ RequiresRayTracingScene()

bool FFXSystemSet::RequiresRayTracingScene ( ) const
overridevirtual

Implements FFXSystemInterface.

◆ SetSceneTexturesUniformBuffer()

void FFXSystemSet::SetSceneTexturesUniformBuffer ( const TUniformBufferRef< FSceneTextureUniformParameters > &  InSceneTexturesUniformParams)
overridevirtual

Reimplemented from FFXSystemInterface.

◆ ShouldDebugDraw_RenderThread()

bool FFXSystemSet::ShouldDebugDraw_RenderThread ( ) const
overridevirtual

Does the FX system require DrawDebug_RenderThread to be called at all? There is cost to enabling this so only return true when we have something to present.

Reimplemented from FFXSystemInterface.

◆ Tick()

void FFXSystemSet::Tick ( UWorld World,
float  DeltaSeconds 
)
overridevirtual

Tick the effects system.

Parameters
DeltaSecondsThe number of seconds by which to step simulations forward.

Implements FFXSystemInterface.

◆ UpdateVectorField()

void FFXSystemSet::UpdateVectorField ( UVectorFieldComponent VectorFieldComponent)
overridevirtual

Update a vector field registered with the FX system.

Parameters
VectorFieldComponentThe vector field component to update.

Implements FFXSystemInterface.

◆ UsesDepthBuffer()

bool FFXSystemSet::UsesDepthBuffer ( ) const
overridevirtual

Implements FFXSystemInterface.

◆ UsesGlobalDistanceField()

bool FFXSystemSet::UsesGlobalDistanceField ( ) const
overridevirtual

Implements FFXSystemInterface.

Member Data Documentation

◆ FXSystems

TArray<TSharedRef<FFXSystemInterface> > FFXSystemSet::FXSystems

◆ GPUSortManager

TRefCountPtr<FGPUSortManager> FFXSystemSet::GPUSortManager
protected

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