diff options
| author | hachem <im@hachem.wtf> | 2025-08-14 00:13:38 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2025-08-14 00:13:38 +0200 |
| commit | 0262eeea8762cdeb14c98d22473ebf0fd6b37bf9 (patch) | |
| tree | d8675a753433a5a0fce16e7380fac3dc3bd2ee35 /src/rendering | |
| parent | 1b251bd174527951eec220ecbcb7eca89328e5b8 (diff) | |
chore: prepare for Vulkan
Diffstat (limited to 'src/rendering')
| -rw-r--r-- | src/rendering/index_buffer.cpp | 3 | ||||
| -rw-r--r-- | src/rendering/renderer.cpp | 3 | ||||
| -rw-r--r-- | src/rendering/shader.cpp | 7 | ||||
| -rw-r--r-- | src/rendering/texture.cpp | 5 | ||||
| -rw-r--r-- | src/rendering/vertex_array.cpp | 3 | ||||
| -rw-r--r-- | src/rendering/vertex_buffer.cpp | 5 |
6 files changed, 25 insertions, 1 deletions
diff --git a/src/rendering/index_buffer.cpp b/src/rendering/index_buffer.cpp index 4e38b36..1095e3b 100644 --- a/src/rendering/index_buffer.cpp +++ b/src/rendering/index_buffer.cpp @@ -2,6 +2,7 @@ #include "renderer.h" #include "platform/opengl/opengl_index_buffer.h" +#include "platform/vulkan/vulkan_index_buffer.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 bd921eb..3343cce 100644 --- a/src/rendering/renderer.cpp +++ b/src/rendering/renderer.cpp @@ -1,5 +1,6 @@ #include "renderer.h" #include "platform/opengl/opengl_renderer_api.h" +#include "platform/vulkan/vulkan_renderer_api.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 d3fef07..1e84125 100644 --- a/src/rendering/shader.cpp +++ b/src/rendering/shader.cpp @@ -1,6 +1,7 @@ #include "shader.h" #include "renderer.h" #include "platform/opengl/opengl_shader.h" +#include "platform/vulkan/vulkan_shader.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, vertex_src, fragment_src); + case RendererAPI::API::Vulkan: + return new VulkanShader(name, vertex_src, fragment_src); default: return nullptr; } @@ -33,6 +38,8 @@ namespace Donut { case RendererAPI::API::OpenGL: return new OpenGLShader(name, compute_src); + case RendererAPI::API::Vulkan: + return new VulkanShader(name, compute_src); default: return nullptr; } diff --git a/src/rendering/texture.cpp b/src/rendering/texture.cpp index 9603034..36189a3 100644 --- a/src/rendering/texture.cpp +++ b/src/rendering/texture.cpp @@ -1,6 +1,7 @@ #include "texture.h" #include "renderer.h" #include "../platform/opengl/opengl_texture.h" +#include "../platform/vulkan/vulkan_texture.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/vertex_array.cpp b/src/rendering/vertex_array.cpp index 48eeb5a..8057a3e 100644 --- a/src/rendering/vertex_array.cpp +++ b/src/rendering/vertex_array.cpp @@ -1,6 +1,7 @@ #include "vertex_array.h" #include "renderer.h" #include "platform/opengl/opengl_vertex_array.h" +#include "platform/vulkan/vulkan_vertex_array.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/vertex_buffer.cpp b/src/rendering/vertex_buffer.cpp index a349e78..32ae10a 100644 --- a/src/rendering/vertex_buffer.cpp +++ b/src/rendering/vertex_buffer.cpp @@ -1,15 +1,18 @@ #include "vertex_buffer.h" #include "renderer.h" #include "platform/opengl/opengl_vertex_buffer.h" +#include "platform/vulkan/vulkan_vertex_buffer.h" namespace Donut { - VertexBuffer* VertexBuffer::create(const void* data, uint32_t size) + VertexBuffer* VertexBuffer::create(const void* data, uint32_t size) { switch (Renderer::get_api()) { case RendererAPI::API::OpenGL: return new OpenGLVertexBuffer(data, size); + case RendererAPI::API::Vulkan: + return new VulkanVertexBuffer((float*)data, size); default: return nullptr; } |
