3dtrial/renderer4test/hrend/frametime.go

28 lines
511 B
Go
Raw Normal View History

2024-08-07 03:47:16 +00:00
package hrend
import (
"time"
)
// Sum up and average frame times at desired intervals. Average and sum
// should be seconds
type FrameTimer struct {
Sum time.Duration
TotalTime time.Duration
Count int
TotalCount int
LastAverage time.Duration
}
func (ft *FrameTimer) Add(t time.Duration, avgcount int) {
ft.Sum += t
ft.TotalTime += t
ft.Count += 1
ft.TotalCount += 1
if ft.Count%avgcount == 0 {
ft.LastAverage = ft.Sum / time.Duration(ft.Count)
ft.Sum = 0
ft.Count = 0
}
}