如何从NDK中的SurfaceTexture获取ANativeWindow

时间:2014-06-19 17:18:05

标签: android android-ndk

我有一些OpenGL ES代码已经呈现为GLSurfaceView,我正在修改它以使用SurfaceViewTextureView

我在本机代码中需要的共同元素是:ANativeWindow

对于SurfaceView我通过将Surface传递给:

来获得它
m_jwindow = ANativeWindow_fromSurface(env, surface);

对于TextureView,我选择SurfaceTexture,在API 14中,我可以使用此功能:

m_jwindow = ANativeWindow_fromSurfaceTexture(env, surface);

但是,在Jellybean中删除了该功能。这让我想知道,如何从API 16 +中的ANativeWindow获得SurfaceTexture

1 个答案:

答案 0 :(得分:8)

您在API 16+中需要做的是创建一个Surface对象,将SurfaceTexture作为参数传递给constructor(在API 14中引入)。像往常一样将Surface传递给ANativeWindow_fromSurface()