| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- local class = require("class")
- local DebugWindow = require("debug_overlay.debugwindow")
- require "imgui"
- local Graphs = class(DebugWindow)
- local function shift_push_array(arr, new)
- for i=1,#arr-1 do
- arr[i] = arr[i+1]
- end
- arr[#arr] = new
- end
- function Graphs:init()
- self.shortcut = "f11"
- self.fps = {}
- self.cpu = {}
- self.mem = {}
- self.mem_avg = 0
- for i=1,60 do self.fps[i], self.cpu[i], self.mem[i] = 0,0,0 end
- end
- function Graphs:update_avg()
- local sum = 0
- for k,v in ipairs(self.mem) do
- sum = sum + v
- end
- self.mem_avg = sum / #self.mem
- end
- function Graphs:update()
- shift_push_array(self.fps, love.timer.getFPS())
- shift_push_array(self.cpu, love.timer.getDelta())
- shift_push_array(self.mem, collectgarbage("count"))
- self:update_avg()
- end
- function Graphs:render()
- imgui.Begin("Performance")
- imgui.PlotLines("CPU", self.cpu, #self.cpu, 0, "", 0, 15)
- imgui.PlotLines("FPS", self.fps, #self.fps, 0, "", 0, 60)
- imgui.PlotLines("Mem", self.mem, #self.mem)
- imgui.TextUnformatted(string.format("Average DT %0.3f ms", love.timer.getAverageDelta()*1000))
- imgui.TextUnformatted(string.format("Memory %0.2f KB", self.mem_avg))
- imgui.End()
- end
- return Graphs
|