From 5cd1a9591055b04ce469d89d27fad77119a6ada3 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 27 Aug 2017 23:53:09 -0700 Subject: [PATCH] Fixed Android build with Vulkan support --- src/video/SDL_vulkan_internal.h | 15 ++++++++++++++- src/video/android/SDL_androidvulkan.c | 4 ++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/video/SDL_vulkan_internal.h b/src/video/SDL_vulkan_internal.h index b42da01a6..de44bd13e 100644 --- a/src/video/SDL_vulkan_internal.h +++ b/src/video/SDL_vulkan_internal.h @@ -25,11 +25,19 @@ #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) #undef SDL_VIDEO_VULKAN_SURFACE #define SDL_VIDEO_VULKAN_SURFACE 0 #endif +#if SDL_VIDEO_VULKAN_SURFACE + #if SDL_VIDEO_DRIVER_ANDROID #define VK_USE_PLATFORM_ANDROID_KHR #endif @@ -58,7 +66,6 @@ #include "SDL_vulkan.h" -#if SDL_VIDEO_VULKAN_SURFACE extern const char *SDL_Vulkan_GetResultString(VkResult result); @@ -72,6 +79,12 @@ extern SDL_bool SDL_Vulkan_GetInstanceExtensions_Helper(unsigned *userCount, const char **userNames, unsigned nameCount, 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_vulkan_internal_h_ */ diff --git a/src/video/android/SDL_androidvulkan.c b/src/video/android/SDL_androidvulkan.c index d7cf5c51f..cbb677add 100644 --- a/src/video/android/SDL_androidvulkan.c +++ b/src/video/android/SDL_androidvulkan.c @@ -39,7 +39,7 @@ int Android_Vulkan_LoadLibrary(_THIS, const char *path) { VkExtensionProperties *extensions = NULL; - Uint32 extensionCount = 0; + Uint32 i, extensionCount = 0; SDL_bool hasSurfaceExtension = SDL_FALSE; SDL_bool hasAndroidSurfaceExtension = SDL_FALSE; PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = NULL; @@ -72,7 +72,7 @@ int Android_Vulkan_LoadLibrary(_THIS, const char *path) &extensionCount); if(!extensions) 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) hasSurfaceExtension = SDL_TRUE;