mirror of
https://github.com/bloeys/nmage.git
synced 2025-12-29 13:28:20 +00:00
Day 15: Basic renderer+improve material system+lockosthread on init
This commit is contained in:
@ -8,6 +8,12 @@ var (
|
||||
dt float32 = 0.01
|
||||
frameStart time.Time
|
||||
startTime time.Time
|
||||
|
||||
//fps calculator vars
|
||||
dtAccum float32 = 1
|
||||
lastElapsedTime uint64 = 0
|
||||
framesSinceLastFPSUpdate uint = 0
|
||||
avgFps float32 = 1
|
||||
)
|
||||
|
||||
func Init() {
|
||||
@ -15,11 +21,26 @@ func Init() {
|
||||
}
|
||||
|
||||
func FrameStarted() {
|
||||
|
||||
frameStart = time.Now()
|
||||
|
||||
//fps stuff
|
||||
dtAccum += dt
|
||||
framesSinceLastFPSUpdate++
|
||||
et := ElapsedTime()
|
||||
if et > lastElapsedTime {
|
||||
avgDT := dtAccum / float32(framesSinceLastFPSUpdate)
|
||||
avgFps = 1 / avgDT
|
||||
|
||||
dtAccum = 0
|
||||
framesSinceLastFPSUpdate = 0
|
||||
}
|
||||
lastElapsedTime = et
|
||||
}
|
||||
|
||||
func FrameEnded() {
|
||||
|
||||
//Calculate new dt
|
||||
dt = float32(time.Since(frameStart).Seconds())
|
||||
if dt == 0 {
|
||||
dt = float32(time.Microsecond)
|
||||
@ -31,6 +52,11 @@ func DT() float32 {
|
||||
return dt
|
||||
}
|
||||
|
||||
//GetAvgFPS returns the fps averaged over 1 second
|
||||
func GetAvgFPS() float32 {
|
||||
return avgFps
|
||||
}
|
||||
|
||||
//ElapsedTime is time since game start
|
||||
func ElapsedTime() uint64 {
|
||||
return uint64(time.Since(startTime).Seconds())
|
||||
|
||||
Reference in New Issue
Block a user