I am using OpenTK in vb.net.
I am using elapsedticks to determine how many ticks have elapsed during the updateframe method.
To measure my fps, I set up a stopwatch in my onUpdateFrame method:
Dim s As New Stopwatch
Protected Overrides Sub OnUpdateFrame(e As FrameEventArgs)
s.Start()
Console.Write((s.ElapsedTicks).ToString + " ")
s.Reset()
MyBase.OnUpdateFrame(e)
g.refresh(e.Time)
If s.IsRunning Then s.Stop()
End Sub
Also be aware that the resolution of the underlying timer may not be sufficient for measuring frametimes.[/QUOTE]
The Stopwatch measures elapsed time by counting timer ticks in the underlying timer mechanism. If the installed hardware and operating system support a high-resolution performance counter, then the Stopwatch class uses that counter to measure elapsed time. Otherwise, the Stopwatch class uses the system timer to measure elapsed time. Use the Frequency and IsHighResolution fields to determine the precision and resolution of the Stopwatch timing implementation.
-MSDN
I added the following code in the constructor of the gamewindow to check the stopwatch details:
' Display the timer frequency and resolution.
If Stopwatch.IsHighResolution Then
Console.WriteLine("Operations timed using the system's high-resolution performance counter.")
Else
Console.WriteLine("Operations timed using the DateTime class.")
End If
Dim frequency As Long = Stopwatch.Frequency
Console.WriteLine(" Timer frequency in ticks per second = {0}", frequency)
Dim nanosecPerTick As Long = 1000000000 / frequency
Console.WriteLine(" Timer is accurate within {0} nanoseconds", nanosecPerTick)
Also be aware that the resolution of the underlying timer may not be sufficient for measuring frametimes.[/QUOTE]
The Stopwatch measures elapsed time by counting timer ticks in the underlying timer mechanism. If the installed hardware and operating system support a high-resolution performance counter, then the Stopwatch class uses that counter to measure elapsed time. Otherwise, the Stopwatch class uses the system timer to measure elapsed time. Use the Frequency and IsHighResolution fields to determine the precision and resolution of the Stopwatch timing implementation.
-MSDN
I added the following code in the constructor of the gamewindow to check the stopwatch details:
' Display the timer frequency and resolution.
If Stopwatch.IsHighResolution Then
Console.WriteLine("Operations timed using the system's high-resolution performance counter.")
Else
Console.WriteLine("Operations timed using the DateTime class.")
End If
Dim frequency As Long = Stopwatch.Frequency
Console.WriteLine(" Timer frequency in ticks per second = {0}", frequency)
Dim nanosecPerTick As Long = 1000000000 / frequency
Console.WriteLine(" Timer is accurate within {0} nanoseconds", nanosecPerTick)