aboutsummaryrefslogtreecommitdiff
path: root/src/Platform/Vulkan/VulkanShader.cpp
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2025-08-14 00:13:38 +0200
committerhachem <im@hachem.wtf>2025-08-14 00:13:38 +0200
commit13f2e940700b4451f6bff52eb1666475fd2de72c (patch)
tree5908ff643da3caeef9a00cee3ff10931e4698a37 /src/Platform/Vulkan/VulkanShader.cpp
parent641db1c86bf624527173b0323bd3c832338c3662 (diff)
[setup]: Prepare for Vulkan
Diffstat (limited to 'src/Platform/Vulkan/VulkanShader.cpp')
-rw-r--r--src/Platform/Vulkan/VulkanShader.cpp125
1 files changed, 125 insertions, 0 deletions
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 <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& 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<uint32_t, std::string> VulkanShader::PreProcess(const std::string& source)
+ {
+ // TODO(Hachem): Implement shader preprocessing for Vulkan
+ return {};
+ }
+
+ void VulkanShader::Compile(const std::unordered_map<uint32_t, std::string>& shaderSources)
+ {
+ // TODO(Hachem): Implement Vulkan shader compilation
+ }
+};