1. 윈도우 초기화
void glutInit( int *argc, char **argv ) |
윈도우와 운영체제의 세션(통신을 하기 위한 연결점) 연결 |
void glutInitWindowPosition( int x, int y ); |
윈도우의 위치 설정 (GLUT의 화면 좌표계는 윈도우 운영체제의 좌표계와 일치하지만 OPENGL의 화면 좌표계와는 다르다) |
void glutInitWindowSize( int width, int height ); |
윈도우의 크기 설정 |
void glutInitDisplayMode( unsigned int mode ); |
디스플레이 모드 설정 |
glutInitDisplayMode - 디스플레이 모드의 종류 | |
GLUT_RGBA | RGBA모드의 창을 선택한다. GLUT_RGBA나 GLUT_INDEX로 지정되지 않는다면 이 값이 기본설정값이 된다. |
GLUT_RGB | GLUT_RGBA와 동일하다. |
GLUT_INDEX | 인덱스를 가진 색상만 지원하는 창모드를 선택한다. GLUT_RGBA위에 덮어 써진다.. |
GLUT_SINGLE | 단일버퍼를 가진 창을 선택한다. 이값이 기본설정이다. |
GLUT_DOUBLE | 이중버퍼를 가진 창을 선택한다. 이 값은 GLUT_SINGLE위에 덮어 써진다. |
GLUT_ACCUM | 누적버퍼를 가진 창을 선택한다. |
GLUT_ALPHA | 색상버퍼에 알파값을 가진 창을 선택한다. |
GLUT_DEPTH | 깊이버퍼를 가진 창을 선택한다. |
GLUT_STENCIL | 형판버퍼(stencil buffer)를 가진 창을 선택한다. |
GLUT_MULTISAMPLE | 다중맵플링(multismapling)을 지원하는 창을 선택한다. |
GLUT_STEREO | 입체창(stereo window)을 선택한다. |
GLUT_LUMINANCE | 휘도를 가진 색상모델을 다루는 입체창을 선택한다. |
2. 윈도우 관리
void glutSetWindowTitle( char *name ); |
윈도우 타이틀 설정 |
void glutCreateWindow( char *name ); |
새로운 윈도우 생성 |
void glutReshapeWindow( int width, int height ); |
렌더링 크기 변경에 따른 윈도우 크기 재설정 |
void glutPostRedisplay( void ); |
현재의 윈도우를 새로고침 하도록 요구하는 것 |
void glutSwapBuffers( void ); |
프런트 버퍼와 백 버퍼를 swapping 하기 위한 것 *더블 버퍼링에서는 프런트 버퍼 내용이 화면에 뿌려지는 동안 새로운 내용이 백 버퍼에 쓰여지고, 백 버퍼에 기록이 다 되면 프런트 버퍼와 백 버퍼가 바뀐다. 싱글 버퍼에서는 버퍼의 내용을 화면에 뿌리고 새로운 내용이 버퍼에 쓰여진다. glutSwapBuffers()함수가 실행되면 묵시적으로 glFlush()가 호출된다. |
void glutDisplaFunc( void(*)(void) ); |
렌더 콜백 함수이며, CallBack 함수로 등록하여 OpenGL에서 렌더링을 필요로 할 때 접근하는 함수이다. |
void glFlush( void ); |
gl 명령이 완전히 실행되기까지 기다린 후 쌓여있는 명령들을 모두 비우고, 즉시 실행이 되도록 한다. |
void glFinish( void ); |
gl 명령이 완전히 실행되기 전에 쌓여있는 명령들을 모두 비우고, 즉시 실행이 되도록 한다. |
GLUT API의 자세한 정보는 아래 공식 홈페이지를 추천한다. (*The OpenGL Utility Toolkit (GLUT) Programming Interface API Version 3)
https://www.opengl.org/resources/libraries/glut/spec3/spec3.html
참조 : http://kuroikuma.tistory.com/115
http://www.linuxfocus.org/Korean/January1998/article16.html#animation
'Programming > OpenGL' 카테고리의 다른 글
OpenGL의 함수 구조 (0) | 2017.01.16 |
---|---|
OpenGL 설치 (0) | 2017.01.16 |