ゲームを実行しているデバイスが、GL_MAX_VERTEX_ATTRIBS などの OpengGL 機能をサポートしているかどうかを検出したいと考えています。私はこれらのコードを書きました:
int[] result = new int[1];
GLES20.glGetIntegerv(GLES20.GL_MAX_VERTEX_ATTRIBS, result, 0);
公式ドキュメントを読んだところ、戻り値は 8 より大きくなければならないと言われていましたが、結果から得たものは常に 0 です。IOS では C 言語を介してこれらをうまく使用していましたが、Android では本当に混乱していました。 . Androidでこの種のタスクを完了するにはどうすればよいですか?
「OpenGL Extensions Viewer」( http://www.realtech-vr.com/glview/ ) は Android で多くのことを検出できることがわかりましたが、画面にはリストビューしかありません。カスタム GLSurfaceView とレンダラー?
この同様の質問を見つけました SurfaceView を使用しない Android で GPU 情報を取得します しかし、ベストアンサーもありません。
この問題を解決しました。検出コードを別のアクティビティに配置し、このチュートリアルhttp://www.learnopengles.com/android-lesson-one-getting-started/に従ってOpenGL ES 2.0 コンテキストを取得し、取得しますgl API 呼び出しを介してこれらの機能情報を取得し、すべて完了したら、メインのアクティビティに戻ります。