我正在尝试在 Xcode 5 (Mac OSX 10.8.4) 上为我的 OpenGL 项目设置 GLFW3。我已成功安装并将我的项目链接到 GLFW3,没有问题。我什至用该项目成功创建了一个窗口,并且我能够使用该窗口检测鼠标和键盘输入,所以我相信我正确连接了 GLFW3(或者至少看起来如此)。
然而,当我尝试绘制一个对象时,问题出现了。这是出现错误的代码片段:
#include <GLFW/glfw3.h>
void LoadObject()
{
glGenVertexArrays(1, &VAO_myObj); // ERROR : Use of undeclared identifier 'glGenVertexArrays'
glBindVertexArray(VAO_myObj); // ERROR : Use of undeclared identifier 'glBindVertexArray'
glGenBuffers(1, &VBO_myObj); // No error
glBindBuffer(GL_ARRAY_BUFFER, VBO_myObj); // No error
glBufferData(blah blah blah); // No error
glEnableVertexAttribArray(0); // No error
glVertexAttribPointer(blah); // No error
glBindBuffer(GL_ARRAY_BUFFER, 0); // No error
glBindVertexArray(0); // ERROR : Use of undeclared identifier 'glBindVertexArray'
}
因此,这让我相信 GLFW3 无法链接到这些函数(?)。当我在 Xcode 中输入“glGen...”时,我只在弹出窗口中看到以下 4 个函数:
void glGenBuffers(GLsizei n, GLuint * buffers)
GLuint glGenLists(GLsizei range)
void glGenQueries(GLsizei n, GLuint * ids)
void glGenTextures(GLsizei n, GLuint * textures)
因此,很可能库中确实缺少 glGenVertexArrays()。
类似地,对于“glBind...”,当我在 Xcode 中输入名称时,只有这些名称显示在弹出窗口中:
void glBindAttribLocation(GLuint program, GLuint index, const GLchar * name)
void glBindBuffer(GLenum target, GLuint buffer)
void glBindTexture(GLenum target, GLuint texture)
我在列表中没有看到 glBindVertexArray() 。
因此,似乎缺少 glGenVertexArrays() 和 glBindVertexArray() 。但如此重要的功能他们怎么会错过呢?所以,我自己很可能在这里遗漏了一些东西。
我只是想知道以前是否有人在使用 Xcode 5 的 GLFW3 中遇到过这个问题?顺便说一句,我没有使用 glew 或任何其他 OpenGL 支持的东西。我只使用GLFW3。
对于有关此问题的任何提示或指示,我将不胜感激。
顺便说一句,您会推荐哪种工具(除了 glfw 之外)在 Mac 上为现代(基于着色器)OpenGL 项目打开窗口?
预先感谢您的帮助。