diff --git a/src/Platform/Android/AndroidVulkan.cpp b/src/Platform/Android/AndroidVulkan.cpp new file mode 100644 index 00000000..9445716c --- /dev/null +++ b/src/Platform/Android/AndroidVulkan.cpp @@ -0,0 +1,29 @@ +#include"AndroidWindow.h" +#include + +namespace hgl +{ + VkSurfaceKHR AndroidWindow::CreateSurface(VkInstance vk_inst) + { + PFN_vkCreateAndroidSurfaceKHR CreateAndroidSurfaceKHR; + + GET_INSTANCE_PROC_ADDR(vk_inst,CreateAndroidSurfaceKHR); + + if(!CreateAndroidSurfaceKHR) + return(nullptr); + + VkAndroidSurfaceCreateInfoKHR createInfo; + createInfo.sType = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR; + createInfo.pNext = nullptr; + createInfo.window = AndroidGetApplicationWindow(); + + VkSurfaceKHR surface; + + VkResult res=CreateAndroidSurfaceKHR(vk_inst,&createInfo,nullptr,&surface); + + if(res!=VK_SUCCESS) + return(nullptr); + + return(surface); + } +}//namespace hgl diff --git a/src/Platform/CMakeLists.txt b/src/Platform/CMakeLists.txt index 62da6e3f..348a1349 100644 --- a/src/Platform/CMakeLists.txt +++ b/src/Platform/CMakeLists.txt @@ -24,6 +24,9 @@ SET(PLATFORM_MULTI_THREAD_SOURCE ${PLATFORM_MULTI_THREAD_SOURCE} UNIX/Semaphore.cpp) + + SET(PLATFORM_WINDOW_SOURCE Android/AndroidVulkan.cpp) + ELSE() SET(PLATFORM_CODEPAGE_SOURCE UNIX/CodePage.cpp) SET(PLATFORM_LOG_SOURCE UNIX/LogConsole.cpp)