SDL3pp
A slim C++ wrapper for SDL3
Loading...
Searching...
No Matches
SDL3pp_vulkan.h
1#ifndef SDL3PP_VULKAN_H_
2#define SDL3PP_VULKAN_H_
3
4#include <SDL3/SDL_vulkan.h>
5#include "SDL3pp.h"
6
7namespace SDL {
8
80{
81 CheckError(SDL_Vulkan_LoadLibrary(path));
82}
83
104{
105 return SDL_Vulkan_GetVkGetInstanceProcAddr();
106}
107
128inline void Vulkan_UnloadLibrary() { SDL_Vulkan_UnloadLibrary(); }
129
149inline std::span<char const* const> Vulkan_GetInstanceExtensions()
150{
151 Uint32 count;
152 auto data = CheckError(SDL_Vulkan_GetInstanceExtensions(&count));
153 return std::span<char const* const>(data, size_t(count));
154}
155
180 VkInstance instance,
181 const struct VkAllocationCallbacks* allocator,
182 VkSurfaceKHR* surface)
183{
184 CheckError(SDL_Vulkan_CreateSurface(window, instance, allocator, surface));
185}
186
210inline void Vulkan_DestroySurface(VkInstance instance,
211 VkSurfaceKHR surface,
212 const struct VkAllocationCallbacks* allocator)
213{
214 SDL_Vulkan_DestroySurface(instance, surface, allocator);
215}
216
234inline bool Vulkan_GetPresentationSupport(VkInstance instance,
235 VkPhysicalDevice physicalDevice,
236 Uint32 queueFamilyIndex)
237{
238 return SDL_Vulkan_GetPresentationSupport(
239 instance, physicalDevice, queueFamilyIndex);
240}
241
243
244} // namespace SDL
245
246#endif /* SDL3PP_VULKAN_H_ */
Helpers to use C++ strings parameters.
Definition: SDL3pp_strings.h:43
constexpr void CheckError(bool result)
Check and throw if returned value from SDL is an error.
Definition: SDL3pp_error.h:198
SDL_FunctionPointer FunctionPointer
A generic function pointer.
Definition: SDL3pp_stdinc.h:6203
Uint32 Uint32
An unsigned 32-bit integer type.
Definition: SDL3pp_stdinc.h:325
FunctionPointer Vulkan_GetVkGetInstanceProcAddr()
Get the address of the vkGetInstanceProcAddr function.
Definition: SDL3pp_vulkan.h:103
std::span< char const *const > Vulkan_GetInstanceExtensions()
Get the Vulkan instance extensions needed for vkCreateInstance.
Definition: SDL3pp_vulkan.h:149
void Vulkan_CreateSurface(WindowParam window, VkInstance instance, const struct VkAllocationCallbacks *allocator, VkSurfaceKHR *surface)
Create a Vulkan rendering surface for a window.
Definition: SDL3pp_vulkan.h:179
void Vulkan_UnloadLibrary()
Unload the Vulkan library previously loaded by Vulkan_LoadLibrary().
Definition: SDL3pp_vulkan.h:128
void Vulkan_LoadLibrary(StringParam path)
Dynamically load the Vulkan loader library.
Definition: SDL3pp_vulkan.h:79
bool Vulkan_GetPresentationSupport(VkInstance instance, VkPhysicalDevice physicalDevice, Uint32 queueFamilyIndex)
Query support for presentation via a given physical device and queue family.
Definition: SDL3pp_vulkan.h:234
void Vulkan_DestroySurface(VkInstance instance, VkSurfaceKHR surface, const struct VkAllocationCallbacks *allocator)
Destroy the Vulkan rendering surface of a window.
Definition: SDL3pp_vulkan.h:210
Main include header for the SDL3pp library.
Safely wrap Window for non owning parameters.
Definition: SDL3pp_video.h:54