VJ Master 1.0
Real-time audio analysis and visualisation.
Loading...
Searching...
No Matches
ST_VJ_RPCSManager.h
1// Copyright (c) 2025 Aaron Trotter (ShaderTech). All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Compute/Utils/ST_VJ_ManagedRPCSInterface.h"
7#include "Subsystems/WorldSubsystem.h"
8#include "Tickable.h"
9#include "RenderCommandFence.h"
10#include "ST_VJ_RPCSManager.generated.h"
11
12DECLARE_LOG_CATEGORY_EXTERN(LogST_VJ_RPCSManager, Log, All);
13
19UCLASS()
20class ST_AUDIOVISUALISATION_API UST_VJ_RPCSManager : public UWorldSubsystem, public FTickableGameObject
21{
22 GENERATED_BODY()
23
24public:
27
29 TArray<IST_VJ_ManagedRPCSInterface*> ManagedCSs;
30
31protected:
37 virtual void Initialize(FSubsystemCollectionBase& Collection) override;
38
42 virtual void Deinitialize() override;
43
44public:
45 // --- FTickableGameObject overrides ---
46
52 virtual void Tick(float DeltaTime) override;
53
59 virtual TStatId GetStatId() const override;
60
66 virtual bool IsTickable() const override;
67
73 UFUNCTION(BlueprintCallable, Category = "ShaderTech|AudioVisualisation|Compute")
74 void DispatchComputeShaders(float DeltaTime = 0.016667);
75
82
89
96 static UST_VJ_RPCSManager* Get(UWorld* World);
97
99 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ShaderTech|AudioVisualisation|Compute")
100 bool bEnabled = true;
101
103 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ShaderTech|AudioVisualisation|Compute")
104 int32 MaxFPS = 60;
105
106protected:
108 bool bIsExecuting = false;
109
111 FRenderCommandFence RenderCommandFence;
112};
Interface class for managed RPCs related to compute shader lifecycle handling.
Definition ST_VJ_ManagedRPCSInterface.h:26
virtual bool IsTickable() const override
Definition ST_VJ_RPCSManager.cpp:105
FRenderCommandFence RenderCommandFence
Definition ST_VJ_RPCSManager.h:111
virtual TStatId GetStatId() const override
Definition ST_VJ_RPCSManager.cpp:100
static UST_VJ_RPCSManager * Get(UWorld *World)
Definition ST_VJ_RPCSManager.cpp:154
virtual void Deinitialize() override
Definition ST_VJ_RPCSManager.cpp:35
int32 MaxFPS
Definition ST_VJ_RPCSManager.h:104
bool bIsExecuting
Definition ST_VJ_RPCSManager.h:108
void DispatchComputeShaders(float DeltaTime=0.016667)
Definition ST_VJ_RPCSManager.cpp:111
UST_VJ_RPCSManager()
Definition ST_VJ_RPCSManager.cpp:17
virtual void Initialize(FSubsystemCollectionBase &Collection) override
Definition ST_VJ_RPCSManager.cpp:23
TArray< IST_VJ_ManagedRPCSInterface * > ManagedCSs
Definition ST_VJ_RPCSManager.h:29
void Register(IST_VJ_ManagedRPCSInterface *ManagedCS)
Definition ST_VJ_RPCSManager.cpp:42
bool bEnabled
Definition ST_VJ_RPCSManager.h:100
virtual void Tick(float DeltaTime) override
Definition ST_VJ_RPCSManager.cpp:92
void Deregister(IST_VJ_ManagedRPCSInterface *ManagedCS)
Definition ST_VJ_RPCSManager.cpp:66