aboutsummaryrefslogtreecommitdiff
path: root/src/Rendering
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/Rendering
parent641db1c86bf624527173b0323bd3c832338c3662 (diff)
[setup]: Prepare for Vulkan
Diffstat (limited to 'src/Rendering')
-rw-r--r--src/Rendering/IndexBuffer.cpp3
-rw-r--r--src/Rendering/Renderer.cpp3
-rw-r--r--src/Rendering/Shader.cpp7
-rw-r--r--src/Rendering/Texture.cpp5
-rw-r--r--src/Rendering/VertexArray.cpp3
-rw-r--r--src/Rendering/VertexBuffer.cpp5
6 files changed, 25 insertions, 1 deletions
diff --git a/src/Rendering/IndexBuffer.cpp b/src/Rendering/IndexBuffer.cpp
index de9cb87..185684b 100644
--- a/src/Rendering/IndexBuffer.cpp
+++ b/src/Rendering/IndexBuffer.cpp
@@ -2,6 +2,7 @@
#include "Renderer.h"
#include "Platform/OpenGL/OpenGLIndexBuffer.h"
+#include "Platform/Vulkan/VulkanIndexBuffer.h"
namespace Donut
{
@@ -11,6 +12,8 @@ namespace Donut
{
case RendererAPI::API::OpenGL:
return new OpenGLIndexBuffer(indices, count);
+ case RendererAPI::API::Vulkan:
+ return new VulkanIndexBuffer((uint32_t*)indices, count);
default:
return nullptr;
}
diff --git a/src/Rendering/Renderer.cpp b/src/Rendering/Renderer.cpp
index 9aa3dd3..4f61619 100644
--- a/src/Rendering/Renderer.cpp
+++ b/src/Rendering/Renderer.cpp
@@ -1,5 +1,6 @@
#include "Renderer.h"
#include "Platform/OpenGL/OpenGLRendererAPI.h"
+#include "Platform/Vulkan/VulkanRendererAPI.h"
#include <memory>
#include <glm/gtc/matrix_transform.hpp>
@@ -11,6 +12,8 @@ namespace Donut
{
case API::OpenGL:
return std::make_unique<OpenGLRendererAPI>();
+ case API::Vulkan:
+ return std::make_unique<VulkanRendererAPI>();
default:
return nullptr;
}
diff --git a/src/Rendering/Shader.cpp b/src/Rendering/Shader.cpp
index a791c98..e38ce65 100644
--- a/src/Rendering/Shader.cpp
+++ b/src/Rendering/Shader.cpp
@@ -1,6 +1,7 @@
#include "Shader.h"
#include "Renderer.h"
#include "Platform/OpenGL/OpenGLShader.h"
+#include "Platform/Vulkan/VulkanShader.h"
#include <memory>
namespace Donut
@@ -11,6 +12,8 @@ namespace Donut
{
case RendererAPI::API::OpenGL:
return new OpenGLShader(filepath);
+ case RendererAPI::API::Vulkan:
+ return new VulkanShader(filepath);
default:
return nullptr;
}
@@ -22,6 +25,8 @@ namespace Donut
{
case RendererAPI::API::OpenGL:
return new OpenGLShader(name, vertexSrc, fragmentSrc);
+ case RendererAPI::API::Vulkan:
+ return new VulkanShader(name, vertexSrc, fragmentSrc);
default:
return nullptr;
}
@@ -33,6 +38,8 @@ namespace Donut
{
case RendererAPI::API::OpenGL:
return new OpenGLShader(name, computeSrc);
+ case RendererAPI::API::Vulkan:
+ return new VulkanShader(name, computeSrc);
default:
return nullptr;
}
diff --git a/src/Rendering/Texture.cpp b/src/Rendering/Texture.cpp
index a52a469..3a86dba 100644
--- a/src/Rendering/Texture.cpp
+++ b/src/Rendering/Texture.cpp
@@ -1,6 +1,7 @@
#include "Texture.h"
#include "Renderer.h"
#include "../Platform/OpenGL/OpenGLTexture.h"
+#include "../Platform/Vulkan/VulkanTexture.h"
namespace Donut
{
@@ -10,6 +11,8 @@ namespace Donut
{
case RendererAPI::API::OpenGL:
return std::make_shared<OpenGLTexture2D>(width, height);
+ case RendererAPI::API::Vulkan:
+ return std::make_shared<VulkanTexture2D>(width, height);
case RendererAPI::API::None:
return nullptr;
default:
@@ -23,6 +26,8 @@ namespace Donut
{
case RendererAPI::API::OpenGL:
return std::make_shared<OpenGLTexture2D>(path);
+ case RendererAPI::API::Vulkan:
+ return std::make_shared<VulkanTexture2D>(path);
case RendererAPI::API::None:
return nullptr;
default:
diff --git a/src/Rendering/VertexArray.cpp b/src/Rendering/VertexArray.cpp
index 87db8fb..2b2549c 100644
--- a/src/Rendering/VertexArray.cpp
+++ b/src/Rendering/VertexArray.cpp
@@ -1,6 +1,7 @@
#include "VertexArray.h"
#include "Renderer.h"
#include "Platform/OpenGL/OpenGLVertexArray.h"
+#include "Platform/Vulkan/VulkanVertexArray.h"
namespace Donut
{
@@ -21,6 +22,8 @@ namespace Donut
{
case RendererAPI::API::OpenGL:
return new OpenGLVertexArray();
+ case RendererAPI::API::Vulkan:
+ return new VulkanVertexArray();
default:
return nullptr;
}
diff --git a/src/Rendering/VertexBuffer.cpp b/src/Rendering/VertexBuffer.cpp
index bd9c0f9..57b4d87 100644
--- a/src/Rendering/VertexBuffer.cpp
+++ b/src/Rendering/VertexBuffer.cpp
@@ -1,15 +1,18 @@
#include "VertexBuffer.h"
#include "Renderer.h"
#include "Platform/OpenGL/OpenGLVertexBuffer.h"
+#include "Platform/Vulkan/VulkanVertexBuffer.h"
namespace Donut
{
- VertexBuffer* VertexBuffer::Create(const void* data, uint32_t size)
+ VertexBuffer* VertexBuffer::Create(const void* data, uint32_t size)
{
switch (Renderer::GetAPI())
{
case RendererAPI::API::OpenGL:
return new OpenGLVertexBuffer(data, size);
+ case RendererAPI::API::Vulkan:
+ return new VulkanVertexBuffer((float*)data, size);
default:
return nullptr;
}