Is there something wrong with this code? It doesn’t seem to draw all the faces of the cube.
#include <GL/freeglut.h>
float angle;
void display()
{
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glRotatef(angle, 0.5, 0.5, 0.0f);
glBegin(GL_QUADS);
// FACE ONE!!
glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
glVertex3f(0.5, 0.5, 0.0);
glVertex3f(0.0, 0.5, 0.0);
glVertex3f(0.0, 0.5, 0.5);
glVertex3f(0.5, 0.5, 0.5);
// FACE TWO!!
glColor4f(0.0f, 1.0f, 0.0f, 1.0f);
glVertex3f(0.5, 0.5, 0.0);
glVertex3f(0.5, 0.5, 0.5);
glVertex3f(0.5, 0.0, 0.5);
glVertex3f(0.5, 0.0, 0.0);
// FACE THREE!!
glColor4f(0.0f, 0.0f, 0.0f, 1.0f);
glVertex3f(0.5, 0.5, 0.5);
glVertex3f(0.0, 0.5, 0.5);
glVertex3f(0.0, 0.0, 0.5);
glVertex3f(0.5, 0.0, 0.5);
// FACE FOUR!!
glColor4f(0.0f, 0.0f, 1.0f, 1.0f);
glVertex3f(0.5, 0.5, 0.0);
glVertex3f(0.0, 0.5, 0.0);
glVertex3f(0.0, 0.0, 0.0);
glVertex3f(0.5, 0.0, 0.0);
// FACE FIVE!!
glColor4f(1.0f, 1.0f, 0.0f, 1.0f);
glVertex3f(0.5, 0.5, 0.0);
glVertex3f(0.5, 0.5, 0.5);
glVertex3f(0.5, 0.0, 0.5);
glVertex3f(0.5, 0.0, 0.0);
// FACE SIX!!
glColor4f(0.0f, 1.0f, 1.0f, 1.0f);
glVertex3f(0.5, 0.0, 0.0);
glVertex3f(0.0, 0.0, 0.0);
glVertex3f(0.0, 0.0, 0.5);
glVertex3f(0.5, 0.0, 0.5);
glEnd();
glutSwapBuffers();
}
void rotation(int timer)
{
angle += 0.5f;
glutTimerFunc(1000 / 50, rotation, timer);
}
void framerate(int timer)
{
glutPostRedisplay();
glutTimerFunc(1000 / 100, framerate, timer);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_RGBA | GLUT_DOUBLE);
glutInitWindowPosition(0, 0);
glutInitWindowSize(600, 600);
glutCreateWindow("dimension3");
glEnable(GL_BLEND);
glutDisplayFunc(display);
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glutTimerFunc(1000 / 100, framerate, 1);
glutTimerFunc(1000 / 50, rotation, 2);
glutMainLoop();
return 0;
}