From 3bbe7e56ec2407c9902c31d15e94d2985ac1cb64 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Tue, 28 May 2019 21:44:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0AndroidVulkan.cpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Platform/Android/AndroidVulkan.cpp | 29 ++++++++++++++++++++++++++ src/Platform/CMakeLists.txt | 3 +++ 2 files changed, 32 insertions(+) create mode 100644 src/Platform/Android/AndroidVulkan.cpp 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)