diff --git a/include/SFML/Window/Vulkan.h b/include/SFML/Window/Vulkan.h index c2d8041..4f894bd 100644 --- a/include/SFML/Window/Vulkan.h +++ b/include/SFML/Window/Vulkan.h @@ -26,6 +26,7 @@ // Headers //////////////////////////////////////////////////////////// #include +#include typedef struct VkInstance_T* VkInstance; @@ -76,7 +77,9 @@ CSFML_WINDOW_API sfVulkanFunctionPointer sfVulkan_getFunction(const char* name); //////////////////////////////////////////////////////////// /// \brief Get Vulkan instance extensions required for graphics /// +/// \param count Pointer to a variable that will be filled with the number of instance extensions in the array +/// /// \return Vulkan instance extensions required for graphics /// //////////////////////////////////////////////////////////// -CSFML_WINDOW_API const char* const* sfVulkan_getGraphicsRequiredInstanceExtensions(void); +CSFML_WINDOW_API const char* const* sfVulkan_getGraphicsRequiredInstanceExtensions(size_t* count); diff --git a/src/SFML/Window/Vulkan.cpp b/src/SFML/Window/Vulkan.cpp index 7b02b34..177a491 100644 --- a/src/SFML/Window/Vulkan.cpp +++ b/src/SFML/Window/Vulkan.cpp @@ -48,7 +48,12 @@ sfVulkanFunctionPointer sfVulkan_getFunction(const char* name) //////////////////////////////////////////////////////////// -const char* const* sfVulkan_getGraphicsRequiredInstanceExtensions() +const char* const* sfVulkan_getGraphicsRequiredInstanceExtensions(size_t* count) { - return &sf::Vulkan::getGraphicsRequiredInstanceExtensions()[0]; + static std::vector extensions = sf::Vulkan::getGraphicsRequiredInstanceExtensions(); + + if (count) + *count = extensions.size(); + + return !extensions.empty() ? &extensions[0] : NULL; }