diff options
| author | hachem <im@hachem.wtf> | 2026-08-20 02:27:02 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-08-20 02:40:07 +0200 |
| commit | 5b361d81dbd2af0d0e99b9eb1adebea76ff05db0 (patch) | |
| tree | 34db1df17e8c7248aeeb92156d635d31c2484e3f /src/platform/vulkan/vulkan_shader.cpp | |
| parent | e3abaaf59777258ba06705135a0cafcb5918ad12 (diff) | |
[chore]: MASSIVE refactor + more vulkan bs
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 + } +}; |
