Exemple #1
0
        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();
        }