4

私のアプリケーション(Javaブートストラップコードを使用してC ++で記述)はAndroid MIDデバイスで完全に実行されていますが、友人のMotoMB865電話では機能しません。GLコンテキスト作成手順を調べたところ、OpenGLES2.0をサポートするすべての構成に対応してEGL_NATIVE_RENDERABLEいることがわかりました。GL_FALSE

これは、ネイティブコードでOpenGLES2.0にアクセスできないことを意味します。

なぜシステムにこの奇妙な制限があるのですか?これ以前は、ネイティブコードがすべてのOpenGL構成にアクセスできると思いました。

この制限を回避する方法はありますか?または、JNI経由でEGL2にアクセスするためのデリゲートを作成する必要がありますか?

4

1 に答える 1

2

EGL_NATIVE_RENDERABLENDKとは何の関係もありません。

これは、ネイティブレンダリングAPIがバッファに描画する機能を示しているだけです。

EGL仕様を参照してください:http ://www.khronos.org/registry/egl/specs/eglspec.1.4.pdf 段落2.2.3 Interaction With Native Rendering

ネイティブレンダリングは、常にピックスマップサーフェスでサポートされます(ネイティブレンダリングAPIがネイティブピックスマップに描画できる範囲で)。Pixmapサーフェスは通常、ネイティブAPIレンダリングとクライアントAPIレンダリングを混在させることが望ましい場合に使用されます。これは、クライアントAPIに表示されるバックバッファーとネイティブレンダリングAPIに表示されるネイティブピックスマップの間でデータを移動する必要がないためです。ただし、ピックスマップサーフェスは、同じ理由で、ウィンドウおよびpbufferサーフェスに比べて機能とパフォーマンスが制限されている場合があります。pbufferのカラーバッファはEGLによって内部的に割り当てられ、他の方法ではアクセスできないため、ネイティブレンダリングはpbufferサーフェスではサポートされません。

問題の理由は異なるはずです(GLES 2.0はサポートされていないなど)。

于 2012-09-20T15:21:47.407 に答える