Android で OpenGL ES を使用してオフスクリーン レンダリングを実装しようとしています。私の最終的な目標は、プレーン Java および Bitmap/int[] API で行うテクスチャ マッピングのパフォーマンスを向上させることです。関連するフォーラム スレッドのサンプル コードと同様に、pbuffer アプローチを試しました。かなり低いパフォーマンスを示しています。glReadPixels
通話には、あるデバイスでは最大 50 ミリ秒、別のデバイスでは最大 15 ミリ秒かかります。
フレーム バッファを使用した、より最新のアプローチがあります。コード サンプルはかなり複雑で、フレーム バッファから Android のビットマップへの転送が pbuffer の場合よりもはるかに高速になるとは思えません。私の見積もりは正しいですか?
3 番目のアプローチは、ピックスマップを使用することです。ドキュメントを正しく理解していれば、OpenGL と Dalvik のメモリ間でプレーン コピーよりも洗練されたメモリ共有を利用する必要があります。問題は、関連する API が Android SDK に存在しないことです。
Java で公開されている構造はeglCreateImageKHR
ありません。EGLImageKHR
私が見つけたすべての C++ の例は、それらに依存しています。
ありますがeglCreatePixmapSurface
、ドキュメントからの使用方法がわかりません。おそらく、パラメーターである種のビットマップ ハンドルを受け取りnative_pixmap
ますが、そのようなハンドルを作成する方法が見つかりません。「eglCreatePixmapSurface android」を検索すると、問題レポートのみが表示されます。
私の主な質問は、ネイティブ コードを記述せずに Java から Android でピックスマップを使用できますか? ネイティブにする必要がある場合、OpenGL を深く掘り下げる前にパフォーマンスを評価するために使用できる作業コードはありますか?