2010-01-12 64 views
3

我正在开发一个适用于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”作为版本。Android是否运行OpenGL ES 1.1或1.0?

所以,如果1.1是可用的,我有什么要链接得到它或我需要改变什么来得到它?

回答

4

Android的文档说(3D with OpenGL):

最后,需要注意的是,虽然Android为包括支持OpenGL ES 1.1的一些基本支持,支持没有完成,并且不应该在这个被依赖时间。

我猜测这与NDK是一样的。

11

如果你想在所有的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" /> 
1

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

OpenGL ES版本兼容的Android平台(一个或多个)必需使用-SDK属性 的OpenGL ES 1.1 Android 1.6及更高机器人:的minSdkVersion = “4” 的OpenGL ES 2.0的Android 2.0以及更高机器人:的minSdkVersion = “5”