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; } }