#pragma once #include "ShaderTypes.h" #include #include #include #include namespace RenderCadenceCompositor { struct SupportedShaderSummary { std::string id; std::string name; std::string description; std::string category; }; struct ShaderSupportResult { bool supported = false; std::string reason; }; ShaderSupportResult CheckStatelessSinglePassShaderSupport(const ShaderPackage& shaderPackage); class SupportedShaderCatalog { public: bool Load(const std::filesystem::path& shaderRoot, unsigned maxTemporalHistoryFrames, std::string& error); const std::vector& Shaders() const { return mShaders; } const ShaderPackage* FindPackage(const std::string& shaderId) const; private: std::vector mShaders; std::map mPackagesById; }; }