From 093d424eb48b2fae917547b48deb2e0a45efbed3 Mon Sep 17 00:00:00 2001
From: Steven Le Rouzic <steven.lerouzic@gmail.com>
Date: Sat, 1 Feb 2025 00:05:19 +0100
Subject: Vulkan device creation

---
 hk21/vulkan_loader/loader.cpp | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

(limited to 'hk21/vulkan_loader/loader.cpp')

diff --git a/hk21/vulkan_loader/loader.cpp b/hk21/vulkan_loader/loader.cpp
index 2a58cd9..4b2b6d6 100644
--- a/hk21/vulkan_loader/loader.cpp
+++ b/hk21/vulkan_loader/loader.cpp
@@ -3,6 +3,7 @@
 #define FN(NAME) PFN_##NAME NAME;
 VULKAN_GLOBAL_FNS
 VULKAN_INSTANCE_FNS
+VULKAN_DEVICE_FNS
 #undef FN
 
 asl::status vulkan_loader::load_global(PFN_vkGetInstanceProcAddr load_fn)
@@ -43,3 +44,20 @@ VULKAN_INSTANCE_FNS
     return has_errors ? asl::runtime_error("Couldn't load Vulkan instance functions") : asl::ok();
 }
 
+asl::status vulkan_loader::load_device(VkDevice device)
+{
+    bool has_errors = false;
+    
+#define FN(NAME) \
+    NAME = asl::bit_cast<PFN_##NAME>(vkGetDeviceProcAddr(device, #NAME)); \
+    if (NAME == nullptr) \
+    { \
+        ASL_ASSERT(NAME != nullptr); \
+        has_errors = true; \
+    }
+VULKAN_DEVICE_FNS
+#undef FN
+
+    return has_errors ? asl::runtime_error("Couldn't load Vulkan device functions") : asl::ok();
+}
+
-- 
cgit