Module: wine
Branch: master
Commit: 982c2ede7a8e1bda5f10d5a662448948b04efbb8
URL:
https://gitlab.winehq.org/wine/wine/-/commit/982c2ede7a8e1bda5f10d5a6624489…
Author: Rémi Bernon <rbernon(a)codeweavers.com>
Date: Sat Nov 25 01:44:49 2023 +0100
winevulkan: Keep the create_info HWND on the surface wrappers.
---
dlls/winevulkan/vulkan.c | 16 ++++++----------
dlls/winevulkan/vulkan_private.h | 3 ++-
2 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c
index c999363e268..95bce62cc8d 100644
--- a/dlls/winevulkan/vulkan.c
+++ b/dlls/winevulkan/vulkan.c
@@ -1450,24 +1450,20 @@ void
wine_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice phy
properties->externalSemaphoreFeatures = 0;
}
-VkResult wine_vkCreateWin32SurfaceKHR(VkInstance handle, const
VkWin32SurfaceCreateInfoKHR *createInfo,
+VkResult wine_vkCreateWin32SurfaceKHR(VkInstance handle, const
VkWin32SurfaceCreateInfoKHR *create_info,
const VkAllocationCallbacks *allocator,
VkSurfaceKHR *surface)
{
struct wine_instance *instance = wine_instance_from_handle(handle);
struct wine_surface *object;
VkResult res;
- if (allocator)
- FIXME("Support for allocation callbacks not implemented yet\n");
-
- object = calloc(1, sizeof(*object));
-
- if (!object)
- return VK_ERROR_OUT_OF_HOST_MEMORY;
+ if (allocator) FIXME("Support for allocation callbacks not implemented
yet\n");
- res = instance->funcs.p_vkCreateWin32SurfaceKHR(instance->host_instance,
createInfo, NULL,
- &object->driver_surface);
+ if (!(object = calloc(1, sizeof(*object)))) return VK_ERROR_OUT_OF_HOST_MEMORY;
+ object->hwnd = create_info->hwnd;
+ res = instance->funcs.p_vkCreateWin32SurfaceKHR(instance->host_instance,
create_info,
+ NULL /* allocator */,
&object->driver_surface);
if (res != VK_SUCCESS)
{
free(object);
diff --git a/dlls/winevulkan/vulkan_private.h b/dlls/winevulkan/vulkan_private.h
index 12664d361c0..6b01e99262e 100644
--- a/dlls/winevulkan/vulkan_private.h
+++ b/dlls/winevulkan/vulkan_private.h
@@ -222,7 +222,8 @@ static inline VkDebugReportCallbackEXT
wine_debug_report_callback_to_handle(
struct wine_surface
{
VkSurfaceKHR host_surface;
- VkSurfaceKHR driver_surface; /* wine driver surface */
+ VkSurfaceKHR driver_surface;
+ HWND hwnd;
struct wine_vk_mapping mapping;
};