2014-06-19 9 views
6

Ho qualche codice OpenGL ES che è stato sottoposto a rendering a GLSurfaceView e attualmente lo sto modificando per funzionare con SurfaceView e TextureView.Come si ottiene ANativeWindow da SurfaceTexture nell'NDK

L'elemento comune di cui ho bisogno sia all'interno del mio codice nativo è: ANativeWindow.

Per la SurfaceView I got it passando Surface a:

m_jwindow = ANativeWindow_fromSurface(env, surface); 

Per TextureView, prendo SurfaceTexture, e in API 14 posso usare questo:

m_jwindow = ANativeWindow_fromSurfaceTexture(env, surface); 

Tuttavia, tale funzione è stata rimosso in Jellybean. Il che mi fa pensare, come posso ottenere ANativeWindow da un SurfaceTexture in API 16+?

risposta

8

Ciò che è necessario fare in API 16+ è creare un oggetto Superficie, passando SurfaceTexture come argomento a constructor (che è stato introdotto in API 14). Passa quella superficie a ANativeWindow_fromSurface() come al solito.