2016-04-19 38 views
2

Google Cardboard SDK中的CardboardView類如何選擇要使用的OpenGL ES版本?我希望它從字面上繼承GlSurfaceView,以便我可以使用setEGLContextClientVersionhere所述,但看起來情況並非如此。在Google Cardboard Android SDK中選擇GLES版本

我的目標是選擇OpenGL ES 3.0--我的大部分現有渲染代碼是在本機端實現的,並且取決於該版本。

+0

看起來好像不是從'''GlSurfaceView''繼承而來的,它擁有一個可以通過''''getGlSurfaceView'''方法檢索到的方法,這看起來在Cardboard SDK文檔中是缺少的。是否尊重設置上下文客戶端版本仍有待觀察。 –

回答

1

Cardboard SDK使用OpenGL ES 2.0兼容客戶端。 雖然這似乎沒有官方的支持,但我的經驗是,GL ES 3.0/3.1可以與這樣的上下文一起使用,只要手機實際支持ES 3.x。在http://developer.android.com/guide/topics/graphics/opengl.html#version-check

也就是說

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

更多細節,看起來我們應該增加對使用ES 3.X的SDK,謝謝舉報該適當的支持:可與此調用進行檢查。

+0

該頁面假定您自己創建EGL上下文,如果您獲得預先製作的GLSurfaceView,則不會出現這種情況。驅動程序返回的版本信息僅指示它的能力。 – fadden

+0

我不認爲誰創造了這個背景真的很重要。您是否嘗試過運行ES 3.0命令,並且在支持ES 3.0的手機上運行失敗? – dcoz

+0

如果EGL上下文是用1或2的「EGL_CONTEXT_CLIENT_VERSION」創建的,我希望GLES 3函數失敗。 *誰創建它並不重要,但是*創建的方式很重要。理想情況下,Cardboard將創建3的背景,如果不可用,則會回落到2,在這種情況下,驅動程序能力檢查將起作用,但我不認爲這是有保證的。 – fadden

相關問題