#include "GL/glut.h" #include "displayers.h" volatile unsigned long long int timer_ticks = 0; void display() { float angleY = 1*timer_ticks; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); // Prepare view glLoadIdentity(); gluPerspective(60,(double)glutGet(GLUT_WINDOW_WIDTH)/(double)glutGet(GLUT_WINDOW_HEIGHT),10,30000); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(10, 10, 10, 0, 0, 1, 0, 1, 0); display_rotating_pyramid(-5,-2,-5,2,4,angleY); display_rotating_pyramid(5,-2,0,1,5,angleY); display_rotating_pyramid(-2,-2,4,3,2,angleY); glutSwapBuffers(); } void update_angle(int value) { timer_ticks++; glutTimerFunc(50,update_angle,0); } int main(int argc, char** argv) { glutInit(&argc,argv); // Generate window with GLUT glutInitDisplayMode(GLUT_RGB| GLUT_DEPTH | GLUT_DOUBLE); glutCreateWindow("Hello"); // Init OpenGL glClearColor(0,0,0,1); glClearDepth(1.0); // glEnable(GL_LIGHTING); // glEnable(GL_LIGHT0); glEnable(GL_DEPTH_TEST); glViewport(0,0,glutGet(GLUT_WINDOW_WIDTH),glutGet(GLUT_WINDOW_HEIGHT)); glutIdleFunc(display); glutTimerFunc(50,update_angle,0); // Enters main loop, managed by GLUT glutMainLoop(); return 0; }