如何将Vulkan与Android Java Activity进行交互

时间:2018-10-30 09:45:38

标签: android android-ndk vulkan native-activity

当前,android Vulkan仅支持NativeActivity,但是有什么方法可以使用Java Activity和SurfaceView或任何其他视图,并通过JNI传递Native以获得NativeWindow处理程序。

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

1 个答案:

答案 0 :(得分:1)

我暂时不知道任何示例代码,但是如果您有一个Surface,则希望从中获取ANativeWindow,然后您可以从中获取(在C语言中) VkSurfaceKHR用于创建VkSwapchainKHR / surface = surfaceView->getHolder()->getSurface();。序列类似于:

Java:jobject

将表面作为window = ANativeWindow_fromSurface(env, jsurface);传递给C的JNI调用。

C:android/native_window_jni.h

该函数在NDK SurfaceView标头中声明。

您将要向SurfaceHolder的{​​{1}}注册回调,并正确管理窗口生命周期(与活动生命周期相关联)。