2016-04-19 9 views
2

Wie wählt die Klasse CardboardView im Google Cardboard SDK aus, welche OpenGL ES-Version verwendet werden soll? Ich hatte gehofft, dass es buchstäblich von GlSurfaceView geerbt wurde, so dass ich setEGLContextClientVersion wie beschrieben here verwenden konnte, aber es sieht so aus, als ob das nicht der Fall ist.Auswählen der GLES-Version in Google Cardboard Android SDK

Mein Ziel ist es, OpenGL ES 3.0 zu wählen - ein großer Teil meines vorhandenen Rendering-Codes ist auf der nativen Seite implementiert und hängt von dieser Version ab.

+0

Es sieht so aus, als ob man anstelle von '' 'GlSurfaceView''' eines besitzt, das über die Methode' '' getGlSurfaceView'' abgerufen werden kann, die in den Cardboard SDK-Dokumenten fehlt. Bleibt abzuwarten, ob die Einstellung der Kontext-Client-Version berücksichtigt wird. –

Antwort

1

Das Cardboard SDK verwendet einen OpenGL ES 2.0-kompatiblen Client. Obwohl dies nicht offiziell unterstützt zu werden scheint, kann GL ES 3.0/3.1 meiner Erfahrung nach mit einem solchen Kontext verwendet werden, sofern das Telefon tatsächlich ES 3.x unterstützt. Welche mit dieser Aufforderung werden geprüft:

String version = javax.microedition.khronos.opengles.GL10.glGetString(
    GL10.GL_VERSION); 

genauer an http://developer.android.com/guide/topics/graphics/opengl.html#version-check

Das heißt, es sieht aus wie wir die richtige Unterstützung für die Verwendung von ES 3.x mit dem SDK, vielen Dank für das Markieren dieses Add sollte.

+0

Auf dieser Seite wird davon ausgegangen, dass Sie den EGL-Kontext selbst erstellen. Dies ist nicht der Fall, wenn Sie ein vorgefertigtes GLSurfaceView erhalten. Die Versionsinformationen, die vom Treiber zurückgegeben werden, geben nur an, zu was es in der Lage ist. – fadden

+0

Ich glaube nicht, wer den Kontext erstellt hat, ist wichtig. Haben Sie versucht, ES 3.0-Befehle auszuführen, und schlägt es auf einem Telefon fehl, das ES 3.0 unterstützt? – dcoz

+0

Wenn der EGL-Kontext mit einer 'EGL_CONTEXT_CLIENT_VERSION' von 1 oder 2 erstellt wurde, würde ich erwarten, dass GLES 3-Funktionen fehlschlagen. Es spielt keine Rolle, wer es erschaffen hat, aber es ist wichtig, wie es erstellt wurde. Idealerweise erstellt Cardboard den Kontext für 3 und fällt auf 2 zurück, falls nicht verfügbar. In diesem Fall funktioniert eine Überprüfung der Treiberfähigkeit, aber ich denke nicht, dass das garantiert ist. – fadden