protected override void EndDraw() { RenderCoordinator.WorkStopwatch.Restart(); try { RenderCoordinator.EndDraw(); } catch (Exception exc) { Console.WriteLine("Caught {0} in EndDraw", exc); throw; } finally { RenderCoordinator.WorkStopwatch.Stop(); var lpc = NativeBatch.LifetimePrimitiveCount; var ppc = NextFrameTiming.PriorPrimitiveCount; var lcc = NativeBatch.LifetimeCommandCount; var pcc = NextFrameTiming.PriorCommandCount; NextFrameTiming.Prepare = RenderCoordinator.PrepareStopwatch.Elapsed; NextFrameTiming.EndDraw = RenderCoordinator.WorkStopwatch.Elapsed; NextFrameTiming.BeforeIssue = RenderCoordinator.BeforeIssueStopwatch.Elapsed; NextFrameTiming.BeforePresent = RenderCoordinator.BeforePresentStopwatch.Elapsed; NextFrameTiming.AfterPresent = RenderCoordinator.AfterPresentStopwatch.Elapsed; NextFrameTiming.Wait = RenderCoordinator.WaitStopwatch.Elapsed; NextFrameTiming.PrimitiveCount = (int)(lpc - ppc); NextFrameTiming.CommandCount = (int)(lcc - pcc); PreviousFrameTiming = NextFrameTiming; RenderCoordinator.WaitStopwatch.Reset(); RenderCoordinator.BeforePresentStopwatch.Reset(); RenderCoordinator.AfterPresentStopwatch.Reset(); } ThreadGroup.TryStepMainThreadUntilDrained(); }
protected override void EndDraw() { RenderCoordinator.WorkStopwatch.Restart(); try { RenderCoordinator.EndDraw(); } finally { RenderCoordinator.WorkStopwatch.Stop(); NextFrameTiming.EndDraw = RenderCoordinator.WorkStopwatch.Elapsed; NextFrameTiming.Wait = RenderCoordinator.WaitStopwatch.Elapsed; PreviousFrameTiming = NextFrameTiming; RenderCoordinator.WaitStopwatch.Reset(); } RenderCoordinator.EnableThreading = _UseThreadedDraw; }
protected override void EndDraw() { RenderCoordinator.WorkStopwatch.Restart(); try { RenderCoordinator.EndDraw(); } finally { RenderCoordinator.WorkStopwatch.Stop(); var lpc = NativeBatch.LifetimePrimitiveCount; var ppc = NextFrameTiming.PriorPrimitiveCount; NextFrameTiming.EndDraw = RenderCoordinator.WorkStopwatch.Elapsed; NextFrameTiming.BeforePresent = RenderCoordinator.BeforePresentStopwatch.Elapsed; NextFrameTiming.Wait = RenderCoordinator.WaitStopwatch.Elapsed; NextFrameTiming.PrimitiveCount = (int)(lpc - ppc); PreviousFrameTiming = NextFrameTiming; RenderCoordinator.WaitStopwatch.Reset(); RenderCoordinator.BeforePresentStopwatch.Reset(); } RenderCoordinator.EnableThreading = UseThreadedDraw; }