[OpenGL]GLUT Initializatio
GLUT(OpenGL Utility Toolkit)은 OpenGL로 프로그램을 만들 때 키 입력, 창 생성 등을 도와주는 툴킷임
다음과 같은 순서로 세팅을 할 것임
1. GLUT 속성을 설정하고 창 생성
2. 콜백 등록
3. GLUT 프로세싱 사이클 진입
* GLUT 속성 설정, 창 생성
# void glutInit(int *argc, char **argv) : GLUT설정을 초기화하고 윈도우 시스템과 세션을 협상. 초기화가 제대로 안되면 윈도우로 연결 실패, OpenGL 지원 부족 등의 에러 발생
# void glutInitWindowPosition(int x, int y) : 창 위치 설정 (안하면 디폴트값 설정됨)
# void glutInitWindowSize(int width, int height) : 창 크기 설정 (안하면 디폴트값 설정됨)
# void glutInitDisplayMode(unsigned int mode) : 어떻게 창을 그릴 것인지에 대한건데 속성이 굉장히 많음. 예를 들면 GLUT_RGBA, GLUT_DOUBLE 등이 있음. 파라미터는 비트연산자로 입력 (ex. glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);) 옛날에 GLUT_DOUBLE 안써서 프레임이 넘어갈 때 뚝뚝 끊기는거처럼 느낀 적이 있음.. ㅠㅠ
# int glutCreateWindow(char *title) : 창 생성, 파라미터로 창 이름을 입력하면 됨, 반환형은 창의 identifier로 나중에 활용 가능
* 콜백 등록
저렇게만 하고 돌리면 콘솔만 뜨고 OpenGL창 안뜸. 그림을 그릴 때 수행할 함수를 콜백으로 등록하고 계속 그려야하기 때문임. 콜백을 등록하고 나면 필요할 때 GLUT가 등록된 콜백함수를 통해 그림을 그려줌
일단 콜백으로 등록할 함수를 만든다
# void glutDisplayFunc(void (*funcName)(void))
이 함수를 사용하면 GLUT는 루프에 진입하면서 이벤트를 기다리는 상태가 된다
아래는 최종 코드
끝
다 하고나니 느낀 건데 포스팅하는 시간이 너무 긴 것 같다. 더 빨리하는 방법을 생각해봐야겠다.