From f968d0cb22b0fa4cca55229ad7387e0efb243470 Mon Sep 17 00:00:00 2001 From: Jayden Grubb Date: Wed, 19 Mar 2025 20:11:44 +1000 Subject: [PATCH] Add get_api_name() and get_api_version_string() --- engine/include/nova/render/render_driver.h | 4 ++++ engine/src/drivers/vulkan/render_driver.cpp | 17 ++++++++++++++++- engine/src/drivers/vulkan/render_driver.h | 2 ++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/engine/include/nova/render/render_driver.h b/engine/include/nova/render/render_driver.h index 528faf2..b0a8dea 100644 --- a/engine/include/nova/render/render_driver.h +++ b/engine/include/nova/render/render_driver.h @@ -11,6 +11,8 @@ #include #include +#include + namespace Nova { class NOVA_API RenderDriver { public: @@ -18,6 +20,8 @@ namespace Nova { [[nodiscard]] virtual RenderAPI get_api() const = 0; [[nodiscard]] virtual u32 get_api_version() const = 0; + [[nodiscard]] virtual std::string get_api_name() const = 0; + [[nodiscard]] virtual std::string get_api_version_string() const = 0; [[nodiscard]] virtual u32 get_device_count() const = 0; [[nodiscard]] virtual const RenderDevice& get_device(u32 index) const = 0; diff --git a/engine/src/drivers/vulkan/render_driver.cpp b/engine/src/drivers/vulkan/render_driver.cpp index 2fec744..3ecf1dd 100644 --- a/engine/src/drivers/vulkan/render_driver.cpp +++ b/engine/src/drivers/vulkan/render_driver.cpp @@ -12,8 +12,8 @@ #include #include +#include #include -#include #define VALIDATION_LAYER "VK_LAYER_KHRONOS_validation" @@ -48,6 +48,21 @@ u32 VulkanRenderDriver::get_api_version() const { return version; } +std::string VulkanRenderDriver::get_api_name() const { + return "Vulkan"; +} + +std::string VulkanRenderDriver::get_api_version_string() const { + const u32 version = get_api_version(); + return std::format( + "{}.{}.{}-{}", + VK_API_VERSION_MAJOR(version), + VK_API_VERSION_MINOR(version), + VK_API_VERSION_PATCH(version), + VK_API_VERSION_VARIANT(version) + ); +} + u32 VulkanRenderDriver::get_device_count() const { return m_devices.size(); } diff --git a/engine/src/drivers/vulkan/render_driver.h b/engine/src/drivers/vulkan/render_driver.h index 2444295..df26bd3 100644 --- a/engine/src/drivers/vulkan/render_driver.h +++ b/engine/src/drivers/vulkan/render_driver.h @@ -19,6 +19,8 @@ namespace Nova { [[nodiscard]] RenderAPI get_api() const override; [[nodiscard]] u32 get_api_version() const override; + [[nodiscard]] std::string get_api_name() const override; + [[nodiscard]] std::string get_api_version_string() const override; [[nodiscard]] u32 get_device_count() const override; [[nodiscard]] const RenderDevice& get_device(u32 index) const override;