summaryrefslogtreecommitdiff
path: root/src/rototiller.h
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2021-02-14 22:43:08 -0800
committerVito Caputo <vcaputo@pengaru.com>2021-02-14 22:51:37 -0800
commit11b87c843e20f66bd68e02353ba4a1072e1230a6 (patch)
tree15458ff0ac2b61b51517fb26ca3cd4b148c2a96f /src/rototiller.h
parent950d6abb1ffd126a3200044de31b631ac987ed7e (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.h4
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
© All Rights Reserved