summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rototiller.c9
-rw-r--r--src/rototiller.h1
2 files changed, 7 insertions, 3 deletions
diff --git a/src/rototiller.c b/src/rototiller.c
index c0a755b..079b0d4 100644
--- a/src/rototiller.c
+++ b/src/rototiller.c
@@ -70,10 +70,13 @@ static void module_render_page_threaded(rototiller_module_t *module, void *conte
static void module_render_page(rototiller_module_t *module, void *context, threads_t *threads, fb_page_t *page)
{
- if (!module->prepare_frame)
- return module->render_fragment(context, &page->fragment);
+ if (module->prepare_frame)
+ module_render_page_threaded(module, context, threads, page);
+ else
+ module->render_fragment(context, &page->fragment);
- module_render_page_threaded(module, context, threads, page);
+ if (module->finish_frame)
+ module->finish_frame(context, &page->fragment);
}
diff --git a/src/rototiller.h b/src/rototiller.h
index beafc52..84b3842 100644
--- a/src/rototiller.h
+++ b/src/rototiller.h
@@ -12,6 +12,7 @@ typedef struct rototiller_module_t {
void (*destroy_context)(void *context);
void (*prepare_frame)(void *context, unsigned n_cpus, fb_fragment_t *fragment, rototiller_fragmenter_t *res_fragmenter);
void (*render_fragment)(void *context, fb_fragment_t *fragment);
+ void (*finish_frame)(void *context, fb_fragment_t *fragment);
char *name;
char *description;
char *author;
© All Rights Reserved