From 13f2e940700b4451f6bff52eb1666475fd2de72c Mon Sep 17 00:00:00 2001 From: hachem Date: Thu, 14 Aug 2025 00:13:38 +0200 Subject: [setup]: Prepare for Vulkan --- src/Platform/Vulkan/VulkanShader.cpp | 125 +++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 src/Platform/Vulkan/VulkanShader.cpp (limited to 'src/Platform/Vulkan/VulkanShader.cpp') diff --git a/src/Platform/Vulkan/VulkanShader.cpp b/src/Platform/Vulkan/VulkanShader.cpp new file mode 100644 index 0000000..cbc0f54 --- /dev/null +++ b/src/Platform/Vulkan/VulkanShader.cpp @@ -0,0 +1,125 @@ +#include "VulkanShader.h" + +#include +#include + +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& vertexSrc, const std::string& fragmentSrc) + : m_Name(name) + { + // TODO(Hachem): Implement Vulkan shader creation from source + } + + VulkanShader::~VulkanShader() + { + // TODO(Hachem): Implement Vulkan shader cleanup + } + + void VulkanShader::Bind() const + { + // TODO(Hachem): Implement Vulkan shader binding + } + + void VulkanShader::Unbind() const + { + // TODO(Hachem): Implement Vulkan shader unbinding + } + + void VulkanShader::SetInt(const std::string& name, int value) + { + // TODO(Hachem): Implement Vulkan shader int uniform setting + } + + void VulkanShader::SetIntArray(const std::string& name, int* values, uint32_t count) + { + // TODO(Hachem): Implement Vulkan shader int array uniform setting + } + + void VulkanShader::SetFloat(const std::string& name, float value) + { + // TODO(Hachem): Implement Vulkan shader float uniform setting + } + + void VulkanShader::SetFloat2(const std::string& name, const glm::vec2& value) + { + // TODO(Hachem): Implement Vulkan shader float2 uniform setting + } + + void VulkanShader::SetFloat3(const std::string& name, const glm::vec3& value) + { + // TODO(Hachem): Implement Vulkan shader float3 uniform setting + } + + void VulkanShader::SetFloat4(const std::string& name, const glm::vec4& value) + { + // TODO(Hachem): Implement Vulkan shader float4 uniform setting + } + + void VulkanShader::SetMat4(const std::string& name, const glm::mat4& value) + { + // TODO(Hachem): Implement Vulkan shader mat4 uniform setting + } + + void VulkanShader::UploadUniformInt(const std::string& name, int value) + { + // TODO(Hachem): Implement Vulkan uniform int upload + } + + void VulkanShader::UploadUniformIntArray(const std::string& name, int* values, uint32_t count) + { + // TODO(Hachem): Implement Vulkan uniform int array upload + } + + void VulkanShader::UploadUniformFloat(const std::string& name, float value) + { + // TODO(Hachem): Implement Vulkan uniform float upload + } + + void VulkanShader::UploadUniformFloat2(const std::string& name, const glm::vec2& value) + { + // TODO(Hachem): Implement Vulkan uniform float2 upload + } + + void VulkanShader::UploadUniformFloat3(const std::string& name, const glm::vec3& value) + { + // TODO(Hachem): Implement Vulkan uniform float3 upload + } + + void VulkanShader::UploadUniformFloat4(const std::string& name, const glm::vec4& value) + { + // TODO(Hachem): Implement Vulkan uniform float4 upload + } + + void VulkanShader::UploadUniformMat3(const std::string& name, const glm::mat3& matrix) + { + // TODO(Hachem): Implement Vulkan uniform mat3 upload + } + + void VulkanShader::UploadUniformMat4(const std::string& name, const glm::mat4& matrix) + { + // TODO(Hachem): Implement Vulkan uniform mat4 upload + } + + std::string VulkanShader::ReadFile(const std::string& filepath) + { + // TODO(Hachem): Implement file reading for Vulkan shader + return ""; + } + + std::unordered_map VulkanShader::PreProcess(const std::string& source) + { + // TODO(Hachem): Implement shader preprocessing for Vulkan + return {}; + } + + void VulkanShader::Compile(const std::unordered_map& shaderSources) + { + // TODO(Hachem): Implement Vulkan shader compilation + } +}; -- cgit v1.3