Not a function that runs until done: an entry file ends with return tecs.newApplication(config) and the host drives it from there, because a platform that never hands control back has no loop to block in.
Read here, so a field changed on the table afterwards is not seen. Nothing is opened yet: the window, the GPU device and the audio mixer are the host's to bring up on the first callback, which is what lets an entry file be loaded by a tool that never runs one.
The application the host drives through its init, event, iterate and quit callbacks. Returning it is the whole contract; a game that calls into it itself is doing the host's job.
An owned value that releases its active lifetime explicitly.
close may report a delayed finalization failure. Every implementation returns true on success. Its own contract defines whether repeated calls are safe.
Registers one owned value for cleanup and returns it unchanged.
The scope is active only inside the callback passed to scoped. Calling a captured scope after that callback returns, raises, or begins cleanup raises instead of creating an ownership obligation nobody will run. Passing nil raises with reason when one is supplied, which lets a constructor's value, reason result pass directly to own. Without a supplied reason, or with a value that has no close method, own raises its own argument error.
The callback runs synchronously and must not yield. Every value it registers closes in reverse order before this function returns or propagates a failure. Cleanup begins by making the scope inactive, and one failing close does not prevent the remaining closes.
The callback that receives the only active Scope for this invocation. Returned values are ignored, and registered resources must not be used after the callback ends.