Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas
Dir : e17/libs/evas/src/modules/engines/software_generic Modified Files: evas_engine.c Log Message: same as previous commit. =================================================================== RCS file: /cvs/e/e17/libs/evas/src/modules/engines/software_generic/evas_engine.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- evas_engine.c 6 Sep 2006 07:28:44 -0000 1.7 +++ evas_engine.c 30 Sep 2006 10:18:34 -0000 1.8 @@ -171,40 +171,45 @@ } static void * -eng_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance) +eng_gradient_new(void *data) { - if (!gradient) gradient = evas_common_gradient_new(); - evas_common_gradient_color_add(gradient, r, g, b, a, distance); - return gradient; + return evas_common_gradient_new(); } -static void * -eng_gradient_colors_clear(void *data, void *context, void *gradient) +static void +eng_gradient_free(void *data, void *gradient) { - evas_common_gradient_colors_clear(gradient); - return gradient; + evas_common_gradient_free(gradient); } -static void * -eng_gradient_data_set(void *data, void *context, void *gradient, void *map, int len, int has_alpha) +static void +eng_gradient_color_stop_add(void *data, void *gradient, int r, int g, int b, int a, int delta) { - if (!gradient) - gradient = evas_common_gradient_new(); - evas_common_gradient_data_set(gradient, map, len, has_alpha); - return gradient; + evas_common_gradient_color_stop_add(gradient, r, g, b, a, delta); } -static void * -eng_gradient_data_unset(void *data, void *context, void *gradient) +static void +eng_gradient_alpha_stop_add(void *data, void *gradient, int a, int delta) { - evas_common_gradient_data_unset(gradient); - return gradient; + evas_common_gradient_alpha_stop_add(gradient, a, delta); } static void -eng_gradient_free(void *data, void *gradient) +eng_gradient_color_data_set(void *data, void *gradient, void *map, int len, int has_alpha) { - evas_common_gradient_free(gradient); + evas_common_gradient_color_data_set(gradient, map, len, has_alpha); +} + +static void +eng_gradient_alpha_data_set(void *data, void *gradient, void *alpha_map, int len) +{ + evas_common_gradient_alpha_data_set(gradient, alpha_map, len); +} + +static void +eng_gradient_clear(void *data, void *gradient) +{ + evas_common_gradient_clear(gradient); } static void @@ -214,46 +219,83 @@ } static void -eng_gradient_range_offset_set(void *data, void *gradient, float offset) +eng_gradient_fill_angle_set(void *data, void *gradient, double angle) { - evas_common_gradient_range_offset_set(gradient, offset); + evas_common_gradient_fill_angle_set(gradient, angle); } static void -eng_gradient_type_set(void *data, void *gradient, char *name) +eng_gradient_fill_spread_set(void *data, void *gradient, int spread) { - evas_common_gradient_type_set(gradient, name); + evas_common_gradient_fill_spread_set(gradient, spread); } static void -eng_gradient_type_params_set(void *data, void *gradient, char *params) +eng_gradient_angle_set(void *data, void *gradient, double angle) { - evas_common_gradient_type_params_set(gradient, params); + evas_common_gradient_map_angle_set(gradient, angle); } -static void * -eng_gradient_geometry_init(void *data, void *gradient, int spread) +static void +eng_gradient_offset_set(void *data, void *gradient, float offset) { - gradient = evas_common_gradient_geometry_init(gradient, spread); - return gradient; + evas_common_gradient_map_offset_set(gradient, offset); +} + +static void +eng_gradient_direction_set(void *data, void *gradient, int direction) +{ + evas_common_gradient_map_direction_set(gradient, direction); +} + +static void +eng_gradient_type_set(void *data, void *gradient, char *name, char *params) +{ + evas_common_gradient_type_set(gradient, name, params); } static int -eng_gradient_alpha_get(void *data, void *gradient, int spread, int op) +eng_gradient_is_opaque(void *data, void *context, void *gradient, int x, int y, int w, int h) { - return evas_common_gradient_has_alpha(gradient, spread, op); + RGBA_Draw_Context *dc = (RGBA_Draw_Context *)context; + RGBA_Gradient *gr = (RGBA_Gradient *)gradient; + + if (!dc || !gr || !gr->type.geometer) return 0; + return !(gr->type.geometer->has_alpha(gr, dc->render_op) | + gr->type.geometer->has_mask(gr, dc->render_op)); +} + +static int +eng_gradient_is_visible(void *data, void *context, void *gradient, int x, int y, int w, int h) +{ + RGBA_Draw_Context *dc = (RGBA_Draw_Context *)context; + + if (!dc || !gradient) return 0; + return 1; +} + +static void +eng_gradient_render_pre(void *data, void *context, void *gradient) +{ + RGBA_Draw_Context *dc = (RGBA_Draw_Context *)context; + RGBA_Gradient *gr = (RGBA_Gradient *)gradient; + int len; + + if (!dc || !gr || !gr->type.geometer) return; + gr->type.geometer->geom_set(gr); + len = gr->type.geometer->get_map_len(gr); + evas_common_gradient_map(dc, gr, len); } static void -eng_gradient_map(void *data, void *context, void *gradient, int spread) +eng_gradient_render_post(void *data, void *gradient) { - evas_common_gradient_map(context, gradient, spread); } static void -eng_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle, int spread) +eng_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h) { - evas_common_gradient_draw(surface, context, x, y, w, h, gradient, angle, spread); + evas_common_gradient_draw(surface, context, x, y, w, h, gradient); } static void * @@ -713,18 +755,24 @@ eng_polygon_points_clear, eng_polygon_draw, /* gradient draw funcs */ - eng_gradient_color_add, - eng_gradient_colors_clear, - eng_gradient_data_set, - eng_gradient_data_unset, + eng_gradient_new, eng_gradient_free, + eng_gradient_color_stop_add, + eng_gradient_alpha_stop_add, + eng_gradient_color_data_set, + eng_gradient_alpha_data_set, + eng_gradient_clear, eng_gradient_fill_set, - eng_gradient_range_offset_set, + eng_gradient_fill_angle_set, + eng_gradient_fill_spread_set, + eng_gradient_angle_set, + eng_gradient_offset_set, + eng_gradient_direction_set, eng_gradient_type_set, - eng_gradient_type_params_set, - eng_gradient_geometry_init, - eng_gradient_alpha_get, - eng_gradient_map, + eng_gradient_is_opaque, + eng_gradient_is_visible, + eng_gradient_render_pre, + eng_gradient_render_post, eng_gradient_draw, /* image draw funcs */ eng_image_load, ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs