| 107 | namespace |
| 108 | { |
| 109 | inline bool enable_extension(std::string const &requested_extension, |
| 110 | std::vector<vk::ExtensionProperties> const &available_extensions, |
| 111 | std::vector<std::string> &enabled_extensions) |
| 112 | { |
| 113 | bool is_available = std::ranges::any_of( |
| 114 | available_extensions, [&requested_extension](auto const &available_extension) { return requested_extension == available_extension.extensionName; }); |
| 115 | if (is_available) |
| 116 | { |
| 117 | bool is_already_enabled = |
| 118 | std::ranges::any_of(enabled_extensions, [&requested_extension](auto const &enabled_extension) { return requested_extension == enabled_extension; }); |
| 119 | if (!is_already_enabled) |
| 120 | { |
| 121 | LOGI("Extension {} available, enabling it", requested_extension); |
| 122 | enabled_extensions.emplace_back(requested_extension); |
| 123 | } |
| 124 | } |
| 125 | else |
| 126 | { |
| 127 | LOGI("Extension {} not available", requested_extension); |
| 128 | } |
| 129 | |
| 130 | return is_available; |
| 131 | } |
| 132 | |
| 133 | inline bool |
| 134 | enable_layer(std::string const &requested_layer, std::vector<vk::LayerProperties> const &available_layers, std::vector<std::string> &enabled_layers) |