Update Service
UpdateService is a global service responsible for driving the main update loop of Weo.
It coordinates frame updates, input polling, and scheduled events, acting as the timing backbone for all other services.
Update Service Service Singleton
Functions
UpdateService:Run() Function
UpdateService:Run(targetFPS)
-
Runs the UpdateService, updating the UI and handling events at a specified target frame rate.
-
Uses
asyncfunction which comes with LuaRT.
Parameters:
targetFPSnumber
The
targetFPSparameter represents the desired update frequency.
It does not guarantee a fixed frame rate, since the actual timing depends on the host system’s performance and the underlying LuaRT scheduler.
UpdateService:Kill() Method
- Kills the UpdateService, stopping the main loop and cleaning up resources.
Signals
UpdateService.Heartbeat Signal
- Fires once every frame, providing the time elapsed
DeltaTimesince the last frame.
The
Heartbeatevent is non-blocking: callbacks are executed once per frame inside the update loop. While they do not block the overall loop, they also do not run concurrently — all connected callbacks are executed sequentially within the same frame tick.
Example
--- Add a FPS counter to the window
UpdateService.Heartbeat:Connect(function(DeltaTime)
window:status("FPS: " .. math.floor(1 / DeltaTime))
end)
--- Run the update loop,set target FPS to 100
UpdateService:Run(100)