diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2021-02-14 22:43:08 -0800 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2021-02-14 22:51:37 -0800 |
commit | 11b87c843e20f66bd68e02353ba4a1072e1230a6 (patch) | |
tree | 15458ff0ac2b61b51517fb26ca3cd4b148c2a96f /src/rototiller.h | |
parent | 950d6abb1ffd126a3200044de31b631ac987ed7e (diff) |
*: split rototiller.[ch] into lib and main
This is a first approximation of separating the core modules and
threaded rendering from the cli-centric rototiller program and
its sdl+drm video backends.
Unfortunately this seemed to require switching over to libtool
archives (.la) to permit consolidating the per-lib and
per-module .a files into the librototiller.a and linking just
with librototiller.a to depend on the aggregate of
libs+modules+librototiller-glue in a simple fashion.
If an alternative to .la comes up I will switch over to it,
using libtool really slows down the build process.
Those are implementation/build system details though. What's
important in these changes is establishing something resembling a
librototiller API boundary, enabling creating alternative
frontends which vendor this tree as a submodule and link just to
librototiller.{la,a} for all the modules+threaded rendering of
them, while providing their own fb_ops_t for outputting into, and
their own settings applicators for driving the modules setup.
Diffstat (limited to 'src/rototiller.h')
-rw-r--r-- | src/rototiller.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/rototiller.h b/src/rototiller.h index e185624..fde7d43 100644 --- a/src/rototiller.h +++ b/src/rototiller.h @@ -25,8 +25,12 @@ typedef struct rototiller_module_t { char *license; } rototiller_module_t; +int rototiller_init(void); +void rototiller_shutdown(void); const rototiller_module_t * rototiller_lookup_module(const char *name); void rototiller_get_modules(const rototiller_module_t ***res_modules, size_t *res_n_modules); void rototiller_module_render(const rototiller_module_t *module, void *context, unsigned ticks, fb_fragment_t *fragment); +int rototiller_module_create_context(const rototiller_module_t *module, unsigned ticks, void **res_context); +int rototiller_module_setup(settings_t *settings, setting_desc_t **next_setting); #endif |