Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion en/03_Drawing_a_triangle/00_Setup/00_Base_code.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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++]
----
Expand Down
59 changes: 30 additions & 29 deletions en/03_Drawing_a_triangle/00_Setup/02_Validation_layers.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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));
}

...
}
Expand Down Expand Up @@ -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));
}

...
}
Expand Down Expand Up @@ -388,19 +387,21 @@ void createInstance()

// Get the required layers
std::vector<char const*> 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.
Expand Down
Loading