In the new Vulkan API, there is a struct which is needed to create a VkInstance
: VkApplicationInfo
. Here's the definition:
typedef struct VkApplicationInfo {
VkStructureType sType;
const void* pNext;
const char* pApplicationName;
uint32_t applicationVersion;
const char* pEngineName;
uint32_t engineVersion;
uint32_t apiVersion;
} VkApplicationInfo;
I see no use for having to pass in the application name, application version, engine name, or engine version. Maybe the implementation could use the pNext
member for whatever or maybe check if the implementation supports the apiVersion
specified. Outside of that though, I don't understand why the the other members are specified. The Vulkan specs say that you can even use NULL
instead of using an actual VkApplicationInfo
, which makes it even MORE useless. Can the info from this struct be retrieved later in the app by using (for example) a vkGetAppInfo(instance)
or such? Is there an evil master plan behind this struct? Or is just a bad design? Anyways, I'm curious at to why it exists and why I should use it.