2019-09-24 09:34:53 +02:00
|
|
|
#include "GL/glut.h"
|
|
|
|
|
2019-09-24 11:34:40 +02:00
|
|
|
#include "displayers.h"
|
2019-09-24 09:34:53 +02:00
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
2019-09-24 11:34:40 +02:00
|
|
|
display_rotating_pyramid(-5,-2,-5,2,4,angleY);
|
|
|
|
display_rotating_pyramid(5,-2,0,1,5,angleY);
|
2019-09-24 09:34:53 +02:00
|
|
|
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;
|
|
|
|
}
|