Ïðîåêòúò ìè òðúãâà, íî ìè ïîêàçâà ñàìî ÷åðåí åêðàí, à òðÿáâà - êâàäðàò, êîéòî ñè ñìåíÿ öâåòà è ìÿñòîòî. Åòî êîäúò:
(Dev C++)

#include <cstdlib>
#include <iostream>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>

using namespace std;

struct{
float r;
float g;
float b;
bool rr;
bool gg;
bool bb;
} c;
void display()
{
glClear(GL_COLOR_BUFFER_BIT);

glColor3f(c.r,c.g,c.b);
glTranslatef(200,-200,0); //1=201
glRotatef(0.5,0,0,1); //1 = 0.1
glRectf(-100,-100,100,100);
glTranslatef(-200,-200,0);


glutSwapBuffers();

if(c.rr)
c.r +=0.001;
else
c.r -=0.001;
if(c.gg)
c.g +=0.001;
else
c.g -=0.001;
if(c.bb)
c.b +=0.001;
else
c.b -=0.001;

if(c.r > 1)
c.rr=false;
if(c.r < 0)
c.rr=true;
if(c.g > 1)
c.gg=false;
if(c.g < 0)
c.gg=true;
if(c.b > 1)
c.bb=false;
if(c.b < 0)
c.bb=true;


glutPostRedisplay();
}

int main(int argc, char *argv[])
{
c.r = 0.5;
c.g = 0.75;
c.b = 0.17;
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(250,142);
glutCreateWindow("Proekt3");
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 500, 500, 0, 0, 1);
glutDisplayFunc(display);
glutMainLoop();

system("PAUSE");
return EXIT_SUCCESS;
}

Çàùî òàêà ñå ïîëó÷àâà ?