Fixed Android build with Vulkan support

Sam Lantinga 2017-08-27 23:53:09 -07:00
parent 0cebef607b
commit 5cd1a95910
2 changed files with 16 additions and 3 deletions

View File

@ -25,11 +25,19 @@
#include "SDL_stdinc.h" #include "SDL_stdinc.h"
#if defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
/* Vulkan isn't supported for the 'armeabi' NDK ABI, error in vk_platform.h */
#undef SDL_VIDEO_VULKAN_SURFACE
#define SDL_VIDEO_VULKAN_SURFACE 0
#endif
#if defined(SDL_LOADSO_DISABLED) #if defined(SDL_LOADSO_DISABLED)
#undef SDL_VIDEO_VULKAN_SURFACE #undef SDL_VIDEO_VULKAN_SURFACE
#define SDL_VIDEO_VULKAN_SURFACE 0 #define SDL_VIDEO_VULKAN_SURFACE 0
#endif #endif
#if SDL_VIDEO_VULKAN_SURFACE
#if SDL_VIDEO_DRIVER_ANDROID #if SDL_VIDEO_DRIVER_ANDROID
#define VK_USE_PLATFORM_ANDROID_KHR #define VK_USE_PLATFORM_ANDROID_KHR
#endif #endif
@ -58,7 +66,6 @@
#include "SDL_vulkan.h" #include "SDL_vulkan.h"
#if SDL_VIDEO_VULKAN_SURFACE
extern const char *SDL_Vulkan_GetResultString(VkResult result); extern const char *SDL_Vulkan_GetResultString(VkResult result);
@ -72,6 +79,12 @@ extern SDL_bool SDL_Vulkan_GetInstanceExtensions_Helper(unsigned *userCount,
const char **userNames, const char **userNames,
unsigned nameCount, unsigned nameCount,
const char *const *names); const char *const *names);
#else
/* No SDL Vulkan support, just include the header for typedefs */
#include "SDL_vulkan.h"
#endif /* SDL_VIDEO_VULKAN_SURFACE */ #endif /* SDL_VIDEO_VULKAN_SURFACE */
#endif /* SDL_vulkan_internal_h_ */ #endif /* SDL_vulkan_internal_h_ */

View File

@ -39,7 +39,7 @@
int Android_Vulkan_LoadLibrary(_THIS, const char *path) int Android_Vulkan_LoadLibrary(_THIS, const char *path)
{ {
VkExtensionProperties *extensions = NULL; VkExtensionProperties *extensions = NULL;
Uint32 extensionCount = 0; Uint32 i, extensionCount = 0;
SDL_bool hasSurfaceExtension = SDL_FALSE; SDL_bool hasSurfaceExtension = SDL_FALSE;
SDL_bool hasAndroidSurfaceExtension = SDL_FALSE; SDL_bool hasAndroidSurfaceExtension = SDL_FALSE;
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = NULL; PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = NULL;
@ -72,7 +72,7 @@ int Android_Vulkan_LoadLibrary(_THIS, const char *path)
&extensionCount); &extensionCount);
if(!extensions) if(!extensions)
goto fail; goto fail;
for(Uint32 i = 0; i < extensionCount; i++) for(i = 0; i < extensionCount; i++)
{ {
if(SDL_strcmp(VK_KHR_SURFACE_EXTENSION_NAME, extensions[i].extensionName) == 0) if(SDL_strcmp(VK_KHR_SURFACE_EXTENSION_NAME, extensions[i].extensionName) == 0)
hasSurfaceExtension = SDL_TRUE; hasSurfaceExtension = SDL_TRUE;