From 639de20a5b78c8c70f3d7dcc02e62b13f6e749f0 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Wed, 22 Jan 2025 23:43:09 +0100 Subject: Create Vulkan instance --- hk21/vulkan_loader/loader.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'hk21/vulkan_loader/loader.cpp') diff --git a/hk21/vulkan_loader/loader.cpp b/hk21/vulkan_loader/loader.cpp index 4437282..c805fb1 100644 --- a/hk21/vulkan_loader/loader.cpp +++ b/hk21/vulkan_loader/loader.cpp @@ -2,6 +2,7 @@ #define FN(NAME) PFN_##NAME NAME; VULKAN_GLOBAL_FNS +VULKAN_INSTANCE_FNS #undef FN asl::status vulkan_loader::load_global(PFN_vkGetInstanceProcAddr load_fn) @@ -23,3 +24,22 @@ VULKAN_GLOBAL_FNS return has_errors ? asl::runtime_error() : asl::ok(); } +asl::status vulkan_loader::load_instance(PFN_vkGetInstanceProcAddr load_fn, VkInstance instance) +{ + (void)load_fn; + + bool has_errors = false; + +#define FN(NAME) \ + NAME = asl::bit_cast(load_fn(instance, #NAME)); \ + if (NAME == nullptr) \ + { \ + ASL_ASSERT(NAME != nullptr); \ + has_errors = true; \ + } +VULKAN_INSTANCE_FNS +#undef FN + + return has_errors ? asl::runtime_error() : asl::ok(); +} + -- cgit