[OpenTK] Remove Thread.Sleep() from loop timing

This commit is contained in:
Stefanos A. 2014-01-13 11:36:56 +01:00
parent b3554bb74c
commit 3eccb89821

View file

@ -431,10 +431,15 @@ namespace OpenTK
} }
} }
double ClampElapsed(double elapsed)
{
return MathHelper.Clamp(elapsed, 0.0, 1.0);
}
void DispatchUpdateAndRenderFrame(object sender, EventArgs e) void DispatchUpdateAndRenderFrame(object sender, EventArgs e)
{ {
double timestamp = watch.Elapsed.TotalSeconds; double timestamp = watch.Elapsed.TotalSeconds;
double elapsed = MathHelper.Clamp(timestamp - update_timestamp, 0.0, 1.0); double elapsed = ClampElapsed(timestamp - update_timestamp);
// Calculate how many update events we need to execute in order to reach // Calculate how many update events we need to execute in order to reach
// our desired TargetUpdateFrequency // our desired TargetUpdateFrequency
@ -450,17 +455,15 @@ namespace OpenTK
RaiseUpdateFrame(elapsed, ref timestamp); RaiseUpdateFrame(elapsed, ref timestamp);
--update_count; --update_count;
} }
elapsed = MathHelper.Clamp(timestamp - update_timestamp, 0.0, 1.0); elapsed = ClampElapsed(timestamp - update_timestamp);
} }
//timestamp = watch.Elapsed.TotalSeconds; //timestamp = watch.Elapsed.TotalSeconds;
elapsed = MathHelper.Clamp(timestamp - render_timestamp, 0.0, 1.0); elapsed = ClampElapsed(timestamp - render_timestamp);
if (elapsed > 0 && elapsed >= TargetRenderPeriod) if (elapsed > 0 && elapsed >= TargetRenderPeriod)
{ {
RaiseRenderFrame(elapsed, ref timestamp); RaiseRenderFrame(elapsed, ref timestamp);
} }
Thread.Sleep(1);
} }
void RaiseUpdateFrame(double elapsed, ref double timestamp) void RaiseUpdateFrame(double elapsed, ref double timestamp)