= SDL_Vulkan_GetInstanceExtensions =
Get the names of the Vulkan instance extensions needed to create a surface with [[SDL_Vulkan_CreateSurface]].
== Syntax ==
SDL_bool SDL_Vulkan_GetInstanceExtensions(SDL_Window *window,
unsigned int *pCount,
const char **pNames);
== Function Parameters ==
{|
|'''window'''
|A window for which the required Vulkan instance extensions should be retrieved (will be deprecated in a future release)
|-
|'''pCount'''
|A pointer to an unsigned int corresponding to the number of extensions to be returned
|-
|'''pNames'''
|NULL or a pointer to an array to be filled with required Vulkan instance extensions
|}
== Return Value ==
Returns [[SDL_TRUE]] on success, [[SDL_FALSE]] on error.
== Remarks ==
If pNames
is NULL, then the number of required Vulkan instance
extensions is returned in pCount
. Otherwise,
pCount
must point to a variable set to the number of elements
in the pNames
array, and on return the variable is overwritten
with the number of names actually written to pNames
. If
pCount
is less than the number of required extensions, at most
pCount
structures will be written. If pCount
is
smaller than the number of required extensions, [[SDL_FALSE]] will be
returned instead of [[SDL_TRUE]], to indicate that not all the required
extensions were returned.
The window
parameter is currently needed to be valid as of SDL
2.0.8, however, this parameter will likely be removed in future releases
== Version ==
This function is available since SDL 2.0.6.
== Code Examples ==
// Note: This sample uses C++17 features/syntax.
// Get the required extension count
unsigned int count;
if (!SDL_Vulkan_GetInstanceExtensions(window, &count, nullptr)) handle_error();
std::vector extensions = {
VK_EXT_DEBUG_REPORT_EXTENSION_NAME // Sample additional extension
};
size_t additional_extension_count = extensions.size();
extensions.resize(additional_extension_count + count);
if (!SDL_Vulkan_GetInstanceExtensions(window, &count, extensions.data() + additional_extension_count)) handle_error();
// Now we can make the Vulkan instance
VkInstanceCreateInfo create_info = {};
create_info.enabledExtensionCount = static_cast(extensions.size());
create_info.ppEnabledExtensionNames = extensions.data();
VkInstance instance;
VkResult result = vkCreateInstance(&create_info, nullptr, &instance);
== Related Functions ==
:[[SDL_Vulkan_CreateSurface]]
----
[[CategoryAPI]], [[CategoryVulkan]]