GLFW3の機能glfwCreateWindowでウィンドウを作成するのに苦労しています。glfwInit 関数が成功を返したにもかかわらず、エラー番号と説明をほとんど出力するだけのエラー コールバック関数を設定しました。GLFW ライブラリは初期化されていません。
ここに私のコードからの抜粋があります
// Error callback function prints out any errors from GFLW to the console
static void error_callback( int error, const char *description )
{
cout << error << '\t' << description << endl;
}
bool Base::Init()
{
// Set error callback
/*!
* According to the documentation this can be use before glfwInit,
* and removing won't change anything anyway
*/
glfwSetErrorCallback( error_callback );
// Initialize GLFW
/*!
* This return succesfull, but...
*/
if( !glfwInit() )
{
cout << "INITIALIZER: Failed to initialize GLFW!" << endl;
return false;
}
else
{
cout << "INITIALIZER: GLFW Initialized successfully!" << endl;
}
// Create window
/*!
* When this is called, or any other glfw functions, I get a
* "65537 The GLFW library is not initialized" in the console, through
* the error_callback function
*/
window = glfwCreateWindow( 800,
600,
"GLFW Window",
NULL,
NULL );
if( !window )
{
cout << "INITIALIZER: Failed to create window!" << endl;
glfwTerminate();
return false;
}
// Set window to current context
glfwMakeContextCurrent( window );
...
return true;
}
そして、これがコンソールに出力されたものです
INITIALIZER: GLFW Initialized succesfully!
65537 The GLFW library is not initialized
INITIALIZER: Failed to create window!
セットアップが完全に正しくないため、エラーが発生していると思いますが、その場所で見つけたものでできる限りのことをしました
glfw.org から Windows 32 をダウンロードし、そこから 2 つのインクルード ファイルを minGW/include/GLFW に貼り付け、2 つの .a ファイル (lib-mingw フォルダーから) を minGW/lib と dll に貼り付けました。 mingw フォルダー、Windows/System32 に
code::blocks で、ビルド オプション -> リンカー設定から、ダウンロードから 2 つの .a ファイルをリンクしました。より多くのものをリンクする必要があると思いますが、それらのものを何から、またはどこから取得する必要があるかを理解できます。