// GlutEmpty.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <Windows.h>
#include <gl/GL.h>
#include "gl/glut.h"
static const char *myProgramName = "GlutEmpty";
static void display(void)
{
// 렌더링 전에 칼라버퍼와 깊이버퍼를 지워서 초기화 한다.
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// 삼각형 하나를 그린다. 아무런 카메라 설정을 하지 않았으므로 화면은 x: -1~1, y: -1~1이고 z=0이다.
glBegin(GL_TRIANGLES);
glVertex2f(-0.8, 0.8);
glVertex2f(0.8, 0.8);
glVertex2f(0.0, -0.8);
glEnd();
// 다그렸으면 아까 GLUT_DOUBLE로 더블 버퍼이므로 프론트버퍼와 백버퍼를 스왑한다.
glutSwapBuffers();
}
static void keyboard(unsigned char c, int x, int y)
{
switch (c) {
case 27: /* Esc key를 누르면 프로그램을 종료 한다. */
exit(0);
break;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
// 윈도우 초기화 한다. 사이즈는 x=400, y=400
glutInitWindowSize(400, 400);
// 디스플레이모드를 설정한다. RGB칼라, 더블버퍼, 깊이버퍼
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
// GLUT를 초기화 한다. 나중에 string으로 옵션으로 전체화면 같은 것을 만들수 있으나 나중에 설명.
// 일단은 main함수에서 받은것을 그대로 사용
glutInit(&argc, argv);
// 윈도우를 만든다. 파라미터는 TitleName
glutCreateWindow(myProgramName);
// 디스플레이 콜백함수. 렌더링 할때 사용하는 함수
glutDisplayFunc(display);
// 키보드 콜백함수. 키보드가 눌렸을 때
glutKeyboardFunc(keyboard);
// 클리어 칼라를 지정함. 하늘색으로 지정하자. 렌더링 할때 초기화 칼라로 쓴다.
glClearColor(0.1, 0.3, 0.6, 0.0);
glutMainLoop();
return 0;
}
No comments:
Post a Comment