android - Galaxy S4 Android 4.4.2 上的 OpenGL 3

标签 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 而不是 2 传递给 setEGLContextClientVersion(),我的渲染线程会得到一个“createContext failed:”异常。我还创建了自己的上下文工厂并使用了 setEGLContextFactory(),但结果是一样的。请求大于 2 的版本会导致我的渲染线程出现异常。

最佳答案

Samsung Galaxy S4 附带两种不同的 CPU,具体取决于国家/地区。搭载Snapdragon CPU的GT-I9505版本支持Android 4.3或更高版本下的OpenGL ES 3,但搭载Exynos CPU的GT-I9500不支持。

参见:Wikipedia Article 请参阅:SAMMOBILE Article

关于android - Galaxy S4 Android 4.4.2 上的 OpenGL 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27723796/

相关文章:

android - android中的外部存储问题

java - 当我在其中添加文本时,如何使 android View 动态增长?

Android EGL sRGB 默认渲染缓冲区

ios opengl 3.0 未编译版本

java - 相机 NullPointerException

android - 需要有关 Android 上的 "Not trusted server certificate"错误的更多信息

javascript - 渲染到 3D 纹理 webgl2

android - OpenGL - 与 1.1 相比,学习 OpenGL ES 2.0 有多难?

java - 在opengl es 2.0中绘制纹理

opengl-es - 如何在opengles 3.0中实现多个渲染目标