/// <summary> /// Constructor of FrameStatistics class /// </summary> internal FrameStatistics() { _currentFrame = new FrameDetail(); _frameDetails = new FrameDetail[_historicLength]; for (int i = 0; i < _historicLength; i++) _frameDetails[i] = new FrameDetail(); }
/// <summary> /// Resizes logs of frames statistics /// </summary> private void Resize() { FrameDetail[] newDetails = new FrameDetail[_historicLength]; int previousLength = _frameDetails.Length; for (int i = 0; i < _historicLength; i++) { if(i < previousLength) newDetails[i] = _frameDetails[i]; else newDetails[i] = new FrameDetail(); } _frameDetails = newDetails; }
/// <summary> /// Pushs the current frame at the top of the logs /// </summary> internal void SaveCurrentFrame() { int lastIdx = _historicLength - 1; FrameDetail newCurrent = _frameDetails[lastIdx]; if (_historicLength > 1) { for (int i = lastIdx; i > 0; i--) _frameDetails[i] = _frameDetails[i - 1]; } _frameDetails[0] = _currentFrame; _currentFrame = newCurrent; _currentFrame.Reset(); }