hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/src/rendering
diff options
context:
space:
mode:
Diffstat (limited to 'src/rendering')
-rw-r--r--src/rendering/index_buffer.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/vertex_array.cpp3
-rw-r--r--src/rendering/vertex_buffer.cpp5
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;
}