| | 1 | | namespace DCL.FPSDisplay |
| | 2 | | { |
| | 3 | | public class LinealBufferHiccupCounter |
| | 4 | | { |
| 4 | 5 | | private readonly LinealBufferFPSCounter counter = new LinealBufferFPSCounter(); |
| | 6 | | private int hiccupsCountInBuffer = 0; |
| | 7 | | private float hiccupsSum = 0.0f; |
| | 8 | | private float bufferCount = 0.0f; |
| | 9 | |
|
| | 10 | | public int HiccupsCountInBuffer |
| | 11 | | { |
| 0 | 12 | | get => hiccupsCountInBuffer; |
| 0 | 13 | | private set => hiccupsCountInBuffer = value; |
| | 14 | | } |
| | 15 | |
|
| | 16 | | public float HiccupsSum |
| | 17 | | { |
| 0 | 18 | | get => hiccupsSum; |
| 0 | 19 | | set => hiccupsSum = value; |
| | 20 | | } |
| | 21 | |
|
| | 22 | | public float CurrentFPSCount() |
| | 23 | | { |
| 0 | 24 | | return counter.CurrentFPSCount(); |
| | 25 | | } |
| | 26 | |
|
| | 27 | | public float GetTotalSeconds() |
| | 28 | | { |
| 0 | 29 | | return bufferCount; |
| | 30 | | } |
| | 31 | |
|
| | 32 | | public void AddDeltaTime(float valueInSeconds) |
| | 33 | | { |
| 3701 | 34 | | if (IsHiccup(counter.values[counter.end])) |
| | 35 | | { |
| 1414 | 36 | | hiccupsCountInBuffer -= 1; |
| 1414 | 37 | | hiccupsSum -= counter.values[counter.end]; |
| | 38 | | } |
| | 39 | |
|
| 3701 | 40 | | if (IsHiccup(valueInSeconds)) |
| | 41 | | { |
| 3312 | 42 | | hiccupsCountInBuffer += 1; |
| 3312 | 43 | | hiccupsSum += valueInSeconds; |
| | 44 | | } |
| | 45 | |
|
| 3701 | 46 | | bufferCount -= counter.values[counter.end]; |
| 3701 | 47 | | bufferCount += valueInSeconds; |
| | 48 | |
|
| 3701 | 49 | | counter.AddDeltaTime(valueInSeconds); |
| 3701 | 50 | | } |
| | 51 | |
|
| | 52 | | public int CurrentHiccupCount() |
| | 53 | | { |
| 0 | 54 | | return hiccupsCountInBuffer; |
| | 55 | | } |
| | 56 | |
|
| | 57 | | private bool IsHiccup(float value) |
| | 58 | | { |
| 0 | 59 | | return value > FPSEvaluation.HICCUP_THRESHOLD_IN_SECONDS; |
| | 60 | | } |
| | 61 | |
|
| | 62 | | public float GetHiccupSum() |
| | 63 | | { |
| 0 | 64 | | return hiccupsSum; |
| | 65 | | } |
| | 66 | | } |
| | 67 | | } |