OpenTK.Matrix4 ProjectionMatrix;\r
int[] Viewport = new int[4];\r
bool useVBO = true;\r
+ int lastTimerTick;\r
+ int advTimerTick;\r
\r
#endregion Private fields\r
\r
};\r
textureThread.Start();\r
TextureThreadContextReady.WaitOne(1000, false);\r
+ this.lastTimerTick = Environment.TickCount;\r
glControl.MakeCurrent();\r
}\r
catch (Exception ex)\r
{\r
item.Data.TextureInfo = TexturesPtrMap[item.TeFace.TextureID];\r
GL.BindTexture(TextureTarget.Texture2D, item.Data.TextureInfo.TexturePointer);\r
+ \r
continue;\r
}\r
\r
#pragma warning disable 0612\r
OpenTK.Graphics.TextPrinter Printer = new OpenTK.Graphics.TextPrinter(OpenTK.Graphics.TextQuality.High);\r
#pragma warning restore 0612\r
+\r
+ private void RenderStats()\r
+ {\r
+ int posX = glControl.Width - 100;\r
+ int posY = 0;\r
+\r
+ int elapsedTime = Environment.TickCount - lastTimerTick;\r
+ lastTimerTick = Environment.TickCount;\r
+ // This is a FIR filter known as a MMA or Modified Mean Average, using a 20 point sampling width\r
+ advTimerTick = ((19 * advTimerTick) + elapsedTime) / 20;\r
+\r
+ GL.Color4(0f, 0f, 0f, 0.6f);\r
+ Printer.Begin();\r
+ Printer.Print(String.Format("FPS {0:000.00}",1000.0f/(float)advTimerTick), AvatarTagFont, Color.Orange,\r
+ new RectangleF(posX, posY, 100, 50),\r
+ OpenTK.Graphics.TextPrinterOptions.Default, OpenTK.Graphics.TextAlignment.Center);\r
+ Printer.End();\r
+ }\r
+\r
private void RenderText()\r
{\r
GLHUDBegin();\r
RenderWater();\r
RenderObjects(RenderPass.Alpha);\r
RenderText();\r
+ RenderStats();\r
}\r
\r
// Pop the world matrix\r
GL.PopMatrix();\r
GL.Flush();\r
+\r
}\r
\r
private void GluPerspective(float fovy, float aspect, float zNear, float zFar)\r