我想写一些使用Android NDK编译C++中的VAO的代码。我期望能够使用glDeleteVertexArraysOES
,glGenVertexArraysOES
和glBindVertexArrayOES
。使用扩展在Android OpenGL ES 2.0中支持顶点数组对象吗?
我在OpenGL ES 2中包含头文件和头文件中的扩展名。
#define GL_GLEXT_PROTOTYPES
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
我还链接到Android.mk
的OpenGL ES 2。
LOCAL_LDLIBS += -lGLESv2
但由于某些原因,当代码被链接时,它会失败。
undefined reference to 'glDeleteVertexArraysOES'
undefined reference to 'glGenVertexArraysOES'
undefined reference to 'glBindVertexArrayOES'
链接器是否不包括GLES2/gl2ext.h
?
我检查了NDK库,我发现这些调用的唯一库(在Linux上使用'nm'命令)是GLESv3库。它明显具有名称中没有'OES'的调用,因为这是ES 3.0中的核心功能。但带有'OES'的表单在同一个库中。我觉得有点令人费解。我想你可以尝试在LOCAL_LDLIBS末尾添加'-lGLESv3',看看是否有什么可怕的事情发生。一般来说,这绝对不是一个好主意。 –
有趣的是,-lGLESv3实际上起作用。我的问题:我想在模拟器上运行它,它不支持OpenGL ES 3. –