2017-07-18 112 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线程。要么安排,只有在它不会长时间阻止时调用它,或者将帧循环放在单独的线程中。

相关问题