* 각각의 강의에서 쓰이는 메서드의 내용은 조금씩 달라질 수 있기 때문에 마지막 전체코드를 확인하여주시기 바랍니다.
1. 강의 설명
OpenGL 강좌 : 2강. 2D Programming 코드를 기본으로 다음 강의를 시작하겠습니다.
이번에 배울 내용은 Animation에 대한 내용으로 glutTimerFunc
이 돌아가는 예시를 설명합니다.
2. 전역 변수 추가
static float degree;
degree
는 현재 도형의 angle 값을 나타내며, 라디안(Radian) 값이 아닌 °(Degree)를 나타냅니다.
3. 메서드 추가
void timer(int value)
{
degree += 2.0;
if (degree >= 360.0)
degree -= 360.0;
glutTimerFunc(1000 / 30, timer, 1);
glutPostRedisplay();
}
timer
(임의변경가능) 메서드는glutTimerFunc
의 두번째 인자로 들어가는 메서드입니다.glutTimerFunc
은main
과timer
에서 각각 호출되어 1000 밀리세컨드 / 30 ( 1초에 30번 갱신 : 30 fps )로 작동합니다.
4. main 메서드
// Main program entry point
int main(int argc, char* argv[])
{
glutInit(&argc, argv); // Initialize GLUT Library
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // Set Display Mode
glutInitWindowSize(600, 600); // width 600, height 600
glutCreateWindow("GL3"); // Create new Window App "GL3"
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
glutTimerFunc(1000 / 30, timer, 1);
Init();
glutMainLoop(); // GLUT, GL Routine
return 0;
}