Galaxy S4 Android 4.4.2上的OpenGL 3

时间:2014-12-31 16:38:13

标签: android opengl-es opengl-es-3.0

我是Android开发的新手,所以我可能会遗漏一些东西。我的理解是运行Android 4.4.2的三星Galaxy S4应该支持OpenGL ES 3.但是,当我打电话给glGetString(GL_VERSION)时(在获得OpenGL ES 2.0上下文之后),我得到OpenGL ES 2.0 build 1.10@235947.我希望得到如果支持,则为OpenGL ES 3.0字符串。

如果我试图强制获取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 failed:'异常。我还创建了自己的上下文工厂并使用了setEGLContextFactory(),但结果是一样的。要求大于2的版本导致我的渲染线程获得异常。

1 个答案:

答案 0 :(得分:1)

三星Galaxy S4附带两个不同的CPU,具体取决于国家/地区。 GT-I9505版本有一个Snapdragon CPU,在Android 4.3或更高版本下支持OpenGL ES 3,但是有一个Exynos CPU的GT-I9500不支持。

请参阅:Wikipedia Article 请参阅:SAMMOBILE Article