Files
video-shader-toys/apps/RenderCadenceCompositor/runtime/RuntimeShaderBridge.h
Aiden 511b67c9bc
All checks were successful
CI / React UI Build (push) Successful in 11s
CI / Native Windows Build And Tests (push) Successful in 2m53s
CI / Windows Release Package (push) Successful in 3m18s
New rules based order
2026-05-12 02:35:15 +10:00

34 lines
842 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 Stop();
private:
void ThreadMain();
RuntimeSlangShaderCompiler mCompiler;
std::thread mThread;
std::atomic<bool> mStopping{ false };
ArtifactCallback mOnArtifactReady;
ErrorCallback mOnError;
};