diff options
Diffstat (limited to 'src/platform/vulkan/vulkan_shader.cpp')
| -rw-r--r-- | src/platform/vulkan/vulkan_shader.cpp | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/src/platform/vulkan/vulkan_shader.cpp b/src/platform/vulkan/vulkan_shader.cpp new file mode 100644 index 0000000..7549761 --- /dev/null +++ b/src/platform/vulkan/vulkan_shader.cpp @@ -0,0 +1,146 @@ +#include "vulkan_shader.h" + +#include <fstream> +#include <glm/gtc/type_ptr.hpp> + +namespace Donut +{ + VulkanShader::VulkanShader(const std::string& filepath) + { + // TODO(Hachem): Implement Vulkan shader creation from filepath + } + + VulkanShader::VulkanShader(const std::string& name, const std::string& vertex_src, const std::string& fragment_src) + : m_name(name) + { + // TODO(Hachem): Implement Vulkan shader creation from source + } + + VulkanShader::VulkanShader(const std::string& name, const std::string& compute_src) + : m_name(name) + { + // TODO(Hachem): Implement Vulkan compute shader creation + } + + VulkanShader::~VulkanShader() + { + // TODO(Hachem): Implement Vulkan shader cleanup + } + + auto VulkanShader::bind() const -> void + { + // TODO(Hachem): Implement Vulkan shader binding + } + + auto VulkanShader::unbind() const -> void + { + // TODO(Hachem): Implement Vulkan shader unbinding + } + + auto VulkanShader::set_int(const std::string& name, int value) -> void + { + // TODO(Hachem): Implement Vulkan shader int uniform setting + } + + auto VulkanShader::set_int_array(const std::string& name, int* values, uint32_t count) -> void + { + // TODO(Hachem): Implement Vulkan shader int array uniform setting + } + + auto VulkanShader::set_float(const std::string& name, float value) -> void + { + // TODO(Hachem): Implement Vulkan shader float uniform setting + } + + auto VulkanShader::set_float2(const std::string& name, const glm::vec2& value) -> void + { + // TODO(Hachem): Implement Vulkan shader float2 uniform setting + } + + auto VulkanShader::set_float3(const std::string& name, const glm::vec3& value) -> void + { + // TODO(Hachem): Implement Vulkan shader float3 uniform setting + } + + auto VulkanShader::set_float4(const std::string& name, const glm::vec4& value) -> void + { + // TODO(Hachem): Implement Vulkan shader float4 uniform setting + } + + auto VulkanShader::set_mat4(const std::string& name, const glm::mat4& value) -> void + { + // TODO(Hachem): Implement Vulkan shader mat4 uniform setting + } + + auto VulkanShader::dispatch(uint32_t x, uint32_t y, uint32_t z) -> void + { + // TODO(Hachem): Implement Vulkan compute shader dispatch + } + + auto VulkanShader::dispatch_indirect(uint32_t offset) -> void + { + // TODO(Hachem): Implement Vulkan indirect compute shader dispatch + } + + auto VulkanShader::memory_barrier(uint32_t barriers) -> void + { + // TODO(Hachem): Implement Vulkan memory barrier + } + + auto VulkanShader::upload_uniform_int(const std::string& name, int value) -> void + { + // TODO(Hachem): Implement Vulkan uniform int upload + } + + auto VulkanShader::upload_uniform_int_array(const std::string& name, int* values, uint32_t count) -> void + { + // TODO(Hachem): Implement Vulkan uniform int array upload + } + + auto VulkanShader::upload_uniform_float(const std::string& name, float value) -> void + { + // TODO(Hachem): Implement Vulkan uniform float upload + } + + auto VulkanShader::upload_uniform_float2(const std::string& name, const glm::vec2& value) -> void + { + // TODO(Hachem): Implement Vulkan uniform float2 upload + } + + auto VulkanShader::upload_uniform_float3(const std::string& name, const glm::vec3& value) -> void + { + // TODO(Hachem): Implement Vulkan uniform float3 upload + } + + auto VulkanShader::upload_uniform_float4(const std::string& name, const glm::vec4& value) -> void + { + // TODO(Hachem): Implement Vulkan uniform float4 upload + } + + auto VulkanShader::upload_uniform_mat3(const std::string& name, const glm::mat3& matrix) -> void + { + // TODO(Hachem): Implement Vulkan uniform mat3 upload + } + + auto VulkanShader::upload_uniform_mat4(const std::string& name, const glm::mat4& matrix) -> void + { + // TODO(Hachem): Implement Vulkan uniform mat4 upload + } + + auto VulkanShader::read_file(const std::string& filepath) -> std::string + { + // TODO(Hachem): Implement file reading for Vulkan shader + return ""; + } + + auto VulkanShader::pre_process(const std::string& source) -> std::unordered_map<uint32_t, std::string> + { + // TODO(Hachem): Implement shader preprocessing for Vulkan + return {}; + } + + auto VulkanShader::compile(const std::unordered_map<uint32_t, std::string>& shader_sources) -> void + { + // TODO(Hachem): Implement Vulkan shader compilation + } +}; |
