보조창(subwindow)에 대해서
int glutCreateSubWindow(int parentWindow, int x, int y, int width, int height);
인자 설명:
parentwindow - 부모창의 아이디(구분값)입니다.
x, y - 보조창의 왼쪽 위쪽 경계의 좌표입니다. 이 좌표는 부모창의 원점에 상대적인 좌표입니다.
width, height - 보조창의 크기입니다.mainWindow = glutCreateWindow("SnowMen from 3D-Tech");
...
subWindow1 = glutCreateSubWindow(mainWindow, 10,10,100,100);int mainWindow, subWindow1,subWindow2,subWindow3;
...
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(w,h);
mainWindow = glutCreateWindow("SnowMen from 3D-Tech");
// 키보드 관련 설정입니다.
glutIgnoreKeyRepeat(1);
glutKeyboardFunc(processNormalKeys);
glutSpecialFunc(pressKey);
glutSpecialUpFunc(releaseKey);
// 크기변경처리 함수입니다.
glutReshapeFunc(changeSize);
// 렌더링과 휴지(idle)함수입니다.
glutDisplayFunc(renderScene);
glutIdleFunc(renderSceneAll);
// 이 함수가 OpenGL 문맥을 만듭니다.
initScene();
subWindow1 = glutCreateSubWindow(mainWindow, border,border, w-2*border, h/2 - border*3/2);
// 각 창마다 렌더링 함수를 등록해야합니다.
glutDisplayFunc(renderScene1);
// OpenGL 문맥을 다시 만들어야합니다.
initScene();
subWindow2 = glutCreateSubWindow(mainWindow, border,(h+border)/2, w/2-border*3/2, h/2 - border*3/2);
// 각 창마다 렌더링 함수를 등록해야합니다.
glutDisplayFunc(renderScene2);
// OpenGL 문맥을 다시 만들어야합니다.
initScene();
subWindow1 = glutCreateSubWindow(mainWindow, (w+border)/2,(h+border)/2, w/2-border*3/2,h/2 - border*3/2);
// 각 창마다 렌더링 함수를 등록해야합니다.
glutDisplayFunc(renderScene3);
// OpenGL 문맥을 다시 만들어야합니다.
initScene();
glutMainLoop();
return(0);
}
Last updated