diff options
Diffstat (limited to 'src/modules/shapes')
| -rw-r--r-- | src/modules/shapes/shapes.c | 39 | 
1 files changed, 16 insertions, 23 deletions
| diff --git a/src/modules/shapes/shapes.c b/src/modules/shapes/shapes.c index a746f77..8a1da6e 100644 --- a/src/modules/shapes/shapes.c +++ b/src/modules/shapes/shapes.c @@ -57,6 +57,7 @@  #include "til.h"  #include "til_fb.h" +#include "til_module_context.h"  #define SHAPES_DEFAULT_TYPE		SHAPES_TYPE_PINWHEEL  #define SHAPES_DEFAULT_SCALE		1 @@ -76,18 +77,19 @@ typedef enum shapes_type_t {  } shapes_type_t;  typedef struct shapes_setup_t { -	til_setup_t	til_setup; -	shapes_type_t	type; -	float		scale; -	float		pinch; -	float		pinch_spin; -	unsigned	n_pinches; -	unsigned	n_points; -	float		spin; +	til_setup_t		til_setup; +	shapes_type_t		type; +	float			scale; +	float			pinch; +	float			pinch_spin; +	unsigned		n_pinches; +	unsigned		n_points; +	float			spin;  } shapes_setup_t;  typedef struct shapes_context_t { -	shapes_setup_t	setup; +	til_module_context_t	til_module_context; +	shapes_setup_t		setup;  } shapes_context_t; @@ -96,34 +98,26 @@ static shapes_setup_t shapes_default_setup = {  }; -static void * shapes_create_context(unsigned seed, unsigned ticks, unsigned n_cpus, til_setup_t *setup) +static til_module_context_t * shapes_create_context(unsigned seed, unsigned ticks, unsigned n_cpus, til_setup_t *setup)  {  	shapes_context_t	*ctxt;  	if (!setup)  		setup = &shapes_default_setup.til_setup; -	ctxt = calloc(1, sizeof(shapes_context_t)); +	ctxt = til_module_context_new(sizeof(shapes_context_t), seed, n_cpus);  	if (!ctxt)  		return NULL;  	ctxt->setup = *(shapes_setup_t *)setup; -	return ctxt; +	return &ctxt->til_module_context;  } -static void shapes_destroy_context(void *context) +static void shapes_render_fragment(til_module_context_t *context, unsigned ticks, unsigned cpu, til_fb_fragment_t *fragment)  { -	shapes_context_t	*ctxt = context; - -	free(ctxt); -} - - -static void shapes_render_fragment(void *context, unsigned ticks, unsigned cpu, til_fb_fragment_t *fragment) -{ -	shapes_context_t	*ctxt = context; +	shapes_context_t	*ctxt = (shapes_context_t *)context;  	unsigned		size = MIN(fragment->width, fragment->height) * ctxt->setup.scale;  	unsigned		xoff = (fragment->width - size) >> 1;  	unsigned		yoff = (fragment->height - size) >> 1; @@ -495,7 +489,6 @@ static int shapes_setup(const til_settings_t *settings, til_setting_t **res_sett  til_module_t	shapes_module = {  	.create_context = shapes_create_context, -	.destroy_context = shapes_destroy_context,  	.render_fragment = shapes_render_fragment,  	.setup = shapes_setup,  	.name = "shapes", | 
