summaryrefslogtreecommitdiff
path: root/include/yasl/vulkan.h
blob: afa10898770965b8ab7b1507c0e8dd48a391d3a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/** @file Vulkan WSI only; application owns all Vulkan objects. */
#ifndef YASL_VULKAN_H
#define YASL_VULKAN_H
#include "yasl/yasl.h"
#include <vulkan/vulkan.h>
#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