Unify initialisations into `coot_init()`
This MR adds a standalone coot_init()
function and coot_synchronise()
function, which isolates the coot_rt_t
struct entirely from the user. Previously a user would have to call get_rt().init()
to do a custom initialisation, and get_rt().synchronise()
to synchronise. With these standalone functions, there is never any reason for get_rt()
to appear in user code (which is how it should be, that's an internal detail).
In addition, the first get_rt()
call (e.g. when a user creates a Bandicoot matrix) will automatically perform initialisation. This means user code does not even require any specific coot_init()
call, unless they want to configure the way Bandicoot is initialised. For this support, it was necessary to add an initialised
member to coot_rt_t
.