繁体   English   中英

在 Android (NDK) 上设置 OpenGL ES 版本

[英]Set OpenGL ES version on Android (NDK)

我正在关注这些文档并尝试将 OpenGL 版本设置为 1.1。 但是当我在我的 C 代码中调用glGetString(GL_VERSION)时,它总是返回我

OpenGL ES-CM 1.0

我相信我应该在创建上下文(或表面)时指定版本,但我找不到任何 API。

我也遇到了这样的错误:

08-09 13:47:13.642: 错误/libEGL(567): 调用未实现的 OpenGL ES API

这也证明了使用 OpenGL ES 1.0 而不是 1.1。

编辑:我应该注意,在设备上一切正常。 该问题仅存在于模拟器上(在平台 2.2 和 2.3.3 上测试)

Edit2:在 HTC Wildfire 上使用 Android 2.2.1 进行测试,它还向我展示了 OpenGL 1.0 版

模拟器只实现了 1.0,所以这是意料之中的。 您最终会获得硬件(或仿真器)支持的任何版本。

在清单中,您只需指定您的应用所需的 GLES 版本。 从清单指南:

声明的元素仅供参考,这意味着 Android 系统本身在安装应用程序之前不会检查设备上的匹配功能支持。

我应该注意到,模拟器确实实现了大多数 1.1 功能,例如 VBO 支持,所以你应该可以通过做一些小的改变来测试你的应用程序。

您应该在创建上下文时指定版本,
事实上,有一种方法可以做到这一点:

const EGLint attribList[] = {EGL_CONTEXT_CLIENT_VERSION, 3, EGL_NONE};
context = eglCreateContext(eglDisplay, config, EGL_NO_CONTEXT, attribList);

注意attribList ,这是您指定 OpenGL ES 版本的参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM