基本的なチュートリアルに従って、OpenGL ES 2.0を学習しようとしています
http://www.droidnova.com/android-3d-game-tutorial-part-ii,328.html
これは私の GLSurfaceView 派生のコンストラクターです
public FirstOpenGLSurfaceView(Context context){
super(context);
// Set the Renderer for drawing on the GLSurfaceView
setEGLContextClientVersion(2);
_renderer = new FirstOpenGLRenderer();
setRenderer(_renderer);
}
いくつかの実験の後、seteglcontextclientversion(2) への呼び出しが発行された場合、プロジェクトは適切に実行されないという結論に達しました (このコード行をコメント アウトすると、レンダリングが機能します)。上記の方法を実行するように作られています。
マニフェストを更新し、この投稿のすべてのアドバイスに従いました... (manifest.xml 設定を含む)
Android: GLES20: 未実装の OpenGL ES API と呼ばれる
これは、問題のデバイスで OpenGL ES 2.0 が利用できない (またはエミュレーターが使用されている) ことを示している可能性があるという意見を聞いたことがあります。 ... (いくつかのチュートリアルで見つかりましたが、このコードが真実を語っていると信じています)
// Check if the system supports OpenGL ES 2.0.
final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
final boolean supportsEs2 = configurationInfo.reqGlEsVersion >= 0x20000;
supportsEs2 の値は「true」であり、これは 3 つの独立したデバイスに適用されます。
- Samsung Galaxy Tab 10.1 - 2.6.36.4 カーネルを搭載した Android 3.2
- Google Nexus S - Android 4.0.4 - カーネル 3.0.27
- Samsung Galaxy S3 - カーネル 3.0.15 を搭載した Android 4.0.4
誰もこれを経験したことがありますか?