私の会社は 3D HW アクセラレータを開発し、EGL + OpenGLES1.1 ライブラリを準備して Linux で動作させています。これらのライブラリを Android に移植する必要があります。同じハードウェア プラットフォームで動作する Android もありますが、もちろん、独自の sw ベースの OpenGLES レンダラーを使用しています (frameworks/base/opengles/libagl に配置され、system/libs/egl/libGLES_android.so としてリンクされています)。 . まず、オリジナルの libagl ソースを代わりに独自のライブラリをコンパイルすることで置き換えることを考えていましたが、それほど単純ではありません...どのように進めたらよいかわからないため、いくつか質問があります。
- このレベルの Android 開発に関するドキュメントや仕様はどこにありますか?
- 元の SW ベースのレンダラーは、システムから提供される専用のサーフェスと緊密に連携し、発生する可能性のある描画はすべてそのサーフェスに対して行われます。その方法では作業できません。ハードウェア アクセラレータは常に事前定義されたメモリ領域 (物理アドレスとフォーマットが固定されている) に描画するため、描画結果をシステムによって提供されるサーフェスにコピーする方法 (2a) を見つける必要があります。または ( 2b) ハードウェア操作領域とフォーマットを指すサーフェスを作成するようにシステムに指示します。コピーが少ないため、2bの方が適しています。何をどのように行うべきですか?
- 私のハードウェア アクセラレータは、物理アドレスでのみ動作します。出力バッファの既知の物理アドレスをどこにどのようにマッピングすればよいですか?
- この種の開発/移植に NDK を使用することは可能/望ましい/有用ですか?
ありがとう、
アンジェルコ