2017-07-18 118 views
0

目前,Vulkan教程和示例似乎在Android平臺上使用NativeActivity。我想知道我們是否可以在Android上使用Vulkan和Java Activity?我們可以在Android平臺上使用Vulkan和Java Activity

+0

你的意思是在純Java項目中使用Vulkan?如果是這樣,不知道。 如果您的意思是在調用本地庫(c/C++代碼)來執行渲染的Java活動中使用Vulkan,那麼是的,這是可能的 - 我在一些已發佈的標題中執行此操作。不幸的是,我無權提供詳細信息,也不知道有任何示例顯示如何設置它。 – Columbo

+0

lwjgl有一個vulkan包裝,雖然我不知道有關android compat –

+0

感謝您的建議。 –

回答

2

是的,您可以將Vulkan與您自己的Activity子類一起使用。由於Android沒有用於Vulkan的Java語言綁定,因此您需要使用JNI或第三方Java Vulkan庫(它只是爲您執行JNI)。

您的視圖層次結構將需要包含SurfaceView,並且當您獲取Surfaceholder.Callback#surfaceChanged回調函數時,您可以獲取Surface。如果你自己在做JNI,你可以調用ANativeWindow_fromSurface從Surface獲得ANativeWindow,並用它來創建你的VkSurfaceKHR/VkSwapchainKHR。

要注意的一件事是在調用VkAcquireNextImageKHR時避免阻塞主UI線程。要麼安排,只有在它不會長時間阻止時調用它,或者將幀循環放在單獨的線程中。

相關問題