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);
 

-- 


Reply via email to