#include <gl/glut.h>
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
assignment1();
glFlush();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_SINGLE);
glutCreateWindow("Lecture");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
openGL의 기본 코드인데, 각 함수들이 어떤 역할인지 정리해보겠다
* 각 함수들에서 여러 개의 bit mask 인자를 전달할 때에는 Bitwise OR( | ) 연산자를 이용해 전달한다
glClear( ): 프레임 버퍼를 초기화 시켜준다
* GL_COLOR_BUFFER_BIT : 색상 값을 저장하는 버퍼
* GL_DEPTH_BUFFER_BIT: 깊이 값(3차원)을 저장하는 버퍼
glLoadIdentity( ): 현재 matrix를 identity matrix(단위 행렬)로 초기화한다
glFlush( ): 명령어를 받는 즉시 OpenGL 함수를 강제로 실행한다
* 기본적으로 명령어를 메모리에서 저장해두었다가, 명령어를 받을 때 한번에 화면에 띄울 수 있도록 전달한다
glutInit( ): 명령어 옵션과 설정을 전달받아 glut(openGL Utility Toolkit) 라이브러리를 초기화한다
* argc: 명령어 옵션의 개수를 가리키는 포인터
* argv: 명령어 옵션의 목록을 담은 배열(main 함수에서 인자로 이중 포인터 값을 전달받았었다)
glutInitDisplayMode( ): 디스플레이 모드를 초기화 시켜준다
glutCreateWindow( ): 인자로 window 이름을 문자열 형태로 전달해 주면, top level window를 생성해 준다
glutDisplayFunc( ): 현재 윈도우에 대한 콜백 함수를 설정해 준다
glutMainLoop( ): GLUT event processing loop를 돌린다. GLUT 프로그램에서 한 번만 호출되며, 리턴하지 않는다
'Programing > OpenGL(C++)' 카테고리의 다른 글
C++로 별 찍기 (for문) (0) | 2023.10.25 |
---|