在新的 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
.,这使得它更加无用。以后可以通过使用(例如)avkGetAppInfo(instance)
等在应用程序中检索此结构中的信息吗?这个结构背后有一个邪恶的总体计划吗?或者只是一个糟糕的设计?无论如何,我很好奇它为什么存在以及为什么我应该使用它。