Merge pull request #508 from tzachshabtay/develop

IOS- fixed crash on first tick
This commit is contained in:
varon 2017-03-20 18:46:00 +02:00 committed by GitHub
commit 027fd80990
2 changed files with 12 additions and 14 deletions

View file

@ -493,8 +493,8 @@ namespace OpenTK.Platform.Android
DateTime prevRenderTime;
DateTime curUpdateTime;
DateTime curRenderTime;
FrameEventArgs updateEventArgs;
FrameEventArgs renderEventArgs;
FrameEventArgs updateEventArgs = new FrameEventArgs();
FrameEventArgs renderEventArgs = new FrameEventArgs();
// this method is called on the main thread if RenderOnUIThread is true
void RunIteration (CancellationToken token)
@ -505,21 +505,19 @@ namespace OpenTK.Platform.Android
if (!ReadyToRender)
return;
updateEventArgs = new FrameEventArgs ();
curUpdateTime = DateTime.Now;
if (prevUpdateTime.Ticks != 0) {
var t = (curUpdateTime - prevUpdateTime).TotalSeconds;
updateEventArgs.Time = t < 0 ? 0 : t;
updateEventArgs.Time = t;
}
UpdateFrameInternal (updateEventArgs);
prevUpdateTime = curUpdateTime;
renderEventArgs = new FrameEventArgs ();
curRenderTime = DateTime.Now;
if (prevRenderTime.Ticks == 0) {
var t = (curRenderTime - prevRenderTime).TotalSeconds;
renderEventArgs.Time = t < 0 ? 0 : t;
renderEventArgs.Time = t;
}
RenderFrameInternal (renderEventArgs);

View file

@ -861,20 +861,20 @@ namespace OpenTK.Platform.iPhoneOS
internal void RunIteration (NSTimer timer)
{
var curUpdateTime = stopwatch.Elapsed;
if (prevUpdateTime == TimeSpan.Zero)
prevUpdateTime = curUpdateTime;
if (prevUpdateTime.Ticks != 0) {
var t = (curUpdateTime - prevUpdateTime).TotalSeconds;
updateEventArgs.Time = t;
}
OnUpdateFrame(updateEventArgs);
prevUpdateTime = curUpdateTime;
gl.BindFramebuffer(All.FramebufferOes, framebuffer);
var curRenderTime = stopwatch.Elapsed;
if (prevRenderTime == TimeSpan.Zero)
prevRenderTime = curRenderTime;
t = (curRenderTime - prevRenderTime).TotalSeconds;
if (prevRenderTime.Ticks == 0) {
var t = (curRenderTime - prevRenderTime).TotalSeconds;
renderEventArgs.Time = t;
}
OnRenderFrame(renderEventArgs);
prevRenderTime = curRenderTime;
}