diff --git a/src/Renderer.cpp b/src/Renderer.cpp index 9896107d41a0be9b08364f9b5be02a85d61c3aca..e1733018c683b43749aa397dfa853cf189e628e0 100644 --- a/src/Renderer.cpp +++ b/src/Renderer.cpp @@ -174,7 +174,7 @@ static auto create_render_pass(const vk::Format color_format, const vk::Device d .dstAccessMask = vk::AccessFlagBits::eColorAttachmentWrite, }; - const vk::RenderPassCreateInfo render_pass_create_info{ + const vk::RenderPassCreateInfo create_info{ .attachmentCount = static_cast<uint32_t>(attachment_descriptions.size()), .pAttachments = attachment_descriptions.data(), .subpassCount = 1, @@ -183,7 +183,7 @@ static auto create_render_pass(const vk::Format color_format, const vk::Device d .pDependencies = &subpass_dependency, }; - return device.createRenderPassUnique(render_pass_create_info); + return device.createRenderPassUnique(create_info); } Renderer::Renderer(const Window& window) diff --git a/src/Window.cpp b/src/Window.cpp index bab07e45437a9c754e06aee6957957ab679cc27e..bfa48decfe00af3bb01c3b68cf80ef96c5020ded 100644 --- a/src/Window.cpp +++ b/src/Window.cpp @@ -3,21 +3,35 @@ #include <format> #include <stdexcept> -[[nodiscard]] -static auto - create_window(const uint16_t width, const uint16_t height, const std::string& title) - -> GLFWwindow* +static void init_glfw() { - if (const auto error_code{ glfwInit() }; error_code != GLFW_TRUE) { - throw std::runtime_error{ - std::format("glfwInit failed with error code {}", error_code) - }; + if (const int success{ glfwInit() }; success != GLFW_TRUE) { + const char* description{}; + const int error_code{ glfwGetError(&description) }; + + if (description == nullptr) { + throw std::runtime_error{ + std::format("glfwInit failed with error code {}", error_code) + }; + } + throw std::runtime_error{ std::format( + "glfwInit failed with error code {} - '{}'", error_code, description + ) }; } - if (const auto result{ std::atexit(glfwTerminate) }; result != 0) { + + if (const int result{ std::atexit(glfwTerminate) }; result != 0) { throw std::runtime_error{ - std::format("std::atexit(glfwTerminate) failed with error code {}", result) + std::format("std::atexit failed with error code {}", result) }; } +} + +[[nodiscard]] +static auto + create_window(const uint16_t width, const uint16_t height, const std::string& title) + -> GLFWwindow* +{ + init_glfw(); glfwDefaultWindowHints(); glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); @@ -34,9 +48,7 @@ static auto auto Window::vulkan_instance_extensions() -> std::span<const char* const> { static const std::vector s_extension_names{ []() -> std::vector<const char*> { - if (glfwInit() != GLFW_TRUE) { - return {}; - } + init_glfw(); uint32_t count{}; const char** glfw_extension_names{ glfwGetRequiredInstanceExtensions(&count) };