jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=46542ea74884675fcdae77a05b88e3d1cfa62e86
commit 46542ea74884675fcdae77a05b88e3d1cfa62e86 Author: Jean-Philippe Andre <[email protected]> Date: Tue Jan 17 21:09:18 2017 +0900 evas filters: Move transform to software generic (7/8) --- src/Makefile_Evas.am | 2 +- src/lib/evas/filters/evas_filter.c | 3 --- src/lib/evas/filters/evas_filter_private.h | 1 - src/modules/evas/engines/software_generic/evas_engine.c | 1 + .../engines/software_generic/filters/evas_engine_filter.h | 1 + .../software_generic}/filters/evas_filter_transform.c | 15 +++++---------- 6 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 713a28e..061744a 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -594,7 +594,6 @@ lib/evas/canvas/evas_filter_mixin.c \ lib/evas/filters/evas_filter.c \ lib/evas/filters/evas_filter_blur.c \ lib/evas/filters/evas_filter_parser.c \ -lib/evas/filters/evas_filter_transform.c \ lib/evas/filters/evas_filter_utils.c \ lib/evas/filters/evas_filter_private.h @@ -618,6 +617,7 @@ modules/evas/engines/software_generic/filters/evas_filter_curve.c \ modules/evas/engines/software_generic/filters/evas_filter_displace.c \ modules/evas/engines/software_generic/filters/evas_filter_fill.c \ modules/evas/engines/software_generic/filters/evas_filter_mask.c \ +modules/evas/engines/software_generic/filters/evas_filter_transform.c \ $(NULL) ### Engine Ector stuff diff --git a/src/lib/evas/filters/evas_filter.c b/src/lib/evas/filters/evas_filter.c index 895ca4e..f3ea207 100644 --- a/src/lib/evas/filters/evas_filter.c +++ b/src/lib/evas/filters/evas_filter.c @@ -1541,9 +1541,6 @@ _filter_command_run(Evas_Filter_Command *cmd) case EVAS_FILTER_MODE_BLUR: func = evas_filter_blur_cpu_func_get(cmd); break; - case EVAS_FILTER_MODE_TRANSFORM: - func = evas_filter_transform_cpu_func_get(cmd); - break; default: CRI("Invalid filter mode."); break; diff --git a/src/lib/evas/filters/evas_filter_private.h b/src/lib/evas/filters/evas_filter_private.h index 3be64de..bdbfd80 100644 --- a/src/lib/evas/filters/evas_filter_private.h +++ b/src/lib/evas/filters/evas_filter_private.h @@ -263,7 +263,6 @@ void evas_filter_context_source_set(Evas_Filter_Context *ctx /* FIXME: CPU filters entry points. Move these to the Evas Engine itself. */ Evas_Filter_Apply_Func evas_filter_blur_cpu_func_get(Evas_Filter_Command *cmd); Evas_Filter_Apply_Func evas_filter_bump_map_cpu_func_get(Evas_Filter_Command *cmd); -Evas_Filter_Apply_Func evas_filter_transform_cpu_func_get(Evas_Filter_Command *cmd); /* Utility functions */ void _clip_to_target(int *sx, int *sy, int sw, int sh, int ox, int oy, int dw, int dh, int *dx, int *dy, int *rows, int *cols); diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c index ff89abd..9bc0436 100644 --- a/src/modules/evas/engines/software_generic/evas_engine.c +++ b/src/modules/evas/engines/software_generic/evas_engine.c @@ -4633,6 +4633,7 @@ _gfx_filter_func_get(Evas_Filter_Command *cmd) case EVAS_FILTER_MODE_DISPLACE: func = eng_filter_displace_func_get(cmd); break; case EVAS_FILTER_MODE_FILL: func = eng_filter_fill_func_get(cmd); break; case EVAS_FILTER_MODE_MASK: func = eng_filter_mask_func_get(cmd); break; + case EVAS_FILTER_MODE_TRANSFORM: func = eng_filter_transform_func_get(cmd); break; default: return NULL; } diff --git a/src/modules/evas/engines/software_generic/filters/evas_engine_filter.h b/src/modules/evas/engines/software_generic/filters/evas_engine_filter.h index 31a326c..2ae3618 100644 --- a/src/modules/evas/engines/software_generic/filters/evas_engine_filter.h +++ b/src/modules/evas/engines/software_generic/filters/evas_engine_filter.h @@ -10,5 +10,6 @@ Evas_Filter_Apply_Func eng_filter_curve_func_get(Evas_Filter_Command *cmd); Evas_Filter_Apply_Func eng_filter_displace_func_get(Evas_Filter_Command *cmd); Evas_Filter_Apply_Func eng_filter_fill_func_get(Evas_Filter_Command *cmd); Evas_Filter_Apply_Func eng_filter_mask_func_get(Evas_Filter_Command *cmd); +Evas_Filter_Apply_Func eng_filter_transform_func_get(Evas_Filter_Command *cmd); #endif // EVAS_ENGINE_FILTER_H diff --git a/src/lib/evas/filters/evas_filter_transform.c b/src/modules/evas/engines/software_generic/filters/evas_filter_transform.c similarity index 87% rename from src/lib/evas/filters/evas_filter_transform.c rename to src/modules/evas/engines/software_generic/filters/evas_filter_transform.c index db90147..31354e8 100644 --- a/src/lib/evas/filters/evas_filter_transform.c +++ b/src/modules/evas/engines/software_generic/filters/evas_filter_transform.c @@ -1,6 +1,4 @@ -#include "evas_filter_private.h" -#include "evas_blend_private.h" -#include "draw.h" +#include "evas_engine_filter.h" /* Apply geometrical transformations to a buffer. * @@ -87,12 +85,9 @@ _vflip_cpu(Evas_Filter_Command *cmd) { /* blend onto a target (rgba -> rgba) */ uint32_t color = ARGB_JOIN(cmd->draw.A, cmd->draw.R, cmd->draw.G, cmd->draw.B); - RGBA_Gfx_Func func; + RGBA_Comp_Func func; - if (color == 0xFFFFFFFF) - func = evas_common_gfx_func_composite_pixel_span_get(1, 0, 1, 1, _gfx_to_evas_render_op(cmd->draw.rop)); - else - func = evas_common_gfx_func_composite_pixel_color_span_get(1, 0, color, 1, 1, _gfx_to_evas_render_op(cmd->draw.rop)); + func = efl_draw_func_span_get(cmd->draw.rop, color, EINA_TRUE); EINA_SAFETY_ON_NULL_GOTO(func, end); for (sy = s0, dy = d0; (dy >= d1) && (sy <= s1); sy++, dy--) @@ -100,7 +95,7 @@ _vflip_cpu(Evas_Filter_Command *cmd) uint32_t* src = (uint32_t *) (in + src_stride * sy); uint32_t* dst = (uint32_t *) (out + dst_stride * dy); - func(src, NULL, color, dst, w); + func(dst, src, w, color, 255); } } @@ -122,7 +117,7 @@ end: } Evas_Filter_Apply_Func -evas_filter_transform_cpu_func_get(Evas_Filter_Command *cmd) +eng_filter_transform_func_get(Evas_Filter_Command *cmd) { EINA_SAFETY_ON_NULL_RETURN_VAL(cmd, NULL); --
