Obsługa OpenGL ES 2.0 dla Androida?

Widziałem wiele ujęć tego tematu i zaczęło mnie to mylić. Naprawdę mam nadzieję, że ktoś może dać mi ostateczną odpowiedź! :)

Zgaduję, że jest tępy: czy emulator Androida obsługuje OpenGL ES 2.0? Widziałem kilka osób mówiących „Tak, ale musisz zmienić kilka ustawień”. widziałem też „Nie, to nie wspiera, kropka”. Oto co zrobiłem, aby spróbować rozwiązać problem, w tym niektóre komunikaty o błędach, które otrzymałem.

Najpierw zmodyfikowałem plik AndroidManifest.xml, aby zawierał następujący kod:

<uses-feature 
    android:glEsVersion="0x00020000" />

<uses-sdk
    android:minSdkVersion="15"
    android:targetSdkVersion="17" />

Następnie, gdy chcę utworzyć instancję mojego GLSurfaceView, używam tej sekwencji kodu do utworzenia instancji:

super(context);

setEGLContextClientVersion(2);

setRenderer(new MyRenderer());
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);

Potem, gdziekolwiek spojrzałem, powiedziałem, że musisz wejść do Menedżera AVD, wybrać emulator, przejść do „Sprzęt”, dodać „emulację GPU” i ustawić wartość logiczną na „tak”. Jednak oto, co widzę, kiedy patrzę na moje:

Osobliwe jest to, że mam inny emulator w moim menedżerze AVD, którego mam tabelę „Sprzęt”:

Aby pokazać ci dokładnie to, co robię, oto kod, który robi kilka rzeczy, które chcę zrobić w OpenGL ES 2.0 (głównie z samouczków Androida):

int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, vertexShaderCode);
int fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentShaderCode);

program = GLES20.glCreateProgram();
GLES20.glAttachShader(program, vertexShader);
GLES20.glAttachShader(program, fragmentShader);
GLES20.glLinkProgram(program);

Nie chcę zmieniać kodu z powrotem do pracy z OpenGL ES 1.0, ponieważ będzie to wymagało wielu problemów i jeśli będę mógł tego uniknąć, zrobię to.

Wreszcie, gdy próbuję uruchomić program, program zamyka się za pomocą okna: „Niestety, program się zatrzymał”. Oto, co powiedział mi LogCat:

12-05 06:16:27.165: E/AndroidRuntime(936): FATAL EXCEPTION: GLThread 81
12-05 06:16:27.165: E/AndroidRuntime(936): java.lang.IllegalArgumentException: No config chosen
12-05 06:16:27.165: E/AndroidRuntime(936):  at    android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:874)
12-05 06:16:27.165: E/AndroidRuntime(936):  at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1024)
12-05 06:16:27.165: E/AndroidRuntime(936):  at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1401)
12-05 06:16:27.165: E/AndroidRuntime(936):  at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)

Powiem, że jestemnie ekspertem w tej dziedzinie i to jest moje pierwsze doświadczenie z OpenGL. Jeśli ktokolwiek ma jakieś pomysły na to, co mogę zrobić, aby to naprawić, byłbym na zawsze wdzięczny. :) Dziękuję Ci!

questionAnswers(3)

yourAnswerToTheQuestion