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のみを使用しています。
この問題に関するヒントやポインタをいただければ幸いです。
余談ですが、最新の (シェーダーベースの) OpenGL プロジェクト用に Mac でウィンドウを表示するには、どのツール (glfw 以外) をお勧めしますか?
よろしくお願いいたします。