voxelotl-engine/Sources/Voxelotl/FPSCalculator.swift

19 lines
384 B
Swift

import Foundation
public struct FPSCalculator {
private var _accumulator = 0.0
private var _framesCount = 0
public mutating func frame(deltaTime: Double, result: (_ fps: Int) -> Void) {
_framesCount += 1
_accumulator += deltaTime
if _accumulator >= 1.0 {
result(_framesCount)
_framesCount = 0
_accumulator = fmod(_accumulator, 1.0)
}
}
}