diff --git a/attachments/00_base_code.cpp b/attachments/00_base_code.cpp index 62e62cad..36aa1bb7 100644 --- a/attachments/00_base_code.cpp +++ b/attachments/00_base_code.cpp @@ -48,9 +48,8 @@ class HelloTriangleApplication { }; int main() { - HelloTriangleApplication app{}; - try { + HelloTriangleApplication app; app.run(); } catch (const std::exception& e) { std::cerr << e.what() << std::endl; diff --git a/attachments/06_swap_chain_creation.cpp b/attachments/06_swap_chain_creation.cpp index fb6ff0d4..8883dfa2 100644 --- a/attachments/06_swap_chain_creation.cpp +++ b/attachments/06_swap_chain_creation.cpp @@ -295,7 +295,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/07_image_views.cpp b/attachments/07_image_views.cpp index 9189c850..1efb4e70 100644 --- a/attachments/07_image_views.cpp +++ b/attachments/07_image_views.cpp @@ -308,7 +308,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/08_graphics_pipeline.cpp b/attachments/08_graphics_pipeline.cpp index 2d4e8995..af9f2115 100644 --- a/attachments/08_graphics_pipeline.cpp +++ b/attachments/08_graphics_pipeline.cpp @@ -313,7 +313,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/09_shader_modules.cpp b/attachments/09_shader_modules.cpp index 97dd33fe..d53cd386 100644 --- a/attachments/09_shader_modules.cpp +++ b/attachments/09_shader_modules.cpp @@ -325,7 +325,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/10_fixed_functions.cpp b/attachments/10_fixed_functions.cpp index bec6cbc8..770a89a2 100644 --- a/attachments/10_fixed_functions.cpp +++ b/attachments/10_fixed_functions.cpp @@ -354,7 +354,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/12_graphics_pipeline_complete.cpp b/attachments/12_graphics_pipeline_complete.cpp index 7b581584..f1d52aca 100644 --- a/attachments/12_graphics_pipeline_complete.cpp +++ b/attachments/12_graphics_pipeline_complete.cpp @@ -365,7 +365,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/14_command_buffers.cpp b/attachments/14_command_buffers.cpp index caf23abe..bbb03030 100644 --- a/attachments/14_command_buffers.cpp +++ b/attachments/14_command_buffers.cpp @@ -462,7 +462,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/15_hello_triangle.cpp b/attachments/15_hello_triangle.cpp index 487022e7..1ed9e016 100644 --- a/attachments/15_hello_triangle.cpp +++ b/attachments/15_hello_triangle.cpp @@ -505,7 +505,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/16_frames_in_flight.cpp b/attachments/16_frames_in_flight.cpp index 7da930c4..74fdfa31 100644 --- a/attachments/16_frames_in_flight.cpp +++ b/attachments/16_frames_in_flight.cpp @@ -521,7 +521,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/17_swap_chain_recreation.cpp b/attachments/17_swap_chain_recreation.cpp index 66913ac8..4173328d 100644 --- a/attachments/17_swap_chain_recreation.cpp +++ b/attachments/17_swap_chain_recreation.cpp @@ -556,7 +556,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/18_vertex_input.cpp b/attachments/18_vertex_input.cpp index e35067f9..d98ec2d0 100644 --- a/attachments/18_vertex_input.cpp +++ b/attachments/18_vertex_input.cpp @@ -583,7 +583,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/19_vertex_buffer.cpp b/attachments/19_vertex_buffer.cpp index ef7d4cd8..4db14738 100644 --- a/attachments/19_vertex_buffer.cpp +++ b/attachments/19_vertex_buffer.cpp @@ -613,7 +613,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/20_staging_buffer.cpp b/attachments/20_staging_buffer.cpp index 1361bfbe..18424153 100644 --- a/attachments/20_staging_buffer.cpp +++ b/attachments/20_staging_buffer.cpp @@ -632,7 +632,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/21_index_buffer.cpp b/attachments/21_index_buffer.cpp index 3fb574b0..b1e2eee1 100644 --- a/attachments/21_index_buffer.cpp +++ b/attachments/21_index_buffer.cpp @@ -658,7 +658,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/22_descriptor_layout.cpp b/attachments/22_descriptor_layout.cpp index dfef6e4e..6c2a0bae 100644 --- a/attachments/22_descriptor_layout.cpp +++ b/attachments/22_descriptor_layout.cpp @@ -712,7 +712,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/23_descriptor_sets.cpp b/attachments/23_descriptor_sets.cpp index a2879e22..5ed74fe4 100644 --- a/attachments/23_descriptor_sets.cpp +++ b/attachments/23_descriptor_sets.cpp @@ -737,7 +737,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/24_texture_image.cpp b/attachments/24_texture_image.cpp index f41383e0..4b3a9da9 100644 --- a/attachments/24_texture_image.cpp +++ b/attachments/24_texture_image.cpp @@ -841,7 +841,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/25_sampler.cpp b/attachments/25_sampler.cpp index 3c6583f3..8b2941a8 100644 --- a/attachments/25_sampler.cpp +++ b/attachments/25_sampler.cpp @@ -875,7 +875,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return ( availableFormats[0].format == vk::Format::eUndefined ) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/26_texture_mapping.cpp b/attachments/26_texture_mapping.cpp index 824576a2..d181a1c4 100644 --- a/attachments/26_texture_mapping.cpp +++ b/attachments/26_texture_mapping.cpp @@ -952,7 +952,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return (availableFormats[0].format == vk::Format::eUndefined) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/27_depth_buffering.cpp b/attachments/27_depth_buffering.cpp index 8c0a9e14..d8468394 100644 --- a/attachments/27_depth_buffering.cpp +++ b/attachments/27_depth_buffering.cpp @@ -1037,7 +1037,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return (availableFormats[0].format == vk::Format::eUndefined) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/28_model_loading.cpp b/attachments/28_model_loading.cpp index 509430f7..fedd1601 100644 --- a/attachments/28_model_loading.cpp +++ b/attachments/28_model_loading.cpp @@ -1082,7 +1082,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return (availableFormats[0].format == vk::Format::eUndefined) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/29_mipmapping.cpp b/attachments/29_mipmapping.cpp index 1c487b8b..943c346a 100644 --- a/attachments/29_mipmapping.cpp +++ b/attachments/29_mipmapping.cpp @@ -1148,7 +1148,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return (availableFormats[0].format == vk::Format::eUndefined) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) { diff --git a/attachments/30_multisampling.cpp b/attachments/30_multisampling.cpp index 450406aa..a5d31afc 100644 --- a/attachments/30_multisampling.cpp +++ b/attachments/30_multisampling.cpp @@ -1177,7 +1177,12 @@ class HelloTriangleApplication { } static vk::Format chooseSwapSurfaceFormat(const std::vector& availableFormats) { - return (availableFormats[0].format == vk::Format::eUndefined) ? vk::Format::eB8G8R8A8Unorm : availableFormats[0].format; + const auto formatIt = std::ranges::find_if(availableFormats, + [](const auto& format) { + return format.format == vk::Format::eB8G8R8A8Srgb && + format.colorSpace == vk::ColorSpaceKHR::eSrgbNonlinear; + }); + return formatIt != availableFormats.end() ? formatIt->format : availableFormats[0].format; } static vk::PresentModeKHR chooseSwapPresentMode(const std::vector& availablePresentModes) {