In C++ I load extension functions like this:
VkResult (*vkCreateDebugUtilsMessengerEXT_NE)(
VkInstance, const VkDebugUtilsMessengerCreateInfoEXT*,
const VkAllocationCallbacks*, VkDebugUtilsMessengerEXT*);
VkResult vkCreateDebugUtilsMessengerEXT(VkInstance instance,
const VkDebugUtilsMessengerCreateInfoEXT* info,
const VkAllocationCallbacks* callbacks, VkDebugUtilsMessengerEXT* messenger)
{
return vkCreateDebugUtilsMessengerEXT_NE(instance, info, callbacks, messenger);
}
void LoadeFunctions()
{
vkCreateDebugUtilsMessengerEXT_NE = (PFN_vkCreateDebugUtilsMessengerEXT)
instance.getProcAddr(
"vkCreateDebugUtilsMessengerEXT");
Assert(vkCreateDebugUtilsMessengerEXT_NE,
"Failed to find extension function: vkCreateDebugUtilsMessengerEXT");
}
I am wondering how to accomplish the same in rust using the ash bindings.