在新的Vulkan API中,需要一个结构体来创建
VkInstance
: VkApplicationInfo
。以下是定义:typedef struct VkApplicationInfo {
VkStructureType sType;
const void* pNext;
const char* pApplicationName;
uint32_t applicationVersion;
const char* pEngineName;
uint32_t engineVersion;
uint32_t apiVersion;
} VkApplicationInfo;
我认为没有必要传递应用程序名称、应用程序版本、引擎名称或引擎版本。也许实现可以使用 pNext
成员做一些事情,或者检查实现是否支持指定的 apiVersion
。除此之外,我不理解为什么要指定其他成员。Vulkan 规范说,你甚至可以使用 NULL
而不是使用实际的 VkApplicationInfo
,这使其变得更加无用。这个结构体的信息是否可以在应用程序中稍后通过使用(例如)vkGetAppInfo(instance)
或类似方法来获取?这个结构体背后有一个邪恶的主计划吗?还是只是一个糟糕的设计?无论如何,我很想知道它存在的原因以及为什么我应该使用它。
pEngineName
是用来干什么的。它应该是字符串"Godot"、"Unity"或类似的东西吗? - undefined