Одним из способов получения функций, определенных в расширениях Vulkan, является использование: vkGetInstanceProcAddr
для запроса имени строки функции, которую мы ищем. Если все пойдет хорошо, мы получим указатель на функцию для правильного метода.
Я хочу знать, возможно ли связать файл напрямую, чтобы открыть расширение.
например, чтобы включить закомментированный вызов в этой функции:
VkResult CreateDebugUtilsMessengerEXT(VkInstance instance,
const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
const VkAllocationCallbacks* pAllocator,
VkDebugUtilsMessengerEXT* pDebugMessenger)
{
auto func = (PFN_vkCreateDebugUtilsMessengerEXT) vkGetInstanceProcAddr(instance,
"vkCreateDebugUtilsMessengerEXT");
if (func != nullptr)
{
return func(instance, pCreateInfo, pAllocator, pDebugMessenger); //comment
//return vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pDebugMessenger); //uncomment
}
else
{
return VK_ERROR_EXTENSION_NOT_PRESENT;
}
}