Fix running `core.step` when receiving an event while not waiting
When `time_to_wake` was <= 0, so when a coroutine needed to be executed as soon as possible, we didn't check for events, so we only performed a `core.step` with the blink timer. This resulted in jerky reactions to input.
This commit is contained in:
parent
a0ef2906a1
commit
dd75e676bc
|
@ -1461,7 +1461,7 @@ function core.run()
|
||||||
local cursor_time_to_wake = dt + 1 / config.fps
|
local cursor_time_to_wake = dt + 1 / config.fps
|
||||||
next_step = now + cursor_time_to_wake
|
next_step = now + cursor_time_to_wake
|
||||||
end
|
end
|
||||||
if time_to_wake > 0 and system.wait_event(math.min(next_step - now, time_to_wake)) then
|
if system.wait_event(math.min(next_step - now, time_to_wake)) then
|
||||||
next_step = nil -- if we've recevied an event, perform a step
|
next_step = nil -- if we've recevied an event, perform a step
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
|
|
@ -61,10 +61,10 @@ function system.poll_event() end
|
||||||
---
|
---
|
||||||
---Wait until an event is triggered.
|
---Wait until an event is triggered.
|
||||||
---
|
---
|
||||||
---@param timeout number Amount of seconds, also supports fractions
|
---@param timeout? number Amount of seconds, also supports fractions
|
||||||
---of a second, eg: 0.01
|
---of a second, eg: 0.01. If not provided, waits forever.
|
||||||
---
|
---
|
||||||
---@return boolean status True on success or false if there was an error.
|
---@return boolean status True on success or false if there was an error or if no event was received.
|
||||||
function system.wait_event(timeout) end
|
function system.wait_event(timeout) end
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
Loading…
Reference in New Issue