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

+ Recent posts