remove platformhandles struct

This commit is contained in:
Matthew 2025-10-26 13:10:51 +11:00
parent 441e6adc48
commit 644fbda520

View File

@ -55,12 +55,6 @@ version(linux)
"libvulkan.so.1", "libvulkan.so.1",
"libvulkan.so", "libvulkan.so",
]; ];
struct PlatformHandles
{
xcb_connection_t *conn;
xcb_window_t window;
}
} }
version(Windows) version(Windows)
@ -68,12 +62,6 @@ version(Windows)
const string[] VULKAN_LIBS = [ const string[] VULKAN_LIBS = [
"vulkan-1.dll", "vulkan-1.dll",
]; ];
struct PlatformHandles
{
HINSTANCE hinstance;
HWND hwnd;
}
} }
const char*[] VK_INSTANCE_LAYERS = []; const char*[] VK_INSTANCE_LAYERS = [];
@ -369,7 +357,6 @@ struct Vulkan
SLList!(SI) cleanup_list; SLList!(SI) cleanup_list;
PlatformHandles platform_handles;
u32 window_h, window_w; u32 window_h, window_w;
VkDebugUtilsMessengerEXT dbg_msg; VkDebugUtilsMessengerEXT dbg_msg;
@ -466,7 +453,7 @@ struct QueueInfo
u8[] CONVERT_SHADER_BYTES = cast(u8[])import("convert.comp.spv"); u8[] CONVERT_SHADER_BYTES = cast(u8[])import("convert.comp.spv");
Vulkan Vulkan
Init(PlatformHandles platform_handles, u64 permanent_mem, u64 frame_mem) Init(PlatformWindow* window, u64 permanent_mem, u64 frame_mem)
{ {
bool success = true; bool success = true;
@ -476,7 +463,6 @@ Init(PlatformHandles platform_handles, u64 permanent_mem, u64 frame_mem)
CreateArena(frame_mem), CreateArena(frame_mem),
CreateArena(frame_mem), CreateArena(frame_mem),
], ],
platform_handles: platform_handles,
}; };
Push(&vk, SI.Renderer); Push(&vk, SI.Renderer);
@ -491,7 +477,7 @@ Init(PlatformHandles platform_handles, u64 permanent_mem, u64 frame_mem)
EnableVLayers(&vk); EnableVLayers(&vk);
} }
if(success) success = InitSurface(&vk); if(success) success = InitSurface(&vk, window);
if(success) success = InitDevice(&vk); if(success) success = InitDevice(&vk);
if(success) success = InitVMA(&vk); if(success) success = InitVMA(&vk);
if(success) success = CreateSwapchain(&vk); if(success) success = CreateSwapchain(&vk);
@ -3340,16 +3326,16 @@ InitInstance(Vulkan* vk)
} }
bool bool
InitSurface(Vulkan* vk) InitSurface(Vulkan* vk, PlatformWindow* window)
{ {
Push(vk, SI.Surface); Push(vk, SI.Surface);
version(linux) version(linux)
{ {
VkXcbSurfaceCreateInfoKHR surface_info = { VkXcbSurfaceCreateInfoKHR surface_info = {
sType: VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR, sType: VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
connection: vk.platform_handles.conn, connection: window.conn,
window: vk.platform_handles.window, window: window.window,
}; };
VkResult result = vkCreateXcbSurfaceKHR(vk.instance, &surface_info, null, &vk.surface); VkResult result = vkCreateXcbSurfaceKHR(vk.instance, &surface_info, null, &vk.surface);
@ -3359,8 +3345,8 @@ version(Windows)
{ {
VkWin32SurfaceCreateInfoKHR surface_info = { VkWin32SurfaceCreateInfoKHR surface_info = {
sType: VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR, sType: VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,
hinstance: vk.platform_handles.instance, //hinstance: vk.platform_handles.instance,
hwnd: vk.platform_handles.handle, //hwnd: vk.platform_handles.handle,
}; };
VkResult result = vkCreateWin32SurfaceKHR(vk.instance, &surface_info, null, &vk.surface); VkResult result = vkCreateWin32SurfaceKHR(vk.instance, &surface_info, null, &vk.surface);