Android | GLESv2“错误:对'glColor4f'的未定义引用”

时间:2014-07-15 06:12:11

标签: android opengl-es android-ndk opengl-es-2.0

我正在研究使用OpenGL ES 2.0的NativeActivity android应用程序

当我使用-lGLESv2构建我的应用时,我收到了链接器错误

  

错误:未明确引用' glColor4f'

所有其他OpenGL ES成立。

但是,当我将-lGLESv2替换为-lGLESv1_CM(或只添加-lGLESv1_CM)时,一切正常

我的问题是这是我问题的正确解决方案吗?我可以同时使用-lGLESv2-lGLESv1_CM吗?

1 个答案:

答案 0 :(得分:1)

不,您无法将ES 1.x与ES 2.0混合使用。它们大多不兼容,并且在我见过的任何设备上都不受相同上下文的支持。您决定使用哪一个作为上下文创建的一部分,然后您必须坚持使用该版本。

如果查看official spec file,ES 2.0将被定义为新的API,而不是ES 1.x的更新版本。他们的差异比他们的相似之处要大得多。

如您所知,glColor4f()是ES 1.x功能。 ES 2.0中最常见的亲戚是glVertexAttrib4f()。由于颜色是固定的函数属性,并且整个固定功能管道在ES 2.0中消失了,因此它不是直接替代。