Files
cell/scripts/modules/loop.js
John Alanbrook 60dce4a08f
All checks were successful
Build and Deploy / build-linux (push) Successful in 34s
Build and Deploy / build-windows (CLANG64) (push) Successful in 9m15s
Build and Deploy / package-dist (push) Has been skipped
Build and Deploy / deploy-itch (push) Has been skipped
Build and Deploy / deploy-gitea (push) Has been skipped
imgui is always compiled in, and developer selects to enable or disable its drawing; fix bug with rendering lines that caused prosperon to crash
2025-02-20 17:28:27 -06:00

50 lines
1.0 KiB
JavaScript

// loop.js
var render = use('render') // The refactored file above
var layout = use('clay')
var input = use('input')
var emitter = use('emitter')
var os = use('os')
var event = use('event')
var imgui = use('imgui')
var tracy = use('tracy')
var waittime = 1/240
var last_frame_time = 0
var frame_t = 0
var fpses = []
var timescale = 1
function step() {
var now = os.now()
var dt = now - last_frame_time
if (dt < waittime) os.sleep(waittime - dt)
last_frame_time = os.now()
dt = last_frame_time - frame_t
frame_t = last_frame_time
event.engine_input(e => prosperon.dispatch(e.type, e))
layout.newframe()
prosperon.appupdate(dt)
input.procdown()
emitter.update(dt * timescale)
os.update_timers(dt * timescale)
prosperon.update(dt * timescale)
render.setup_draw()
render.setup_hud()
if (imgui) imgui.prosperon_menu();
// Now do the GPU present (calls gpupresent in render.js)
render._main.present()
tracy.end_frame()
}
// Return or export them so you can call from a main script
return {
step
}