diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rototiller.c | 9 | ||||
| -rw-r--r-- | src/rototiller.h | 1 | 
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;  | 
