MCPcopy Create free account
hub / github.com/danoon2/Boxedwine / BOXED_vkCreateXlibSurfaceKHR

Function BOXED_vkCreateXlibSurfaceKHR

source/vulkan/vulkancommon.cpp:225–246  ·  view source on GitHub ↗

VkResult vkCreateXlibSurfaceKHR( VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const

Source from the content-addressed store, hash-verified

223
224// VkResult vkCreateXlibSurfaceKHR( VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
225static void BOXED_vkCreateXlibSurfaceKHR(CPU* cpu) {
226 //VkInstance instance,
227 //const VkWin32SurfaceCreateInfoKHR* create_info,
228 //const VkAllocationCallbacks* allocator,
229 // VkSurfaceKHR* surface
230
231 KVulkanPtr vulkanWnd = KNativeSystem::getVulkan();
232
233 void* instance = getVulkanPtr(cpu->memory, cpu->peek32(1));
234 // window is the 5th 32-bit variable in VkXlibSurfaceCreateInfoKHR
235 U32 windowId = cpu->memory->readd(ARG2 + 4 * sizeof(U32));
236 XWindowPtr xWindow = XServer::getServer()->getWindow(windowId);
237 void* surface = vulkanWnd->createVulkanSurface(xWindow, instance);
238 if (!surface) {
239 EAX = VK_ERROR_OUT_OF_HOST_MEMORY;
240 } else {
241 EAX = VK_SUCCESS;
242 // VK_DEFINE_NON_DISPATCHABLE_HANDLE (always 64 bit)
243 cpu->memory->writeq(cpu->peek32(4), (U64)surface);
244 XServer::getServer()->setFakeFullScreenWindow(xWindow);
245 }
246}
247
248#include "vk_host_marshal.h"
249

Callers

nothing calls this directly

Calls 7

getVulkanPtrFunction · 0.85
getWindowMethod · 0.80
createVulkanSurfaceMethod · 0.80
writeqMethod · 0.80
peek32Method · 0.45
readdMethod · 0.45

Tested by

no test coverage detected