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

View file

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

View file

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