/** @file Vulkan WSI only; application owns all Vulkan objects. */ #ifndef YASL_VULKAN_H #define YASL_VULKAN_H #include "yasl/yasl.h" #include #ifdef __cplusplus extern "C" { #endif YASL_API bool yasl_vulkan_init(PFN_vkGetInstanceProcAddr loader); /** Borrowed list through shutdown; merge with app extensions before instance creation. */ YASL_API const char *const *yasl_vulkan_instance_extensions(const yasl_surface *surface, uint32_t *count); YASL_API VkInstanceCreateFlags yasl_vulkan_instance_flags(const yasl_surface *surface); /** Uses injected loader; destroy returned VkSurfaceKHR before YASL surface. */ YASL_API VkResult yasl_vulkan_create_surface(yasl_surface *surface, VkInstance instance, const VkAllocationCallbacks *allocator, VkSurfaceKHR *out); #ifdef __cplusplus } #endif #endif