mirror of
https://github.com/bryanthaboi/gen1recomp
synced 2026-09-26 13:33:27 -04:00
45 lines
1.6 KiB
Lua
45 lines
1.6 KiB
Lua
package.path = "./?.lua;./?/init.lua;" .. package.path
|
|
|
|
local T = require("tests.modkit")
|
|
_G.POKEPORT_LOOP_PANEL_SYNC = nil
|
|
package.loaded["src.core.FrameCap"] = nil
|
|
local FrameCap = require("src.core.FrameCap")
|
|
|
|
T.eq(FrameCap.loopSupportsPanelSync(), false,
|
|
"no marker means a run loop that predates DISPLAY pacing")
|
|
T.eq(FrameCap.normalize(0), FrameCap.DEFAULT,
|
|
"a stored DISPLAY cap paces at the default instead of 1/0")
|
|
T.eq(FrameCap.normalize(-5), FrameCap.DEFAULT, "and so does a negative cap")
|
|
|
|
love = love or {}
|
|
love.system = love.system or {}
|
|
local savedGetOS = love.system.getOS
|
|
local savedGetenv = os.getenv
|
|
os.getenv = function(name)
|
|
if name == "POKEPORT_HANDHELD" then return "1" end
|
|
return savedGetenv(name)
|
|
end
|
|
for _, osName in ipairs({ "Android", "iOS", "UWP" }) do
|
|
love.system.getOS = function() return osName end
|
|
T.eq(FrameCap.prefersPanelSync(), false,
|
|
osName .. " does not prefer panel sync under a legacy loop")
|
|
FrameCap.current = FrameCap.DEFAULT
|
|
FrameCap.applyOptions({})
|
|
T.check(FrameCap.current > 0, osName .. " boots with a positive cap")
|
|
FrameCap.applyOptions({ fpsCap = 0 })
|
|
T.check(FrameCap.current > 0, osName .. " keeps a positive cap for a stored 0")
|
|
FrameCap.current = FrameCap.DEFAULT
|
|
FrameCap.bootPanelSync()
|
|
T.check(FrameCap.current > 0, "bootPanelSync stays positive on " .. osName)
|
|
end
|
|
os.getenv = savedGetenv
|
|
love.system.getOS = savedGetOS
|
|
|
|
_G.POKEPORT_LOOP_PANEL_SYNC = true
|
|
T.eq(FrameCap.normalize(0), FrameCap.DISPLAY,
|
|
"the marker from a current love.run restores DISPLAY")
|
|
_G.POKEPORT_LOOP_PANEL_SYNC = nil
|
|
package.loaded["src.core.FrameCap"] = nil
|
|
|
|
T.finish("frame cap legacy loop #2106")
|