Moved Android functions into separate namespace (vks::android)
This commit is contained in:
parent
a5a2211489
commit
82521aaafb
3 changed files with 170 additions and 158 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue