class = require('vendor.30log') inspect = require('vendor.inspect') lume = require('vendor.lume') Node = require('core.node') ThreadNode = require('core.thread-node') NodeManager = require('core.node-manager') local config = nil if os.getenv("SIGNAGE_CONFIG") ~= nil then local f = loadfile(os.getenv("SIGNAGE_CONFIG")) if f ~= nil then config = f() else error("SIGNAGE_CONFIG given but could not be loaded") end else config = require('config') end local push = require('vendor.push') local lurker = require('vendor.lurker') lurker.quiet = true lurker.interval = 3 local debugGraph = require('vendor.debugGraph') local fpsGraph = debugGraph:new('fps', 0, 0) local memGraph = debugGraph:new('mem', 0, 30) local gameWidth, gameHeight = config.renderWidth, config.renderHeight local windowWidth, windowHeight = love.window.getDesktopDimensions() windowWidth, windowHeight = windowWidth*.5, windowHeight*.5 --make the window a bit smaller than the screen itself if config.environment == 'dev' then push:setupScreen(gameWidth, gameHeight, windowWidth, windowHeight, {fullscreen = false, resizable = true}) else push:setupScreen(gameWidth, gameHeight, gameWidth, gameHeight, {fullscreen = true}) end function love.resize(w, h) push:resize(w, h) manager:resize(w, h) end function love.load() manager = NodeManager(config) manager:load() manager:resize(push:getWidth(), push:getHeight()) love.mouse.setVisible( false ) end function getw() return push:getWidth() end function geth() return push:getHeight() end function love.draw() push:start() -- Patch love.graphics.getWidth/Height to account for push oldw, oldh = love.graphics.getWidth, love.graphics.getHeight love.graphics.getWidth, love.graphics.getHeight = getw, geth manager:render() -- Draw graphs love.graphics.setColor(1.0, 1.0, 1.0, 0.5) -- love.graphics.setNewFont(10) -- love.graphics.print(inspect(state), 0, 60, 0) fpsGraph:draw() memGraph:draw() love.graphics.getWidth, love.graphics.getHeight = oldw, oldh push:finish() end function love.keypressed( key, scancode, isrepeat ) if key == "right" then -- Cycle to next state manager.stateTime = 2137 end end function love.update(dt) manager:update(dt) -- Update the graphs fpsGraph:update(dt) memGraph:update(dt) lurker.update() end function lurker.preswap(f) if f == 'config.lua' then print('config reloaded, notifying nodemanager') package.loaded['config'] = nil manager.config = require('config'); manager:configChanged(); elseif f:match('_thread.lua') then return false end end