Overview
GLUTで複数のウィンドウを扱いたいと思って少し調べた。
使う関数は
glutCreateWindow(string)
glutSetWindow(int);
glutGetWindow()
glutCreateWindowでウィンドウを作り、返り値としてウィンドウを指定するintをもらう。
glutDisplayFuncなどはカレントウィンドウに対しての設定なので、複数作ったウィンドウそれぞれについてDisplayFuncやらを個別に指定する。
カレントウィンドウを他のウィンドウに切り替えるにはglutSetWindowを使う。
新しくglutCreateWindowでウィンドウを作ると自動的にカレントウィンドウが新しく作ったウィンドウに移ることに注意。
参考:
https://www.opengl.org/resources/libraries/glut/spec3/node15.html
Sample :
int main(int argc, char* argv[])
{
int window1, window2;
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
//here glutGetWindow()=0
window1 = glutCreateWindow("Main"); //here glutGetWindow()=1
glutDisplayFunc(display1);
init();
window2 = glutCreateWindow("Sub"); //here glutGetWindow()=2
glutDisplayFunc(display2);
init();
glutMainLoop();
return 0;
}