summaryrefslogtreecommitdiff
path: root/deimos/vulkan/vulkan_loader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'deimos/vulkan/vulkan_loader.cpp')
-rw-r--r--deimos/vulkan/vulkan_loader.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/deimos/vulkan/vulkan_loader.cpp b/deimos/vulkan/vulkan_loader.cpp
index ddd5cf0..0760c67 100644
--- a/deimos/vulkan/vulkan_loader.cpp
+++ b/deimos/vulkan/vulkan_loader.cpp
@@ -31,16 +31,32 @@ public:
else
{
deimos_Panic("Couldn't load Vulkan DLL");
- return nullptr;
}
}
VulkanApi* api = m_allocator->New<VulkanApi>();
+
#define FN(NAME) api->NAME = (PFN_vk##NAME)os_api->dll->GetSymbol(m_vulkan_dll, "vk" #NAME);
+#include "deimos/vulkan/vulkan_bootstrap_functions.inc"
+#undef FN
+
+#define FN(NAME) api->NAME = (PFN_vk##NAME)api->GetInstanceProcAddr(VK_NULL_HANDLE, "vk" #NAME);
#include "deimos/vulkan/vulkan_entry_functions.inc"
#undef FN
+
return api;
}
+
+ void LoadInstance(VulkanApi* api, VkInstance instance) override
+ {
+ Expects(api != nullptr);
+ Expects(instance != VK_NULL_HANDLE);
+ Expects(api->GetInstanceProcAddr != nullptr);
+
+#define FN(NAME) api->NAME = (PFN_vk##NAME)api->GetInstanceProcAddr(instance, "vk" #NAME);
+#include "deimos/vulkan/vulkan_instance_functions.inc"
+#undef FN
+ }
};
void RegisterVulkanLoaderApi(ApiRegistry* registry)