我有一些OpenGL ES代码已经呈现为GLSurfaceView
,我正在修改它以使用SurfaceView
和TextureView
。
我在本机代码中需要的共同元素是:ANativeWindow
。
对于SurfaceView
我通过将Surface
传递给:
m_jwindow = ANativeWindow_fromSurface(env, surface);
对于TextureView
,我选择SurfaceTexture
,在API 14中,我可以使用此功能:
m_jwindow = ANativeWindow_fromSurfaceTexture(env, surface);
但是,在Jellybean中删除了该功能。这让我想知道,如何从API 16 +中的ANativeWindow
获得SurfaceTexture
?
答案 0 :(得分:8)
您在API 16+中需要做的是创建一个Surface对象,将SurfaceTexture作为参数传递给constructor(在API 14中引入)。像往常一样将Surface传递给ANativeWindow_fromSurface()
。