Я пытаюсь изучить 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 является «истина», и это относится к трем независимым устройствам, а именно
- Samsung Galaxy Tab 10.1 — Android 3.2 с ядром 2.6.36.4
- Google Nexus S — Android 4.0.4 — ядро 3.0.27
- Samsung Galaxy S3 — Android 4.0.4 с ядром 3.0.15
Кто-нибудь испытал это раньше?