Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • vulkan2021/vkcv-framework
1 result
Show changes
Showing
with 1451 additions and 32 deletions
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -10,6 +10,9 @@ set(vkcv_shader_compiler_include ${PROJECT_SOURCE_DIR}/include) ...@@ -10,6 +10,9 @@ set(vkcv_shader_compiler_include ${PROJECT_SOURCE_DIR}/include)
# Add source and header files to the module # Add source and header files to the module
set(vkcv_shader_compiler_sources set(vkcv_shader_compiler_sources
${vkcv_shader_compiler_include}/vkcv/shader/Compiler.hpp
${vkcv_shader_compiler_source}/vkcv/shader/Compiler.cpp
${vkcv_shader_compiler_include}/vkcv/shader/GLSLCompiler.hpp ${vkcv_shader_compiler_include}/vkcv/shader/GLSLCompiler.hpp
${vkcv_shader_compiler_source}/vkcv/shader/GLSLCompiler.cpp ${vkcv_shader_compiler_source}/vkcv/shader/GLSLCompiler.cpp
) )
......
#pragma once #pragma once
#include <filesystem>
#include <string>
#include <unordered_map>
#include <vkcv/Event.hpp> #include <vkcv/Event.hpp>
#include <vkcv/ShaderStage.hpp>
namespace vkcv::shader { namespace vkcv::shader {
...@@ -8,10 +13,21 @@ namespace vkcv::shader { ...@@ -8,10 +13,21 @@ namespace vkcv::shader {
class Compiler { class Compiler {
private: private:
protected:
std::unordered_map<std::string, std::string> m_defines;
public: public:
virtual bool compileSource(ShaderStage shaderStage, const char* shaderSource,
const ShaderCompiledFunction& compiled,
const std::filesystem::path& includePath) = 0;
virtual void compile(ShaderStage shaderStage, const std::filesystem::path& shaderPath, virtual void compile(ShaderStage shaderStage, const std::filesystem::path& shaderPath,
const ShaderCompiledFunction& compiled, bool update = false) = 0; const ShaderCompiledFunction& compiled,
const std::filesystem::path& includePath, bool update) = 0;
std::string getDefine(const std::string& name) const;
void setDefine(const std::string& name, const std::string& value);
}; };
} }
#include "vkcv/shader/Compiler.hpp"
namespace vkcv::shader {
std::string Compiler::getDefine(const std::string &name) const {
return m_defines.at(name);
}
void Compiler::setDefine(const std::string &name, const std::string &value) {
m_defines[name] = value;
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Subproject commit bcffc8171efb80e265991301a49670ed755088dd
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
bloom
\ No newline at end of file