From 1f4500c31d2b862453cde82c7caa5c1f8b352207 Mon Sep 17 00:00:00 2001 From: Samuel Date: Tue, 23 Jun 2026 17:12:34 -0700 Subject: [PATCH] 00_Base: Added code snippet for private class member to tutorial. 02_Validation_Layers: Updated the complete createInstance to reflect online code. --- .../00_Setup/00_Base_code.adoc | 10 +++- .../00_Setup/02_Validation_layers.adoc | 59 ++++++++++--------- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/en/03_Drawing_a_triangle/00_Setup/00_Base_code.adoc b/en/03_Drawing_a_triangle/00_Setup/00_Base_code.adoc index 4d05d28c..eeaf0702 100644 --- a/en/03_Drawing_a_triangle/00_Setup/00_Base_code.adoc +++ b/en/03_Drawing_a_triangle/00_Setup/00_Base_code.adoc @@ -227,7 +227,15 @@ glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE); ---- All that's left now is creating the actual window. Add a `GLFWwindow* window;` -private class member to store a reference to it and initialize the window with: +private class member to store a reference to it: + +[,c++] +---- +private: + GLFWwindow *window = nullptr; +---- + +and initialize the window with: [,c++] ---- diff --git a/en/03_Drawing_a_triangle/00_Setup/02_Validation_layers.adoc b/en/03_Drawing_a_triangle/00_Setup/02_Validation_layers.adoc index 8e873d4a..6ec36fca 100644 --- a/en/03_Drawing_a_triangle/00_Setup/02_Validation_layers.adoc +++ b/en/03_Drawing_a_triangle/00_Setup/02_Validation_layers.adoc @@ -120,15 +120,15 @@ void createInstance() // Check if the required layers are supported by the Vulkan implementation. auto layerProperties = context.enumerateInstanceLayerProperties(); - auto unsupportedLayerIt = std::ranges::find_if(requiredLayers, + auto unsupportedLayerIt = std::ranges::find_if(requiredLayers, [&layerProperties](auto const &requiredLayer) { return std::ranges::none_of(layerProperties, - [requiredLayer](auto const &layerProperty) { return strcmp(layerProperty.layerName, requiredLayer) == 0; }); + [requiredLayer](auto const &layerProperty) { return strcmp(layerProperty.layerName, requiredLayer) == 0; }); }); - if (unsupportedLayerIt != requiredLayers.end()) - { - throw std::runtime_error("Required layer not supported: " + std::string(*unsupportedLayerIt)); - } + if (unsupportedLayerIt != requiredLayers.end()) + { + throw std::runtime_error("Required layer not supported: " + std::string(*unsupportedLayerIt)); + } ... } @@ -170,21 +170,20 @@ void createInstance() { ... - // Get the required extensions. - auto requiredExtensions = getRequiredInstanceExtensions(); + // Get the required extensions. + auto requiredExtensions = getRequiredInstanceExtensions(); - // Check if the required extensions are supported by the Vulkan implementation. - auto extensionProperties = context.enumerateInstanceExtensionProperties(); - auto unsupportedPropertyIt = - std::ranges::find_if(requiredExtensions, - [&extensionProperties](auto const &requiredExtension) { - return std::ranges::none_of(extensionProperties, - [requiredExtension](auto const &extensionProperty) { return strcmp(extensionProperty.extensionName, requiredExtension) == 0; }); - }); - if (unsupportedPropertyIt != requiredExtensions.end()) - { - throw std::runtime_error("Required extension not supported: " + std::string(*unsupportedPropertyIt)); - } + // Check if the required extensions are supported by the Vulkan implementation. + auto extensionProperties = context.enumerateInstanceExtensionProperties(); + auto unsupportedLayerIt = std::ranges::find_if(requiredLayers, + [&layerProperties](auto const &requiredLayer) { + return std::ranges::none_of(layerProperties, + [requiredLayer](auto const &layerProperty) { return strcmp(layerProperty.layerName, requiredLayer) == 0; }); + }); + if (unsupportedPropertyIt != requiredExtensions.end()) + { + throw std::runtime_error("Required extension not supported: " + std::string(*unsupportedPropertyIt)); + } ... } @@ -388,19 +387,21 @@ void createInstance() // Get the required layers std::vector requiredLayers; - if (enableValidationLayers) { - requiredLayers.assign(validationLayers.begin(), validationLayers.end()); - } + if (enableValidationLayers) + { + requiredLayers.assign(validationLayers.begin(), validationLayers.end()); + } // Check if the required layers are supported by the Vulkan implementation. auto layerProperties = context.enumerateInstanceLayerProperties(); - if (std::ranges::any_of(requiredLayers, [&layerProperties](auto const& requiredLayer) { - return std::ranges::none_of(layerProperties, - [requiredLayer](auto const& layerProperty) - { return strcmp(layerProperty.layerName, requiredLayer) == 0; }); - })) + auto unsupportedLayerIt = std::ranges::find_if(requiredLayers, + [&layerProperties](auto const &requiredLayer) { + return std::ranges::none_of(layerProperties, + [requiredLayer](auto const &layerProperty) { return strcmp(layerProperty.layerName, requiredLayer) == 0; }); + }); + if (unsupportedLayerIt != requiredLayers.end()) { - throw std::runtime_error("One or more required layers are not supported!"); + throw std::runtime_error("Required layer not supported: " + std::string(*unsupportedLayerIt)); } // Get the required extensions.