VJ Master 1.0
Real-time audio analysis and visualisation.
Loading...
Searching...
No Matches
UST_VJ_RPCSManager Class Reference

Manages runtime compute shader execution for registered objects. More...

#include <ST_VJ_RPCSManager.h>

Public Member Functions

 UST_VJ_RPCSManager ()
virtual void Tick (float DeltaTime) override
virtual TStatId GetStatId () const override
virtual bool IsTickable () const override
void DispatchComputeShaders (float DeltaTime=0.016667)
void Register (IST_VJ_ManagedRPCSInterface *ManagedCS)
void Deregister (IST_VJ_ManagedRPCSInterface *ManagedCS)

Static Public Member Functions

static UST_VJ_RPCSManagerGet (UWorld *World)

Public Attributes

TArray< IST_VJ_ManagedRPCSInterface * > ManagedCSs
bool bEnabled = true
int32 MaxFPS = 60

Protected Member Functions

virtual void Initialize (FSubsystemCollectionBase &Collection) override
virtual void Deinitialize () override

Protected Attributes

bool bIsExecuting = false
FRenderCommandFence RenderCommandFence

Detailed Description

Manages runtime compute shader execution for registered objects.

Acts as a world subsystem and handles ticking compute shaders both on game and render threads.

Constructor & Destructor Documentation

◆ UST_VJ_RPCSManager()

UST_VJ_RPCSManager::UST_VJ_RPCSManager ( )

Constructor. Initializes default values.

Member Function Documentation

◆ Deinitialize()

void UST_VJ_RPCSManager::Deinitialize ( )
overrideprotectedvirtual

Function called before the subsystem is destroyed.

◆ Deregister()

void UST_VJ_RPCSManager::Deregister ( IST_VJ_ManagedRPCSInterface * ManagedCS)

Deregisters a managed compute shader interface.

Parameters
ManagedCSThe compute shader interface to deregister.

◆ DispatchComputeShaders()

void UST_VJ_RPCSManager::DispatchComputeShaders ( float DeltaTime = 0.016667)

Dispatches compute shaders for all registered managed compute shaders.

Parameters
DeltaTimeOptional delta time value. Defaults to 1/60 (60 FPS).

◆ Get()

UST_VJ_RPCSManager * UST_VJ_RPCSManager::Get ( UWorld * World)
static

Static getter to retrieve the RPCS Manager instance for a given world.

Parameters
WorldThe world context.
Returns
The RPCS Manager instance, or nullptr if not found.

◆ GetStatId()

TStatId UST_VJ_RPCSManager::GetStatId ( ) const
overridevirtual

Returns a stat ID for profiling.

Returns
The stat ID.

◆ Initialize()

void UST_VJ_RPCSManager::Initialize ( FSubsystemCollectionBase & Collection)
overrideprotectedvirtual

Initialization function, called when the subsystem is created.

Parameters
CollectionThe collection of subsystems for this world.

◆ IsTickable()

bool UST_VJ_RPCSManager::IsTickable ( ) const
overridevirtual

Determines whether this object should be ticked.

Returns
True if the object should tick, false otherwise.

◆ Register()

void UST_VJ_RPCSManager::Register ( IST_VJ_ManagedRPCSInterface * ManagedCS)

Registers a managed compute shader interface for automatic execution.

Parameters
ManagedCSThe compute shader interface to register.

◆ Tick()

void UST_VJ_RPCSManager::Tick ( float DeltaTime)
overridevirtual

Called every frame if the subsystem is tickable.

Parameters
DeltaTimeTime elapsed since the last frame.

Member Data Documentation

◆ bEnabled

bool UST_VJ_RPCSManager::bEnabled = true

Whether compute shader dispatching is enabled.

◆ bIsExecuting

bool UST_VJ_RPCSManager::bIsExecuting = false
protected

Whether the manager is currently executing compute shaders.

◆ ManagedCSs

TArray<IST_VJ_ManagedRPCSInterface*> UST_VJ_RPCSManager::ManagedCSs

List of registered compute shader interfaces being managed.

◆ MaxFPS

int32 UST_VJ_RPCSManager::MaxFPS = 60

Maximum frames per second for compute shader dispatching.

◆ RenderCommandFence

FRenderCommandFence UST_VJ_RPCSManager::RenderCommandFence
protected

Render command fence for synchronizing render thread compute shader work.


The documentation for this class was generated from the following files:
  • H:/Games/Unreal/Aaron/FunWithShaders/Plugins/ST_VJMaster/Source/ST_AudioVisualisation/Public/Compute/Utils/ST_VJ_RPCSManager.h
  • H:/Games/Unreal/Aaron/FunWithShaders/Plugins/ST_VJMaster/Source/ST_AudioVisualisation/Private/Compute/Utils/ST_VJ_RPCSManager.cpp