From 6021713286482893ca0614c894419290c6f425d4 Mon Sep 17 00:00:00 2001 From: Matthew Date: Sun, 26 Oct 2025 13:14:52 +1100 Subject: [PATCH] undo last commit --- vulkan.d | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/vulkan.d b/vulkan.d index a3c8662..9dae56c 100644 --- a/vulkan.d +++ b/vulkan.d @@ -55,6 +55,12 @@ version(linux) "libvulkan.so.1", "libvulkan.so", ]; + + struct PlatformHandles + { + xcb_connection_t *conn; + xcb_window_t window; + } } version(Windows) @@ -62,6 +68,12 @@ version(Windows) const string[] VULKAN_LIBS = [ "vulkan-1.dll", ]; + + struct PlatformHandles + { + HINSTANCE hinstance; + HWND hwnd; + } } const char*[] VK_INSTANCE_LAYERS = []; @@ -357,6 +369,7 @@ struct Vulkan SLList!(SI) cleanup_list; + PlatformHandles platform_handles; u32 window_h, window_w; VkDebugUtilsMessengerEXT dbg_msg; @@ -453,7 +466,7 @@ struct QueueInfo u8[] CONVERT_SHADER_BYTES = cast(u8[])import("convert.comp.spv"); Vulkan -Init(PlatformWindow* window, u64 permanent_mem, u64 frame_mem) +Init(PlatformHandles platform_handles, u64 permanent_mem, u64 frame_mem) { bool success = true; @@ -463,6 +476,7 @@ Init(PlatformWindow* window, u64 permanent_mem, u64 frame_mem) CreateArena(frame_mem), CreateArena(frame_mem), ], + platform_handles: platform_handles, }; Push(&vk, SI.Renderer); @@ -477,7 +491,7 @@ Init(PlatformWindow* window, u64 permanent_mem, u64 frame_mem) EnableVLayers(&vk); } - if(success) success = InitSurface(&vk, window); + if(success) success = InitSurface(&vk); if(success) success = InitDevice(&vk); if(success) success = InitVMA(&vk); if(success) success = CreateSwapchain(&vk); @@ -3326,16 +3340,16 @@ InitInstance(Vulkan* vk) } bool -InitSurface(Vulkan* vk, PlatformWindow* window) +InitSurface(Vulkan* vk) { Push(vk, SI.Surface); version(linux) { VkXcbSurfaceCreateInfoKHR surface_info = { - sType: VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR, - connection: window.conn, - window: window.window, + sType: VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR, + connection: vk.platform_handles.conn, + window: vk.platform_handles.window, }; VkResult result = vkCreateXcbSurfaceKHR(vk.instance, &surface_info, null, &vk.surface); @@ -3345,8 +3359,8 @@ version(Windows) { VkWin32SurfaceCreateInfoKHR surface_info = { sType: VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR, - //hinstance: vk.platform_handles.instance, - //hwnd: vk.platform_handles.handle, + hinstance: vk.platform_handles.instance, + hwnd: vk.platform_handles.handle, }; VkResult result = vkCreateWin32SurfaceKHR(vk.instance, &surface_info, null, &vk.surface);