// g++ main.cpp -lGL -lglut -lGLU
#include <stdio.h>
#include <GL/glut.h>
float px_cpu, py_cpu;
void changeSize(int w, int h) 
{
	float ratio = 1.0 * w / h;
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glViewport(0, 0, w, h);
	gluOrtho2D(-1,1,-1,1);
	glMatrixMode(GL_MODELVIEW);
}
void renderScene(void) 
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glLoadIdentity();
	glColor3f(1,1,1);
	glPointSize(5.0);
	glBegin(GL_POINTS);								
		glVertex3f(px_cpu, py_cpu,0);
	glEnd();
	glutSwapBuffers();
}
void idleFunction(void)
{
	px_cpu += 0.01;
	if(px_cpu > 1) px_cpu=-1;
	glutPostRedisplay();
}
int main(int argc, char **argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
	glutInitWindowPosition(100,100);
	glutInitWindowSize(320,320);
	glutCreateWindow("GLUT, przyklad");
	// register callbacks
	glutDisplayFunc(renderScene);
	glutReshapeFunc(changeSize);
	glutIdleFunc(idleFunction);
	// enter GLUT event processing cycle
	glutMainLoop();
}
