Programing/OpenGL(C++)

[OpenGL] OpenGL Basic Code

hye3193 2024. 10. 1. 22:40

 

#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