Galaxy S4上的OpenGL 3 Android 4.4.2
我是Android开发新手,所以我可能会错过一些东西。我的理解是,运行Android 4.4.2的三星Galaxy S4应该支持OpenGL ES 3.但是,当我拨打glGetString(GL_VERSION)
(获得OpenGL ES 2.0上下文)后,我得到OpenGL ES 2.0 build [email protected]
如果支持,我希望得到一个OpenGL ES 3.0
字符串。Galaxy S4上的OpenGL 3 Android 4.4.2
如果我试图强制获取OpenGL ES 3.0上下文,我的呈现线程会被给出异常,并且日志消息为throwEglException tid=1477 createContext failed:
。
真正奇怪的是,如果我使用一个2.0范围内,OpenGL ES的3.0调用正常工作(如数组缓冲区),我刚刚得到消息记录呼叫是not implemented.
!! ??
我AndroidManifest.xml
有:
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="19" />
<uses-feature android:glEsVersion="0x00030000" android:required="true" />
有什么事我不设置让我OpenGL 3.0的? Galaxy S4(Verizon BTW)上的Android 4.4.2不支持OpenGL ES 3吗?
这里是我的GLSurfaceView构造我的渲染器设置:
public BasicGLSurfaceview(Context context) {
super(context);
setEGLContextClientVersion(2);
MyRenderer renderer = new MyRenderer(context);
setRenderer(renderer);
...
如果我通过3至setEGLContextClientVersion()而不是2,我的渲染线程被赋予了“失败的createContext:”例外。我也创建了自己的上下文工厂,并使用setEGLContextFactory(),但结果是相同的。询问大于2的版本会导致我的渲染线程发生异常。
三星Galaxy S4附带两种不同的CPU,具体取决于国家。具有Snapdragon CPU的GT-I9505版本支持Android 4.3或更高版本的OpenGL ES 3,但具有Exynos CPU的GT-I9500则不支持。
你试过NDK gles3jni样? https://android.googlesource.com/platform/development/+/master/ndk/platforms/android-18/samples/gles3jni/ –
你可以在创建你的上下文的地方显示代码吗?如果你使用'GLSurfaceView',那么你可以在''GLSurfaceView'构造函数中设置你的'Renderer'。 –
我试过了NDK gles3jni。它只是停止。 – mitchpb