我想寫一些使用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. –