Mercurial > MadButterfly
diff include/mb_paint.h @ 186:530bb7728546 include_mb_test
Move header files to $(top_srcdir)/include/ and prefixed with 'mb_'.
This is the solution that I dicussed with FourDollars, last night.
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Wed, 05 Nov 2008 15:24:01 +0800 |
parents | include/mb/paint.h@c7e5b8779bb5 |
children | 29acbd8a0dd0 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/mb_paint.h Wed Nov 05 15:24:01 2008 +0800 @@ -0,0 +1,57 @@ +#ifndef __PAINT_H_ +#define __PAINT_H_ + +#include <cairo.h> +#include "mb_types.h" +#include "mb_redraw_man.h" +#include "mb_tools.h" + +typedef float co_comp_t; + +extern paint_t *rdman_paint_color_new(redraw_man_t *rdman, + co_comp_t r, co_comp_t g, + co_comp_t b, co_comp_t a); +extern void paint_color_set(paint_t *paint, + co_comp_t r, co_comp_t g, + co_comp_t b, co_comp_t a); +extern void paint_color_get(paint_t *paint, + co_comp_t *r, co_comp_t *g, + co_comp_t *b, co_comp_t *a); +#define paint_init(_paint, _prepare, _free) \ + do { \ + (_paint)->flags = 0; \ + (_paint)->prepare = _prepare; \ + (_paint)->free = _free; \ + STAILQ_INIT((_paint)->members); \ + (_paint)->pnt_next = NULL; \ + } while(0) \ + + +typedef struct _grad_stop { + co_aix offset; + co_comp_t r, g, b, a; +} grad_stop_t; + +extern paint_t *rdman_paint_linear_new(redraw_man_t *rdman, + co_aix x1, co_aix y1, + co_aix x2, co_aix y2); +extern grad_stop_t *paint_linear_stops(paint_t *paint, + int n_stops, + grad_stop_t *stops); +extern paint_t *rdman_paint_radial_new(redraw_man_t *rdman, + co_aix cx, co_aix cy, co_aix r); +extern grad_stop_t *paint_radial_stops(paint_t *paint, + int n_stops, + grad_stop_t *stops); + +#define grad_stop_init(stop, _offset, _r, _g, _b, _a) \ + do { \ + (stop)->offset = _offset; \ + (stop)->r = _r; \ + (stop)->g = _g; \ + (stop)->b = _b; \ + (stop)->a = _a; \ + } while(0) + + +#endif /* __PAINT_H_ */