Закрасить грани куба OpenGL C++
Попытался закрасить грани куба, а вышло так что закрасился каркас куба. Что нужно исправить чтобы грани закрасились каждая определенным цветом?
//---------------------------------------------------------------------------
#include
#include
#include
#include
#include
#include
#include
#pragma hdrstop
#include "MainForms.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
HDC dc = Canvas->Handle;
PIXELFORMATDESCRIPTOR pfd;
memset( &pfd, 0, sizeof pfd );
pfd.nSize = sizeof pfd;
pfd.cColorBits = 8;
pfd.cDepthBits = 8;
pfd.iPixelType = PFD_TYPE_RGBA;
pfd.iLayerType = PFD_MAIN_PLANE;
pfd.dwFlags = PFD_SUPPORT_OPENGL | PFD_GENERIC_ACCELERATED;
int index = ChoosePixelFormat( dc, &pfd );
SetPixelFormat( dc, index, NULL );
HGLRC context = wglCreateContext( dc );
wglMakeCurrent( dc, context );
glClearColor( 0, 0.2, 0.4, 1.0 );
glPolygonMode( GL_FRONT_AND_BACK, GL_LINE );
glDepthFunc(GL_LEQUAL);
glShadeModel(GL_SMOOTH);
glEnable(GL_LINE_SMOOTH);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
ClientWidth = 400;
ClientHeight = 400;
}
//---------------------------------------------------------------------------
TForm1::~TForm1()
{
HGLRC context = wglGetCurrentContext();
wglMakeCurrent( NULL, NULL );
wglDeleteContext( context );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DisplayTimerTimer(TObject *Sender)
{
glClear( GL_COLOR_BUFFER_BIT );
glBegin(GL_QUADS);
glColor3f(1.0,0.0,0.0);
glVertex3f( -1, -1, -1);
glVertex3f( -1, 1, -1);
glVertex3f( -1, 1, 1);
glVertex3f( -1, -1, 1);
glColor3f(0.0,1.0,0.0);
glVertex3f( 1, -1, -1);
glVertex3f( 1, -1, 1);
glVertex3f( 1, 1, 1);
glVertex3f( 1, 1, -1);
glColor3f(0.0,0.0,1.0);
glVertex3f( -1, -1, -1);
glVertex3f( -1, -1, 1);
glVertex3f( 1, -1, 1);
glVertex3f( 1, -1, -1);
glColor3f(1.0,1.0,0.0);
glVertex3f( -1, 1, -1);
glVertex3f( -1, 1, 1);
glVertex3f( 1, 1, 1);
glVertex3f( 1, 1, -1);
glColor3f(1.0,0.0,1.0);
glVertex3f( -1, -1, -1);
glVertex3f( 1, -1, -1);
glVertex3f( 1, 1, -1);
glVertex3f( -1, 1, -1);
glColor3f(0.0,1.0,1.0);
glVertex3f( -1, -1, 1);
glVertex3f( 1, -1, 1);
glVertex3f( 1, 1, 1);
glVertex3f( -1, 1, 1);
glEnd();
glFinish();
glPopMatrix();
SwapBuffers( Canvas->Handle );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
glViewport( 0, 0, ClientWidth, ClientHeight );
}
//---------------------------------------------------------------------------