+6
-5
data/core/init.lua
+6
-5
data/core/init.lua
···
365
365
-- update
366
366
core.root_view.size.x, core.root_view.size.y = width, height
367
367
core.root_view:update()
368
-
if not core.redraw then
369
-
if not system.window_has_focus() then system.wait_event(0.5) end
370
-
return
371
-
end
368
+
if not core.redraw then return false end
372
369
core.redraw = false
373
370
374
371
-- close unreferenced docs
···
394
391
renderer.set_clip_rect(table.unpack(core.clip_rect_stack[1]))
395
392
core.root_view:draw()
396
393
renderer.end_frame()
394
+
return true
397
395
end
398
396
399
397
···
432
430
function core.run()
433
431
while true do
434
432
core.frame_start = system.get_time()
435
-
core.step()
433
+
local did_redraw = core.step()
436
434
run_threads()
435
+
if not did_redraw and not system.window_has_focus() then
436
+
system.wait_event(0.25)
437
+
end
437
438
local elapsed = system.get_time() - core.frame_start
438
439
system.sleep(math.max(0, 1 / config.fps - elapsed))
439
440
end