public void Draw(Rect aRect)
{
#if RECTANGLE
Cocoa.Color rgbColor;
#endif
glViewport(0, 0, 520, 310);
glMatrixMode(0x1701);
glLoadIdentity();
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClear(0x00004000);
gluPerspective(60.0, 1.0, 1.5, 20.0);
glMatrixMode(0x1700);
glLoadIdentity();
gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glRotatef(xrotate, 1.0f, 0.0f, 0.0f);
glRotatef(yrotate, 0.0f, 1.0f, 0.0f);
glRotatef(zrotate, 0.0f, 0.0f, 1.0f);
glScalef(zoom, zoom, zoom);
glBegin(0x0007);
#if RECTANGLE
rgbColor = color1.ToRGB();
glColor3f(rgbColor.RedComponent, rgbColor.GreenComponent, rgbColor.BlueComponent);
glVertex2f(-1.0f, -1.0f);
rgbColor = color2.ToRGB();
glColor3f(rgbColor.RedComponent, rgbColor.GreenComponent, rgbColor.BlueComponent);
glVertex2f(1.0f, -1.0f);
rgbColor = color3.ToRGB();
glColor3f(rgbColor.RedComponent, rgbColor.GreenComponent, rgbColor.BlueComponent);
glVertex2f(1.0f, 1.0f);
rgbColor = color4.ToRGB();
glColor3f(rgbColor.RedComponent, rgbColor.GreenComponent, rgbColor.BlueComponent);
glVertex2f(-1.0f, 1.0f);
#endif
#if CUBE
glColor3f(0.0f, 1.0f, 0.0f); // Color Blue
glVertex3f(1.0f, 1.0f, -1.0f); // Top Right Of The Quad (Top)
glVertex3f(-1.0f, 1.0f, -1.0f); // Top Left Of The Quad (Top)
glVertex3f(-1.0f, 1.0f, 1.0f); // Bottom Left Of The Quad (Top)
glVertex3f(1.0f, 1.0f, 1.0f);
glColor3f(1.0f, 0.5f, 0.0f); // Color Orange
glVertex3f(1.0f, -1.0f, 1.0f); // Top Right Of The Quad (Bottom)
glVertex3f(-1.0f, -1.0f, 1.0f); // Top Left Of The Quad (Bottom)
glVertex3f(-1.0f, -1.0f, -1.0f); // Bottom Left Of The Quad (Bottom)
glVertex3f(1.0f, -1.0f, -1.0f);
glColor3f(1.0f, 0.0f, 0.0f); // Color Red
glVertex3f(1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Front)
glVertex3f(-1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Front)
glVertex3f(-1.0f, -1.0f, 1.0f); // Bottom Left Of The Quad (Front)
glVertex3f(1.0f, -1.0f, 1.0f);
glColor3f(1.0f, 1.0f, 0.0f); // Color Yellow
glVertex3f(1.0f, -1.0f, -1.0f); // Top Right Of The Quad (Back)
glVertex3f(-1.0f, -1.0f, -1.0f); // Top Left Of The Quad (Back)
glVertex3f(-1.0f, 1.0f, -1.0f); // Bottom Left Of The Quad (Back)
glVertex3f(1.0f, 1.0f, -1.0f);
glColor3f(0.0f, 0.0f, 1.0f); // Color Blue
glVertex3f(-1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Left)
glVertex3f(-1.0f, 1.0f, -1.0f); // Top Left Of The Quad (Left)
glVertex3f(-1.0f, -1.0f, -1.0f); // Bottom Left Of The Quad (Left)
glVertex3f(-1.0f, -1.0f, 1.0f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 0.0f, 1.0f); // Color Violet
glVertex3f(1.0f, 1.0f, -1.0f); // Top Right Of The Quad (Right)
glVertex3f(1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Right)
glVertex3f(1.0f, -1.0f, 1.0f); // Bottom Left Of The Quad (Right)
glVertex3f(1.0f, -1.0f, -1.0f); // Bottom Right Of The Quad (Right)
#endif
glEnd();
glFlush();
frames++;
DateTime end = DateTime.Now;
if ((end - start).TotalSeconds > 1)
{
if (Application.SharedApplication.MainWindow != null)
{
Application.SharedApplication.MainWindow.Title = System.String.Format("{0}fps", frames / (end - start).TotalSeconds);
}
frames = 0;
start = DateTime.Now;
}
}