보조창의 크기변환 처리
void glutPositionWindow(int x, int y);
void glutReshapeWindow(int width, int height);
인자 설명:
x,y - 창의 위쪽 왼쪽 경계좌표입니다.
width, height - 픽셀 단위의 창 크기입니다.void glutSetWindow(int windowIdentifier);
인자 설명:
windowIdentifier - 창을 만들었들 때 반환된 식별값입니다.int glutGetWindow();int w,h, border=6;
...
void changeSize(int w1,int h1)
{
if(h1 == 0)
h1 = 1;
// 나중을 위해서 이 값들을 보관합니다.
w = w1;
h = h1;
// subwindow1 을 현재창으로 설정합니다.
glutSetWindow(subWindow1);
// 현재창의 크기와 위치를 다시 설정합니다.
glutPositionWindow(border,border);
glutReshapeWindow(w-2*border, h/2 - border*3/2);
// 현재창의 투영행렬을 설정합니다.
changeSize2(w-2*border, h/2 - border*3/2);
// subwindow2 을 현재창으로 설정합니다.
glutSetWindow(subWindow2);
// 현재창의 크기와 위치를 다시 설정합니다.
glutPositionWindow(border,(h+border)/2);
glutReshapeWindow(w/2-border*3/2, h/2 - border*3/2);
// 현재창의 투영행렬을 설정합니다.
// 현재창의 너비와 높이에 맞게 인자를 설정해야합니다.
changeSize2(w/2-border*3/2,h/2 - border*3/2);
// subwindow3 을 현재창으로 설정합니다.
glutSetWindow(subWindow3);
// 현재창의 크기와 위치를 다시 설정합니다.
glutPositionWindow((w+border)/2,(h+border)/2);
glutReshapeWindow(w/2-border*3/2,h/2 - border*3/2);
// 현재창의 투영행렬을 설정합니다.
changeSize2(w/2-border*3/2,h/2 - border*3/2);
}Last updated