| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- -- If not debug then returning a blank class.
- if not _G.ENABLE_DEBUG_OVERLAY then
- local void = {}
- local mt = {
- __index = function(self, key) return self end,
- __newindex = function(self, key) return self end,
- __metatable = {},
- __call = function() return void end
- }
- setmetatable(void, mt)
- print(void)
- return void
- end
- require("imgui")
- local class, object = require("class"), require("class.object")
- local Console = require("debug_overlay.console")
- local Graphs = require("debug_overlay.graphs")
- local Watch = require("debug_overlay.watch")
- local Debug = class(object)
- function Debug:init()
- self.debug_menus = {
- Debug = {
- Console = Console:new(),
- Watch = Watch:new(),
- Graphs = Graphs:new(),
- }
- }
- self.console = self.debug_menus.Debug.Console
- self.watch = self.debug_menus.Debug.Watch
- end
- function Debug:register_menu(menu_name, windows)
- if self.debug_menus[menu_name] then
- self.console:error('Debug : '..menu_name.." debug menu is already registered.")
- return
- end
- self.debug_menus[menu_name] = windows
- end
- function Debug:render()
- self.debug_menus.Debug.Graphs:update()
- if imgui.BeginMainMenuBar() then
- for menu,windows in pairs(self.debug_menus) do
- -- Menu
- if imgui.BeginMenu(menu) then
- for k,v in pairs(windows) do
- if imgui.MenuItem(k, v.shortcut, v.visible) then
- v:toggle()
- end
- end
- imgui.EndMenu()
- end
- end
- imgui.EndMainMenuBar()
- for menu,windows in pairs(self.debug_menus) do
- for k, window in pairs(windows) do
- if window.visible then
- window:render()
- end
- end
- end
- end
- end
- function Debug:keypressed(key)
- for _, windows in pairs(self.debug_menus) do
- for __, window in pairs(windows) do
- if window.shortcut and key == window.shortcut then
- window:toggle()
- end
- end
- end
- end
- return Debug
|