public void AccumulateAndDraw(Scene scene, Navigation navigation) { if (navigation.IsViewDirty) { stopwatch.Stop(); stopwatch.Reset(); CumulativeMilliseconds = 0; accumulator.Clear(); iteration = 0; stopwatch.Start(); navigation.IsViewDirty = false; } if (iteration < MaxIterations) { accumulator.PreAccumulate(); for (int i = 0; (i < ViewsPerFrame) && (iteration < MaxIterations); i++) { accumulator.PreDraw(); DrawSingleFrame(iteration, scene, navigation); accumulator.PostDraw(); iteration++; } accumulator.PostAccumulate(); CumulativeMilliseconds = stopwatch.ElapsedMilliseconds; } if (iteration == MaxIterations) { stopwatch.Stop(); } accumulator.Show(); }