Files
video-shader-toys/apps/RenderCadenceCompositor/runtime/RuntimeShaderBridge.h
Aiden 1ddcf5d621
All checks were successful
CI / React UI Build (push) Successful in 10s
CI / Native Windows Build And Tests (push) Successful in 3m1s
CI / Windows Release Package (push) Has been skipped
More http post end points filled
2026-05-12 14:23:53 +10:00

36 lines
992 B
C++

#pragma once
#include "RuntimeShaderArtifact.h"
#include "RuntimeSlangShaderCompiler.h"
#include <atomic>
#include <functional>
#include <string>
#include <thread>
class RuntimeShaderBridge
{
public:
using ArtifactCallback = std::function<void(const RuntimeShaderArtifact&)>;
using ErrorCallback = std::function<void(const std::string&)>;
RuntimeShaderBridge() = default;
RuntimeShaderBridge(const RuntimeShaderBridge&) = delete;
RuntimeShaderBridge& operator=(const RuntimeShaderBridge&) = delete;
~RuntimeShaderBridge();
void Start(const std::string& shaderId, ArtifactCallback onArtifactReady, ErrorCallback onError);
void Start(const std::string& layerId, const std::string& shaderId, ArtifactCallback onArtifactReady, ErrorCallback onError);
void Stop();
private:
void ThreadMain();
RuntimeSlangShaderCompiler mCompiler;
std::thread mThread;
std::atomic<bool> mStopping{ false };
std::string mLayerId;
ArtifactCallback mOnArtifactReady;
ErrorCallback mOnError;
};