51 lines
1.0 KiB
JavaScript
51 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
|
|
}
|