summaryrefslogtreecommitdiff
path: root/src/lib/evas/common/evas_scale_smooth.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/evas/common/evas_scale_smooth.c')
-rw-r--r--src/lib/evas/common/evas_scale_smooth.c44
1 files changed, 43 insertions, 1 deletions
diff --git a/src/lib/evas/common/evas_scale_smooth.c b/src/lib/evas/common/evas_scale_smooth.c
index 02dbe7d44d..61bda22b0a 100644
--- a/src/lib/evas/common/evas_scale_smooth.c
+++ b/src/lib/evas/common/evas_scale_smooth.c
@@ -97,6 +97,15 @@ scale_calc_a_points(int *p, int s, int d, int c, int cc)
97# include "evas_scale_smooth_scaler.c" 97# include "evas_scale_smooth_scaler.c"
98#endif 98#endif
99 99
100#ifdef BUILD_NEON
101# undef SCALE_FUNC
102# undef SCALE_USING_NEON
103# define SCALE_USING_NEON
104# define SCALE_FUNC evas_common_scale_rgba_in_to_out_clip_smooth_neon
105# include "evas_scale_smooth_scaler.c"
106# undef SCALE_USING_NEON
107#endif
108
100#undef SCALE_FUNC 109#undef SCALE_FUNC
101#define SCALE_FUNC _evas_common_scale_rgba_in_to_out_clip_smooth_c 110#define SCALE_FUNC _evas_common_scale_rgba_in_to_out_clip_smooth_c
102#undef SCALE_USING_MMX 111#undef SCALE_USING_MMX
@@ -197,6 +206,11 @@ evas_common_scale_rgba_in_to_out_clip_smooth(RGBA_Image *src, RGBA_Image *dst,
197 cb = evas_common_scale_rgba_in_to_out_clip_smooth_mmx; 206 cb = evas_common_scale_rgba_in_to_out_clip_smooth_mmx;
198 else 207 else
199#endif 208#endif
209#ifdef BUILD_NEON
210 if (evas_common_cpu_has_feature(CPU_FEATURE_NEON))
211 cb = evas_common_scale_rgba_in_to_out_clip_smooth_neon;
212 else
213#endif
200 cb = evas_common_scale_rgba_in_to_out_clip_smooth_c; 214 cb = evas_common_scale_rgba_in_to_out_clip_smooth_c;
201 215
202 return evas_common_scale_rgba_in_to_out_clip_cb(src, dst, dc, 216 return evas_common_scale_rgba_in_to_out_clip_cb(src, dst, dc,
@@ -223,6 +237,16 @@ evas_common_scale_rgba_smooth_draw(RGBA_Image *src, RGBA_Image *dst, int dst_cli
223 dst_region_x, dst_region_y, dst_region_w, dst_region_h); 237 dst_region_x, dst_region_y, dst_region_w, dst_region_h);
224 else 238 else
225#endif 239#endif
240#ifdef BUILD_NEON
241 if (evas_common_cpu_has_feature(CPU_FEATURE_NEON))
242 _evas_common_scale_rgba_in_to_out_clip_smooth_neon
243 (src, dst,
244 dst_clip_x, dst_clip_y, dst_clip_w, dst_clip_h,
245 mul_col, render_op,
246 src_region_x, src_region_y, src_region_w, src_region_h,
247 dst_region_x, dst_region_y, dst_region_w, dst_region_h);
248 else
249#endif
226 _evas_common_scale_rgba_in_to_out_clip_smooth_c 250 _evas_common_scale_rgba_in_to_out_clip_smooth_c
227 (src, dst, 251 (src, dst,
228 dst_clip_x, dst_clip_y, dst_clip_w, dst_clip_h, 252 dst_clip_x, dst_clip_y, dst_clip_w, dst_clip_h,
@@ -263,6 +287,15 @@ evas_common_scale_rgba_in_to_out_clip_smooth_do(const Cutout_Rects *reuse,
263 dst_region_w, dst_region_h); 287 dst_region_w, dst_region_h);
264 else 288 else
265# endif 289# endif
290#ifdef BUILD_NEON
291 if (evas_common_cpu_has_feature(CPU_FEATURE_NEON))
292 evas_common_scale_rgba_in_to_out_clip_smooth_neon(src, dst, dc,
293 src_region_x, src_region_y,
294 src_region_w, src_region_h,
295 dst_region_x, dst_region_y,
296 dst_region_w, dst_region_h);
297 else
298#endif
266 evas_common_scale_rgba_in_to_out_clip_smooth_c(src, dst, dc, 299 evas_common_scale_rgba_in_to_out_clip_smooth_c(src, dst, dc,
267 src_region_x, src_region_y, 300 src_region_x, src_region_y,
268 src_region_w, src_region_h, 301 src_region_w, src_region_h,
@@ -287,7 +320,16 @@ evas_common_scale_rgba_in_to_out_clip_smooth_do(const Cutout_Rects *reuse,
287 dst_region_w, dst_region_h); 320 dst_region_w, dst_region_h);
288 else 321 else
289# endif 322# endif
290 evas_common_scale_rgba_in_to_out_clip_smooth_c(src, dst, dc, 323#ifdef BUILD_NEON
324 if (evas_common_cpu_has_feature(CPU_FEATURE_NEON))
325 evas_common_scale_rgba_in_to_out_clip_smooth_neon(src, dst, dc,
326 src_region_x, src_region_y,
327 src_region_w, src_region_h,
328 dst_region_x, dst_region_y,
329 dst_region_w, dst_region_h);
330 else
331#endif
332 evas_common_scale_rgba_in_to_out_clip_smooth_c(src, dst, dc,
291 src_region_x, src_region_y, 333 src_region_x, src_region_y,
292 src_region_w, src_region_h, 334 src_region_w, src_region_h,
293 dst_region_x, dst_region_y, 335 dst_region_x, dst_region_y,