Report() public static method

public static Report ( string title ) : void
title string
return void
Ejemplo n.º 1
0
        public bool ToggleMeteringLongestFrame()
        {
            bool value = false;

            if (meterLongestFrame)
            {
                if (longestFrameMeterEvents != null)
                {
                    MeterManager.Report("Longest Frame", longestFrameMeterEvents);
                    longestFrameMeterEvents = null;
                    value = true;
                }
            }
            longestFrameTime  = 0;
            meterLongestFrame = !meterLongestFrame;
            return(value);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///		Starts the default rendering loop.
        /// </summary>
        public void StartRendering()
        {
            bool cachedMeterLongestFrame = false;
            int  frameStartTime          = 0;

            Debug.Assert(activeRenderSystem != null, "Engine cannot start rendering without an active RenderSystem.");

            activeRenderSystem.InitRenderTargets();

            // initialize the vars
            lastStartTime = lastEndTime = timer.Milliseconds;

            // reset to false so that rendering can begin
            queuedEnd = false;

            while (!queuedEnd)
            {
                // Make sure we're collecting if it's called for
                if (meterFrameCount > 0)
                {
                    MeterManager.Collecting = true;
                }
                else if (meterLongestFrame)
                {
                    cachedMeterLongestFrame = true;
                    MeterManager.Collecting = true;
                    frameStartTime          = System.Environment.TickCount;
                }

                // allow OS events to process (if the platform requires it
                frameMeter.Enter();
                eventMeter.Enter();
                PlatformManager.Instance.DoEvents();
                eventMeter.Exit();

                if (suspendRendering)
                {
                    Thread.Sleep(100);
                    frameMeter.Exit();
                    continue;
                }

                renderMeter.Enter();
                RenderOneFrame();
                renderMeter.Exit();

                if (activeRenderSystem.RenderTargetCount == 0)
                {
                    QueueEndRendering();
                }
                frameMeter.Exit();

                // Turn metering on or off, and generate the report if
                // we're done
                if (meterFrameCount > 0)
                {
                    meterFrameCount--;
                    if (meterFrameCount == 0)
                    {
                        MeterManager.Collecting = false;
                        MeterManager.Report("Frame Processing");
                    }
                }
                else if (pendingMeterFrameCount > 0)
                {
                    // We'll start metering next frame
                    meterFrameCount        = pendingMeterFrameCount;
                    pendingMeterFrameCount = 0;
                }
                else if (cachedMeterLongestFrame)
                {
                    MeterManager.Collecting = false;
                    int frameTime = System.Environment.TickCount - frameStartTime;
                    if (frameTime > longestFrameTime)
                    {
                        longestFrameTime        = frameTime;
                        longestFrameMeterEvents = MeterManager.ReturnEvents();
                    }
                    else
                    {
                        MeterManager.ClearEvents();
                    }
                }
            }
        }