Пытаюсь запустить пример из книги:
#include <GL/glu.h>
#include <GL/glut.h>
void RenderScene()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f,0.5f,0.5f);
glRectf(-5.0f,5.0f,-5.0f,5.0f);
glFlush();
}
void SetupRC()
{
glClearColor(0.0f,0.0f,1.0f,1.0f);
}
void ChangeSize(int w,int h)
{
GLfloat ar;
if(h==0) h=1;
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
ar = (GLfloat)w / (GLfloat)h;
if(w<=h)
glOrtho(-100.0,100.0,-100.0/ar,100.0/ar,1.0,-1.0);
else
glOrtho(-100.0*ar,100.0*ar,-100.0,100.0,1.0,-1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void main(int argc, char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutCreateWindow("GL!");
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
SetupRC();
glutMainLoop();
}
В результате всё заливается синим цветом, квадрат не рисуется. Если не вызывать SetupRC(), всё заливается черным цветом, т.е. glClear, похоже, всё равно не вызывается. С чем такое связано?