summaryrefslogtreecommitdiff
path: root/hk21/vulkan_loader/loader.cpp
diff options
context:
space:
mode:
authorSteven Le Rouzic <steven.lerouzic@gmail.com>2025-01-21 21:49:20 +0100
committerSteven Le Rouzic <steven.lerouzic@gmail.com>2025-01-21 21:49:20 +0100
commitedb38589b1fe8b806d28264393ee172d03b6c75c (patch)
tree3053201fb65d968c11d95643cfe0dcde53c74540 /hk21/vulkan_loader/loader.cpp
parenta106e1cf85cbc934dc7628cd3328a8195404ce8b (diff)
Add vulkan_loader
Diffstat (limited to 'hk21/vulkan_loader/loader.cpp')
-rw-r--r--hk21/vulkan_loader/loader.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/hk21/vulkan_loader/loader.cpp b/hk21/vulkan_loader/loader.cpp
new file mode 100644
index 0000000..4437282
--- /dev/null
+++ b/hk21/vulkan_loader/loader.cpp
@@ -0,0 +1,25 @@
+#include "hk21/vulkan_loader/api.hpp"
+
+#define FN(NAME) PFN_##NAME NAME;
+VULKAN_GLOBAL_FNS
+#undef FN
+
+asl::status vulkan_loader::load_global(PFN_vkGetInstanceProcAddr load_fn)
+{
+ (void)load_fn;
+
+ bool has_errors = false;
+
+#define FN(NAME) \
+ NAME = asl::bit_cast<PFN_##NAME>(load_fn(VK_NULL_HANDLE, #NAME)); \
+ if (NAME == nullptr) \
+ { \
+ ASL_ASSERT(NAME != nullptr); \
+ has_errors = true; \
+ }
+VULKAN_GLOBAL_FNS
+#undef FN
+
+ return has_errors ? asl::runtime_error() : asl::ok();
+}
+