我管理的VkInstance
是由其他库创建的(并且仍然归其他库所有)。我需要知道为用于创建VkInstance
的VkInstanceCreateInfo
提供了哪些示例扩展名。因为我没有创建VkInstance
,所以我无法直接访问VkInstanceCreateInfo::ppEnabledExtensionNames
字段。
给定一个特定的VkInstance
句柄,我怎样才能知道为创建它的vkCreateInstance
调用提供了什么扩展名?
请注意,这个问题 * 不是 * 关于当前Vulkan实现上 * 可用 * 的示例扩展;我想知道一个特定的VkInstance
是用什么 * 创建 * 的。
1条答案
按热度按时间nxowjjhe1#
一般来说,如果应用程序向Vulkan提供数据来执行某项操作,Vulkan不会为应用程序提供要求返回某些数据的方法。假设应用程序向Vulkan提供数据,并且这些数据对应用程序很重要,则应用程序应该自行“存储"这些数据。
在您的例子中,“应用程序”分为两个部分。一个部分创建某个Vulkan对象。另一个部分希望与该对象交互,但除了接收Vulkan对象之外,无法与第一个部分交互。从Vulkan的Angular 来看,这是“应用程序”的问题,而不是Vulkan的问题。
所以,它没有提供任何机制来帮助你。
这就是为什么当GLFW添加Vulkan支持时,他们没有让GLFW创建Vulkan示例,而是告诉 * 您 * GLFW需要您在创建 * 您的 * 示例时请求哪些扩展和特性。
所以这才是正确的处理方法:每个有兴趣与Vulkan示例交互的人 * 也 * 需要在其创建过程中拥有发言权。如果另一个库指派您管理示例,而没有告诉您任何有关其创建方式的信息,则该库与您的代码之间存在通信问题。