diff options
author | luccie-cmd <luccie@sideros.org> | 2025-03-16 23:04:18 +0100 |
---|---|---|
committer | Lorenzo Torres <torres@sideros.org> | 2025-03-16 23:22:02 +0100 |
commit | 98063d241d0dbd569dbdc2ee16a03084e5439eae (patch) | |
tree | 76fefea582c369d43b1cd0ffc5c8e94eed28d6c9 /src/render/vulkan.zig | |
parent | 48796a0fa3c06143ba3d8c427f582cb7e78814a9 (diff) |
Add documentation for Instance.create()
Signed-off-by: luccie-cmd <luccie@sideros.org>
Diffstat (limited to 'src/render/vulkan.zig')
-rw-r--r-- | src/render/vulkan.zig | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/render/vulkan.zig b/src/render/vulkan.zig index 5b1498b..fde3e30 100644 --- a/src/render/vulkan.zig +++ b/src/render/vulkan.zig @@ -73,11 +73,14 @@ pub const Instance = struct { pub fn create(allocator: Allocator) !Instance { const extensions = window.getExtensions(); + // Querry avaliable extensions size var avaliableExtensionsCount: u32 = 0; _ = c.vkEnumerateInstanceExtensionProperties(null, &avaliableExtensionsCount, null); + // Actually querry avaliable extensions var availableExtensions = std.ArrayList(c.VkExtensionProperties).init(allocator); try availableExtensions.resize(avaliableExtensionsCount); _ = c.vkEnumerateInstanceExtensionProperties(null, &avaliableExtensionsCount, availableExtensions.items.ptr); + // Check the extensions we want against the extensions the user has for(extensions) |need_ext| { var found = false; for(availableExtensions.items) |useable_ext| { @@ -93,12 +96,16 @@ pub const Instance = struct { } availableExtensions.deinit(); + // Querry avaliable layers size var avaliableLayersCount: u32 = 0; _ = c.vkEnumerateInstanceLayerProperties(&avaliableLayersCount, null); + // Actually querry avaliable layers var availableLayers = std.ArrayList(c.VkLayerProperties).init(allocator); try availableLayers.resize(avaliableLayersCount); _ = c.vkEnumerateInstanceLayerProperties(&avaliableLayersCount, availableLayers.items.ptr); + // Every layer we do have we add to this list, if we don't have it no worries just print a message and continue var newLayers = std.ArrayList([*c]const u8).init(allocator); + // Loop over layers we want for(validation_layers) |want_layer| { var found = false; for(availableLayers.items) |useable_validation| { |