#include "vulkan_loader.h" #include #include #include #include gryphnInstanceFunctionLayers loadVulkanAPILayer(void) { return (gryphnInstanceFunctionLayers) { .createInstance = vulkanCreateInstance, .isSuitable = vulkanIsInstanceSuitable, .destroyInstance = vulkanDestroyInstance, .queryDevices = vulkanQueryDevices, .next = NULL }; } gnInstanceFunctions loadVulkanInstanceFunctions(void) { return (gnInstanceFunctions){ ._gnPhysicalDeviceCanPresentToSurface = deviceCanPresentToSurface, ._gnCreateOutputDevice = createVulkanOutputDevice, ._gnDestroyOutputDevice = destroyVulkanOutputDevice, #ifdef GN_PLATFORM_LINUX #ifdef GN_WINDOW_X11 ._gnCreateX11WindowSurface = createX11WindowSurface, #endif #ifdef GN_WINDOW_WAYLAND ._gnCreateWaylandWindowSurface, #endif #endif #ifdef GN_PLATFORM_WIN32 ._gnCreateWin32WindowSurface, #endif #ifdef GN_PLATFORM_MACOS ._gnCreateMacOSWindowSurface = createMacOSWindowSurface, #endif ._gnDestroyWindowSurface = destroyWindowSurface, ._gnGetSurfaceDetails = getSurfaceDetails }; }