From 5b361d81dbd2af0d0e99b9eb1adebea76ff05db0 Mon Sep 17 00:00:00 2001 From: hachem Date: Thu, 20 Aug 2026 02:27:02 +0200 Subject: [chore]: MASSIVE refactor + more vulkan bs --- src/platform/vulkan/vulkan_renderer_api.cpp | 86 +++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/platform/vulkan/vulkan_renderer_api.cpp (limited to 'src/platform/vulkan/vulkan_renderer_api.cpp') diff --git a/src/platform/vulkan/vulkan_renderer_api.cpp b/src/platform/vulkan/vulkan_renderer_api.cpp new file mode 100644 index 0000000..56499f4 --- /dev/null +++ b/src/platform/vulkan/vulkan_renderer_api.cpp @@ -0,0 +1,86 @@ +#include "vulkan_renderer_api.h" + +namespace Donut +{ + auto VulkanRendererAPI::init() -> void + { + // TODO(Hachem): Implement Vulkan renderer API initialization + } + + auto VulkanRendererAPI::set_viewport(uint32_t x, uint32_t y, uint32_t width, uint32_t height) -> void + { + // TODO(Hachem): Implement Vulkan viewport setting + } + + auto VulkanRendererAPI::set_clear_color(const glm::vec4& color) -> void + { + // TODO(Hachem): Implement Vulkan clear color setting + } + + auto VulkanRendererAPI::clear() -> void + { + // TODO(Hachem): Implement Vulkan clear + } + + auto VulkanRendererAPI::enable_depth_test() -> void + { + // TODO(Hachem): Implement Vulkan depth test enabling + } + + auto VulkanRendererAPI::disable_depth_test() -> void + { + // TODO(Hachem): Implement Vulkan depth test disabling + } + + auto VulkanRendererAPI::set_face_culling(bool enabled) -> void + { + // TODO(Hachem): Implement Vulkan face culling setting + } + + auto VulkanRendererAPI::enable_blending() -> void + { + // TODO(Hachem): Implement Vulkan blending enabling + } + + auto VulkanRendererAPI::disable_blending() -> void + { + // TODO(Hachem): Implement Vulkan blending disabling + } + + auto VulkanRendererAPI::draw_indexed(const Ref& vertex_array, uint32_t index_count) -> void + { + // TODO(Hachem): Implement Vulkan indexed drawing + } + + auto VulkanRendererAPI::draw_arrays(uint32_t vertex_count, uint32_t first) -> void + { + // TODO(Hachem): Implement Vulkan array drawing + } + + auto VulkanRendererAPI::draw_lines(const Ref& vertex_array, uint32_t index_count) -> void + { + // TODO(Hachem): Implement Vulkan line drawing + } + + auto VulkanRendererAPI::bind_texture(uint32_t texture_id, uint32_t slot) -> void + { + // TODO(Hachem): Implement Vulkan texture binding + } + + auto VulkanRendererAPI::bind_image_texture(uint32_t texture_id, uint32_t slot, bool read_only) -> void + { + // TODO(Hachem): Implement Vulkan image texture binding + } + + auto VulkanRendererAPI::read_pixels(uint32_t x, uint32_t y, uint32_t width, uint32_t height, + uint32_t format, uint32_t type, void* pixels) -> void + { + // TODO(Hachem): Implement Vulkan pixel reading + // For now, this is a placeholder implementation + // In a real Vulkan implementation, this would involve: + // 1. Creating a staging buffer + // 2. Copying the framebuffer to the staging buffer + // 3. Mapping the staging buffer and copying to the pixels array + // 4. Unmapping and destroying the staging buffer + } +}; -- cgit v1.3