6

android.view.SurfaceAndroid ネイティブ C++ コードで、デコードされたビデオ フレームをオブジェクトに描画する必要があります。

これを行う一般的な方法は、インターフェイスを実装しGLSurfaceView.Renderer、からネイティブ メソッドを呼び出すことだと理解していますonDrawFrame()。しかし、それを使用することはできません。Surface オブジェクトをネイティブ メソッドに渡して、そこから処理する必要があります。

クロスプラットフォームであるため、OpenGL ES API を使用してすべてのレンダリング ジョブを実行する予定です。しかし、Surface オブジェクトがどこにあるのかわかりません。

が使用されている例をいくつか見てきましたANativeWindow_fromSurface()。OpenGL を使用せざるを得ない場合は、そのようにすることもできたと思います。

では、Surface オブジェクトをネイティブ コード内のどこに「設定」すれば、シーン フレームをレンダリングできるのでしょうか?

編集:わかりました、私はEGL standardを認識していなかったと思います。これは、提示されたケースで必要なもののようです。

ただし、 Android 固有の API にアクセスする必要なく、android.view.Surfaceオブジェクトを EGL コンテキストによって処理される構造に「マップ」または「変換」する方法をまだ探しています。EGLNativeWindowType

前もって感謝します。

4

0 に答える 0