安卓运行的是OpenGL ES 1.1还是1.0?

4
我正在为Android开发本地应用程序,并尝试使用诸如glIsEnabled之类的函数,这些函数似乎仅在OpenGL ES 1.1中可用。谷歌的文档声称NDK 1.6R1支持OpenGL ES v1.1,但函数调用失败,出现“未实现的Open GL ES API”错误,并且如果我执行glGetString(GL_VERSION),它返回版本“OpenGL ES 1.0 CM”。
因此,如果1.1可用,我需要链接到哪里才能获取它,或者我需要做哪些其他更改才能获得它?
3个回答

12

如果你想在所有的Android设备上运行,就不能使用高于OpenGL ES 1.0的任何版本。但是,如果你确实需要一些OpenGL ES 1.1方法,你可以在清单文件中定义一个minGLVersion,这样它就不会被那些不支持的设备下载。定义方式如下:

// the high 16 bit define the Major Version,
// the low 16 bits define the Minor Version,
// so this is OpenGL ES 1.1
<uses-feature android:glEsVersion="0x00010001" />

5

Android文档中提到(OpenGL中的3D):

最后,需要注意的是,虽然Android确实包含一些OpenGL ES 1.1的基本支持,但该支持不完整,目前不应该依赖它。

我猜NDK也是同样的情况。


2

如果您使用NDK创建一个使用OpenGL ES API的本地库,包含该库的应用程序只能部署到运行下表中所述最低平台版本的设备上。

OpenGL ES 版本 兼容的Android平台 必需的uses-sdk属性 OpenGL ES 1.1 Android 1.6及更高版本 android:minSdkVersion="4" OpenGL ES 2.0 Android 2.0及更高版本 android:minSdkVersion="5"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接