如何与Android Java活动交互Vulkan

如何与Android Java活动交互Vulkan,android,android-ndk,vulkan,native-activity,Android,Android Ndk,Vulkan,Native Activity,目前,android Vulkan只支持NativeActivity,但我们是否可以使用Java Activity和SurfaceView或任何其他视图并通过JNI传递Native来获取NativeWindow处理程序 我试着环顾四周并链接我的曲面视图,但它对我不起作用,任何示例代码或示例都将不胜感激 我现在还不知道有什么示例代码,但是如果你有一个SurfaceView你想从中得到表面,并且从中你可以得到(在C中)一个ANativeWindow来创建VkSurfaceKHR/VkSwapchai

目前,android Vulkan只支持NativeActivity,但我们是否可以使用Java Activity和SurfaceView或任何其他视图并通过JNI传递Native来获取NativeWindow处理程序


我试着环顾四周并链接我的曲面视图,但它对我不起作用,任何示例代码或示例都将不胜感激

我现在还不知道有什么示例代码,但是如果你有一个
SurfaceView
你想从中得到
表面,并且从中你可以得到(在C中)一个
ANativeWindow
来创建
VkSurfaceKHR
/
VkSwapchainKHR
。顺序类似于:

Java:
surface=surfaceView->getHolder()->getSurface()

将surface作为
jobject
传递给C中的JNI调用

C:
window=ANativeWindow\u fromSurface(环境、表面)

该函数在NDK
android/native\u window\u jni.h
标题中声明


您需要向
SurfaceView
SurfaceHolder
注册回调,并正确管理窗口生命周期(与活动生命周期相关联)。

除此之外,可能还值得一看glSurfaceView的功能(它是开源的)为了在主UI线程以外的线程上管理渲染以及处理任何大小调整等,在我的项目中,我创建了一个vkSurfaceView,它类似于简化的glSurfaceView。实际上,谷歌应该提供一个可行的vkSurfaceView实现。您好,这个答案显示了实现VulkanSurfaceView所需的基本设置: