Moved Android functions into separate namespace (vks::android)

This commit is contained in:
saschawillems 2017-03-10 17:23:17 +01:00
parent a5a2211489
commit 82521aaafb
3 changed files with 170 additions and 158 deletions

View file

@ -121,9 +121,13 @@ PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR;
void *libVulkan; void *libVulkan;
// Dynamically load Vulkan library and base function pointers namespace vks
bool loadVulkanLibrary()
{ {
namespace android
{
// Dynamically load Vulkan library and base function pointers
bool loadVulkanLibrary()
{
__android_log_print(ANDROID_LOG_INFO, "vulkanandroid", "Loading libvulkan.so...\n"); __android_log_print(ANDROID_LOG_INFO, "vulkanandroid", "Loading libvulkan.so...\n");
// Load vulkan library // Load vulkan library
@ -142,11 +146,11 @@ bool loadVulkanLibrary()
vkGetDeviceProcAddr = reinterpret_cast<PFN_vkGetDeviceProcAddr>(dlsym(libVulkan, "vkGetDeviceProcAddr")); vkGetDeviceProcAddr = reinterpret_cast<PFN_vkGetDeviceProcAddr>(dlsym(libVulkan, "vkGetDeviceProcAddr"));
return true; return true;
} }
// Load instance based Vulkan function pointers // Load instance based Vulkan function pointers
void loadVulkanFunctions(VkInstance instance) void loadVulkanFunctions(VkInstance instance)
{ {
__android_log_print(ANDROID_LOG_INFO, "vulkanandroid", "Loading instance based function pointers...\n"); __android_log_print(ANDROID_LOG_INFO, "vulkanandroid", "Loading instance based function pointers...\n");
vkEnumeratePhysicalDevices = reinterpret_cast<PFN_vkEnumeratePhysicalDevices>(vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDevices")); vkEnumeratePhysicalDevices = reinterpret_cast<PFN_vkEnumeratePhysicalDevices>(vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDevices"));
@ -271,11 +275,13 @@ void loadVulkanFunctions(VkInstance instance)
vkCreateAndroidSurfaceKHR = reinterpret_cast<PFN_vkCreateAndroidSurfaceKHR>(vkGetInstanceProcAddr(instance, "vkCreateAndroidSurfaceKHR")); vkCreateAndroidSurfaceKHR = reinterpret_cast<PFN_vkCreateAndroidSurfaceKHR>(vkGetInstanceProcAddr(instance, "vkCreateAndroidSurfaceKHR"));
vkDestroySurfaceKHR = reinterpret_cast<PFN_vkDestroySurfaceKHR>(vkGetInstanceProcAddr(instance, "vkDestroySurfaceKHR")); vkDestroySurfaceKHR = reinterpret_cast<PFN_vkDestroySurfaceKHR>(vkGetInstanceProcAddr(instance, "vkDestroySurfaceKHR"));
} }
void freeVulkanLibrary() void freeVulkanLibrary()
{ {
dlclose(libVulkan); dlclose(libVulkan);
}
}
} }
#endif #endif

View file

@ -151,9 +151,15 @@ extern PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
extern PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; extern PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR;
extern PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; extern PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR;
bool loadVulkanLibrary(); namespace vks
void loadVulkanFunctions(VkInstance instance); {
void freeVulkanLibrary(); namespace android
{
bool loadVulkanLibrary();
void loadVulkanFunctions(VkInstance instance);
void freeVulkanLibrary();
}
}
#endif #endif

View file

@ -645,7 +645,7 @@ VulkanExampleBase::VulkanExampleBase(bool enableValidation)
#if defined(__ANDROID__) #if defined(__ANDROID__)
// Vulkan library is loaded dynamically on Android // Vulkan library is loaded dynamically on Android
bool libLoaded = loadVulkanLibrary(); bool libLoaded = vks::android::loadVulkanLibrary();
assert(libLoaded); assert(libLoaded);
#elif defined(_DIRECT2DISPLAY) #elif defined(_DIRECT2DISPLAY)
@ -746,7 +746,7 @@ void VulkanExampleBase::initVulkan()
} }
#if defined(__ANDROID__) #if defined(__ANDROID__)
loadVulkanFunctions(instance); vks::android::loadVulkanFunctions(instance);
#endif #endif
// If requested, we enable the default validation layers for debugging // If requested, we enable the default validation layers for debugging