From 11b87c843e20f66bd68e02353ba4a1072e1230a6 Mon Sep 17 00:00:00 2001 From: Vito Caputo Date: Sun, 14 Feb 2021 22:43:08 -0800 Subject: *: 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. --- src/rototiller.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/rototiller.h') 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 -- cgit v1.2.1