#pragma once #include <filesystem> #include <vkcv/ShaderStage.hpp> #include "Compiler.hpp" namespace vkcv::shader { class GLSLCompiler : public Compiler { private: public: GLSLCompiler(); GLSLCompiler(const GLSLCompiler& other); GLSLCompiler(GLSLCompiler&& other) = default; ~GLSLCompiler(); GLSLCompiler& operator=(const GLSLCompiler& other); GLSLCompiler& operator=(GLSLCompiler&& other) = default; bool compileSource(ShaderStage shaderStage, const char* shaderSource, const ShaderCompiledFunction& compiled, const std::filesystem::path& includePath); void compile(ShaderStage shaderStage, const std::filesystem::path& shaderPath, const ShaderCompiledFunction& compiled, const std::filesystem::path& includePath = "", bool update = false) override; }; }