2014-06-19 4 views
6

Ich habe etwas OpenGL ES-Code, der auf eine GLSurfaceView gerendert wurde, und ich bin derzeit daran, es mit SurfaceView und TextureView zu arbeiten.Wie erhalten Sie ANativeWindow von einem SurfaceTexture in der NDK

Das gemeinsame Element, das ich von beiden in meinem nativen Code brauche, ist: ANativeWindow.

Für die SurfaceView habe ich es von Surface zu übergeben:

m_jwindow = ANativeWindow_fromSurface(env, surface); 

Für TextureView, ich nehme SurfaceTexture und in API 14 kann ich diese verwenden:

m_jwindow = ANativeWindow_fromSurfaceTexture(env, surface); 

jedoch diese Funktion wurde in Jellybean entfernt. Was lässt mich wundern, wie bekomme ich ANativeWindow von einem SurfaceTexture in API 16 +?

Antwort

8

Was Sie in API 16+ tun müssen, ist ein Oberflächenobjekt zu erstellen, das die SurfaceTexture als Argument an die constructor (die in API 14 eingeführt wurde) übergeben wird. Übergeben Sie diese Oberfläche wie gewohnt an ANativeWindow_fromSurface().

Verwandte Themen