hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/src/platform/vulkan/vulkan_renderer.cpp
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-08-20 02:27:02 +0200
committerhachem <im@hachem.wtf>2026-08-20 02:40:07 +0200
commiteee975a13c29ddbc838284a941332b905a18b430 (patch)
treec043275c24c640a872fedfc8de1bcf434bda59b0 /src/platform/vulkan/vulkan_renderer.cpp
parent31f6a54d35dd13f0911f132dc60f5f0d851d7e43 (diff)
refactor: trailing return types in the Vulkan backend
Diffstat (limited to 'src/platform/vulkan/vulkan_renderer.cpp')
-rw-r--r--src/platform/vulkan/vulkan_renderer.cpp98
1 files changed, 49 insertions, 49 deletions
diff --git a/src/platform/vulkan/vulkan_renderer.cpp b/src/platform/vulkan/vulkan_renderer.cpp
index 65fdcc7..30eed3b 100644
--- a/src/platform/vulkan/vulkan_renderer.cpp
+++ b/src/platform/vulkan/vulkan_renderer.cpp
@@ -32,7 +32,7 @@ namespace Donut
static constexpr int MAX_FRAMES_IN_FLIGHT = 2;
- void vulkan_prepare_glfw()
+ auto vulkan_prepare_glfw() -> void
{
#ifdef __APPLE__
if (!getenv("VK_ICD_FILENAMES"))
@@ -110,31 +110,31 @@ namespace Donut
VkPipelineLayout present_pipeline_layout = VK_NULL_HANDLE;
VkPipeline present_pipeline = VK_NULL_HANDLE;
- uint32_t find_memory_type(uint32_t type_filter, VkMemoryPropertyFlags flags) const;
- bool create_buffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags props, VkBuffer& buf, VkDeviceMemory& mem) const;
- static std::vector<uint32_t> load_spirv(const std::string& path);
- bool create_shader_module(const std::string& path, VkShaderModule& out) const;
+ auto find_memory_type(uint32_t type_filter, VkMemoryPropertyFlags flags) const -> uint32_t;
+ auto create_buffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags props, VkBuffer& buf, VkDeviceMemory& mem) const -> bool;
+ static auto load_spirv(const std::string& path) -> std::vector<uint32_t>;
+ auto create_shader_module(const std::string& path, VkShaderModule& out) const -> bool;
- bool create_instance();
- bool pick_physical_and_device();
- bool create_swapchain();
- bool create_image_views();
- bool create_render_pass();
- bool create_framebuffers();
- bool create_command_buffers();
- bool create_sync_objects();
- bool create_geodesic_resources();
- bool create_hdri_cubemap(const char* path);
- bool create_present_resources();
- void process_input();
- void update_geodesic_uniforms();
- void destroy_geodesic_resources();
- bool recreate_swapchain();
- void cleanup_swapchain();
- bool record_command_buffer(VkCommandBuffer cmd, uint32_t image_index, const glm::vec4& clear, ImDrawData* draw_data);
+ auto create_instance() -> bool;
+ auto pick_physical_and_device() -> bool;
+ auto create_swapchain() -> bool;
+ auto create_image_views() -> bool;
+ auto create_render_pass() -> bool;
+ auto create_framebuffers() -> bool;
+ auto create_command_buffers() -> bool;
+ auto create_sync_objects() -> bool;
+ auto create_geodesic_resources() -> bool;
+ auto create_hdri_cubemap(const char* path) -> bool;
+ auto create_present_resources() -> bool;
+ auto process_input() -> void;
+ auto update_geodesic_uniforms() -> void;
+ auto destroy_geodesic_resources() -> void;
+ auto recreate_swapchain() -> bool;
+ auto cleanup_swapchain() -> void;
+ auto record_command_buffer(VkCommandBuffer cmd, uint32_t image_index, const glm::vec4& clear, ImDrawData* draw_data) -> bool;
};
- bool VulkanRenderer::Impl::create_instance()
+ auto VulkanRenderer::Impl::create_instance() -> bool
{
#ifdef __APPLE__
if (!getenv("VK_ICD_FILENAMES"))
@@ -189,7 +189,7 @@ namespace Donut
return true;
}
- bool VulkanRenderer::Impl::pick_physical_and_device()
+ auto VulkanRenderer::Impl::pick_physical_and_device() -> bool
{
uint32_t count = 0;
vkEnumeratePhysicalDevices(instance, &count, nullptr);
@@ -248,7 +248,7 @@ namespace Donut
return true;
}
- bool VulkanRenderer::Impl::create_swapchain()
+ auto VulkanRenderer::Impl::create_swapchain() -> bool
{
VkSurfaceCapabilitiesKHR caps{};
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physical, surface, &caps);
@@ -306,7 +306,7 @@ namespace Donut
return true;
}
- bool VulkanRenderer::Impl::create_image_views()
+ auto VulkanRenderer::Impl::create_image_views() -> bool
{
image_views.resize(images.size());
for (size_t i = 0; i < images.size(); ++i)
@@ -321,7 +321,7 @@ namespace Donut
return true;
}
- bool VulkanRenderer::Impl::create_render_pass()
+ auto VulkanRenderer::Impl::create_render_pass() -> bool
{
VkAttachmentDescription color{};
color.format = swapchain_format;
@@ -354,7 +354,7 @@ namespace Donut
return true;
}
- bool VulkanRenderer::Impl::create_framebuffers()
+ auto VulkanRenderer::Impl::create_framebuffers() -> bool
{
framebuffers.resize(image_views.size());
for (size_t i = 0; i < image_views.size(); ++i)
@@ -368,7 +368,7 @@ namespace Donut
return true;
}
- bool VulkanRenderer::Impl::create_command_buffers()
+ auto VulkanRenderer::Impl::create_command_buffers() -> bool
{
VkCommandPoolCreateInfo pci{ VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO };
pci.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT;
@@ -384,7 +384,7 @@ namespace Donut
return true;
}
- bool VulkanRenderer::Impl::create_sync_objects()
+ auto VulkanRenderer::Impl::create_sync_objects() -> bool
{
image_available.resize(MAX_FRAMES_IN_FLIGHT);
in_flight.resize(MAX_FRAMES_IN_FLIGHT);
@@ -404,7 +404,7 @@ namespace Donut
return true;
}
- uint32_t VulkanRenderer::Impl::find_memory_type(uint32_t type_filter, VkMemoryPropertyFlags flags) const
+ auto VulkanRenderer::Impl::find_memory_type(uint32_t type_filter, VkMemoryPropertyFlags flags) const -> uint32_t
{
for (uint32_t i = 0; i < mem_props.memoryTypeCount; ++i)
if ((type_filter & (1u << i)) && (mem_props.memoryTypes[i].propertyFlags & flags) == flags)
@@ -412,8 +412,8 @@ namespace Donut
return UINT32_MAX;
}
- bool VulkanRenderer::Impl::create_buffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags props,
- VkBuffer& buf, VkDeviceMemory& mem) const
+ auto VulkanRenderer::Impl::create_buffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags props,
+ VkBuffer& buf, VkDeviceMemory& mem) const -> bool
{
VkBufferCreateInfo bci{ VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO };
bci.size = size; bci.usage = usage; bci.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
@@ -427,7 +427,7 @@ namespace Donut
return true;
}
- std::vector<uint32_t> VulkanRenderer::Impl::load_spirv(const std::string& path)
+ auto VulkanRenderer::Impl::load_spirv(const std::string& path) -> std::vector<uint32_t>
{
std::ifstream file(path, std::ios::ate | std::ios::binary);
if (!file.is_open()) return {};
@@ -438,7 +438,7 @@ namespace Donut
return data;
}
- bool VulkanRenderer::Impl::create_shader_module(const std::string& path, VkShaderModule& out) const
+ auto VulkanRenderer::Impl::create_shader_module(const std::string& path, VkShaderModule& out) const -> bool
{
auto spv = load_spirv(path);
if (spv.empty()) { DONUT_ERROR("Vulkan: failed to load SPIR-V {}", path); return false; }
@@ -447,7 +447,7 @@ namespace Donut
return vkCreateShaderModule(device, &ci, nullptr, &out) == VK_SUCCESS;
}
- bool VulkanRenderer::Impl::create_geodesic_resources()
+ auto VulkanRenderer::Impl::create_geodesic_resources() -> bool
{
const VkFormat fmt = VK_FORMAT_R8G8B8A8_UNORM;
const VkMemoryPropertyFlags host_vis = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
@@ -588,7 +588,7 @@ namespace Donut
return true;
}
- bool VulkanRenderer::Impl::create_hdri_cubemap(const char* path)
+ auto VulkanRenderer::Impl::create_hdri_cubemap(const char* path) -> bool
{
const VkMemoryPropertyFlags host_vis = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
const uint32_t FACE = 1024;
@@ -832,7 +832,7 @@ namespace Donut
return true;
}
- bool VulkanRenderer::Impl::create_present_resources()
+ auto VulkanRenderer::Impl::create_present_resources() -> bool
{
VkSamplerCreateInfo smci{ VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO };
smci.magFilter = VK_FILTER_LINEAR; smci.minFilter = VK_FILTER_LINEAR;
@@ -890,7 +890,7 @@ namespace Donut
return true;
}
- void VulkanRenderer::Impl::update_geodesic_uniforms()
+ auto VulkanRenderer::Impl::update_geodesic_uniforms() -> void
{
struct CamUBO {
glm::vec3 pos; float p0; glm::vec3 right; float p1;
@@ -920,7 +920,7 @@ namespace Donut
g_ScrollAccum += y;
}
- void VulkanRenderer::Impl::process_input()
+ auto VulkanRenderer::Impl::process_input() -> void
{
bool over_ui = imgui_init && ImGui::GetIO().WantCaptureMouse;
@@ -940,7 +940,7 @@ namespace Donut
camera.process_orbital_scroll(0.0, scroll);
}
- void VulkanRenderer::Impl::destroy_geodesic_resources()
+ auto VulkanRenderer::Impl::destroy_geodesic_resources() -> void
{
if (present_pipeline) vkDestroyPipeline(device, present_pipeline, nullptr);
if (present_pipeline_layout) vkDestroyPipelineLayout(device, present_pipeline_layout, nullptr);
@@ -970,7 +970,7 @@ namespace Donut
if (geo_image_mem) vkFreeMemory(device, geo_image_mem, nullptr);
}
- bool VulkanRenderer::Impl::record_command_buffer(VkCommandBuffer cmd, uint32_t image_index, const glm::vec4& clear, ImDrawData* draw_data)
+ auto VulkanRenderer::Impl::record_command_buffer(VkCommandBuffer cmd, uint32_t image_index, const glm::vec4& clear, ImDrawData* draw_data) -> bool
{
VkCommandBufferBeginInfo begin{ VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO };
VK_CHECK(vkBeginCommandBuffer(cmd, &begin));
@@ -1010,7 +1010,7 @@ namespace Donut
return true;
}
- void VulkanRenderer::Impl::cleanup_swapchain()
+ auto VulkanRenderer::Impl::cleanup_swapchain() -> void
{
for (auto fb : framebuffers) vkDestroyFramebuffer(device, fb, nullptr);
framebuffers.clear();
@@ -1020,7 +1020,7 @@ namespace Donut
if (swapchain) { vkDestroySwapchainKHR(device, swapchain, nullptr); swapchain = VK_NULL_HANDLE; }
}
- bool VulkanRenderer::Impl::recreate_swapchain()
+ auto VulkanRenderer::Impl::recreate_swapchain() -> bool
{
int w = 0, h = 0;
glfwGetFramebufferSize(window, &w, &h);
@@ -1044,7 +1044,7 @@ namespace Donut
VulkanRenderer::VulkanRenderer() { m_impl = new Impl(); }
VulkanRenderer::~VulkanRenderer() { shutdown(); delete m_impl; m_impl = nullptr; }
- bool VulkanRenderer::init(void* glfwWindow, int width, int height)
+ auto VulkanRenderer::init(void* glfwWindow, int width, int height) -> bool
{
Impl& v = *m_impl;
v.window = (GLFWwindow*)glfwWindow;
@@ -1066,7 +1066,7 @@ namespace Donut
return true;
}
- bool VulkanRenderer::init_im_gui()
+ auto VulkanRenderer::init_im_gui() -> bool
{
Impl& v = *m_impl;
if (v.device == VK_NULL_HANDLE) return false;
@@ -1110,13 +1110,13 @@ namespace Donut
return true;
}
- void VulkanRenderer::on_resize(int width, int height)
+ auto VulkanRenderer::on_resize(int width, int height) -> void
{
m_impl->framebuffer_resized = true;
m_impl->width = width; m_impl->height = height;
}
- void VulkanRenderer::draw_frame(const glm::vec4& clear_color, const std::function<void()>& build_ui)
+ auto VulkanRenderer::draw_frame(const glm::vec4& clear_color, const std::function<void()>& build_ui) -> void
{
Impl& v = *m_impl;
if (v.device == VK_NULL_HANDLE) return;
@@ -1183,7 +1183,7 @@ namespace Donut
v.current_frame = (v.current_frame + 1) % MAX_FRAMES_IN_FLIGHT;
}
- void VulkanRenderer::shutdown()
+ auto VulkanRenderer::shutdown() -> void
{
Impl& v = *m_impl;
if (v.device == VK_NULL_HANDLE) { if (v.instance && v.surface) { vkDestroySurfaceKHR(v.instance, v.surface, nullptr); v.surface = VK_NULL_HANDLE; } if (v.instance) { vkDestroyInstance(v.instance, nullptr); v.instance = VK_NULL_HANDLE; } return; }