hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/src/platform/vulkan/vulkan_renderer.h
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-08-23 05:53:33 +0200
committerhachem <im@hachem.wtf>2026-08-23 05:53:33 +0200
commit380b4d5d5a3e66d89ca7b3b1601bb23e5a01bf7b (patch)
treeb4b0f3b43bedac1ef6ae16834ca03c1181964959 /src/platform/vulkan/vulkan_renderer.h
parent2b0661b7d6edacbc4a4ad87cdb625d559e08a5f9 (diff)
feat: unified interface
Diffstat (limited to 'src/platform/vulkan/vulkan_renderer.h')
-rw-r--r--src/platform/vulkan/vulkan_renderer.h50
1 files changed, 20 insertions, 30 deletions
diff --git a/src/platform/vulkan/vulkan_renderer.h b/src/platform/vulkan/vulkan_renderer.h
index bc6f5b9..81e8486 100644
--- a/src/platform/vulkan/vulkan_renderer.h
+++ b/src/platform/vulkan/vulkan_renderer.h
@@ -1,48 +1,38 @@
#pragma once
-#include <glm/glm.hpp>
-#include <functional>
-#include <string>
-#include <vector>
+#include "rendering/renderer_backend.h"
namespace Donut
{
auto vulkan_prepare_glfw() -> void;
- struct SceneObject
- {
- glm::vec3 position = { 0.0f, 2.0f, 0.0f };
- float radius = 2.0f;
- glm::vec3 color = { 0.85f, 0.35f, 0.2f };
- };
-
- class VulkanRenderer
+ class VulkanRenderer : public RendererBackend
{
public:
VulkanRenderer();
- ~VulkanRenderer();
-
- auto init(void* glfwWindow, int width, int height) -> bool;
- auto shutdown() -> void;
-
- auto init_im_gui() -> bool;
-
- auto draw_frame(const glm::vec4& clearColor, const std::function<void()>& buildUI = {}) -> void;
-
- auto on_resize(int width, int height) -> void;
+ ~VulkanRenderer() override;
- auto set_hdri(const std::string& path) -> void;
+ auto init(void* glfwWindow, int width, int height) -> bool override;
+ auto init_ui() -> bool override;
+ auto shutdown() -> void override;
+ auto resize(int width, int height) -> void override;
- auto current_hdri() const -> const std::string&;
+ auto draw_frame(const glm::vec4& clear_color,
+ const std::function<void()>& build_ui) -> void override;
- auto set_free_fly(bool enabled) -> void;
- auto is_free_fly() const -> bool;
+ auto set_scene_mode(bool enabled) -> void override;
+ auto is_scene_mode() const -> bool override;
+ auto set_free_fly(bool enabled) -> void override;
+ auto is_free_fly() const -> bool override;
+ auto reset_camera() -> void override;
- auto set_scene_mode(bool enabled) -> void;
- auto is_scene_mode() const -> bool;
+ auto set_hdri(const std::string& path) -> void override;
+ auto current_hdri() const -> const std::string& override;
+ auto scene_objects() -> std::vector<SceneObject>& override;
+ auto set_selected_object(int index) -> void override;
+ auto black_hole_params() -> BlackHoleParams& override;
- auto scene_objects() -> std::vector<SceneObject>&;
- auto set_selected_object(int index) -> void;
+ auto device_name() const -> const std::string& override;
private:
struct Impl;