void __fastcall TForm1 :: Render(void)
{
float xp,yp,zp;
if (ApplicationClosing == true) return;
if(wglMakeCurrent(hdc, hrc) == false)
{
ShowMessage("Context lost.");
Application->Terminate();
}
glMatrixMode( GL_MODELVIEW);
glPushMatrix();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glLightfv( GL_LIGHT0, GL_POSITION, swiatlo_position);
glTranslatef(XTranslation,YTranslation,ZTranslation);
glRotatef(angle+XRotation+float(XDelta),0,1,0);
glInitNames();
glPushName(0);
for (unsigned int i = 1; i <= Scena->ObjectCount; i++)
{
if (ActiveMod >-1)
{
glPushMatrix();
glLoadIdentity;
glTranslatef(Form1->Modifiers[ActiveMod].Translation[Scena->Displays[i-1].SequenceID-1].X,
Form1->Modifiers[ActiveMod].Translation[Scena->Displays[i-1].SequenceID-1].Y,
Form1->Modifiers[ActiveMod].Translation[Scena->Displays[i-1].SequenceID-1].Z);
glTranslatef(Scena->ObjectList[i-1].Midpoint.X,
Scena->ObjectList[i-1].Midpoint.Y,
Scena->ObjectList[i-1].Midpoint.Z);
glRotatef(Form1->Modifiers[ActiveMod].Rotation[Scena->Displays[i-1].SequenceID-1].X,1,0,0);
glTranslatef(-Scena->ObjectList[i-1].Midpoint.X,
-Scena->ObjectList[i-1].Midpoint.Y,
-Scena->ObjectList[i-1].Midpoint.Z);
}
if (i == Selected) glColor3f(1,0.2,0.2);
else glColor3f(0.7,0.7,0.7);
if (i < 26) glLoadName(i);
else glLoadName(0xFF);
glCallList(i);
if (ActiveMod >-1)
{
glPopMatrix();
}
}
glPopMatrix();
glFlush();
SwapBuffers(hdc);
GLenum glerr = glGetError();
}