mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d: Introduce vkd3d_application_info.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
committed by
Alexandre Julliard
parent
58e0a89d76
commit
08e2e583b5
@@ -18,6 +18,8 @@
|
||||
|
||||
#include "vkd3d_private.h"
|
||||
|
||||
#include <ctype.h>
|
||||
|
||||
#ifdef HAVE_DLFCN_H
|
||||
#include <dlfcn.h>
|
||||
|
||||
@@ -104,6 +106,25 @@ static void *vk_find_struct_(struct vk_struct *chain, VkStructureType sType)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static uint32_t vkd3d_get_vk_version(void)
|
||||
{
|
||||
const char *ptr = PACKAGE_VERSION;
|
||||
int major, minor;
|
||||
|
||||
major = atoi(ptr);
|
||||
|
||||
while (isdigit(*ptr))
|
||||
++ptr;
|
||||
if (*ptr == '.')
|
||||
++ptr;
|
||||
|
||||
minor = atoi(ptr);
|
||||
|
||||
TRACE("Version %d.%d.\n", major, minor);
|
||||
|
||||
return VK_MAKE_VERSION(major, minor, 0);
|
||||
}
|
||||
|
||||
struct vkd3d_optional_extension_info
|
||||
{
|
||||
const char *extension_name;
|
||||
@@ -459,6 +480,7 @@ static HRESULT vkd3d_instance_init(struct vkd3d_instance *instance,
|
||||
{
|
||||
const struct vkd3d_vk_global_procs *vk_global_procs = &instance->vk_global_procs;
|
||||
const struct vkd3d_optional_instance_extensions_info *optional_extensions;
|
||||
const struct vkd3d_application_info *vkd3d_application_info;
|
||||
bool *user_extension_supported = NULL;
|
||||
VkApplicationInfo application_info;
|
||||
VkInstanceCreateInfo instance_info;
|
||||
@@ -509,12 +531,23 @@ static HRESULT vkd3d_instance_init(struct vkd3d_instance *instance,
|
||||
|
||||
application_info.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
|
||||
application_info.pNext = NULL;
|
||||
application_info.pApplicationName = PACKAGE_NAME;
|
||||
application_info.pApplicationName = NULL;
|
||||
application_info.applicationVersion = 0;
|
||||
application_info.pEngineName = NULL;
|
||||
application_info.engineVersion = 0;
|
||||
application_info.pEngineName = PACKAGE_NAME;
|
||||
application_info.engineVersion = vkd3d_get_vk_version();
|
||||
application_info.apiVersion = VK_API_VERSION_1_0;
|
||||
|
||||
if ((vkd3d_application_info = vkd3d_find_struct(create_info->next, APPLICATION_INFO)))
|
||||
{
|
||||
application_info.pApplicationName = vkd3d_application_info->application_name;
|
||||
application_info.applicationVersion = vkd3d_application_info->application_version;
|
||||
if (vkd3d_application_info->engine_name)
|
||||
{
|
||||
application_info.pEngineName = vkd3d_application_info->engine_name;
|
||||
application_info.engineVersion = vkd3d_application_info->engine_version;
|
||||
}
|
||||
}
|
||||
|
||||
if (!(extensions = vkd3d_calloc(extension_count, sizeof(*extensions))))
|
||||
{
|
||||
if (instance->libvulkan)
|
||||
|
Reference in New Issue
Block a user