diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-12-31 18:46:27 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-12-31 18:46:27 +0100 |
| commit | 919f8faeee3890c0a580a07a279c7dec538d0017 (patch) | |
| tree | 55c441dcfd97675cebd2e17b7b49f7326cc7b5cc /src/wrapped/wrappedvulkan.c | |
| parent | b0db8e1ae0db4379b8e177430c2564a26d9331f5 (diff) | |
| download | box64-919f8faeee3890c0a580a07a279c7dec538d0017.tar.gz box64-919f8faeee3890c0a580a07a279c7dec538d0017.zip | |
More xcb_connection_t wrapping for vulkan
Diffstat (limited to 'src/wrapped/wrappedvulkan.c')
| -rw-r--r-- | src/wrapped/wrappedvulkan.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/wrapped/wrappedvulkan.c b/src/wrapped/wrappedvulkan.c index 02a729b1..3c8e7b46 100644 --- a/src/wrapped/wrappedvulkan.c +++ b/src/wrapped/wrappedvulkan.c @@ -15,6 +15,7 @@ #include "box64context.h" #include "librarian.h" #include "callback.h" +#include "myalign.h" //extern char* libvulkan; @@ -225,6 +226,14 @@ typedef struct my_VkDebugReportCallbackCreateInfoEXT_s { void* pUserData; } my_VkDebugReportCallbackCreateInfoEXT_t; +typedef struct my_VkXcbSurfaceCreateInfoKHR_s { + int sType; + const void* pNext; + uint32_t flags; + void** connection; + int window; +} my_VkXcbSurfaceCreateInfoKHR_t; + typedef struct my_VkStruct_s { int sType; struct my_VkStruct_s* pNext; @@ -582,7 +591,16 @@ EXPORT int my_vkCreateSharedSwapchainsKHR(x64emu_t* emu, void* device, uint32_t CREATE(vkCreateSwapchainKHR) CREATE(vkCreateWaylandSurfaceKHR) -CREATE(vkCreateXcbSurfaceKHR) +EXPORT int my_vkCreateXcbSurfaceKHR(x64emu_t* emu, void* instance, void* info, my_VkAllocationCallbacks_t* pAllocator, void* pFence) +{ + my_VkAllocationCallbacks_t my_alloc; + my_VkXcbSurfaceCreateInfoKHR_t* surfaceinfo = info; + void* old_conn = surfaceinfo->connection; + surfaceinfo->connection = align_xcb_connection(old_conn); + int ret = my->vkCreateXcbSurfaceKHR(instance, info, find_VkAllocationCallbacks(&my_alloc, pAllocator), pFence); + surfaceinfo->connection = old_conn; + return ret; +} CREATE(vkCreateXlibSurfaceKHR) CREATE(vkCreateRenderPass2) CREATE(vkCreateRenderPass2KHR) |