freeglutを利用してopenGLの勉強を始めたのですが、ウインドウの変形イベントを正常に受け取れず困っています。コードは以下です。
//==========================================================
#define WIDTH 600
#define HEIGHT 400
void resize(int w, int h) //ウィンドウサイズを戻す
{
glutReshapeWindow(WIDTH, HEIGHT);
cout << "resize()\n";
}
void init()
{
glClearColor(0.0, 0.0, 0.0, 1.0);
glOrtho(0, WIDTH, HEIGHT, 0, -1, 1);
cout << "init()\n";
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitWindowSize(WIDTH, HEIGHT);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutCreateWindow(argv[0]);
init(); //自前の初期化用関数
//ここです!!! ----------------------------------------------
glutReshapeFunc(resize); //ウィンドウサイズが変わった時呼び出される
//----------------------------------------------------------
glutMainLoop();
return 0;
}
//==========================================================
試してみたところ、ウィンドウに触れていない状態でも resize() が常に呼び出され続けていました。
環境は、
win7(64bit) / VS2012 / freeglut-2.8.1
です。
どこに原因があるのでしょうか。どなたかアドバイスよろしくお願いいたします。