From 07274513e984f0b5544586c74508ccd16e7dcafa Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Sun, 13 Jan 2013 17:29:19 +1000 Subject: Remove EFL, since it's been released now. --- libraries/evas/src/lib/engines/common/Makefile.am | 118 - libraries/evas/src/lib/engines/common/Makefile.in | 1009 ------- libraries/evas/src/lib/engines/common/evas_blend.h | 8 - .../evas/src/lib/engines/common/evas_blend_main.c | 325 --- .../src/lib/engines/common/evas_blend_private.h | 31 - .../evas/src/lib/engines/common/evas_blit_main.c | 700 ----- .../src/lib/engines/common/evas_convert_color.c | 246 -- .../src/lib/engines/common/evas_convert_color.h | 16 - .../lib/engines/common/evas_convert_colorspace.c | 186 -- .../lib/engines/common/evas_convert_colorspace.h | 12 - .../src/lib/engines/common/evas_convert_gry_1.c | 6 - .../src/lib/engines/common/evas_convert_gry_1.h | 9 - .../src/lib/engines/common/evas_convert_gry_4.c | 10 - .../src/lib/engines/common/evas_convert_gry_4.h | 9 - .../src/lib/engines/common/evas_convert_gry_8.c | 78 - .../src/lib/engines/common/evas_convert_gry_8.h | 12 - .../src/lib/engines/common/evas_convert_grypal_6.c | 23 - .../src/lib/engines/common/evas_convert_grypal_6.h | 6 - .../src/lib/engines/common/evas_convert_main.c | 632 ---- .../src/lib/engines/common/evas_convert_main.h | 9 - .../src/lib/engines/common/evas_convert_rgb_16.c | 2089 ------------- .../src/lib/engines/common/evas_convert_rgb_16.h | 50 - .../src/lib/engines/common/evas_convert_rgb_24.c | 89 - .../src/lib/engines/common/evas_convert_rgb_24.h | 10 - .../src/lib/engines/common/evas_convert_rgb_32.c | 625 ---- .../src/lib/engines/common/evas_convert_rgb_32.h | 24 - .../src/lib/engines/common/evas_convert_rgb_8.c | 248 -- .../src/lib/engines/common/evas_convert_rgb_8.h | 14 - .../evas/src/lib/engines/common/evas_convert_yuv.c | 1258 -------- .../evas/src/lib/engines/common/evas_convert_yuv.h | 9 - libraries/evas/src/lib/engines/common/evas_cpu.c | 274 -- libraries/evas/src/lib/engines/common/evas_draw.h | 36 - .../evas/src/lib/engines/common/evas_draw_main.c | 691 ----- libraries/evas/src/lib/engines/common/evas_font.h | 76 - .../lib/engines/common/evas_font_default_walk.x | 144 - .../evas/src/lib/engines/common/evas_font_draw.c | 658 ----- .../evas/src/lib/engines/common/evas_font_load.c | 925 ------ .../evas/src/lib/engines/common/evas_font_main.c | 545 ---- .../evas/src/lib/engines/common/evas_font_ot.c | 336 --- .../evas/src/lib/engines/common/evas_font_ot.h | 45 - .../src/lib/engines/common/evas_font_private.h | 52 - .../evas/src/lib/engines/common/evas_font_query.c | 789 ----- libraries/evas/src/lib/engines/common/evas_image.h | 63 - .../evas/src/lib/engines/common/evas_image_data.c | 151 - .../evas/src/lib/engines/common/evas_image_load.c | 385 --- .../evas/src/lib/engines/common/evas_image_main.c | 889 ------ .../src/lib/engines/common/evas_image_private.h | 17 - .../evas/src/lib/engines/common/evas_image_save.c | 51 - .../src/lib/engines/common/evas_image_scalecache.c | 844 ------ libraries/evas/src/lib/engines/common/evas_line.h | 11 - .../evas/src/lib/engines/common/evas_line_main.c | 1029 ------- .../evas/src/lib/engines/common/evas_map_image.c | 432 --- .../evas/src/lib/engines/common/evas_map_image.h | 10 - .../src/lib/engines/common/evas_map_image_core.c | 226 -- .../lib/engines/common/evas_map_image_internal.c | 117 - .../src/lib/engines/common/evas_map_image_loop.c | 116 - .../src/lib/engines/common/evas_op_add/Makefile.am | 13 - .../src/lib/engines/common/evas_op_add/Makefile.in | 547 ---- .../lib/engines/common/evas_op_add/op_add_color_.c | 33 - .../engines/common/evas_op_add/op_add_color_i386.c | 33 - .../common/evas_op_add/op_add_mask_color_.c | 33 - .../common/evas_op_add/op_add_mask_color_i386.c | 33 - .../lib/engines/common/evas_op_add/op_add_pixel_.c | 33 - .../common/evas_op_add/op_add_pixel_color_.c | 33 - .../common/evas_op_add/op_add_pixel_color_i386.c | 29 - .../engines/common/evas_op_add/op_add_pixel_i386.c | 33 - .../common/evas_op_add/op_add_pixel_mask_.c | 37 - .../common/evas_op_add/op_add_pixel_mask_i386.c | 33 - .../src/lib/engines/common/evas_op_add_main_.c | 541 ---- .../lib/engines/common/evas_op_blend/Makefile.am | 46 - .../lib/engines/common/evas_op_blend/Makefile.in | 721 ----- .../engines/common/evas_op_blend/op_blend_color_.c | 109 - .../common/evas_op_blend/op_blend_color_i386.c | 138 - .../common/evas_op_blend/op_blend_color_neon.c | 223 -- .../common/evas_op_blend/op_blend_color_sse3.c | 167 -- .../common/evas_op_blend/op_blend_mask_color_.c | 185 -- .../evas_op_blend/op_blend_mask_color_i386.c | 251 -- .../evas_op_blend/op_blend_mask_color_neon.c | 562 ---- .../evas_op_blend/op_blend_mask_color_sse3.c | 321 -- .../common/evas_op_blend/op_blend_master_sse3.c | 77 - .../engines/common/evas_op_blend/op_blend_pixel_.c | 162 - .../common/evas_op_blend/op_blend_pixel_color_.c | 284 -- .../evas_op_blend/op_blend_pixel_color_i386.c | 221 -- .../evas_op_blend/op_blend_pixel_color_neon.c | 570 ---- .../evas_op_blend/op_blend_pixel_color_sse3.c | 543 ---- .../common/evas_op_blend/op_blend_pixel_i386.c | 217 -- .../common/evas_op_blend/op_blend_pixel_mask_.c | 189 -- .../evas_op_blend/op_blend_pixel_mask_i386.c | 157 - .../evas_op_blend/op_blend_pixel_mask_neon.c | 129 - .../evas_op_blend/op_blend_pixel_mask_sse3.c | 300 -- .../common/evas_op_blend/op_blend_pixel_neon.c | 530 ---- .../common/evas_op_blend/op_blend_pixel_sse3.c | 315 -- .../src/lib/engines/common/evas_op_blend_main_.c | 671 ----- .../lib/engines/common/evas_op_copy/Makefile.am | 18 - .../lib/engines/common/evas_op_copy/Makefile.in | 552 ---- .../engines/common/evas_op_copy/op_copy_color_.c | 138 - .../common/evas_op_copy/op_copy_color_i386.c | 150 - .../common/evas_op_copy/op_copy_color_neon.c | 212 -- .../common/evas_op_copy/op_copy_mask_color_.c | 170 -- .../common/evas_op_copy/op_copy_mask_color_i386.c | 193 -- .../common/evas_op_copy/op_copy_mask_color_neon.c | 170 -- .../engines/common/evas_op_copy/op_copy_pixel_.c | 117 - .../common/evas_op_copy/op_copy_pixel_color_.c | 236 -- .../common/evas_op_copy/op_copy_pixel_color_i386.c | 255 -- .../common/evas_op_copy/op_copy_pixel_color_neon.c | 238 -- .../common/evas_op_copy/op_copy_pixel_i386.c | 131 - .../common/evas_op_copy/op_copy_pixel_mask_.c | 150 - .../common/evas_op_copy/op_copy_pixel_mask_i386.c | 176 -- .../common/evas_op_copy/op_copy_pixel_mask_neon.c | 151 - .../common/evas_op_copy/op_copy_pixel_neon.c | 158 - .../src/lib/engines/common/evas_op_copy_main_.c | 675 ----- .../lib/engines/common/evas_op_mask/Makefile.am | 13 - .../lib/engines/common/evas_op_mask/Makefile.in | 547 ---- .../engines/common/evas_op_mask/op_mask_color_.c | 49 - .../common/evas_op_mask/op_mask_color_i386.c | 58 - .../common/evas_op_mask/op_mask_mask_color_.c | 63 - .../common/evas_op_mask/op_mask_mask_color_i386.c | 13 - .../engines/common/evas_op_mask/op_mask_pixel_.c | 48 - .../common/evas_op_mask/op_mask_pixel_color_.c | 100 - .../common/evas_op_mask/op_mask_pixel_color_i386.c | 13 - .../common/evas_op_mask/op_mask_pixel_i386.c | 58 - .../common/evas_op_mask/op_mask_pixel_mask_.c | 62 - .../common/evas_op_mask/op_mask_pixel_mask_i386.c | 13 - .../src/lib/engines/common/evas_op_mask_main_.c | 309 -- .../src/lib/engines/common/evas_op_mul/Makefile.am | 13 - .../src/lib/engines/common/evas_op_mul/Makefile.in | 547 ---- .../lib/engines/common/evas_op_mul/op_mul_color_.c | 65 - .../engines/common/evas_op_mul/op_mul_color_i386.c | 66 - .../common/evas_op_mul/op_mul_mask_color_.c | 72 - .../common/evas_op_mul/op_mul_mask_color_i386.c | 92 - .../lib/engines/common/evas_op_mul/op_mul_pixel_.c | 56 - .../common/evas_op_mul/op_mul_pixel_color_.c | 122 - .../common/evas_op_mul/op_mul_pixel_color_i386.c | 120 - .../engines/common/evas_op_mul/op_mul_pixel_i386.c | 66 - .../common/evas_op_mul/op_mul_pixel_mask_.c | 117 - .../common/evas_op_mul/op_mul_pixel_mask_i386.c | 63 - .../src/lib/engines/common/evas_op_mul_main_.c | 308 -- .../src/lib/engines/common/evas_op_sub/Makefile.am | 14 - .../src/lib/engines/common/evas_op_sub/Makefile.in | 547 ---- .../lib/engines/common/evas_op_sub/op_sub_color_.c | 33 - .../engines/common/evas_op_sub/op_sub_color_i386.c | 33 - .../common/evas_op_sub/op_sub_mask_color_.c | 33 - .../common/evas_op_sub/op_sub_mask_color_i386.c | 33 - .../lib/engines/common/evas_op_sub/op_sub_pixel_.c | 33 - .../common/evas_op_sub/op_sub_pixel_color_.c | 33 - .../common/evas_op_sub/op_sub_pixel_color_i386.c | 29 - .../engines/common/evas_op_sub/op_sub_pixel_i386.c | 33 - .../common/evas_op_sub/op_sub_pixel_mask_.c | 37 - .../common/evas_op_sub/op_sub_pixel_mask_i386.c | 33 - .../src/lib/engines/common/evas_op_sub_main_.c | 542 ---- libraries/evas/src/lib/engines/common/evas_pipe.c | 1733 ----------- libraries/evas/src/lib/engines/common/evas_pipe.h | 111 - .../evas/src/lib/engines/common/evas_polygon.h | 13 - .../src/lib/engines/common/evas_polygon_main.c | 325 --- .../evas/src/lib/engines/common/evas_rectangle.h | 11 - .../src/lib/engines/common/evas_rectangle_main.c | 91 - .../evas/src/lib/engines/common/evas_regionbuf.c | 357 --- .../evas/src/lib/engines/common/evas_scale_main.c | 6 - .../evas/src/lib/engines/common/evas_scale_main.h | 13 - .../src/lib/engines/common/evas_scale_sample.c | 418 --- .../src/lib/engines/common/evas_scale_smooth.c | 532 ---- .../src/lib/engines/common/evas_scale_smooth.h | 19 - .../lib/engines/common/evas_scale_smooth_scaler.c | 211 -- .../engines/common/evas_scale_smooth_scaler_down.c | 43 - .../common/evas_scale_smooth_scaler_downx.c | 259 -- .../common/evas_scale_smooth_scaler_downx_downy.c | 387 --- .../common/evas_scale_smooth_scaler_downy.c | 260 -- .../common/evas_scale_smooth_scaler_noscale.c | 62 - .../engines/common/evas_scale_smooth_scaler_up.c | 266 -- .../evas/src/lib/engines/common/evas_scale_span.c | 653 ----- .../evas/src/lib/engines/common/evas_scale_span.h | 14 - .../evas/src/lib/engines/common/evas_text_utils.c | 472 --- .../evas/src/lib/engines/common/evas_text_utils.h | 89 - libraries/evas/src/lib/engines/common/evas_tiler.c | 1439 --------- .../lib/engines/common/language/evas_bidi_utils.c | 645 ---- .../lib/engines/common/language/evas_bidi_utils.h | 157 - .../engines/common/language/evas_language_utils.c | 152 - .../engines/common/language/evas_language_utils.h | 132 - .../engines/common/language/evas_script_table.h | 3087 -------------------- 179 files changed, 45625 deletions(-) delete mode 100644 libraries/evas/src/lib/engines/common/Makefile.am delete mode 100644 libraries/evas/src/lib/engines/common/Makefile.in delete mode 100644 libraries/evas/src/lib/engines/common/evas_blend.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_blend_main.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_blend_private.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_blit_main.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_color.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_color.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_colorspace.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_colorspace.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_gry_1.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_gry_1.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_gry_4.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_gry_4.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_gry_8.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_gry_8.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_grypal_6.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_grypal_6.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_main.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_main.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_rgb_16.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_rgb_16.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_rgb_24.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_rgb_24.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_rgb_32.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_rgb_32.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_rgb_8.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_rgb_8.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_yuv.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_convert_yuv.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_cpu.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_draw.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_draw_main.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_font.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_font_default_walk.x delete mode 100644 libraries/evas/src/lib/engines/common/evas_font_draw.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_font_load.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_font_main.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_font_ot.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_font_ot.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_font_private.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_font_query.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_image.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_image_data.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_image_load.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_image_main.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_image_private.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_image_save.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_image_scalecache.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_line.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_line_main.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_map_image.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_map_image.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_map_image_core.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_map_image_internal.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_map_image_loop.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_add/Makefile.am delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_add/Makefile.in delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_add/op_add_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_add/op_add_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_add/op_add_mask_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_add/op_add_mask_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_mask_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_mask_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_add_main_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.am delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.in delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_neon.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_sse3.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_neon.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_sse3.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_master_sse3.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_neon.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_sse3.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_neon.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_sse3.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_neon.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_sse3.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_blend_main_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.am delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.in delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_neon.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_neon.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_color_neon.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_mask_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_mask_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_mask_neon.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_neon.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_copy_main_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.am delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.in delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_mask_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_mask_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_mask_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_mask_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mask_main_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.am delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_mul_main_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.am delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.in delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_mask_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_mask_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_color_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_color_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_mask_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_mask_i386.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_op_sub_main_.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_pipe.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_pipe.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_polygon.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_polygon_main.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_rectangle.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_rectangle_main.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_regionbuf.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_main.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_main.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_sample.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_smooth.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_smooth.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_down.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_downx.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_downx_downy.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_downy.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_noscale.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_up.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_span.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_scale_span.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_text_utils.c delete mode 100644 libraries/evas/src/lib/engines/common/evas_text_utils.h delete mode 100644 libraries/evas/src/lib/engines/common/evas_tiler.c delete mode 100644 libraries/evas/src/lib/engines/common/language/evas_bidi_utils.c delete mode 100644 libraries/evas/src/lib/engines/common/language/evas_bidi_utils.h delete mode 100644 libraries/evas/src/lib/engines/common/language/evas_language_utils.c delete mode 100644 libraries/evas/src/lib/engines/common/language/evas_language_utils.h delete mode 100644 libraries/evas/src/lib/engines/common/language/evas_script_table.h (limited to 'libraries/evas/src/lib/engines/common') diff --git a/libraries/evas/src/lib/engines/common/Makefile.am b/libraries/evas/src/lib/engines/common/Makefile.am deleted file mode 100644 index 0937394..0000000 --- a/libraries/evas/src/lib/engines/common/Makefile.am +++ /dev/null @@ -1,118 +0,0 @@ - -SUBDIRS = evas_op_add evas_op_blend evas_op_copy evas_op_mask evas_op_mul evas_op_sub - -MAINTAINERCLEANFILES = Makefile.in - -AM_CPPFLAGS = -I. \ - -I$(top_srcdir)/src/lib \ - -I$(top_srcdir)/src/lib/cserve \ - -I$(top_srcdir)/src/lib/include \ - -DPACKAGE_BIN_DIR=\"$(bindir)\" \ - -DPACKAGE_LIB_DIR=\"$(libdir)\" \ - -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ - @FREETYPE_CFLAGS@ @VALGRIND_CFLAGS@ \ - @PIXMAN_CFLAGS@ \ - @EET_CFLAGS@ @pthread_cflags@ \ - @EINA_CFLAGS@ \ - @FRIBIDI_CFLAGS@ @HARFBUZZ_CFLAGS@ \ - @PIXMAN_CFLAGS@ - -noinst_LTLIBRARIES = libevas_engine_common.la -libevas_engine_common_la_SOURCES = \ -evas_op_copy_main_.c \ -evas_op_blend_main_.c \ -evas_op_add_main_.c \ -evas_op_sub_main_.c \ -evas_op_mask_main_.c \ -evas_op_mul_main_.c \ -evas_blend_main.c \ -evas_blit_main.c \ -evas_convert_color.c \ -evas_convert_colorspace.c \ -evas_convert_gry_1.c \ -evas_convert_gry_4.c \ -evas_convert_gry_8.c \ -evas_convert_main.c \ -evas_convert_rgb_16.c \ -evas_convert_rgb_24.c \ -evas_convert_rgb_32.c \ -evas_convert_rgb_8.c \ -evas_convert_grypal_6.c \ -evas_convert_yuv.c \ -evas_cpu.c \ -evas_draw_main.c \ -evas_font_draw.c \ -evas_font_load.c \ -evas_font_main.c \ -evas_font_query.c \ -evas_image_load.c \ -evas_image_save.c \ -evas_image_main.c \ -evas_image_data.c \ -evas_image_scalecache.c \ -evas_line_main.c \ -evas_polygon_main.c \ -evas_rectangle_main.c \ -evas_scale_main.c \ -evas_scale_sample.c \ -evas_scale_smooth.c \ -evas_scale_span.c \ -evas_tiler.c \ -evas_regionbuf.c \ -evas_pipe.c \ -language/evas_bidi_utils.c \ -language/evas_language_utils.c \ -evas_text_utils.c \ -evas_font_ot.c \ -evas_map_image.c \ -evas_map_image.h - -EXTRA_DIST = \ -evas_blend.h \ -evas_blend_private.h \ -evas_convert_color.h \ -evas_convert_colorspace.h \ -evas_convert_gry_1.h \ -evas_convert_gry_4.h \ -evas_convert_gry_8.h \ -evas_convert_grypal_6.h \ -evas_convert_main.h \ -evas_convert_rgb_16.h \ -evas_convert_rgb_24.h \ -evas_convert_rgb_32.h \ -evas_convert_rgb_8.h \ -evas_convert_yuv.h \ -evas_draw.h \ -evas_font.h \ -evas_font_default_walk.x \ -evas_font_private.h \ -evas_image.h \ -evas_image_private.h \ -evas_line.h \ -evas_polygon.h \ -evas_rectangle.h \ -evas_scale_main.h \ -evas_scale_smooth.h \ -evas_scale_smooth_scaler.c \ -evas_scale_smooth_scaler_down.c \ -evas_scale_smooth_scaler_downx.c \ -evas_scale_smooth_scaler_downx_downy.c \ -evas_scale_smooth_scaler_downy.c \ -evas_scale_smooth_scaler_noscale.c \ -evas_scale_smooth_scaler_up.c \ -evas_scale_span.h \ -evas_pipe.h \ -language/evas_bidi_utils.h \ -language/evas_language_utils.h \ -language/evas_script_table.h \ -evas_text_utils.h \ -evas_font_ot.h \ -evas_map_image_internal.c \ -evas_map_image_core.c \ -evas_map_image_loop.c - -libevas_engine_common_la_DEPENDENCIES = \ -$(top_builddir)/config.h - -libevas_engine_common_la_LIBADD = \ -evas_op_blend/libevas_engine_common_op_blend_master_sse3.la diff --git a/libraries/evas/src/lib/engines/common/Makefile.in b/libraries/evas/src/lib/engines/common/Makefile.in deleted file mode 100644 index 08526cd..0000000 --- a/libraries/evas/src/lib/engines/common/Makefile.in +++ /dev/null @@ -1,1009 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/lib/engines/common -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ - $(top_srcdir)/m4/efl_coverage.m4 \ - $(top_srcdir)/m4/efl_doxygen.m4 \ - $(top_srcdir)/m4/efl_fnmatch.m4 \ - $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ - $(top_srcdir)/m4/evas_check_engine.m4 \ - $(top_srcdir)/m4/evas_check_loader.m4 \ - $(top_srcdir)/m4/evas_converter.m4 \ - $(top_srcdir)/m4/evas_dither.m4 \ - $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -LTLIBRARIES = $(noinst_LTLIBRARIES) -am_libevas_engine_common_la_OBJECTS = evas_op_copy_main_.lo \ - evas_op_blend_main_.lo evas_op_add_main_.lo \ - evas_op_sub_main_.lo evas_op_mask_main_.lo \ - evas_op_mul_main_.lo evas_blend_main.lo evas_blit_main.lo \ - evas_convert_color.lo evas_convert_colorspace.lo \ - evas_convert_gry_1.lo evas_convert_gry_4.lo \ - evas_convert_gry_8.lo evas_convert_main.lo \ - evas_convert_rgb_16.lo evas_convert_rgb_24.lo \ - evas_convert_rgb_32.lo evas_convert_rgb_8.lo \ - evas_convert_grypal_6.lo evas_convert_yuv.lo evas_cpu.lo \ - evas_draw_main.lo evas_font_draw.lo evas_font_load.lo \ - evas_font_main.lo evas_font_query.lo evas_image_load.lo \ - evas_image_save.lo evas_image_main.lo evas_image_data.lo \ - evas_image_scalecache.lo evas_line_main.lo \ - evas_polygon_main.lo evas_rectangle_main.lo evas_scale_main.lo \ - evas_scale_sample.lo evas_scale_smooth.lo evas_scale_span.lo \ - evas_tiler.lo evas_regionbuf.lo evas_pipe.lo \ - evas_bidi_utils.lo evas_language_utils.lo evas_text_utils.lo \ - evas_font_ot.lo evas_map_image.lo -libevas_engine_common_la_OBJECTS = \ - $(am_libevas_engine_common_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libevas_engine_common_la_SOURCES) -DIST_SOURCES = $(libevas_engine_common_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CHECK_CFLAGS = @CHECK_CFLAGS@ -CHECK_LIBS = @CHECK_LIBS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ -ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ -EDB_CFLAGS = @EDB_CFLAGS@ -EDB_LIBS = @EDB_LIBS@ -EDJE_CFLAGS = @EDJE_CFLAGS@ -EDJE_LIBS = @EDJE_LIBS@ -EET_CFLAGS = @EET_CFLAGS@ -EET_LIBS = @EET_LIBS@ -EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ -EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ -EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ -EGREP = @EGREP@ -EINA_CFLAGS = @EINA_CFLAGS@ -EINA_LIBS = @EINA_LIBS@ -EVAS_CFLAGS = @EVAS_CFLAGS@ -EVAS_LIBS = @EVAS_LIBS@ -EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@ -EVIL_CFLAGS = @EVIL_CFLAGS@ -EVIL_LIBS = @EVIL_LIBS@ -EXEEXT = @EXEEXT@ -EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ -EXOTIC_LIBS = @EXOTIC_LIBS@ -FGREP = @FGREP@ -FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ -FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ -FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ -FREETYPE_LIBS = @FREETYPE_LIBS@ -FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@ -FRIBIDI_LIBS = @FRIBIDI_LIBS@ -GL_EET_CFLAGS = @GL_EET_CFLAGS@ -GL_EET_LIBS = @GL_EET_LIBS@ -GREP = @GREP@ -HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@ -HARFBUZZ_LIBS = @HARFBUZZ_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@ -LINEBREAK_LIBS = @LINEBREAK_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MODULE_ARCH = @MODULE_ARCH@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJC = @OBJC@ -OBJCDEPMODE = @OBJCDEPMODE@ -OBJCFLAGS = @OBJCFLAGS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ -PIXMAN_LIBS = @PIXMAN_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PNG_CFLAGS = @PNG_CFLAGS@ -PNG_LIBS = @PNG_LIBS@ -RANLIB = @RANLIB@ -SDL_CFLAGS = @SDL_CFLAGS@ -SDL_LIBS = @SDL_LIBS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SHM_OPEN_LINK = @SHM_OPEN_LINK@ -STRIP = @STRIP@ -SVG_CFLAGS = @SVG_CFLAGS@ -SVG_LIBS = @SVG_LIBS@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -VMAJ = @VMAJ@ -WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ -WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ -XCB_CFLAGS = @XCB_CFLAGS@ -XCB_GL_CFLAGS = @XCB_GL_CFLAGS@ -XCB_GL_LIBS = @XCB_GL_LIBS@ -XCB_LIBS = @XCB_LIBS@ -XEXT_CFLAGS = @XEXT_CFLAGS@ -XEXT_LIBS = @XEXT_LIBS@ -XMKMF = @XMKMF@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_OBJC = @ac_ct_OBJC@ -altivec_cflags = @altivec_cflags@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -dlopen_libs = @dlopen_libs@ -docdir = @docdir@ -dvidir = @dvidir@ -edje_cc = @edje_cc@ -efl_doxygen = @efl_doxygen@ -efl_have_doxygen = @efl_have_doxygen@ -evas_engine_buffer_cflags = @evas_engine_buffer_cflags@ -evas_engine_buffer_libs = @evas_engine_buffer_libs@ -evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@ -evas_engine_direct3d_libs = @evas_engine_direct3d_libs@ -evas_engine_directfb_cflags = @evas_engine_directfb_cflags@ -evas_engine_directfb_libs = @evas_engine_directfb_libs@ -evas_engine_fb_cflags = @evas_engine_fb_cflags@ -evas_engine_fb_libs = @evas_engine_fb_libs@ -evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@ -evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@ -evas_engine_gl_common_libs = @evas_engine_gl_common_libs@ -evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@ -evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@ -evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@ -evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@ -evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@ -evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@ -evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@ -evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@ -evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@ -evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@ -evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@ -evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@ -evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@ -evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@ -evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@ -evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@ -evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@ -evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@ -evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@ -evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@ -evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@ -evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@ -evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ -evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ -evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ -evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ -evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ -evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ -evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ -evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ -evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ -evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ -evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ -evas_image_loader_edb_libs = @evas_image_loader_edb_libs@ -evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@ -evas_image_loader_eet_libs = @evas_image_loader_eet_libs@ -evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@ -evas_image_loader_generic_libs = @evas_image_loader_generic_libs@ -evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@ -evas_image_loader_gif_libs = @evas_image_loader_gif_libs@ -evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@ -evas_image_loader_ico_libs = @evas_image_loader_ico_libs@ -evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@ -evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@ -evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@ -evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@ -evas_image_loader_png_cflags = @evas_image_loader_png_cflags@ -evas_image_loader_png_libs = @evas_image_loader_png_libs@ -evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@ -evas_image_loader_psd_libs = @evas_image_loader_psd_libs@ -evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@ -evas_image_loader_svg_libs = @evas_image_loader_svg_libs@ -evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@ -evas_image_loader_tga_libs = @evas_image_loader_tga_libs@ -evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@ -evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@ -evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@ -evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@ -evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@ -evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@ -exec_prefix = @exec_prefix@ -have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@ -have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@ -have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@ -have_evas_engine_software_x11 = @have_evas_engine_software_x11@ -have_evas_engine_software_xcb = @have_evas_engine_software_xcb@ -have_evas_engine_software_xlib = @have_evas_engine_software_xlib@ -have_lcov = @have_lcov@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -lt_enable_auto_import = @lt_enable_auto_import@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfig_requires_private = @pkgconfig_requires_private@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pthread_cflags = @pthread_cflags@ -pthread_libs = @pthread_libs@ -release_info = @release_info@ -requirement_evas = @requirement_evas@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -version_info = @version_info@ -SUBDIRS = evas_op_add evas_op_blend evas_op_copy evas_op_mask evas_op_mul evas_op_sub -MAINTAINERCLEANFILES = Makefile.in -AM_CPPFLAGS = -I. \ - -I$(top_srcdir)/src/lib \ - -I$(top_srcdir)/src/lib/cserve \ - -I$(top_srcdir)/src/lib/include \ - -DPACKAGE_BIN_DIR=\"$(bindir)\" \ - -DPACKAGE_LIB_DIR=\"$(libdir)\" \ - -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ - @FREETYPE_CFLAGS@ @VALGRIND_CFLAGS@ \ - @PIXMAN_CFLAGS@ \ - @EET_CFLAGS@ @pthread_cflags@ \ - @EINA_CFLAGS@ \ - @FRIBIDI_CFLAGS@ @HARFBUZZ_CFLAGS@ \ - @PIXMAN_CFLAGS@ - -noinst_LTLIBRARIES = libevas_engine_common.la -libevas_engine_common_la_SOURCES = \ -evas_op_copy_main_.c \ -evas_op_blend_main_.c \ -evas_op_add_main_.c \ -evas_op_sub_main_.c \ -evas_op_mask_main_.c \ -evas_op_mul_main_.c \ -evas_blend_main.c \ -evas_blit_main.c \ -evas_convert_color.c \ -evas_convert_colorspace.c \ -evas_convert_gry_1.c \ -evas_convert_gry_4.c \ -evas_convert_gry_8.c \ -evas_convert_main.c \ -evas_convert_rgb_16.c \ -evas_convert_rgb_24.c \ -evas_convert_rgb_32.c \ -evas_convert_rgb_8.c \ -evas_convert_grypal_6.c \ -evas_convert_yuv.c \ -evas_cpu.c \ -evas_draw_main.c \ -evas_font_draw.c \ -evas_font_load.c \ -evas_font_main.c \ -evas_font_query.c \ -evas_image_load.c \ -evas_image_save.c \ -evas_image_main.c \ -evas_image_data.c \ -evas_image_scalecache.c \ -evas_line_main.c \ -evas_polygon_main.c \ -evas_rectangle_main.c \ -evas_scale_main.c \ -evas_scale_sample.c \ -evas_scale_smooth.c \ -evas_scale_span.c \ -evas_tiler.c \ -evas_regionbuf.c \ -evas_pipe.c \ -language/evas_bidi_utils.c \ -language/evas_language_utils.c \ -evas_text_utils.c \ -evas_font_ot.c \ -evas_map_image.c \ -evas_map_image.h - -EXTRA_DIST = \ -evas_blend.h \ -evas_blend_private.h \ -evas_convert_color.h \ -evas_convert_colorspace.h \ -evas_convert_gry_1.h \ -evas_convert_gry_4.h \ -evas_convert_gry_8.h \ -evas_convert_grypal_6.h \ -evas_convert_main.h \ -evas_convert_rgb_16.h \ -evas_convert_rgb_24.h \ -evas_convert_rgb_32.h \ -evas_convert_rgb_8.h \ -evas_convert_yuv.h \ -evas_draw.h \ -evas_font.h \ -evas_font_default_walk.x \ -evas_font_private.h \ -evas_image.h \ -evas_image_private.h \ -evas_line.h \ -evas_polygon.h \ -evas_rectangle.h \ -evas_scale_main.h \ -evas_scale_smooth.h \ -evas_scale_smooth_scaler.c \ -evas_scale_smooth_scaler_down.c \ -evas_scale_smooth_scaler_downx.c \ -evas_scale_smooth_scaler_downx_downy.c \ -evas_scale_smooth_scaler_downy.c \ -evas_scale_smooth_scaler_noscale.c \ -evas_scale_smooth_scaler_up.c \ -evas_scale_span.h \ -evas_pipe.h \ -language/evas_bidi_utils.h \ -language/evas_language_utils.h \ -language/evas_script_table.h \ -evas_text_utils.h \ -evas_font_ot.h \ -evas_map_image_internal.c \ -evas_map_image_core.c \ -evas_map_image_loop.c - -libevas_engine_common_la_DEPENDENCIES = \ -$(top_builddir)/config.h - -libevas_engine_common_la_LIBADD = \ -evas_op_blend/libevas_engine_common_op_blend_master_sse3.la - -all: all-recursive - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/engines/common/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/lib/engines/common/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libevas_engine_common.la: $(libevas_engine_common_la_OBJECTS) $(libevas_engine_common_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(libevas_engine_common_la_OBJECTS) $(libevas_engine_common_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_bidi_utils.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_blend_main.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_blit_main.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_convert_color.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_convert_colorspace.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_convert_gry_1.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_convert_gry_4.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_convert_gry_8.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_convert_grypal_6.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_convert_main.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_convert_rgb_16.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_convert_rgb_24.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_convert_rgb_32.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_convert_rgb_8.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_convert_yuv.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_cpu.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_draw_main.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_font_draw.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_font_load.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_font_main.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_font_ot.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_font_query.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_image_data.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_image_load.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_image_main.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_image_save.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_image_scalecache.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_language_utils.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_line_main.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_map_image.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_op_add_main_.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_op_blend_main_.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_op_copy_main_.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_op_mask_main_.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_op_mul_main_.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_op_sub_main_.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_pipe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_polygon_main.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_rectangle_main.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_regionbuf.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_scale_main.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_scale_sample.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_scale_smooth.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_scale_span.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_text_utils.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_tiler.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -evas_bidi_utils.lo: language/evas_bidi_utils.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evas_bidi_utils.lo -MD -MP -MF $(DEPDIR)/evas_bidi_utils.Tpo -c -o evas_bidi_utils.lo `test -f 'language/evas_bidi_utils.c' || echo '$(srcdir)/'`language/evas_bidi_utils.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/evas_bidi_utils.Tpo $(DEPDIR)/evas_bidi_utils.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='language/evas_bidi_utils.c' object='evas_bidi_utils.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evas_bidi_utils.lo `test -f 'language/evas_bidi_utils.c' || echo '$(srcdir)/'`language/evas_bidi_utils.c - -evas_language_utils.lo: language/evas_language_utils.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evas_language_utils.lo -MD -MP -MF $(DEPDIR)/evas_language_utils.Tpo -c -o evas_language_utils.lo `test -f 'language/evas_language_utils.c' || echo '$(srcdir)/'`language/evas_language_utils.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/evas_language_utils.Tpo $(DEPDIR)/evas_language_utils.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='language/evas_language_utils.c' object='evas_language_utils.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evas_language_utils.lo `test -f 'language/evas_language_utils.c' || echo '$(srcdir)/'`language/evas_language_utils.c - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile $(LTLIBRARIES) -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-recursive - -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - clean-noinstLTLIBRARIES ctags ctags-recursive distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libraries/evas/src/lib/engines/common/evas_blend.h b/libraries/evas/src/lib/engines/common/evas_blend.h deleted file mode 100644 index 1a98f3f..0000000 --- a/libraries/evas/src/lib/engines/common/evas_blend.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _EVAS_BLEND_H -#define _EVAS_BLEND_H - - -EAPI void evas_common_blend_init (void); - - -#endif /* _EVAS_BLEND_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_blend_main.c b/libraries/evas/src/lib/engines/common/evas_blend_main.c deleted file mode 100644 index 4aadd02..0000000 --- a/libraries/evas/src/lib/engines/common/evas_blend_main.c +++ /dev/null @@ -1,325 +0,0 @@ -#include "evas_common.h" -#include "evas_blend_private.h" - -#if defined BUILD_MMX || defined BUILD_SSE -#include "evas_mmx.h" -#endif - -const DATA32 ALPHA_255 = 255; -const DATA32 ALPHA_256 = 256; - -static void -_composite_span_nothing(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d __UNUSED__, int l __UNUSED__) -{ -} - -static void -_composite_pt_nothing(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d __UNUSED__) -{ -} - -static RGBA_Gfx_Compositor * -evas_gfx_compositor_get(unsigned char op) -{ - RGBA_Gfx_Compositor *comp; - - switch (op) - { - case _EVAS_RENDER_BLEND: - comp = evas_common_gfx_compositor_blend_get(); - break; - case _EVAS_RENDER_BLEND_REL: - comp = evas_common_gfx_compositor_blend_rel_get(); - break; - case _EVAS_RENDER_COPY: - comp = evas_common_gfx_compositor_copy_get(); - break; - case _EVAS_RENDER_COPY_REL: - comp = evas_common_gfx_compositor_copy_rel_get(); - break; -/* - case _EVAS_RENDER_ADD: - comp = evas_common_gfx_compositor_add_get(); - break; - case _EVAS_RENDER_ADD_REL: - comp = evas_common_gfx_compositor_add_rel_get(); - break; - case _EVAS_RENDER_SUB: - comp = evas_common_gfx_compositor_sub_get(); - break; - case _EVAS_RENDER_SUB_REL: - comp = evas_common_gfx_compositor_sub_rel_get(); - break; -*/ - case _EVAS_RENDER_MASK: - comp = evas_common_gfx_compositor_mask_get(); - break; - case _EVAS_RENDER_MUL: - comp = evas_common_gfx_compositor_mul_get(); - break; - default: - comp = evas_common_gfx_compositor_blend_get(); - break; - } - return comp; -} - -EAPI void -evas_common_blend_init(void) -{ - static int gfx_initialised = 0; - static int mmx = 0; - static int sse = 0; - static int sse2 = 0; - RGBA_Gfx_Compositor *comp; - - if (gfx_initialised) return; - gfx_initialised = 1; - - evas_common_cpu_can_do(&mmx, &sse, &sse2); - - comp = evas_common_gfx_compositor_copy_get(); - if (comp) comp->init(); - comp = evas_common_gfx_compositor_copy_rel_get(); - if (comp) comp->init(); - - comp = evas_common_gfx_compositor_blend_get(); - if (comp) comp->init(); - comp = evas_common_gfx_compositor_blend_rel_get(); - if (comp) comp->init(); - -/* - comp = evas_common_gfx_compositor_add_get(); - if (comp) comp->init(); - comp = evas_common_gfx_compositor_add_rel_get(); - if (comp) comp->init(); - comp = evas_common_gfx_compositor_sub_get(); - if (comp) comp->init(); - comp = evas_common_gfx_compositor_sub_rel_get(); - if (comp) comp->init(); -*/ - comp = evas_common_gfx_compositor_mask_get(); - if (comp) comp->init(); - - comp = evas_common_gfx_compositor_mul_get(); - if (comp) comp->init(); -} - -void -evas_common_blend_shutdown(void) -{ - RGBA_Gfx_Compositor *comp; - - comp = evas_common_gfx_compositor_copy_get(); - if (comp) comp->shutdown(); - comp = evas_common_gfx_compositor_copy_rel_get(); - if (comp) comp->shutdown(); - - comp = evas_common_gfx_compositor_blend_get(); - if (comp) comp->shutdown(); - comp = evas_common_gfx_compositor_blend_rel_get(); - if (comp) comp->shutdown(); - -/* - comp = evas_common_gfx_compositor_add_get(); - if (comp) comp->shutdown(); - comp = evas_common_gfx_compositor_add_rel_get(); - if (comp) comp->shutdown(); - comp = evas_common_gfx_compositor_sub_get(); - if (comp) comp->shutdown(); - comp = evas_common_gfx_compositor_sub_rel_get(); - if (comp) comp->shutdown(); -*/ - comp = evas_common_gfx_compositor_mask_get(); - if (comp) comp->shutdown(); - - comp = evas_common_gfx_compositor_mul_get(); - if (comp) comp->shutdown(); -} - - -RGBA_Gfx_Func -evas_common_gfx_func_composite_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels, int op) -{ - RGBA_Gfx_Compositor *comp; - RGBA_Gfx_Func func = NULL; - - if (src && (!src->cache_entry.flags.alpha)) - { - if (op == _EVAS_RENDER_BLEND) - op = _EVAS_RENDER_COPY; - if (op == _EVAS_RENDER_BLEND_REL) - op = _EVAS_RENDER_COPY_REL; - } - comp = evas_gfx_compositor_get(op); - if (comp) - func = comp->composite_pixel_span_get(src, dst, pixels); - if (func) - return func; - return _composite_span_nothing; -} - -RGBA_Gfx_Func -evas_common_gfx_func_composite_color_span_get(DATA32 col, RGBA_Image *dst, int pixels, int op) -{ - RGBA_Gfx_Compositor *comp; - RGBA_Gfx_Func func = NULL; - - if ((col & 0xff000000) == 0xff000000) - { - if (op == _EVAS_RENDER_BLEND) - op = _EVAS_RENDER_COPY; - if (op == EVAS_RENDER_BLEND_REL) - op = _EVAS_RENDER_COPY_REL; - } - - comp = evas_gfx_compositor_get(op); - if (comp) - func = comp->composite_color_span_get(col, dst, pixels); - if (func) - return func; - return _composite_span_nothing; -} - -RGBA_Gfx_Func -evas_common_gfx_func_composite_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels, int op) -{ - RGBA_Gfx_Compositor *comp; - RGBA_Gfx_Func func = NULL; - - if ((src && (!src->cache_entry.flags.alpha)) && ((col & 0xff000000) == 0xff000000)) - { - if (op == _EVAS_RENDER_BLEND) - op = _EVAS_RENDER_COPY; - if (op == _EVAS_RENDER_BLEND_REL) - op = _EVAS_RENDER_COPY_REL; - } - - comp = evas_gfx_compositor_get(op); - if (comp) - func = comp->composite_pixel_color_span_get(src, col, dst, pixels); - if (func) - return func; - return _composite_span_nothing; -} - -RGBA_Gfx_Func -evas_common_gfx_func_composite_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels, int op) -{ - RGBA_Gfx_Compositor *comp; - RGBA_Gfx_Func func = NULL; - - comp = evas_gfx_compositor_get(op); - if (comp) - func = comp->composite_mask_color_span_get(col, dst, pixels); - if (func) - return func; - return _composite_span_nothing; -} - -RGBA_Gfx_Func -evas_common_gfx_func_composite_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels, int op) -{ - RGBA_Gfx_Compositor *comp; - RGBA_Gfx_Func func = NULL; - - comp = evas_gfx_compositor_get(op); - if (comp) - func = comp->composite_pixel_mask_span_get(src, dst, pixels); - if (func) - return func; - return _composite_span_nothing; -} - -RGBA_Gfx_Pt_Func -evas_common_gfx_func_composite_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst, int op) -{ - RGBA_Gfx_Compositor *comp; - RGBA_Gfx_Pt_Func func = NULL; - - if (!src_flags.alpha) - { - if (op == _EVAS_RENDER_BLEND) - op = _EVAS_RENDER_COPY; - if (op == _EVAS_RENDER_BLEND_REL) - op = _EVAS_RENDER_COPY_REL; - } - comp = evas_gfx_compositor_get(op); - if (comp) - func = comp->composite_pixel_pt_get(src_flags, dst); - if (func) - return func; - return _composite_pt_nothing; -} - -RGBA_Gfx_Pt_Func -evas_common_gfx_func_composite_color_pt_get(DATA32 col, RGBA_Image *dst, int op) -{ - RGBA_Gfx_Compositor *comp; - RGBA_Gfx_Pt_Func func = NULL; - - if ((col & 0xff000000) == 0xff000000) - { - if (op == _EVAS_RENDER_BLEND) - op = _EVAS_RENDER_COPY; - if (op == EVAS_RENDER_BLEND_REL) - op = _EVAS_RENDER_COPY_REL; - } - - comp = evas_gfx_compositor_get(op); - if (comp) - func = comp->composite_color_pt_get(col, dst); - if (func) - return func; - return _composite_pt_nothing; -} - -RGBA_Gfx_Pt_Func -evas_common_gfx_func_composite_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst, int op) -{ - RGBA_Gfx_Compositor *comp; - RGBA_Gfx_Pt_Func func = NULL; - - if ((!src_flags.alpha) && ((col & 0xff000000) == 0xff000000)) - { - if (op == _EVAS_RENDER_BLEND) - op = _EVAS_RENDER_COPY; - if (op == _EVAS_RENDER_BLEND_REL) - op = _EVAS_RENDER_COPY_REL; - } - - comp = evas_gfx_compositor_get(op); - if (comp) - func = comp->composite_pixel_color_pt_get(src_flags, col, dst); - if (func) - return func; - return _composite_pt_nothing; -} - -RGBA_Gfx_Pt_Func -evas_common_gfx_func_composite_mask_color_pt_get(DATA32 col, RGBA_Image *dst, int op) -{ - RGBA_Gfx_Compositor *comp; - RGBA_Gfx_Pt_Func func = NULL; - - comp = evas_gfx_compositor_get(op); - if (comp) - func = comp->composite_mask_color_pt_get(col, dst); - if (func) - return func; - return _composite_pt_nothing; -} - -RGBA_Gfx_Pt_Func -evas_common_gfx_func_composite_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst, int op) -{ - RGBA_Gfx_Compositor *comp; - RGBA_Gfx_Pt_Func func = NULL; - - comp = evas_gfx_compositor_get(op); - if (comp) - func = comp->composite_pixel_mask_pt_get(src_flags, dst); - if (func) - return func; - return _composite_pt_nothing; -} diff --git a/libraries/evas/src/lib/engines/common/evas_blend_private.h b/libraries/evas/src/lib/engines/common/evas_blend_private.h deleted file mode 100644 index 1d14951..0000000 --- a/libraries/evas/src/lib/engines/common/evas_blend_private.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef _EVAS_BLEND_PRIVATE_H -#define _EVAS_BLEND_PRIVATE_H - - -RGBA_Gfx_Compositor *evas_common_gfx_compositor_blend_get (void); -RGBA_Gfx_Compositor *evas_common_gfx_compositor_blend_rel_get (void); -RGBA_Gfx_Compositor *evas_common_gfx_compositor_copy_get (void); -RGBA_Gfx_Compositor *evas_common_gfx_compositor_copy_rel_get (void); -RGBA_Gfx_Compositor *evas_common_gfx_compositor_add_get (void); -RGBA_Gfx_Compositor *evas_common_gfx_compositor_add_rel_get (void); -/* -RGBA_Gfx_Compositor *evas_common_gfx_compositor_sub_get(void); -RGBA_Gfx_Compositor *evas_common_gfx_compositor_sub_rel_get(void); -*/ -RGBA_Gfx_Compositor *evas_common_gfx_compositor_mask_get (void); -RGBA_Gfx_Compositor *evas_common_gfx_compositor_mul_get (void); - -RGBA_Gfx_Func evas_common_gfx_func_composite_pixel_span_get (RGBA_Image *src, RGBA_Image *dst, int pixels, int op); -RGBA_Gfx_Func evas_common_gfx_func_composite_color_span_get (DATA32 col, RGBA_Image *dst, int pixels, int op); -RGBA_Gfx_Func evas_common_gfx_func_composite_pixel_color_span_get (RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels, int op); -RGBA_Gfx_Func evas_common_gfx_func_composite_mask_color_span_get (DATA32 col, RGBA_Image *dst, int pixels, int op); -RGBA_Gfx_Func evas_common_gfx_func_composite_pixel_mask_span_get (RGBA_Image *src, RGBA_Image *dst, int pixels, int op); - -RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_pixel_pt_get (Image_Entry_Flags src_flags, RGBA_Image *dst, int op); -RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_color_pt_get (DATA32 col, RGBA_Image *dst, int op); -RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_pixel_color_pt_get (Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst, int op); -RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_mask_color_pt_get (DATA32 col, RGBA_Image *dst, int op); -RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_pixel_mask_pt_get (Image_Entry_Flags src_flags, RGBA_Image *dst, int op); - - -#endif /* _EVAS_BLEND_PRIVATE_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_blit_main.c b/libraries/evas/src/lib/engines/common/evas_blit_main.c deleted file mode 100644 index 4c077b3..0000000 --- a/libraries/evas/src/lib/engines/common/evas_blit_main.c +++ /dev/null @@ -1,700 +0,0 @@ -#include "evas_common.h" - -#if defined BUILD_MMX || defined BUILD_SSE -#include "evas_mmx.h" -#endif - -#define ALIGN_FIX - -static void evas_common_copy_pixels_c (DATA32 *src, DATA32 *dst, int len); -static void evas_common_copy_pixels_mmx (DATA32 *src, DATA32 *dst, int len); -static void evas_common_copy_pixels_mmx2 (DATA32 *src, DATA32 *dst, int len); -static void evas_common_copy_pixels_sse/*NB*/ (DATA32 *src, DATA32 *dst, int len); - -#ifdef BUILD_NEON -static void evas_common_copy_pixels_neon (DATA32 *src, DATA32 *dst, int len); -static void evas_common_copy_pixels_rev_neon (DATA32 *src, DATA32 *dst, int len); -#endif - -static void evas_common_copy_pixels_rev_c (DATA32 *src, DATA32 *dst, int len); -static void evas_common_copy_pixels_rev_mmx (DATA32 *src, DATA32 *dst, int len); -static void evas_common_copy_pixels_rev_sse/*NB*/ (DATA32 *src, DATA32 *dst, int len); - -static void evas_common_copy_rev_pixels_c (DATA32 *src, DATA32 *dst, int len); - - -EAPI void -evas_common_blit_init(void) -{ -} - -EAPI void -evas_common_blit_rectangle(const RGBA_Image *src, RGBA_Image *dst, int src_x, int src_y, int w, int h, int dst_x, int dst_y) -{ - int y; - Gfx_Func_Copy func; - DATA32 *src_ptr, *dst_ptr; - - /* clip clip clip */ - if (w <= 0) return; - if (src_x + w > (int)src->cache_entry.w) w = src->cache_entry.w - src_x; - if (w <= 0) return; - if (src_x < 0) - { - dst_x -= src_x; - w += src_x; - src_x = 0; - } - if (w <= 0) return; - - if (h <= 0) return; - if (src_y + h > (int)src->cache_entry.h) h = src->cache_entry.h - src_y; - if (h <= 0) return; - if (src_y < 0) - { - dst_y -= src_y; - h += src_y; - src_y = 0; - } - if (h <= 0) return; - - if (w <= 0) return; - if (dst_x + w > (int)dst->cache_entry.w) w = dst->cache_entry.w - dst_x; - if (w <= 0) return; - if (dst_x < 0) - { - src_x -= dst_x; - w += dst_x; - dst_x = 0; - } - if (w <= 0) return; - - if (h <= 0) return; - if (dst_y + h > (int)dst->cache_entry.h) h = dst->cache_entry.h - dst_y; - if (h <= 0) return; - if (dst_y < 0) - { - src_y -= dst_y; - h += dst_y; - dst_y = 0; - } - if (h <= 0) return; - - if (dst == src) - { - /* src after dst - go forward */ - if (((src_y * src->cache_entry.w) + src_x) > ((dst_y * dst->cache_entry.w) + dst_x)) - { - func = evas_common_draw_func_copy_get(w, 0); - for (y = 0; y < h; y++) - { - src_ptr = src->image.data + ((y + src_y) * src->cache_entry.w) + src_x; - dst_ptr = dst->image.data + ((y + dst_y) * dst->cache_entry.w) + dst_x; - func(src_ptr, dst_ptr, w); - } - } - /* reverse */ - else - { - func = evas_common_draw_func_copy_get(w, 1); - for (y = h - 1; y >= 0; y--) - { - src_ptr = src->image.data + ((y + src_y) * src->cache_entry.w) + src_x; - dst_ptr = dst->image.data + ((y + dst_y) * dst->cache_entry.w) + dst_x; - func(src_ptr, dst_ptr, w); - } - } - } - else - { - func = evas_common_draw_func_copy_get(w, 0); - for (y = 0; y < h; y++) - { - src_ptr = src->image.data + ((y + src_y) * src->cache_entry.w) + src_x; - dst_ptr = dst->image.data + ((y + dst_y) * dst->cache_entry.w) + dst_x; - func(src_ptr, dst_ptr, w); - } - } -} - -/****************************************************************************/ - -static void -evas_common_copy_rev_pixels_c(DATA32 *src, DATA32 *dst, int len) -{ - DATA32 *dst_end = dst + len; - - src += len - 1; - while (dst < dst_end) *dst++ = *src--; -} - - -#ifdef BUILD_NEON -static void -evas_common_copy_pixels_rev_neon(DATA32 *src, DATA32 *dst, int len) -{ - uint32_t *tmp = (void *)37; -#define AP "evas_common_copy_rev_pixels_neon_" - asm volatile ( - ".fpu neon \n\t" - // Can we do 32 byte? - "andS %[tmp], %[d], $0x1f \n\t" - "beq "AP"quadstart \n\t" - - // Can we do at least 16 byte? - "andS %[tmp], %[d], $0x4 \n\t" - "beq "AP"dualstart \n\t" - - // Only once - AP"singleloop: \n\t" - "sub %[s], #4 \n\t" - "vld1.32 d0[0], [%[s]] \n\t" - "vst1.32 d0[0], [%[d]]! \n\t" - - // Up to 3 times - AP"dualstart: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #31 \n\t" - "blt "AP"loopout \n\t" - - "andS %[tmp], %[d], $0x1f \n\t" - "beq "AP"quadstart \n\t" - - AP"dualloop: \n\t" - "sub %[s], #8 \n\t" - "vldm %[s], {d0} \n\t" - "vrev64.32 d1, d0 \n\t" - "vstm %[d]!, {d1} \n\t" - - "andS %[tmp], %[d], $0x1f \n\t" - "bne "AP"dualloop \n\t" - - - AP"quadstart: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #32 \n\t" - "blt "AP"loopout \n\t" - - "sub %[tmp],%[e],#32 \n\t" - - AP "quadloop: \n\t" - "sub %[s], #32 \n\t" - "vldm %[s], {d0,d1,d2,d3} \n\t" - - "vrev64.32 d7,d0 \n\t" - "vrev64.32 d6,d1 \n\t" - "vrev64.32 d5,d2 \n\t" - "vrev64.32 d4,d3 \n\t" - - "vstm %[d]!, {d4,d5,d6,d7} \n\t" - - "cmp %[tmp], %[d] \n\t" - "bhi "AP"quadloop \n\t" - - - AP "loopout: \n\t" - "cmp %[d], %[e] \n\t" - "beq "AP"done \n\t" - "sub %[tmp],%[e], %[d] \n\t" - "cmp %[tmp],$0x04 \n\t" - "beq "AP"singleloop2 \n\t" - - AP "dualloop2: \n\t" - "sub %[tmp],%[e],$0x7 \n\t" - AP "dualloop2int: \n\t" - "sub %[s], #8 \n\t" - "vldm %[s], {d0} \n\t" - "vrev64.32 d1,d0 \n\t" - "vstm %[d]!, {d1} \n\t" - - "cmp %[tmp], %[d] \n\t" - "bhi "AP"dualloop2int \n\t" - - // Single ?? - "cmp %[e], %[d] \n\t" - "beq "AP"done \n\t" - - AP "singleloop2: \n\t" - "sub %[s], #4 \n\t" - "vld1.32 d0[0], [%[s]] \n\t" - "vst1.32 d0[0], [%[d]] \n\t" - - AP "done:\n\t" - - : // No output regs - // Input - : [s] "r" (src + len), [e] "r" (dst + len), [d] "r" (dst),[tmp] "r" (tmp) - // Clobbered - : "q0","q1","q2","q3","0","1","memory" - ); -#undef AP - -} -#endif - - -#ifdef BUILD_C -static void -evas_common_copy_pixels_c(DATA32 *src, DATA32 *dst, int len) -{ - DATA32 *dst_end = dst + len; - - while (dst < dst_end) *dst++ = *src++; -} -#endif - -#ifdef BUILD_MMX -static void -evas_common_copy_pixels_mmx(DATA32 *src, DATA32 *dst, int len) -{ // XXX cppcheck: [./src/lib/engines/common/evas_blit_main.c:248]: (error) Invalid number of character ({). Can't process file. - // so... wtf? what's wrong with this { ? or anytrhing surrounding it? - DATA32 *dst_end, *dst_end_pre; -#ifdef ALIGN_FIX - intptr_t src_align; - intptr_t dst_align; - - src_align = (intptr_t)src & 0x3f; /* 64 byte alignment */ - dst_align = (intptr_t)dst & 0x3f; /* 64 byte alignment */ - - if ((src_align != dst_align) || - ((src_align & 0x3) != 0)) - { -#ifdef BUILD_C - evas_common_copy_pixels_c(src, dst, len); - return; - } -#endif - - while ((src_align > 0) && (len > 0)) - { - *dst++ = *src++; - len--; - src_align -= sizeof(DATA32); - } -#endif /* ALIGN_FIX */ - - dst_end = dst + len; - dst_end_pre = dst + ((len / 16) * 16); - - while (dst < dst_end_pre) - { - MOVE_16DWORDS_MMX(src, dst); - src += 16; - dst += 16; - } - while (dst < dst_end) *dst++ = *src++; -} -#endif - -#ifdef BUILD_MMX -static void -evas_common_copy_pixels_mmx2(DATA32 *src, DATA32 *dst, int len) -{ - DATA32 *dst_end, *dst_end_pre; -#ifdef ALIGN_FIX - intptr_t src_align; - intptr_t dst_align; - - src_align = (intptr_t)src & 0x3f; /* 64 byte alignment */ - dst_align = (intptr_t)dst & 0x3f; /* 64 byte alignment */ - - if ((src_align != dst_align) || - ((src_align & 0x3) != 0)) - { -#ifdef BUILD_C - evas_common_copy_pixels_c(src, dst, len); -#endif - return; - } - - while ((src_align > 0) && (len > 0)) - { - *dst++ = *src++; - len--; - src_align -= sizeof(DATA32); - } -#endif - - dst_end = dst + len; - dst_end_pre = dst + ((len / 16) * 16); - - while (dst < dst_end_pre) - { - MOVE_16DWORDS_MMX(src, dst); - src += 16; - dst += 16; - } - while (dst < dst_end) *dst++ = *src++; -} -#endif - -#ifdef BUILD_NEON -static void -evas_common_copy_pixels_neon(DATA32 *src, DATA32 *dst, int len){ - uint32_t *e,*tmp = (void *)37; - e = dst + len; -#define AP "evas_common_copy_pixels_neon_" - asm volatile ( - ".fpu neon \n\t" - // Can we do 32 byte? - "andS %[tmp], %[d], $0x1f \n\t" - "beq "AP"quadstart \n\t" - - // Can we do at least 16 byte? - "andS %[tmp], %[d], $0x4 \n\t" - "beq "AP"dualstart \n\t" - - // Only once - AP"singleloop: \n\t" - "vld1.32 d0[0], [%[s]]! \n\t" - "vst1.32 d0[0], [%[d]]! \n\t" - - // Up to 3 times - AP"dualstart: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #31 \n\t" - "blt "AP"loopout \n\t" - - "andS %[tmp], %[d], $0x1f \n\t" - "beq "AP"quadstart \n\t" - - AP"dualloop: \n\t" - "vldm %[s]!, {d0} \n\t" - "vstm %[d]!, {d0} \n\t" - - "andS %[tmp], %[d], $0x1f \n\t" - "bne "AP"dualloop \n\t" - - - AP"quadstart: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #64 \n\t" - "blt "AP"loopout \n\t" - - "sub %[tmp],%[e],#63 \n\t" - - AP "quadloop: \n\t" - "vldm %[s]!, {d0,d1,d2,d3} \n\t" - "vldm %[s]!, {d4,d5,d6,d7} \n\t" - "vstm %[d]!, {d0,d1,d2,d3} \n\t" - "vstm %[d]!, {d4,d5,d6,d7} \n\t" - - "cmp %[tmp], %[d] \n\t" - "bhi "AP"quadloop \n\t" - - - AP "loopout: \n\t" - "cmp %[d], %[e] \n\t" - "beq "AP"done \n\t" - "sub %[tmp],%[e], %[d] \n\t" - "cmp %[tmp],$0x04 \n\t" - "beq "AP"singleloop2 \n\t" - - AP "dualloop2: \n\t" - "sub %[tmp],%[e],$0x7 \n\t" - AP "dualloop2int: \n\t" - "vldm %[s]!, {d0} \n\t" - "vstm %[d]!, {d0} \n\t" - - "cmp %[tmp], %[d] \n\t" - "bhi "AP"dualloop2int \n\t" - - // Single ?? - "cmp %[e], %[d] \n\t" - "beq "AP"done \n\t" - - AP "singleloop2: \n\t" - "vld1.32 d0[0], [%[s]] \n\t" - "vst1.32 d0[0], [%[d]] \n\t" - - AP "done:\n\t" - - : // No output regs - // Input - : [s] "r" (src), [e] "r" (e), [d] "r" (dst),[tmp] "r" (tmp) - // Clobbered - : "q0","q1","q2","q3","memory" - ); -#undef AP - -} -#endif /* BUILD_NEON */ - -#ifdef BUILD_SSE -static void -evas_common_copy_pixels_sse(DATA32 *src, DATA32 *dst, int len) -{ - DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; - - dst_end_ptr = dst + len; - dst_end_ptr -= 15; - src_ptr = src; - dst_ptr = dst; - while (dst_ptr < dst_end_ptr) - { - MOVE_16DWORDS_MMX2(src_ptr, dst_ptr); - src_ptr+=16; - dst_ptr+=16; - } - dst_end_ptr = dst + len; - while (dst_ptr < dst_end_ptr) - { - *dst_ptr = *src_ptr; - src_ptr++; - dst_ptr++; - } -#if 0 -#ifdef ALIGN_FIX - int src_align; - int dst_align; - - src_align = (int)src & 0x3f; /* 64 byte alignment */ - dst_align = (int)dst & 0x3f; /* 64 byte alignment */ - - if ((src_align != dst_align) || - ((src_align & 0x3) != 0)) - { -#ifdef BUILD_C - evas_common_copy_pixels_c(src, dst, len); -#endif - return; - } - - while ((src_align > 0) && (len > 0)) - { - *dst = *src; - dst++; - src++; - len--; - src_align -= sizeof(DATA32); - } -#endif /* ALIGN_FIX */ - - src_ptr = src; - dst_ptr = dst; - dst_end_ptr = dst + len; - dst_end_ptr_pre = dst + ((len / 16) * 16); - - while (dst_ptr < dst_end_ptr_pre) - { - prefetch(&src_ptr[16]); - MOVE_16DWORDS_MMX(src_ptr, dst_ptr); - src_ptr+=16; - dst_ptr+=16; - } - while (dst_ptr < dst_end_ptr) - { - *dst_ptr = *src_ptr; - src_ptr++; - dst_ptr++; - } -#endif -} -#endif - -/****************************************************************************/ - -#ifdef BUILD_C -static void -evas_common_copy_pixels_rev_c(DATA32 *src, DATA32 *dst, int len) -{ - DATA32 *dst_end; - - src = src + len - 1; - dst_end = dst - 1; - dst = dst + len - 1; - - while (dst > dst_end) *dst-- = *src--; -} -#endif - -#ifdef BUILD_MMX -static void -evas_common_copy_pixels_rev_mmx(DATA32 *src, DATA32 *dst, int len) -{ - DATA32 *dst_end, *dst_end_pre; - - if (len >= 16) - { - src = src + len - 16; - dst_end = dst; - dst_end_pre = dst + len - ((len / 16) * 16); - dst = dst + len - 16; - - while (dst >= dst_end_pre) - { - MOVE_16DWORDS_MMX(src, dst); - src -= 16; - dst -= 16; - } - src += 15; - dst += 15; - while (dst >= dst_end) - *dst-- = *src--; - } - else - { - src = src + len - 1; - dst_end = dst - 1; - dst = dst + len - 1; - while (dst > dst_end) - *dst-- = *src--; - } -} -#endif - -#ifdef BUILD_SSE -static void -evas_common_copy_pixels_rev_sse(DATA32 *src, DATA32 *dst, int len) -{ - DATA32 *src_ptr, *dst_ptr, *dst_end_ptr, *dst_end_ptr_pre; - - src_ptr = src + len - 16; - dst_ptr = dst + len - 16; - dst_end_ptr = dst; - dst_end_ptr_pre = dst + len - ((len / 16) * 16); - - if (len >= 16) - { - while (dst_ptr >= dst_end_ptr_pre) - { - prefetch(&src_ptr[-16]); - MOVE_10DWORDS_MMX(src_ptr, dst_ptr); - src_ptr -= 16; - dst_ptr -= 16; - } - src_ptr += 15; - dst_ptr += 15; - while (dst_ptr >= dst_end_ptr) - { - *dst_ptr = *src_ptr; - src_ptr--; - dst_ptr--; - } - } - else - { - src_ptr = src + len - 1; - dst_ptr = dst + len - 1; - while (dst_ptr >= dst_end_ptr) - { - *dst_ptr = *src_ptr; - src_ptr--; - dst_ptr--; - } - } -} -#endif - - -Gfx_Func_Copy -evas_common_draw_func_copy_get(int pixels, int reverse) -{ - if (reverse == -1) - return evas_common_copy_rev_pixels_c; - if (reverse) - { -#ifdef BUILD_SSE - if (evas_common_cpu_has_feature(CPU_FEATURE_SSE) && (pixels > 256 * 256)) - return evas_common_copy_pixels_rev_sse; -#endif -#ifdef BUILD_MMX -# ifdef BUILD_SSE - else -# endif - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - return evas_common_copy_pixels_rev_mmx; -#endif -#ifdef BUILD_NEON -# if defined(BUILD_SSE) || defined(BUILD_MMX) - else -# endif - if (evas_common_cpu_has_feature(CPU_FEATURE_NEON)) - return evas_common_copy_pixels_rev_neon; -#endif - -#ifdef BUILD_C -# if defined(BUILD_MMX) || defined(BUILD_NEON) - else -# endif - return evas_common_copy_pixels_rev_c; -#endif - } - else - { -#if 1 - -# ifdef BUILD_MMX -# ifdef BUILD_C - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX2)) -# endif - return evas_common_copy_pixels_mmx2; -# ifdef BUILD_SSE - else -# endif -#endif -#ifdef BUILD_SSE -# ifdef BUILD_C - if (evas_common_cpu_has_feature(CPU_FEATURE_SSE) && (pixels > 64 * 64)) -# endif - return evas_common_copy_pixels_sse; -# ifdef BUILD_MMX - else -# endif -#endif -# ifdef BUILD_NEON -# ifdef BUILD_C - if (evas_common_cpu_has_feature(CPU_FEATURE_NEON)) -# endif - return evas_common_copy_pixels_neon; -# ifdef BUILD_SSE - else -# endif -#endif -#ifdef BUILD_MMX -# ifdef BUILD_C - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) -# endif - return evas_common_copy_pixels_mmx; -# ifdef BUILD_C - else -# endif -#endif -#ifdef BUILD_C - return evas_common_copy_pixels_c; -#endif - -#else - -# ifdef BUILD_SSE - if (evas_common_cpu_has_feature(CPU_FEATURE_SSE) && (pixels > 256 * 256)) - return evas_common_copy_pixels_sse; -# ifdef BUILD_MMX - else -# endif -#endif -#ifdef BUILD_MMX -# ifdef BUILD_C - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX2)) -# endif - return evas_common_copy_pixels_mmx2; -# ifdef BUILD_C - else if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) -# endif - return evas_common_copy_pixels_mmx; -# ifdef BUILD_C - else -# endif -#endif -#ifdef BUILD_C - return evas_common_copy_pixels_c; -#endif - -#endif - } -#ifdef BUILD_C - return evas_common_copy_pixels_c; -#else - return NULL; -#endif -} diff --git a/libraries/evas/src/lib/engines/common/evas_convert_color.c b/libraries/evas/src/lib/engines/common/evas_convert_color.c deleted file mode 100644 index 70a9e90..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_color.c +++ /dev/null @@ -1,246 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_color.h" - - -EAPI DATA32 -evas_common_convert_argb_premul(DATA32 *data, unsigned int len) -{ - DATA32 *de = data + len; - DATA32 nas = 0; - - while (data < de) - { - DATA32 a = 1 + (*data >> 24); - - *data = (*data & 0xff000000) + - (((((*data) >> 8) & 0xff) * a) & 0xff00) + - (((((*data) & 0x00ff00ff) * a) >> 8) & 0x00ff00ff); - data++; - - if ((a == 1) || (a == 256)) - nas++; - } - - return nas; -} - -EAPI void -evas_common_convert_argb_unpremul(DATA32 *data, unsigned int len) -{ - DATA32 *de = data + len; - - while (data < de) - { - DATA32 a = (*data >> 24); - - if ((a > 0) && (a < 255)) - *data = ARGB_JOIN(a, - (R_VAL(data) * 255) / a, - (G_VAL(data) * 255) / a, - (B_VAL(data) * 255) / a); - data++; - } - -} - -EAPI void -evas_common_convert_color_argb_premul(int a, int *r, int *g, int *b) -{ - a++; - if (r) { *r = (a * *r) >> 8; } - if (g) { *g = (a * *g) >> 8; } - if (b) { *b = (a * *b) >> 8; } -} - -EAPI void -evas_common_convert_color_argb_unpremul(int a, int *r, int *g, int *b) -{ - if (!a) return; - if (r) { *r = (255 * *r) / a; } - if (g) { *g = (255 * *g) / a; } - if (b) { *b = (255 * *b) / a; } -} - -EAPI void -evas_common_convert_color_hsv_to_rgb(float h, float s, float v, int *r, int *g, int *b) -{ - int i; - float f; - - v *= 255; - if (s == 0) - { - if (r) *r = v; - if (g) *g = v; - if (b) *b = v; - return; - } - - h /= 60; - i = h; - f = h - i; - - s *= v; - f *= s; - s = v - s; - - switch (i) - { - case 1: - if (r) *r = v - f; if (g) *g = v; if (b) *b = s; - return; - case 2: - if (r) *r = s; if (g) *g = v; if (b) *b = s + f; - return; - case 3: - if (r) *r = s; if (g) *g = v - f; if (b) *b = v; - return; - case 4: - if (r) *r = s + f; if (g) *g = s; if (b) *b = v; - return; - case 5: - if (r) *r = v; if (g) *g = s; if (b) *b = v - f; - return; - default: - if (r) *r = v; if (g) *g = s + f; if (b) *b = s; - break; - } -} - -EAPI void -evas_common_convert_color_rgb_to_hsv(int r, int g, int b, float *h, float *s, float *v) -{ - int max, min, d = r - g; - - //set min to MIN(g,r) - d = (d & (~(d >> 8))); - min = r - d; - //set max to MAX(g,r) - max = g + d; - - //set min to MIN(b,min) - d = min - b; - min -= (d & (~(d >> 8))); - - //set max to MAX(max,b) - d = b - max; - max += (d & (~(d >> 8))); - - d = max - min; - - if (v) *v = (max / 255.0); - if (!max || !d) - { - if (s) *s = 0; - if (h) *h = 0; - return; - } - - if (s) *s = (d / (float)max); - if (r == max) - { - if (h) - { - *h = 60 * ((g - b) / (float)d); - if (*h < 0) *h += 360; - } - return; - } - if (g == max) - { - if (h) - { - *h = 120 + (60 * ((b - r) / (float)d)); - if (*h < 0) *h += 360; - } - return; - } - if (h) - { - *h = 240 + (60 * ((r - g) / (float)d)); - if (*h < 0) *h += 360; - } -} - -EAPI void -evas_common_convert_color_hsv_to_rgb_int(int h, int s, int v, int *r, int *g, int *b) -{ - int i, f; - - if (!s) - { - *r = *g = *b = v; - return; - } - - i = h / 255; - f = h - (i * 255); - s = (v * s) / 255; - f = (s * f) / 255; - s = v - s; - - switch (i) - { - case 1: - *r = v - f; *g = v; *b = s; - return; - case 2: - *r = s; *g = v; *b = s + f; - return; - case 3: - *r = s; *g = v - f; *b = v; - return; - case 4: - *r = s + f; *g = s; *b = v; - return; - case 5: - *r = v; *g = s; *b = v - f; - return; - default: - *r = v; *g = s + f; *b = s; - break; - } -} - -EAPI void -evas_common_convert_color_rgb_to_hsv_int(int r, int g, int b, int *h, int *s, int *v) -{ - int min, max, d = r - g; - - d = (d & (~(d >> 8))); - min = r - d; - max = g + d; - - d = min - b; - min -= (d & (~(d >> 8))); - - d = b - max; - max += (d & (~(d >> 8))); - - d = max - min; - - *v = max; - if (!max) - { - *s = *h = 0; - return; - } - - *s = ((d * 255) / max); - - if (r == max) - { - *h = (((g - b) * 255) / d); - if (*h < 0) *h += 1530; - return; - } - if (g == max) - { - *h = 510 + (((b - r) * 255) / d); - if (*h < 0) *h += 1530; - return; - } - *h = 1020 + (((r - g) * 255) / d); - if (*h < 0) *h += 1530; - -} diff --git a/libraries/evas/src/lib/engines/common/evas_convert_color.h b/libraries/evas/src/lib/engines/common/evas_convert_color.h deleted file mode 100644 index 0224879..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_color.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef _EVAS_CONVERT_COLOR_H -#define _EVAS_CONVERT_COLOR_H - - -EAPI DATA32 evas_common_convert_argb_premul (DATA32 *src, unsigned int len); -EAPI void evas_common_convert_argb_unpremul (DATA32 *src, unsigned int len); -EAPI void evas_common_convert_color_argb_premul (int a, int *r, int *g, int *b); -EAPI void evas_common_convert_color_argb_unpremul (int a, int *r, int *g, int *b); - -EAPI void evas_common_convert_color_hsv_to_rgb (float h, float s, float v, int *r, int *g, int *b); -EAPI void evas_common_convert_color_rgb_to_hsv (int r, int g, int b, float *h, float *s, float *v); -EAPI void evas_common_convert_color_hsv_to_rgb_int (int h, int s, int v, int *r, int *g, int *b); -EAPI void evas_common_convert_color_rgb_to_hsv_int (int r, int g, int b, int *h, int *s, int *v); - - -#endif /* _EVAS_CONVERT_COLOR_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_convert_colorspace.c b/libraries/evas/src/lib/engines/common/evas_convert_colorspace.c deleted file mode 100644 index 013c2e7..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_colorspace.c +++ /dev/null @@ -1,186 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_colorspace.h" - -#define CONVERT_RGB_565_TO_RGB_888(s) \ - (((((s) << 3) & 0xf8) | (((s) >> 2) & 0x7)) | \ - ((((s) << 5) & 0xfc00) | (((s) >> 1) & 0x300)) | \ - ((((s) << 8) & 0xf80000) | (((s) << 3) & 0x70000))) - -#define CONVERT_A5P_TO_A8(s) \ - ((((s) << 3) & 0xf8) | (((s) >> 2) & 0x7)) - -#define CONVERT_ARGB_8888_TO_A_8(s) ((s) >> 24) - - -static inline void * -evas_common_convert_argb8888_to_rgb565_a5p(void *data __UNUSED__, int w __UNUSED__, int h __UNUSED__, int stride __UNUSED__, Eina_Bool has_alpha __UNUSED__) -{ - return NULL; -} - -static inline void * -evas_common_convert_rgb565_a5p_to_argb8888(void *data, int w, int h, int stride, Eina_Bool has_alpha) -{ - DATA16 *src, *end; - DATA32 *ret, *dst; - - src = data; - end = src + (stride * h); - ret = malloc(w * h * sizeof(DATA32)); - - dst = ret; - if (has_alpha) - { - DATA8 *alpha; - - alpha = (DATA8 *)end; - for (; src < end; src++, alpha++, dst++) - *dst = (CONVERT_A5P_TO_A8(*alpha) << 24) | - CONVERT_RGB_565_TO_RGB_888(*src); - } - else - { - for (; src < end; src++, dst++) - *dst = CONVERT_RGB_565_TO_RGB_888(*src); - } - return ret; -} - -static inline void * -evas_common_convert_argb8888_to_a8(void *data, int w, int h, int stride, Eina_Bool has_alpha) -{ - uint32_t *src, *end; - uint8_t *ret, *dst; - - src = data; - end = src + (stride * h); - ret = malloc(w * h); - if (!ret) return NULL; - - if (!has_alpha) - { - return memset(ret, 0xff, w * h); - } - - dst = ret; - for ( ; src < end ; src++, dst++) - *dst = CONVERT_ARGB_8888_TO_A_8(*src); - return ret; -} - - - -EAPI void * -evas_common_convert_argb8888_to(void *data, int w, int h, int stride, Eina_Bool has_alpha, Evas_Colorspace cspace) -{ - switch (cspace) - { - case EVAS_COLORSPACE_RGB565_A5P: - return evas_common_convert_argb8888_to_rgb565_a5p(data, w, h, stride, has_alpha); - default: - break; - } - return NULL; -} - -EAPI void * -evas_common_convert_rgb565_a5p_to(void *data, int w, int h, int stride, Eina_Bool has_alpha, Evas_Colorspace cspace) -{ - switch (cspace) - { - case EVAS_COLORSPACE_ARGB8888: - return evas_common_convert_rgb565_a5p_to_argb8888(data, w, h, stride, has_alpha); - default: - break; - } - return NULL; -} - -EAPI void * -evas_common_convert_yuv_422_601_to(void *data, int w, int h, Evas_Colorspace cspace) -{ - switch (cspace) - { - case EVAS_COLORSPACE_ARGB8888: - { - void *dst; - - fprintf(stderr, "to argb888\n"); - - dst = malloc(sizeof (unsigned int) * w * h); - if (!dst) return NULL; - - evas_common_convert_yuv_422_601_rgba(data, dst, w, h); - return dst; - } - default: - break; - } - return NULL; -} - -EAPI void * -evas_common_convert_yuv_422P_601_to(void *data, int w, int h, Evas_Colorspace cspace) -{ - switch (cspace) - { - case EVAS_COLORSPACE_ARGB8888: - { - void *dst; - - dst = malloc(sizeof (unsigned int) * w * h); - if (!dst) return NULL; - - evas_common_convert_yuv_420p_601_rgba(data, dst, w, h); - break; - } - default: - break; - } - return NULL; -} - -EAPI void * -evas_common_convert_yuv_420_601_to(void *data, int w, int h, Evas_Colorspace cspace) -{ - switch (cspace) - { - case EVAS_COLORSPACE_ARGB8888: - { - void *dst; - - dst = malloc(sizeof (unsigned int) * w * h); - if (!dst) return NULL; - - evas_common_convert_yuv_420_601_rgba(data, dst, w, h); - break; - } - default: - break; - } - return NULL; -} - -EAPI void * -evas_common_convert_yuv_420T_601_to(void *data, int w, int h, Evas_Colorspace cspace) -{ - switch (cspace) - { - case EVAS_COLORSPACE_ARGB8888: - { - void *dst; - - dst = malloc(sizeof (unsigned int) * w * h); - if (!dst) return NULL; - - evas_common_convert_yuv_420_601_rgba(data, dst, w, h); - break; - } - default: - break; - } - return NULL; -} - - -/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/ diff --git a/libraries/evas/src/lib/engines/common/evas_convert_colorspace.h b/libraries/evas/src/lib/engines/common/evas_convert_colorspace.h deleted file mode 100644 index f3bec78..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_colorspace.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef _EVAS_CONVERT_COLORSPACE_H -#define _EVAS_CONVERT_COLORSPACE_H - - -EAPI void *evas_common_convert_argb8888_to (void *data, int w, int h, int stride, Eina_Bool has_alpha, Evas_Colorspace cspace); -EAPI void *evas_common_convert_rgb565_a5p_to (void *data, int w, int h, int stride, Eina_Bool has_alpha, Evas_Colorspace cspace); -EAPI void *evas_common_convert_yuv_422P_601_to(void *data, int w, int h, Evas_Colorspace cspace); -EAPI void *evas_common_convert_yuv_422_601_to (void *data, int w, int h, Evas_Colorspace cspace); -EAPI void *evas_common_convert_yuv_420_601_to (void *data, int w, int h, Evas_Colorspace cspace); -EAPI void *evas_common_convert_yuv_420T_601_to(void *data, int w, int h, Evas_Colorspace cspace); - -#endif /* _EVAS_CONVERT_COLORSPACE_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_convert_gry_1.c b/libraries/evas/src/lib/engines/common/evas_convert_gry_1.c deleted file mode 100644 index 45e16ee..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_gry_1.c +++ /dev/null @@ -1,6 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_gry_1.h" - -#ifdef BUILD_CONVERT_1_GRY_1 -void evas_common_convert_rgba_to_1bpp_gry_1_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_convert_gry_1.h b/libraries/evas/src/lib/engines/common/evas_convert_gry_1.h deleted file mode 100644 index 38d6776..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_gry_1.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _EVAS_CONVERT_GRY_1_H -#define _EVAS_CONVERT_GRY_1_H - - -void evas_common_convert_rgba_to_1bpp_gry_1_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); - - - -#endif /* _EVAS_CONVERT_GRY_1_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_convert_gry_4.c b/libraries/evas/src/lib/engines/common/evas_convert_gry_4.c deleted file mode 100644 index 2fa7ee3..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_gry_4.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_gry_4.h" - -#ifdef BUILD_CONVERT_4_GRY_4 -void evas_common_convert_rgba_to_4bpp_gry_4_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} -#endif - -#ifdef BUILD_CONVERT_4_GRY_1 -void evas_common_convert_rgba_to_4bpp_gry_1_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_convert_gry_4.h b/libraries/evas/src/lib/engines/common/evas_convert_gry_4.h deleted file mode 100644 index 1614359..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_gry_4.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _EVAS_CONVERT_GRY_4_H -#define _EVAS_CONVERT_GRY_4_H - - -void evas_common_convert_rgba_to_4bpp_gry_4_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_4bpp_gry_1_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); - - -#endif /* _EVAS_CONVERT_GRY_4_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_convert_gry_8.c b/libraries/evas/src/lib/engines/common/evas_convert_gry_8.c deleted file mode 100644 index 9bc5ca7..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_gry_8.c +++ /dev/null @@ -1,78 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_gry_8.h" - -#ifdef USE_DITHER_44 -extern const DATA8 _evas_dither_44[4][4]; -#endif -#ifdef USE_DITHER_128128 -extern const DATA8 _evas_dither_128128[128][128]; -#endif - -#ifdef BUILD_CONVERT_8_GRY_1 -void evas_common_convert_rgba_to_8bpp_gry_256_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA8 *dst_ptr; - int x, y; - DATA8 r, g, b; - DATA32 gry8; - - dst_ptr = (DATA8 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - r = (R_VAL(src_ptr)); - g = (G_VAL(src_ptr)); - b = (B_VAL(src_ptr)); - - // Y = 0.299 * R + 0.587 * G + 0.114 * B; - gry8 = ((r * 19595) + (g * 38469) + (b * 7471)) >> 16; - - *dst_ptr = gry8; - - CONVERT_LOOP_END_ROT_0(); -} -#endif - -#ifdef BUILD_CONVERT_8_GRY_4 -void evas_common_convert_rgba_to_8bpp_gry_64_dith (DATA32 *src __UNUSED__, DATA8 *dst __UNUSED__, int src_jump __UNUSED__, int dst_jump __UNUSED__, int w __UNUSED__, int h __UNUSED__, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__){} -#endif - -#ifdef BUILD_CONVERT_8_GRY_16 -void evas_common_convert_rgba_to_8bpp_gry_16_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA8 *dst_ptr; - int x, y; - DATA8 r, g, b; - DATA32 gry8; - DATA8 dith; - - dst_ptr = (DATA8 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - - r = (R_VAL(src_ptr)); - g = (G_VAL(src_ptr)); - b = (B_VAL(src_ptr)); - - // Y = 0.299 * R + 0.587 * G + 0.114 * B; - gry8 = ((r * 19595) + (g * 38469) + (b * 7471)) >> 16; - - if (((gry8 - gry8 * 255 / 4) >= dith) && (gry8 < 0x07)) gry8++; - - *dst_ptr = gry8; - - CONVERT_LOOP_END_ROT_0(); -} -#endif - -#ifdef BUILD_CONVERT_8_GRY_64 -void evas_common_convert_rgba_to_8bpp_gry_4_dith (DATA32 *src __UNUSED__, DATA8 *dst __UNUSED__, int src_jump __UNUSED__, int dst_jump __UNUSED__, int w __UNUSED__, int h __UNUSED__, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__){} -#endif - -#ifdef BUILD_CONVERT_8_GRY_256 -void evas_common_convert_rgba_to_8bpp_gry_1_dith (DATA32 *src __UNUSED__, DATA8 *dst __UNUSED__, int src_jump __UNUSED__, int dst_jump __UNUSED__, int w __UNUSED__, int h __UNUSED__, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__){} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_convert_gry_8.h b/libraries/evas/src/lib/engines/common/evas_convert_gry_8.h deleted file mode 100644 index d70f59d..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_gry_8.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef _EVAS_CONVERT_GRY_8_H -#define _EVAS_CONVERT_GRY_8_H - - -void evas_common_convert_rgba_to_8bpp_gry_256_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_8bpp_gry_64_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_8bpp_gry_16_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_8bpp_gry_4_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_8bpp_gry_1_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); - - -#endif /* _EVAS_CONVERT_GRY_8_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_convert_grypal_6.c b/libraries/evas/src/lib/engines/common/evas_convert_grypal_6.c deleted file mode 100644 index 2351fda..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_grypal_6.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_grypal_6.h" - -#ifdef BUILD_CONVERT_8_GRAYSCALE_64 -void evas_common_convert_rgba_to_8bpp_pal_gray64(DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA8 *dst_ptr; - int x, y; - DATA8 Y; - - dst_ptr = dst; - CONVERT_LOOP_START_ROT_0(); - - /* RGB -> YUV conversion */ - Y = ((R_VAL(src_ptr) * 76) + - (G_VAL(src_ptr) * 151) + - (B_VAL(src_ptr) * 29)) >> 10; - *dst_ptr = pal[Y]; - - CONVERT_LOOP_END_ROT_0(); -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_convert_grypal_6.h b/libraries/evas/src/lib/engines/common/evas_convert_grypal_6.h deleted file mode 100644 index 5f839c2..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_grypal_6.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _EVAS_CONVERT_GRY_4_H -#define _EVAS_CONVERT_GRY_4_H - -void evas_common_convert_rgba_to_8bpp_pal_gray64 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); - -#endif /* _EVAS_CONVERT_GRY_4_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_convert_main.c b/libraries/evas/src/lib/engines/common/evas_convert_main.c deleted file mode 100644 index da19f9c..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_main.c +++ /dev/null @@ -1,632 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_rgb_8.h" -#include "evas_convert_rgb_16.h" -#include "evas_convert_rgb_24.h" -#include "evas_convert_rgb_32.h" -#include "evas_convert_grypal_6.h" -#include "evas_convert_gry_8.h" -#include "evas_convert_yuv.h" - -#ifdef USE_DITHER_44 - -const DATA8 _evas_dither_44[4][4] = -{ - { 0, 8, 2, 10}, - {12, 4, 14, 6}, - { 3, 11, 1, 9}, - {15, 7, 13, 5} -}; - -#endif - -#ifdef USE_DITHER_128128 - -const DATA8 _evas_dither_128128[128][128] = -{ - { 0, 41, 23, 5, 17, 39, 7, 15, 62, 23, 40, 51, 31, 47, 9, 32, 52, 27, 57, 25, 6, 61, 27, 52, 37, 7, 40, 63, 18, 36, 10, 42, 25, 62, 45, 34, 20, 42, 37, 14, 35, 29, 50, 10, 61, 2, 40, 8, 37, 12, 58, 22, 5, 41, 10, 39, 0, 60, 11, 46, 2, 55, 38, 17, 36, 59, 13, 54, 37, 56, 8, 29, 16, 13, 63, 22, 41, 55, 7, 20, 49, 14, 23, 55, 37, 23, 19, 36, 15, 49, 23, 63, 30, 14, 38, 27, 53, 13, 22, 41, 19, 31, 7, 19, 50, 30, 49, 16, 3, 32, 56, 40, 29, 34, 8, 48, 19, 45, 4, 51, 12, 46, 35, 49, 16, 42, 12, 62 }, - { 30, 57, 36, 54, 47, 34, 52, 27, 43, 4, 28, 7, 17, 36, 62, 13, 44, 7, 18, 48, 33, 21, 44, 14, 30, 47, 12, 33, 5, 55, 31, 58, 13, 30, 4, 17, 52, 10, 60, 26, 46, 0, 39, 27, 42, 22, 47, 25, 60, 32, 9, 38, 48, 17, 59, 30, 49, 18, 34, 25, 51, 19, 5, 48, 21, 8, 28, 46, 1, 32, 41, 19, 54, 47, 37, 18, 28, 11, 44, 30, 39, 56, 2, 33, 8, 42, 61, 28, 58, 8, 46, 9, 41, 4, 58, 7, 21, 48, 59, 10, 52, 14, 42, 57, 12, 25, 7, 53, 42, 24, 11, 50, 17, 59, 42, 2, 36, 60, 32, 17, 63, 29, 21, 7, 59, 32, 24, 39 }, - { 22, 8, 16, 32, 3, 25, 13, 57, 18, 45, 58, 39, 55, 20, 5, 42, 23, 34, 63, 1, 51, 10, 58, 4, 60, 23, 53, 27, 44, 21, 3, 48, 8, 50, 43, 54, 27, 32, 5, 55, 21, 58, 12, 53, 6, 36, 14, 50, 17, 29, 53, 15, 24, 52, 7, 36, 13, 42, 4, 53, 9, 35, 61, 26, 56, 32, 49, 15, 62, 23, 6, 60, 2, 31, 4, 48, 58, 38, 15, 61, 5, 25, 47, 28, 50, 15, 7, 40, 3, 32, 33, 52, 25, 50, 35, 42, 61, 3, 28, 36, 23, 63, 4, 33, 46, 62, 36, 23, 60, 6, 54, 28, 4, 37, 23, 55, 25, 8, 42, 54, 14, 6, 56, 38, 19, 52, 4, 46 }, - { 48, 53, 43, 12, 45, 63, 30, 37, 9, 34, 21, 1, 25, 47, 29, 58, 3, 54, 15, 39, 29, 17, 38, 35, 20, 43, 1, 49, 15, 59, 29, 39, 22, 35, 16, 23, 1, 47, 39, 18, 8, 44, 25, 31, 57, 19, 63, 4, 45, 3, 42, 61, 1, 31, 45, 20, 57, 29, 62, 21, 32, 41, 14, 44, 3, 39, 5, 34, 10, 43, 51, 35, 23, 52, 40, 10, 21, 1, 53, 18, 51, 43, 12, 62, 18, 54, 26, 51, 20, 57, 14, 1, 62, 16, 11, 18, 32, 39, 17, 44, 1, 48, 26, 37, 18, 2, 51, 14, 28, 45, 35, 18, 57, 13, 47, 11, 51, 20, 2, 39, 31, 47, 25, 1, 50, 11, 60, 7 }, - { 18, 28, 1, 56, 21, 10, 51, 2, 46, 54, 14, 61, 11, 50, 13, 38, 19, 31, 45, 9, 55, 24, 47, 5, 54, 9, 62, 11, 35, 8, 51, 14, 57, 6, 63, 40, 58, 14, 51, 28, 62, 34, 15, 48, 1, 41, 30, 35, 55, 21, 34, 11, 49, 37, 8, 52, 4, 23, 15, 43, 1, 58, 11, 23, 53, 16, 55, 26, 58, 18, 27, 12, 45, 14, 25, 63, 42, 33, 27, 35, 9, 31, 21, 38, 1, 44, 34, 12, 48, 38, 21, 44, 29, 47, 26, 53, 1, 46, 54, 8, 59, 29, 11, 55, 22, 41, 33, 20, 39, 1, 48, 9, 44, 32, 5, 62, 29, 44, 57, 23, 10, 58, 34, 43, 15, 37, 26, 33 }, - { 51, 38, 59, 24, 35, 42, 19, 60, 5, 32, 41, 26, 43, 33, 7, 53, 48, 11, 59, 23, 42, 2, 61, 30, 16, 40, 32, 24, 56, 41, 19, 33, 37, 26, 47, 9, 31, 22, 2, 45, 9, 54, 4, 37, 21, 52, 11, 23, 7, 57, 16, 25, 55, 18, 63, 27, 46, 39, 56, 10, 50, 37, 29, 47, 19, 63, 24, 9, 46, 2, 39, 60, 9, 57, 30, 7, 49, 11, 59, 3, 45, 57, 5, 60, 29, 22, 5, 60, 30, 9, 59, 18, 40, 6, 57, 36, 30, 12, 24, 34, 15, 40, 52, 6, 49, 9, 58, 4, 63, 12, 26, 61, 22, 53, 38, 16, 35, 14, 28, 50, 42, 17, 5, 28, 62, 20, 54, 12 }, - { 26, 6, 31, 15, 49, 6, 38, 27, 22, 49, 16, 56, 2, 62, 30, 21, 0, 36, 28, 6, 49, 32, 13, 52, 26, 50, 19, 46, 3, 26, 62, 0, 53, 12, 29, 3, 53, 41, 60, 24, 38, 13, 58, 16, 43, 9, 59, 39, 46, 28, 44, 40, 2, 33, 13, 41, 16, 6, 47, 31, 26, 17, 57, 6, 38, 0, 42, 36, 29, 52, 20, 31, 48, 0, 34, 56, 20, 36, 23, 54, 14, 41, 24, 37, 10, 55, 46, 25, 16, 45, 36, 4, 55, 23, 15, 8, 50, 62, 5, 56, 44, 20, 13, 28, 59, 31, 24, 47, 31, 52, 37, 17, 40, 0, 26, 49, 3, 60, 7, 33, 0, 61, 53, 40, 8, 45, 2, 41 }, - { 16, 63, 43, 4, 61, 24, 56, 13, 53, 8, 36, 12, 24, 41, 16, 46, 60, 26, 52, 39, 14, 57, 21, 37, 0, 45, 7, 59, 38, 17, 43, 10, 45, 20, 61, 43, 19, 11, 33, 17, 50, 32, 23, 61, 28, 49, 26, 0, 18, 51, 5, 60, 22, 58, 29, 0, 59, 34, 19, 62, 3, 52, 7, 44, 30, 59, 13, 50, 15, 62, 7, 17, 38, 22, 44, 15, 40, 4, 47, 28, 33, 17, 49, 16, 51, 40, 10, 56, 0, 53, 13, 49, 28, 38, 60, 21, 43, 19, 37, 27, 3, 51, 34, 39, 0, 45, 15, 43, 10, 21, 3, 55, 8, 33, 59, 10, 41, 18, 52, 24, 46, 20, 30, 13, 58, 22, 36, 57 }, - { 50, 34, 11, 47, 29, 17, 44, 0, 33, 63, 28, 46, 52, 5, 57, 10, 42, 18, 4, 63, 20, 8, 44, 10, 56, 34, 14, 29, 5, 54, 23, 59, 32, 49, 7, 34, 49, 27, 56, 0, 42, 7, 46, 3, 40, 6, 54, 32, 62, 13, 36, 10, 47, 8, 35, 49, 24, 51, 12, 40, 22, 35, 60, 12, 22, 51, 33, 4, 40, 25, 43, 55, 5, 54, 12, 61, 26, 51, 8, 62, 0, 53, 7, 63, 2, 32, 19, 34, 42, 24, 31, 63, 2, 10, 45, 33, 0, 48, 9, 61, 22, 47, 8, 62, 18, 56, 7, 54, 27, 57, 46, 30, 50, 19, 45, 30, 56, 36, 22, 47, 11, 38, 3, 51, 32, 48, 18, 9 }, - { 0, 21, 40, 19, 52, 9, 37, 48, 20, 40, 3, 18, 27, 38, 35, 22, 31, 56, 13, 35, 46, 28, 60, 40, 27, 18, 61, 50, 41, 30, 7, 36, 2, 25, 16, 57, 5, 15, 47, 29, 55, 19, 30, 52, 15, 34, 20, 12, 43, 30, 20, 54, 25, 44, 53, 12, 38, 5, 55, 27, 48, 15, 33, 27, 45, 8, 19, 28, 56, 11, 33, 49, 18, 36, 29, 2, 45, 16, 39, 19, 31, 43, 27, 35, 20, 52, 26, 6, 61, 11, 41, 17, 29, 51, 20, 56, 25, 32, 41, 17, 53, 31, 25, 14, 42, 23, 35, 16, 38, 6, 34, 12, 15, 62, 6, 21, 13, 1, 63, 9, 55, 27, 43, 25, 14, 4, 31, 55 }, - { 44, 29, 61, 2, 35, 58, 26, 15, 60, 10, 51, 59, 14, 55, 8, 50, 2, 44, 25, 51, 1, 33, 16, 4, 48, 36, 2, 21, 12, 57, 48, 13, 51, 55, 40, 28, 37, 62, 8, 39, 12, 63, 36, 10, 59, 24, 56, 47, 9, 50, 41, 1, 32, 17, 6, 21, 61, 30, 9, 43, 1, 54, 41, 2, 54, 37, 48, 61, 1, 46, 21, 3, 58, 24, 50, 32, 60, 10, 57, 25, 46, 12, 59, 4, 45, 13, 57, 47, 27, 39, 5, 58, 47, 14, 35, 4, 52, 13, 60, 6, 36, 10, 45, 55, 4, 50, 29, 2, 61, 50, 25, 58, 44, 24, 36, 42, 54, 28, 40, 32, 16, 56, 6, 62, 46, 39, 60, 23 }, - { 7, 48, 14, 54, 23, 40, 4, 45, 30, 22, 42, 32, 1, 44, 20, 29, 58, 8, 37, 19, 41, 54, 24, 58, 9, 53, 25, 46, 34, 16, 23, 38, 27, 11, 18, 1, 52, 21, 35, 22, 48, 5, 25, 45, 18, 38, 2, 27, 35, 4, 57, 15, 62, 39, 57, 28, 42, 16, 36, 60, 24, 18, 10, 63, 20, 5, 16, 23, 37, 14, 59, 27, 41, 8, 13, 42, 21, 35, 6, 50, 3, 38, 15, 48, 30, 39, 17, 3, 49, 14, 53, 33, 24, 7, 61, 44, 11, 39, 23, 49, 19, 58, 1, 32, 36, 12, 60, 41, 20, 13, 41, 4, 39, 1, 48, 8, 18, 51, 14, 44, 5, 37, 21, 34, 1, 26, 10, 37 }, - { 53, 36, 27, 9, 50, 12, 32, 55, 2, 57, 7, 17, 48, 34, 63, 15, 40, 26, 62, 11, 49, 6, 31, 39, 22, 42, 6, 63, 1, 39, 60, 4, 42, 61, 32, 45, 24, 44, 2, 60, 16, 41, 53, 1, 33, 61, 49, 17, 63, 23, 45, 26, 33, 3, 23, 46, 2, 50, 20, 4, 45, 34, 49, 30, 39, 58, 44, 31, 53, 34, 6, 52, 30, 47, 63, 1, 53, 22, 42, 31, 58, 23, 54, 22, 61, 8, 36, 59, 22, 35, 21, 1, 55, 40, 27, 16, 30, 54, 2, 29, 43, 16, 39, 63, 21, 46, 26, 10, 48, 32, 19, 53, 30, 56, 26, 60, 33, 4, 61, 23, 49, 59, 15, 53, 19, 58, 42, 16 }, - { 20, 5, 59, 46, 25, 62, 7, 19, 43, 25, 37, 61, 11, 24, 4, 54, 12, 52, 3, 32, 17, 61, 12, 47, 15, 55, 18, 31, 53, 28, 9, 50, 21, 6, 55, 9, 58, 14, 54, 26, 33, 7, 31, 58, 13, 21, 8, 42, 29, 6, 37, 11, 48, 52, 14, 60, 11, 39, 56, 32, 14, 58, 7, 26, 17, 4, 42, 8, 11, 47, 19, 38, 10, 17, 26, 37, 9, 55, 28, 13, 18, 40, 6, 33, 1, 43, 25, 11, 51, 7, 62, 43, 18, 37, 3, 57, 45, 9, 38, 58, 5, 52, 27, 7, 17, 53, 5, 57, 37, 2, 63, 9, 22, 15, 11, 38, 25, 45, 35, 0, 28, 10, 41, 30, 50, 8, 31, 57 }, - { 49, 33, 16, 38, 1, 42, 51, 34, 53, 14, 28, 49, 30, 56, 36, 23, 43, 20, 38, 56, 22, 45, 28, 0, 62, 35, 26, 44, 11, 19, 52, 35, 44, 15, 30, 38, 10, 31, 40, 4, 46, 50, 20, 40, 27, 44, 51, 14, 56, 53, 19, 59, 7, 29, 41, 19, 35, 25, 8, 52, 22, 44, 13, 53, 50, 32, 61, 24, 56, 25, 63, 0, 45, 57, 33, 59, 16, 46, 4, 62, 50, 11, 60, 37, 52, 19, 55, 29, 37, 46, 13, 26, 48, 10, 50, 34, 21, 63, 26, 13, 42, 33, 22, 55, 35, 28, 43, 15, 24, 51, 27, 34, 46, 49, 58, 3, 52, 9, 57, 19, 48, 55, 3, 35, 12, 45, 24, 3 }, - { 41, 11, 56, 28, 18, 31, 22, 10, 37, 6, 47, 13, 3, 41, 9, 46, 0, 48, 29, 6, 34, 10, 55, 37, 20, 8, 49, 3, 41, 59, 14, 25, 0, 63, 19, 47, 27, 51, 17, 57, 23, 10, 61, 6, 54, 3, 38, 31, 0, 22, 34, 43, 20, 55, 31, 0, 49, 63, 29, 38, 3, 62, 28, 40, 0, 22, 14, 35, 2, 48, 15, 43, 23, 14, 3, 29, 49, 20, 39, 34, 0, 44, 29, 9, 15, 47, 5, 42, 0, 31, 58, 5, 31, 61, 23, 15, 0, 47, 19, 50, 24, 3, 59, 11, 44, 0, 31, 59, 6, 42, 17, 60, 0, 39, 20, 31, 43, 17, 29, 40, 12, 25, 60, 22, 52, 15, 63, 29 }, - { 20, 52, 8, 44, 62, 4, 59, 49, 17, 63, 21, 39, 60, 18, 52, 27, 33, 59, 14, 51, 59, 43, 24, 5, 51, 30, 57, 17, 32, 5, 37, 56, 48, 34, 42, 3, 60, 5, 36, 13, 43, 37, 18, 34, 25, 12, 59, 24, 47, 36, 11, 50, 3, 38, 9, 58, 16, 5, 43, 18, 47, 10, 37, 18, 59, 46, 29, 52, 40, 12, 34, 28, 56, 36, 53, 7, 43, 8, 24, 52, 26, 17, 56, 43, 24, 32, 63, 20, 57, 16, 22, 52, 36, 8, 41, 56, 29, 32, 54, 7, 35, 57, 14, 48, 20, 62, 13, 39, 53, 29, 8, 45, 13, 29, 7, 61, 14, 54, 6, 63, 38, 32, 18, 43, 2, 39, 6, 47 }, - { 0, 58, 23, 35, 13, 46, 12, 39, 0, 31, 55, 24, 5, 35, 15, 61, 17, 5, 39, 25, 18, 2, 50, 33, 41, 13, 39, 23, 62, 46, 29, 12, 22, 8, 56, 25, 20, 49, 32, 62, 0, 56, 11, 46, 63, 42, 9, 16, 55, 5, 60, 15, 62, 26, 45, 21, 36, 51, 13, 57, 31, 24, 55, 6, 35, 9, 57, 5, 20, 60, 7, 51, 5, 19, 40, 25, 61, 32, 56, 12, 36, 48, 21, 2, 58, 12, 39, 28, 9, 50, 40, 12, 44, 18, 25, 49, 6, 38, 11, 62, 18, 46, 30, 9, 40, 25, 49, 19, 10, 36, 55, 22, 33, 52, 41, 18, 37, 27, 49, 21, 2, 46, 7, 53, 33, 61, 27, 35 }, - { 41, 31, 5, 39, 51, 26, 33, 57, 27, 41, 9, 44, 54, 29, 48, 7, 44, 36, 57, 10, 31, 63, 16, 45, 11, 60, 1, 47, 7, 20, 43, 3, 58, 36, 13, 52, 39, 7, 15, 28, 22, 48, 30, 21, 1, 29, 49, 44, 27, 17, 40, 30, 24, 42, 12, 53, 33, 7, 47, 20, 1, 42, 11, 49, 25, 43, 17, 32, 45, 27, 41, 21, 31, 62, 11, 49, 2, 15, 42, 5, 63, 7, 41, 27, 49, 6, 54, 23, 46, 34, 2, 28, 54, 3, 59, 12, 46, 17, 42, 28, 40, 1, 37, 51, 5, 55, 2, 34, 47, 16, 3, 62, 47, 5, 23, 56, 1, 44, 12, 34, 51, 16, 57, 11, 25, 17, 54, 13 }, - { 60, 26, 55, 18, 3, 60, 20, 6, 52, 15, 50, 19, 32, 11, 23, 53, 26, 21, 1, 47, 42, 27, 8, 58, 21, 27, 53, 36, 26, 54, 31, 50, 17, 30, 45, 1, 29, 59, 44, 53, 41, 4, 35, 58, 51, 19, 32, 4, 52, 34, 48, 8, 51, 5, 56, 2, 25, 61, 27, 38, 54, 27, 62, 21, 51, 1, 39, 62, 10, 50, 1, 58, 13, 47, 38, 18, 35, 54, 22, 51, 30, 19, 59, 34, 14, 32, 44, 4, 60, 15, 52, 62, 20, 43, 30, 35, 21, 60, 4, 52, 12, 24, 61, 18, 30, 42, 23, 61, 25, 50, 27, 38, 11, 59, 12, 35, 50, 30, 59, 24, 8, 42, 28, 37, 48, 9, 44, 21 }, - { 10, 47, 15, 50, 30, 43, 8, 45, 29, 2, 36, 59, 1, 58, 41, 3, 63, 31, 54, 20, 13, 55, 35, 38, 4, 44, 15, 9, 61, 2, 14, 38, 61, 10, 23, 54, 18, 12, 24, 2, 14, 55, 16, 8, 38, 14, 41, 60, 10, 23, 1, 58, 32, 17, 28, 37, 41, 15, 3, 60, 15, 33, 4, 36, 16, 59, 28, 14, 23, 55, 37, 18, 44, 28, 2, 57, 30, 10, 27, 46, 14, 38, 3, 53, 21, 61, 17, 35, 10, 41, 26, 7, 33, 9, 57, 1, 53, 37, 26, 20, 56, 48, 9, 33, 58, 16, 37, 7, 45, 1, 57, 15, 32, 26, 42, 23, 7, 20, 4, 54, 31, 62, 22, 1, 59, 30, 4, 51 }, - { 36, 2, 38, 11, 24, 36, 54, 22, 62, 47, 25, 8, 28, 45, 16, 38, 12, 43, 9, 37, 49, 3, 23, 52, 18, 30, 50, 33, 19, 42, 49, 26, 6, 40, 47, 35, 63, 38, 50, 33, 60, 26, 36, 47, 24, 57, 6, 26, 39, 63, 19, 44, 14, 46, 61, 9, 50, 30, 45, 23, 10, 50, 44, 8, 31, 54, 6, 46, 36, 4, 30, 54, 8, 52, 22, 41, 4, 60, 40, 0, 58, 24, 45, 10, 37, 1, 48, 30, 56, 17, 38, 48, 24, 47, 19, 39, 14, 8, 45, 32, 2, 34, 27, 44, 4, 52, 11, 56, 31, 21, 40, 19, 44, 51, 2, 63, 46, 58, 36, 43, 14, 5, 50, 38, 14, 56, 40, 23 }, - { 61, 46, 32, 63, 54, 1, 14, 34, 12, 40, 18, 49, 37, 10, 61, 30, 51, 24, 60, 7, 29, 40, 62, 11, 46, 58, 6, 56, 24, 10, 34, 52, 21, 59, 16, 3, 27, 5, 20, 46, 9, 40, 7, 62, 2, 30, 53, 15, 48, 10, 28, 35, 54, 6, 21, 34, 18, 55, 7, 40, 57, 19, 26, 60, 41, 13, 24, 51, 19, 61, 9, 25, 34, 15, 63, 11, 45, 17, 20, 47, 33, 8, 31, 62, 43, 26, 53, 7, 24, 59, 0, 13, 55, 4, 62, 27, 51, 31, 63, 15, 58, 7, 54, 14, 46, 22, 28, 43, 12, 63, 8, 54, 5, 17, 39, 33, 15, 10, 27, 17, 47, 34, 19, 45, 27, 12, 33, 17 }, - { 5, 28, 21, 7, 17, 48, 42, 58, 23, 4, 63, 14, 55, 21, 34, 5, 19, 0, 45, 17, 52, 15, 25, 32, 0, 22, 40, 13, 45, 62, 18, 0, 43, 11, 33, 55, 30, 42, 57, 19, 51, 31, 22, 43, 18, 45, 34, 0, 43, 31, 56, 3, 23, 40, 59, 0, 44, 13, 48, 35, 2, 32, 46, 0, 21, 48, 35, 3, 40, 32, 43, 59, 0, 48, 33, 26, 53, 36, 55, 12, 51, 16, 55, 5, 18, 29, 11, 39, 51, 19, 45, 31, 42, 21, 35, 6, 22, 47, 10, 38, 23, 50, 20, 36, 0, 60, 38, 4, 50, 35, 48, 34, 24, 57, 9, 53, 28, 48, 61, 0, 56, 24, 53, 3, 63, 6, 42, 57 }, - { 13, 53, 45, 40, 58, 27, 6, 16, 38, 51, 33, 30, 43, 2, 47, 56, 40, 50, 33, 57, 27, 5, 47, 42, 60, 36, 16, 54, 28, 4, 37, 57, 28, 51, 22, 8, 45, 14, 6, 39, 0, 54, 11, 59, 28, 12, 50, 21, 61, 13, 19, 38, 49, 11, 25, 37, 58, 29, 22, 63, 14, 56, 12, 53, 30, 63, 9, 57, 26, 12, 47, 16, 23, 39, 50, 6, 31, 2, 25, 6, 28, 41, 36, 22, 50, 57, 42, 3, 34, 8, 28, 61, 11, 50, 16, 54, 41, 0, 55, 43, 5, 29, 41, 63, 25, 16, 53, 18, 26, 10, 21, 0, 61, 30, 41, 22, 3, 38, 20, 39, 29, 8, 41, 16, 36, 52, 22, 19 }, - { 55, 34, 0, 25, 10, 32, 56, 44, 28, 0, 57, 7, 26, 53, 23, 8, 13, 35, 22, 12, 36, 60, 20, 8, 14, 29, 48, 2, 41, 49, 23, 13, 39, 7, 48, 58, 25, 53, 34, 62, 28, 16, 48, 4, 37, 56, 27, 5, 36, 52, 46, 7, 62, 33, 52, 11, 17, 53, 5, 28, 41, 24, 38, 17, 5, 39, 20, 45, 15, 56, 5, 38, 60, 8, 14, 57, 21, 48, 62, 39, 59, 13, 1, 60, 9, 32, 16, 63, 44, 25, 52, 15, 36, 2, 60, 29, 12, 33, 25, 17, 59, 45, 13, 8, 49, 32, 6, 40, 59, 29, 45, 37, 13, 47, 6, 55, 30, 45, 9, 52, 13, 59, 25, 47, 32, 1, 49, 30 }, - { 9, 39, 14, 61, 49, 37, 3, 20, 50, 13, 41, 19, 46, 17, 38, 59, 28, 62, 4, 44, 54, 1, 34, 51, 55, 7, 63, 32, 21, 8, 56, 31, 62, 19, 36, 1, 41, 17, 24, 12, 42, 35, 25, 52, 20, 8, 44, 59, 25, 2, 22, 42, 16, 29, 4, 46, 20, 36, 43, 9, 51, 8, 49, 26, 58, 33, 54, 1, 37, 29, 52, 20, 27, 45, 19, 35, 42, 16, 10, 32, 20, 49, 46, 27, 40, 4, 47, 22, 13, 55, 4, 47, 26, 44, 23, 40, 58, 19, 48, 13, 31, 2, 57, 34, 42, 19, 61, 32, 14, 55, 5, 51, 26, 19, 58, 16, 49, 14, 62, 5, 33, 44, 21, 7, 60, 26, 11, 41 }, - { 62, 24, 47, 29, 8, 19, 53, 11, 60, 24, 32, 61, 4, 55, 31, 2, 49, 16, 39, 9, 31, 24, 43, 17, 26, 38, 11, 25, 58, 43, 12, 35, 3, 46, 15, 32, 63, 4, 49, 56, 2, 60, 10, 32, 63, 17, 39, 12, 55, 30, 57, 9, 48, 55, 39, 24, 60, 2, 58, 31, 19, 61, 34, 3, 42, 11, 22, 46, 7, 61, 10, 42, 3, 55, 32, 1, 58, 28, 44, 54, 4, 34, 23, 15, 56, 20, 37, 58, 6, 30, 38, 18, 63, 9, 32, 5, 51, 3, 62, 37, 52, 18, 39, 23, 3, 51, 9, 47, 1, 23, 43, 15, 60, 35, 11, 40, 1, 36, 31, 26, 57, 2, 37, 54, 18, 44, 58, 16 }, - { 5, 51, 3, 33, 43, 62, 21, 42, 35, 9, 48, 15, 36, 10, 22, 42, 20, 46, 26, 56, 50, 12, 59, 3, 48, 19, 45, 53, 1, 27, 47, 17, 52, 24, 56, 11, 51, 21, 37, 30, 20, 46, 14, 41, 1, 47, 33, 7, 41, 17, 35, 27, 20, 1, 14, 54, 26, 33, 18, 47, 1, 44, 14, 59, 16, 52, 28, 18, 49, 31, 25, 34, 63, 13, 51, 24, 9, 50, 3, 23, 38, 63, 7, 52, 29, 46, 11, 33, 50, 22, 57, 36, 1, 57, 49, 17, 39, 28, 9, 35, 6, 27, 53, 15, 55, 30, 24, 58, 36, 41, 11, 52, 32, 3, 44, 25, 62, 23, 51, 15, 42, 22, 50, 10, 39, 4, 31, 35 }, - { 46, 22, 57, 17, 12, 39, 26, 5, 31, 59, 1, 45, 27, 62, 52, 7, 58, 33, 6, 18, 39, 22, 33, 41, 57, 5, 35, 18, 40, 16, 60, 5, 29, 42, 7, 39, 27, 44, 9, 47, 8, 26, 54, 22, 51, 29, 24, 49, 15, 61, 4, 51, 31, 63, 43, 6, 50, 8, 39, 12, 53, 37, 23, 30, 40, 6, 62, 43, 14, 53, 2, 49, 7, 36, 17, 41, 61, 37, 18, 56, 11, 18, 44, 35, 2, 19, 61, 0, 41, 14, 8, 30, 43, 12, 24, 46, 14, 54, 42, 21, 44, 61, 10, 46, 37, 11, 44, 7, 18, 63, 20, 29, 7, 49, 28, 54, 8, 43, 4, 48, 18, 63, 12, 29, 48, 24, 59, 20 }, - { 13, 36, 28, 54, 35, 2, 56, 46, 16, 49, 22, 40, 11, 34, 14, 43, 29, 12, 63, 48, 2, 61, 7, 15, 28, 30, 50, 9, 61, 33, 38, 23, 54, 13, 61, 33, 3, 59, 16, 35, 58, 40, 5, 38, 13, 57, 3, 58, 37, 21, 45, 12, 39, 7, 35, 30, 13, 56, 22, 62, 27, 6, 55, 10, 48, 21, 33, 2, 38, 23, 40, 20, 44, 29, 59, 4, 26, 12, 33, 47, 28, 53, 31, 13, 59, 41, 27, 49, 26, 54, 45, 16, 53, 21, 35, 7, 59, 26, 11, 56, 1, 24, 33, 4, 28, 62, 21, 49, 31, 2, 56, 39, 24, 58, 13, 17, 37, 21, 56, 10, 38, 0, 34, 55, 15, 43, 1, 52 }, - { 42, 9, 50, 6, 25, 60, 14, 38, 10, 29, 53, 18, 57, 3, 25, 51, 0, 53, 25, 17, 29, 37, 52, 46, 0, 62, 14, 37, 4, 50, 10, 44, 0, 46, 20, 25, 50, 19, 55, 0, 23, 31, 62, 34, 11, 45, 19, 32, 0, 53, 10, 59, 23, 47, 18, 60, 42, 28, 37, 3, 50, 15, 35, 44, 0, 51, 27, 60, 9, 57, 16, 58, 11, 22, 46, 15, 53, 48, 7, 42, 0, 60, 5, 49, 24, 54, 9, 17, 39, 5, 34, 62, 3, 40, 60, 31, 0, 47, 29, 16, 49, 39, 59, 17, 50, 0, 40, 13, 53, 38, 16, 46, 0, 42, 34, 60, 2, 53, 29, 31, 58, 46, 27, 6, 61, 8, 37, 28 }, - { 0, 63, 21, 40, 45, 18, 51, 23, 63, 34, 6, 43, 28, 38, 55, 19, 40, 35, 8, 41, 54, 10, 21, 32, 39, 23, 53, 26, 55, 28, 22, 63, 30, 34, 9, 48, 6, 38, 29, 43, 49, 6, 18, 52, 27, 61, 9, 43, 28, 42, 33, 26, 56, 3, 51, 23, 0, 48, 16, 45, 32, 25, 63, 20, 57, 17, 42, 12, 35, 47, 5, 31, 39, 56, 6, 30, 34, 21, 61, 25, 14, 40, 22, 38, 15, 6, 36, 56, 20, 60, 25, 12, 51, 27, 10, 56, 42, 20, 36, 63, 32, 6, 21, 41, 12, 34, 60, 26, 5, 48, 27, 10, 62, 19, 6, 47, 39, 14, 45, 7, 24, 17, 41, 32, 23, 51, 19, 56 }, - { 45, 31, 15, 59, 4, 33, 7, 47, 0, 41, 13, 61, 4, 47, 9, 23, 60, 14, 57, 31, 4, 45, 59, 6, 58, 10, 44, 20, 8, 42, 15, 6, 55, 17, 58, 31, 53, 12, 61, 10, 15, 57, 43, 2, 23, 35, 48, 14, 54, 6, 18, 49, 15, 38, 11, 34, 62, 9, 21, 58, 11, 41, 4, 31, 38, 8, 29, 55, 19, 36, 27, 52, 0, 25, 50, 43, 1, 39, 8, 55, 35, 51, 10, 30, 45, 62, 29, 2, 46, 10, 32, 48, 18, 38, 5, 22, 33, 8, 51, 3, 14, 44, 54, 25, 57, 30, 18, 52, 33, 22, 59, 28, 36, 52, 32, 21, 26, 50, 5, 55, 35, 60, 14, 54, 4, 40, 16, 33 }, - { 27, 3, 49, 10, 30, 40, 55, 27, 57, 24, 52, 21, 32, 17, 60, 30, 5, 44, 27, 49, 19, 34, 13, 24, 43, 36, 3, 49, 31, 59, 37, 48, 26, 41, 2, 41, 14, 36, 21, 32, 40, 26, 13, 49, 55, 5, 16, 40, 25, 60, 36, 1, 63, 29, 17, 44, 25, 40, 52, 5, 29, 47, 54, 13, 46, 24, 60, 4, 51, 22, 63, 14, 45, 18, 12, 62, 17, 57, 19, 42, 3, 26, 58, 48, 1, 21, 40, 52, 23, 37, 44, 1, 29, 58, 43, 50, 15, 61, 19, 45, 58, 28, 7, 48, 2, 46, 8, 42, 3, 55, 8, 50, 12, 4, 55, 10, 63, 33, 20, 40, 11, 3, 46, 20, 48, 26, 61, 11 }, - { 44, 56, 24, 36, 53, 19, 12, 37, 16, 44, 7, 36, 49, 54, 11, 37, 48, 21, 15, 1, 62, 25, 47, 56, 16, 18, 51, 12, 40, 1, 24, 11, 52, 16, 23, 59, 28, 1, 45, 53, 4, 60, 37, 21, 39, 30, 63, 20, 52, 10, 30, 45, 8, 41, 54, 4, 57, 7, 34, 55, 36, 18, 23, 59, 2, 48, 11, 32, 44, 1, 41, 8, 33, 54, 38, 23, 30, 46, 6, 29, 62, 18, 32, 16, 55, 34, 14, 11, 61, 7, 55, 16, 53, 13, 23, 2, 55, 37, 26, 10, 33, 23, 36, 16, 38, 22, 56, 15, 24, 43, 35, 17, 44, 40, 25, 46, 16, 1, 57, 25, 49, 36, 28, 62, 9, 35, 7, 53 }, - { 17, 38, 8, 61, 1, 50, 26, 62, 3, 31, 56, 15, 1, 26, 40, 2, 34, 51, 56, 36, 42, 9, 38, 2, 29, 60, 32, 57, 19, 62, 34, 47, 4, 57, 39, 7, 44, 63, 24, 18, 46, 28, 8, 54, 1, 34, 7, 46, 3, 37, 50, 23, 57, 21, 13, 46, 31, 20, 43, 15, 1, 61, 8, 33, 37, 17, 56, 26, 15, 49, 24, 59, 28, 3, 56, 9, 52, 32, 13, 49, 10, 43, 5, 45, 8, 25, 59, 42, 28, 33, 19, 40, 8, 63, 35, 47, 25, 4, 40, 52, 1, 60, 12, 53, 63, 9, 29, 60, 37, 19, 1, 62, 31, 20, 58, 12, 41, 30, 43, 9, 18, 52, 22, 1, 39, 30, 58, 21 }, - { 13, 47, 29, 18, 43, 34, 5, 48, 20, 42, 10, 45, 30, 58, 20, 63, 24, 11, 6, 28, 54, 14, 22, 52, 41, 7, 26, 5, 45, 15, 53, 13, 35, 27, 18, 50, 12, 33, 5, 56, 10, 17, 45, 24, 59, 15, 50, 26, 56, 13, 19, 5, 32, 52, 27, 36, 2, 61, 12, 26, 49, 40, 27, 52, 13, 50, 6, 39, 61, 34, 10, 37, 48, 20, 41, 27, 2, 36, 59, 24, 54, 33, 63, 20, 38, 50, 3, 17, 52, 4, 58, 27, 45, 21, 32, 11, 48, 17, 57, 20, 46, 38, 25, 43, 4, 34, 51, 6, 13, 45, 57, 26, 6, 48, 2, 35, 53, 23, 61, 34, 59, 6, 42, 56, 13, 51, 2, 41 }, - { 32, 5, 55, 23, 58, 14, 22, 52, 29, 15, 61, 25, 51, 8, 43, 13, 53, 41, 46, 20, 3, 33, 63, 11, 48, 21, 54, 38, 28, 3, 30, 43, 21, 62, 9, 31, 55, 22, 51, 29, 37, 62, 32, 12, 42, 29, 41, 9, 33, 44, 62, 28, 43, 1, 59, 19, 48, 30, 51, 39, 24, 4, 58, 19, 42, 29, 22, 43, 3, 18, 53, 5, 13, 50, 16, 60, 45, 21, 7, 40, 15, 0, 26, 53, 13, 31, 43, 24, 47, 31, 15, 49, 2, 41, 6, 59, 29, 42, 9, 30, 14, 7, 49, 18, 31, 47, 20, 39, 49, 32, 11, 41, 54, 15, 61, 18, 7, 38, 4, 13, 44, 28, 15, 32, 45, 19, 27, 49 }, - { 63, 34, 11, 39, 2, 45, 37, 8, 59, 39, 33, 4, 36, 17, 48, 5, 29, 18, 32, 61, 39, 50, 5, 27, 35, 0, 46, 12, 22, 49, 60, 6, 54, 0, 38, 49, 2, 42, 15, 40, 0, 47, 20, 51, 3, 57, 18, 61, 22, 0, 39, 16, 55, 12, 35, 8, 41, 22, 6, 59, 16, 45, 10, 36, 0, 62, 9, 54, 30, 58, 21, 43, 63, 31, 7, 35, 12, 48, 58, 28, 47, 37, 41, 9, 57, 20, 61, 0, 36, 11, 57, 35, 23, 52, 37, 18, 0, 62, 22, 55, 35, 62, 27, 54, 0, 15, 61, 28, 2, 59, 22, 9, 37, 27, 33, 51, 29, 48, 19, 50, 25, 37, 10, 57, 5, 37, 60, 8 }, - { 20, 25, 46, 52, 31, 60, 12, 55, 0, 19, 11, 46, 62, 35, 23, 38, 57, 0, 55, 10, 16, 30, 58, 44, 17, 59, 29, 63, 42, 8, 36, 20, 33, 46, 16, 61, 25, 35, 8, 54, 26, 7, 58, 22, 34, 6, 47, 14, 53, 31, 48, 9, 37, 25, 49, 63, 16, 55, 45, 14, 34, 63, 21, 53, 25, 33, 46, 16, 35, 7, 46, 29, 0, 39, 25, 55, 22, 34, 18, 4, 56, 11, 23, 51, 28, 6, 39, 14, 62, 44, 19, 8, 60, 12, 56, 28, 50, 34, 39, 5, 51, 3, 41, 12, 57, 35, 10, 53, 25, 17, 52, 30, 47, 0, 43, 14, 5, 57, 31, 55, 0, 63, 47, 23, 54, 24, 14, 43 }, - { 0, 57, 16, 6, 26, 19, 35, 28, 49, 42, 54, 26, 21, 1, 59, 27, 9, 47, 26, 44, 50, 22, 13, 40, 8, 37, 10, 34, 17, 56, 25, 58, 13, 27, 44, 9, 20, 58, 31, 17, 60, 36, 10, 41, 53, 25, 36, 39, 4, 24, 58, 17, 60, 4, 22, 38, 10, 32, 0, 50, 31, 7, 28, 47, 12, 57, 5, 26, 52, 23, 14, 40, 57, 17, 47, 5, 53, 1, 44, 31, 19, 60, 46, 2, 35, 48, 30, 54, 22, 5, 51, 39, 25, 31, 4, 43, 14, 9, 45, 16, 24, 44, 19, 29, 40, 23, 44, 7, 38, 42, 4, 63, 12, 54, 23, 59, 22, 42, 8, 15, 40, 21, 8, 34, 3, 41, 30, 50 }, - { 39, 10, 48, 33, 41, 54, 5, 47, 23, 13, 32, 7, 52, 44, 14, 39, 58, 18, 35, 6, 37, 2, 60, 24, 55, 19, 53, 2, 51, 32, 1, 41, 51, 4, 40, 29, 47, 3, 52, 44, 13, 49, 28, 16, 1, 62, 11, 27, 52, 35, 5, 42, 29, 47, 14, 56, 28, 53, 26, 38, 9, 56, 40, 3, 38, 15, 41, 60, 1, 37, 50, 25, 11, 28, 61, 19, 42, 62, 10, 52, 39, 6, 32, 14, 58, 17, 7, 26, 42, 34, 27, 10, 54, 40, 20, 63, 26, 53, 21, 61, 32, 7, 59, 48, 3, 56, 18, 31, 58, 14, 49, 21, 36, 16, 45, 9, 36, 24, 62, 45, 27, 31, 53, 17, 49, 12, 62, 18 }, - { 28, 59, 21, 58, 2, 16, 38, 9, 62, 3, 56, 41, 10, 31, 50, 4, 32, 52, 12, 63, 23, 46, 33, 31, 4, 48, 25, 43, 14, 23, 47, 11, 22, 55, 14, 60, 23, 37, 11, 39, 23, 2, 45, 56, 31, 43, 19, 55, 16, 46, 21, 51, 11, 33, 44, 2, 41, 18, 5, 52, 23, 44, 17, 60, 27, 49, 11, 32, 44, 10, 54, 2, 56, 33, 8, 38, 13, 29, 36, 16, 24, 63, 27, 51, 21, 43, 56, 12, 49, 3, 59, 48, 1, 15, 46, 7, 36, 2, 47, 11, 50, 27, 37, 13, 33, 8, 51, 46, 1, 34, 28, 40, 3, 33, 60, 29, 47, 1, 35, 11, 59, 42, 2, 60, 26, 46, 6, 35 }, - { 4, 43, 9, 29, 36, 63, 24, 44, 20, 50, 30, 17, 60, 22, 16, 43, 25, 3, 42, 19, 51, 15, 8, 54, 42, 15, 61, 5, 39, 57, 18, 61, 31, 48, 34, 2, 50, 19, 57, 5, 63, 33, 19, 38, 13, 27, 48, 7, 32, 61, 2, 26, 58, 6, 24, 50, 13, 61, 42, 20, 62, 2, 35, 20, 51, 4, 62, 18, 23, 58, 20, 31, 43, 15, 51, 45, 26, 50, 4, 55, 45, 3, 35, 9, 38, 1, 32, 61, 20, 45, 17, 33, 24, 57, 29, 51, 22, 58, 38, 30, 15, 1, 54, 21, 63, 43, 26, 12, 24, 56, 8, 60, 50, 19, 5, 52, 13, 54, 17, 50, 4, 16, 36, 12, 32, 56, 22, 54 }, - { 51, 25, 40, 53, 12, 49, 15, 57, 34, 7, 38, 47, 2, 36, 55, 8, 61, 30, 56, 7, 28, 59, 48, 11, 27, 35, 21, 45, 28, 36, 9, 38, 6, 16, 24, 63, 10, 32, 28, 43, 21, 53, 5, 60, 8, 57, 3, 45, 11, 37, 15, 54, 40, 20, 62, 36, 27, 34, 11, 48, 30, 15, 54, 8, 30, 42, 22, 34, 48, 13, 35, 63, 4, 37, 22, 2, 59, 9, 41, 23, 13, 41, 49, 18, 59, 24, 40, 5, 37, 30, 9, 61, 44, 6, 37, 11, 33, 17, 5, 55, 41, 60, 23, 39, 17, 5, 30, 62, 41, 16, 46, 25, 11, 56, 39, 26, 20, 38, 29, 39, 22, 52, 44, 20, 48, 1, 38, 14 }, - { 15, 33, 2, 18, 44, 6, 27, 0, 32, 61, 25, 12, 58, 28, 40, 20, 47, 13, 34, 43, 38, 1, 23, 62, 40, 0, 51, 10, 63, 3, 52, 26, 44, 30, 45, 6, 41, 54, 0, 51, 12, 30, 46, 24, 49, 22, 40, 33, 63, 23, 43, 30, 9, 47, 0, 17, 54, 7, 57, 3, 37, 47, 24, 46, 13, 55, 7, 52, 2, 42, 6, 26, 49, 18, 60, 34, 16, 57, 33, 20, 61, 30, 8, 54, 14, 46, 12, 53, 16, 55, 38, 13, 22, 53, 18, 59, 46, 27, 43, 19, 32, 10, 45, 6, 49, 36, 52, 2, 20, 55, 6, 39, 32, 15, 44, 3, 58, 10, 63, 6, 56, 30, 7, 58, 9, 40, 19, 63 }, - { 10, 47, 61, 23, 55, 31, 52, 42, 17, 45, 4, 51, 27, 6, 15, 53, 0, 49, 26, 10, 56, 18, 36, 6, 20, 58, 32, 30, 13, 49, 19, 56, 0, 59, 12, 53, 27, 17, 38, 25, 48, 9, 15, 36, 14, 30, 59, 17, 0, 50, 8, 58, 18, 56, 31, 45, 21, 41, 29, 19, 60, 6, 32, 59, 0, 36, 29, 39, 19, 59, 46, 12, 55, 30, 10, 47, 24, 3, 28, 48, 0, 55, 44, 27, 33, 4, 63, 29, 49, 0, 26, 50, 34, 2, 42, 14, 0, 62, 9, 56, 3, 52, 28, 34, 58, 9, 20, 48, 37, 32, 22, 53, 0, 62, 27, 49, 34, 46, 21, 33, 41, 14, 25, 37, 53, 29, 31, 45 }, - { 56, 28, 7, 37, 11, 36, 20, 9, 54, 14, 39, 19, 34, 63, 45, 37, 24, 17, 60, 31, 21, 45, 53, 29, 47, 15, 7, 55, 40, 23, 34, 14, 42, 20, 37, 35, 15, 59, 7, 62, 34, 40, 59, 1, 51, 42, 10, 28, 54, 21, 35, 5, 38, 13, 36, 4, 59, 12, 39, 53, 15, 43, 9, 21, 39, 62, 16, 56, 25, 9, 32, 38, 0, 41, 14, 51, 40, 53, 43, 11, 37, 17, 5, 22, 57, 39, 19, 7, 42, 21, 60, 10, 31, 63, 25, 52, 30, 49, 36, 25, 48, 17, 61, 14, 22, 42, 29, 13, 60, 11, 47, 18, 35, 41, 7, 23, 4, 16, 51, 11, 0, 48, 61, 3, 17, 50, 5, 24 }, - { 0, 42, 21, 49, 60, 3, 57, 40, 29, 48, 23, 56, 42, 11, 22, 5, 59, 39, 4, 50, 3, 41, 12, 57, 25, 50, 44, 18, 4, 46, 7, 62, 33, 50, 4, 56, 21, 32, 43, 18, 3, 23, 55, 34, 20, 4, 53, 38, 12, 46, 29, 52, 25, 61, 23, 51, 26, 46, 1, 34, 25, 57, 28, 51, 26, 11, 50, 3, 44, 28, 53, 21, 57, 27, 62, 6, 31, 19, 8, 63, 26, 59, 36, 47, 15, 29, 50, 25, 35, 47, 18, 41, 4, 48, 8, 40, 12, 23, 6, 44, 13, 40, 1, 31, 55, 0, 61, 43, 4, 50, 26, 58, 9, 53, 24, 61, 42, 55, 31, 43, 57, 20, 34, 27, 43, 8, 59, 39 }, - { 18, 51, 30, 13, 26, 16, 46, 22, 2, 59, 8, 30, 1, 48, 33, 51, 29, 9, 46, 16, 62, 14, 33, 2, 38, 9, 27, 60, 37, 26, 53, 17, 28, 10, 24, 46, 2, 49, 8, 57, 29, 45, 6, 26, 62, 44, 18, 25, 61, 3, 42, 14, 49, 10, 43, 6, 17, 32, 63, 10, 49, 4, 40, 14, 45, 33, 22, 37, 12, 61, 5, 17, 43, 7, 23, 37, 15, 58, 49, 13, 39, 21, 10, 52, 1, 62, 9, 56, 12, 2, 58, 28, 36, 16, 56, 28, 56, 35, 20, 63, 24, 37, 51, 8, 45, 25, 16, 33, 27, 38, 2, 44, 13, 30, 17, 36, 12, 26, 5, 18, 28, 47, 13, 60, 23, 45, 13, 33 }, - { 55, 4, 62, 34, 52, 38, 7, 63, 32, 37, 13, 53, 25, 62, 18, 12, 55, 41, 27, 35, 24, 49, 31, 52, 17, 63, 34, 1, 56, 12, 41, 2, 48, 58, 39, 16, 61, 27, 41, 52, 13, 19, 50, 39, 11, 31, 57, 6, 32, 40, 20, 55, 1, 28, 33, 57, 48, 8, 37, 22, 44, 18, 53, 1, 61, 5, 54, 16, 47, 36, 50, 24, 55, 34, 48, 45, 1, 30, 33, 46, 2, 50, 32, 42, 25, 34, 43, 21, 38, 52, 23, 45, 14, 54, 21, 4, 44, 16, 53, 29, 10, 47, 19, 57, 12, 54, 39, 10, 51, 15, 63, 21, 57, 40, 51, 1, 48, 57, 37, 62, 2, 38, 9, 52, 1, 35, 58, 22 }, - { 36, 46, 10, 42, 1, 27, 43, 15, 50, 21, 45, 16, 41, 3, 35, 44, 20, 1, 57, 11, 55, 7, 43, 8, 22, 42, 13, 46, 21, 39, 31, 60, 22, 5, 29, 44, 11, 35, 20, 4, 36, 58, 32, 15, 47, 2, 36, 48, 16, 60, 8, 35, 44, 63, 16, 2, 40, 26, 55, 14, 58, 35, 24, 31, 19, 42, 31, 58, 1, 29, 10, 40, 2, 19, 12, 54, 22, 61, 7, 24, 56, 5, 28, 16, 54, 3, 15, 58, 6, 30, 8, 62, 1, 43, 31, 47, 7, 59, 1, 38, 58, 4, 34, 27, 38, 5, 31, 59, 7, 46, 30, 3, 34, 6, 28, 59, 20, 8, 32, 15, 53, 24, 55, 31, 19, 49, 11, 26 }, - { 2, 24, 16, 58, 19, 55, 5, 35, 10, 61, 4, 28, 57, 24, 58, 7, 31, 47, 22, 38, 19, 28, 61, 36, 54, 5, 59, 29, 6, 52, 15, 11, 43, 36, 8, 54, 52, 1, 62, 25, 47, 9, 1, 60, 28, 53, 24, 14, 46, 27, 51, 22, 12, 24, 38, 53, 20, 11, 51, 3, 29, 7, 48, 63, 8, 49, 9, 21, 52, 14, 63, 32, 46, 60, 35, 4, 41, 16, 52, 35, 18, 42, 59, 7, 36, 61, 45, 27, 33, 51, 19, 39, 34, 11, 61, 18, 33, 41, 28, 15, 54, 22, 42, 3, 49, 21, 47, 18, 36, 23, 55, 19, 48, 24, 45, 10, 33, 44, 50, 40, 7, 35, 15, 41, 63, 6, 40, 54 }, - { 62, 41, 32, 8, 47, 28, 60, 24, 44, 30, 38, 49, 9, 33, 14, 40, 50, 14, 60, 2, 54, 40, 0, 20, 25, 39, 16, 49, 24, 35, 57, 47, 19, 61, 33, 18, 23, 37, 13, 55, 31, 43, 22, 41, 17, 8, 42, 58, 0, 37, 5, 56, 31, 54, 7, 30, 60, 33, 42, 17, 59, 39, 12, 27, 38, 17, 35, 41, 27, 45, 20, 7, 25, 15, 29, 58, 27, 47, 11, 40, 14, 54, 23, 46, 19, 31, 11, 40, 13, 49, 5, 58, 24, 51, 26, 6, 50, 20, 49, 9, 32, 46, 17, 60, 14, 63, 24, 1, 57, 41, 9, 43, 14, 62, 16, 52, 3, 27, 14, 22, 61, 45, 4, 28, 9, 47, 29, 17 }, - { 5, 50, 12, 53, 38, 18, 11, 51, 0, 55, 17, 6, 47, 54, 19, 63, 5, 26, 34, 45, 13, 30, 47, 58, 10, 48, 32, 3, 62, 9, 26, 0, 25, 14, 50, 3, 47, 30, 42, 16, 6, 63, 12, 49, 33, 55, 21, 10, 34, 63, 18, 41, 3, 47, 19, 43, 0, 49, 8, 28, 46, 20, 52, 0, 56, 24, 60, 3, 59, 5, 39, 57, 48, 52, 9, 38, 3, 21, 26, 60, 0, 32, 12, 38, 4, 48, 53, 0, 60, 15, 29, 44, 18, 10, 38, 57, 13, 60, 2, 26, 62, 7, 50, 29, 35, 8, 40, 53, 28, 12, 60, 33, 38, 5, 37, 29, 60, 39, 56, 0, 30, 18, 50, 34, 59, 25, 14, 44 }, - { 20, 31, 60, 22, 3, 49, 33, 25, 40, 13, 34, 59, 22, 36, 0, 28, 37, 56, 8, 18, 51, 16, 4, 45, 27, 12, 53, 42, 18, 44, 51, 31, 55, 40, 28, 58, 7, 60, 10, 51, 27, 37, 24, 56, 5, 26, 44, 29, 50, 23, 45, 11, 34, 15, 59, 27, 13, 23, 62, 37, 4, 57, 15, 32, 42, 6, 47, 11, 30, 43, 23, 13, 0, 36, 18, 44, 63, 51, 37, 29, 49, 20, 57, 27, 62, 9, 24, 35, 23, 53, 37, 3, 42, 55, 0, 36, 23, 39, 31, 43, 17, 37, 24, 11, 52, 43, 19, 32, 5, 50, 26, 0, 56, 21, 54, 11, 19, 6, 47, 25, 59, 42, 12, 54, 21, 3, 38, 57 }, - { 48, 0, 35, 27, 44, 14, 59, 7, 57, 46, 26, 2, 42, 12, 52, 43, 10, 27, 53, 42, 32, 62, 37, 21, 34, 61, 7, 23, 36, 4, 38, 12, 41, 5, 17, 45, 22, 27, 39, 21, 59, 0, 45, 18, 39, 62, 3, 38, 14, 7, 54, 26, 61, 39, 9, 52, 45, 36, 18, 50, 10, 34, 44, 22, 50, 14, 36, 55, 17, 34, 53, 62, 33, 26, 56, 6, 31, 12, 6, 53, 9, 44, 2, 50, 20, 40, 55, 17, 47, 7, 26, 63, 22, 32, 48, 16, 46, 8, 52, 12, 57, 41, 0, 56, 25, 3, 61, 14, 45, 35, 18, 44, 12, 46, 23, 42, 32, 51, 35, 10, 17, 36, 23, 1, 45, 52, 32, 10 }, - { 37, 15, 43, 8, 63, 39, 21, 31, 16, 37, 19, 62, 30, 46, 17, 60, 21, 48, 1, 23, 6, 25, 11, 56, 1, 40, 30, 58, 15, 54, 21, 59, 9, 63, 35, 56, 11, 51, 2, 46, 34, 14, 53, 7, 30, 11, 51, 19, 60, 40, 30, 1, 24, 50, 20, 32, 3, 56, 5, 25, 31, 13, 61, 2, 29, 60, 25, 20, 51, 2, 27, 8, 18, 42, 10, 45, 21, 34, 43, 17, 62, 29, 41, 14, 34, 6, 30, 43, 2, 57, 33, 13, 45, 12, 27, 62, 4, 55, 21, 35, 5, 27, 45, 33, 16, 47, 30, 54, 22, 10, 51, 27, 63, 7, 49, 1, 58, 22, 15, 43, 53, 7, 57, 39, 27, 12, 61, 24 }, - { 56, 51, 26, 56, 19, 2, 41, 54, 5, 52, 9, 48, 6, 23, 39, 4, 32, 15, 63, 35, 59, 49, 43, 15, 52, 19, 50, 9, 46, 33, 1, 29, 48, 20, 32, 1, 38, 33, 19, 54, 9, 32, 24, 48, 58, 35, 16, 48, 4, 52, 13, 57, 33, 5, 45, 59, 15, 29, 41, 55, 47, 39, 23, 53, 9, 40, 4, 57, 10, 44, 48, 40, 50, 14, 61, 24, 55, 1, 59, 22, 33, 8, 51, 25, 58, 46, 11, 59, 20, 41, 17, 51, 6, 56, 35, 25, 42, 30, 15, 58, 48, 18, 61, 9, 58, 39, 13, 2, 37, 59, 40, 2, 31, 16, 34, 41, 8, 30, 62, 3, 29, 48, 33, 5, 63, 16, 41, 7 }, - { 22, 4, 46, 11, 33, 51, 29, 10, 62, 24, 43, 27, 15, 58, 50, 25, 54, 44, 9, 38, 18, 3, 29, 57, 32, 5, 26, 43, 17, 61, 24, 52, 8, 42, 23, 53, 15, 61, 7, 28, 57, 43, 4, 40, 20, 2, 43, 25, 32, 35, 21, 43, 17, 48, 10, 22, 38, 54, 11, 21, 1, 58, 16, 30, 48, 18, 46, 32, 38, 13, 22, 4, 59, 35, 2, 51, 30, 39, 15, 47, 4, 56, 13, 37, 1, 28, 16, 52, 32, 9, 61, 29, 38, 19, 3, 52, 10, 48, 1, 32, 11, 40, 20, 36, 6, 22, 49, 29, 55, 6, 20, 56, 36, 52, 19, 60, 26, 46, 18, 54, 40, 13, 20, 46, 35, 19, 49, 29 }, - { 61, 17, 34, 53, 23, 6, 48, 35, 20, 40, 1, 56, 36, 29, 11, 34, 7, 41, 14, 30, 55, 20, 46, 8, 24, 38, 63, 2, 37, 10, 45, 14, 34, 49, 6, 13, 44, 25, 49, 41, 21, 12, 61, 15, 54, 29, 63, 12, 56, 8, 49, 2, 62, 36, 28, 61, 0, 25, 41, 63, 35, 8, 44, 6, 37, 62, 7, 21, 63, 28, 55, 31, 16, 24, 41, 19, 9, 57, 27, 36, 18, 42, 31, 62, 22, 55, 38, 4, 27, 47, 1, 40, 14, 54, 43, 20, 60, 23, 38, 63, 25, 51, 2, 53, 26, 63, 10, 42, 17, 34, 47, 25, 13, 5, 44, 11, 55, 2, 38, 27, 6, 60, 52, 25, 9, 55, 1, 40 }, - { 8, 30, 58, 3, 42, 61, 17, 38, 13, 59, 32, 10, 54, 3, 51, 20, 61, 26, 57, 2, 46, 33, 12, 60, 41, 13, 48, 29, 55, 20, 39, 27, 57, 18, 62, 29, 55, 2, 31, 16, 37, 50, 26, 36, 6, 46, 9, 41, 27, 57, 23, 39, 26, 6, 51, 12, 31, 46, 7, 16, 27, 52, 19, 56, 26, 12, 33, 53, 1, 41, 8, 57, 46, 7, 54, 32, 47, 5, 49, 11, 60, 23, 5, 48, 10, 43, 19, 63, 35, 24, 49, 21, 59, 5, 31, 37, 14, 44, 7, 42, 6, 30, 46, 13, 44, 32, 19, 50, 4, 58, 8, 30, 62, 38, 28, 53, 21, 36, 13, 50, 21, 33, 15, 2, 44, 31, 14, 47 }, - { 37, 13, 39, 16, 28, 9, 57, 0, 25, 49, 21, 45, 18, 47, 12, 42, 0, 49, 22, 39, 16, 53, 25, 36, 0, 52, 22, 16, 6, 60, 4, 51, 0, 26, 37, 47, 10, 36, 63, 5, 57, 0, 18, 59, 23, 33, 51, 19, 0, 44, 15, 11, 54, 17, 42, 35, 53, 18, 58, 33, 49, 4, 34, 42, 0, 50, 43, 25, 16, 49, 34, 20, 37, 28, 12, 63, 16, 38, 25, 44, 0, 40, 52, 17, 35, 3, 50, 14, 8, 53, 11, 36, 25, 45, 9, 62, 0, 54, 28, 17, 50, 55, 15, 24, 57, 0, 53, 34, 23, 41, 15, 45, 0, 49, 16, 4, 48, 9, 63, 45, 0, 42, 58, 37, 61, 22, 54, 26 }, - { 0, 50, 21, 47, 54, 36, 27, 45, 52, 4, 34, 15, 63, 29, 37, 59, 17, 31, 6, 61, 28, 5, 48, 18, 59, 27, 34, 56, 44, 31, 35, 12, 41, 59, 16, 3, 40, 20, 50, 22, 30, 40, 52, 10, 45, 3, 59, 22, 37, 61, 29, 46, 31, 58, 2, 22, 9, 43, 3, 39, 14, 61, 24, 54, 15, 29, 11, 60, 39, 17, 5, 61, 0, 44, 50, 3, 31, 14, 58, 21, 54, 28, 15, 45, 60, 26, 33, 58, 44, 22, 60, 2, 57, 34, 49, 27, 18, 34, 21, 59, 29, 4, 36, 41, 8, 39, 28, 11, 62, 26, 53, 20, 35, 24, 59, 32, 29, 39, 24, 31, 57, 23, 11, 28, 5, 36, 11, 59 }, - { 44, 32, 63, 5, 20, 12, 41, 7, 30, 61, 42, 8, 39, 5, 33, 8, 24, 53, 45, 11, 37, 58, 7, 44, 10, 50, 3, 40, 8, 22, 53, 19, 46, 9, 33, 52, 24, 58, 8, 44, 13, 47, 8, 34, 38, 30, 14, 47, 7, 34, 4, 55, 9, 19, 40, 49, 56, 26, 60, 21, 30, 45, 10, 19, 40, 58, 23, 36, 3, 52, 45, 23, 54, 13, 22, 42, 53, 45, 7, 33, 10, 36, 57, 6, 29, 12, 41, 0, 30, 15, 41, 30, 17, 7, 16, 53, 40, 56, 2, 39, 12, 61, 10, 52, 31, 60, 16, 45, 1, 37, 7, 61, 40, 10, 43, 17, 58, 7, 54, 14, 4, 51, 39, 49, 18, 56, 42, 20 }, - { 14, 6, 24, 36, 56, 49, 22, 60, 18, 14, 23, 51, 26, 57, 21, 52, 41, 14, 35, 50, 19, 31, 40, 23, 33, 14, 63, 17, 32, 47, 7, 62, 23, 30, 56, 11, 42, 27, 14, 60, 35, 19, 28, 61, 17, 55, 25, 39, 53, 17, 42, 21, 38, 63, 25, 5, 14, 36, 12, 50, 1, 37, 59, 32, 2, 51, 6, 56, 27, 32, 11, 30, 38, 26, 60, 8, 26, 19, 62, 39, 50, 2, 21, 39, 53, 23, 56, 19, 49, 39, 5, 46, 55, 23, 42, 4, 31, 11, 47, 26, 45, 22, 48, 18, 21, 5, 48, 25, 57, 14, 47, 30, 3, 56, 12, 50, 1, 42, 19, 47, 35, 17, 8, 30, 45, 25, 4, 51 }, - { 28, 58, 43, 1, 31, 8, 33, 2, 44, 55, 32, 1, 60, 12, 46, 27, 4, 62, 23, 1, 56, 13, 62, 2, 54, 36, 25, 51, 1, 57, 26, 42, 3, 49, 17, 38, 1, 48, 31, 4, 54, 3, 50, 24, 1, 49, 5, 63, 13, 27, 52, 1, 48, 13, 45, 33, 52, 30, 46, 20, 55, 28, 6, 48, 24, 38, 20, 47, 14, 62, 48, 9, 58, 4, 36, 30, 56, 1, 34, 12, 18, 63, 25, 48, 4, 16, 37, 7, 62, 10, 52, 28, 13, 50, 36, 63, 24, 51, 15, 58, 8, 33, 1, 38, 56, 35, 42, 9, 33, 51, 22, 18, 48, 32, 27, 37, 23, 61, 33, 11, 59, 29, 62, 1, 53, 10, 60, 33 }, - { 12, 39, 17, 52, 26, 46, 53, 38, 25, 11, 48, 36, 16, 43, 2, 35, 55, 17, 39, 29, 43, 9, 28, 45, 20, 5, 46, 12, 42, 28, 13, 52, 36, 6, 60, 22, 54, 17, 62, 39, 25, 42, 15, 55, 44, 20, 31, 10, 35, 57, 24, 32, 29, 6, 59, 18, 7, 62, 3, 41, 10, 44, 16, 54, 13, 62, 31, 9, 41, 1, 21, 43, 18, 47, 15, 40, 11, 49, 28, 55, 46, 30, 8, 43, 32, 61, 28, 47, 25, 34, 21, 61, 32, 1, 20, 9, 46, 6, 35, 19, 41, 54, 27, 63, 14, 3, 51, 20, 62, 2, 38, 55, 8, 21, 63, 6, 46, 9, 26, 51, 3, 24, 43, 34, 16, 41, 18, 48 }, - { 62, 23, 55, 9, 15, 62, 19, 13, 58, 40, 6, 30, 54, 19, 50, 31, 10, 44, 6, 59, 21, 47, 51, 15, 60, 39, 30, 54, 21, 61, 19, 33, 14, 29, 43, 11, 34, 45, 7, 21, 10, 56, 36, 6, 38, 11, 58, 42, 2, 47, 11, 60, 50, 16, 41, 28, 38, 23, 47, 17, 35, 63, 22, 33, 42, 5, 45, 17, 53, 35, 25, 56, 33, 6, 51, 19, 60, 23, 43, 15, 5, 40, 58, 13, 51, 1, 45, 11, 54, 3, 43, 8, 37, 48, 59, 29, 39, 21, 61, 43, 3, 31, 10, 44, 24, 29, 60, 12, 28, 40, 11, 25, 43, 52, 14, 41, 16, 57, 44, 20, 40, 55, 12, 21, 57, 27, 35, 2 }, - { 37, 6, 31, 42, 40, 4, 29, 50, 0, 20, 63, 28, 9, 58, 14, 24, 63, 26, 48, 16, 34, 4, 32, 38, 23, 11, 58, 4, 37, 9, 45, 5, 63, 48, 26, 57, 2, 28, 32, 51, 46, 29, 13, 62, 27, 46, 28, 18, 50, 15, 40, 4, 19, 34, 54, 0, 53, 9, 26, 58, 28, 5, 49, 0, 57, 27, 19, 60, 29, 8, 59, 12, 37, 63, 24, 46, 3, 37, 6, 52, 26, 32, 20, 36, 9, 22, 59, 18, 35, 51, 14, 57, 17, 24, 12, 44, 56, 0, 30, 13, 59, 20, 49, 17, 54, 43, 6, 34, 46, 17, 58, 36, 0, 34, 29, 54, 25, 2, 36, 15, 60, 6, 37, 46, 4, 50, 9, 45 }, - { 19, 59, 48, 3, 24, 60, 44, 22, 34, 51, 15, 45, 41, 5, 33, 47, 0, 37, 12, 55, 25, 54, 8, 57, 0, 47, 18, 34, 49, 15, 55, 24, 40, 20, 8, 35, 53, 13, 41, 18, 0, 59, 22, 33, 4, 52, 8, 60, 24, 36, 31, 56, 45, 26, 10, 43, 15, 56, 36, 4, 51, 14, 39, 30, 12, 55, 36, 2, 39, 49, 4, 44, 17, 0, 32, 13, 53, 35, 59, 17, 62, 0, 55, 24, 52, 38, 31, 6, 42, 19, 29, 40, 4, 54, 33, 5, 16, 27, 52, 37, 23, 55, 7, 37, 0, 39, 23, 49, 4, 53, 31, 15, 59, 10, 50, 4, 60, 34, 48, 7, 31, 49, 27, 14, 62, 22, 53, 29 }, - { 46, 21, 14, 51, 36, 17, 7, 57, 10, 32, 3, 37, 22, 60, 39, 18, 56, 20, 42, 3, 36, 10, 44, 26, 41, 29, 53, 27, 2, 39, 30, 52, 0, 59, 15, 48, 23, 61, 6, 58, 37, 12, 40, 49, 16, 39, 20, 44, 0, 62, 8, 21, 3, 59, 23, 32, 49, 31, 12, 44, 22, 59, 18, 50, 24, 7, 43, 52, 15, 23, 41, 26, 51, 28, 55, 39, 21, 27, 10, 42, 12, 45, 27, 47, 3, 15, 63, 26, 55, 0, 60, 26, 45, 18, 62, 38, 58, 49, 8, 47, 4, 33, 46, 29, 57, 13, 56, 16, 59, 21, 5, 47, 23, 39, 18, 44, 13, 22, 28, 53, 19, 0, 58, 32, 41, 7, 26, 13 }, - { 0, 56, 34, 28, 11, 55, 31, 47, 26, 41, 56, 13, 53, 28, 11, 49, 7, 52, 32, 61, 50, 22, 63, 17, 13, 56, 7, 19, 43, 62, 10, 21, 37, 32, 43, 4, 38, 19, 44, 25, 31, 54, 5, 23, 61, 30, 53, 12, 35, 22, 43, 53, 37, 48, 7, 62, 20, 2, 61, 41, 8, 34, 47, 9, 63, 34, 28, 10, 55, 33, 14, 57, 7, 47, 9, 61, 4, 49, 31, 50, 21, 38, 8, 16, 57, 44, 33, 5, 49, 36, 12, 50, 7, 34, 10, 25, 2, 22, 36, 15, 26, 61, 18, 9, 22, 46, 32, 8, 27, 37, 44, 30, 55, 3, 62, 24, 38, 56, 5, 45, 38, 24, 43, 10, 19, 54, 39, 61 }, - { 41, 30, 8, 63, 43, 23, 38, 3, 62, 19, 8, 49, 25, 1, 58, 30, 23, 40, 9, 28, 18, 40, 6, 38, 49, 22, 35, 59, 8, 27, 50, 5, 56, 17, 11, 50, 30, 9, 55, 2, 51, 19, 34, 47, 9, 41, 6, 26, 48, 57, 14, 28, 17, 12, 39, 13, 37, 46, 25, 19, 54, 27, 1, 37, 16, 45, 20, 60, 1, 48, 20, 38, 31, 22, 42, 15, 19, 44, 1, 61, 6, 34, 56, 40, 29, 10, 20, 46, 13, 22, 41, 23, 59, 42, 30, 51, 45, 13, 63, 53, 42, 12, 51, 38, 62, 2, 26, 41, 50, 1, 61, 10, 19, 42, 31, 8, 49, 32, 12, 63, 9, 52, 16, 56, 36, 2, 31, 16 }, - { 52, 5, 47, 20, 1, 53, 12, 50, 16, 35, 43, 21, 33, 43, 16, 44, 3, 59, 14, 46, 1, 30, 60, 33, 2, 45, 12, 42, 31, 47, 14, 33, 46, 25, 55, 27, 60, 36, 16, 42, 14, 46, 26, 1, 55, 15, 63, 32, 2, 38, 5, 47, 33, 61, 30, 52, 4, 57, 6, 38, 11, 43, 61, 24, 52, 3, 31, 22, 42, 10, 62, 3, 59, 11, 35, 57, 33, 54, 24, 14, 29, 48, 18, 2, 60, 41, 53, 24, 32, 62, 3, 53, 15, 1, 55, 17, 32, 40, 6, 31, 1, 40, 28, 5, 35, 52, 19, 63, 13, 33, 17, 41, 52, 26, 15, 57, 1, 20, 42, 17, 35, 27, 48, 5, 25, 50, 44, 11 }, - { 35, 25, 38, 57, 33, 17, 40, 6, 59, 27, 54, 5, 61, 10, 52, 26, 36, 19, 51, 35, 57, 48, 11, 20, 54, 25, 61, 16, 1, 58, 24, 61, 3, 39, 7, 47, 1, 22, 49, 28, 63, 10, 58, 32, 17, 36, 45, 19, 51, 29, 59, 10, 50, 1, 23, 42, 18, 29, 51, 21, 56, 32, 14, 5, 40, 58, 47, 13, 54, 35, 29, 45, 18, 52, 26, 2, 38, 8, 46, 36, 58, 11, 52, 35, 17, 28, 1, 58, 9, 39, 17, 28, 37, 48, 20, 9, 57, 24, 50, 19, 58, 16, 48, 25, 43, 11, 35, 6, 45, 24, 56, 4, 36, 7, 47, 35, 52, 28, 59, 30, 2, 61, 21, 33, 63, 12, 18, 59 }, - { 3, 49, 15, 10, 27, 61, 25, 45, 30, 0, 14, 47, 31, 38, 17, 62, 7, 55, 27, 4, 15, 24, 42, 52, 10, 34, 5, 51, 36, 18, 41, 11, 35, 21, 62, 13, 33, 57, 8, 35, 5, 40, 21, 43, 52, 3, 24, 56, 11, 16, 33, 25, 41, 20, 55, 8, 60, 35, 15, 48, 2, 57, 30, 49, 18, 25, 6, 39, 17, 57, 7, 25, 43, 5, 49, 16, 62, 22, 55, 4, 25, 43, 23, 7, 50, 11, 37, 48, 14, 51, 33, 57, 7, 27, 39, 46, 4, 29, 11, 43, 34, 56, 7, 60, 20, 54, 30, 57, 22, 49, 9, 33, 54, 14, 63, 23, 6, 43, 10, 40, 50, 13, 44, 8, 38, 33, 46, 23 }, - { 55, 39, 22, 50, 44, 4, 36, 9, 52, 23, 37, 59, 21, 2, 46, 13, 31, 41, 11, 45, 62, 29, 6, 37, 19, 48, 30, 23, 44, 7, 53, 28, 54, 16, 41, 29, 44, 18, 52, 24, 60, 15, 48, 7, 27, 59, 9, 34, 42, 54, 7, 63, 4, 46, 31, 27, 45, 0, 40, 26, 34, 17, 37, 10, 53, 29, 36, 50, 2, 27, 51, 11, 61, 37, 23, 41, 30, 7, 18, 50, 39, 14, 63, 32, 45, 61, 19, 30, 25, 44, 2, 47, 23, 63, 11, 34, 59, 37, 60, 3, 22, 14, 44, 30, 15, 0, 47, 15, 3, 38, 61, 20, 27, 45, 11, 39, 51, 16, 55, 3, 22, 54, 29, 58, 1, 57, 6, 29 }, - { 9, 17, 60, 2, 34, 56, 20, 62, 39, 12, 49, 6, 29, 56, 34, 48, 0, 58, 22, 38, 18, 43, 56, 0, 63, 14, 55, 3, 59, 31, 15, 45, 0, 49, 6, 58, 3, 38, 12, 45, 0, 37, 29, 57, 13, 39, 30, 49, 0, 23, 44, 36, 16, 57, 13, 54, 11, 24, 63, 9, 53, 7, 62, 42, 0, 59, 15, 23, 63, 34, 40, 16, 32, 0, 53, 12, 48, 28, 59, 33, 0, 53, 9, 27, 3, 22, 54, 5, 56, 9, 61, 13, 42, 14, 52, 19, 0, 21, 47, 27, 53, 36, 3, 50, 39, 58, 25, 40, 53, 28, 12, 50, 0, 59, 32, 2, 21, 34, 26, 46, 37, 7, 18, 47, 24, 14, 53, 42 }, - { 61, 32, 13, 54, 29, 7, 46, 13, 28, 57, 18, 41, 53, 15, 9, 39, 24, 49, 33, 3, 53, 9, 26, 32, 40, 28, 46, 39, 25, 9, 56, 21, 63, 37, 26, 22, 51, 27, 17, 56, 31, 53, 4, 43, 22, 46, 12, 18, 60, 40, 20, 26, 50, 21, 39, 5, 49, 33, 16, 44, 22, 46, 20, 32, 24, 45, 8, 43, 12, 46, 4, 48, 56, 20, 29, 58, 3, 40, 10, 42, 31, 21, 47, 41, 56, 38, 15, 42, 36, 27, 20, 33, 55, 3, 26, 44, 31, 54, 12, 35, 9, 63, 28, 10, 21, 32, 9, 60, 17, 8, 43, 29, 40, 16, 36, 48, 60, 7, 57, 14, 62, 31, 42, 15, 36, 40, 20, 26 }, - { 0, 37, 47, 23, 41, 18, 32, 48, 1, 35, 8, 25, 4, 26, 63, 20, 54, 8, 16, 61, 35, 23, 51, 15, 58, 7, 12, 20, 50, 34, 42, 4, 38, 10, 32, 47, 8, 60, 41, 20, 9, 25, 50, 19, 62, 1, 37, 56, 28, 8, 53, 11, 3, 58, 34, 43, 19, 60, 38, 4, 58, 31, 3, 51, 11, 55, 38, 30, 21, 58, 19, 26, 9, 44, 36, 13, 46, 20, 62, 24, 13, 60, 5, 28, 12, 34, 7, 59, 0, 53, 45, 6, 38, 30, 50, 7, 62, 16, 41, 5, 46, 18, 55, 42, 51, 5, 45, 23, 34, 48, 19, 58, 5, 25, 54, 19, 13, 41, 28, 21, 0, 49, 10, 60, 4, 51, 9, 45 }, - { 19, 28, 6, 58, 10, 51, 4, 22, 55, 42, 60, 45, 34, 51, 42, 5, 30, 45, 27, 40, 13, 47, 4, 49, 21, 38, 60, 29, 2, 57, 17, 27, 52, 19, 61, 14, 30, 34, 2, 44, 63, 33, 11, 35, 16, 51, 25, 6, 14, 47, 31, 61, 37, 29, 18, 8, 52, 2, 28, 54, 13, 41, 15, 62, 35, 18, 2, 60, 6, 33, 41, 61, 31, 6, 56, 17, 34, 50, 6, 52, 44, 35, 16, 51, 59, 24, 48, 18, 31, 40, 16, 49, 21, 60, 17, 39, 10, 49, 32, 57, 24, 39, 1, 25, 18, 62, 37, 12, 56, 1, 37, 11, 52, 44, 9, 30, 47, 4, 51, 40, 55, 25, 34, 27, 56, 30, 32, 54 }, - { 63, 40, 49, 15, 43, 26, 63, 38, 16, 20, 30, 12, 57, 14, 19, 60, 36, 12, 59, 2, 57, 17, 42, 31, 1, 44, 16, 35, 47, 11, 32, 48, 13, 43, 1, 39, 51, 12, 57, 23, 6, 40, 53, 3, 55, 31, 39, 60, 35, 44, 5, 15, 45, 1, 62, 41, 26, 14, 47, 22, 36, 27, 50, 9, 26, 47, 52, 28, 54, 16, 1, 13, 51, 39, 23, 63, 1, 30, 15, 26, 2, 57, 19, 37, 1, 44, 21, 50, 13, 63, 8, 24, 56, 1, 35, 25, 58, 20, 2, 28, 14, 51, 33, 59, 13, 30, 4, 49, 31, 24, 63, 26, 33, 3, 58, 38, 62, 24, 32, 8, 17, 45, 5, 48, 18, 3, 43, 11 }, - { 21, 4, 24, 34, 59, 1, 37, 11, 53, 5, 47, 2, 22, 40, 32, 1, 24, 50, 21, 29, 38, 25, 63, 8, 55, 24, 53, 6, 62, 23, 59, 3, 54, 20, 58, 24, 5, 46, 15, 38, 48, 14, 27, 42, 23, 7, 46, 10, 17, 58, 25, 52, 23, 32, 49, 12, 55, 30, 40, 7, 59, 1, 56, 21, 39, 4, 23, 15, 37, 46, 55, 42, 21, 4, 48, 8, 45, 54, 37, 55, 32, 8, 46, 10, 30, 54, 4, 41, 25, 29, 36, 48, 11, 43, 14, 47, 5, 43, 53, 36, 61, 10, 45, 6, 41, 54, 27, 43, 16, 55, 6, 46, 18, 42, 23, 15, 1, 45, 12, 60, 37, 22, 62, 12, 39, 59, 16, 52 }, - { 47, 35, 56, 7, 19, 46, 31, 50, 33, 24, 61, 35, 50, 7, 53, 44, 55, 6, 46, 10, 52, 5, 21, 43, 36, 10, 18, 41, 26, 37, 8, 29, 40, 36, 9, 49, 34, 26, 61, 21, 7, 59, 18, 62, 29, 54, 20, 32, 51, 0, 40, 10, 55, 6, 20, 36, 9, 61, 5, 51, 44, 19, 33, 43, 13, 57, 40, 63, 8, 24, 29, 10, 60, 34, 27, 40, 25, 18, 10, 42, 21, 49, 26, 62, 38, 12, 33, 61, 5, 57, 2, 19, 54, 28, 62, 22, 38, 31, 16, 7, 22, 47, 29, 17, 35, 8, 20, 51, 2, 40, 22, 50, 13, 61, 28, 53, 35, 20, 56, 30, 2, 53, 14, 41, 23, 34, 8, 31 }, - { 12, 2, 42, 29, 52, 13, 21, 8, 55, 14, 41, 17, 28, 58, 23, 11, 17, 36, 31, 62, 17, 34, 50, 14, 28, 61, 33, 52, 2, 51, 17, 45, 7, 25, 62, 30, 18, 55, 0, 42, 30, 35, 45, 1, 12, 48, 3, 63, 21, 36, 30, 48, 19, 59, 43, 27, 46, 17, 34, 25, 12, 29, 53, 6, 48, 31, 11, 34, 49, 3, 36, 50, 19, 47, 14, 61, 11, 36, 58, 4, 60, 14, 39, 22, 6, 52, 15, 35, 17, 46, 31, 42, 9, 34, 3, 52, 12, 60, 26, 56, 40, 2, 53, 23, 57, 38, 62, 14, 36, 59, 10, 31, 39, 6, 49, 9, 41, 26, 5, 48, 43, 27, 33, 58, 1, 50, 25, 57 }, - { 61, 37, 15, 61, 3, 39, 58, 43, 26, 0, 44, 10, 47, 3, 37, 63, 28, 43, 13, 39, 3, 57, 30, 59, 0, 48, 5, 43, 13, 22, 60, 33, 55, 15, 42, 4, 52, 10, 45, 13, 54, 4, 24, 49, 37, 26, 41, 14, 42, 9, 61, 13, 38, 23, 3, 53, 0, 58, 21, 42, 63, 10, 17, 61, 25, 0, 58, 28, 17, 44, 57, 12, 27, 0, 55, 5, 52, 28, 23, 47, 29, 0, 43, 17, 58, 28, 47, 23, 55, 10, 58, 23, 51, 40, 18, 33, 45, 0, 49, 8, 32, 61, 19, 48, 0, 26, 7, 47, 29, 18, 44, 0, 56, 34, 20, 59, 15, 51, 37, 18, 10, 52, 7, 20, 46, 9, 38, 17 }, - { 6, 27, 48, 23, 45, 29, 5, 18, 38, 62, 27, 56, 20, 32, 15, 9, 48, 0, 54, 22, 45, 20, 7, 41, 23, 39, 19, 27, 58, 31, 44, 0, 12, 50, 23, 56, 20, 39, 32, 59, 16, 52, 33, 9, 57, 22, 6, 58, 28, 50, 24, 2, 56, 35, 16, 45, 32, 38, 15, 54, 2, 38, 46, 22, 35, 45, 20, 5, 52, 25, 7, 35, 59, 32, 22, 43, 38, 3, 51, 16, 34, 53, 32, 50, 3, 40, 8, 43, 0, 39, 27, 4, 14, 61, 8, 55, 15, 41, 20, 44, 27, 13, 39, 11, 46, 42, 54, 33, 4, 52, 23, 61, 14, 25, 43, 2, 33, 11, 63, 29, 61, 17, 40, 55, 22, 62, 28, 44 }, - { 20, 54, 8, 56, 35, 10, 63, 31, 52, 12, 48, 6, 59, 41, 52, 33, 19, 58, 25, 49, 11, 37, 47, 12, 54, 15, 56, 35, 7, 47, 16, 53, 28, 34, 5, 37, 28, 8, 48, 3, 28, 38, 18, 61, 16, 43, 53, 32, 4, 17, 47, 27, 44, 8, 63, 10, 25, 49, 6, 37, 24, 52, 32, 3, 50, 12, 41, 56, 38, 14, 62, 20, 40, 16, 53, 31, 18, 63, 41, 9, 59, 7, 13, 25, 57, 20, 63, 26, 53, 18, 48, 62, 30, 46, 21, 25, 58, 29, 36, 4, 55, 34, 6, 60, 31, 16, 21, 12, 58, 38, 9, 29, 47, 7, 52, 30, 57, 44, 22, 0, 35, 45, 3, 31, 14, 36, 0, 51 }, - { 42, 14, 33, 24, 16, 49, 40, 2, 22, 33, 16, 36, 25, 1, 21, 61, 38, 8, 33, 4, 62, 26, 29, 60, 6, 46, 30, 11, 63, 4, 36, 40, 19, 57, 46, 11, 41, 63, 22, 25, 58, 10, 46, 2, 34, 27, 11, 38, 56, 34, 12, 53, 18, 33, 41, 51, 13, 28, 60, 20, 47, 14, 29, 59, 16, 62, 8, 22, 32, 47, 9, 49, 2, 44, 7, 12, 45, 6, 20, 27, 45, 24, 62, 42, 36, 11, 33, 15, 37, 7, 32, 10, 37, 1, 35, 50, 6, 11, 63, 24, 52, 15, 50, 24, 3, 37, 56, 27, 34, 22, 49, 16, 36, 62, 17, 39, 4, 15, 54, 24, 50, 8, 58, 26, 49, 54, 11, 30 }, - { 4, 59, 41, 1, 53, 12, 25, 45, 59, 7, 51, 39, 54, 14, 46, 4, 27, 53, 16, 44, 18, 51, 1, 32, 25, 2, 50, 40, 20, 54, 24, 9, 62, 2, 27, 60, 1, 17, 36, 50, 6, 40, 30, 55, 41, 19, 49, 1, 21, 60, 40, 5, 62, 1, 22, 30, 57, 4, 43, 31, 1, 55, 40, 7, 27, 37, 30, 54, 1, 19, 42, 30, 56, 26, 62, 49, 24, 57, 37, 56, 2, 39, 16, 5, 30, 55, 3, 49, 60, 23, 56, 44, 17, 52, 13, 42, 28, 48, 18, 45, 9, 37, 21, 41, 58, 10, 48, 1, 63, 5, 41, 57, 2, 24, 12, 48, 27, 42, 32, 46, 13, 38, 19, 34, 5, 41, 25, 60 }, - { 39, 28, 21, 46, 32, 57, 36, 9, 19, 42, 4, 29, 11, 43, 30, 49, 13, 42, 35, 56, 9, 39, 15, 52, 36, 61, 18, 26, 45, 14, 31, 48, 21, 43, 14, 33, 49, 54, 14, 44, 21, 62, 13, 23, 8, 62, 15, 51, 44, 7, 30, 37, 20, 42, 56, 7, 39, 18, 50, 11, 61, 9, 19, 43, 57, 2, 48, 11, 39, 60, 28, 4, 37, 17, 35, 1, 33, 11, 31, 14, 48, 19, 35, 51, 46, 21, 44, 29, 12, 41, 2, 22, 58, 26, 54, 4, 59, 38, 2, 33, 57, 1, 63, 13, 28, 51, 15, 40, 18, 45, 8, 30, 43, 37, 54, 19, 8, 59, 21, 6, 60, 29, 55, 10, 63, 15, 47, 17 }, - { 3, 50, 10, 62, 18, 5, 27, 49, 60, 23, 55, 18, 62, 24, 56, 10, 59, 28, 2, 23, 34, 59, 43, 20, 10, 42, 8, 49, 1, 37, 57, 6, 51, 29, 53, 7, 23, 31, 5, 32, 51, 0, 35, 54, 45, 31, 5, 26, 36, 24, 55, 15, 48, 29, 14, 48, 26, 60, 21, 41, 36, 26, 50, 33, 14, 44, 17, 24, 52, 15, 46, 23, 54, 6, 47, 21, 60, 50, 4, 53, 29, 61, 8, 23, 1, 60, 19, 6, 53, 16, 47, 34, 6, 39, 16, 31, 12, 20, 53, 22, 30, 43, 25, 46, 35, 6, 44, 32, 53, 26, 55, 19, 11, 59, 5, 33, 51, 1, 35, 53, 25, 3, 42, 23, 44, 32, 7, 53 }, - { 22, 44, 37, 6, 26, 51, 38, 0, 34, 13, 31, 46, 3, 37, 6, 19, 40, 21, 47, 63, 12, 5, 29, 55, 22, 58, 34, 28, 60, 22, 11, 41, 17, 38, 9, 44, 59, 39, 56, 19, 11, 47, 25, 15, 3, 39, 57, 17, 61, 11, 46, 3, 58, 9, 54, 35, 2, 34, 8, 45, 15, 56, 5, 23, 53, 33, 63, 35, 4, 59, 10, 51, 13, 61, 29, 41, 15, 25, 43, 19, 40, 10, 54, 33, 41, 12, 38, 51, 31, 26, 61, 9, 30, 45, 24, 62, 49, 40, 10, 61, 14, 49, 5, 17, 54, 20, 60, 23, 3, 13, 35, 50, 32, 23, 46, 27, 38, 63, 16, 12, 39, 48, 18, 51, 1, 27, 56, 35 }, - { 63, 15, 30, 55, 43, 14, 57, 17, 53, 44, 7, 48, 26, 50, 32, 60, 0, 53, 14, 31, 50, 24, 46, 0, 38, 13, 4, 52, 16, 45, 30, 59, 0, 25, 55, 35, 16, 10, 26, 42, 58, 29, 60, 38, 50, 22, 28, 47, 0, 50, 28, 19, 33, 39, 11, 44, 16, 52, 24, 59, 3, 38, 27, 51, 0, 21, 7, 42, 26, 34, 21, 40, 33, 18, 39, 3, 54, 38, 8, 59, 0, 44, 27, 15, 58, 28, 57, 9, 43, 0, 36, 50, 20, 59, 8, 34, 0, 27, 47, 7, 36, 19, 56, 32, 0, 38, 11, 29, 62, 47, 6, 61, 0, 41, 14, 56, 10, 23, 45, 31, 57, 8, 36, 13, 58, 38, 11, 19 }, - { 0, 34, 12, 47, 21, 2, 40, 30, 11, 25, 61, 20, 40, 15, 35, 22, 45, 36, 7, 41, 17, 57, 9, 48, 32, 62, 44, 24, 35, 3, 54, 13, 33, 63, 19, 4, 48, 22, 62, 2, 37, 8, 33, 6, 20, 52, 9, 32, 43, 13, 39, 63, 25, 4, 49, 23, 62, 32, 9, 30, 48, 18, 63, 12, 46, 29, 58, 13, 48, 8, 57, 31, 0, 51, 9, 58, 12, 22, 47, 29, 35, 22, 49, 5, 46, 4, 34, 20, 63, 24, 56, 11, 41, 3, 51, 19, 56, 35, 17, 58, 28, 42, 9, 45, 59, 26, 51, 42, 17, 36, 25, 15, 53, 21, 44, 3, 30, 55, 5, 50, 21, 28, 61, 32, 6, 49, 28, 46 }, - { 58, 42, 60, 4, 31, 59, 22, 63, 35, 38, 9, 54, 1, 57, 8, 51, 16, 58, 27, 53, 3, 38, 30, 15, 27, 6, 19, 56, 10, 50, 21, 36, 47, 5, 43, 28, 51, 32, 13, 46, 18, 54, 16, 43, 63, 12, 36, 59, 22, 34, 5, 52, 17, 59, 27, 41, 0, 19, 55, 37, 13, 43, 6, 34, 41, 10, 36, 55, 19, 44, 3, 16, 58, 27, 49, 25, 32, 62, 17, 55, 13, 63, 18, 52, 25, 37, 17, 48, 13, 32, 5, 46, 28, 37, 14, 43, 25, 5, 51, 39, 3, 52, 33, 22, 8, 40, 12, 4, 57, 9, 46, 39, 28, 58, 13, 62, 17, 42, 19, 36, 0, 47, 16, 43, 24, 21, 54, 13 }, - { 25, 9, 23, 50, 36, 8, 45, 14, 3, 51, 16, 28, 44, 12, 42, 29, 4, 26, 10, 47, 22, 61, 18, 54, 51, 39, 46, 13, 41, 26, 58, 7, 18, 39, 12, 57, 15, 1, 52, 27, 41, 23, 48, 1, 27, 45, 18, 2, 57, 26, 55, 8, 43, 31, 6, 58, 14, 51, 40, 5, 61, 31, 24, 54, 17, 60, 22, 1, 39, 30, 53, 45, 36, 13, 43, 5, 45, 2, 37, 6, 34, 42, 2, 39, 10, 62, 7, 54, 40, 18, 60, 15, 52, 21, 63, 8, 55, 46, 15, 30, 23, 13, 62, 16, 50, 24, 58, 31, 48, 21, 34, 2, 49, 7, 31, 37, 26, 48, 9, 61, 40, 11, 52, 2, 60, 40, 4, 37 }, - { 52, 28, 39, 16, 54, 19, 29, 55, 42, 20, 58, 33, 24, 63, 18, 55, 39, 62, 43, 34, 12, 40, 6, 35, 2, 25, 8, 62, 34, 1, 31, 42, 61, 27, 53, 24, 40, 61, 34, 8, 59, 4, 30, 56, 40, 6, 53, 42, 10, 48, 16, 37, 12, 46, 21, 36, 47, 11, 28, 45, 22, 10, 57, 2, 49, 31, 14, 44, 61, 11, 25, 6, 23, 63, 18, 36, 28, 56, 20, 51, 11, 48, 27, 56, 32, 22, 45, 30, 2, 42, 27, 39, 1, 44, 23, 31, 38, 22, 11, 61, 43, 54, 4, 47, 35, 2, 44, 16, 28, 54, 12, 62, 18, 43, 10, 52, 1, 58, 33, 15, 29, 56, 20, 34, 9, 30, 48, 17 }, - { 46, 2, 56, 11, 41, 1, 49, 6, 27, 47, 2, 48, 5, 32, 37, 3, 13, 19, 32, 1, 55, 28, 60, 17, 43, 59, 32, 20, 49, 16, 55, 23, 14, 46, 2, 36, 6, 30, 20, 49, 12, 47, 35, 14, 21, 60, 29, 14, 35, 24, 46, 1, 56, 29, 53, 8, 33, 23, 56, 1, 35, 46, 20, 39, 26, 4, 53, 28, 17, 38, 60, 34, 48, 9, 55, 15, 46, 7, 41, 31, 60, 24, 16, 36, 1, 59, 19, 52, 35, 6, 55, 11, 59, 33, 7, 57, 4, 29, 48, 1, 19, 26, 37, 30, 18, 63, 37, 6, 59, 1, 40, 24, 56, 33, 46, 22, 35, 7, 24, 53, 39, 5, 26, 45, 55, 18, 62, 7 }, - { 20, 60, 29, 34, 20, 62, 33, 52, 10, 36, 13, 60, 41, 21, 50, 27, 56, 49, 8, 51, 21, 45, 11, 48, 8, 23, 53, 3, 29, 44, 5, 52, 9, 32, 50, 17, 43, 56, 3, 38, 24, 10, 62, 25, 51, 9, 33, 49, 61, 7, 30, 62, 22, 19, 2, 42, 63, 5, 49, 18, 60, 15, 52, 7, 43, 56, 23, 50, 5, 50, 2, 20, 41, 30, 1, 52, 22, 61, 14, 26, 3, 43, 53, 7, 47, 28, 11, 14, 23, 58, 33, 25, 47, 13, 50, 17, 40, 54, 34, 60, 41, 6, 59, 14, 50, 7, 25, 55, 20, 42, 51, 8, 27, 4, 16, 60, 28, 50, 44, 3, 22, 49, 63, 12, 33, 1, 43, 31 }, - { 36, 5, 46, 8, 44, 24, 13, 39, 25, 57, 31, 18, 8, 52, 10, 45, 6, 30, 36, 24, 63, 4, 33, 26, 57, 40, 15, 56, 37, 12, 40, 25, 37, 58, 11, 63, 21, 45, 16, 60, 31, 53, 18, 33, 3, 45, 23, 0, 20, 54, 40, 15, 50, 38, 60, 16, 25, 42, 29, 38, 7, 41, 25, 62, 18, 33, 8, 35, 42, 16, 32, 56, 12, 39, 59, 19, 34, 9, 49, 38, 57, 12, 21, 50, 14, 40, 61, 44, 50, 9, 49, 19, 3, 29, 35, 62, 12, 24, 7, 18, 52, 32, 10, 46, 21, 41, 32, 11, 36, 29, 14, 34, 60, 38, 54, 11, 41, 14, 19, 57, 32, 16, 7, 41, 51, 25, 14, 57 }, - { 53, 18, 26, 50, 15, 58, 4, 63, 17, 43, 7, 40, 61, 35, 15, 41, 23, 60, 16, 38, 14, 42, 19, 50, 0, 31, 10, 46, 27, 63, 18, 60, 0, 20, 29, 39, 8, 26, 37, 5, 42, 0, 44, 39, 57, 17, 58, 41, 28, 37, 4, 32, 9, 44, 12, 31, 54, 10, 59, 14, 27, 53, 12, 36, 0, 47, 13, 63, 21, 58, 10, 24, 50, 27, 4, 26, 44, 53, 31, 0, 18, 42, 29, 33, 57, 4, 32, 26, 0, 38, 16, 61, 41, 53, 20, 0, 42, 44, 49, 27, 10, 56, 39, 0, 57, 15, 53, 49, 3, 61, 22, 47, 17, 5, 49, 26, 2, 63, 39, 10, 47, 27, 37, 23, 4, 59, 38, 10 }, - { 23, 39, 61, 3, 37, 28, 48, 31, 0, 34, 51, 23, 2, 26, 58, 0, 53, 11, 46, 1, 57, 29, 52, 14, 37, 61, 21, 35, 2, 49, 7, 34, 47, 55, 4, 33, 54, 13, 58, 52, 19, 50, 22, 7, 13, 29, 36, 11, 51, 17, 60, 25, 55, 4, 34, 51, 0, 35, 20, 48, 32, 3, 51, 30, 59, 28, 40, 3, 46, 29, 54, 43, 7, 62, 47, 11, 39, 4, 23, 46, 55, 8, 63, 5, 25, 37, 18, 46, 21, 56, 31, 5, 36, 8, 45, 58, 26, 15, 2, 36, 47, 21, 29, 44, 25, 34, 3, 27, 43, 10, 52, 0, 45, 30, 24, 36, 43, 18, 34, 59, 0, 52, 61, 15, 44, 19, 30, 49 }, - { 0, 27, 12, 43, 54, 9, 22, 53, 21, 46, 15, 55, 29, 47, 20, 33, 39, 28, 59, 35, 9, 44, 5, 24, 47, 7, 52, 17, 56, 22, 30, 42, 14, 26, 45, 18, 49, 1, 24, 34, 11, 27, 55, 32, 61, 47, 2, 56, 6, 44, 13, 47, 36, 27, 58, 22, 16, 47, 40, 4, 57, 38, 21, 45, 16, 9, 56, 26, 11, 38, 0, 22, 36, 17, 33, 57, 16, 30, 62, 15, 35, 40, 20, 45, 59, 10, 54, 8, 63, 13, 52, 27, 22, 57, 28, 12, 32, 51, 55, 22, 63, 4, 16, 54, 12, 62, 45, 19, 58, 13, 32, 40, 20, 56, 7, 57, 9, 54, 6, 29, 42, 21, 8, 55, 35, 47, 6, 41 }, - { 56, 33, 58, 32, 19, 35, 42, 6, 59, 11, 38, 5, 49, 12, 62, 7, 52, 17, 5, 25, 54, 20, 61, 31, 54, 27, 41, 11, 44, 5, 59, 12, 36, 51, 10, 61, 28, 41, 48, 9, 43, 63, 5, 40, 20, 8, 49, 26, 34, 21, 58, 1, 18, 45, 7, 39, 61, 26, 8, 50, 23, 10, 63, 5, 55, 37, 19, 49, 52, 15, 59, 47, 13, 54, 1, 25, 42, 58, 10, 48, 3, 27, 50, 1, 17, 48, 34, 41, 16, 40, 2, 45, 10, 39, 17, 61, 5, 38, 19, 9, 41, 31, 60, 38, 5, 23, 36, 8, 30, 55, 24, 63, 12, 48, 14, 51, 31, 20, 45, 25, 12, 50, 32, 2, 28, 11, 62, 14 }, - { 44, 16, 7, 48, 1, 62, 16, 50, 27, 33, 61, 25, 17, 44, 31, 14, 22, 43, 32, 48, 18, 40, 8, 36, 3, 16, 33, 62, 23, 38, 25, 53, 2, 21, 41, 6, 22, 15, 59, 29, 16, 37, 26, 15, 52, 42, 23, 15, 54, 39, 10, 30, 53, 11, 49, 24, 2, 43, 55, 17, 34, 44, 15, 31, 24, 44, 2, 32, 7, 35, 25, 5, 40, 45, 29, 51, 6, 21, 37, 52, 24, 60, 13, 31, 53, 23, 2, 28, 49, 24, 31, 60, 20, 51, 1, 34, 48, 14, 59, 33, 50, 1, 18, 33, 48, 60, 17, 51, 39, 6, 38, 2, 35, 29, 40, 23, 1, 62, 15, 53, 37, 17, 46, 57, 40, 51, 24, 22 }, - { 5, 37, 52, 24, 45, 13, 40, 3, 45, 9, 19, 42, 56, 4, 37, 46, 56, 2, 63, 11, 51, 1, 49, 13, 59, 45, 39, 1, 48, 15, 58, 9, 46, 31, 54, 35, 57, 38, 3, 46, 56, 4, 47, 57, 1, 30, 38, 63, 3, 46, 28, 63, 41, 14, 33, 62, 19, 32, 13, 28, 61, 1, 53, 42, 11, 60, 22, 62, 27, 42, 61, 31, 19, 8, 61, 12, 32, 55, 2, 18, 33, 12, 43, 36, 9, 62, 30, 55, 6, 58, 35, 7, 43, 29, 54, 23, 43, 30, 3, 25, 11, 45, 52, 28, 7, 14, 42, 1, 22, 50, 16, 53, 19, 59, 4, 46, 33, 41, 4, 35, 58, 5, 26, 13, 20, 2, 34, 54 }, - { 30, 63, 21, 10, 26, 55, 29, 59, 23, 39, 53, 1, 36, 24, 59, 27, 10, 34, 23, 38, 30, 60, 22, 42, 28, 19, 9, 57, 30, 19, 43, 33, 13, 63, 3, 19, 11, 50, 31, 20, 14, 34, 10, 35, 17, 59, 7, 31, 19, 25, 50, 5, 20, 57, 29, 6, 52, 41, 4, 46, 20, 37, 26, 17, 49, 6, 39, 18, 53, 14, 3, 49, 57, 23, 34, 48, 14, 41, 28, 38, 56, 6, 58, 25, 39, 19, 43, 15, 37, 11, 47, 18, 53, 4, 37, 9, 62, 21, 53, 40, 57, 24, 13, 40, 56, 26, 47, 31, 59, 25, 45, 27, 10, 43, 21, 61, 13, 27, 48, 9, 23, 43, 31, 62, 38, 59, 9, 47 }, - { 25, 4, 40, 60, 34, 6, 18, 36, 8, 57, 12, 30, 49, 14, 6, 54, 41, 16, 50, 6, 43, 15, 34, 4, 53, 24, 50, 35, 4, 51, 7, 55, 28, 24, 39, 44, 60, 7, 25, 62, 42, 53, 24, 61, 28, 45, 52, 12, 48, 37, 9, 35, 43, 3, 37, 48, 12, 58, 30, 52, 9, 59, 6, 57, 33, 29, 48, 4, 37, 45, 20, 34, 10, 39, 0, 60, 22, 45, 8, 63, 21, 42, 14, 49, 3, 56, 11, 46, 21, 61, 0, 42, 25, 13, 63, 17, 36, 8, 46, 16, 6, 35, 63, 0, 21, 37, 4, 57, 9, 34, 5, 61, 48, 32, 8, 37, 54, 17, 56, 30, 60, 0, 50, 16, 7, 29, 42, 17 }, - { 32, 50, 15, 48, 2, 43, 52, 25, 47, 16, 32, 63, 21, 52, 40, 19, 0, 61, 29, 58, 20, 56, 26, 46, 12, 55, 6, 22, 62, 32, 17, 40, 0, 49, 34, 8, 27, 32, 48, 0, 21, 39, 5, 44, 12, 6, 22, 40, 0, 57, 16, 60, 23, 17, 54, 22, 36, 15, 24, 39, 19, 34, 47, 23, 0, 54, 13, 51, 24, 9, 55, 16, 52, 27, 44, 20, 4, 54, 26, 49, 0, 30, 46, 16, 29, 51, 34, 4, 52, 28, 33, 15, 57, 39, 26, 49, 0, 56, 27, 31, 48, 20, 43, 29, 53, 11, 46, 19, 41, 13, 55, 18, 0, 57, 26, 51, 2, 44, 6, 38, 14, 40, 22, 45, 36, 53, 3, 57 }, - { 44, 12, 37, 28, 22, 57, 11, 38, 0, 51, 9, 41, 4, 29, 11, 47, 33, 45, 12, 26, 3, 36, 9, 63, 31, 16, 38, 44, 14, 47, 25, 61, 20, 58, 15, 47, 17, 57, 13, 36, 9, 51, 18, 29, 50, 36, 54, 20, 61, 27, 32, 13, 53, 44, 9, 27, 0, 63, 45, 2, 56, 10, 14, 43, 41, 28, 58, 11, 35, 60, 30, 41, 6, 63, 11, 51, 37, 32, 15, 10, 35, 53, 5, 61, 22, 7, 26, 59, 23, 9, 44, 48, 21, 3, 51, 32, 24, 41, 12, 61, 2, 55, 9, 15, 35, 58, 28, 15, 62, 30, 37, 23, 42, 29, 11, 17, 35, 24, 63, 20, 52, 28, 8, 55, 11, 23, 47, 19 }, - { 0, 56, 8, 53, 14, 31, 61, 20, 55, 28, 62, 18, 35, 60, 25, 57, 7, 23, 39, 54, 47, 17, 43, 0, 40, 59, 29, 2, 56, 10, 37, 5, 43, 11, 29, 52, 1, 23, 54, 41, 59, 30, 55, 1, 62, 15, 33, 4, 43, 10, 47, 39, 1, 31, 40, 60, 49, 33, 7, 55, 26, 50, 31, 61, 8, 18, 21, 32, 44, 1, 25, 47, 18, 36, 30, 23, 59, 7, 40, 59, 27, 19, 38, 32, 44, 54, 40, 17, 38, 60, 27, 6, 35, 55, 10, 14, 44, 5, 50, 17, 38, 26, 42, 50, 18, 3, 44, 52, 2, 49, 7, 52, 15, 46, 62, 39, 55, 10, 31, 48, 3, 58, 33, 18, 61, 34, 13, 59 }, - { 39, 27, 63, 20, 35, 41, 4, 45, 26, 5, 38, 13, 44, 2, 50, 17, 37, 52, 2, 13, 28, 58, 24, 51, 21, 8, 34, 48, 27, 42, 18, 51, 31, 56, 5, 36, 38, 44, 4, 17, 26, 11, 38, 23, 42, 8, 56, 39, 24, 51, 5, 56, 21, 59, 14, 6, 18, 42, 22, 35, 16, 37, 3, 25, 39, 46, 63, 5, 50, 17, 58, 8, 55, 3, 50, 12, 43, 17, 47, 2, 51, 9, 62, 12, 1, 35, 13, 50, 1, 37, 12, 51, 19, 29, 46, 59, 22, 58, 33, 45, 22, 60, 10, 32, 61, 39, 8, 33, 25, 36, 20, 60, 38, 4, 21, 5, 28, 45, 12, 18, 42, 11, 49, 1, 27, 40, 6, 30 }, - { 24, 16, 42, 1, 50, 10, 48, 17, 33, 43, 24, 48, 21, 55, 31, 42, 10, 21, 63, 35, 49, 6, 33, 13, 41, 53, 10, 20, 60, 6, 53, 26, 12, 41, 22, 60, 14, 28, 63, 33, 49, 3, 45, 16, 48, 26, 14, 46, 18, 30, 35, 26, 8, 50, 29, 51, 25, 57, 12, 47, 53, 9, 62, 20, 54, 2, 36, 15, 40, 28, 33, 13, 38, 24, 46, 1, 29, 56, 33, 20, 44, 24, 41, 26, 57, 20, 63, 8, 30, 55, 5, 41, 62, 8, 34, 2, 37, 10, 19, 6, 37, 1, 53, 23, 5, 27, 58, 22, 43, 12, 50, 26, 9, 34, 54, 32, 49, 1, 59, 37, 22, 46, 25, 36, 51, 15, 54, 46 }, - { 52, 7, 45, 33, 26, 58, 14, 60, 7, 54, 3, 58, 8, 34, 14, 5, 59, 30, 18, 44, 8, 22, 48, 62, 3, 26, 55, 38, 23, 16, 39, 1, 62, 24, 49, 9, 53, 19, 46, 7, 19, 60, 31, 58, 2, 34, 53, 7, 59, 2, 62, 42, 46, 19, 36, 11, 44, 4, 38, 28, 1, 43, 32, 51, 12, 29, 56, 22, 52, 2, 62, 49, 22, 60, 14, 35, 63, 5, 25, 57, 14, 53, 4, 46, 18, 31, 42, 22, 47, 20, 58, 31, 16, 43, 23, 54, 30, 42, 52, 57, 29, 49, 30, 13, 45, 48, 16, 55, 6, 63, 1, 44, 14, 58, 19, 47, 15, 24, 51, 34, 6, 55, 5, 63, 20, 41, 21, 9 }, - { 30, 62, 18, 55, 5, 23, 39, 29, 49, 30, 15, 36, 28, 46, 60, 25, 39, 46, 4, 32, 61, 40, 15, 30, 36, 45, 14, 2, 49, 33, 57, 45, 18, 32, 3, 45, 30, 2, 35, 52, 40, 27, 13, 21, 38, 63, 20, 28, 37, 23, 16, 10, 13, 55, 2, 62, 21, 32, 60, 17, 58, 23, 5, 40, 16, 48, 7, 45, 10, 26, 43, 19, 6, 31, 52, 21, 39, 16, 48, 9, 37, 28, 36, 55, 7, 48, 3, 59, 15, 45, 25, 1, 53, 13, 47, 7, 62, 15, 4, 25, 12, 41, 18, 60, 38, 11, 34, 19, 39, 31, 29, 56, 23, 42, 3, 27, 60, 41, 8, 16, 61, 29, 43, 9, 32, 2, 60, 34 }, - { 3, 38, 13, 37, 52, 44, 2, 19, 12, 42, 63, 19, 40, 1, 20, 50, 12, 55, 15, 56, 27, 1, 54, 11, 57, 18, 32, 63, 44, 4, 29, 13, 37, 61, 35, 16, 42, 57, 12, 22, 6, 55, 43, 10, 50, 5, 44, 11, 48, 52, 34, 58, 28, 41, 38, 30, 7, 52, 11, 49, 30, 14, 45, 27, 59, 34, 21, 38, 32, 58, 11, 36, 56, 42, 9, 41, 3, 54, 31, 42, 0, 60, 16, 11, 39, 24, 52, 33, 6, 36, 10, 40, 32, 60, 26, 20, 39, 28, 47, 34, 63, 8, 54, 3, 24, 56, 0, 51, 13, 47, 16, 40, 7, 35, 52, 11, 36, 4, 57, 30, 39, 13, 18, 50, 58, 28, 12, 48 }, - { 57, 24, 49, 21, 10, 31, 61, 36, 56, 0, 22, 53, 11, 56, 32, 7, 36, 27, 41, 9, 46, 19, 34, 42, 25, 7, 50, 9, 28, 21, 54, 8, 50, 7, 27, 59, 10, 25, 48, 62, 37, 0, 33, 58, 25, 18, 32, 61, 0, 15, 45, 5, 50, 3, 23, 55, 47, 17, 40, 6, 60, 34, 53, 8, 41, 0, 61, 13, 54, 4, 46, 28, 0, 17, 48, 27, 58, 13, 23, 61, 33, 21, 50, 30, 62, 8, 14, 29, 56, 27, 61, 49, 17, 2, 44, 11, 51, 0, 59, 17, 40, 20, 32, 47, 36, 21, 42, 28, 60, 4, 54, 10, 59, 17, 30, 62, 21, 43, 26, 48, 0, 56, 36, 25, 8, 44, 39, 17 }, - { 10, 42, 4, 59, 27, 47, 8, 23, 51, 32, 45, 6, 37, 26, 48, 43, 62, 0, 21, 53, 38, 12, 51, 5, 60, 47, 24, 37, 59, 15, 35, 47, 22, 55, 0, 50, 21, 40, 6, 29, 15, 52, 24, 8, 41, 55, 13, 29, 40, 56, 24, 31, 19, 33, 61, 15, 0, 35, 24, 42, 21, 2, 19, 57, 24, 15, 30, 50, 20, 25, 40, 16, 57, 34, 61, 8, 29, 45, 6, 49, 11, 47, 2, 44, 19, 57, 38, 50, 12, 42, 21, 4, 35, 52, 28, 56, 23, 36, 13, 45, 4, 52, 27, 14, 6, 62, 9, 45, 21, 37, 25, 46, 33, 49, 0, 44, 7, 53, 13, 19, 53, 31, 3, 47, 15, 56, 22, 51 }, - { 35, 28, 53, 32, 1, 16, 54, 40, 9, 17, 25, 58, 14, 59, 3, 22, 16, 51, 31, 5, 23, 58, 28, 17, 35, 20, 0, 42, 11, 52, 3, 31, 41, 17, 43, 13, 32, 54, 18, 60, 32, 45, 17, 49, 2, 36, 51, 22, 7, 36, 9, 63, 48, 12, 46, 26, 43, 28, 63, 13, 48, 37, 51, 33, 5, 47, 55, 9, 42, 63, 7, 51, 24, 12, 37, 19, 55, 34, 18, 38, 15, 28, 54, 34, 5, 43, 22, 0, 48, 14, 54, 24, 58, 9, 38, 5, 32, 55, 21, 30, 49, 9, 59, 43, 30, 51, 35, 26, 7, 53, 2, 22, 14, 27, 57, 18, 38, 24, 33, 45, 10, 41, 20, 60, 37, 5, 32, 0 }, - { 63, 19, 15, 40, 62, 35, 14, 28, 46, 61, 4, 49, 35, 10, 29, 54, 33, 8, 45, 62, 37, 1, 43, 55, 10, 52, 61, 30, 19, 40, 25, 62, 11, 38, 27, 58, 36, 3, 46, 8, 39, 4, 62, 28, 47, 20, 4, 54, 47, 27, 43, 1, 21, 38, 8, 58, 10, 54, 4, 56, 9, 26, 12, 39, 60, 27, 18, 37, 1, 31, 35, 5, 45, 50, 2, 43, 26, 1, 59, 23, 56, 40, 7, 26, 58, 17, 32, 63, 25, 39, 7, 31, 45, 19, 63, 15, 48, 8, 37, 61, 16, 34, 1, 56, 18, 3, 15, 58, 49, 32, 63, 41, 55, 5, 40, 22, 50, 6, 59, 2, 63, 23, 52, 11, 26, 61, 44, 23 }, - { 11, 56, 46, 6, 22, 43, 58, 3, 34, 21, 38, 30, 18, 44, 52, 13, 41, 57, 17, 28, 14, 49, 25, 7, 33, 39, 26, 6, 56, 48, 1, 20, 56, 5, 46, 9, 19, 51, 30, 25, 56, 21, 35, 14, 57, 42, 16, 33, 10, 57, 17, 59, 41, 25, 53, 37, 20, 40, 30, 18, 31, 62, 44, 22, 3, 44, 11, 48, 23, 53, 18, 60, 29, 22, 62, 15, 53, 47, 10, 41, 3, 19, 52, 36, 13, 46, 10, 35, 3, 61, 41, 16, 1, 50, 26, 42, 18, 46, 2, 25, 54, 20, 39, 23, 47, 31, 41, 12, 38, 17, 8, 19, 31, 48, 12, 61, 9, 54, 29, 35, 15, 38, 6, 43, 34, 14, 7, 47 }, - { 39, 2, 33, 26, 53, 8, 18, 50, 41, 12, 53, 1, 63, 24, 19, 39, 2, 24, 47, 10, 60, 38, 19, 63, 48, 4, 15, 45, 32, 14, 60, 36, 29, 53, 23, 63, 34, 12, 61, 1, 43, 11, 53, 30, 1, 26, 60, 45, 23, 39, 3, 29, 12, 50, 4, 16, 51, 3, 45, 36, 50, 1, 16, 54, 35, 14, 57, 30, 58, 9, 46, 14, 41, 10, 32, 38, 4, 30, 21, 51, 32, 63, 25, 1, 60, 27, 53, 18, 51, 22, 28, 55, 34, 12, 40, 3, 60, 29, 57, 41, 6, 44, 11, 53, 8, 61, 24, 57, 1, 28, 44, 59, 36, 3, 34, 25, 41, 31, 16, 44, 22, 47, 28, 58, 1, 49, 54, 29 }, - { 58, 25, 50, 13, 38, 30, 60, 24, 6, 57, 27, 42, 9, 45, 6, 61, 30, 50, 4, 34, 29, 3, 46, 13, 22, 42, 58, 28, 9, 39, 23, 44, 7, 15, 44, 2, 40, 15, 47, 41, 23, 37, 7, 59, 38, 11, 34, 6, 62, 14, 52, 35, 55, 19, 32, 61, 33, 24, 57, 6, 22, 59, 29, 7, 49, 25, 40, 3, 17, 39, 27, 52, 0, 55, 16, 57, 24, 61, 36, 6, 29, 12, 48, 39, 20, 44, 6, 40, 33, 5, 48, 10, 57, 36, 22, 51, 33, 9, 24, 12, 62, 29, 50, 35, 14, 43, 5, 33, 47, 52, 13, 23, 10, 51, 56, 16, 46, 1, 49, 4, 61, 9, 52, 18, 31, 21, 36, 17 }, - { 19, 42, 9, 48, 2, 44, 11, 37, 48, 20, 33, 16, 55, 35, 49, 15, 37, 20, 59, 16, 53, 22, 56, 31, 50, 11, 34, 54, 16, 51, 4, 49, 33, 53, 21, 28, 56, 24, 31, 9, 52, 16, 48, 24, 44, 13, 51, 20, 31, 49, 18, 6, 34, 2, 44, 14, 47, 8, 15, 43, 13, 41, 33, 52, 20, 61, 7, 51, 34, 62, 4, 20, 36, 33, 43, 8, 46, 13, 53, 17, 45, 42, 9, 31, 52, 11, 30, 56, 13, 59, 17, 44, 27, 6, 62, 11, 43, 17, 49, 38, 26, 2, 16, 27, 58, 21, 54, 18, 26, 5, 35, 61, 43, 27, 7, 39, 14, 58, 37, 55, 20, 33, 13, 40, 62, 10, 55, 5 }, - { 51, 14, 61, 29, 59, 20, 55, 31, 0, 49, 11, 60, 3, 26, 22, 56, 0, 40, 12, 43, 41, 8, 36, 0, 17, 57, 24, 2, 46, 26, 61, 18, 0, 38, 12, 59, 6, 49, 3, 57, 19, 63, 5, 33, 18, 54, 28, 56, 0, 43, 26, 46, 63, 27, 56, 22, 27, 54, 38, 28, 63, 24, 10, 45, 0, 31, 42, 21, 12, 25, 44, 49, 59, 6, 26, 50, 3, 34, 27, 59, 0, 35, 62, 16, 4, 58, 47, 0, 43, 24, 37, 2, 54, 20, 46, 31, 0, 56, 34, 5, 55, 45, 60, 37, 0, 40, 10, 38, 63, 46, 15, 20, 0, 53, 21, 62, 30, 11, 24, 27, 40, 0, 57, 26, 3, 45, 27, 35 } -}; - -#endif /* USE_DITHER_128128 */ - -EAPI void -evas_common_convert_init(void) -{ -} - -EAPI Gfx_Func_Convert -evas_common_convert_func_get(DATA8 *dest, int w, int h __UNUSED__, int depth, DATA32 rmask, DATA32 gmask, DATA32 bmask, Convert_Pal_Mode pal_mode, int rotation) -{ - if ((rmask == 0) && (gmask == 0) && (bmask == 0)) - { - if (depth == 8) - { -#ifdef BUILD_CONVERT_8_GRY_1 - if (pal_mode == PAL_MODE_NONE) - return evas_common_convert_rgba_to_8bpp_gry_256_dith; -#endif -#ifdef BUILD_CONVERT_8_GRY_16 - if (pal_mode == PAL_MODE_NONE) - return evas_common_convert_rgba_to_8bpp_gry_16_dith; -#endif -#ifdef BUILD_CONVERT_8_RGB_332 - if (pal_mode == PAL_MODE_RGB332) - return evas_common_convert_rgba_to_8bpp_rgb_332_dith; -#endif -#ifdef BUILD_CONVERT_8_RGB_666 - if (pal_mode == PAL_MODE_RGB666) - return evas_common_convert_rgba_to_8bpp_rgb_666_dith; -#endif -#ifdef BUILD_CONVERT_8_RGB_232 - if (pal_mode == PAL_MODE_RGB232) - return evas_common_convert_rgba_to_8bpp_rgb_232_dith; -#endif -#ifdef BUILD_CONVERT_8_RGB_222 - if (pal_mode == PAL_MODE_RGB222) - return evas_common_convert_rgba_to_8bpp_rgb_222_dith; -#endif -#ifdef BUILD_CONVERT_8_RGB_221 - if (pal_mode == PAL_MODE_RGB221) - return evas_common_convert_rgba_to_8bpp_rgb_221_dith; -#endif -#ifdef BUILD_CONVERT_8_RGB_121 - if (pal_mode == PAL_MODE_RGB121) - return evas_common_convert_rgba_to_8bpp_rgb_121_dith; -#endif -#ifdef BUILD_CONVERT_8_RGB_111 - if (pal_mode == PAL_MODE_RGB111) - return evas_common_convert_rgba_to_8bpp_rgb_111_dith; -#endif -#ifdef BUILD_CONVERT_8_GRAYSCALE_64 - if (pal_mode == PAL_MODE_GRAY64) - return evas_common_convert_rgba_to_8bpp_pal_gray64; -#endif - } - } - else - { - if (depth == 16) - { -#ifdef BUILD_CONVERT_16_RGB_565 - if ((rmask == 0x0000f800) && (gmask == 0x000007e0) && (bmask == 0x0000001f)) - { -#ifdef BUILD_CONVERT_16_RGB_ROT0 - if (rotation == 0) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_565_dith; - else - return evas_common_convert_rgba_to_16bpp_rgb_565_dith; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT180 - if (rotation == 180) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_180; - else - return evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_180; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT270 - if (rotation == 270) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_270; - else - return evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_270; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT90 - if (rotation == 90) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_90; - else - return evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_90; - } -#endif - } -#endif -#ifdef BUILD_CONVERT_16_BGR_565 - if ((rmask == 0x0000001f) && (gmask == 0x000007e0) && (bmask == 0x0000f800)) - { -#ifdef BUILD_CONVERT_16_RGB_ROT0 - if (rotation == 0) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_bgr_565_dith; - else - return evas_common_convert_rgba_to_16bpp_bgr_565_dith; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT180 - if (rotation == 180) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_180; - else - return evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_180; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT270 - if (rotation == 270) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_270; - else - return evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_270; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT90 - if (rotation == 90) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_90; - else - return evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_90; - } -#endif - } -#endif -#ifdef BUILD_CONVERT_16_RGB_555 - if ((rmask == 0x00007c00) && (gmask == 0x000003e0) && (bmask == 0x0000001f)) - { -#ifdef BUILD_CONVERT_16_RGB_ROT0 - if (rotation == 0) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_555_dith; - else - return evas_common_convert_rgba_to_16bpp_rgb_555_dith; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT180 - if (rotation == 180) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_180; - else - return evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_180; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT270 - if (rotation == 270) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_270; - else - return evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_270; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT90 - if (rotation == 90) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_90; - else - return evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_90; - } -#endif - } -#endif -#ifdef BUILD_CONVERT_16_RGB_444 - if ((rmask == 0x00000f00) && (gmask == 0x000000f0) && (bmask == 0x0000000f)) - { -#ifdef BUILD_CONVERT_16_RGB_ROT0 - if (rotation == 0) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_444_dith; - else - return evas_common_convert_rgba_to_16bpp_rgb_444_dith; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT180 - if (rotation == 180) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_180; - else - return evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_180; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT270 - if (rotation == 270) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_270; - else - return evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_270; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT90 - if (rotation == 90) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_90; - else - return evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_90; - } -#endif - } -#endif -#ifdef BUILD_CONVERT_16_RGB_454645 - if ((rmask == 0x0000f000) && (gmask == 0x00000780) && (bmask == 0x0000001e)) - { -#ifdef BUILD_CONVERT_16_RGB_ROT0 - if (rotation == 0) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_454645_dith; - else - return evas_common_convert_rgba_to_16bpp_rgb_454645_dith; - - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT180 - if (rotation == 180) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_180; - else - return evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_180; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT270 - if (rotation == 270) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_270; - else - return evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_270; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT90 - if (rotation == 270) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_90; - else - return evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_90; - } -#endif - } -#endif -#ifdef BUILD_CONVERT_16_RGB_454645 - if ((rmask == 0x0000f800) && (gmask == 0x000007e0) && (bmask == 0x0000001f)) - { -#ifdef BUILD_CONVERT_16_RGB_ROT0 - if (rotation == 0) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_454645_dith; - else - return evas_common_convert_rgba_to_16bpp_rgb_454645_dith; - - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT180 - if (rotation == 180) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_180; - else - return evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_180; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT270 - if (rotation == 270) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_270; - else - return evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_270; - } -#endif -#ifdef BUILD_CONVERT_16_RGB_ROT90 - if (rotation == 90) - { - if ((!(w & 0x1)) && (!((intptr_t)dest & 0x3))) - return evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_90; - else - return evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_90; - } -#endif - } -#endif - } - if (depth == 32) - { -#ifdef BUILD_CONVERT_32_RGB_8888 - if ((rmask == 0x00ff0000) && (gmask == 0x0000ff00) && (bmask == 0x000000ff)) - { -#ifdef BUILD_CONVERT_32_RGB_ROT0 - if (rotation == 0) - return evas_common_convert_rgba_to_32bpp_rgb_8888; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT180 - if (rotation == 180) - return evas_common_convert_rgba_to_32bpp_rgb_8888_rot_180; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT270 - if (rotation == 270) - return evas_common_convert_rgba_to_32bpp_rgb_8888_rot_270; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT90 - if (rotation == 90) - return evas_common_convert_rgba_to_32bpp_rgb_8888_rot_90; -#endif - } -#endif -#ifdef BUILD_CONVERT_32_RGBX_8888 - if ((rmask == 0xff000000) && (gmask == 0x00ff0000) && (bmask == 0x0000ff00)) - { -#ifdef BUILD_CONVERT_32_RGB_ROT0 - if (rotation == 0) - return evas_common_convert_rgba_to_32bpp_rgbx_8888; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT180 - if (rotation == 180) - return evas_common_convert_rgba_to_32bpp_rgbx_8888_rot_180; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT270 - if (rotation == 270) - return evas_common_convert_rgba_to_32bpp_rgbx_8888_rot_270; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT90 - if (rotation == 90) - return evas_common_convert_rgba_to_32bpp_rgbx_8888_rot_90; -#endif - } -#endif -#ifdef BUILD_CONVERT_32_BGR_8888 - if ((rmask == 0x000000ff) && (gmask == 0x0000ff00) && (bmask == 0x00ff0000)) - { -#ifdef BUILD_CONVERT_32_RGB_ROT0 - if (rotation == 0) - return evas_common_convert_rgba_to_32bpp_bgr_8888; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT180 - if (rotation == 180) - return evas_common_convert_rgba_to_32bpp_bgr_8888_rot_180; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT270 - if (rotation == 270) - return evas_common_convert_rgba_to_32bpp_bgr_8888_rot_270; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT90 - if (rotation == 90) - return evas_common_convert_rgba_to_32bpp_bgr_8888_rot_90; -#endif - } -#endif -#ifdef BUILD_CONVERT_32_BGRX_8888 - if ((rmask == 0x0000ff00) && (gmask == 0x00ff0000) && (bmask == 0xff000000)) - { -#ifdef BUILD_CONVERT_32_RGB_ROT0 - if (rotation == 0) - return evas_common_convert_rgba_to_32bpp_bgrx_8888; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT180 - if (rotation == 180) - return evas_common_convert_rgba_to_32bpp_bgrx_8888_rot_180; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT270 - if (rotation == 270) - return evas_common_convert_rgba_to_32bpp_bgrx_8888_rot_270; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT90 - if (rotation == 90) - return evas_common_convert_rgba_to_32bpp_bgrx_8888_rot_90; -#endif - } -#endif -#ifdef BUILD_CONVERT_32_RGB_666 - if ((rmask == 0x0003f000) && (gmask == 0x00000fc0) && (bmask == 0x0000003f)) - { -#ifdef BUILD_CONVERT_32_RGB_ROT0 - if (rotation == 0) - return evas_common_convert_rgba_to_32bpp_rgb_666; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT180 -// if (rotation == 180) -// return evas_common_convert_rgba_to_32bpp_rgb_8888_rot_180; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT270 -// if (rotation == 270) -// return evas_common_convert_rgba_to_32bpp_rgb_8888_rot_270; -#endif -#ifdef BUILD_CONVERT_32_RGB_ROT90 -// if (rotation == 90) -// return evas_common_convert_rgba_to_32bpp_rgb_8888_rot_90; -#endif - } -#endif - } - if (depth == 24) - { -#ifdef BUILD_CONVERT_24_RGB_888 - if ((rmask == 0x00ff0000) && (gmask == 0x0000ff00) && (bmask == 0x000000ff)) - { - if (rotation == 0) - return evas_common_convert_rgba_to_24bpp_rgb_888; - } -#endif -#ifdef BUILD_CONVERT_24_RGB_666 - if ((rmask == 0x0003f000) && (gmask == 0x00000fc0) && (bmask == 0x0000003f)) - { - if (rotation == 0) - return evas_common_convert_rgba_to_24bpp_rgb_666; - } -#endif -#ifdef BUILD_CONVERT_24_BGR_888 - if ((rmask == 0x000000ff) && (gmask == 0x0000ff00) && (bmask == 0x00ff0000)) - { - if (rotation == 0) - return evas_common_convert_rgba_to_24bpp_bgr_888; - } -#endif - } - INF("depth = %i mode = %i", depth, pal_mode); - if (depth == 8) - { -#ifdef BUILD_CONVERT_8_RGB_332 - if (pal_mode == PAL_MODE_RGB332) - return evas_common_convert_rgba_to_8bpp_rgb_332_dith; -#endif -#ifdef BUILD_CONVERT_8_RGB_666 - if (pal_mode == PAL_MODE_RGB666) - return evas_common_convert_rgba_to_8bpp_rgb_666_dith; -#endif -#ifdef BUILD_CONVERT_8_RGB_232 - if (pal_mode == PAL_MODE_RGB232) - return evas_common_convert_rgba_to_8bpp_rgb_232_dith; -#endif -#ifdef BUILD_CONVERT_8_RGB_222 - if (pal_mode == PAL_MODE_RGB222) - return evas_common_convert_rgba_to_8bpp_rgb_222_dith; -#endif -#ifdef BUILD_CONVERT_8_RGB_221 - if (pal_mode == PAL_MODE_RGB221) - return evas_common_convert_rgba_to_8bpp_rgb_221_dith; -#endif -#ifdef BUILD_CONVERT_8_RGB_121 - if (pal_mode == PAL_MODE_RGB121) - return evas_common_convert_rgba_to_8bpp_rgb_121_dith; -#endif -#ifdef BUILD_CONVERT_8_RGB_111 - if (pal_mode == PAL_MODE_RGB111) - return evas_common_convert_rgba_to_8bpp_rgb_111_dith; -#endif - } - } - /* no optimised converter for this... no generic one either. NULL */ - return NULL; -} diff --git a/libraries/evas/src/lib/engines/common/evas_convert_main.h b/libraries/evas/src/lib/engines/common/evas_convert_main.h deleted file mode 100644 index 51c2cc8..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_main.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _EVAS_CONVERT_MAIN_H -#define _EVAS_CONVERT_MAIN_H - - -EAPI void evas_common_convert_init (void); -EAPI Gfx_Func_Convert evas_common_convert_func_get (DATA8 *dest, int w, int h, int depth, DATA32 rmask, DATA32 gmask, DATA32 bmask, Convert_Pal_Mode pal_mode, int rotation); - - -#endif /* _EVAS_CONVERT_MAIN_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_convert_rgb_16.c b/libraries/evas/src/lib/engines/common/evas_convert_rgb_16.c deleted file mode 100644 index 796ff17..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_rgb_16.c +++ /dev/null @@ -1,2089 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_rgb_16.h" - -#ifndef BUILD_NO_DITHER_MASK -#ifdef USE_DITHER_44 -extern const DATA8 _evas_dither_44[4][4]; -#endif -#ifdef USE_DITHER_128128 -extern const DATA8 _evas_dither_128128[128][128]; -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_565 -#ifdef BUILD_CONVERT_16_RGB_ROT0 -void -evas_common_convert_rgba2_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ -#ifndef BUILD_NO_DITHER_MASK - DATA16 *d = (DATA16 *)dst; - DATA32 r1, g1, b1; - DATA32 r2, g2, b2; - unsigned int dith, dith2; - int x, y; - -#ifdef BUILD_LINE_DITHER_MASK - for (y = 0; y < h; y++) - { - if ((y + dith_y) & 0x1) - { - for (x = 0; x < w; x+=2) - { - DATA32 p = *src++, q = *src++; - r1 = ((p & 0xff0000) + 0x030000) >> 19; - if (r1 > 0x1f) r1 = 0x1f; - g1 = ((p & 0xff00) + 0x000100) >> 10; - if (g1 > 0x3f) g1 = 0x3f; - b1 = ((p & 0xff) + 0x000003) >> 3; - if (b1 > 0x1f) b1 = 0x1f; - r2 = ((q & 0xff0000) + 0x030000) >> 19; - if (r2 > 0x1f) r2 = 0x1f; - g2 = ((q & 0xff00) + 0x000100) >> 10; - if (g2 > 0x3f) g2 = 0x3f; - b2 = ((q & 0xff) + 0x000003) >> 3; - if (b2 > 0x1f) b2 = 0x1f; -#ifndef WORDS_BIGENDIAN - *((DATA32 *)d) = (r2 << 27) | (g2 << 21) | (b2 << 16) | - (r1 << 11) | (g1 << 5) | (b1); -#else - *((DATA32 *)d) = (r1 << 27) | (g1 << 21) | (b1 << 16) | - (r2 << 11) | (g2 << 5) | (b2); -#endif - d += 2; - } - } - else - { - x = w; - while (w > 0) - { - DATA32 p = *src++, q = *src++; - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)d) = - (((q & 0xff0000) >> 19) << 27) | (((q & 0xff00) >> 10) << 21) | (((q & 0xff) >> 3) << 16) | - (((p & 0xff0000) >> 19) << 11) | (((p & 0xff00) >> 10) << 5) | ((p & 0xff) >> 3); -#else - *((DATA32 *)d) = - (((p & 0xff0000) >> 19) << 27) | (((p & 0xff00) >> 10) << 21) | (((p & 0xff) >> 3) << 16) | - (((q & 0xff0000) >> 19) << 11) | (((q & 0xff00) >> 10) << 5) | ((q & 0xff) >> 3); -#endif - d += 2; w -= 2; - } - w = x; - } - src += src_jump; - d += dst_jump; - } -#else - for (y = 0; y < h; y++) - { - for (x = 0; x < w; x++) - { - DATA32 p = *src++, q = *src++; - - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK]; - dith2 = dith >> DM_SHF(6); - dith >>= DM_SHF(5); - r1 = (p & 0xff0000) >> 19; - g1 = (p & 0xff00) >> 10; - b1 = (p & 0xff) >> 3; - if ((r1 < 0x1f) && ((((p & 0xff0000) >> 16) - (r1 << 3)) >= dith )) r1++; - if ((g1 < 0x3f) && ((((p & 0xff00) >> 8) - (g1 << 2)) >= dith2)) g1++; - if ((b1 < 0x1f) && (((p & 0xff) - (b1 << 3)) >= dith )) b1++; - - x++; - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK]; - dith2 = dith >> DM_SHF(6); - dith >>= DM_SHF(5); - r2 = (q & 0xff0000) >> 19; - g2 = (q & 0xff00) >> 10; - b2 = (q & 0xff) >> 3; - if ((r2 < 0x1f) && ((((q & 0xff0000) >> 16) - (r2 << 3)) >= dith )) r2++; - if ((g2 < 0x3f) && ((((q & 0xff00) >> 8) - (g2 << 2)) >= dith2)) g2++; - if ((b2 < 0x1f) && (((q & 0xff) - (b2 << 3)) >= dith )) b2++; - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)d) = (r2 << 27) | (g2 << 21) | (b2 << 16) | - (r1 << 11) | (g1 << 5) | (b1); -#else - *((DATA32 *)d) = (r1 << 27) | (g1 << 21) | (b1 << 16) | - (r2 << 11) | (g2 << 5) | (b2); -#endif - d += 2; - } - src += src_jump; - d += dst_jump; - } -#endif - return; - (void)pal; -#else - DATA16 *d = (DATA16 *)dst; - int w0 = w; - - while (h--) - { - while (w > 0) - { - DATA32 p = *src++, q = *src++; - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)d) = - (((q & 0xff0000) >> 19) << 27) | (((q & 0xff00) >> 10) << 21) | (((q & 0xff) >> 3) << 16) | - (((p & 0xff0000) >> 19) << 11) | (((p & 0xff00) >> 10) << 5) | ((p & 0xff) >> 3); -#else - *((DATA32 *)d) = - (((p & 0xff0000) >> 19) << 27) | (((p & 0xff00) >> 10) << 21) | (((p & 0xff) >> 3) << 16) | - (((q & 0xff0000) >> 19) << 11) | (((q & 0xff00) >> 10) << 5) | ((q & 0xff) >> 3); -#endif - d += 2; w -= 2; - } - w = w0; - src += src_jump; - d += dst_jump; - } - return; - (void)pal; -#endif -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_565 -#ifdef BUILD_CONVERT_16_RGB_ROT0 -void -evas_common_convert_rgba_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ -#ifndef BUILD_NO_DITHER_MASK - DATA16 *d = (DATA16 *)dst; - DATA32 r, g, b; - unsigned int dith, dith2; - int x, y; - -#ifdef BUILD_LINE_DITHER_MASK - for (y = 0; y < h; y++) - { - if ((y + dith_y) & 0x1) - { - for (x = 0; x < w; x++) - { - DATA32 p = *src++; - - r = (p & 0xff0000) >> 19; - if (r > 0x1f) r = 0x1f; - g = (p & 0xff00) >> 10; - if (g > 0x3f) g = 0x3f; - b = (p & 0xff) >> 3; - if (b > 0x1f) b = 0x1f; - *d++ = (r << 11) | (g << 5) | b; - } - } - else - { - x = w; - while (w--) - { - *d++ = (((*src & 0xff0000) >> 19) << 11) | (((*src & 0xff00) >> 10) << 5) | ((*src & 0xff) >> 3); - src++; - } - w = x; - } - src += src_jump; - d += dst_jump; - } -#else - for (y = 0; y < h; y++) - { - for (x = 0; x < w; x++) - { - DATA32 p = *src++; - - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK]; - dith2 = dith >> DM_SHF(6); - dith >>= DM_SHF(5); - r = (p & 0xff0000) >> 19; - g = (p & 0xff00) >> 10; - b = (p & 0xff) >> 3; - if ((r < 0x1f) && ((((p & 0xff0000) >> 16) - (r << 3)) >= dith )) r++; - if ((g < 0x3f) && ((((p & 0xff00) >> 8) - (g << 2)) >= dith2)) g++; - if ((b < 0x1f) && (((p & 0xff) - (b << 3)) >= dith )) b++; - - *d++ = (r << 11) | (g << 5) | b; - } - src += src_jump; - d += dst_jump; - } -#endif - return; - (void)pal; -#else - DATA16 *d = (DATA16 *)dst; - int w0 = w; - - while (h--) - { - while (w--) - { - *d++ = (((*src & 0xff0000) >> 19) << 11) | (((*src & 0xff00) >> 10) << 5) | ((*src & 0xff) >> 3); - src++; - } - w = w0; - src += src_jump; - d += dst_jump; - } - return; - (void)pal; -#endif -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_565 -#ifdef BUILD_CONVERT_16_RGB_ROT180 -void -evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_180(); - - r1 = (R_VAL(src_ptr)) >> 3; - g1 = (G_VAL(src_ptr)) >> 2; - b1 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r1 << 3)) >= dith ) && (r1 < 0x1f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 2)) >= dith2) && (g1 < 0x3f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 3)) >= dith ) && (b1 < 0x1f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_180(); - - r2 = (R_VAL(src_ptr)) >> 3; - g2 = (G_VAL(src_ptr)) >> 2; - b2 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r2 << 3)) >= dith ) && (r2 < 0x1f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 2)) >= dith2) && (g2 < 0x3f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 3)) >= dith ) && (b2 < 0x1f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 27) | (g2 << 21) | (b2 << 16) | - (r1 << 11) | (g1 << 5 ) | (b1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 27) | (g1 << 21) | (b1 << 16) | - (r2 << 11) | (g2 << 5 ) | (b2 ); -#endif - - CONVERT_LOOP2_END_ROT_180(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_565 -#ifdef BUILD_CONVERT_16_RGB_ROT180 -void -evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_180(); - - r = (R_VAL(src_ptr)) >> 3; - g = (G_VAL(src_ptr)) >> 2; - b = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r << 3)) >= dith ) && (r < 0x1f)) r++; - if (((G_VAL(src_ptr) - (g << 2)) >= dith2) && (g < 0x3f)) g++; - if (((B_VAL(src_ptr) - (b << 3)) >= dith ) && (b < 0x1f)) b++; -#endif - - *dst_ptr = (r << 11) | (g << 5) | (b); - - CONVERT_LOOP_END_ROT_180(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_565 -#ifdef BUILD_CONVERT_16_RGB_ROT270 -void -evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_270(); - - r1 = (R_VAL(src_ptr)) >> 3; - g1 = (G_VAL(src_ptr)) >> 2; - b1 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r1 << 3)) >= dith ) && (r1 < 0x1f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 2)) >= dith2) && (g1 < 0x3f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 3)) >= dith ) && (b1 < 0x1f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_270(); - - r2 = (R_VAL(src_ptr)) >> 3; - g2 = (G_VAL(src_ptr)) >> 2; - b2 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r2 << 3)) >= dith ) && (r2 < 0x1f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 2)) >= dith2) && (g2 < 0x3f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 3)) >= dith ) && (b2 < 0x1f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 27) | (g2 << 21) | (b2 << 16) | - (r1 << 11) | (g1 << 5 ) | (b1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 27) | (g1 << 21) | (b1 << 16) | - (r2 << 11) | (g2 << 5 ) | (b2 ); -#endif - - CONVERT_LOOP2_END_ROT_270(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_565 -#ifdef BUILD_CONVERT_16_RGB_ROT270 -void -evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_270(); - - r = (R_VAL(src_ptr)) >> 3; - g = (G_VAL(src_ptr)) >> 2; - b = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r << 3)) >= dith ) && (r < 0x1f)) r++; - if (((G_VAL(src_ptr) - (g << 2)) >= dith2) && (g < 0x3f)) g++; - if (((B_VAL(src_ptr) - (b << 3)) >= dith ) && (b < 0x1f)) b++; -#endif - - *dst_ptr = (r << 11) | (g << 5) | (b); - - CONVERT_LOOP_END_ROT_270(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_565 -#ifdef BUILD_CONVERT_16_RGB_ROT90 -void -evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_90(); - - r1 = (R_VAL(src_ptr)) >> 3; - g1 = (G_VAL(src_ptr)) >> 2; - b1 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r1 << 3)) >= dith ) && (r1 < 0x1f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 2)) >= dith2) && (g1 < 0x3f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 3)) >= dith ) && (b1 < 0x1f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_90(); - - r2 = (R_VAL(src_ptr)) >> 3; - g2 = (G_VAL(src_ptr)) >> 2; - b2 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r2 << 3)) >= dith ) && (r2 < 0x1f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 2)) >= dith2) && (g2 < 0x3f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 3)) >= dith ) && (b2 < 0x1f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 27) | (g2 << 21) | (b2 << 16) | - (r1 << 11) | (g1 << 5 ) | (b1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 27) | (g1 << 21) | (b1 << 16) | - (r2 << 11) | (g2 << 5 ) | (b2 ); -#endif - - CONVERT_LOOP2_END_ROT_90(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_565 -#ifdef BUILD_CONVERT_16_RGB_ROT90 -void -evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_90(); - - r = (R_VAL(src_ptr)) >> 3; - g = (G_VAL(src_ptr)) >> 2; - b = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r << 3)) >= dith ) && (r < 0x1f)) r++; - if (((G_VAL(src_ptr) - (g << 2)) >= dith2) && (g < 0x3f)) g++; - if (((B_VAL(src_ptr) - (b << 3)) >= dith ) && (b < 0x1f)) b++; -#endif - - *dst_ptr = (r << 11) | (g << 5) | (b); - - CONVERT_LOOP_END_ROT_90(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_BGR_565 -#ifdef BUILD_CONVERT_16_RGB_ROT0 -void -evas_common_convert_rgba2_to_16bpp_bgr_565_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_0(); - - r1 = (R_VAL(src_ptr)) >> 3; - g1 = (G_VAL(src_ptr)) >> 2; - b1 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r1 << 3)) >= dith ) && (r1 < 0x1f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 2)) >= dith2) && (g1 < 0x3f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 3)) >= dith ) && (b1 < 0x1f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_0(); - - r2 = (R_VAL(src_ptr)) >> 3; - g2 = (G_VAL(src_ptr)) >> 2; - b2 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r2 << 3)) >= dith ) && (r2 < 0x1f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 2)) >= dith2) && (g2 < 0x3f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 3)) >= dith ) && (b2 < 0x1f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (b2 << 27) | (g2 << 21) | (r2 << 16) | - (b1 << 11) | (g1 << 5 ) | (r1 ); -#else - *((DATA32 *)dst_ptr) = - (b1 << 27) | (g1 << 21) | (r1 << 16) | - (b2 << 11) | (g2 << 5 ) | (r2 ); -#endif - - CONVERT_LOOP2_END_ROT_0(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_BGR_565 -#ifdef BUILD_CONVERT_16_RGB_ROT0 -void -evas_common_convert_rgba_to_16bpp_bgr_565_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - r = (R_VAL(src_ptr)) >> 3; - g = (G_VAL(src_ptr)) >> 2; - b = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r << 3)) >= dith ) && (r < 0x1f)) r++; - if (((G_VAL(src_ptr) - (g << 2)) >= dith2) && (g < 0x3f)) g++; - if (((B_VAL(src_ptr) - (b << 3)) >= dith ) && (b < 0x1f)) b++; -#endif - - *dst_ptr = (b << 11) | (g << 5) | (r); - - CONVERT_LOOP_END_ROT_0(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_BGR_565 -#ifdef BUILD_CONVERT_16_RGB_ROT180 -void -evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_180(); - - r1 = (R_VAL(src_ptr)) >> 3; - g1 = (G_VAL(src_ptr)) >> 2; - b1 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r1 << 3)) >= dith ) && (r1 < 0x1f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 2)) >= dith2) && (g1 < 0x3f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 3)) >= dith ) && (b1 < 0x1f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_180(); - - r2 = (R_VAL(src_ptr)) >> 3; - g2 = (G_VAL(src_ptr)) >> 2; - b2 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r2 << 3)) >= dith ) && (r2 < 0x1f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 2)) >= dith2) && (g2 < 0x3f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 3)) >= dith ) && (b2 < 0x1f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (b2 << 27) | (g2 << 21) | (r2 << 16) | - (b1 << 11) | (g1 << 5 ) | (r1 ); -#else - *((DATA32 *)dst_ptr) = - (b1 << 27) | (g1 << 21) | (r1 << 16) | - (b2 << 11) | (g2 << 5 ) | (r2 ); -#endif - - CONVERT_LOOP2_END_ROT_180(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_BGR_565 -#ifdef BUILD_CONVERT_16_RGB_ROT180 -void -evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - ERR("evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_180"); - - CONVERT_LOOP_START_ROT_180(); - - r = (R_VAL(src_ptr)) >> 3; - g = (G_VAL(src_ptr)) >> 2; - b = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r << 3)) >= dith ) && (r < 0x1f)) r++; - if (((G_VAL(src_ptr) - (g << 2)) >= dith2) && (g < 0x3f)) g++; - if (((B_VAL(src_ptr) - (b << 3)) >= dith ) && (b < 0x1f)) b++; -#endif - - *dst_ptr = (b << 11) | (g << 5) | (r); - - CONVERT_LOOP_END_ROT_180(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_BGR_565 -#ifdef BUILD_CONVERT_16_RGB_ROT270 -void -evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_270(); - - r1 = (R_VAL(src_ptr)) >> 3; - g1 = (G_VAL(src_ptr)) >> 2; - b1 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r1 << 3)) >= dith ) && (r1 < 0x1f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 2)) >= dith2) && (g1 < 0x3f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 3)) >= dith ) && (b1 < 0x1f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_270(); - - r2 = (R_VAL(src_ptr)) >> 3; - g2 = (G_VAL(src_ptr)) >> 2; - b2 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r2 << 3)) >= dith ) && (r2 < 0x1f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 2)) >= dith2) && (g2 < 0x3f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 3)) >= dith ) && (b2 < 0x1f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (b2 << 27) | (g2 << 21) | (r2 << 16) | - (b1 << 11) | (g1 << 5 ) | (r1 ); -#else - *((DATA32 *)dst_ptr) = - (b1 << 27) | (g1 << 21) | (r1 << 16) | - (b2 << 11) | (g2 << 5 ) | (r2 ); -#endif - - CONVERT_LOOP2_END_ROT_270(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_BGR_565 -#ifdef BUILD_CONVERT_16_RGB_ROT270 -void -evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_270(); - - r = (R_VAL(src_ptr)) >> 3; - g = (G_VAL(src_ptr)) >> 2; - b = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r << 3)) >= dith ) && (r < 0x1f)) r++; - if (((G_VAL(src_ptr) - (g << 2)) >= dith2) && (g < 0x3f)) g++; - if (((B_VAL(src_ptr) - (b << 3)) >= dith ) && (b < 0x1f)) b++; -#endif - - *dst_ptr = (b << 11) | (g << 5) | (r); - - CONVERT_LOOP_END_ROT_270(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_BGR_565 -#ifdef BUILD_CONVERT_16_RGB_ROT90 -void -evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_90(); - - r1 = (R_VAL(src_ptr)) >> 3; - g1 = (G_VAL(src_ptr)) >> 2; - b1 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r1 << 3)) >= dith ) && (r1 < 0x1f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 2)) >= dith2) && (g1 < 0x3f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 3)) >= dith ) && (b1 < 0x1f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_90(); - - r2 = (R_VAL(src_ptr)) >> 3; - g2 = (G_VAL(src_ptr)) >> 2; - b2 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r2 << 3)) >= dith ) && (r2 < 0x1f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 2)) >= dith2) && (g2 < 0x3f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 3)) >= dith ) && (b2 < 0x1f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (b2 << 27) | (g2 << 21) | (r2 << 16) | - (b1 << 11) | (g1 << 5 ) | (r1 ); -#else - *((DATA32 *)dst_ptr) = - (b1 << 27) | (g1 << 21) | (r1 << 16) | - (b2 << 11) | (g2 << 5 ) | (r2 ); -#endif - - CONVERT_LOOP2_END_ROT_90(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_BGR_565 -#ifdef BUILD_CONVERT_16_RGB_ROT90 -void -evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith, dith2; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_90(); - - r = (R_VAL(src_ptr)) >> 3; - g = (G_VAL(src_ptr)) >> 2; - b = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); - if (((R_VAL(src_ptr) - (r << 3)) >= dith ) && (r < 0x1f)) r++; - if (((G_VAL(src_ptr) - (g << 2)) >= dith2) && (g < 0x3f)) g++; - if (((B_VAL(src_ptr) - (b << 3)) >= dith ) && (b < 0x1f)) b++; -#endif - - *dst_ptr = (b << 11) | (g << 5) | (r); - - CONVERT_LOOP_END_ROT_90(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_444 -#ifdef BUILD_CONVERT_16_RGB_ROT0 -void -evas_common_convert_rgba2_to_16bpp_rgb_444_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_0(); - - r1 = (R_VAL(src_ptr)) >> 4; - g1 = (G_VAL(src_ptr)) >> 4; - b1 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_0(); - - r2 = (R_VAL(src_ptr)) >> 4; - g2 = (G_VAL(src_ptr)) >> 4; - b2 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 24) | (g2 << 20) | (b2 << 16) | - (r1 << 8 ) | (g1 << 4 ) | (b1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 24) | (g1 << 20) | (b1 << 16) | - (r2 << 8 ) | (g2 << 4 ) | (b2 ); -#endif - - CONVERT_LOOP2_END_ROT_0(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_444 -#ifdef BUILD_CONVERT_16_RGB_ROT0 -void -evas_common_convert_rgba_to_16bpp_rgb_444_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - r = (R_VAL(src_ptr)) >> 4; - g = (G_VAL(src_ptr)) >> 4; - b = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; - if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; - if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; -#endif - - *dst_ptr = (r << 8) | (g << 4) | (b); - - CONVERT_LOOP_END_ROT_0(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_444 -#ifdef BUILD_CONVERT_16_RGB_ROT180 -void -evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_180(); - - r1 = (R_VAL(src_ptr)) >> 4; - g1 = (G_VAL(src_ptr)) >> 4; - b1 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_180(); - - r2 = (R_VAL(src_ptr)) >> 4; - g2 = (G_VAL(src_ptr)) >> 4; - b2 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 24) | (g2 << 20) | (b2 << 16) | - (r1 << 8 ) | (g1 << 4 ) | (b1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 24) | (g1 << 20) | (b1 << 16) | - (r2 << 8 ) | (g2 << 4 ) | (b2 ); -#endif - - CONVERT_LOOP2_END_ROT_180(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_444 -#ifdef BUILD_CONVERT_16_RGB_ROT180 -void -evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_180(); - - r = (R_VAL(src_ptr)) >> 4; - g = (G_VAL(src_ptr)) >> 4; - b = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; - if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; - if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; -#endif - - *dst_ptr = (r << 8) | (g << 4) | (b); - - CONVERT_LOOP_END_ROT_180(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_444 -#ifdef BUILD_CONVERT_16_RGB_ROT270 -void -evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_270(); - - r1 = (R_VAL(src_ptr)) >> 4; - g1 = (G_VAL(src_ptr)) >> 4; - b1 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_270(); - - r2 = (R_VAL(src_ptr)) >> 4; - g2 = (G_VAL(src_ptr)) >> 4; - b2 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 24) | (g2 << 20) | (b2 << 16) | - (r1 << 8 ) | (g1 << 4 ) | (b1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 24) | (g1 << 20) | (b1 << 16) | - (r2 << 8 ) | (g2 << 4 ) | (b2 ); -#endif - - CONVERT_LOOP2_END_ROT_270(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_444 -#ifdef BUILD_CONVERT_16_RGB_ROT270 -void -evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_270(); - - r = (R_VAL(src_ptr)) >> 4; - g = (G_VAL(src_ptr)) >> 4; - b = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; - if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; - if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; -#endif - - *dst_ptr = (r << 8) | (g << 4) | (b); - - CONVERT_LOOP_END_ROT_270(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_444 -#ifdef BUILD_CONVERT_16_RGB_ROT90 -void -evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_90(); - - r1 = (R_VAL(src_ptr)) >> 4; - g1 = (G_VAL(src_ptr)) >> 4; - b1 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_90(); - - r2 = (R_VAL(src_ptr)) >> 4; - g2 = (G_VAL(src_ptr)) >> 4; - b2 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 24) | (g2 << 20) | (b2 << 16) | - (r1 << 8 ) | (g1 << 4 ) | (b1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 24) | (g1 << 20) | (b1 << 16) | - (r2 << 8 ) | (g2 << 4 ) | (b2 ); -#endif - - CONVERT_LOOP2_END_ROT_90(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_444 -#ifdef BUILD_CONVERT_16_RGB_ROT90 -void -evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_90(); - - r = (R_VAL(src_ptr)) >> 4; - g = (G_VAL(src_ptr)) >> 4; - b = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; - if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; - if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; -#endif - - *dst_ptr = (r << 8) | (g << 4) | (b); - - CONVERT_LOOP_END_ROT_90(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_454645 -#ifdef BUILD_CONVERT_16_RGB_ROT0 -void -evas_common_convert_rgba2_to_16bpp_rgb_454645_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_0(); - - r1 = (R_VAL(src_ptr)) >> 4; - g1 = (G_VAL(src_ptr)) >> 4; - b1 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_0(); - - r2 = (R_VAL(src_ptr)) >> 4; - g2 = (G_VAL(src_ptr)) >> 4; - b2 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 28) | (g2 << 23) | (b2 << 17) | - (r1 << 12) | (g1 << 7 ) | (b1 << 1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 28) | (g1 << 23) | (b1 << 17) | - (r2 << 12) | (g2 << 7 ) | (b2 << 1 ); -#endif - - CONVERT_LOOP2_END_ROT_0(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_454645 -#ifdef BUILD_CONVERT_16_RGB_ROT0 -void -evas_common_convert_rgba_to_16bpp_rgb_454645_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - r = (R_VAL(src_ptr)) >> 4; - g = (G_VAL(src_ptr)) >> 4; - b = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; - if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; - if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; -#endif - - *dst_ptr = (r << 12) | (g << 7) | (b << 1); - - CONVERT_LOOP_END_ROT_0(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_454645 -#ifdef BUILD_CONVERT_16_RGB_ROT180 -void -evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_180(); - - r1 = (R_VAL(src_ptr)) >> 4; - g1 = (G_VAL(src_ptr)) >> 4; - b1 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_180(); - - r2 = (R_VAL(src_ptr)) >> 4; - g2 = (G_VAL(src_ptr)) >> 4; - b2 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 28) | (g2 << 23) | (b2 << 17) | - (r1 << 12) | (g1 << 7 ) | (b1 << 1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 28) | (g1 << 23) | (b1 << 17) | - (r2 << 12) | (g2 << 7 ) | (b2 << 1 ); -#endif - - CONVERT_LOOP2_END_ROT_180(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_454645 -#ifdef BUILD_CONVERT_16_RGB_ROT180 -void -evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_180(); - - r = (R_VAL(src_ptr)) >> 4; - g = (G_VAL(src_ptr)) >> 4; - b = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; - if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; - if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; -#endif - - *dst_ptr = (r << 12) | (g << 7) | (b << 1); - - CONVERT_LOOP_END_ROT_180(); - return; - (void)pal; -} -#endif -#endif - - -#ifdef BUILD_CONVERT_16_RGB_454645 -#ifdef BUILD_CONVERT_16_RGB_ROT270 -void -evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_270(); - - r1 = (R_VAL(src_ptr)) >> 4; - g1 = (G_VAL(src_ptr)) >> 4; - b1 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_270(); - - r2 = (R_VAL(src_ptr)) >> 4; - g2 = (G_VAL(src_ptr)) >> 4; - b2 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 28) | (g2 << 23) | (b2 << 17) | - (r1 << 12) | (g1 << 7 ) | (b1 << 1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 28) | (g1 << 23) | (b1 << 17) | - (r2 << 12) | (g2 << 7 ) | (b2 << 1 ); -#endif - - CONVERT_LOOP2_END_ROT_270(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_454645 -#ifdef BUILD_CONVERT_16_RGB_ROT270 -void -evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_270(); - - r = (R_VAL(src_ptr)) >> 4; - g = (G_VAL(src_ptr)) >> 4; - b = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; - if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; - if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; -#endif - - *dst_ptr = (r << 12) | (g << 7) | (b << 1); - - CONVERT_LOOP_END_ROT_270(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_454645 -#ifdef BUILD_CONVERT_16_RGB_ROT90 -void -evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_90(); - - r1 = (R_VAL(src_ptr)) >> 4; - g1 = (G_VAL(src_ptr)) >> 4; - b1 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_90(); - - r2 = (R_VAL(src_ptr)) >> 4; - g2 = (G_VAL(src_ptr)) >> 4; - b2 = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 28) | (g2 << 23) | (b2 << 17) | - (r1 << 12) | (g1 << 7 ) | (b1 << 1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 28) | (g1 << 23) | (b1 << 17) | - (r2 << 12) | (g2 << 7 ) | (b2 << 1 ); -#endif - - CONVERT_LOOP2_END_ROT_90(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_454645 -#ifdef BUILD_CONVERT_16_RGB_ROT90 -void -evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_90(); - - r = (R_VAL(src_ptr)) >> 4; - g = (G_VAL(src_ptr)) >> 4; - b = (B_VAL(src_ptr)) >> 4; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); - if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; - if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; - if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; -#endif - - *dst_ptr = (r << 12) | (g << 7) | (b << 1); - - CONVERT_LOOP_END_ROT_90(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_555 -#ifdef BUILD_CONVERT_16_RGB_ROT0 -void -evas_common_convert_rgba2_to_16bpp_rgb_555_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_0(); - - r1 = (R_VAL(src_ptr)) >> 3; - g1 = (G_VAL(src_ptr)) >> 3; - b1 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - if (((R_VAL(src_ptr) - (r1 << 3)) >= dith) && (r1 < 0x1f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 3)) >= dith) && (g1 < 0x1f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 3)) >= dith) && (b1 < 0x1f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_0(); - - r2 = (R_VAL(src_ptr)) >> 3; - g2 = (G_VAL(src_ptr)) >> 3; - b2 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - if (((R_VAL(src_ptr) - (r2 << 3)) >= dith) && (r2 < 0x1f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 3)) >= dith) && (g2 < 0x1f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 3)) >= dith) && (b2 < 0x1f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 26) | (g2 << 21) | (b2 << 16) | - (r1 << 10) | (g1 << 5 ) | (b1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 26) | (g1 << 21) | (b1 << 16) | - (r2 << 10) | (g2 << 5 ) | (b2 ); -#endif - - CONVERT_LOOP2_END_ROT_0(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_555 -#ifdef BUILD_CONVERT_16_RGB_ROT0 -void -evas_common_convert_rgba_to_16bpp_rgb_555_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - r = (R_VAL(src_ptr)) >> 3; - g = (G_VAL(src_ptr)) >> 3; - b = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - if (((R_VAL(src_ptr) - (r << 3)) >= dith) && (r < 0x1f)) r++; - if (((G_VAL(src_ptr) - (g << 3)) >= dith) && (g < 0x1f)) g++; - if (((B_VAL(src_ptr) - (b << 3)) >= dith) && (b < 0x1f)) b++; -#endif - - *dst_ptr = (r << 10) | (g << 5) | (b); - - CONVERT_LOOP_END_ROT_0(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_555 -#ifdef BUILD_CONVERT_16_RGB_ROT180 -void -evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_180(); - - r1 = (R_VAL(src_ptr)) >> 3; - g1 = (G_VAL(src_ptr)) >> 3; - b1 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - if (((R_VAL(src_ptr) - (r1 << 3)) >= dith) && (r1 < 0x1f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 3)) >= dith) && (g1 < 0x1f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 3)) >= dith) && (b1 < 0x1f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_180(); - - r2 = (R_VAL(src_ptr)) >> 3; - g2 = (G_VAL(src_ptr)) >> 3; - b2 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - if (((R_VAL(src_ptr) - (r2 << 3)) >= dith) && (r2 < 0x1f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 3)) >= dith) && (g2 < 0x1f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 3)) >= dith) && (b2 < 0x1f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 26) | (g2 << 21) | (b2 << 16) | - (r1 << 10) | (g1 << 5 ) | (b1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 26) | (g1 << 21) | (b1 << 16) | - (r2 << 10) | (g2 << 5 ) | (b2 ); -#endif - - CONVERT_LOOP2_END_ROT_180(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_555 -#ifdef BUILD_CONVERT_16_RGB_ROT180 -void -evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_180(); - - r = (R_VAL(src_ptr)) >> 3; - g = (G_VAL(src_ptr)) >> 3; - b = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - if (((R_VAL(src_ptr) - (r << 3)) >= dith) && (r < 0x1f)) r++; - if (((G_VAL(src_ptr) - (g << 3)) >= dith) && (g < 0x1f)) g++; - if (((B_VAL(src_ptr) - (b << 3)) >= dith) && (b < 0x1f)) b++; -#endif - - *dst_ptr = (r << 10) | (g << 5) | (b); - - CONVERT_LOOP_END_ROT_180(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_555 -#ifdef BUILD_CONVERT_16_RGB_ROT270 -void -evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_270(); - - r1 = (R_VAL(src_ptr)) >> 3; - g1 = (G_VAL(src_ptr)) >> 3; - b1 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - if (((R_VAL(src_ptr) - (r1 << 3)) >= dith) && (r1 < 0x1f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 3)) >= dith) && (g1 < 0x1f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 3)) >= dith) && (b1 < 0x1f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_270(); - - r2 = (R_VAL(src_ptr)) >> 3; - g2 = (G_VAL(src_ptr)) >> 3; - b2 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - if (((R_VAL(src_ptr) - (r2 << 3)) >= dith) && (r2 < 0x1f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 3)) >= dith) && (g2 < 0x1f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 3)) >= dith) && (b2 < 0x1f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 26) | (g2 << 21) | (b2 << 16) | - (r1 << 10) | (g1 << 5 ) | (b1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 26) | (g1 << 21) | (b1 << 16) | - (r2 << 10) | (g2 << 5 ) | (b2 ); -#endif - - CONVERT_LOOP2_END_ROT_270(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_555 -#ifdef BUILD_CONVERT_16_RGB_ROT270 -void -evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_270(); - - r = (R_VAL(src_ptr)) >> 3; - g = (G_VAL(src_ptr)) >> 3; - b = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - if (((R_VAL(src_ptr) - (r << 3)) >= dith) && (r < 0x1f)) r++; - if (((G_VAL(src_ptr) - (g << 3)) >= dith) && (g < 0x1f)) g++; - if (((B_VAL(src_ptr) - (b << 3)) >= dith) && (b < 0x1f)) b++; -#endif - - *dst_ptr = (r << 10) | (g << 5) | (b); - - CONVERT_LOOP_END_ROT_270(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_555 -#ifdef BUILD_CONVERT_16_RGB_ROT90 -void -evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r1, g1, b1; - DATA8 r2, g2, b2; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP2_START_ROT_90(); - - r1 = (R_VAL(src_ptr)) >> 3; - g1 = (G_VAL(src_ptr)) >> 3; - b1 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - if (((R_VAL(src_ptr) - (r1 << 3)) >= dith) && (r1 < 0x1f)) r1++; - if (((G_VAL(src_ptr) - (g1 << 3)) >= dith) && (g1 < 0x1f)) g1++; - if (((B_VAL(src_ptr) - (b1 << 3)) >= dith) && (b1 < 0x1f)) b1++; -#endif - - CONVERT_LOOP2_INC_ROT_90(); - - r2 = (R_VAL(src_ptr)) >> 3; - g2 = (G_VAL(src_ptr)) >> 3; - b2 = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - if (((R_VAL(src_ptr) - (r2 << 3)) >= dith) && (r2 < 0x1f)) r2++; - if (((G_VAL(src_ptr) - (g2 << 3)) >= dith) && (g2 < 0x1f)) g2++; - if (((B_VAL(src_ptr) - (b2 << 3)) >= dith) && (b2 < 0x1f)) b2++; -#endif - -#ifndef WORDS_BIGENDIAN - *((DATA32 *)dst_ptr) = - (r2 << 26) | (g2 << 21) | (b2 << 16) | - (r1 << 10) | (g1 << 5 ) | (b1 ); -#else - *((DATA32 *)dst_ptr) = - (r1 << 26) | (g1 << 21) | (b1 << 16) | - (r2 << 10) | (g2 << 5 ) | (b2 ); -#endif - - CONVERT_LOOP2_END_ROT_90(); - return; - (void)pal; -} -#endif -#endif - -#ifdef BUILD_CONVERT_16_RGB_555 -#ifdef BUILD_CONVERT_16_RGB_ROT90 -void -evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA16 *dst_ptr; - int x, y; - DATA8 r, g, b; -#ifndef BUILD_NO_DITHER_MASK - DATA8 dith; -#endif - - dst_ptr = (DATA16 *)dst; - - CONVERT_LOOP_START_ROT_90(); - - r = (R_VAL(src_ptr)) >> 3; - g = (G_VAL(src_ptr)) >> 3; - b = (B_VAL(src_ptr)) >> 3; - -#ifndef BUILD_NO_DITHER_MASK - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); - if (((R_VAL(src_ptr) - (r << 3)) >= dith) && (r < 0x1f)) r++; - if (((G_VAL(src_ptr) - (g << 3)) >= dith) && (g < 0x1f)) g++; - if (((B_VAL(src_ptr) - (b << 3)) >= dith) && (b < 0x1f)) b++; -#endif - - *dst_ptr = (r << 10) | (g << 5) | (b); - - CONVERT_LOOP_END_ROT_90(); - return; - (void)pal; -} -#endif -#endif - diff --git a/libraries/evas/src/lib/engines/common/evas_convert_rgb_16.h b/libraries/evas/src/lib/engines/common/evas_convert_rgb_16.h deleted file mode 100644 index f7ae63c..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_rgb_16.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef _EVAS_CONVERT_RGB_16_H -#define _EVAS_CONVERT_RGB_16_H - - -void evas_common_convert_rgba2_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_bgr_565_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_bgr_565_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_rgb_444_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_444_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_rgb_454645_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_454645_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_rgb_555_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_555_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); - -void evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); - -void evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); - -void evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); - - -#endif /* _EVAS_CONVERT_RGB_16_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_convert_rgb_24.c b/libraries/evas/src/lib/engines/common/evas_convert_rgb_24.c deleted file mode 100644 index 9efa006..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_rgb_24.c +++ /dev/null @@ -1,89 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_rgb_24.h" - -#ifdef BUILD_CONVERT_24_RGB_888 -void -evas_common_convert_rgba_to_24bpp_rgb_888(DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA8 *dst_ptr; - int x, y; - - dst_ptr = (DATA8 *)dst; - src_ptr = (DATA32 *)src; - - for (y = 0; y < h; y++) - { - for (x = 0; x < w; x++) - { - dst_ptr[0] = R_VAL(src_ptr); - dst_ptr[1] = G_VAL(src_ptr); - dst_ptr[2] = B_VAL(src_ptr); - src_ptr++; - dst_ptr+=3; - } - src_ptr += src_jump; - dst_ptr += (dst_jump * 3); - } - return; -} -#endif -#ifdef BUILD_CONVERT_24_RGB_666 -void -evas_common_convert_rgba_to_24bpp_rgb_666(DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA8 *dst_ptr, *scratch_ptr; - DATA32 scratch; - int x, y; - - dst_ptr = (DATA8 *)dst; - src_ptr = (DATA32 *)src; - - scratch_ptr = (DATA8 *)(&scratch); - for (y = 0; y < h; y++) - { - for (x = 0; x < w; x++) - { - scratch = - (((R_VAL(src_ptr) << 12) | (B_VAL(src_ptr) >> 2)) & 0x03f03f) | - ((G_VAL(src_ptr) << 4) & 0x000fc0); - dst_ptr[0] = scratch_ptr[1]; - dst_ptr[1] = scratch_ptr[2]; - dst_ptr[2] = scratch_ptr[3]; - src_ptr++; - dst_ptr+=3; - } - src_ptr += src_jump; - dst_ptr += (dst_jump * 3); - } - return; -} -#endif -#ifdef BUILD_CONVERT_24_BGR_888 -void -evas_common_convert_rgba_to_24bpp_bgr_888(DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA8 *dst_ptr; - int x, y; - - dst_ptr = (DATA8 *)dst; - src_ptr = (DATA32 *)src; - - for (y = 0; y < h; y++) - { - for (x = 0; x < w; x++) - { - dst_ptr[2] = R_VAL(src_ptr); - dst_ptr[1] = G_VAL(src_ptr); - dst_ptr[0] = B_VAL(src_ptr); - src_ptr++; - dst_ptr+=3; - } - src_ptr += src_jump; - dst_ptr += (dst_jump * 3); - } - return; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_convert_rgb_24.h b/libraries/evas/src/lib/engines/common/evas_convert_rgb_24.h deleted file mode 100644 index bc114ca..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_rgb_24.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _EVAS_CONVERT_RGB_24_H -#define _EVAS_CONVERT_RGB_24_H - - -void evas_common_convert_rgba_to_24bpp_rgb_888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_24bpp_bgr_888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); - -void evas_common_convert_rgba_to_24bpp_rgb_666 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); - -#endif /* _EVAS_CONVERT_RGB_24_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_convert_rgb_32.c b/libraries/evas/src/lib/engines/common/evas_convert_rgb_32.c deleted file mode 100644 index 0401a4a..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_rgb_32.c +++ /dev/null @@ -1,625 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_rgb_32.h" - -#ifdef BUILD_CONVERT_32_RGB_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT0 -void -evas_common_convert_rgba_to_32bpp_rgb_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int y; - Gfx_Func_Copy func; - - dst_ptr = (DATA32 *)dst; - src_ptr = src; - - func = evas_common_draw_func_copy_get(w, 0); - - for (y = 0; y < h; y++) - { - func(src_ptr, dst_ptr, w); - src_ptr += w + src_jump; - dst_ptr += w + dst_jump; - } - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_RGB_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT180 -void -evas_common_convert_rgba_to_32bpp_rgb_8888_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_180(); - - *dst_ptr = *src_ptr; - - CONVERT_LOOP_END_ROT_180(); - return; -} -#endif -#endif - -#ifdef TILE_ROTATE -#define FAST_SIMPLE_ROTATE(suffix, pix_type) \ - static void \ - blt_rotated_90_trivial_##suffix(pix_type *dst, \ - int dst_stride, \ - const pix_type *src, \ - int src_stride, \ - int w, \ - int h) \ - { \ - int x, y; \ - for (y = 0; y < h; y++) \ - { \ - const pix_type *s = src + (h - y - 1); \ - pix_type *d = dst + (dst_stride * y); \ - for (x = 0; x < w; x++) \ - { \ - *d++ = *s; \ - s += src_stride; \ - } \ - } \ - } \ - static void \ - blt_rotated_270_trivial_##suffix(pix_type *dst, \ - int dst_stride, \ - const pix_type *src, \ - int src_stride, \ - int w, \ - int h) \ - { \ - int x, y; \ - for (y = 0; y < h; y++) \ - { \ - const pix_type *s = src + (src_stride * (w - 1)) + y; \ - pix_type *d = dst + (dst_stride * y); \ - for (x = 0; x < w; x++) \ - { \ - *d++ = *s; \ - s -= src_stride; \ - } \ - } \ - } \ - static void \ - blt_rotated_90_##suffix(pix_type *dst, \ - int dst_stride, \ - const pix_type *src, \ - int src_stride, \ - int w, \ - int h) \ - { \ - int x, leading_pixels = 0, trailing_pixels = 0; \ - const int TILE_SIZE = TILE_CACHE_LINE_SIZE / sizeof(pix_type); \ - if ((uintptr_t)dst & (TILE_CACHE_LINE_SIZE - 1)) \ - { \ - leading_pixels = TILE_SIZE - \ - (((uintptr_t)dst & (TILE_CACHE_LINE_SIZE - 1)) / sizeof(pix_type)); \ - if (leading_pixels > w) \ - leading_pixels = w; \ - blt_rotated_90_trivial_##suffix(dst, \ - dst_stride, \ - src, \ - src_stride, \ - leading_pixels, \ - h); \ - dst += leading_pixels; \ - src += leading_pixels * src_stride; \ - w -= leading_pixels; \ - } \ - if ((uintptr_t)(dst + w) & (TILE_CACHE_LINE_SIZE - 1)) \ - { \ - trailing_pixels = (((uintptr_t)(dst + w) & \ - (TILE_CACHE_LINE_SIZE - 1)) / sizeof(pix_type)); \ - if (trailing_pixels > w) \ - trailing_pixels = w; \ - w -= trailing_pixels; \ - } \ - for (x = 0; x < w; x += TILE_SIZE) \ - { \ - blt_rotated_90_trivial_##suffix(dst + x, \ - dst_stride, \ - src + (src_stride * x), \ - src_stride, \ - TILE_SIZE, \ - h); \ - } \ - if (trailing_pixels) \ - blt_rotated_90_trivial_##suffix(dst + w, \ - dst_stride, \ - src + (w * src_stride), \ - src_stride, \ - trailing_pixels, \ - h); \ - } \ - static void \ - blt_rotated_270_##suffix(pix_type *dst, \ - int dst_stride, \ - const pix_type *src, \ - int src_stride, \ - int w, \ - int h) \ - { \ - int x, leading_pixels = 0, trailing_pixels = 0; \ - const int TILE_SIZE = TILE_CACHE_LINE_SIZE / sizeof(pix_type); \ - if ((uintptr_t)dst & (TILE_CACHE_LINE_SIZE - 1)) \ - { \ - leading_pixels = TILE_SIZE - \ - (((uintptr_t)dst & (TILE_CACHE_LINE_SIZE - 1)) / sizeof(pix_type)); \ - if (leading_pixels > w) \ - leading_pixels = w; \ - blt_rotated_270_trivial_##suffix(dst, \ - dst_stride, \ - src + (src_stride * (w - leading_pixels)), \ - src_stride, \ - leading_pixels, \ - h); \ - dst += leading_pixels; \ - w -= leading_pixels; \ - } \ - if ((uintptr_t)(dst + w) & (TILE_CACHE_LINE_SIZE - 1)) \ - { \ - trailing_pixels = (((uintptr_t)(dst + w) & \ - (TILE_CACHE_LINE_SIZE - 1)) / sizeof(pix_type)); \ - if (trailing_pixels > w) \ - trailing_pixels = w; \ - w -= trailing_pixels; \ - src += trailing_pixels * src_stride; \ - } \ - for (x = 0; x < w; x += TILE_SIZE) \ - { \ - blt_rotated_270_trivial_##suffix(dst + x, \ - dst_stride, \ - src + (src_stride * (w - x - TILE_SIZE)), \ - src_stride, \ - TILE_SIZE, \ - h); \ - } \ - if (trailing_pixels) \ - blt_rotated_270_trivial_##suffix(dst + w, \ - dst_stride, \ - src - (trailing_pixels * src_stride), \ - src_stride, \ - trailing_pixels, \ - h); \ - } - -FAST_SIMPLE_ROTATE(8888, DATA8) -#endif - - -#ifdef BUILD_CONVERT_32_RGB_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT270 -void -evas_common_convert_rgba_to_32bpp_rgb_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ -#ifdef TILE_ROTATE - blt_rotated_270_8888((DATA8 *)dst, dst_jump+w, (const DATA8 *)src, src_jump+h, w, h) ; -#else - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_270(); - - *dst_ptr = *src_ptr; - - CONVERT_LOOP_END_ROT_270(); -#endif - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_RGB_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT90 -void -evas_common_convert_rgba_to_32bpp_rgb_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ -# ifndef BUILD_NEON -# ifdef TILE_ROTATE - blt_rotated_90_8888((DATA8 *)dst, dst_jump+w, (const DATA8 *)src, src_jump+h, w, h) ; -# else - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - CONVERT_LOOP_START_ROT_90(); - - *dst_ptr = *src_ptr; - - CONVERT_LOOP_END_ROT_90(); -# endif - -# else - -# ifdef TILE_ROTATE - blt_rotated_90_8888((DATA8 *)dst, dst_jump+w, (const DATA8 *)src, src_jump+h, w, h) ; -# else - if ((w & 1) || (h & 1)) - { - /* Rarely (if ever) if ever: so slow path is fine */ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - CONVERT_LOOP_START_ROT_90(); - - *dst_ptr = *src_ptr; - - CONVERT_LOOP_END_ROT_90(); - } - else - { -# define AP "convert_rgba32_rot_90_" - asm volatile ( - ".fpu neon \n\t" - " mov %[s1], %[src] \n\t" - " add %[s1], %[s1], %[h],lsl #2 \n\t" - " sub %[s1], #8 \n\t" - - " mov %[s2], %[src] \n\t" - " add %[s2], %[s2], %[h], lsl #3 \n\t" - " add %[s2], %[s2], %[sjmp], lsr #1 \n\t" - " sub %[s2], #8 \n\t" - - " mov %[d1], %[dst] \n\t" - - " add %[d2], %[d1], %[djmp] \n\t" - " add %[d2], %[d2], %[w], lsl #2 \n\t" - - " mov %[sadv], %[h], lsl #3 \n\t" - " add %[sadv], %[sadv], %[sjmp], lsl #1\n\t" - - " mov %[y], #0 \n\t" - " mov %[x], #0 \n\t" - AP"loop: \n\t" - " vld1.u32 d0, [%[s1]] \n\t" - " vld1.u32 d1, [%[s2]] \n\t" - " add %[x], #2 \n\t" - " add %[s1], %[sadv] \n\t" - " add %[s2], %[sadv] \n\t" - " vtrn.u32 d0, d1 \n\t" - " cmp %[x], %[w] \n\t" - " vst1.u32 d1, [%[d1]]! \n\t" - " vst1.u32 d0, [%[d2]]! \n\t" - " blt "AP"loop \n\t" - - " mov %[x], #0 \n\t" - " add %[d1], %[djmp] \n\t" - " add %[d1], %[d1], %[w], lsl #2 \n\t" - " add %[d2], %[djmp] \n\t" - " add %[d2], %[d2], %[w], lsl #2 \n\t" - - " mov %[s1], %[src] \n\t" - " add %[s1], %[s1], %[h], lsl #2 \n\t" - " sub %[s1], %[s1], %[y], lsl #2 \n\t" - " sub %[s1], #16 \n\t" - - " add %[s2], %[s1], %[h], lsl #2 \n\t" - " add %[s2], %[s2], %[sjmp], lsl #2 \n\t" - - " add %[y], #2 \n\t" - - " cmp %[y], %[h] \n\t" - " blt "AP"loop \n\t" - - : // Out - : [s1] "r" (1), - [s2] "r" (11), - [d1] "r" (2), - [d2] "r" (12), - [src] "r" (src), - [dst] "r" (dst), - [x] "r" (3), - [y] "r" (4), - [w] "r" (w), - [h] "r" (h), - [sadv] "r" (5), - [sjmp] "r" (src_jump * 4), - [djmp] "r" (dst_jump * 4 * 2) - : "d0", "d1", "memory", "cc"// Clober - - - ); - } -# undef AP -# endif -# endif - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_RGBX_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT0 -void -evas_common_convert_rgba_to_32bpp_rgbx_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_0(); - -// *dst_ptr = (R_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (B_VAL(src_ptr) << 8); - *dst_ptr = (*src_ptr << 8); - - CONVERT_LOOP_END_ROT_0(); - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_RGBX_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT180 -void -evas_common_convert_rgba_to_32bpp_rgbx_8888_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_180(); - -// *dst_ptr = (R_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (B_VAL(src_ptr) << 8); - *dst_ptr = (*src_ptr << 8); - - CONVERT_LOOP_END_ROT_180(); - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_RGBX_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT270 -void -evas_common_convert_rgba_to_32bpp_rgbx_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_270(); - -// *dst_ptr = (R_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (B_VAL(src_ptr) << 8); - *dst_ptr = (*src_ptr << 8); - - CONVERT_LOOP_END_ROT_270(); - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_RGBX_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT90 -void -evas_common_convert_rgba_to_32bpp_rgbx_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_90(); - -// *dst_ptr = (R_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (B_VAL(src_ptr) << 8); - *dst_ptr = (*src_ptr << 8); - - CONVERT_LOOP_END_ROT_90(); - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_BGR_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT0 -void -evas_common_convert_rgba_to_32bpp_bgr_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - *dst_ptr = (B_VAL(src_ptr) << 16) | (G_VAL(src_ptr) << 8) | (R_VAL(src_ptr)); - - CONVERT_LOOP_END_ROT_0(); - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_BGR_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT180 -void -evas_common_convert_rgba_to_32bpp_bgr_8888_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_180(); - - *dst_ptr = (B_VAL(src_ptr) << 16) | (G_VAL(src_ptr) << 8) | (R_VAL(src_ptr)); - - CONVERT_LOOP_END_ROT_180(); - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_BGR_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT270 -void -evas_common_convert_rgba_to_32bpp_bgr_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_270(); - - *dst_ptr = (B_VAL(src_ptr) << 16) | (G_VAL(src_ptr) << 8) | (R_VAL(src_ptr)); - - CONVERT_LOOP_END_ROT_270(); - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_BGR_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT90 -void -evas_common_convert_rgba_to_32bpp_bgr_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_90(); - - *dst_ptr = (B_VAL(src_ptr) << 16) | (G_VAL(src_ptr) << 8) | (R_VAL(src_ptr)); - - CONVERT_LOOP_END_ROT_90(); - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_BGRX_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT0 -void -evas_common_convert_rgba_to_32bpp_bgrx_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - *dst_ptr = (B_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (R_VAL(src_ptr) << 8); - - CONVERT_LOOP_END_ROT_0(); - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_BGRX_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT180 -void -evas_common_convert_rgba_to_32bpp_bgrx_8888_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_180(); - - *dst_ptr = (B_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (R_VAL(src_ptr) << 8); - - CONVERT_LOOP_END_ROT_180(); - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_BGRX_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT270 -void -evas_common_convert_rgba_to_32bpp_bgrx_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_270(); - - *dst_ptr = (B_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (R_VAL(src_ptr) << 8); - - CONVERT_LOOP_END_ROT_270(); - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_BGRX_8888 -#ifdef BUILD_CONVERT_32_RGB_ROT90 -void -evas_common_convert_rgba_to_32bpp_bgrx_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_90(); - - *dst_ptr = (B_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (R_VAL(src_ptr) << 8); - - CONVERT_LOOP_END_ROT_90(); - return; -} -#endif -#endif - -#ifdef BUILD_CONVERT_32_RGB_666 -#ifdef BUILD_CONVERT_32_RGB_ROT0 -void -evas_common_convert_rgba_to_32bpp_rgb_666(DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) -{ - DATA32 *src_ptr; - DATA32 *dst_ptr; - int x, y; - - dst_ptr = (DATA32 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - *dst_ptr = - (((R_VAL(src_ptr) << 12) | (B_VAL(src_ptr) >> 2)) & 0x03f03f) | - ((G_VAL(src_ptr) << 4) & 0x000fc0); - - CONVERT_LOOP_END_ROT_0(); - return; -} -#endif -#endif - diff --git a/libraries/evas/src/lib/engines/common/evas_convert_rgb_32.h b/libraries/evas/src/lib/engines/common/evas_convert_rgb_32.h deleted file mode 100644 index 75595c7..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_rgb_32.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _EVAS_CONVERT_RGB_32_H -#define _EVAS_CONVERT_RGB_32_H - - -void evas_common_convert_rgba_to_32bpp_rgb_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_rgb_8888_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_rgb_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_rgb_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_rgbx_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_rgbx_8888_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_rgbx_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_rgbx_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_bgr_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_bgr_8888_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_bgr_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_bgr_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_bgrx_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_bgrx_8888_rot_180 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_bgrx_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_32bpp_bgrx_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); - -void evas_common_convert_rgba_to_32bpp_rgb_666 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); - -#endif /* _EVAS_CONVERT_RGB_32_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_convert_rgb_8.c b/libraries/evas/src/lib/engines/common/evas_convert_rgb_8.c deleted file mode 100644 index f69f398..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_rgb_8.c +++ /dev/null @@ -1,248 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_rgb_8.h" - -#ifdef USE_DITHER_44 -extern const DATA8 _evas_dither_44[4][4]; -#endif -#ifdef USE_DITHER_128128 -extern const DATA8 _evas_dither_128128[128][128]; -#endif - -#ifdef BUILD_CONVERT_8_RGB_332 -void evas_common_convert_rgba_to_8bpp_rgb_332_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA8 *dst_ptr; - int x, y; - DATA8 r, g, b; - DATA8 dith, dith2; - - dst_ptr = (DATA8 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - dith = DM_SHR(DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK], 3); - dith2 = DM_SHR(DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK], 2); -/* r = (R_VAL(src_ptr)) >> (8 - 3);*/ -/* g = (G_VAL(src_ptr)) >> (8 - 3);*/ -/* b = (B_VAL(src_ptr)) >> (8 - 2);*/ -/* if (((R_VAL(src_ptr) - (r << (8 - 3))) >= dith ) && (r < 0x07)) r++;*/ -/* if (((G_VAL(src_ptr) - (g << (8 - 3))) >= dith ) && (g < 0x07)) g++;*/ -/* if (((B_VAL(src_ptr) - (b << (8 - 2))) >= dith2) && (b < 0x03)) b++;*/ - r = (R_VAL(src_ptr)) * 7 / 255; - if (((R_VAL(src_ptr) - (r * 255 / 7)) >= dith ) && (r < 0x07)) r++; - g = (G_VAL(src_ptr)) * 7 / 255; - if (((G_VAL(src_ptr) - (g * 255 / 7)) >= dith ) && (g < 0x07)) g++; - b = (B_VAL(src_ptr)) * 3 / 255; - if (((B_VAL(src_ptr) - (b * 255 / 3)) >= dith2) && (b < 0x03)) b++; - - *dst_ptr = pal[(r << 5) | (g << 2) | (b)]; - - CONVERT_LOOP_END_ROT_0(); -} -#endif -#ifdef BUILD_CONVERT_8_RGB_666 -static DATA8 p_to_6[256]; -static DATA8 p_to_6_err[256]; - -void evas_common_convert_rgba_to_8bpp_rgb_666_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA8 *dst_ptr; - int x, y; - DATA8 r, g, b; - DATA8 dith; - static int tables_calcualted = 0; - - if (!tables_calcualted) - { - int i; - - tables_calcualted = 1; - for (i = 0; i < 256; i++) - p_to_6[i] = (i * 5) / 255; - for (i = 0; i < 256; i++) - p_to_6_err[i] = ((i * 5) - (p_to_6[i] * 255)) * DM_DIV / 255; - } - dst_ptr = (DATA8 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - r = p_to_6[(R_VAL(src_ptr))]; - g = p_to_6[(G_VAL(src_ptr))]; - b = p_to_6[(B_VAL(src_ptr))]; - dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK]; - if ((p_to_6_err[(R_VAL(src_ptr))] >= dith ) && (r < 5)) r++; - if ((p_to_6_err[(G_VAL(src_ptr))] >= dith ) && (g < 5)) g++; - if ((p_to_6_err[(B_VAL(src_ptr))] >= dith ) && (b < 5)) b++; - - *dst_ptr = pal[(r * 36) + (g * 6) + (b)]; - - CONVERT_LOOP_END_ROT_0(); -} -#endif -#ifdef BUILD_CONVERT_8_RGB_232 -void evas_common_convert_rgba_to_8bpp_rgb_232_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA8 *dst_ptr; - int x, y; - DATA8 r, g, b; - DATA8 dith, dith2; - - dst_ptr = (DATA8 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - dith = DM_SHR(DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK], 3); - dith2 = DM_SHR(DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK], 2); -/* r = (R_VAL(src_ptr)) >> (8 - 2);*/ -/* g = (G_VAL(src_ptr)) >> (8 - 3);*/ -/* b = (B_VAL(src_ptr)) >> (8 - 2);*/ -/* if (((R_VAL(src_ptr) - (r << (8 - 2))) >= dith2) && (r < 0x03)) r++;*/ -/* if (((G_VAL(src_ptr) - (g << (8 - 3))) >= dith ) && (g < 0x07)) g++;*/ -/* if (((B_VAL(src_ptr) - (b << (8 - 2))) >= dith2) && (b < 0x03)) b++;*/ - r = (R_VAL(src_ptr)) * 3 / 255; - if (((R_VAL(src_ptr) - (r * 255 / 3)) >= dith2) && (r < 0x03)) r++; - g = (G_VAL(src_ptr)) * 7 / 255; - if (((G_VAL(src_ptr) - (g * 255 / 7)) >= dith ) && (g < 0x07)) g++; - b = (B_VAL(src_ptr)) * 3 / 255; - if (((B_VAL(src_ptr) - (b * 255 / 3)) >= dith2) && (b < 0x03)) b++; - - *dst_ptr = pal[(r << 5) | (g << 2) | (b)]; - - CONVERT_LOOP_END_ROT_0(); -} -#endif -#ifdef BUILD_CONVERT_8_RGB_222 -void evas_common_convert_rgba_to_8bpp_rgb_222_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA8 *dst_ptr; - int x, y; - DATA8 r, g, b; - DATA8 dith; - - dst_ptr = (DATA8 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - dith = DM_SHR(DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK], 2); -/* r = (R_VAL(src_ptr)) >> (8 - 2);*/ -/* g = (G_VAL(src_ptr)) >> (8 - 2);*/ -/* b = (B_VAL(src_ptr)) >> (8 - 2);*/ -/* if (((R_VAL(src_ptr) - (r << (8 - 2))) >= dith ) && (r < 0x03)) r++;*/ -/* if (((G_VAL(src_ptr) - (g << (8 - 2))) >= dith ) && (g < 0x03)) g++;*/ -/* if (((B_VAL(src_ptr) - (b << (8 - 2))) >= dith ) && (b < 0x03)) b++;*/ - r = (R_VAL(src_ptr)) * 3 / 255; - if (((R_VAL(src_ptr) - (r * 255 / 3)) >= dith ) && (r < 0x03)) r++; - g = (G_VAL(src_ptr)) * 3 / 255; - if (((G_VAL(src_ptr) - (g * 255 / 3)) >= dith ) && (g < 0x03)) g++; - b = (B_VAL(src_ptr)) * 3 / 255; - if (((B_VAL(src_ptr) - (b * 255 / 3)) >= dith ) && (b < 0x03)) b++; - - *dst_ptr = pal[(r << 4) | (g << 2) | (b)]; - - CONVERT_LOOP_END_ROT_0(); -} -#endif -#ifdef BUILD_CONVERT_8_RGB_221 -void evas_common_convert_rgba_to_8bpp_rgb_221_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA8 *dst_ptr; - int x, y; - DATA8 r, g, b; - DATA8 dith, dith2; - - dst_ptr = (DATA8 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - dith = DM_SHR(DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK], 2); - dith2 = DM_SHR(DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK], 1); -/* r = (R_VAL(src_ptr)) >> (8 - 2);*/ -/* g = (G_VAL(src_ptr)) >> (8 - 2);*/ -/* b = (B_VAL(src_ptr)) >> (8 - 1);*/ -/* if (((R_VAL(src_ptr) - (r << (8 - 2))) >= dith ) && (r < 0x03)) r++;*/ -/* if (((G_VAL(src_ptr) - (g << (8 - 2))) >= dith ) && (g < 0x03)) g++;*/ -/* if (((B_VAL(src_ptr) - (b << (8 - 1))) >= dith2) && (b < 0x01)) b++;*/ - r = (R_VAL(src_ptr)) * 3 / 255; - if (((R_VAL(src_ptr) - (r * 255 / 3)) >= dith ) && (r < 0x03)) r++; - g = (G_VAL(src_ptr)) * 3 / 255; - if (((G_VAL(src_ptr) - (g * 255 / 3)) >= dith ) && (g < 0x03)) g++; - b = (B_VAL(src_ptr)) * 1 / 255; - if (((B_VAL(src_ptr) - (b * 255 / 1)) >= dith2) && (b < 0x01)) b++; - - *dst_ptr = pal[(r << 3) | (g << 1) | (b)]; - - CONVERT_LOOP_END_ROT_0(); -} -#endif -#ifdef BUILD_CONVERT_8_RGB_121 -void evas_common_convert_rgba_to_8bpp_rgb_121_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA8 *dst_ptr; - int x, y; - DATA8 r, g, b; - DATA8 dith, dith2; - - dst_ptr = (DATA8 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - dith = DM_SHR(DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK], 2); - dith2 = DM_SHR(DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK], 1); -/* r = (R_VAL(src_ptr)) >> (8 - 1);*/ -/* g = (G_VAL(src_ptr)) >> (8 - 2);*/ -/* b = (B_VAL(src_ptr)) >> (8 - 1);*/ -/* if (((R_VAL(src_ptr) - (r << (8 - 1))) >= dith2) && (r < 0x01)) r++;*/ -/* if (((G_VAL(src_ptr) - (g << (8 - 2))) >= dith ) && (g < 0x03)) g++;*/ -/* if (((B_VAL(src_ptr) - (b << (8 - 1))) >= dith2) && (b < 0x01)) b++;*/ - - r = (R_VAL(src_ptr)) * 1 / 255; - if (((R_VAL(src_ptr) - (r * 255 / 1)) >= dith2) && (r < 0x01)) r++; - g = (G_VAL(src_ptr)) * 3 / 255; - if (((G_VAL(src_ptr) - (g * 255 / 3)) >= dith ) && (g < 0x03)) g++; - b = (B_VAL(src_ptr)) * 1 / 255; - if (((B_VAL(src_ptr) - (b * 255 / 1)) >= dith2) && (b < 0x01)) b++; - - *dst_ptr = pal[(r << 3) | (g << 1) | (b)]; - - CONVERT_LOOP_END_ROT_0(); -} -#endif -#ifdef BUILD_CONVERT_8_RGB_111 -void evas_common_convert_rgba_to_8bpp_rgb_111_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) -{ - DATA32 *src_ptr; - DATA8 *dst_ptr; - int x, y; - DATA8 r, g, b; - DATA8 dith; - - dst_ptr = (DATA8 *)dst; - - CONVERT_LOOP_START_ROT_0(); - - dith = DM_SHR(DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK], 1); -/* r = (R_VAL(src_ptr)) >> (8 - 1);*/ -/* g = (G_VAL(src_ptr)) >> (8 - 1);*/ -/* b = (B_VAL(src_ptr)) >> (8 - 1);*/ -/* if (((R_VAL(src_ptr) - (r << (8 - 1))) >= dith ) && (r < 0x01)) r++;*/ -/* if (((G_VAL(src_ptr) - (g << (8 - 1))) >= dith ) && (g < 0x01)) g++;*/ -/* if (((B_VAL(src_ptr) - (b << (8 - 1))) >= dith ) && (b < 0x01)) b++;*/ - - r = (R_VAL(src_ptr)) * 1 / 255; - if (((R_VAL(src_ptr) - (r * 255 / 1)) >= dith ) && (r < 0x01)) r++; - g = (G_VAL(src_ptr)) * 1 / 255; - if (((G_VAL(src_ptr) - (g * 255 / 1)) >= dith ) && (g < 0x01)) g++; - b = (B_VAL(src_ptr)) * 1 / 255; - if (((B_VAL(src_ptr) - (b * 255 / 1)) >= dith ) && (b < 0x01)) b++; - - *dst_ptr = pal[(r << 2) | (g << 1) | (b)]; - - CONVERT_LOOP_END_ROT_0(); -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_convert_rgb_8.h b/libraries/evas/src/lib/engines/common/evas_convert_rgb_8.h deleted file mode 100644 index edb3a89..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_rgb_8.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _EVAS_CONVERT_RGB_8_H -#define _EVAS_CONVERT_RGB_8_H - - -void evas_common_convert_rgba_to_8bpp_rgb_332_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_8bpp_rgb_666_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_8bpp_rgb_232_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_8bpp_rgb_222_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_8bpp_rgb_221_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_8bpp_rgb_121_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); -void evas_common_convert_rgba_to_8bpp_rgb_111_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); - - -#endif /* _EVAS_CONVERT_RGB_8_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_convert_yuv.c b/libraries/evas/src/lib/engines/common/evas_convert_yuv.c deleted file mode 100644 index 000cb01..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_yuv.c +++ /dev/null @@ -1,1258 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_yuv.h" - -#if defined BUILD_MMX || defined BUILD_SSE -# include "evas_mmx.h" -#endif - -#if defined HAVE_ALTIVEC_H -# include -#ifdef CONFIG_DARWIN -#define AVV(x...) (x) -#else -#define AVV(x...) {x} -#endif - -#endif - -#ifdef BUILD_CONVERT_YUV - -static void _evas_yuv_init (void); -static void _evas_yv12torgb_sse (unsigned char **yuv, unsigned char *rgb, int w, int h); -static void _evas_yv12torgb_mmx (unsigned char **yuv, unsigned char *rgb, int w, int h); -#ifdef BUILD_ALTIVEC -static void _evas_yv12torgb_altivec(unsigned char **yuv, unsigned char *rgb, int w, int h); -static void _evas_yv12torgb_diz (unsigned char **yuv, unsigned char *rgb, int w, int h); -#endif -static void _evas_yv12torgb_raster (unsigned char **yuv, unsigned char *rgb, int w, int h); -static void _evas_yuy2torgb_raster (unsigned char **yuv, unsigned char *rgb, int w, int h); -static void _evas_nv12torgb_raster (unsigned char **yuv, unsigned char *rgb, int w, int h); -static void _evas_nv12tiledtorgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int h); - -#define CRV 104595 -#define CBU 132251 -#define CGU 25624 -#define CGV 53280 -#define YMUL 76283 -#define OFF 32768 -#define BITRES 16 - -/* calculation float resolution in bits */ -/* ie RES = 6 is 10.6 fixed point */ -/* RES = 8 is 8.8 fixed point */ -/* RES = 4 is 12.4 fixed point */ -/* NB: going above 6 will lead to overflow... :( */ -#define RES 6 - -#define RZ(i) (i >> (BITRES - RES)) -#define FOUR(i) {i, i, i, i} - -#if defined BUILD_MMX || defined BUILD_SSE -__attribute__ ((aligned (8))) const volatile unsigned short _const_crvcrv[4] = FOUR(RZ(CRV)); -__attribute__ ((aligned (8))) const volatile unsigned short _const_cbucbu[4] = FOUR(RZ(CBU)); -__attribute__ ((aligned (8))) const volatile unsigned short _const_cgucgu[4] = FOUR(RZ(CGU)); -__attribute__ ((aligned (8))) const volatile unsigned short _const_cgvcgv[4] = FOUR(RZ(CGV)); -__attribute__ ((aligned (8))) const volatile unsigned short _const_ymul [4] = FOUR(RZ(YMUL)); -__attribute__ ((aligned (8))) const volatile unsigned short _const_128 [4] = FOUR(128); -__attribute__ ((aligned (8))) const volatile unsigned short _const_32 [4] = FOUR(RZ(OFF)); -__attribute__ ((aligned (8))) const volatile unsigned short _const_16 [4] = FOUR(16); -__attribute__ ((aligned (8))) const volatile unsigned short _const_ff [4] = FOUR(-1); - -#define CONST_CRVCRV *_const_crvcrv -#define CONST_CBUCBU *_const_cbucbu -#define CONST_CGUCGU *_const_cgucgu -#define CONST_CGVCGV *_const_cgvcgv -#define CONST_YMUL *_const_ymul -#define CONST_128 *_const_128 -#define CONST_32 *_const_32 -#define CONST_16 *_const_16 -#define CONST_FF *_const_ff - -/* for C non aligned cleanup */ -const int _crv = RZ(CRV); /* 1.596 */ -const int _cbu = RZ(CBU); /* 2.018 */ -const int _cgu = RZ(CGU); /* 0.391 */ -const int _cgv = RZ(CGV); /* 0.813 */ - -#endif - -#ifdef BUILD_ALTIVEC -#ifdef __VEC__ -const vector unsigned short res = AVV(RES); -const vector signed short crv = AVV(RZ(CRV)); -const vector signed short cbu = AVV(RZ(CBU)); -const vector signed short cgu = AVV(RZ(CGU)); -const vector signed short cgv = AVV(RZ(CGV)); -const vector signed short ymul = AVV(RZ(YMUL)); -const vector signed short c128 = AVV(128); -const vector signed short c32 = AVV(RZ(OFF)); -const vector signed short c16 = AVV(16); -const vector unsigned char zero = AVV(0); -const vector signed short maxchar = AVV(255); -const vector unsigned char pickrg1 = AVV(0, 0x1, 0x11, 0, - 0, 0x3, 0x13, 0, - 0, 0x5, 0x15, 0, - 0, 0x7, 0x17, 0); -const vector unsigned char pickrg2 = AVV(0, 0x9, 0x19, 0, - 0, 0xb, 0x1b, 0, - 0, 0xd, 0x1d, 0, - 0, 0xf, 0x1f, 0); -const vector unsigned char pickrgb1 = AVV(0x3, 0x1, 0x2, 0x11, - 0x7, 0x5, 0x6, 0x13, - 0xb, 0x9, 0xa, 0x15, - 0xf, 0xd, 0xe, 0x17); -const vector unsigned char pickrgb2 = AVV(0x3, 0x1, 0x2, 0x19, - 0x7, 0x5, 0x6, 0x1b, - 0xb, 0x9, 0xa, 0x1d, - 0xf, 0xd, 0xe, 0x1f); -#endif -#endif - -#ifdef BUILD_C - -/* shortcut speedup lookup-tables */ -static short _v1164[256]; -static short _v1596[256]; -static short _v813[256]; -static short _v391[256]; -static short _v2018[256]; - -static unsigned char _clip_lut[1024]; -#define LUT_CLIP(i) ((_clip_lut+384)[(i)]) - -#define CMP_CLIP(i) ((i&256)? (~(i>>10)) : i); - -static int initted = 0; - -#endif - -void -evas_common_convert_yuv_420p_601_rgba(DATA8 **src, DATA8 *dst, int w, int h) -{ - int mmx, sse, sse2; - -#if defined BUILD_MMX || defined BUILD_SSE - evas_common_cpu_can_do(&mmx, &sse, &sse2); -#endif -#ifndef BUILD_SSE - sse = 0; - sse2 = 0; -#endif -#ifndef BUILD_MMX - mmx = 0; -#endif - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX2)) - _evas_yv12torgb_sse(src, dst, w, h); - else if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - _evas_yv12torgb_mmx(src, dst, w, h); -#ifdef BUILD_ALTIVEC - if (evas_common_cpu_has_feature(CPU_FEATURE_ALTIVEC)) - _evas_yv12torgb_altivec(src, dst, w, h); -#endif - else - { -#ifdef BUILD_C - if (!initted) _evas_yuv_init(); - initted = 1; - /* FIXME: diz may be faster sometimes */ - _evas_yv12torgb_raster(src, dst, w, h); -#endif - } -} - -/* Thanks to Diz for this code. i've munged it a little and turned it into */ -/* inline macros. I tried beating it with a different algorithm using MMX */ -/* but failed. So here we are. This is the fastest YUV->RGB i know of for */ -/* x86. It has an issue that it doesn't convert colours accurately so the */ -/* image looks a little "yellowy". This is a result of only 10.6 fixed point */ -/* resolution as opposed to 16.16 in the C code. This could be fixed by */ -/* processing half the number of pixels per cycle and going up to 32bits */ -/* per element during compute, but it would all but negate the speedup */ -/* from mmx I think :( It might be possible to use SSE and SSE2 here, but */ -/* I haven't tried yet. Let's see. */ - -/* NB: XviD has almost the same code in it's assembly YV12->RGB code. same */ -/* algorithm, same constants, same all over actually, except it actually */ -/* does a few extra memory accesses that this one doesn't, so in theory */ -/* this code should be faster. In the end it's all just an mmx version of */ -/* the reference implimentation done with fixed point math */ - -static void -_evas_yv12torgb_sse(unsigned char **yuv, unsigned char *rgb, int w, int h) -{ -#ifdef BUILD_SSE - int xx, yy; - register unsigned char *yp1, *up, *vp; - unsigned char *dp1; - - /* destination pointers */ - dp1 = rgb; - - for (yy = 0; yy < h; yy++) - { - /* plane pointers */ - yp1 = yuv[yy]; - up = yuv[h + (yy / 2)]; - vp = yuv[h + (h / 2) + (yy / 2)]; - for (xx = 0; xx < (w - 7); xx += 8) - { - movd_m2r(*up, mm3); - movd_m2r(*vp, mm2); - movq_m2r(*yp1, mm0); - - pxor_r2r(mm7, mm7); - punpcklbw_r2r(mm7, mm2); - punpcklbw_r2r(mm7, mm3); - - movq_r2r(mm0, mm1); - psrlw_i2r(8, mm0); - psllw_i2r(8, mm1); - psrlw_i2r(8, mm1); - - movq_m2r(CONST_16, mm4); - psubsw_r2r(mm4, mm0); - psubsw_r2r(mm4, mm1); - - movq_m2r(CONST_128, mm5); - psubsw_r2r(mm5, mm2); - psubsw_r2r(mm5, mm3); - - movq_m2r(CONST_YMUL, mm4); - pmullw_r2r(mm4, mm0); - pmullw_r2r(mm4, mm1); - - movq_m2r(CONST_CRVCRV, mm7); - pmullw_r2r(mm3, mm7); - movq_m2r(CONST_CBUCBU, mm6); - pmullw_r2r(mm2, mm6); - movq_m2r(CONST_CGUCGU, mm5); - pmullw_r2r(mm2, mm5); - movq_m2r(CONST_CGVCGV, mm4); - pmullw_r2r(mm3, mm4); - - movq_r2r(mm0, mm2); - paddsw_r2r(mm7, mm2); - paddsw_r2r(mm1, mm7); - - psraw_i2r(RES, mm2); - psraw_i2r(RES, mm7); - packuswb_r2r(mm7, mm2); - - pxor_r2r(mm7, mm7); - movq_r2r(mm2, mm3); - punpckhbw_r2r(mm7, mm2); - punpcklbw_r2r(mm3, mm7); - por_r2r(mm7, mm2); - - movq_r2r(mm0, mm3); - psubsw_r2r(mm5, mm3); - psubsw_r2r(mm4, mm3); - paddsw_m2r(CONST_32, mm3); - - movq_r2r(mm1, mm7); - psubsw_r2r(mm5, mm7); - psubsw_r2r(mm4, mm7); - paddsw_m2r(CONST_32, mm7); - - psraw_i2r(RES, mm3); - psraw_i2r(RES, mm7); - packuswb_r2r(mm7, mm3); - - pxor_r2r(mm7, mm7); - movq_r2r(mm3, mm4); - punpckhbw_r2r(mm7, mm3); - punpcklbw_r2r(mm4, mm7); - por_r2r(mm7, mm3); - - movq_m2r(CONST_32, mm4); - paddsw_r2r(mm6, mm0); - paddsw_r2r(mm6, mm1); - paddsw_r2r(mm4, mm0); - paddsw_r2r(mm4, mm1); - psraw_i2r(RES, mm0); - psraw_i2r(RES, mm1); - packuswb_r2r(mm1, mm0); - - pxor_r2r(mm7, mm7); - movq_r2r(mm0, mm5); - punpckhbw_r2r(mm7, mm0); - punpcklbw_r2r(mm5, mm7); - por_r2r(mm7, mm0); - - movq_m2r(CONST_FF, mm1); - movq_r2r(mm0, mm5); - movq_r2r(mm3, mm6); - movq_r2r(mm2, mm7); - punpckhbw_r2r(mm3, mm2); - punpcklbw_r2r(mm6, mm7); - punpckhbw_r2r(mm1, mm0); - punpcklbw_r2r(mm1, mm5); - - movq_r2r(mm7, mm1); - punpckhwd_r2r(mm5, mm7); - punpcklwd_r2r(mm5, mm1); - - movq_r2r(mm2, mm4); - punpckhwd_r2r(mm0, mm2); - punpcklwd_r2r(mm0, mm4); - - movntq_r2m(mm1, *(dp1)); - movntq_r2m(mm7, *(dp1 + 8)); - movntq_r2m(mm4, *(dp1 + 16)); - movntq_r2m(mm2, *(dp1 + 24)); - - yp1 += 8; - up += 4; - vp += 4; - dp1 += 8 * 4; - } - /* cleanup pixles that arent a multiple of 8 pixels wide */ - if (xx < w) - { - int y, u, v, r, g, b; - - for (; xx < w; xx += 2) - { - u = (*up++) - 128; - v = (*vp++) - 128; - - y = RZ(YMUL) * ((*yp1++) - 16); - r = LUT_CLIP((y + (_crv * v)) >> RES); - g = LUT_CLIP((y - (_cgu * u) - (_cgv * v) + RZ(OFF)) >> RES); - b = LUT_CLIP((y + (_cbu * u) + RZ(OFF)) >> RES); - *((DATA32 *) dp1) = 0xff000000 + RGB_JOIN(r,g,b); - - dp1 += 4; - - y = RZ(YMUL) * ((*yp1++) - 16); - r = LUT_CLIP((y + (_crv * v)) >> RES); - g = LUT_CLIP((y - (_cgu * u) - (_cgv * v) + RZ(OFF)) >> RES); - b = LUT_CLIP((y + (_cbu * u) + RZ(OFF)) >> RES); - *((DATA32 *) dp1) = 0xff000000 + RGB_JOIN(r,g,b); - - dp1 += 4; - } - } - } - emms(); -#else - _evas_yv12torgb_mmx(yuv, rgb, w, h); -#endif -} - -static void -_evas_yv12torgb_mmx(unsigned char **yuv, unsigned char *rgb, int w, int h) -{ -#ifdef BUILD_MMX - int xx, yy; - register unsigned char *yp1, *up, *vp; - unsigned char *dp1; - - /* destination pointers */ - dp1 = rgb; - - for (yy = 0; yy < h; yy++) - { - /* plane pointers */ - yp1 = yuv[yy]; - up = yuv[h + (yy / 2)]; - vp = yuv[h + (h / 2) + (yy / 2)]; - for (xx = 0; xx < (w - 7); xx += 8) - { - movd_m2r(*up, mm3); - movd_m2r(*vp, mm2); - movq_m2r(*yp1, mm0); - - pxor_r2r(mm7, mm7); - punpcklbw_r2r(mm7, mm2); - punpcklbw_r2r(mm7, mm3); - - movq_r2r(mm0, mm1); - psrlw_i2r(8, mm0); - psllw_i2r(8, mm1); - psrlw_i2r(8, mm1); - - movq_m2r(CONST_16, mm4); - psubsw_r2r(mm4, mm0); - psubsw_r2r(mm4, mm1); - - movq_m2r(CONST_128, mm5); - psubsw_r2r(mm5, mm2); - psubsw_r2r(mm5, mm3); - - movq_m2r(CONST_YMUL, mm4); - pmullw_r2r(mm4, mm0); - pmullw_r2r(mm4, mm1); - - movq_m2r(CONST_CRVCRV, mm7); - pmullw_r2r(mm3, mm7); - movq_m2r(CONST_CBUCBU, mm6); - pmullw_r2r(mm2, mm6); - movq_m2r(CONST_CGUCGU, mm5); - pmullw_r2r(mm2, mm5); - movq_m2r(CONST_CGVCGV, mm4); - pmullw_r2r(mm3, mm4); - - movq_r2r(mm0, mm2); - paddsw_r2r(mm7, mm2); - paddsw_r2r(mm1, mm7); - - psraw_i2r(RES, mm2); - psraw_i2r(RES, mm7); - packuswb_r2r(mm7, mm2); - - pxor_r2r(mm7, mm7); - movq_r2r(mm2, mm3); - punpckhbw_r2r(mm7, mm2); - punpcklbw_r2r(mm3, mm7); - por_r2r(mm7, mm2); - - movq_r2r(mm0, mm3); - psubsw_r2r(mm5, mm3); - psubsw_r2r(mm4, mm3); - paddsw_m2r(CONST_32, mm3); - - movq_r2r(mm1, mm7); - psubsw_r2r(mm5, mm7); - psubsw_r2r(mm4, mm7); - paddsw_m2r(CONST_32, mm7); - - psraw_i2r(RES, mm3); - psraw_i2r(RES, mm7); - packuswb_r2r(mm7, mm3); - - pxor_r2r(mm7, mm7); - movq_r2r(mm3, mm4); - punpckhbw_r2r(mm7, mm3); - punpcklbw_r2r(mm4, mm7); - por_r2r(mm7, mm3); - - movq_m2r(CONST_32, mm4); - paddsw_r2r(mm6, mm0); - paddsw_r2r(mm6, mm1); - paddsw_r2r(mm4, mm0); - paddsw_r2r(mm4, mm1); - psraw_i2r(RES, mm0); - psraw_i2r(RES, mm1); - packuswb_r2r(mm1, mm0); - - pxor_r2r(mm7, mm7); - movq_r2r(mm0, mm5); - punpckhbw_r2r(mm7, mm0); - punpcklbw_r2r(mm5, mm7); - por_r2r(mm7, mm0); - - movq_m2r(CONST_FF, mm1); - movq_r2r(mm0, mm5); - movq_r2r(mm3, mm6); - movq_r2r(mm2, mm7); - punpckhbw_r2r(mm3, mm2); - punpcklbw_r2r(mm6, mm7); - punpckhbw_r2r(mm1, mm0); - punpcklbw_r2r(mm1, mm5); - - movq_r2r(mm7, mm1); - punpckhwd_r2r(mm5, mm7); - punpcklwd_r2r(mm5, mm1); - - movq_r2r(mm2, mm4); - punpckhwd_r2r(mm0, mm2); - punpcklwd_r2r(mm0, mm4); - - movq_r2m(mm1, *(dp1)); - movq_r2m(mm7, *(dp1 + 8)); - movq_r2m(mm4, *(dp1 + 16)); - movq_r2m(mm2, *(dp1 + 24)); - - yp1 += 8; - up += 4; - vp += 4; - dp1 += 8 * 4; - } - /* cleanup pixles that arent a multiple of 8 pixels wide */ - if (xx < w) - { - int y, u, v, r, g, b; - - for (; xx < w; xx += 2) - { - u = (*up++) - 128; - v = (*vp++) - 128; - - y = RZ(YMUL) * ((*yp1++) - 16); - r = LUT_CLIP((y + (_crv * v)) >> RES); - g = LUT_CLIP((y - (_cgu * u) - (_cgv * v) + RZ(OFF)) >> RES); - b = LUT_CLIP((y + (_cbu * u) + RZ(OFF)) >> RES); - *((DATA32 *) dp1) = 0xff000000 + RGB_JOIN(r,g,b); - - dp1 += 4; - - y = RZ(YMUL) * ((*yp1++) - 16); - r = LUT_CLIP((y + (_crv * v)) >> RES); - g = LUT_CLIP((y - (_cgu * u) - (_cgv * v) + RZ(OFF)) >> RES); - b = LUT_CLIP((y + (_cbu * u) + RZ(OFF)) >> RES); - *((DATA32 *) dp1) = 0xff000000 + RGB_JOIN(r,g,b); - - dp1 += 4; - } - } - } - emms(); -#else - _evas_yv12torgb_raster(yuv, rgb, w, h); -#endif -} - -#ifdef BUILD_ALTIVEC -static void -_evas_yv12torgb_altivec(unsigned char **yuv, unsigned char *rgb, int w, int h) -{ -#ifdef __VEC__ - int xx, yy; - int w2, h2; - unsigned char *yp1, *yp2, *up, *vp; - unsigned char *dp1, *dp2; - vector signed short y, u, v; - vector signed short r, g, b; - vector signed short tmp1, tmp2, tmp3; - vector unsigned char yperm, uperm, vperm, rgb1, rgb2; - vector unsigned char alpha; - - /* handy halved w & h */ - w2 = w / 2; - h2 = h / 2; - /* plane pointers */ - yp1 = yuv; - yp2 = yuv + w; - up = yuv + (w * h); - vp = up + (w2 * h2); - /* destination pointers */ - dp1 = rgb; - dp2 = rgb + (w * 4); - - alpha = vec_mergeh((vector unsigned char)AVV(255), zero); - alpha = (vector unsigned char)vec_mergeh((vector unsigned short)alpha, - (vector unsigned short)zero); - - for (yy = 0; yy < h2; yy++) - { - for (xx = 0; xx < w2; xx += 4) - { -/* Cycles */ - /* - * Load 4 y and 4 u & v pixels for the 8x2 pixel block. - */ -/* 3 */ tmp3 = (vector signed short)vec_lde(0, (unsigned int *)yp1); -/* 3 */ tmp1 = (vector signed short)vec_lde(0, (unsigned int *)up); -/* 3 */ tmp2 = (vector signed short)vec_lde(0, (unsigned int *)vp); - - /* Prepare for aligning the data in their vectors */ -/* 3 */ yperm = vec_lvsl(0, yp1); -/* 3 */ uperm = vec_lvsl(0, up); -/* 3 */ vperm = vec_lvsl(0, vp); - yp1 += 4; - - /* Save y and load the next 4 y pixels for a total of 8 */ -/* 2 */ y = vec_perm(tmp3, tmp3, yperm); -/* 3 */ tmp3 = (vector signed short)vec_lde(0, (unsigned int *)yp1); - - /* Setup and calculate the 4 u pixels */ -/* 2 */ tmp1 = vec_perm(tmp1, tmp1, uperm); -/* 2 */ tmp2 = vec_perm(tmp2, tmp2, vperm); - - /* Avoid dependency stalls on yperm and calculate the 4 u values */ -/* 3 */ yperm = vec_lvsr(12, yp1); -/* 1 */ tmp1 = (vector signed short)vec_mergeh((vector unsigned char)tmp1, - (vector unsigned char)tmp1); -/* 1 */ u = (vector signed short)vec_mergeh(zero, - (vector unsigned char)tmp1); - -/* 1 */ u = vec_sub(u, c128); -/* 2 */ tmp3 = vec_perm(tmp3, tmp3, yperm); - - /* Setup and calculate the 4 v values */ -/* 1 */ tmp2 = (vector signed short)vec_mergeh((vector unsigned char)tmp2, - (vector unsigned char)tmp2); -/* 1 */ v = (vector signed short)vec_mergeh(zero, - (vector unsigned char)tmp2); -/* 4 */ tmp2 = vec_mladd(cgu, u, (vector signed short)zero); -/* 1 */ v = vec_sub(v, c128); - - /* Move the data into y and start loading the next 4 pixels */ -/* 1 */ y = (vector signed short)vec_mergeh(zero, - (vector unsigned char)y); -/* 1 */ tmp3 = (vector signed short)vec_mergeh(zero, - (vector unsigned char)tmp3); -/* 1 */ y = vec_or(y, tmp3); - - /* Finish calculating y */ -/* 1 */ y = vec_sub(y, c16); -/* 4 */ y = vec_mladd(ymul, y, (vector signed short)zero); - - /* Perform non-dependent multiplies first. */ -/* 4 */ tmp1 = vec_mladd(crv, v, y); -/* 4 */ tmp2 = vec_mladd(cgv, v, tmp2); -/* 4 */ tmp3 = vec_mladd(cbu, u, y); - - /* Calculate rgb values */ -/* 1 */ r = vec_sra(tmp1, res); - -/* 1 */ tmp2 = vec_sub(y, tmp2); -/* 1 */ tmp2 = vec_add(tmp2, c32); -/* 1 */ g = vec_sra(tmp2, res); - -/* 1 */ tmp3 = vec_add(tmp3, c32); -/* 1 */ b = vec_sra(tmp3, res); - - /* Bound to 0 <= x <= 255 */ -/* 1 */ r = vec_min(r, maxchar); -/* 1 */ g = vec_min(g, maxchar); -/* 1 */ b = vec_min(b, maxchar); -/* 1 */ r = vec_max(r, (vector signed short)zero); -/* 1 */ g = vec_max(g, (vector signed short)zero); -/* 1 */ b = vec_max(b, (vector signed short)zero); - - /* Combine r, g and b. */ -/* 2 */ rgb1 = vec_perm((vector unsigned char)r, (vector unsigned char)g, - pickrg1); -/* 2 */ rgb2 = vec_perm((vector unsigned char)r, (vector unsigned char)g, - pickrg2); - -/* 2 */ rgb1 = vec_perm(rgb1, (vector unsigned char)b, pickrgb1); -/* 2 */ rgb2 = vec_perm(rgb2, (vector unsigned char)b, pickrgb2); - -/* 1 */ rgb1 = vec_or(alpha, rgb1); -/* 1 */ rgb2 = vec_or(alpha, rgb2); - -/* 3 */ vec_stl(rgb1, 0, dp1); - dp1 += 16; -/* 3 */ vec_stl(rgb2, 0, dp1); - - /* - * Begin the second row calculations - */ - - /* - * Load 4 y pixels for the 8x2 pixel block. - */ -/* 3 */ yperm = vec_lvsl(0, yp2); -/* 3 */ tmp3 = (vector signed short)vec_lde(0, (unsigned int *)yp2); - yp2 += 4; - - /* Save y and load the next 4 y pixels for a total of 8 */ -/* 2 */ y = vec_perm(tmp3, tmp3, yperm); -/* 3 */ yperm = vec_lvsr(12, yp2); -/* 3 */ tmp3 = (vector signed short)vec_lde(0, (unsigned int *)yp2); -/* 1 */ y = (vector signed short)vec_mergeh(zero, - (vector unsigned char)y); - - /* Avoid dependency stalls on yperm */ -/* 2 */ tmp3 = vec_perm(tmp3, tmp3, yperm); -/* 1 */ tmp3 = (vector signed short)vec_mergeh(zero, - (vector unsigned char)tmp3); -/* 1 */ y = vec_or(y, tmp3); - - /* Start the calculation for g */ -/* 4 */ tmp2 = vec_mladd(cgu, u, (vector signed short)zero); - - /* Finish calculating y */ -/* 1 */ y = vec_sub(y, c16); -/* 4 */ y = vec_mladd(ymul, y, (vector signed short)zero); - - /* Perform non-dependent multiplies first. */ -/* 4 */ tmp2 = vec_mladd(cgv, v, tmp2); -/* 4 */ tmp1 = vec_mladd(crv, v, y); -/* 4 */ tmp3 = vec_mladd(cbu, u, y); - - /* Calculate rgb values */ -/* 1 */ r = vec_sra(tmp1, res); - -/* 1 */ tmp2 = vec_sub(y, tmp2); -/* 1 */ tmp2 = vec_add(tmp2, c32); -/* 1 */ g = vec_sra(tmp2, res); - -/* 1 */ tmp3 = vec_add(tmp3, c32); -/* 1 */ b = vec_sra(tmp3, res); - - /* Bound to 0 <= x <= 255 */ -/* 1 */ r = vec_min(r, maxchar); -/* 1 */ g = vec_min(g, maxchar); -/* 1 */ b = vec_min(b, maxchar); -/* 1 */ r = vec_max(r, (vector signed short)zero); -/* 1 */ g = vec_max(g, (vector signed short)zero); -/* 1 */ b = vec_max(b, (vector signed short)zero); - - /* Combine r, g and b. */ -/* 2 */ rgb1 = vec_perm((vector unsigned char)r, (vector unsigned char)g, - pickrg1); -/* 2 */ rgb2 = vec_perm((vector unsigned char)r, (vector unsigned char)g, - pickrg2); - -/* 2 */ rgb1 = vec_perm(rgb1, (vector unsigned char)b, pickrgb1); -/* 2 */ rgb2 = vec_perm(rgb2, (vector unsigned char)b, pickrgb2); - -/* 1 */ rgb1 = vec_or(alpha, rgb1); -/* 1 */ rgb2 = vec_or(alpha, rgb2); - -/* 3 */ vec_stl(rgb1, 0, dp2); - dp2 += 16; -/* 3 */ vec_stl(rgb2, 0, dp2); - - /* Increment the YUV data pointers to the next set of pixels. */ - yp1 += 4; - yp2 += 4; - up += 4; - vp += 4; - - /* Move the destination pointers to the next set of pixels. */ - dp1 += 16; - dp2 += 16; - } - - /* jump down one line since we are doing 2 at once */ - yp1 += w; - yp2 += w; - dp1 += (w * 4); - dp2 += (w * 4); - } -#else - _evas_yv12torgb_diz(yuv, rgb, w, h); -#endif -} -#endif - -static void -_evas_yuv_init(void) -{ -#ifdef BUILD_C - int i; - - for (i = 0; i < 256; i++) - { - _v1164[i] = (int)(((float)(i - 16 )) * 1.164); - - _v1596[i] = (int)(((float)(i - 128)) * 1.596); - _v813[i] = (int)(((float)(i - 128)) * 0.813); - - _v391[i] = (int)(((float)(i - 128)) * 0.391); - _v2018[i] = (int)(((float)(i - 128)) * 2.018); - } - - for (i = -384; i < 640; i++) - { - _clip_lut[i+384] = i < 0 ? 0 : (i > 255) ? 255 : i; - } -#endif -} - -#ifdef BUILD_ALTIVEC -static void -_evas_yv12torgb_diz(unsigned char **yuv, unsigned char *rgb, int w, int h) -{ -#ifdef BUILD_C - int xx, yy; - int y, u, v, r, g, b; - unsigned char *yp1, *yp2, *up, *vp; - unsigned char *dp1, *dp2; - int crv, cbu, cgu, cgv; - - /* destination pointers */ - dp1 = rgb; - dp2 = rgb + (w * 4); - - crv = CRV; /* 1.596 */ - cbu = CBU; /* 2.018 */ - cgu = CGU; /* 0.391 */ - cgv = CGV; /* 0.813 */ - - for (yy = 0; yy < h; yy += 2) - { - /* plane pointers */ - yp1 = yuv[yy]; - yp2 = yuv[yy + 1]; - up = yuv[h + (yy / 2)]; - vp = yuv[h + (h / 2) + (yy / 2)]; - for (xx = 0; xx < w; xx += 2) - { - /* collect u & v for 2x2 pixel block */ - u = (*up++) - 128; - v = (*vp++) - 128; - - /* do the top 2 pixels of the 2x2 block which shared u & v */ - /* yuv to rgb */ - y = YMUL * ((*yp1++) - 16); - r = LUT_CLIP((y + (crv * v)) >> 16); - g = LUT_CLIP((y - (cgu * u) - (cgv * v) + OFF) >>16); - b = LUT_CLIP((y + (cbu * u) + OFF) >> 16); - *((DATA32 *) dp1) = 0xff000000 + RGB_JOIN(r,g,b); - - dp1 += 4; - - /* yuv to rgb */ - y = YMUL * ((*yp1++) - 16); - r = LUT_CLIP((y + (crv * v)) >> 16); - g = LUT_CLIP((y - (cgu * u) - (cgv * v) + OFF) >>16); - b = LUT_CLIP((y + (cbu * u) + OFF) >> 16); - *((DATA32 *) dp1) = 0xff000000 + RGB_JOIN(r,g,b); - - dp1 += 4; - - /* do the bottom 2 pixels */ - /* yuv to rgb */ - y = YMUL * ((*yp2++) - 16); - r = LUT_CLIP((y + (crv * v)) >> 16); - g = LUT_CLIP((y - (cgu * u) - (cgv * v) + OFF) >>16); - b = LUT_CLIP((y + (cbu * u) + OFF) >> 16); - *((DATA32 *) dp2) = 0xff000000 + RGB_JOIN(r,g,b); - - dp2 += 4; - - /* yuv to rgb */ - y = YMUL * ((*yp2++) - 16); - r = LUT_CLIP((y + (crv * v)) >> 16); - g = LUT_CLIP((y - (cgu * u) - (cgv * v) + OFF) >>16); - b = LUT_CLIP((y + (cbu * u) + OFF) >> 16); - *((DATA32 *) dp2) = 0xff000000 + RGB_JOIN(r,g,b); - - dp2 += 4; - } - /* jump down one line since we are doing 2 at once */ - dp1 += (w * 4); - dp2 += (w * 4); - } -#endif -} -#endif - -static void -_evas_yv12torgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int h) -{ -#ifdef BUILD_C - int xx, yy; - int y, u, v; - unsigned char *yp1, *yp2, *up, *vp; - unsigned char *dp1, *dp2; - - /* destination pointers */ - dp1 = rgb; - dp2 = rgb + (w * 4); - - for (yy = 0; yy < h; yy += 2) - { - /* plane pointers */ - yp1 = yuv[yy]; - yp2 = yuv[yy + 1]; - up = yuv[h + (yy / 2)]; - vp = yuv[h + (h / 2) + (yy / 2)]; - for (xx = 0; xx < w; xx += 2) - { - int vmu; - - /* collect u & v for 2x2 pixel block */ - u = *up++; - v = *vp++; - - /* save lookups */ - vmu = _v813[v] + _v391[u]; - u = _v2018[u]; - v = _v1596[v]; - - /* do the top 2 pixels of the 2x2 block which shared u & v */ - /* yuv to rgb */ - y = _v1164[*yp1++]; - *((DATA32 *) dp1) = 0xff000000 + RGB_JOIN(LUT_CLIP(y + v), LUT_CLIP(y - vmu), LUT_CLIP(y + u)); - - dp1 += 4; - - /* yuv to rgb */ - y = _v1164[*yp1++]; - *((DATA32 *) dp1) = 0xff000000 + RGB_JOIN(LUT_CLIP(y + v), LUT_CLIP(y - vmu), LUT_CLIP(y + u)); - - dp1 += 4; - - /* do the bottom 2 pixels */ - /* yuv to rgb */ - y = _v1164[*yp2++]; - *((DATA32 *) dp2) = 0xff000000 + RGB_JOIN(LUT_CLIP(y + v), LUT_CLIP(y - vmu), LUT_CLIP(y + u)); - - dp2 += 4; - - /* yuv to rgb */ - y = _v1164[*yp2++]; - *((DATA32 *) dp2) = 0xff000000 + RGB_JOIN(LUT_CLIP(y + v), LUT_CLIP(y - vmu), LUT_CLIP(y + u)); - - dp2 += 4; - } - /* jump down one line since we are doing 2 at once */ - dp1 += (w * 4); - dp2 += (w * 4); - } -#endif -} - -void -evas_common_convert_yuv_422_601_rgba(DATA8 **src, DATA8 *dst, int w, int h) -{ -#ifdef BUILD_C - if (!initted) _evas_yuv_init(); - initted = 1; - _evas_yuy2torgb_raster(src, dst, w, h); -#endif -} - -void -evas_common_convert_yuv_420_601_rgba(DATA8 **src, DATA8 *dst, int w, int h) -{ -#ifdef BUILD_C - if (!initted) _evas_yuv_init(); - initted = 1; - _evas_nv12torgb_raster(src, dst, w, h); -#endif -} - -void -evas_common_convert_yuv_420T_601_rgba(DATA8 **src, DATA8 *dst, int w, int h) -{ -#ifdef BUILD_C - if (initted) _evas_yuv_init(); - initted = 1; - _evas_nv12tiledtorgb_raster(src, dst, w, h); -#endif -} - -static void -_evas_yuy2torgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int h) -{ -#ifdef BUILD_C - int xx, yy; - int y, u, v; - unsigned char *yp1, *yp2, *up, *vp; - unsigned char *dp1; - - dp1 = rgb; - - /* destination pointers */ - for (yy = 0; yy < h; yy++) - { - /* plane pointers */ - unsigned char *line; - - line = yuv[yy]; - yp1 = line + 0; - up = line + 1; - yp2 = line + 2; - vp = line + 3; - - for (xx = 0; xx < w; xx += 2) - { - int vmu; - - /* collect u & v for 2 pixels block */ - u = *up; - v = *vp; - - /* save lookups */ - vmu = _v813[v] + _v391[u]; - u = _v2018[u]; - v = _v1596[v]; - - /* do the top 2 pixels of the 2x2 block which shared u & v */ - /* yuv to rgb */ - y = _v1164[*yp1]; - *((DATA32 *) dp1) = 0xff000000 + RGB_JOIN(LUT_CLIP(y + v), LUT_CLIP(y - vmu), LUT_CLIP(y + u)); - - dp1 += 4; - - /* yuv to rgb */ - y = _v1164[*yp2]; - *((DATA32 *) dp1) = 0xff000000 + RGB_JOIN(LUT_CLIP(y + v), LUT_CLIP(y - vmu), LUT_CLIP(y + u)); - - dp1 += 4; - - yp1 += 4; yp2 += 4; up += 4; vp += 4; - } - } -#endif -} - -#ifdef BUILD_C -static inline void -_evas_yuv2rgb_420_raster(unsigned char *yp1, unsigned char *yp2, unsigned char *up, unsigned char *vp, - unsigned char *dp1, unsigned char *dp2) -{ - int y, u, v; - int vmu; - int rgb; - - /* collect u & v for 4 pixels block */ - u = *up; - v = *vp; - - /* save lookups */ -#ifdef MEM_BP - vmu = _v813[v] + _v391[u]; - u = _v2018[u]; - v = _v1596[v]; -#else - u -= 128; - v -= 128; - vmu = v * CGV + u * CGU; - u = u * CBU; - v = v * CRV; -#endif - - /* do the top 2 pixels of the 2x2 block which shared u & v */ - /* yuv to rgb */ -#ifdef MEM_BP - y = _v1164[*yp1]; - rgb = RGB_JOIN(LUT_CLIP(y + v), LUT_CLIP(y - vmu), LUT_CLIP(y + u)); -#else - y = (*yp1 - 16 ) * YMUL; - rgb = RGB_JOIN(LUT_CLIP(((y + v) >> 16)), - LUT_CLIP(((y - vmu + OFF) >> 16)), - LUT_CLIP(((y + u + OFF) >> 16))); -#endif - *((DATA32 *) dp1) = 0xff000000 + rgb; - - dp1 += 4; yp1++; - - /* yuv to rgb */ -#ifdef MEM_BP - y = _v1164[*yp1]; - rgb = RGB_JOIN(LUT_CLIP(y + v), LUT_CLIP(y - vmu), LUT_CLIP(y + u)); -#else - y = (*yp1 - 16 ) * YMUL; - rgb = RGB_JOIN(LUT_CLIP(((y + v) >> 16)), - LUT_CLIP(((y - vmu + OFF) >> 16)), - LUT_CLIP(((y + u + OFF) >> 16))); -#endif - *((DATA32 *) dp1) = 0xff000000 + rgb; - - /* do the bottom 2 pixels of the 2x2 block which shared u & v */ - /* yuv to rgb */ -#ifdef MEM_BP - y = _v1164[*yp2]; - rgb = RGB_JOIN(LUT_CLIP(y + v), LUT_CLIP(y - vmu), LUT_CLIP(y + u)); -#else - y = (*yp2 - 16 ) * YMUL; - rgb = RGB_JOIN(LUT_CLIP(((y + v) >> 16)), - LUT_CLIP(((y - vmu + OFF) >> 16)), - LUT_CLIP(((y + u + OFF) >> 16))); -#endif - *((DATA32 *) dp2) = 0xff000000 + rgb; - - dp2 += 4; yp2++; - - /* yuv to rgb */ -#ifdef MEM_BP - y = _v1164[*yp2]; - rgb = RGB_JOIN(LUT_CLIP(y + v), LUT_CLIP(y - vmu), LUT_CLIP(y + u)); -#else - y = (*yp2 - 16 ) * YMUL; - rgb = RGB_JOIN(LUT_CLIP(((y + v) >> 16)), - LUT_CLIP(((y - vmu + OFF) >> 16)), - LUT_CLIP(((y + u + OFF) >> 16))); -#endif - *((DATA32 *) dp2) = 0xff000000 + rgb; -} -#endif - -static void -_evas_nv12tiledtorgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int h) -{ -#ifdef BUILD_C - -#define HANDLE_MACROBLOCK(YP1, YP2, UP, VP, DP1, DP2) \ - { \ - int i; \ - int j; \ - \ - for (i = 0; i < 32; i += 2) \ - { \ - for (j = 0; j < 64; j += 2) \ - { \ - _evas_yuv2rgb_420_raster(YP1, YP2, UP, VP, DP1, DP2); \ - \ - /* the previous call just rendered 2 pixels per lines */ \ - DP1 += 8; DP2 += 8; \ - \ - /* and took for that 2 lines with 2 Y, 1 U and 1 V. Don't forget U & V are in the same plane */ \ - YP1 += 2; YP2 += 2; UP += 2; VP += 2; \ - } \ - \ - DP1 += sizeof (int) * ((w << 1) - 64); \ - DP2 += sizeof (int) * ((w << 1) - 64); \ - YP1 += 64; \ - YP2 += 64; \ - } \ - } - - /* One macro block is 32 lines of Y and 16 lines of UV */ - const int offset_value[2] = { 0, 64 * 16 }; - int mb_x, mb_y, mb_w, mb_h; - int base_h; - int uv_x, uv_step; - int stride; - - /* Idea iterate over each macroblock and convert each of them using _evas_nv12torgb_raster */ - - /* The layout of the Y macroblock order in RGB non tiled space : */ - /* --------------------------------------------------- */ - /* | 0 | 1 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | */ - /* --------------------------------------------------- */ - /* | 2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 18 | 19 | */ - /* --------------------------------------------------- */ - /* | 20 | 21 | 26 | 27 | 28 | 29 | 34 | 35 | 36 | 37 | */ - /* --------------------------------------------------- */ - /* | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 38 | 39 | */ - /* --------------------------------------------------- */ - /* | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | */ - /* --------------------------------------------------- */ - /* The layout of the UV macroblock order in the same RGB non tiled space : */ - /* --------------------------------------------------- */ - /* | | | | | | | | | | | */ - /* - 0 - 1 - 6 - 7 - 8 - 9 - 14 - 15 - 16 - 17 - */ - /* | | | | | | | | | | | */ - /* --------------------------------------------------- */ - /* | | | | | | | | | | | */ - /* - 2 - 3 - 4 - 5 - 10 - 11 - 12 - 13 - 18 - 19 - */ - /* | | | | | | | | | | | */ - /* --------------------------------------------------- */ - /* | | | | | | | | | | | */ - /* - 20 - 21 - 22 - 22 - 23 - 24 - 25 - 26 - 27 - 28 - */ - - /* the number of macroblock should be a multiple of 64x32 */ - mb_w = w / 64; - mb_h = h / 32; - - base_h = (mb_h >> 1) + (mb_h & 0x1); - stride = w * sizeof (int); - - uv_x = 0; - - /* In this format we linearize macroblock on two line to form a Z and it's invert */ - for (mb_y = 0; mb_y < (mb_h >> 1); mb_y++) - { - int step = 2; - int offset = 0; - int x = 0; - int rmb_x = 0; - int ry[2]; - - ry[0] = mb_y * 2 * 32 * stride; - ry[1] = ry[0] + 32 * stride; - - uv_step = (mb_y & 0x1) == 0 ? 4 : 0; - uv_x = (mb_y & 0x1) == 0 ? 0 : 2 * 64 * 32; - - for (mb_x = 0; mb_x < mb_w * 2; mb_x++, rmb_x += 64 * 32) - { - unsigned char *yp1, *yp2, *up, *vp; - unsigned char *dp1, *dp2; - - dp1 = rgb + x + ry[offset]; - dp2 = dp1 + stride; - - yp1 = yuv[mb_y] + rmb_x; - yp2 = yp1 + 64; - - /* UV plane is two time less bigger in pixel count, but it old two bytes each times */ - up = yuv[(mb_y >> 1) + base_h] + uv_x + offset_value[offset]; - vp = up + 1; - - HANDLE_MACROBLOCK(yp1, yp2, up, vp, dp1, dp2); - - step++; - if ((step & 0x3) == 0) - { - offset = 1 - offset; - x -= 64 * sizeof (int); - uv_x -= 64 * 32; - } - else - { - x += 64 * sizeof (int); - uv_x += 64 * 32; - } - - uv_step++; - if (uv_step == 8) - { - uv_step = 0; - uv_x += 4 * 64 * 32; - } - } - } - - if (mb_h & 0x1) - { - int x = 0; - int ry; - - ry = mb_y << 1; - - uv_step = 0; - uv_x = 0; - - for (mb_x = 0; mb_x < mb_w; mb_x++, x++, uv_x++) - { - unsigned char *yp1, *yp2, *up, *vp; - unsigned char *dp1, *dp2; - - dp1 = rgb + (x * 64 + (ry * 32 * w)) * sizeof (int); - dp2 = dp1 + sizeof (int) * w; - - yp1 = yuv[mb_y] + mb_x * 64 * 32; - yp2 = yp1 + 64; - - up = yuv[mb_y / 2 + base_h] + uv_x * 64 * 32; - vp = up + 1; - - HANDLE_MACROBLOCK(yp1, yp2, up, vp, dp1, dp2); - } - } -#endif -} - -static void -_evas_nv12torgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int h) -{ -#ifdef BUILD_C - int xx, yy; - unsigned char *yp1, *yp2, *up, *vp; - unsigned char *dp1; - unsigned char *dp2; - - dp1 = rgb; - dp2 = dp1 + sizeof (int) * w; - - for (yy = 0; yy < h; yy++) - { - yp1 = yuv[yy++]; - yp2 = yuv[yy]; - - up = yuv[h + (yy >> 1)]; - vp = up + 1; - - for (xx = 0; xx < w; xx += 2) - { - _evas_yuv2rgb_420_raster(yp1, yp2, up, vp, dp1, dp2); - - /* the previous call just rendered 2 pixels per lines */ - dp1 += 8; dp2 += 8; - - /* and took for that 2 lines with 2 Y, 1 U and 1 V. Don't forget U & V are in the same plane */ - yp1 += 2; yp2 += 2; up += 2; vp += 2; - } - - /* jump one line */ - dp1 += sizeof (int) * w; - dp2 += sizeof (int) * w; - yp1 += w; - yp2 += w; - } -#endif -} - -#endif - diff --git a/libraries/evas/src/lib/engines/common/evas_convert_yuv.h b/libraries/evas/src/lib/engines/common/evas_convert_yuv.h deleted file mode 100644 index b598807..0000000 --- a/libraries/evas/src/lib/engines/common/evas_convert_yuv.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _EVAS_CONVERT_YUV_H -#define _EVAS_CONVERT_YUV_H - -EAPI void evas_common_convert_yuv_420p_601_rgba (DATA8 **src, DATA8 *dst, int w, int h); -EAPI void evas_common_convert_yuv_422_601_rgba (DATA8 **src, DATA8 *dst, int w, int h); -EAPI void evas_common_convert_yuv_420_601_rgba (DATA8 **src, DATA8 *dst, int w, int h); -EAPI void evas_common_convert_yuv_420T_601_rgba (DATA8 **src, DATA8 *dst, int w, int h); - -#endif /* _EVAS_CONVERT_YUV_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_cpu.c b/libraries/evas/src/lib/engines/common/evas_cpu.c deleted file mode 100644 index fe90c5b..0000000 --- a/libraries/evas/src/lib/engines/common/evas_cpu.c +++ /dev/null @@ -1,274 +0,0 @@ -#include "evas_common.h" -#if defined BUILD_MMX || defined BUILD_SSE -#include "evas_mmx.h" -#endif - -#if defined BUILD_SSE3 -#include -#endif - -#if defined (HAVE_STRUCT_SIGACTION) && defined (HAVE_SIGLONGJMP) -#include -#include -#include - -static sigjmp_buf detect_buf; -#endif - -static int cpu_feature_mask = 0; - -#if defined (HAVE_STRUCT_SIGACTION) && defined (HAVE_SIGLONGJMP) -static void evas_common_cpu_catch_ill(int sig); -static void evas_common_cpu_catch_segv(int sig); - -static void -evas_common_cpu_catch_ill(int sig __UNUSED__) -{ - siglongjmp(detect_buf, 1); -} - -static void -evas_common_cpu_catch_segv(int sig __UNUSED__) -{ - siglongjmp(detect_buf, 1); -} -#endif - -void -evas_common_cpu_mmx_test(void) -{ -#ifdef BUILD_MMX - pxor_r2r(mm4, mm4); -#endif -} - -void -evas_common_cpu_mmx2_test(void) -{ -#ifdef BUILD_MMX - char data[16]; - - data[0] = 0; - mmx_r2m(movntq, mm0, data); - data[0] = 0; -#endif -} - -void -evas_common_cpu_sse_test(void) -{ -#ifdef BUILD_SSE - int blah[16]; - - movntq_r2m(mm0, blah); -#endif -} - -void evas_common_op_sse3_test(void); - -void -evas_common_cpu_sse3_test(void) -{ -#ifdef BUILD_SSE3 - evas_common_op_sse3_test(); -#endif -} - -#ifdef BUILD_ALTIVEC -void -evas_common_cpu_altivec_test(void) -{ -#ifdef __POWERPC__ -#ifdef __VEC__ - vector unsigned int zero; - - zero = vec_splat_u32(0); -#endif /* __VEC__ */ -#endif /* __POWERPC__ */ -} -#endif /* BUILD_ALTIVEC */ - -void -evas_common_cpu_neon_test(void) -{ -//#if defined(__ARM_ARCH__) && (__ARM_ARCH__ >= 70) -#ifdef BUILD_NEON - asm volatile ( - ".fpu neon \n\t" - "vqadd.u8 d0, d1, d0\n" - : /* Out */ - : /* In */ - : /* Clobbered */ - "d0", "d1" - ); -#endif -//#endif -} - -void -evas_common_cpu_vis_test(void) -{ -#ifdef __SPARC__ -#endif /* __SPARC__ */ -} - -int -evas_common_cpu_feature_test(void (*feature)(void)) -{ -#if defined (HAVE_STRUCT_SIGACTION) && defined (HAVE_SIGLONGJMP) - int enabled = 1; - struct sigaction act, oact, oact2; - - act.sa_handler = evas_common_cpu_catch_ill; - act.sa_flags = SA_RESTART; - sigemptyset(&act.sa_mask); - sigaction(SIGILL, &act, &oact); - - act.sa_handler = evas_common_cpu_catch_segv; - act.sa_flags = SA_RESTART; - sigemptyset(&act.sa_mask); - sigaction(SIGSEGV, &act, &oact2); - - if (sigsetjmp(detect_buf, 1)) - { - sigaction(SIGILL, &oact, NULL); - sigaction(SIGSEGV, &oact2, NULL); - return 0; - } - - feature(); - - sigaction(SIGILL, &oact, NULL); - sigaction(SIGSEGV, &oact2, NULL); - return enabled; -#else - return 0; -#endif -} - -EAPI void -evas_common_cpu_init(void) -{ - static int called = 0; - - if (called) return; - called = 1; -#ifdef BUILD_MMX - cpu_feature_mask |= CPU_FEATURE_MMX * - evas_common_cpu_feature_test(evas_common_cpu_mmx_test); - evas_common_cpu_end_opt(); - if (getenv("EVAS_CPU_NO_MMX")) - cpu_feature_mask &= ~CPU_FEATURE_MMX; - cpu_feature_mask |= CPU_FEATURE_MMX2 * - evas_common_cpu_feature_test(evas_common_cpu_mmx2_test); - evas_common_cpu_end_opt(); - if (getenv("EVAS_CPU_NO_MMX2")) - cpu_feature_mask &= ~CPU_FEATURE_MMX2; -#ifdef BUILD_SSE - cpu_feature_mask |= CPU_FEATURE_SSE * - evas_common_cpu_feature_test(evas_common_cpu_sse_test); - evas_common_cpu_end_opt(); - if (getenv("EVAS_CPU_NO_SSE")) - cpu_feature_mask &= ~CPU_FEATURE_SSE; -#ifdef BUILD_SSE3 - cpu_feature_mask |= CPU_FEATURE_SSE3 * - evas_common_cpu_feature_test(evas_common_cpu_sse3_test); - evas_common_cpu_end_opt(); - if (getenv("EVAS_CPU_NO_SSE3")) - cpu_feature_mask &= ~CPU_FEATURE_SSE3; -#endif /* BUILD_SSE3 */ -#endif /* BUILD_SSE */ -#endif /* BUILD_MMX */ -#ifdef BUILD_ALTIVEC -#ifdef __POWERPC__ -#ifdef __VEC__ - cpu_feature_mask |= CPU_FEATURE_ALTIVEC * - evas_common_cpu_feature_test(evas_common_cpu_altivec_test); - evas_common_cpu_end_opt(); - if (getenv("EVAS_CPU_NO_ALTIVEC")) - cpu_feature_mask &= ~CPU_FEATURE_ALTIVEC; -#endif /* __VEC__ */ -#endif /* __POWERPC__ */ -#endif /* BUILD_ALTIVEC */ -#ifdef __SPARC__ - cpu_feature_mask |= CPU_FEATURE_VIS * - evas_common_cpu_feature_test(evas_common_cpu_vis_test); - evas_common_cpu_end_opt(); - if (getenv("EVAS_CPU_NO_VIS")) - cpu_feature_mask &= ~CPU_FEATURE_VIS; -#endif /* __SPARC__ */ -#if defined(__ARM_ARCH__) -#ifdef BUILD_NEON - cpu_feature_mask |= CPU_FEATURE_NEON * - evas_common_cpu_feature_test(evas_common_cpu_neon_test); - evas_common_cpu_end_opt(); - if (getenv("EVAS_CPU_NO_NEON")) - cpu_feature_mask &= ~CPU_FEATURE_NEON; -#endif -#endif -} - -int -evas_common_cpu_has_feature(unsigned int feature) -{ - return (cpu_feature_mask & feature); -} - -int -evas_common_cpu_have_cpuid(void) -{ - return 0; -/* -#ifdef BUILD_MMX - unsigned int have_cpu_id; - - have_cpu_id = 0; - have_cpuid(have_cpu_id); - return have_cpu_id; -#else - return 0; -#endif - */ -} - -EAPI void -evas_common_cpu_can_do(int *mmx, int *sse, int *sse2) -{ - static int do_mmx = 0, do_sse = 0, do_sse2 = 0, done = 0; - - if (!done) - { -# ifdef HARD_CODED_P3 - cpu_feature_mask |= CPU_FEATURE_MMX; - cpu_feature_mask |= CPU_FEATURE_SSE; -#endif -#ifdef HARD_CODED_P2 - cpu_feature_mask |= CPU_FEATURE_MMX; -#endif - if (cpu_feature_mask & CPU_FEATURE_MMX) do_mmx = 1; - if (cpu_feature_mask & CPU_FEATURE_MMX2) do_sse = 1; - if (cpu_feature_mask & CPU_FEATURE_SSE) do_sse = 1; - } -// INF("%i %i %i", do_mmx, do_sse, do_sse2); - *mmx = do_mmx; - *sse = do_sse; - *sse2 = do_sse2; - done = 1; -} - -#ifdef BUILD_MMX -EAPI void -evas_common_cpu_end_opt(void) -{ - if (cpu_feature_mask & - (CPU_FEATURE_MMX | CPU_FEATURE_MMX2)) - { - emms(); - } -} -#else -EAPI void -evas_common_cpu_end_opt(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_draw.h b/libraries/evas/src/lib/engines/common/evas_draw.h deleted file mode 100644 index 34e0ed3..0000000 --- a/libraries/evas/src/lib/engines/common/evas_draw.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef _EVAS_DRAW_H -#define _EVAS_DRAW_H - - -EAPI void evas_common_draw_init (void); - -EAPI RGBA_Draw_Context *evas_common_draw_context_new (void); -EAPI void evas_common_draw_context_free (RGBA_Draw_Context *dc); -EAPI void evas_common_draw_context_font_ext_set (RGBA_Draw_Context *dc, - void *data, - void *(*gl_new) (void *data, RGBA_Font_Glyph *fg), - void (*gl_free) (void *ext_dat), - void (*gl_draw) (void *data, void *dest, void *context, RGBA_Font_Glyph *fg, int x, int y)); -EAPI void evas_common_draw_context_clip_clip (RGBA_Draw_Context *dc, int x, int y, int w, int h); -EAPI void evas_common_draw_context_set_clip (RGBA_Draw_Context *dc, int x, int y, int w, int h); -EAPI void evas_common_draw_context_unset_clip (RGBA_Draw_Context *dc); -EAPI void evas_common_draw_context_set_color (RGBA_Draw_Context *dc, int r, int g, int b, int a); -EAPI void evas_common_draw_context_set_multiplier (RGBA_Draw_Context *dc, int r, int g, int b, int a); -EAPI void evas_common_draw_context_unset_multiplier (RGBA_Draw_Context *dc); -EAPI void evas_common_draw_context_set_mask (RGBA_Draw_Context *dc, RGBA_Image *im, int x, int y, int w, int h); -EAPI void evas_common_draw_context_unset_mask (RGBA_Draw_Context *dc); -EAPI Cutout_Rects *evas_common_draw_context_cutouts_new (void); -EAPI void evas_common_draw_context_cutouts_free (Cutout_Rects* rects); -EAPI void evas_common_draw_context_cutouts_del (Cutout_Rects* rects, int idx); -EAPI void evas_common_draw_context_add_cutout (RGBA_Draw_Context *dc, int x, int y, int w, int h); -EAPI void evas_common_draw_context_clear_cutouts (RGBA_Draw_Context *dc); -EAPI Cutout_Rects *evas_common_draw_context_apply_cutouts (RGBA_Draw_Context *dc); -EAPI void evas_common_draw_context_apply_clear_cutouts (Cutout_Rects* rects); -EAPI void evas_common_draw_context_apply_clean_cutouts (Cutout_Rects* rects); -EAPI void evas_common_draw_context_set_anti_alias (RGBA_Draw_Context *dc, unsigned char aa); -EAPI void evas_common_draw_context_set_color_interpolation (RGBA_Draw_Context *dc, int color_space); -EAPI void evas_common_draw_context_set_render_op (RGBA_Draw_Context *dc, int op); -EAPI void evas_common_draw_context_set_sli (RGBA_Draw_Context *dc, int y, int h); - - -#endif /* _EVAS_DRAW_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_draw_main.c b/libraries/evas/src/lib/engines/common/evas_draw_main.c deleted file mode 100644 index d08e788..0000000 --- a/libraries/evas/src/lib/engines/common/evas_draw_main.c +++ /dev/null @@ -1,691 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_main.h" -#include "evas_private.h" - -EAPI Cutout_Rects* -evas_common_draw_context_cutouts_new(void) -{ - Cutout_Rects *rects; - - rects = calloc(1, sizeof(Cutout_Rects)); - return rects; -} - -EAPI void -evas_common_draw_context_cutouts_free(Cutout_Rects* rects) -{ - rects->active = 0; -} - -EAPI void -evas_common_draw_context_cutouts_del(Cutout_Rects* rects, int idx) -{ - if ((idx >= 0) && (idx < rects->active)) - { - Cutout_Rect *rect; - - rect = rects->rects + idx; - memmove(rect, rect + 1, - sizeof(Cutout_Rect) * (rects->active - idx - 1)); - rects->active--; - } -} - -void -evas_common_init(void) -{ - evas_common_cpu_init(); - - evas_common_blend_init(); - evas_common_image_init(); - evas_common_convert_init(); - evas_common_scale_init(); - evas_common_rectangle_init(); - evas_common_polygon_init(); - evas_common_line_init(); - evas_common_font_init(); - evas_common_draw_init(); - evas_common_tilebuf_init(); -} - -void -evas_common_shutdown(void) -{ - evas_font_dir_cache_free(); - evas_common_image_cache_free(); -} - -EAPI void -evas_common_draw_init(void) -{ -} - -EAPI RGBA_Draw_Context * -evas_common_draw_context_new(void) -{ - RGBA_Draw_Context *dc; - - dc = calloc(1, sizeof(RGBA_Draw_Context)); - dc->sli.h = 1; - return dc; -} - -EAPI void -evas_common_draw_context_free(RGBA_Draw_Context *dc) -{ - if (!dc) return; - -#ifdef HAVE_PIXMAN - if (dc->col.pixman_color_image) - { - pixman_image_unref(dc->col.pixman_color_image); - dc->col.pixman_color_image = NULL; - } -#endif - - evas_common_draw_context_apply_clean_cutouts(&dc->cutout); - free(dc); -} - -EAPI void -evas_common_draw_context_clear_cutouts(RGBA_Draw_Context *dc) -{ - evas_common_draw_context_apply_clean_cutouts(&dc->cutout); -} - -EAPI void -evas_common_draw_context_font_ext_set(RGBA_Draw_Context *dc, - void *data, - void *(*gl_new) (void *data, RGBA_Font_Glyph *fg), - void (*gl_free) (void *ext_dat), - void (*gl_draw) (void *data, void *dest, void *context, RGBA_Font_Glyph *fg, int x, int y)) -{ - dc->font_ext.data = data; - dc->font_ext.func.gl_new = gl_new; - dc->font_ext.func.gl_free = gl_free; - dc->font_ext.func.gl_draw = gl_draw; -} - -EAPI void -evas_common_draw_context_clip_clip(RGBA_Draw_Context *dc, int x, int y, int w, int h) -{ - if (dc->clip.use) - { - RECTS_CLIP_TO_RECT(dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h, - x, y, w, h); - } - else - evas_common_draw_context_set_clip(dc, x, y, w, h); -} - -EAPI void -evas_common_draw_context_set_clip(RGBA_Draw_Context *dc, int x, int y, int w, int h) -{ - dc->clip.use = 1; - dc->clip.x = x; - dc->clip.y = y; - dc->clip.w = w; - dc->clip.h = h; -} - -EAPI void -evas_common_draw_context_unset_clip(RGBA_Draw_Context *dc) -{ - dc->clip.use = 0; -} - -EAPI void -evas_common_draw_context_set_color(RGBA_Draw_Context *dc, int r, int g, int b, int a) -{ - R_VAL(&(dc->col.col)) = (DATA8)r; - G_VAL(&(dc->col.col)) = (DATA8)g; - B_VAL(&(dc->col.col)) = (DATA8)b; - A_VAL(&(dc->col.col)) = (DATA8)a; -#ifdef HAVE_PIXMAN - if (dc && dc->col.pixman_color_image) - pixman_image_unref(dc->col.pixman_color_image); - - pixman_color_t pixman_color; - - pixman_color.alpha = (dc->col.col & 0xff000000) >> 16; - pixman_color.red = (dc->col.col & 0x00ff0000) >> 8; - pixman_color.green = (dc->col.col & 0x0000ff00); - pixman_color.blue = (dc->col.col & 0x000000ff) << 8; - - dc->col.pixman_color_image = pixman_image_create_solid_fill(&pixman_color); -#endif - -} - -EAPI void -evas_common_draw_context_set_multiplier(RGBA_Draw_Context *dc, int r, int g, int b, int a) -{ - dc->mul.use = 1; - R_VAL(&(dc->mul.col)) = (DATA8)r; - G_VAL(&(dc->mul.col)) = (DATA8)g; - B_VAL(&(dc->mul.col)) = (DATA8)b; - A_VAL(&(dc->mul.col)) = (DATA8)a; -} - -EAPI void -evas_common_draw_context_unset_multiplier(RGBA_Draw_Context *dc) -{ - dc->mul.use = 0; -} - -EAPI void -evas_common_draw_context_set_mask(RGBA_Draw_Context *dc, RGBA_Image *mask, int x, int y, int w, int h) -{ - dc->mask.mask = mask; - dc->mask.x = x; - dc->mask.y = y; - dc->mask.w = w; - dc->mask.h = h; - -#ifdef HAVE_PIXMAN - if (mask->pixman.im) - pixman_image_unref(mask->pixman.im); - - if (mask->cache_entry.flags.alpha) - { - mask->pixman.im = pixman_image_create_bits(PIXMAN_a8r8g8b8, w, h, - (uint32_t *)mask->mask.mask, - w * 4); - } - else - { - mask->pixman.im = pixman_image_create_bits(PIXMAN_x8r8g8b8, w, h, - (uint32_t *)mask->mask.mask, - w * 4); - } -#endif - -} - -EAPI void -evas_common_draw_context_unset_mask(RGBA_Draw_Context *dc) -{ - dc->mask.mask = NULL; - -#ifdef HAVE_PIXMAN - RGBA_Image *mask; - mask = (RGBA_Image *)dc->mask.mask; - - if (mask && mask->pixman.im) - { - pixman_image_unref(mask->pixman.im); - mask->pixman.im = NULL; - } -#endif -} - - - - - -EAPI void -evas_common_draw_context_add_cutout(RGBA_Draw_Context *dc, int x, int y, int w, int h) -{ -// if (dc->cutout.rects > 512) return; - if (dc->clip.use) - { -#if 1 // this is a bit faster - int xa1, xa2, xb1, xb2; - - xa1 = x; - xa2 = xa1 + w - 1; - xb1 = dc->clip.x; - if (xa2 < xb1) return; - xb2 = xb1 + dc->clip.w - 1; - if (xa1 >= xb2) return; - if (xa2 > xb2) xa2 = xb2; - if (xb1 > xa1) xa1 = xb1; - x = xa1; - w = xa2 - xa1 + 1; - - xa1 = y; - xa2 = xa1 + h - 1; - xb1 = dc->clip.y; - if (xa2 < xb1) return; - xb2 = xb1 + dc->clip.h - 1; - if (xa1 >= xb2) return; - if (xa2 > xb2) xa2 = xb2; - if (xb1 > xa1) xa1 = xb1; - y = xa1; - h = xa2 - xa1 + 1; -#else - RECTS_CLIP_TO_RECT(x, y, w, h, - dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); -#endif - if ((w < 1) || (h < 1)) return; - } - evas_common_draw_context_cutouts_add(&dc->cutout, x, y, w, h); -} - -int -evas_common_draw_context_cutout_split(Cutout_Rects* res, int idx, Cutout_Rect *split) -{ - /* 1 input rect, multiple out */ - Cutout_Rect in = res->rects[idx]; - - /* this is to save me a LOT of typing */ -#define INX1 (in.x) -#define INX2 (in.x + in.w) -#define SPX1 (split->x) -#define SPX2 (split->x + split->w) -#define INY1 (in.y) -#define INY2 (in.y + in.h) -#define SPY1 (split->y) -#define SPY2 (split->y + split->h) -#define X1_IN (in.x < split->x) -#define X2_IN ((in.x + in.w) > (split->x + split->w)) -#define Y1_IN (in.y < split->y) -#define Y2_IN ((in.y + in.h) > (split->y + split->h)) -#define R_NEW(_r, _x, _y, _w, _h) { evas_common_draw_context_cutouts_add(_r, _x, _y, _w, _h); } - if (!RECTS_INTERSECT(in.x, in.y, in.w, in.h, - split->x, split->y, split->w, split->h)) - { - /* No colision => no clipping, don't touch it. */ - return 1; - } - - /* S = split (ie cut out rect) */ - /* +--+ = in (rect to be cut) */ - - /* - * +---+ - * | | - * | S | - * | | - * +---+ - * - */ - if (X1_IN && X2_IN && Y1_IN && Y2_IN) - { - R_NEW(res, in.x, in.y, in.w, SPY1 - in.y); - R_NEW(res, in.x, SPY1, SPX1 - in.x, SPY2 - SPY1); - R_NEW(res, SPX2, SPY1, INX2 - SPX2, SPY2 - SPY1); - /* out => (in.x, SPY2, in.w, INY2 - SPY2) */ - res->rects[idx].h = INY2 - SPY2; - res->rects[idx].y = SPY2; - return 1; - } - /* SSSSSSS - * S+---+S - * S|SSS|S - * S|SSS|S - * S|SSS|S - * S+---+S - * SSSSSSS - */ - if (!X1_IN && !X2_IN && !Y1_IN && !Y2_IN) - { - evas_common_draw_context_cutouts_del(res, idx); - return 0; - } - /* SSS - * S+---+ - * S|S | - * S|S | - * S|S | - * S+---+ - * SSS - */ - if (!X1_IN && X2_IN && !Y1_IN && !Y2_IN) - { - /* in => (SPX2, in.y, INX2 - SPX2, in.h) */ - res->rects[idx].w = INX2 - SPX2; - res->rects[idx].x = SPX2; - return 1; - } - /* S - * +---+ - * | S | - * | S | - * | S | - * +---+ - * S - */ - if (X1_IN && X2_IN && !Y1_IN && !Y2_IN) - { - R_NEW(res, in.x, in.y, SPX1 - in.x, in.h); - /* in => (SPX2, in.y, INX2 - SPX2, in.h) */ - res->rects[idx].w = INX2 - SPX2; - res->rects[idx].x = SPX2; - return 1; - } - /* SSS - * +---+S - * | S|S - * | S|S - * | S|S - * +---+S - * SSS - */ - if (X1_IN && !X2_IN && !Y1_IN && !Y2_IN) - { - /* in => (in.x, in.y, SPX1 - in.x, in.h) */ - res->rects[idx].w = SPX1 - in.x; - return 1; - } - /* SSSSSSS - * S+---+S - * S|SSS|S - * | | - * | | - * +---+ - * - */ - if (!X1_IN && !X2_IN && !Y1_IN && Y2_IN) - { - /* in => (in.x, SPY2, in.w, INY2 - SPY2) */ - res->rects[idx].h = INY2 - SPY2; - res->rects[idx].y = SPY2; - return 1; - } - /* - * +---+ - * | | - * S|SSS|S - * | | - * +---+ - * - */ - if (!X1_IN && !X2_IN && Y1_IN && Y2_IN) - { - R_NEW(res, in.x, SPY2, in.w, INY2 - SPY2); - /* in => (in.x, in.y, in.w, SPY1 - in.y) */ - res->rects[idx].h = SPY1 - in.y; - return 1; - } - /* - * +---+ - * | | - * | | - * S|SSS|S - * S+---+S - * SSSSSSS - */ - if (!X1_IN && !X2_IN && Y1_IN && !Y2_IN) - { - /* in => (in.x, in.y, in.w, SPY1 - in.y) */ - res->rects[idx].h = SPY1 - in.y; - return 1; - } - /* SSS - * S+---+ - * S|S | - * | | - * | | - * +---+ - * - */ - if (!X1_IN && X2_IN && !Y1_IN && Y2_IN) - { - R_NEW(res, SPX2, in.y, INX2 - SPX2, SPY2 - in.y); - /* in => (in.x, SPY2, in.w, INY2 - SPY2) */ - res->rects[idx].h = INY2 - SPY2; - res->rects[idx].y = SPY2; - return 1; - } - /* S - * +---+ - * | S | - * | | - * | | - * +---+ - * - */ - if (X1_IN && X2_IN && !Y1_IN && Y2_IN) - { - R_NEW(res, in.x, in.y, SPX1 - in.x, SPY2 - in.y); - R_NEW(res, SPX2, in.y, INX2 - SPX2, SPY2 - in.y); - /* in => (in.x, SPY2, in.w, INY2 - SPY2) */ - res->rects[idx].h = INY2 - SPY2; - res->rects[idx].y = SPY2; - return 1; - } - /* SSS - * +---+S - * | S|S - * | | - * | | - * +---+ - * - */ - if (X1_IN && !X2_IN && !Y1_IN && Y2_IN) - { - R_NEW(res, in.x, in.y, SPX1 - in.x, SPY2 - in.y); - /* in => (in.x, SPY2, in.w, INY2 - SPY2) */ - res->rects[idx].h = INY2 - SPY2; - res->rects[idx].y = SPY2; - return 1; - } - /* - * +---+ - * | | - * S|S | - * | | - * +---+ - * - */ - if (!X1_IN && X2_IN && Y1_IN && Y2_IN) - { - R_NEW(res, in.x, SPY2, in.w, INY2 - SPY2); - R_NEW(res, SPX2, SPY1, INX2 - SPX2, SPY2 - SPY1); - /* in => (in.x, SPY2, in.w, INY2 - SPY2) */ - res->rects[idx].h = SPY1 - in.y; - return 1; - } - /* - * +---+ - * | | - * | S|S - * | | - * +---+ - * - */ - if (X1_IN && !X2_IN && Y1_IN && Y2_IN) - { - R_NEW(res, in.x, SPY2, in.w, INY2 - SPY2); - R_NEW(res, in.x, SPY1, SPX1 - in.x, SPY2 - SPY1); - /* in => (in.x, in.y, in.w, SPY1 - in.y) */ - res->rects[idx].h = SPY1 - in.y; - return 1; - } - /* - * +---+ - * | | - * | | - * S|S | - * S+---+ - * SSS - */ - if (!X1_IN && X2_IN && Y1_IN && !Y2_IN) - { - R_NEW(res, SPX2, SPY1, INX2 - SPX2, INY2 - SPY1); - /* in => (in.x, in.y, in.w, SPY1 - in.y) */ - res->rects[idx].h = SPY1 - in.y; - return 1; - } - /* - * +---+ - * | | - * | | - * | S | - * +---+ - * S - */ - if (X1_IN && X2_IN && Y1_IN && !Y2_IN) - { - R_NEW(res, in.x, SPY1, SPX1 - in.x, INY2 - SPY1); - R_NEW(res, SPX2, SPY1, INX2 - SPX2, INY2 - SPY1); - /* in => (in.x, in.y, in.w, SPY1 - in.y) */ - res->rects[idx].h = SPY1 - in.y; - return 1; - } - /* - * +---+ - * | | - * | | - * | S|S - * +---+S - * SSS - */ - if (X1_IN && !X2_IN && Y1_IN && !Y2_IN) - { - R_NEW(res, in.x, SPY1, SPX1 - in.x, INY2 - SPY1); - /* in => (in.x, in.y, in.w, SPY1 - in.y) */ - res->rects[idx].h = SPY1 - in.y; - return 1; - } - evas_common_draw_context_cutouts_del(res, idx); - return 0; -#undef INX1 -#undef INX2 -#undef SPX1 -#undef SPX2 -#undef INY1 -#undef INY2 -#undef SPY1 -#undef SPY2 -#undef X1_IN -#undef X2_IN -#undef Y1_IN -#undef Y2_IN -#undef R_NEW -} - -EAPI Cutout_Rects* -evas_common_draw_context_apply_cutouts(RGBA_Draw_Context *dc) -{ - Cutout_Rects* res, *res2; - int i; - int j; - - if (!dc->clip.use) return NULL; - if ((dc->clip.w <= 0) || (dc->clip.h <= 0)) return NULL; - - - res = evas_common_draw_context_cutouts_new(); - evas_common_draw_context_cutouts_add(res, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); - - for (i = 0; i < dc->cutout.active; ++i) - { - /* Don't loop on the element just added to the list as they are already correctly clipped. */ - int active = res->active; - - for (j = 0; j < active; ) - { - if (evas_common_draw_context_cutout_split(res, j, dc->cutout.rects + i)) - ++j; - else - active--; - } - } - /* merge rects */ -#define RI res->rects[i] -#define RJ res->rects[j] - if (res->active > 1) - { - int found = 1; - - while (found) - { - found = 0; - for (i = 0; i < res->active; i++) - { - for (j = i + 1; j < res->active; j++) - { - /* skip empty rects we are removing */ - if (RJ.w == 0) continue; - /* check if its same width, immediately above or below */ - if ((RJ.w == RI.w) && (RJ.x == RI.x)) - { - if ((RJ.y + RJ.h) == RI.y) /* above */ - { - RI.y = RJ.y; - RI.h += RJ.h; - RJ.w = 0; - found = 1; - } - else if ((RI.y + RI.h) == RJ.y) /* below */ - { - RI.h += RJ.h; - RJ.w = 0; - found = 1; - } - } - /* check if its same height, immediately left or right */ - else if ((RJ.h == RI.h) && (RJ.y == RI.y)) - { - if ((RJ.x + RJ.w) == RI.x) /* left */ - { - RI.x = RJ.x; - RI.w += RJ.w; - RJ.w = 0; - found = 1; - } - else if ((RI.x + RI.w) == RJ.x) /* right */ - { - RI.w += RJ.w; - RJ.w = 0; - found = 1; - } - } - } - } - } - res2 = evas_common_draw_context_cutouts_new(); - for (i = 0; i < res->active; i++) - { - if (RI.w == 0) continue; - evas_common_draw_context_cutouts_add(res2, RI.x, RI.y, RI.w, RI.h); - } - free(res->rects); - free(res); - return res2; - } - return res; -} - -EAPI void -evas_common_draw_context_apply_clear_cutouts(Cutout_Rects* rects) -{ - evas_common_draw_context_apply_clean_cutouts(rects); - free(rects); -} - -EAPI void -evas_common_draw_context_apply_clean_cutouts(Cutout_Rects* rects) -{ - free(rects->rects); - rects->rects = NULL; - rects->active = 0; - rects->max = 0; -} - -EAPI void -evas_common_draw_context_set_anti_alias(RGBA_Draw_Context *dc , unsigned char aa) -{ - dc->anti_alias = !!aa; -} - -EAPI void -evas_common_draw_context_set_color_interpolation(RGBA_Draw_Context *dc, int color_space) -{ - dc->interpolation.color_space = color_space; -} - -EAPI void -evas_common_draw_context_set_render_op(RGBA_Draw_Context *dc , int op) -{ - dc->render_op = op; -} - -EAPI void -evas_common_draw_context_set_sli(RGBA_Draw_Context *dc, int y, int h) -{ - dc->sli.y = y; - dc->sli.h = h; -} diff --git a/libraries/evas/src/lib/engines/common/evas_font.h b/libraries/evas/src/lib/engines/common/evas_font.h deleted file mode 100644 index 533d897..0000000 --- a/libraries/evas/src/lib/engines/common/evas_font.h +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef _EVAS_FONT_H -#define _EVAS_FONT_H -#include "evas_text_utils.h" - - -/* main */ - -EAPI void evas_common_font_init (void); -EAPI void evas_common_font_shutdown (void); -EAPI void evas_common_font_font_all_unload (void); - -EAPI int evas_common_font_ascent_get (RGBA_Font *fn); -EAPI int evas_common_font_descent_get (RGBA_Font *fn); -EAPI int evas_common_font_max_ascent_get (RGBA_Font *fn); -EAPI int evas_common_font_max_descent_get (RGBA_Font *fn); -EAPI int evas_common_font_get_line_advance (RGBA_Font *fn); - -/* draw */ - -EAPI void evas_common_font_draw (RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn, int x, int y, const Evas_Text_Props *intl_props); -EAPI int evas_common_font_glyph_search (RGBA_Font *fn, RGBA_Font_Int **fi_ret, Eina_Unicode gl); -EAPI RGBA_Font_Glyph *evas_common_font_int_cache_glyph_get (RGBA_Font_Int *fi, FT_UInt index); -EAPI FT_UInt evas_common_get_char_index (RGBA_Font_Int* fi, Eina_Unicode gl); -EAPI void evas_common_font_draw_init (void); - -/* load */ -EAPI void evas_common_font_dpi_set (int dpi); -EAPI RGBA_Font_Source *evas_common_font_source_memory_load (const char *name, const void *data, int data_size); -EAPI RGBA_Font_Source *evas_common_font_source_load (const char *name); -EAPI int evas_common_font_source_load_complete (RGBA_Font_Source *fs); -EAPI RGBA_Font_Source *evas_common_font_source_find (const char *name); -EAPI void evas_common_font_source_free (RGBA_Font_Source *fs); -EAPI void evas_common_font_size_use (RGBA_Font *fn); -EAPI RGBA_Font_Int *evas_common_font_int_load (const char *name, int size, Font_Rend_Flags wanted_rend); -EAPI RGBA_Font_Int *evas_common_font_int_load_init (RGBA_Font_Int *fn); -EAPI RGBA_Font_Int *evas_common_font_int_load_complete (RGBA_Font_Int *fi); -EAPI RGBA_Font *evas_common_font_memory_load (const char *name, int size, const void *data, int data_size, Font_Rend_Flags wanted_rend); -EAPI RGBA_Font *evas_common_font_load (const char *name, int size, Font_Rend_Flags wanted_rend); -EAPI RGBA_Font *evas_common_font_add (RGBA_Font *fn, const char *name, int size, Font_Rend_Flags wanted_rend); -EAPI RGBA_Font *evas_common_font_memory_add (RGBA_Font *fn, const char *name, int size, const void *data, int data_size, Font_Rend_Flags wanted_rend); -EAPI void evas_common_font_free (RGBA_Font *fn); -EAPI void evas_common_font_hinting_set (RGBA_Font *fn, Font_Hint_Flags hinting); -EAPI Eina_Bool evas_common_hinting_available (Font_Hint_Flags hinting); -EAPI RGBA_Font *evas_common_font_memory_hinting_load (const char *name, int size, const void *data, int data_size, Font_Hint_Flags hinting, Font_Rend_Flags wanted_rend); -EAPI RGBA_Font *evas_common_font_hinting_load (const char *name, int size, Font_Hint_Flags hinting, Font_Rend_Flags wanted_rend); -EAPI RGBA_Font *evas_common_font_hinting_add (RGBA_Font *fn, const char *name, int size, Font_Hint_Flags hinting, Font_Rend_Flags wanted_rend); -EAPI RGBA_Font *evas_common_font_memory_hinting_add (RGBA_Font *fn, const char *name, int size, const void *data, int data_size, Font_Hint_Flags hinting, Font_Rend_Flags wanted_rend); -EAPI void evas_common_font_int_modify_cache_by (RGBA_Font_Int *fi, int dir); -EAPI int evas_common_font_cache_get (void); -EAPI void evas_common_font_cache_set (int size); -EAPI void evas_common_font_flush (void); -EAPI void evas_common_font_flush_last (void); -EAPI RGBA_Font_Int *evas_common_font_int_find (const char *name, int size, Font_Rend_Flags wanted_rend); -EAPI void evas_common_font_all_clear (void); - -/* query */ - -EAPI int evas_common_font_query_kerning (RGBA_Font_Int* fi, FT_UInt left, FT_UInt right, int* kerning); -EAPI void evas_common_font_query_size (RGBA_Font *fn, const Evas_Text_Props *intl_props, int *w, int *h); -EAPI int evas_common_font_query_inset (RGBA_Font *fn __UNUSED__, const Evas_Text_Props *text_props); -EAPI int evas_common_font_query_right_inset (RGBA_Font *fn __UNUSED__, const Evas_Text_Props *text_props); -EAPI void evas_common_font_query_advance (RGBA_Font *fn, const Evas_Text_Props *intl_props, int *h_adv, int *v_adv); -EAPI int evas_common_font_query_char_coords (RGBA_Font *fn, const Evas_Text_Props *intl_props, int pos, int *cx, int *cy, int *cw, int *ch); -EAPI int evas_common_font_query_pen_coords (RGBA_Font *fn, const Evas_Text_Props *intl_props, int pos, int *cpen_x, int *cy, int *cadv, int *ch); -EAPI int evas_common_font_query_char_at_coords (RGBA_Font *fn, const Evas_Text_Props *intl_props, int x, int y, int *cx, int *cy, int *cw, int *ch); -EAPI int evas_common_font_query_last_up_to_pos (RGBA_Font *fn, const Evas_Text_Props *intl_props, int x, int y); -EAPI int evas_common_font_query_run_font_end_get(RGBA_Font *fn, RGBA_Font_Int **script_fi, RGBA_Font_Int **cur_fi, Evas_Script_Type script, const Eina_Unicode *text, int run_len); - -#ifdef EVAS_FRAME_QUEUING -EAPI void evas_common_font_draw_finish(void); -#endif - -void evas_common_font_load_init(void); -void evas_common_font_load_shutdown(void); - -#endif /* _EVAS_FONT_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_font_default_walk.x b/libraries/evas/src/lib/engines/common/evas_font_default_walk.x deleted file mode 100644 index 94e7fde..0000000 --- a/libraries/evas/src/lib/engines/common/evas_font_default_walk.x +++ /dev/null @@ -1,144 +0,0 @@ -#ifndef _EVAS_FONT_DEFAULT_WALK_X -#define _EVAS_FONT_DEFAULT_WALK_X -/* Macros for text walking */ - -/** - * @def EVAS_FONT_WALK_TEXT_INIT - * @internal - * This macro defines the variables that will later be used with the following - * macros, and by font handling functions. - * @see EVAS_FONT_WALK_TEXT_START - * @see EVAS_FONT_WALK_TEXT_WORK - * @see EVAS_FONT_WALK_TEXT_END - */ -# define EVAS_FONT_WALK_TEXT_INIT() \ - int _pen_x = 0, _pen_y = 0; \ - Evas_Coord _start_pen = (text_props->info && \ - (text_props->start > 0)) ? \ - text_props->info->glyph[text_props->start - 1].pen_after : 0 ; \ - size_t char_index; \ - (void) _pen_y; /* Sometimes it won't be used */ - -/* Visual walk helper macros */ -#ifdef OT_SUPPORT -#define _EVAS_FONT_WALK_TEXT_START() \ - Evas_Font_OT_Info *_ot_itr = (text_props->info) ? \ - text_props->info->ot + text_props->start : NULL; \ - if (!_ot_itr) break; \ - for (char_index = 0 ; char_index < text_props->len ; char_index++, _glyph_itr++, _ot_itr++) \ - { -#else -#define _EVAS_FONT_WALK_TEXT_START() \ - for (char_index = 0 ; char_index < text_props->len ; char_index++, _glyph_itr++) \ - { -#endif - -/** - * @def EVAS_FONT_WALK_TEXT_START - * @internal - * This runs through the text in visual order while updating char_index, - * which is the current index in the text. - * Does not end with a ; - * Take a look at EVAS_FONT_WALK_X_OFF and the like. - * @see EVAS_FONT_WALK_TEXT_INIT - * @see EVAS_FONT_WALK_TEXT_WORK - * @see EVAS_FONT_WALK_TEXT_END - */ -#define EVAS_FONT_WALK_TEXT_START() \ - do \ - { \ - Evas_Font_Glyph_Info *_glyph_itr = (text_props->info) ? \ - text_props->info->glyph + text_props->start : NULL; \ - if (!_glyph_itr) break; \ - _EVAS_FONT_WALK_TEXT_START() - -/*FIXME: doc */ -#ifdef OT_SUPPORT -# define EVAS_FONT_WALK_X_OFF \ - (EVAS_FONT_ROUND_26_6_TO_INT(EVAS_FONT_OT_X_OFF_GET(*_ot_itr))) -# define EVAS_FONT_WALK_Y_OFF \ - (EVAS_FONT_ROUND_26_6_TO_INT(EVAS_FONT_OT_Y_OFF_GET(*_ot_itr))) -# define EVAS_FONT_WALK_POS \ - (EVAS_FONT_OT_POS_GET(*_ot_itr) - text_props->text_offset) -# define EVAS_FONT_WALK_POS_NEXT \ - ((!EVAS_FONT_WALK_IS_LAST) ? \ - EVAS_FONT_OT_POS_GET(*(_ot_itr + 1)) - \ - text_props->text_offset : \ - EVAS_FONT_WALK_POS \ - ) -# define EVAS_FONT_WALK_POS_PREV \ - ((char_index > 0) ? \ - EVAS_FONT_OT_POS_GET(*(_ot_itr - 1)) - \ - text_props->text_offset : \ - EVAS_FONT_WALK_POS \ - ) -#else -# define EVAS_FONT_WALK_X_OFF 0 -# define EVAS_FONT_WALK_Y_OFF 0 -# define EVAS_FONT_WALK_POS \ - ((text_props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) ? \ - (text_props->len - char_index - 1) : \ - (char_index)) -# define EVAS_FONT_WALK_POS_NEXT \ - ((!EVAS_FONT_WALK_IS_LAST) ? \ - ((text_props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) ? \ - text_props->len - char_index - 2 \ - : (char_index + 1)) : \ - EVAS_FONT_WALK_POS) -# define EVAS_FONT_WALK_POS_PREV \ - ((char_index > 0) ? \ - ((text_props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) ? \ - text_props->len - char_index \ - : (char_index - 1)) : \ - EVAS_FONT_WALK_POS) -#endif - - -#define EVAS_FONT_WALK_IS_VISIBLE (_glyph_itr->index != 0) -#define EVAS_FONT_WALK_X_BEAR (_glyph_itr->x_bear) -#define EVAS_FONT_WALK_Y_BEAR (fg->glyph_out->top) -#define EVAS_FONT_WALK_X_ADV ((_glyph_itr > text_props->info->glyph) ? \ - _glyph_itr->pen_after - (_glyph_itr - 1)->pen_after : \ - _glyph_itr->pen_after) -#define EVAS_FONT_WALK_WIDTH (_glyph_itr->width) - -#define EVAS_FONT_WALK_INDEX (_glyph_itr->index) -#define EVAS_FONT_WALK_PEN_X (_pen_x) -#define EVAS_FONT_WALK_PEN_X_AFTER (_glyph_itr->pen_after - _start_pen) -#define EVAS_FONT_WALK_PEN_Y (EVAS_FONT_ROUND_26_6_TO_INT(_pen_y)) -#define EVAS_FONT_WALK_Y_ADV (0) -#define EVAS_FONT_WALK_IS_LAST \ - (char_index + 1 == text_props->len) -#define EVAS_FONT_WALK_IS_FIRST \ - (char_index == 0) -#define EVAS_FONT_WALK_LEN (text_props->len) - -/** - * @def EVAS_FONT_WALK_TEXT_WORK - * @internal - * This macro actually updates the values mentioned in EVAS_FONT_WALK_TEXT_START - * according to the current positing in the walk. - * @see EVAS_FONT_WALK_TEXT_START - * @see EVAS_FONT_WALK_TEXT_INIT - * @see EVAS_FONT_WALK_TEXT_END - */ -#define EVAS_FONT_WALK_TEXT_WORK() do {} while(0) - -/** - * @def EVAS_FONT_WALK_TEXT_END - * @internal - * Closes EVAS_FONT_WALK_TEXT_START, needs to end with a ; - * @see EVAS_FONT_WALK_TEXT_START - * @see EVAS_FONT_WALK_TEXT_INIT - * @see EVAS_FONT_WALK_TEXT_WORK - */ -#define EVAS_FONT_WALK_TEXT_END() \ - if (EVAS_FONT_WALK_IS_VISIBLE) \ - { \ - _pen_x = _glyph_itr->pen_after - _start_pen; \ - } \ - } \ - } \ - while(0) - -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_font_draw.c b/libraries/evas/src/lib/engines/common/evas_font_draw.c deleted file mode 100644 index 638cdfe..0000000 --- a/libraries/evas/src/lib/engines/common/evas_font_draw.c +++ /dev/null @@ -1,658 +0,0 @@ -#include "evas_common.h" -#include "evas_private.h" -#include "evas_blend_private.h" - -#include "language/evas_bidi_utils.h" /*defines BIDI_SUPPORT if possible */ -#include "evas_font_private.h" /* for Frame-Queuing support */ - -#include "evas_font_ot.h" - -/* Forcibly disable the broken word/metric caching. */ -#ifdef METRIC_CACHE -# undef METRIC_CACHE -#endif - -#ifdef WORD_CACHE -# undef WORD_CACHE -#endif - -#define WORD_CACHE_MAXLEN 50 -/* How many to cache */ -#define WORD_CACHE_NWORDS 40 - -static int max_cached_words = WORD_CACHE_NWORDS; - -struct prword -{ - EINA_INLIST; - struct cinfo *cinfo; - Evas_Text_Props text_props; - DATA8 *im; - int roww; - int width; - int height; - int baseline; -}; - -struct cinfo -{ - FT_UInt index; - struct - { - int x, y; - } pos; - int posx; - RGBA_Font_Glyph *fg; - struct - { - int w,h; - int rows; - unsigned char *data; - } bm; -}; - - -#if defined(METRIC_CACHE) || defined(WORD_CACHE) -LK(lock_words); // for word cache call -static Eina_Inlist *words = NULL; -static struct prword *evas_font_word_prerender(RGBA_Draw_Context *dc, const Evas_Text_Props *text_props); -#endif - -EAPI void -evas_common_font_draw_init(void) -{ - char *p; - int tmp; - - if ((p = getenv("EVAS_WORD_CACHE_MAX_WORDS"))) - { - tmp = strtol(p,NULL,10); - /* 0 to disable of course */ - if (tmp > -1 && tmp < 500){ - max_cached_words = tmp; - } - } -} - -#ifdef EVAS_FRAME_QUEUING -EAPI void -evas_common_font_draw_finish(void) -{ -} -#endif - -/* - * BiDi handling: We receive the shaped string + other props from text_props, - * we need to reorder it so we'll have the visual string (the way we draw) - * and then for kerning we have to switch the order of the kerning query (as the prev - * is on the right, and not on the left). - */ -static void -evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn __UNUSED__, int x, int y, - const Evas_Text_Props *text_props, RGBA_Gfx_Func func, int ext_x, int ext_y, int ext_w, - int ext_h, int im_w, int im_h __UNUSED__) -{ - DATA32 *im; - RGBA_Font_Int *fi; - EVAS_FONT_WALK_TEXT_INIT(); - - fi = text_props->font_instance; - if (!fi) return; - - evas_common_font_int_reload(fi); - - if (fi->src->current_size != fi->size) - { - FTLOCK(); - FT_Activate_Size(fi->ft.size); - FTUNLOCK(); - fi->src->current_size = fi->size; - } - - -#if defined(METRIC_CACHE) || defined(WORD_CACHE) - unsigned int len; - - len = text_props->len; - - if (len > 2 && (len < WORD_CACHE_MAXLEN)) - { - struct prword *word; - - word = - evas_font_word_prerender(dc, text_props); - if (word) - { - int j, rowstart, rowend, xstart, xrun; - - im = dst->image.data; - xrun = word->width; - y -= word->baseline; - xstart = 0; - rowstart = 0; - rowend = word->height; - /* Clip to extent */ - if (x + xrun > ext_x + ext_w) - { - xrun -= x + xrun - ext_x - ext_w; - } - if (x < ext_x) - { - int excess = ext_x - x; - xstart = excess - 1; - xrun -= excess; - x = ext_x; - } - if (y + rowend > ext_y + ext_h) - { - rowend -= (y - ext_y + rowend - ext_h); - } - if (y < ext_y) - { - int excess = ext_y - y; - rowstart += excess; - //rowend -= excess; - // y = ext_y; - } - - if (xrun < 1) return; -/* For some reason, metric and word chache are exactly the same except for - * this piece of code that makes metric go nuts. ATM, we'll just go the - * WORD_CACHE path. */ -#if defined(METRIC_CACHE) || defined(WORD_CACHE) - if (word->im) - { - for (j = rowstart ; j < rowend ; j ++) - { - func(NULL, word->im + (word->roww * j) + xstart, dc->col.col, - im + ((y + j) * im_w) + x, xrun); - } - return; - } -# elif defined(METRIC_CACHE) - unsigned int ind; - - y += word->baseline; - for (ind = 0 ; ind < len ; ind ++) - { - // FIXME Do we need to draw? - struct cinfo *ci = word->cinfo + ind; - for (j = rowstart ; j < rowend ; j ++) - { - if ((ci->fg->ext_dat) && (dc->font_ext.func.gl_draw)) - { - /* ext glyph draw */ - dc->font_ext.func.gl_draw(dc->font_ext.data, - (void *)dst, - dc, ci->fg, - x + ci->pos.x, - y - ci->bm.h + j); - } - else - { - func(NULL, word->im + (word->roww * j) + xstart, - dc->col.col, im + ((y + j) * im_w) + x, xrun); - } - } - } - return; -# endif - } - } -#endif - - im = dst->image.data; - - EVAS_FONT_WALK_TEXT_START() - { - FT_UInt idx; - RGBA_Font_Glyph *fg; - int chr_x, chr_y; - - if (!EVAS_FONT_WALK_IS_VISIBLE) continue; - - idx = EVAS_FONT_WALK_INDEX; - - LKL(fi->ft_mutex); - fg = evas_common_font_int_cache_glyph_get(fi, idx); - if (!fg) - { - LKU(fi->ft_mutex); - continue; - } - - LKU(fi->ft_mutex); - - if (dc->font_ext.func.gl_new) - { - /* extension calls */ - fg->ext_dat = dc->font_ext.func.gl_new(dc->font_ext.data, fg); - fg->ext_dat_free = dc->font_ext.func.gl_free; - } - - chr_x = x + EVAS_FONT_WALK_PEN_X + EVAS_FONT_WALK_X_OFF + EVAS_FONT_WALK_X_BEAR; - chr_y = y + EVAS_FONT_WALK_PEN_Y + EVAS_FONT_WALK_Y_OFF + EVAS_FONT_WALK_Y_BEAR; - - if (chr_x < (ext_x + ext_w)) - { - DATA8 *data; - int i, j, w, h; - - data = fg->glyph_out->bitmap.buffer; - j = fg->glyph_out->bitmap.pitch; - w = fg->glyph_out->bitmap.width; - if (j < w) j = w; - h = fg->glyph_out->bitmap.rows; - /* - if ((fg->glyph_out->bitmap.pixel_mode == ft_pixel_mode_grays) - && (fg->glyph_out->bitmap.num_grays == 256) - ) - */ - -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_FONT - int index; - DATA32 *font_alpha_buffer; - pixman_image_t *font_mask_image; - - font_alpha_buffer = alloca(w * h * sizeof(DATA32)); - for (index = 0; index < (w * h); index++) - font_alpha_buffer[index] = data[index] << 24; - - font_mask_image = pixman_image_create_bits(PIXMAN_a8r8g8b8, w, h, - font_alpha_buffer, - w * sizeof(DATA32)); - - if (!font_mask_image) return; -# endif -#endif - - { - if ((j > 0) && (chr_x + w > ext_x)) - { - if ((fg->ext_dat) && (dc->font_ext.func.gl_draw)) - { - /* ext glyph draw */ - dc->font_ext.func.gl_draw(dc->font_ext.data, - (void *)dst, - dc, fg, chr_x, - y - (chr_y - y)); - } - else - { - if ((fg->glyph_out->bitmap.num_grays == 256) && - (fg->glyph_out->bitmap.pixel_mode == FT_PIXEL_MODE_GRAY)) - { -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_FONT - if ((dst->pixman.im) && - (dc->col.pixman_color_image)) - pixman_image_composite(PIXMAN_OP_OVER, - dc->col.pixman_color_image, - font_mask_image, - dst->pixman.im, - chr_x, - y - (chr_y - y), - 0, 0, - chr_x, - y - (chr_y - y), - w, h); - else -# endif -#endif - { - for (i = 0; i < h; i++) - { - int dx, dy; - int in_x, in_w; - - in_x = 0; - in_w = 0; - dx = chr_x; - dy = y - (chr_y - i - y); -#ifdef EVAS_SLI - if (((dy) % dc->sli.h) == dc->sli.y) -#endif - { - if ((dx < (ext_x + ext_w)) && - (dy >= (ext_y)) && - (dy < (ext_y + ext_h))) - { - if (dx + w > (ext_x + ext_w)) - in_w += (dx + w) - (ext_x + ext_w); - if (dx < ext_x) - { - in_w += ext_x - dx; - in_x = ext_x - dx; - dx = ext_x; - } - if (in_w < w) - { - func(NULL, data + (i * j) + in_x, dc->col.col, - im + (dy * im_w) + dx, w - in_w); - } - } - } - } - } - } - else - { - DATA8 *tmpbuf = NULL, *dp, *tp, bits; - int bi, bj; - const DATA8 bitrepl[2] = {0x0, 0xff}; - - tmpbuf = alloca(w); - for (i = 0; i < h; i++) - { - int dx, dy; - int in_x, in_w, end; - - in_x = 0; - in_w = 0; - dx = chr_x; - dy = y - (chr_y - i - y); -#ifdef EVAS_SLI - if (((dy) % dc->sli.h) == dc->sli.y) -#endif - { - tp = tmpbuf; - dp = data + (i * fg->glyph_out->bitmap.pitch); - for (bi = 0; bi < w; bi += 8) - { - bits = *dp; - if ((w - bi) < 8) end = w - bi; - else end = 8; - for (bj = 0; bj < end; bj++) - { - *tp = bitrepl[(bits >> (7 - bj)) & 0x1]; - tp++; - } - dp++; - } - if ((dx < (ext_x + ext_w)) && - (dy >= (ext_y)) && - (dy < (ext_y + ext_h))) - { - if (dx + w > (ext_x + ext_w)) - in_w += (dx + w) - (ext_x + ext_w); - if (dx < ext_x) - { - in_w += ext_x - dx; - in_x = ext_x - dx; - dx = ext_x; - } - if (in_w < w) - { - func(NULL, tmpbuf + in_x, dc->col.col, - im + (dy * im_w) + dx, w - in_w); - } - } - } - } - } - } - } - } -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_FONT - pixman_image_unref(font_mask_image); -# endif -#endif - } - else - break; - } - EVAS_FONT_WALK_TEXT_END(); - evas_common_font_int_use_trim(); -} - -EAPI void -evas_common_font_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn, int x, int y, const Evas_Text_Props *text_props) -{ - int ext_x, ext_y, ext_w, ext_h; - int im_w, im_h; - RGBA_Gfx_Func func; - Cutout_Rects *rects; - Cutout_Rect *r; - int c, cx, cy, cw, ch; - int i; - - im_w = dst->cache_entry.w; - im_h = dst->cache_entry.h; - - ext_x = 0; ext_y = 0; ext_w = im_w; ext_h = im_h; - if (dc->clip.use) - { - ext_x = dc->clip.x; - ext_y = dc->clip.y; - ext_w = dc->clip.w; - ext_h = dc->clip.h; - if (ext_x < 0) - { - ext_w += ext_x; - ext_x = 0; - } - if (ext_y < 0) - { - ext_h += ext_y; - ext_y = 0; - } - if ((ext_x + ext_w) > im_w) - ext_w = im_w - ext_x; - if ((ext_y + ext_h) > im_h) - ext_h = im_h - ext_y; - } - if (ext_w <= 0) return; - if (ext_h <= 0) return; - -#ifdef EVAS_FRAME_QUEUING - LKL(fn->lock); -#endif -// evas_common_font_size_use(fn); - func = evas_common_gfx_func_composite_mask_color_span_get(dc->col.col, dst, 1, dc->render_op); - - if (!dc->cutout.rects) - { - evas_common_font_draw_internal(dst, dc, fn, x, y, text_props, - func, ext_x, ext_y, ext_w, ext_h, - im_w, im_h); - } - else - { - c = dc->clip.use; cx = dc->clip.x; cy = dc->clip.y; cw = dc->clip.w; ch = dc->clip.h; - evas_common_draw_context_clip_clip(dc, 0, 0, dst->cache_entry.w, dst->cache_entry.h); - /* our clip is 0 size.. abort */ - if ((dc->clip.w > 0) && (dc->clip.h > 0)) - { - rects = evas_common_draw_context_apply_cutouts(dc); - for (i = 0; i < rects->active; ++i) - { - r = rects->rects + i; - evas_common_draw_context_set_clip(dc, r->x, r->y, r->w, r->h); - evas_common_font_draw_internal(dst, dc, fn, x, y, text_props, - func, r->x, r->y, r->w, r->h, - im_w, im_h); - } - evas_common_draw_context_apply_clear_cutouts(rects); - } - dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; - } -#ifdef EVAS_FRAME_QUEUING - LKU(fn->lock); -#endif -} - -/* Only used if cache is on */ -#if defined(METRIC_CACHE) || defined(WORD_CACHE) - -static Eina_Bool -_evas_font_word_prerender_text_props_equal(const Evas_Text_Props *_a, const Evas_Text_Props *_b) -{ - Evas_Font_Glyph_Info *gl1, *gl2; - size_t i; - - if ((_a->len != _b->len) || - (_a->font_instance != _b->font_instance)) - return EINA_FALSE; - - gl1 = _a->info->glyph + _a->start; - gl2 = _b->info->glyph + _b->start; - i = _a->len; - for ( ; (i > 0) && (gl1->index == gl2->index) ; i--, gl1++, gl2++) - ; - - return (i == 0); -} - -static struct prword * -evas_font_word_prerender(RGBA_Draw_Context *dc, const Evas_Text_Props *text_props) -{ - struct cinfo *metrics; - unsigned char *im; - int width; - int height, above, below, baseline, descent; - unsigned int i,j; - struct prword *w; - int last_delta = 0; - Eina_Unicode gl; - struct cinfo *ci; - unsigned int len = text_props->len; - RGBA_Font_Int *fi = (RGBA_Font_Int *) text_props->font_instance; - EVAS_FONT_WALK_TEXT_INIT(); - -# ifndef METRIC_CACHE - gl = dc->font_ext.func.gl_new ? 1: 0; - if (gl) return NULL; -# endif - - LKL(lock_words); - EINA_INLIST_FOREACH(words,w) - { - if (_evas_font_word_prerender_text_props_equal(&w->text_props, - text_props)) - { - words = eina_inlist_promote(words, EINA_INLIST_GET(w)); - LKU(lock_words); - return w; - } - } - LKU(lock_words); - - gl = dc->font_ext.func.gl_new ? 1: 0; - - above = 0; below = 0; baseline = 0; height = 0; descent = 0; - - /* First pass: Work out how big and populate */ - metrics = malloc(sizeof(struct cinfo) * len); - ci = metrics; - EVAS_FONT_WALK_TEXT_START() - { - FT_UInt index; - RGBA_Font_Glyph *fg; - index = EVAS_FONT_WALK_INDEX; - LKL(fi->ft_mutex); - fg = evas_common_font_int_cache_glyph_get(fi, index); - if (!fg) - { - LKU(fi->ft_mutex); - continue; - } - - LKU(fi->ft_mutex); - EVAS_FONT_WALK_TEXT_WORK(); - /* Currently broken with invisible chars if (!EVAS_FONT_WALK_IS_VISIBLE) continue; */ - ci->index = index; - ci->fg = fg; - - if (gl) - { - ci->fg->ext_dat =dc->font_ext.func.gl_new(dc->font_ext.data,ci->fg); - ci->fg->ext_dat_free = dc->font_ext.func.gl_free; - } - ci->bm.data = ci->fg->glyph_out->bitmap.buffer; - ci->bm.w = MAX(ci->fg->glyph_out->bitmap.pitch, - ci->fg->glyph_out->bitmap.width); - ci->bm.rows = ci->fg->glyph_out->bitmap.rows; - ci->bm.h = ci->fg->glyph_out->top; - above = ci->bm.rows - (ci->bm.rows - ci->bm.h); - below = ci->bm.rows - ci->bm.h; - if (below > descent) descent = below; - if (above > baseline) baseline = above; - ci->pos.x = EVAS_FONT_WALK_PEN_X + EVAS_FONT_WALK_X_OFF + EVAS_FONT_WALK_X_BEAR; - ci->pos.y = EVAS_FONT_WALK_PEN_Y + EVAS_FONT_WALK_Y_OFF + EVAS_FONT_WALK_Y_BEAR; - last_delta = EVAS_FONT_WALK_X_ADV - - (ci->bm.w + ci->fg->glyph_out->left); - ci++; - } - EVAS_FONT_WALK_TEXT_END(); - - /* First loop done */ - width = EVAS_FONT_WALK_PEN_X; - if (last_delta < 0) - width -= last_delta; - width = (width & 0x7) ? width + (8 - (width & 0x7)) : width; - - height = baseline + descent; - if (!gl) - { - im = calloc(height, width); - for (i = 0 ; i < len ; i ++) - { - struct cinfo *cin = metrics + i; - - for (j = 0 ; j < cin->bm.rows ; j ++) - { - int correction; /* Used to remove negative inset and such */ - if (cin->pos.x < 0) - correction = -cin->pos.x; - else - correction = 0; - - memcpy(im + cin->pos.x + (j + baseline - cin->bm.h) * width + - correction, - cin->bm.data + j * cin->bm.w + correction, - cin->bm.w - correction); - } - } - } - else - { - im = NULL; - } - - /* Save it */ - struct prword *save; - - save = malloc(sizeof(struct prword)); - save->cinfo = metrics; - evas_common_text_props_content_copy_and_ref(&save->text_props, text_props); - save->im = im; - save->width = EVAS_FONT_WALK_PEN_X; - if (last_delta < 0) - save->width += last_delta; - save->roww = width; - save->height = height; - save->baseline = baseline; - LKL(lock_words); - words = eina_inlist_prepend(words, EINA_INLIST_GET(save)); - - /* Clean up if too long */ - if (eina_inlist_count(words) > max_cached_words) - { - struct prword *last = (struct prword *)(words->last); - - if (last) - { - if (last->im) free(last->im); - if (last->cinfo) free(last->cinfo); - evas_common_text_props_content_unref(&last->text_props); - words = eina_inlist_remove(words, EINA_INLIST_GET(last)); - free(last); - } - } - LKU(lock_words); - - return save; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_font_load.c b/libraries/evas/src/lib/engines/common/evas_font_load.c deleted file mode 100644 index abba9e3..0000000 --- a/libraries/evas/src/lib/engines/common/evas_font_load.c +++ /dev/null @@ -1,925 +0,0 @@ -#include "evas_common.h" -#include "evas_private.h" - -#include - -#include "evas_font_private.h" /* for Frame-Queuing support */ -#include "evas_font_ot.h" - -#ifdef USE_HARFBUZZ -# include -# include -#endif - -extern FT_Library evas_ft_lib; - -static int font_cache_usage = 0; -static int font_cache = 0; -static int font_dpi = 75; - -static Eina_Hash *fonts_src = NULL; -static Eina_Hash *fonts = NULL; -static Eina_List *fonts_lru = NULL; -static Eina_Inlist *fonts_use_lru = NULL; -static int fonts_use_usage = 0; - -static void _evas_common_font_int_clear(RGBA_Font_Int *fi); - -static int -_evas_font_cache_int_cmp(const RGBA_Font_Int *k1, int k1_length __UNUSED__, - const RGBA_Font_Int *k2, int k2_length __UNUSED__) -{ - /* RGBA_Font_Source->name is a stringshare */ - if (k1->src->name == k2->src->name) - { - if (k1->size == k2->size) - return k1->wanted_rend - k2->wanted_rend; - else - return k1->size - k2->size; - } - return strcmp(k1->src->name, k2->src->name); -} - -static int -_evas_font_cache_int_hash(const RGBA_Font_Int *key, int key_length __UNUSED__) -{ - int hash; - unsigned int wanted_rend = key->wanted_rend; - hash = eina_hash_djb2(key->src->name, eina_stringshare_strlen(key->src->name) + 1); - hash ^= eina_hash_int32(&key->size, sizeof (int)); - hash ^= eina_hash_int32(&wanted_rend, sizeof (int)); - return hash; -} - -static void -_evas_common_font_source_free(RGBA_Font_Source *fs) -{ - FTLOCK(); - FT_Done_Face(fs->ft.face); - FTUNLOCK(); - if (fs->name) eina_stringshare_del(fs->name); - if (fs->file) eina_stringshare_del(fs->file); - free(fs); -} - -static void -_evas_common_font_int_free(RGBA_Font_Int *fi) -{ - FT_Done_Size(fi->ft.size); - - evas_common_font_int_modify_cache_by(fi, -1); - _evas_common_font_int_clear(fi); - eina_hash_free(fi->kerning); - - LKD(fi->ft_mutex); -#ifdef USE_HARFBUZZ - hb_font_destroy(fi->ft.hb_font); -#endif - evas_common_font_source_free(fi->src); - if (fi->references == 0) fonts_lru = eina_list_remove(fonts_lru, fi); - if (fi->fash) fi->fash->freeme(fi->fash); - if (fi->inuse) - { - fonts_use_lru = eina_inlist_remove(fonts_use_lru, EINA_INLIST_GET(fi)); - fi->inuse = 0; - fonts_use_usage -= fi->usage; - fi->usage = 0; - } - free(fi); -} - -void -evas_common_font_load_init(void) -{ - fonts_src = eina_hash_string_small_new(EINA_FREE_CB(_evas_common_font_source_free)); - fonts = eina_hash_new(NULL, - EINA_KEY_CMP(_evas_font_cache_int_cmp), - EINA_KEY_HASH(_evas_font_cache_int_hash), - EINA_FREE_CB(_evas_common_font_int_free), - 5); -} - -void -evas_common_font_load_shutdown(void) -{ - eina_hash_free(fonts); - fonts = NULL; - eina_hash_free(fonts_src); - fonts_src = NULL; -} - -EAPI void -evas_common_font_dpi_set(int dpi) -{ - font_dpi = dpi; -} - -EAPI RGBA_Font_Source * -evas_common_font_source_memory_load(const char *name, const void *data, int data_size) -{ - int error; - RGBA_Font_Source *fs; - - assert(name != NULL); - fs = calloc(1, sizeof(RGBA_Font_Source) + data_size); - if (!fs) return NULL; - fs->data = ((unsigned char *)fs) + sizeof(RGBA_Font_Source); - fs->data_size = data_size; - fs->current_size = 0; - memcpy(fs->data, data, data_size); - FTLOCK(); - error = FT_New_Memory_Face(evas_ft_lib, fs->data, fs->data_size, 0, &(fs->ft.face)); - FTUNLOCK(); - if (error) - { - free(fs); - return NULL; - } - fs->name = eina_stringshare_add(name); - fs->file = NULL; - FTLOCK(); - error = FT_Select_Charmap(fs->ft.face, ft_encoding_unicode); - if (error) - { - FT_Done_Face(fs->ft.face); - fs->ft.face = NULL; - free(fs); - return NULL; - } - FTUNLOCK(); - fs->ft.orig_upem = fs->ft.face->units_per_EM; - fs->references = 1; - eina_hash_direct_add(fonts_src, fs->name, fs); - return fs; -} - -EAPI RGBA_Font_Source * -evas_common_font_source_load(const char *name) -{ - RGBA_Font_Source *fs; - - assert(name != NULL); - fs = calloc(1, sizeof(RGBA_Font_Source)); - if (!fs) return NULL; - fs->data = NULL; - fs->data_size = 0; - fs->current_size = 0; - fs->ft.face = NULL; - fs->name = eina_stringshare_add(name); - fs->file = eina_stringshare_ref(fs->name); - fs->ft.orig_upem = 0; - fs->references = 1; - eina_hash_direct_add(fonts_src, fs->name, fs); - return fs; -} - -void -evas_common_font_source_unload(RGBA_Font_Source *fs) -{ - FTLOCK(); - FT_Done_Face(fs->ft.face); - fs->ft.face = NULL; - FTUNLOCK(); -} - -void -evas_common_font_source_reload(RGBA_Font_Source *fs) -{ - if (fs->ft.face) return; - if (fs->data) - { - int error; - - FTLOCK(); - error = FT_New_Memory_Face(evas_ft_lib, fs->data, fs->data_size, 0, &(fs->ft.face)); - FTUNLOCK(); - if (error) return; - FTLOCK(); - error = FT_Select_Charmap(fs->ft.face, ft_encoding_unicode); - if (error) - { - FT_Done_Face(fs->ft.face); - fs->ft.face = NULL; - } - FTUNLOCK(); - } - else - evas_common_font_source_load_complete(fs); -} - -EAPI int -evas_common_font_source_load_complete(RGBA_Font_Source *fs) -{ - int error; - - FTLOCK(); - error = FT_New_Face(evas_ft_lib, fs->file, 0, &(fs->ft.face)); - if (error) - { - FTUNLOCK(); - fs->ft.face = NULL; - return error; - } - error = FT_Select_Charmap(fs->ft.face, ft_encoding_unicode); - if (error) - { - FT_Done_Face(fs->ft.face); - FTUNLOCK(); - fs->ft.face = NULL; - return error; - } - FTUNLOCK(); - fs->ft.orig_upem = fs->ft.face->units_per_EM; - return error; -} - -EAPI RGBA_Font_Source * -evas_common_font_source_find(const char *name) -{ - RGBA_Font_Source *fs; - - if (!name) return NULL; - fs = eina_hash_find(fonts_src, name); - if (fs) - { - fs->references++; - return fs; - } - return NULL; -} - -EAPI void -evas_common_font_source_free(RGBA_Font_Source *fs) -{ - fs->references--; - if (fs->references > 0) return; - eina_hash_del(fonts_src, fs->name, fs); -} - -EAPI void -evas_common_font_size_use(RGBA_Font *fn) -{ - RGBA_Font_Int *fi; - Eina_List *l; - - EINA_LIST_FOREACH(fn->fonts, l, fi) - { - if (fi->src->current_size != fi->size) - { - evas_common_font_source_reload(fi->src); - FTLOCK(); - FT_Activate_Size(fi->ft.size); - FTUNLOCK(); - fi->src->current_size = fi->size; - } - } -} - -static int -_evas_common_font_double_int_cmp(const int *key1, __UNUSED__ int key1_length, - const int *key2, __UNUSED__ int key2_length) -{ - if (key1[0] - key2[0] == 0) return key1[1] - key2[1]; - return key1[0] - key2[0]; -} - -static int -_evas_common_font_double_int_hash(const unsigned int key[2], int key_length) -{ - return - eina_hash_int32(&key[0], key_length) ^ - eina_hash_int32(&key[1], key_length); -} - -static void -_evas_common_font_int_cache_init(RGBA_Font_Int *fi) -{ - /* Add some font kerning cache. */ - fi->kerning = eina_hash_new(NULL, - EINA_KEY_CMP(_evas_common_font_double_int_cmp), - EINA_KEY_HASH(_evas_common_font_double_int_hash), - free, 3); - LKI(fi->ft_mutex); -} - -EAPI RGBA_Font_Int * -evas_common_font_int_memory_load(const char *name, int size, const void *data, int data_size, Font_Rend_Flags wanted_rend) -{ - RGBA_Font_Int *fi; - - fi = evas_common_font_int_find(name, size, wanted_rend); - if (fi) return fi; - fi = calloc(1, sizeof(RGBA_Font_Int)); - if (!fi) return NULL; - fi->src = evas_common_font_source_find(name); - if (!fi->src) - fi->src = evas_common_font_source_memory_load(name, data, data_size); - if (!fi->src) - { - free(fi); - return NULL; - } - fi->size = size; - _evas_common_font_int_cache_init(fi); - fi = evas_common_font_int_load_init(fi); - evas_common_font_int_load_complete(fi); - return fi; -} - -EAPI RGBA_Font_Int * -evas_common_font_int_load(const char *name, int size, - Font_Rend_Flags wanted_rend) -{ - RGBA_Font_Int *fi; - - fi = evas_common_font_int_find(name, size, wanted_rend); - if (fi) return fi; - fi = calloc(1, sizeof(RGBA_Font_Int)); - if (!fi) return NULL; - fi->src = evas_common_font_source_find(name); - if (!fi->src && evas_file_path_is_file(name)) - fi->src = evas_common_font_source_load(name); - - if (!fi->src) - { - free(fi); - return NULL; - } - fi->size = size; - fi->wanted_rend = wanted_rend; - _evas_common_font_int_cache_init(fi); - fi = evas_common_font_int_load_init(fi); -// evas_common_font_int_load_complete(fi); - return fi; -} - -EAPI RGBA_Font_Int * -evas_common_font_int_load_init(RGBA_Font_Int *fi) -{ - fi->ft.size = NULL; - fi->references = 1; - eina_hash_direct_add(fonts, fi, fi); - return fi; -} - -EAPI RGBA_Font_Int * -evas_common_font_int_load_complete(RGBA_Font_Int *fi) -{ - int val, dv; - int ret; - int error; - - FTLOCK(); - error = FT_New_Size(fi->src->ft.face, &(fi->ft.size)); - if (!error) - { - FT_Activate_Size(fi->ft.size); - } - fi->real_size = fi->size * 64; - error = FT_Set_Char_Size(fi->src->ft.face, 0, fi->real_size, font_dpi, font_dpi); - if (error) - { - fi->real_size = fi->size; - error = FT_Set_Pixel_Sizes(fi->src->ft.face, 0, fi->real_size); - } - FTUNLOCK(); - if (error) - { - int i; - int chosen_size = 0; - int chosen_width = 0; - - for (i = 0; i < fi->src->ft.face->num_fixed_sizes; i++) - { - int s; - int d, cd; - - s = fi->src->ft.face->available_sizes[i].height; - cd = chosen_size - fi->size; - if (cd < 0) cd = -cd; - d = s - fi->size; - if (d < 0) d = -d; - if (d < cd) - { - chosen_width = fi->src->ft.face->available_sizes[i].width; - chosen_size = s; - } - if (d == 0) break; - } - fi->real_size = chosen_size; - FTLOCK(); - error = FT_Set_Pixel_Sizes(fi->src->ft.face, chosen_width, fi->real_size); - FTUNLOCK(); - if (error) - { - /* couldn't choose the size anyway... what now? */ - } - } - fi->src->current_size = 0; - fi->max_h = 0; - val = (int)fi->src->ft.face->bbox.yMax; - if (fi->src->ft.face->units_per_EM != 0) - { - dv = (fi->src->ft.orig_upem * 2048) / fi->src->ft.face->units_per_EM; - ret = (val * fi->src->ft.face->size->metrics.y_scale) / (dv * dv); - } - else ret = val; - fi->max_h += ret; - val = -(int)fi->src->ft.face->bbox.yMin; - if (fi->src->ft.face->units_per_EM != 0) - { - dv = (fi->src->ft.orig_upem * 2048) / fi->src->ft.face->units_per_EM; - ret = (val * fi->src->ft.face->size->metrics.y_scale) / (dv * dv); - } - else ret = val; - fi->max_h += ret; - - /* If the loaded font doesn't match with wanted_rend value requested by - * textobject and textblock, Set the runtime_rend value as FONT_REND_SLANT - * or FONT_REND_WEIGHT for software rendering. */ - fi->runtime_rend = FONT_REND_REGULAR; - if ((fi->wanted_rend & FONT_REND_SLANT) && - !(fi->src->ft.face->style_flags & FT_STYLE_FLAG_ITALIC)) - fi->runtime_rend |= FONT_REND_SLANT; - - if ((fi->wanted_rend & FONT_REND_WEIGHT) && - !(fi->src->ft.face->style_flags & FT_STYLE_FLAG_BOLD)) - fi->runtime_rend |= FONT_REND_WEIGHT; - - return fi; -} - -EAPI RGBA_Font * -evas_common_font_memory_load(const char *name, int size, const void *data, int data_size, Font_Rend_Flags wanted_rend) -{ - RGBA_Font *fn; - RGBA_Font_Int *fi; - - fi = evas_common_font_int_memory_load(name, size, data, data_size, - wanted_rend); - if (!fi) return NULL; - fn = calloc(1, sizeof(RGBA_Font)); - if (!fn) - { - fi->references--; - if (fi->references == 0) - { - fonts_lru = eina_list_prepend(fonts_lru, fi); - evas_common_font_int_modify_cache_by(fi, 1); - evas_common_font_flush(); - } - return NULL; - } - fn->fonts = eina_list_append(fn->fonts, fi); - fn->hinting = FONT_BYTECODE_HINT; - fi->hinting = fn->hinting; - fn->references = 1; - LKI(fn->lock); -#ifdef EVAS_FRAME_QUEUING - LKI(fn->ref_fq_add); - LKI(fn->ref_fq_del); - eina_condition_new(&(fn->cond_fq_del), &(fn->ref_fq_del)); -#endif - if (fi->inuse) evas_common_font_int_promote(fi); - else - { - fi->inuse = 1; - fonts_use_lru = eina_inlist_prepend(fonts_use_lru, EINA_INLIST_GET(fi)); - } - return fn; -} - - -//ZZZ: font struct looks like: -// fn->(fi, fi, fi, ...) -// fi->fs - -EAPI RGBA_Font * -evas_common_font_load(const char *name, int size, Font_Rend_Flags wanted_rend) -{ - RGBA_Font *fn; - RGBA_Font_Int *fi; - - fi = evas_common_font_int_load(name, size, wanted_rend); - if (!fi) return NULL; - /* First font, complete load */ - if (!fi->ft.size) - { - if (!fi->src->ft.face) - { - if (evas_common_font_source_load_complete(fi->src)) - { - fi->references--; - if (fi->references == 0) - { - fonts_lru = eina_list_prepend(fonts_lru, fi); - evas_common_font_int_modify_cache_by(fi, 1); - evas_common_font_flush(); - } - return NULL; - } - } - evas_common_font_int_load_complete(fi); - } - fn = calloc(1, sizeof(RGBA_Font)); - if (!fn) - { - fi->references--; - if (fi->references == 0) - { - fonts_lru = eina_list_prepend(fonts_lru, fi); - evas_common_font_int_modify_cache_by(fi, 1); - evas_common_font_flush(); - } - return NULL; - } - - fn->fonts = eina_list_append(fn->fonts, fi); - fn->hinting = FONT_BYTECODE_HINT; - fi->hinting = fn->hinting; - fn->references = 1; - LKI(fn->lock); -#ifdef EVAS_FRAME_QUEUING - LKI(fn->ref_fq_add); - LKI(fn->ref_fq_del); - eina_condition_new(&(fn->cond_fq_del), &(fn->ref_fq_del)); -#endif - if (fi->inuse) evas_common_font_int_promote(fi); - else - { - fi->inuse = 1; - fonts_use_lru = eina_inlist_prepend(fonts_use_lru, EINA_INLIST_GET(fi)); - } - return fn; -} - -EAPI RGBA_Font * -evas_common_font_add(RGBA_Font *fn, const char *name, int size, Font_Rend_Flags wanted_rend) -{ - RGBA_Font_Int *fi; - - if (!fn) return NULL; - fi = evas_common_font_int_load(name, size, wanted_rend); - if (fi) - { - fn->fonts = eina_list_append(fn->fonts, fi); - fi->hinting = fn->hinting; - if (fi->inuse) evas_common_font_int_promote(fi); - else - { - fi->inuse = 1; - fonts_use_lru = eina_inlist_prepend(fonts_use_lru, EINA_INLIST_GET(fi)); - } - return fn; - } - return NULL; -} - -EAPI RGBA_Font * -evas_common_font_memory_add(RGBA_Font *fn, const char *name, int size, const void *data, int data_size, Font_Rend_Flags wanted_rend) -{ - RGBA_Font_Int *fi; - - if (!fn) - return NULL; - fi = evas_common_font_int_memory_load(name, size, data, data_size, wanted_rend); - if (fi) - { - fn->fonts = eina_list_append(fn->fonts, fi); - fi->hinting = fn->hinting; - if (fi->inuse) evas_common_font_int_promote(fi); - else - { - fi->inuse = 1; - fonts_use_lru = eina_inlist_prepend(fonts_use_lru, EINA_INLIST_GET(fi)); - } - return fn; - } - return NULL; -} - -EAPI void -evas_common_font_free(RGBA_Font *fn) -{ - Eina_List *l; - RGBA_Font_Int *fi; - - if (!fn) return; - fn->references--; - if (fn->references > 0) return; -#ifdef EVAS_FRAME_QUEUING - LKL(fn->ref_fq_add); - LKL(fn->ref_fq_del); - if (fn->ref_fq[0] != fn->ref_fq[1]) - { - LKU(fn->ref_fq_add); - LKU(fn->ref_fq_del); - return; - } - LKU(fn->ref_fq_add); - LKU(fn->ref_fq_del); -#endif - EINA_LIST_FOREACH(fn->fonts, l, fi) - { - fi->references--; - if (fi->references == 0) - { - fonts_lru = eina_list_append(fonts_lru, fi); - evas_common_font_int_modify_cache_by(fi, 1); - } - } - evas_common_font_flush(); - eina_list_free(fn->fonts); - if (fn->fash) fn->fash->freeme(fn->fash); - LKD(fn->lock); -#ifdef EVAS_FRAME_QUEUING - LKD(fn->ref_fq_add); - LKD(fn->ref_fq_del); - eina_condition_free(&(fn->cond_fq_del)); -#endif - free(fn); -} - -EAPI void -evas_common_font_hinting_set(RGBA_Font *fn, Font_Hint_Flags hinting) -{ - Eina_List *l; - RGBA_Font_Int *fi; - - if (!fn) return; - fn->hinting = hinting; - EINA_LIST_FOREACH(fn->fonts, l, fi) - { - fi->hinting = fn->hinting; - } -} - -EAPI Eina_Bool -evas_common_hinting_available(Font_Hint_Flags hinting) -{ - switch (hinting) - { - case FONT_NO_HINT: - case FONT_AUTO_HINT: - /* these two hinting modes are always available */ - return EINA_TRUE; - case FONT_BYTECODE_HINT: - /* Only use the bytecode interpreter if support for the _patented_ - * algorithms is available because the free bytecode - * interpreter's results are too crappy. - * - * On freetyp 2.2+, we can ask the library about support for - * the patented interpreter. On older versions, we need to use - * macros to check for it. - */ -#if FREETYPE_MINOR >= 2 - return FT_Get_TrueType_Engine_Type(evas_ft_lib) >= - FT_TRUETYPE_ENGINE_TYPE_PATENTED; -#else - /* we may not rely on TT_CONFIG_OPTION_BYTECODE_INTERPRETER - * here to find out whether it's supported. - * - * so, assume it is. o_O - */ - return EINA_TRUE; -#endif - } - /* shouldn't get here - need to add another case statement */ - return EINA_FALSE; -} - -EAPI RGBA_Font * -evas_common_font_memory_hinting_load(const char *name, int size, const void *data, int data_size, Font_Hint_Flags hinting, Font_Rend_Flags wanted_rend) -{ - RGBA_Font *fn; - - fn = evas_common_font_memory_load(name, size, data, data_size, wanted_rend); - if (fn) evas_common_font_hinting_set(fn, hinting); - return fn; -} - -EAPI RGBA_Font * -evas_common_font_hinting_load(const char *name, int size, Font_Hint_Flags hinting, Font_Rend_Flags wanted_rend) -{ - RGBA_Font *fn; - - fn = evas_common_font_load(name, size, wanted_rend); - if (fn) evas_common_font_hinting_set(fn, hinting); - return fn; -} - -EAPI RGBA_Font * -evas_common_font_hinting_add(RGBA_Font *fn, const char *name, int size, Font_Hint_Flags hinting, Font_Rend_Flags wanted_rend) -{ - fn = evas_common_font_add(fn, name, size, wanted_rend); - if (fn) evas_common_font_hinting_set(fn, hinting); - return fn; -} - -EAPI RGBA_Font * -evas_common_font_memory_hinting_add(RGBA_Font *fn, const char *name, int size, const void *data, int data_size, Font_Hint_Flags hinting, Font_Rend_Flags wanted_rend) -{ - fn = evas_common_font_memory_add(fn, name, size, data, data_size, - wanted_rend); - if (fn) evas_common_font_hinting_set(fn, hinting); - return fn; -} - -static void -_evas_common_font_int_clear(RGBA_Font_Int *fi) -{ - int i, j, k; - - LKL(fi->ft_mutex); - if (!fi->fash) - { - LKU(fi->ft_mutex); - return; - } - evas_common_font_int_modify_cache_by(fi, -1); - if (fi->fash) - { - for (k = 0; k <= 0xff; k++) // 24bits for unicode - v6 up to E01EF (chrs) & 10FFFD for private use (plane 16) - { - Fash_Glyph_Map2 *fmap2 = fi->fash->bucket[k]; - if (fmap2) - { - for (j = 0; j <= 0xff; j++) // 24bits for unicode - v6 up to E01EF (chrs) & 10FFFD for private use (plane 16) - { - Fash_Glyph_Map *fmap = fmap2->bucket[j]; - if (fmap) - { - for (i = 0; i <= 0xff; i++) - { - RGBA_Font_Glyph *fg = fmap->item[i]; - if ((fg) && (fg != (void *)(-1))) - { - FT_Done_Glyph(fg->glyph); - /* extension calls */ - if (fg->ext_dat_free) fg->ext_dat_free(fg->ext_dat); - free(fg); - fmap->item[i] = NULL; - } - } - } - } - } - } - fi->fash->freeme(fi->fash); - fi->fash = NULL; - } - if (fi->inuse) fonts_use_usage -= fi->usage; - fi->usage = 0; - LKU(fi->ft_mutex); -} - -static Eina_Bool -_evas_common_font_all_clear_cb(const Eina_Hash *hash __UNUSED__, const void *key __UNUSED__, void *data, void *fdata __UNUSED__) -{ - RGBA_Font_Int *fi = data; - _evas_common_font_int_clear(fi); - return 1; -} - -EAPI void -evas_common_font_all_clear(void) -{ - eina_hash_foreach(fonts, _evas_common_font_all_clear_cb, NULL); -} - -void -evas_common_font_int_promote(RGBA_Font_Int *fi) -{ - return; - if (fonts_use_lru == (Eina_Inlist *)fi) return; - if (!fi->inuse) return; - fonts_use_lru = eina_inlist_remove(fonts_use_lru, EINA_INLIST_GET(fi)); - fonts_use_lru = eina_inlist_prepend(fonts_use_lru, EINA_INLIST_GET(fi)); -} - -void -evas_common_font_int_use_increase(int size) -{ - fonts_use_usage += size; -} - -void -evas_common_font_int_use_trim(void) -{ - Eina_Inlist *l; - - return; - if (fonts_use_usage <= (font_cache << 1)) return; - if (!fonts_use_lru) return; - l = fonts_use_lru->last; - while (l) - { - RGBA_Font_Int *fi = (RGBA_Font_Int *)l; - if (fonts_use_usage <= (font_cache << 1)) break; - // FIXME: del fi->kerning content - _evas_common_font_int_clear(fi); - evas_common_font_int_unload(fi); - evas_common_font_int_promote(fi); - l = l->prev; - } -} - -void -evas_common_font_int_unload(RGBA_Font_Int *fi) -{ - return; - if (!fi->src->ft.face) return; - _evas_common_font_int_clear(fi); - FT_Done_Size(fi->ft.size); - fi->ft.size = NULL; - evas_common_font_source_unload(fi->src); -} - -void -evas_common_font_int_reload(RGBA_Font_Int *fi) -{ - if (fi->src->ft.face) return; - evas_common_font_source_load_complete(fi->src); - return; - evas_common_font_source_reload(fi->src); - evas_common_font_int_load_complete(fi); -} - -/* when the fi->references == 0 we increase this instead of really deleting - * we then check if the cache_useage size is larger than allowed - * !If the cache is NOT too large we dont delete font_int - * !If the cache is too large we really delete font_int */ -EAPI void -evas_common_font_int_modify_cache_by(RGBA_Font_Int *fi, int dir) -{ - font_cache_usage += dir * (sizeof(RGBA_Font) + fi->usage + - sizeof(FT_FaceRec) + 16384); /* fudge values */ -} - -EAPI int -evas_common_font_cache_get(void) -{ - return font_cache; -} - -EAPI void -evas_common_font_cache_set(int size) -{ - font_cache = size; - evas_common_font_flush(); - evas_common_font_int_use_trim(); -} - -EAPI void -evas_common_font_flush(void) -{ - if (font_cache_usage < font_cache) return; - while (font_cache_usage > font_cache) - { - int pfont_cache_usage; - - pfont_cache_usage = font_cache_usage; - evas_common_font_flush_last(); - if (pfont_cache_usage == font_cache_usage) break; - } -} - -/* We run this when the cache gets larger than allowed size - * We check cache size each time a fi->references goes to 0 - * PERFORMS: Find font_int(s) with references == 0 and delete them */ -EAPI void -evas_common_font_flush_last(void) -{ - RGBA_Font_Int *fi = NULL; - - if (!fonts_lru) return ; - fi = eina_list_data_get(fonts_lru); - fonts_lru = eina_list_remove_list(fonts_lru, fonts_lru); - eina_hash_del(fonts, fi, fi); -} - -EAPI RGBA_Font_Int * -evas_common_font_int_find(const char *name, int size, - Font_Rend_Flags wanted_rend) -{ - RGBA_Font_Int tmp_fi; - RGBA_Font_Source tmp_fn; - RGBA_Font_Int *fi; - - tmp_fn.name = (char*) eina_stringshare_add(name); - tmp_fi.src = &tmp_fn; - tmp_fi.size = size; - tmp_fi.wanted_rend = wanted_rend; - fi = eina_hash_find(fonts, &tmp_fi); - if (fi) - { - if (fi->references == 0) - { - evas_common_font_int_modify_cache_by(fi, -1); - fonts_lru = eina_list_remove(fonts_lru, fi); - } - fi->references++; - } - eina_stringshare_del(tmp_fn.name); - return fi; -} diff --git a/libraries/evas/src/lib/engines/common/evas_font_main.c b/libraries/evas/src/lib/engines/common/evas_font_main.c deleted file mode 100644 index 7b3dabe..0000000 --- a/libraries/evas/src/lib/engines/common/evas_font_main.c +++ /dev/null @@ -1,545 +0,0 @@ -#include "evas_common.h" -#include "evas_private.h" - -#include "evas_font_private.h" - -#include FT_OUTLINE_H - -FT_Library evas_ft_lib = 0; -static int initialised = 0; - -LK(lock_font_draw); // for freetype2 API calls -LK(lock_bidi); // for evas bidi internal usage. -LK(lock_ot); // for evas bidi internal usage. - -EAPI void -evas_common_font_init(void) -{ - int error; - const char *s; - - initialised++; - if (initialised != 1) return; - error = FT_Init_FreeType(&evas_ft_lib); - if (error) return; - evas_common_font_load_init(); - evas_common_font_draw_init(); - s = getenv("EVAS_FONT_DPI"); - if (s) - { - int dpi = atoi(s); - - if (dpi > 0) evas_common_font_dpi_set(dpi); - } - LKI(lock_font_draw); - LKI(lock_bidi); - LKI(lock_ot); -} - -EAPI void -evas_common_font_shutdown(void) -{ - if (initialised < 1) return; - initialised--; - if (initialised != 0) return; - - LKD(lock_font_draw); - LKD(lock_bidi); - LKD(lock_ot); - - evas_common_font_load_shutdown(); - evas_common_font_cache_set(0); - evas_common_font_flush(); - - FT_Done_FreeType(evas_ft_lib); -#ifdef EVAS_FRAME_QUEUING - evas_common_font_draw_finish(); -#endif - evas_ft_lib = 0; -} - -EAPI void -evas_common_font_font_all_unload(void) -{ - evas_common_font_all_clear(); -} - -EAPI int -evas_common_font_ascent_get(RGBA_Font *fn) -{ - int val; - RGBA_Font_Int *fi; - -// evas_common_font_size_use(fn); -#if 0 - { - Eina_List *l; - - EINA_LIST_FOREACH(fn->fonts, l, fi) - { - if (!fi->src->ft.face) continue; - if (fi->src->current_size != fi->size) - { - FTLOCK(); - FT_Activate_Size(fi->ft.size); - FTUNLOCK(); - fi->src->current_size = fi->size; - } - val = (int)fi->src->ft.face->size->metrics.ascender; - if (fi->src->ft.face->units_per_EM == 0) - return val; - dv = (fi->src->ft.orig_upem * 2048) / fi->src->ft.face->units_per_EM; - ret = (val * fi->src->ft.face->size->metrics.y_scale) / (dv * dv); - printf(" ==== %p: %i\n", fi, ret); - } - } -#endif - fi = fn->fonts->data; - evas_common_font_int_reload(fi); - if (fi->src->current_size != fi->size) - { - FTLOCK(); - FT_Activate_Size(fi->ft.size); - FTUNLOCK(); - fi->src->current_size = fi->size; - } - if (!FT_IS_SCALABLE(fi->src->ft.face)) - { - WRN("NOT SCALABLE!"); - } - val = (int)fi->src->ft.face->size->metrics.ascender; - return val >> 6; -// printf("%i | %i\n", val, val >> 6); -// if (fi->src->ft.face->units_per_EM == 0) -// return val; -// dv = (fi->src->ft.orig_upem * 2048) / fi->src->ft.face->units_per_EM; -// ret = (val * fi->src->ft.face->size->metrics.y_scale) / (dv * dv); -// return ret; -} - -EAPI int -evas_common_font_descent_get(RGBA_Font *fn) -{ - int val; - RGBA_Font_Int *fi; - -// evas_common_font_size_use(fn); - fi = fn->fonts->data; - evas_common_font_int_reload(fi); - if (fi->src->current_size != fi->size) - { - FTLOCK(); - FT_Activate_Size(fi->ft.size); - FTUNLOCK(); - fi->src->current_size = fi->size; - } - val = -(int)fi->src->ft.face->size->metrics.descender; - return val >> 6; -// if (fi->src->ft.face->units_per_EM == 0) -// return val; -// dv = (fi->src->ft.orig_upem * 2048) / fi->src->ft.face->units_per_EM; -// ret = (val * fi->src->ft.face->size->metrics.y_scale) / (dv * dv); -// return ret; -} - -EAPI int -evas_common_font_max_ascent_get(RGBA_Font *fn) -{ - int val, dv; - int ret; - RGBA_Font_Int *fi; - -// evas_common_font_size_use(fn); - fi = fn->fonts->data; - evas_common_font_int_reload(fi); - if (fi->src->current_size != fi->size) - { - FTLOCK(); - FT_Activate_Size(fi->ft.size); - FTUNLOCK(); - fi->src->current_size = fi->size; - } - val = (int)fi->src->ft.face->bbox.yMax; - if (fi->src->ft.face->units_per_EM == 0) - return val; - dv = (fi->src->ft.orig_upem * 2048) / fi->src->ft.face->units_per_EM; - ret = (val * fi->src->ft.face->size->metrics.y_scale) / (dv * dv); - return ret; -} - -EAPI int -evas_common_font_max_descent_get(RGBA_Font *fn) -{ - int val, dv; - int ret; - RGBA_Font_Int *fi; - -// evas_common_font_size_use(fn); - fi = fn->fonts->data; - evas_common_font_int_reload(fi); - if (fi->src->current_size != fi->size) - { - FTLOCK(); - FT_Activate_Size(fi->ft.size); - FTUNLOCK(); - fi->src->current_size = fi->size; - } - val = -(int)fi->src->ft.face->bbox.yMin; - if (fi->src->ft.face->units_per_EM == 0) - return val; - dv = (fi->src->ft.orig_upem * 2048) / fi->src->ft.face->units_per_EM; - ret = (val * fi->src->ft.face->size->metrics.y_scale) / (dv * dv); - return ret; -} - -EAPI int -evas_common_font_get_line_advance(RGBA_Font *fn) -{ - int val; - RGBA_Font_Int *fi; - -// evas_common_font_size_use(fn); - fi = fn->fonts->data; - evas_common_font_int_reload(fi); - if (fi->src->current_size != fi->size) - { - FTLOCK(); - FT_Activate_Size(fi->ft.size); - FTUNLOCK(); - fi->src->current_size = fi->size; - } - val = (int)fi->src->ft.face->size->metrics.height; - if (fi->src->ft.face->units_per_EM == 0) - return val; - return val >> 6; -// dv = (fi->src->ft.orig_upem * 2048) / fi->src->ft.face->units_per_EM; -// ret = (val * fi->src->ft.face->size->metrics.y_scale) / (dv * dv); -// return ret; -} - -/* Set of common functions that are used in a couple of places. */ - -static void -_fash_int2_free(Fash_Int_Map2 *fash) -{ - int i; - - for (i = 0; i < 256; i++) if (fash->bucket[i]) free(fash->bucket[i]); - free(fash); -} - -static void -_fash_int_free(Fash_Int *fash) -{ - int i; - - for (i = 0; i < 256; i++) if (fash->bucket[i]) _fash_int2_free(fash->bucket[i]); - free(fash); -} - -static Fash_Int * -_fash_int_new(void) -{ - Fash_Int *fash = calloc(1, sizeof(Fash_Int)); - fash->freeme = _fash_int_free; - return fash; -} - -static Fash_Item_Index_Map * -_fash_int_find(Fash_Int *fash, int item) -{ - int grp, maj, min; - - // 24bits for unicode - v6 up to E01EF (chrs) & 10FFFD for private use (plane 16) - grp = (item >> 16) & 0xff; - maj = (item >> 8) & 0xff; - min = item & 0xff; - if (!fash->bucket[grp]) return NULL; - if (!fash->bucket[grp]->bucket[maj]) return NULL; - return &(fash->bucket[grp]->bucket[maj]->item[min]); -} - -static void -_fash_int_add(Fash_Int *fash, int item, RGBA_Font_Int *fint, int idx) -{ - int grp, maj, min; - - // 24bits for unicode - v6 up to E01EF (chrs) & 10FFFD for private use (plane 16) - grp = (item >> 16) & 0xff; - maj = (item >> 8) & 0xff; - min = item & 0xff; - if (!fash->bucket[grp]) - fash->bucket[grp] = calloc(1, sizeof(Fash_Int_Map2)); - EINA_SAFETY_ON_NULL_RETURN(fash->bucket[grp]); - if (!fash->bucket[grp]->bucket[maj]) - fash->bucket[grp]->bucket[maj] = calloc(1, sizeof(Fash_Int_Map)); - EINA_SAFETY_ON_NULL_RETURN(fash->bucket[grp]->bucket[maj]); - fash->bucket[grp]->bucket[maj]->item[min].fint = fint; - fash->bucket[grp]->bucket[maj]->item[min].index = idx; -} - -static void -_fash_gl2_free(Fash_Glyph_Map2 *fash) -{ - int i; - - for (i = 0; i < 256; i++) if (fash->bucket[i]) free(fash->bucket[i]); - free(fash); -} - -static void -_fash_gl_free(Fash_Glyph *fash) -{ - int i; - - for (i = 0; i < 256; i++) if (fash->bucket[i]) _fash_gl2_free(fash->bucket[i]); - free(fash); -} - -static Fash_Glyph * -_fash_gl_new(void) -{ - Fash_Glyph *fash = calloc(1, sizeof(Fash_Glyph)); - fash->freeme = _fash_gl_free; - return fash; -} - -static RGBA_Font_Glyph * -_fash_gl_find(Fash_Glyph *fash, int item) -{ - int grp, maj, min; - - // 24bits for unicode - v6 up to E01EF (chrs) & 10FFFD for private use (plane 16) - grp = (item >> 16) & 0xff; - maj = (item >> 8) & 0xff; - min = item & 0xff; - if (!fash->bucket[grp]) return NULL; - if (!fash->bucket[grp]->bucket[maj]) return NULL; - return fash->bucket[grp]->bucket[maj]->item[min]; -} - -static void -_fash_gl_add(Fash_Glyph *fash, int item, RGBA_Font_Glyph *glyph) -{ - int grp, maj, min; - - // 24bits for unicode - v6 up to E01EF (chrs) & 10FFFD for private use (plane 16) - grp = (item >> 16) & 0xff; - maj = (item >> 8) & 0xff; - min = item & 0xff; - if (!fash->bucket[grp]) - fash->bucket[grp] = calloc(1, sizeof(Fash_Glyph_Map2)); - EINA_SAFETY_ON_NULL_RETURN(fash->bucket[grp]); - if (!fash->bucket[grp]->bucket[maj]) - fash->bucket[grp]->bucket[maj] = calloc(1, sizeof(Fash_Glyph_Map)); - EINA_SAFETY_ON_NULL_RETURN(fash->bucket[grp]->bucket[maj]); - fash->bucket[grp]->bucket[maj]->item[min] = glyph; -} - -EAPI RGBA_Font_Glyph * -evas_common_font_int_cache_glyph_get(RGBA_Font_Int *fi, FT_UInt idx) -{ - RGBA_Font_Glyph *fg; - FT_UInt hindex; - FT_Error error; - int size; - const FT_Int32 hintflags[3] = - { FT_LOAD_NO_HINTING, FT_LOAD_FORCE_AUTOHINT, FT_LOAD_NO_AUTOHINT }; - static FT_Matrix transform = {0x10000, 0x05000, 0x0000, 0x10000}; // about 12 degree. - - evas_common_font_int_promote(fi); - if (fi->fash) - { - fg = _fash_gl_find(fi->fash, idx); - if (fg == (void *)(-1)) return NULL; - else if (fg) return fg; - } - - hindex = idx + (fi->hinting * 500000000); - -// fg = eina_hash_find(fi->glyphs, &hindex); -// if (fg) return fg; - - evas_common_font_int_reload(fi); - FTLOCK(); - error = FT_Load_Glyph(fi->src->ft.face, idx, - FT_LOAD_DEFAULT | FT_LOAD_NO_BITMAP | - hintflags[fi->hinting]); - FTUNLOCK(); - if (error) - { - if (!fi->fash) fi->fash = _fash_gl_new(); - if (fi->fash) _fash_gl_add(fi->fash, idx, (void *)(-1)); - return NULL; - } - - /* Transform the outline of Glyph according to runtime_rend. */ - if (fi->runtime_rend & FONT_REND_SLANT) - FT_Outline_Transform(&fi->src->ft.face->glyph->outline, &transform); - /* Embolden the outline of Glyph according to rundtime_rend. */ - if (fi->runtime_rend & FONT_REND_WEIGHT) - FT_Outline_Embolden(&fi->src->ft.face->glyph->outline, - (fi->src->ft.face->size->metrics.x_ppem * 5 * 64) / 100); - - fg = malloc(sizeof(struct _RGBA_Font_Glyph)); - if (!fg) return NULL; - memset(fg, 0, (sizeof(struct _RGBA_Font_Glyph))); - - FTLOCK(); - error = FT_Get_Glyph(fi->src->ft.face->glyph, &(fg->glyph)); - FTUNLOCK(); - if (error) - { - free(fg); - if (!fi->fash) fi->fash = _fash_gl_new(); - if (fi->fash) _fash_gl_add(fi->fash, idx, (void *)(-1)); - return NULL; - } - - FTLOCK(); - error = FT_Glyph_To_Bitmap(&(fg->glyph), FT_RENDER_MODE_NORMAL, 0, 1); - if (error) - { - FT_Done_Glyph(fg->glyph); - FTUNLOCK(); - free(fg); - if (!fi->fash) fi->fash = _fash_gl_new(); - if (fi->fash) _fash_gl_add(fi->fash, idx, (void *)(-1)); - return NULL; - } - FTUNLOCK(); - - fg->glyph_out = (FT_BitmapGlyph)fg->glyph; - fg->index = hindex; - fg->fi = fi; - - if (!fi->fash) fi->fash = _fash_gl_new(); - if (fi->fash) _fash_gl_add(fi->fash, idx, fg); - /* This '+ 200' is just an estimation of how much memory freetype will use - * on it's size. This value is not really used anywhere in code - it's - * only for statistics. */ - size = sizeof(RGBA_Font_Glyph) + sizeof(Eina_List) + - (fg->glyph_out->bitmap.width * fg->glyph_out->bitmap.rows) + 200; - fi->usage += size; - if (fi->inuse) evas_common_font_int_use_increase(size); - -// eina_hash_direct_add(fi->glyphs, &fg->index, fg); - return fg; -} - -typedef struct _Font_Char_Index Font_Char_Index; -struct _Font_Char_Index -{ - FT_UInt index; - Eina_Unicode gl; -}; - -EAPI FT_UInt -evas_common_get_char_index(RGBA_Font_Int* fi, Eina_Unicode gl) -{ - Font_Char_Index result; - //FT_UInt ret; - -#ifdef HAVE_PTHREAD -/// pthread_mutex_lock(&fi->ft_mutex); -#endif - -// result = eina_hash_find(fi->indexes, &gl); -// if (result) goto on_correct; -// -// result = malloc(sizeof (Font_Char_Index)); -// if (!result) -// { -//#ifdef HAVE_PTHREAD -// pthread_mutex_unlock(&fi->ft_mutex); -//#endif -// return FT_Get_Char_Index(fi->src->ft.face, gl); -// } - - evas_common_font_int_reload(fi); - FTLOCK(); - result.index = FT_Get_Char_Index(fi->src->ft.face, gl); - FTUNLOCK(); - result.gl = gl; - -// eina_hash_direct_add(fi->indexes, &result->gl, result); -// -// on_correct: -#ifdef HAVE_PTHREAD -// pthread_mutex_unlock(&fi->ft_mutex); -#endif - return result.index; -} - -EAPI int -evas_common_font_glyph_search(RGBA_Font *fn, RGBA_Font_Int **fi_ret, Eina_Unicode gl) -{ - Eina_List *l; - - if (fn->fash) - { - Fash_Item_Index_Map *fm = _fash_int_find(fn->fash, gl); - if (fm) - { - if (fm->fint) - { - *fi_ret = fm->fint; - return fm->index; - } - else if (fm->index == -1) return 0; - } - } - - for (l = fn->fonts; l; l = l->next) - { - RGBA_Font_Int *fi; - int idx; - - fi = l->data; - -#if 0 /* FIXME: charmap user is disabled and use a deprecated data type. */ -/* - if (fi->src->charmap) // Charmap loaded, FI/FS blank - { - idx = evas_array_hash_search(fi->src->charmap, gl); - if (idx != 0) - { - evas_common_font_source_load_complete(fi->src); - evas_common_font_int_load_complete(fi); - - evas_array_hash_free(fi->src->charmap); - fi->src->charmap = NULL; - - *fi_ret = fi; - return idx; - } - } - else -*/ -#endif - if (!fi->src->ft.face) /* Charmap not loaded, FI/FS blank */ - { - evas_common_font_int_reload(fi); - } - if (fi->src->ft.face) - { - idx = evas_common_get_char_index(fi, gl); - if (idx != 0) - { - if (!fi->ft.size) - evas_common_font_int_load_complete(fi); - if (!fn->fash) fn->fash = _fash_int_new(); - if (fn->fash) _fash_int_add(fn->fash, gl, fi, idx); - *fi_ret = fi; - return idx; - } - else - { - if (!fn->fash) fn->fash = _fash_int_new(); - if (fn->fash) _fash_int_add(fn->fash, gl, NULL, -1); - } - } - } - *fi_ret = NULL; - return 0; -} diff --git a/libraries/evas/src/lib/engines/common/evas_font_ot.c b/libraries/evas/src/lib/engines/common/evas_font_ot.c deleted file mode 100644 index 2912d55..0000000 --- a/libraries/evas/src/lib/engines/common/evas_font_ot.c +++ /dev/null @@ -1,336 +0,0 @@ -#include "evas_font_ot.h" - -#ifdef USE_HARFBUZZ -# include -# include -#endif - -#include "evas_common.h" - -#include -#include "evas_font_private.h" - -#ifdef USE_HARFBUZZ -static const hb_script_t -_evas_script_to_harfbuzz[] = -{ - HB_SCRIPT_COMMON, - HB_SCRIPT_INHERITED, - HB_SCRIPT_ARABIC, - HB_SCRIPT_ARMENIAN, - HB_SCRIPT_BENGALI, - HB_SCRIPT_BOPOMOFO, - HB_SCRIPT_CHEROKEE, - HB_SCRIPT_COPTIC, - HB_SCRIPT_CYRILLIC, - HB_SCRIPT_DESERET, - HB_SCRIPT_DEVANAGARI, - HB_SCRIPT_ETHIOPIC, - HB_SCRIPT_GEORGIAN, - HB_SCRIPT_GOTHIC, - HB_SCRIPT_GREEK, - HB_SCRIPT_GUJARATI, - HB_SCRIPT_GURMUKHI, - HB_SCRIPT_HAN, - HB_SCRIPT_HANGUL, - HB_SCRIPT_HEBREW, - HB_SCRIPT_HIRAGANA, - HB_SCRIPT_KANNADA, - HB_SCRIPT_KATAKANA, - HB_SCRIPT_KHMER, - HB_SCRIPT_LAO, - HB_SCRIPT_LATIN, - HB_SCRIPT_MALAYALAM, - HB_SCRIPT_MONGOLIAN, - HB_SCRIPT_MYANMAR, - HB_SCRIPT_OGHAM, - HB_SCRIPT_OLD_ITALIC, - HB_SCRIPT_ORIYA, - HB_SCRIPT_RUNIC, - HB_SCRIPT_SINHALA, - HB_SCRIPT_SYRIAC, - HB_SCRIPT_TAMIL, - HB_SCRIPT_TELUGU, - HB_SCRIPT_THAANA, - HB_SCRIPT_THAI, - HB_SCRIPT_TIBETAN, - HB_SCRIPT_CANADIAN_ABORIGINAL, - HB_SCRIPT_YI, - HB_SCRIPT_TAGALOG, - HB_SCRIPT_HANUNOO, - HB_SCRIPT_BUHID, - HB_SCRIPT_TAGBANWA, - - /* Unicode-4.0 additions */ - HB_SCRIPT_BRAILLE, - HB_SCRIPT_CYPRIOT, - HB_SCRIPT_LIMBU, - HB_SCRIPT_OSMANYA, - HB_SCRIPT_SHAVIAN, - HB_SCRIPT_LINEAR_B, - HB_SCRIPT_TAI_LE, - HB_SCRIPT_UGARITIC, - - /* Unicode-4.1 additions */ - HB_SCRIPT_NEW_TAI_LUE, - HB_SCRIPT_BUGINESE, - HB_SCRIPT_GLAGOLITIC, - HB_SCRIPT_TIFINAGH, - HB_SCRIPT_SYLOTI_NAGRI, - HB_SCRIPT_OLD_PERSIAN, - HB_SCRIPT_KHAROSHTHI, - - /* Unicode-5.0 additions */ - HB_SCRIPT_UNKNOWN, - HB_SCRIPT_BALINESE, - HB_SCRIPT_CUNEIFORM, - HB_SCRIPT_PHOENICIAN, - HB_SCRIPT_PHAGS_PA, - HB_SCRIPT_NKO, - - /* Unicode-5.1 additions */ - HB_SCRIPT_KAYAH_LI, - HB_SCRIPT_LEPCHA, - HB_SCRIPT_REJANG, - HB_SCRIPT_SUNDANESE, - HB_SCRIPT_SAURASHTRA, - HB_SCRIPT_CHAM, - HB_SCRIPT_OL_CHIKI, - HB_SCRIPT_VAI, - HB_SCRIPT_CARIAN, - HB_SCRIPT_LYCIAN, - HB_SCRIPT_LYDIAN, - - /* Unicode-5.2 additions */ - HB_SCRIPT_AVESTAN, - HB_SCRIPT_BAMUM, - HB_SCRIPT_EGYPTIAN_HIEROGLYPHS, - HB_SCRIPT_IMPERIAL_ARAMAIC, - HB_SCRIPT_INSCRIPTIONAL_PAHLAVI, - HB_SCRIPT_INSCRIPTIONAL_PARTHIAN, - HB_SCRIPT_JAVANESE, - HB_SCRIPT_KAITHI, - HB_SCRIPT_TAI_THAM, - HB_SCRIPT_LISU, - HB_SCRIPT_MEETEI_MAYEK, - HB_SCRIPT_OLD_SOUTH_ARABIAN, - HB_SCRIPT_OLD_TURKIC, - HB_SCRIPT_SAMARITAN, - HB_SCRIPT_TAI_VIET, - - /* Unicode-6.0 additions */ - HB_SCRIPT_BATAK, - HB_SCRIPT_BRAHMI, - HB_SCRIPT_MANDAIC -}; -#endif - -#ifdef OT_SUPPORT -/* FIXME: doc. returns #items */ -EAPI int -evas_common_font_ot_cluster_size_get(const Evas_Text_Props *props, size_t char_index) -{ - int i; - int items; - int left_bound, right_bound; - size_t base_cluster; - char_index += props->start; - base_cluster = EVAS_FONT_OT_POS_GET(props->info->ot[char_index]); - for (i = (int) char_index ; - (i >= (int) props->start) && - (EVAS_FONT_OT_POS_GET(props->info->ot[i]) == base_cluster) ; - i--) - ; - left_bound = i; - for (i = (int) char_index + 1; - (i < (int) (props->start + props->len)) && - (EVAS_FONT_OT_POS_GET(props->info->ot[i]) == base_cluster) ; - i++) - ; - right_bound = i; - - if (right_bound == left_bound) - { - items = 1; - } - else if (props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) - { - if (left_bound < 0) - { - items = props->text_offset + props->text_len - base_cluster; - } - else - { - items = props->info->ot[left_bound].source_cluster - base_cluster; - } - } - else - { - if (right_bound >= (int) (props->text_offset + props->text_len)) - { - items = props->text_offset + props->text_len - base_cluster; - } - else - { - items = props->info->ot[right_bound].source_cluster - base_cluster; - } - } - return (items > 0) ? items : 1; -} - -/* Harfbuzz font functions */ - -static hb_position_t -_evas_common_font_ot_hb_get_glyph_advance(hb_font_t *font, - void *font_data, hb_codepoint_t glyph, - void *user_data) -{ - /* Use our cache*/ - RGBA_Font_Int *fi = (RGBA_Font_Int *) font_data; - RGBA_Font_Glyph *fg; - (void) font; - (void) user_data; - fg = evas_common_font_int_cache_glyph_get(fi, glyph); - if (fg) - { - return fg->glyph->advance.x >> 10; - } - return 0; -} - -static hb_position_t -_evas_common_font_ot_hb_get_kerning(hb_font_t *font, void *font_data, - hb_codepoint_t first_glyph, hb_codepoint_t second_glyph, void *user_data) -{ - RGBA_Font_Int *fi = (RGBA_Font_Int *) font_data; - int kern; - (void) font; - (void) user_data; - if (evas_common_font_query_kerning(fi, first_glyph, second_glyph, &kern)) - return kern; - - return 0; -} - -/* End of harfbuzz font funcs */ - -static inline hb_font_funcs_t * -_evas_common_font_ot_font_funcs_get(void) -{ - static hb_font_funcs_t *font_funcs = NULL; - if (!font_funcs) - { - font_funcs = hb_font_funcs_create(); - hb_font_funcs_set_glyph_h_advance_func(font_funcs, - _evas_common_font_ot_hb_get_glyph_advance, NULL, NULL); - hb_font_funcs_set_glyph_h_kerning_func(font_funcs, - _evas_common_font_ot_hb_get_kerning, NULL, NULL); - } - - return font_funcs; -} - -static inline hb_unicode_funcs_t * -_evas_common_font_ot_unicode_funcs_get(void) -{ - static hb_unicode_funcs_t *unicode_funcs = NULL; - if (!unicode_funcs) - { - unicode_funcs = hb_unicode_funcs_get_default(); - } - - return unicode_funcs; -} - -static void -_evas_common_font_ot_shape(hb_buffer_t *buffer, RGBA_Font_Int *fi) -{ - /* Create hb_font if not previously created */ - if (!fi->ft.hb_font) - { - hb_font_t *hb_ft_font; - - hb_ft_font = hb_ft_font_create(fi->src->ft.face, NULL); - fi->ft.hb_font = hb_font_create_sub_font(hb_ft_font); - hb_font_destroy(hb_ft_font); - - hb_font_set_funcs(fi->ft.hb_font, - _evas_common_font_ot_font_funcs_get(), fi, NULL); - } - - hb_shape(fi->ft.hb_font, buffer, NULL, 0); -} - -EAPI Eina_Bool -evas_common_font_ot_populate_text_props(const Eina_Unicode *text, - Evas_Text_Props *props, int len) -{ - RGBA_Font_Int *fi; - hb_buffer_t *buffer; - hb_glyph_position_t *positions; - hb_glyph_info_t *infos; - int slen; - unsigned int i; - Evas_Font_Glyph_Info *gl_itr; - Evas_Font_OT_Info *ot_itr; - Evas_Coord pen_x = 0; - - fi = props->font_instance; - - if (len < 0) - { - slen = eina_unicode_strlen(text); - } - else - { - slen = len; - } - - buffer = hb_buffer_create(); - hb_buffer_set_unicode_funcs(buffer, _evas_common_font_ot_unicode_funcs_get()); - hb_buffer_set_language(buffer, hb_language_from_string( - evas_common_language_from_locale_get(), -1)); - hb_buffer_set_script(buffer, _evas_script_to_harfbuzz[props->script]); - hb_buffer_set_direction(buffer, - (props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) ? - HB_DIRECTION_RTL : HB_DIRECTION_LTR); - /* FIXME: add run-time conversions if needed, which is very unlikely */ - hb_buffer_add_utf32(buffer, (const uint32_t *) text, slen, 0, slen); - - _evas_common_font_ot_shape(buffer, fi); - - props->len = hb_buffer_get_length(buffer); - props->info->ot = calloc(props->len, - sizeof(Evas_Font_OT_Info)); - props->info->glyph = calloc(props->len, - sizeof(Evas_Font_Glyph_Info)); - positions = hb_buffer_get_glyph_positions(buffer, NULL); - infos = hb_buffer_get_glyph_infos(buffer, NULL); - gl_itr = props->info->glyph; - ot_itr = props->info->ot; - for (i = 0 ; i < props->len ; i++) - { - Evas_Coord adv; - ot_itr->source_cluster = infos->cluster; - ot_itr->x_offset = positions->x_offset; - ot_itr->y_offset = positions->y_offset; - gl_itr->index = infos->codepoint; - adv = positions->x_advance; - - pen_x += adv; - gl_itr->pen_after = EVAS_FONT_ROUND_26_6_TO_INT(pen_x); - - ot_itr++; - gl_itr++; - infos++; - positions++; - } - - hb_buffer_destroy(buffer); - evas_common_font_int_use_trim(); - - return EINA_FALSE; -} - -#endif - diff --git a/libraries/evas/src/lib/engines/common/evas_font_ot.h b/libraries/evas/src/lib/engines/common/evas_font_ot.h deleted file mode 100644 index bc5ab02..0000000 --- a/libraries/evas/src/lib/engines/common/evas_font_ot.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef _EVAS_FONT_OT_H -# define _EVAS_FONT_OT_H - -# ifdef HAVE_CONFIG_H -# include "config.h" -# endif - -# ifdef HAVE_HARFBUZZ -# define OT_SUPPORT -# define USE_HARFBUZZ -# endif - -# ifdef OT_SUPPORT -# include -typedef struct _Evas_Font_OT_Info Evas_Font_OT_Info; -# else -typedef void *Evas_Font_OT_Info; -# endif - -# include "Evas.h" - -# ifdef OT_SUPPORT -struct _Evas_Font_OT_Info -{ - size_t source_cluster; - Evas_Coord x_offset; - Evas_Coord y_offset; -}; -# endif - -# ifdef OT_SUPPORT -# define EVAS_FONT_OT_X_OFF_GET(a) ((a).x_offset) -# define EVAS_FONT_OT_Y_OFF_GET(a) ((a).y_offset) -# define EVAS_FONT_OT_POS_GET(a) ((a).source_cluster) -# endif - -# include "evas_text_utils.h" -EAPI int -evas_common_font_ot_cluster_size_get(const Evas_Text_Props *props, size_t char_index); - -EAPI Eina_Bool -evas_common_font_ot_populate_text_props(const Eina_Unicode *text, - Evas_Text_Props *props, int len); -#endif - diff --git a/libraries/evas/src/lib/engines/common/evas_font_private.h b/libraries/evas/src/lib/engines/common/evas_font_private.h deleted file mode 100644 index eed3faf..0000000 --- a/libraries/evas/src/lib/engines/common/evas_font_private.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef _EVAS_FONT_PRIVATE_H -# define _EVAS_FONT_PRIVATE_H -#include "evas_font_ot.h" - -#ifdef BUILD_PTHREAD -extern LK(lock_font_draw); // for freetype2 API calls -extern LK(lock_bidi); // for fribidi API calls -extern LK(lock_ot); // for harfbuzz calls -#endif - -# if defined(EVAS_FRAME_QUEUING) || defined(BUILD_PIPE_RENDER) -# define FTLOCK() LKL(lock_font_draw) -# define FTUNLOCK() LKU(lock_font_draw) - -# define BIDILOCK() LKL(lock_bidi) -# define BIDIUNLOCK() LKU(lock_bidi) - -# define OTLOCK() LKL(lock_ot) -# define OTUNLOCK() LKU(lock_ot) -# else -# define FTLOCK(x) -# define FTUNLOCK(x) - -# define BIDILOCK() -# define BIDIUNLOCK() - -/* Macros for text walking */ -# define OTLOCK() -# define OTUNLOCK() -# endif - -void evas_common_font_source_unload(RGBA_Font_Source *fs); -void evas_common_font_source_reload(RGBA_Font_Source *fs); - -void evas_common_font_int_promote(RGBA_Font_Int *fi); -void evas_common_font_int_use_increase(int size); -void evas_common_font_int_use_trim(void); -void evas_common_font_int_unload(RGBA_Font_Int *fi); -void evas_common_font_int_reload(RGBA_Font_Int *fi); - -/* 6th bit is on is the same as frac part >= 0.5 */ -# define EVAS_FONT_ROUND_26_6_TO_INT(x) \ - (((x + 0x20) & -0x40) >> 6) - -# define EVAS_FONT_CHARACTER_IS_INVISIBLE(x) ( \ - ((0x200C <= (x)) && ((x) <= 0x200D)) || /* ZWNJ..ZWH */ \ - ((0x200E <= (x)) && ((x) <= 0x200F)) || /* BIDI stuff */ \ - ((0x202A <= (x)) && ((x) <= 0x202E)) /* BIDI stuff */ \ - ) - -# include "evas_font_default_walk.x" -#endif /* !_EVAS_FONT_PRIVATE_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_font_query.c b/libraries/evas/src/lib/engines/common/evas_font_query.c deleted file mode 100644 index af2cc84..0000000 --- a/libraries/evas/src/lib/engines/common/evas_font_query.c +++ /dev/null @@ -1,789 +0,0 @@ -#include "evas_common.h" -#include "language/evas_bidi_utils.h" /*defines BIDI_SUPPORT if possible */ -#include "evas_font_private.h" /* for Frame-Queuing support */ -#include "evas_font_ot.h" - - -/* FIXME: Check coverage according to the font and not by actually loading */ -/** - * @internal - * Find the end of a run according to font coverage, and return the base script - * font and the current wanted font. - * - * @param[in] fn the font to use. - * @param script_fi The base font instance to be used with the script. If NULL, then it's calculated and returned in this variable, if not NULL, it's used and not modified. - * @param[out] cur_fi The font instance found for the current run. - * @param[in] script the base script - * @param[in] text the text to work on. - * @param[in] run_let the current run len, i.e "search limit". - * @return length of the run found. - */ -EAPI int -evas_common_font_query_run_font_end_get(RGBA_Font *fn, RGBA_Font_Int **script_fi, RGBA_Font_Int **cur_fi, Evas_Script_Type script, const Eina_Unicode *text, int run_len) -{ - RGBA_Font_Int *fi = NULL; - const Eina_Unicode *run_end = text + run_len; - const Eina_Unicode *itr; - - /* If there's no current script_fi, find it first */ - if (!*script_fi) - { - const Eina_Unicode *base_char = NULL; - /* Skip common chars */ - for (base_char = text ; - (base_char < run_end) && - (evas_common_language_char_script_get(*base_char) != script) ; - base_char++) - ; - if (base_char == run_end) base_char = text; - - /* Find the first renderable char */ - while (base_char < run_end) - { - /* 0x1F is the last ASCII contral char, just a hack in - * the meanwhile. */ - if ((*base_char > 0x1F) && - evas_common_font_glyph_search(fn, &fi, *base_char)) - break; - base_char++; - } - - - /* If everything else fails, at least try to find a font for the - * replacement char */ - if (base_char == run_end) - evas_common_font_glyph_search(fn, &fi, REPLACEMENT_CHAR); - - if (!fi) - fi = fn->fonts->data; - - *script_fi = fi; - } - else - { - fi = *script_fi; - } - - /* Find the longest run of the same font starting from the start position - * and update cur_fi accordingly. */ - itr = text; - while (itr < run_end) - { - RGBA_Font_Int *tmp_fi; - /* Itr will end up being the first of the next run */ - for ( ; itr < run_end ; itr++) - { - /* 0x1F is the last ASCII contral char, just a hack in - * the meanwhile. */ - if (*itr <= 0x1F) - continue; - /* Break if either it's not in the font, or if it is in the - * script's font. */ - if (fi == *script_fi) - { - if (!evas_common_get_char_index(fi, *itr)) - break; - } - else - { - if (evas_common_get_char_index(*script_fi, *itr)) - break; - } - } - - /* Abort if we reached the end */ - if (itr == run_end) - break; - - /* If the script font doesn't fit even one char, find a new font. */ - if (itr == text) - { - /* If we can find a font, use it. Otherwise, find the first - * char the run of chars that can't be rendered until the first - * one that can. */ - if (evas_common_font_glyph_search(fn, &tmp_fi, *itr)) - { - fi = tmp_fi; - } - else - { - itr++; - /* Go through all the chars that can't be rendered with any - * font */ - for ( ; itr < run_end ; itr++) - { - tmp_fi = fi; - if (evas_common_get_char_index(fi, *itr) || - evas_common_font_glyph_search(fn, &tmp_fi, *itr)) - { - fi = tmp_fi; - break; - } - } - - /* If we found a renderable character and the found font - * can render the replacement char, continue, otherwise - * find a font most suitable for the replacement char and - * break */ - if ((itr == run_end) || - !evas_common_get_char_index(fi, REPLACEMENT_CHAR)) - { - evas_common_font_glyph_search(fn, &fi, REPLACEMENT_CHAR); - break; - } - } - itr++; - } - else - { - /* If this char is not renderable by any font, but the replacement - * char can be rendered using the currentfont, continue this - * run. */ - if (!evas_common_font_glyph_search(fn, &tmp_fi, *itr) && - evas_common_get_char_index(fi, REPLACEMENT_CHAR)) - { - itr++; - } - else - { - /* Done, we did as much as possible */ - break; - } - } - } - - if (fi) - *cur_fi = fi; - else - *cur_fi = *script_fi; - - return itr - text; -} - -/** - * @internal - * Calculate the kerning between "left" and "right. - * - * @param fi the font instance to use - * @param left the left glyph index - * @param right the right glyph index - * @param[out] kerning the kerning calculated. - * @return FALSE on error, TRUE on success. - */ -EAPI int -evas_common_font_query_kerning(RGBA_Font_Int *fi, FT_UInt left, FT_UInt right, - int *kerning) -{ - int *result; - FT_Vector delta; - int key[2]; - int error = 1; - - key[0] = left; - key[1] = right; - - result = eina_hash_find(fi->kerning, key); - if (result) - { - *kerning = result[2]; - goto on_correct; - } - - /* NOTE: ft2 seems to have a bug. and sometimes returns bizarre - * values to kern by - given same font, same size and same - * prev_index and index. auto/bytecode or none hinting doesn't - * matter */ - evas_common_font_int_reload(fi); - FTLOCK(); - if (FT_Get_Kerning(fi->src->ft.face, - key[0], key[1], - FT_KERNING_DEFAULT, &delta) == 0) - { - int *push; - - FTUNLOCK(); - *kerning = delta.x; - - push = malloc(sizeof (int) * 3); - if (!push) return 1; - - push[0] = key[0]; - push[1] = key[1]; - push[2] = *kerning; - - eina_hash_direct_add(fi->kerning, push, push); - - goto on_correct; - } - - FTUNLOCK(); - error = 0; - - on_correct: - return error; -} - -/** - * @internal - * Calculate the inset of the text. Inset is the difference between the pen - * position of the first char in the string, and the first pixel drawn. - * (can be negative). - * - * @param fn the font set to use. - * @param text_props the string object. - * @return the calculated inset. - */ -EAPI int -evas_common_font_query_inset(RGBA_Font *fn __UNUSED__, const Evas_Text_Props *text_props) -{ - if (!text_props->len) return 0; - return text_props->info->glyph[text_props->start].x_bear; -} - -/** - * @internal - * Calculate the right inset of the text. This is the difference between the - * pen position of the glyph after the last glyph in the text, and the last - * pixel drawn in the text (essentially "advance - width" of the last char). - * - * @param fn the font set to use. - * @param text_props the string object. - * @return the calculated inset. - * - * @see evas_common_font_query_inset() - */ -EAPI int -evas_common_font_query_right_inset(RGBA_Font *fn __UNUSED__, const Evas_Text_Props *text_props) -{ - const Evas_Font_Glyph_Info *gli; - if (!text_props->len) return 0; - gli = text_props->info->glyph + text_props->start + text_props->len - 1; - - /* If the last char is a whitespace, we use the advance as the size, - * so the right_inset is 0. */ - if (gli->width == 0) - return 0; - - return ((gli > text_props->info->glyph) ? - gli->pen_after - (gli - 1)->pen_after : gli->pen_after) - - (gli->width + gli->x_bear -#ifdef OT_SUPPORT - + EVAS_FONT_ROUND_26_6_TO_INT(EVAS_FONT_OT_X_OFF_GET( - text_props->info->ot[text_props->start + text_props->len - 1])) -#endif - ); -} - -/** - * @internal - * Calculate the size of the string (width and height). - * The width is the disntance between the first pen position and the last pixel - * drawn. - * The height is the max ascent+descent of the font. - * - * @param fn the font set to use. - * @param text_props the string object. - * @param[out] w the calculated width - * @param[out] h the calculated height - */ -EAPI void -evas_common_font_query_size(RGBA_Font *fn, const Evas_Text_Props *text_props, int *w, int *h) -{ - Evas_Coord ret_w = 0; - - if (text_props->len > 0) - { - const Evas_Font_Glyph_Info *glyph = text_props->info->glyph + - text_props->start; - const Evas_Font_Glyph_Info *last_glyph = glyph; - - if (text_props->len > 1) - { - last_glyph += text_props->len - 1; - ret_w = last_glyph[-1].pen_after; - if (text_props->start > 0) - ret_w -= glyph[-1].pen_after; - } -#ifdef OT_SUPPORT - ret_w += EVAS_FONT_ROUND_26_6_TO_INT(EVAS_FONT_OT_X_OFF_GET( - text_props->info->ot[text_props->start + text_props->len - 1])); -#endif - ret_w += last_glyph->width + last_glyph->x_bear; - } - - if (w) *w = ret_w; - if (h) *h = evas_common_font_max_ascent_get(fn) + evas_common_font_max_descent_get(fn); -} - -/** - * @internal - * Calculate the advance of the string. Advance is the distance between the - * first pen position and the pen position after the string. - * - * @param fn the font set to use. - * @param text_props the string object. - * @param[out] h_adv the calculated horizontal advance. - * @param[out] v_adv the calculated vertical advance. - */ -EAPI void -evas_common_font_query_advance(RGBA_Font *fn, const Evas_Text_Props *text_props, int *h_adv, int *v_adv) -{ - Evas_Coord ret_adv = 0; - if (text_props->len > 0) - { - const Evas_Font_Glyph_Info *glyph = text_props->info->glyph + - text_props->start; - ret_adv = glyph[text_props->len - 1].pen_after; - if (text_props->start > 0) - ret_adv -= glyph[-1].pen_after; - } - - if (h_adv) *h_adv = ret_adv; - if (v_adv) *v_adv = evas_common_font_get_line_advance(fn); -} - -/** - * @internal - * Query the coordinates of the char at position pos. If the position is at the - * end of the string (i.e where the finishing null would be) it returns the - * coordinates of the position right after the last char. This is either on - * the left or on the right of the string, depending on BiDi direction. Returned - * width in this case is 0. It returns the x of the leftmost pixel drawn. - * - * @param fn the font set to use. - * @param text_props the string object. - * @param pos the position of the char in the string object (not actual position in the string object, but the position of the source character). - * @param[out] cx the calculated x - CAN BE NULL - * @param[out] cy the calculated y - CAN BE NULL - * @param[out] cw the calculated width - CAN BE NULL - * @param[out] ch the calculated height - CAN BE NULL - * @return TRUE on success, FALSE otherwise. - * - * @see evas_common_font_query_pen_coords() - */ -EAPI int -evas_common_font_query_char_coords(RGBA_Font *fn, const Evas_Text_Props *text_props, int pos, int *cx, int *cy, int *cw, int *ch) -{ - int asc, desc; - size_t position = 0; - int ret_val = 0; - EVAS_FONT_WALK_TEXT_INIT(); - - asc = evas_common_font_max_ascent_get(fn); - desc = evas_common_font_max_descent_get(fn); - - position = pos; - /* If it's the null, choose location according to the direction. */ - if (position == text_props->text_len) - { - /* if it's rtl then the location is the left of the string, - * otherwise, the right. */ -#ifdef BIDI_SUPPORT - if (text_props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) - { - if (cx) *cx = 0; - if (ch) *ch = asc + desc; - } - else -#endif - { - evas_common_font_query_advance(fn, text_props, cx, ch); - } - if (cy) *cy = 0; - if (cw) *cw = 0; - ret_val = 1; - goto end; - } - - Evas_Coord cluster_start = 0, last_end = 0; - int prev_cluster = -1; - int found = 0, items = 1, item_pos = 1; - int last_is_visible = 0; - EVAS_FONT_WALK_TEXT_START() - { - EVAS_FONT_WALK_TEXT_WORK(); - - if (prev_cluster != (int) EVAS_FONT_WALK_POS) - { - if (found) - { - break; - } - else - { - cluster_start = EVAS_FONT_WALK_PEN_X + - EVAS_FONT_WALK_X_OFF + - EVAS_FONT_WALK_X_BEAR; - } - } - last_is_visible = EVAS_FONT_WALK_IS_VISIBLE; - last_end = EVAS_FONT_WALK_PEN_X + EVAS_FONT_WALK_X_OFF + - EVAS_FONT_WALK_X_BEAR + EVAS_FONT_WALK_WIDTH; - /* we need to see if the char at the visual position is the char wanted */ - if ((text_props->bidi.dir == EVAS_BIDI_DIRECTION_LTR) && - (EVAS_FONT_WALK_POS <= (size_t) position) && - ((((size_t) position) < EVAS_FONT_WALK_POS_NEXT) || - (EVAS_FONT_WALK_IS_LAST))) - { - found = 1; -#ifdef OT_SUPPORT - items = evas_common_font_ot_cluster_size_get(text_props, - char_index); -#endif - item_pos = position - EVAS_FONT_WALK_POS + 1; - } - else if ((text_props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) && - ((EVAS_FONT_WALK_POS_PREV > (size_t) position) || - (EVAS_FONT_WALK_IS_FIRST)) && - (((size_t) position) >= EVAS_FONT_WALK_POS)) - { - found = 1; -#ifdef OT_SUPPORT - items = evas_common_font_ot_cluster_size_get(text_props, - char_index); -#endif - item_pos = items - (position - EVAS_FONT_WALK_POS); - } - - prev_cluster = EVAS_FONT_WALK_POS; - } - EVAS_FONT_WALK_TEXT_END(); - if (found) - { - Evas_Coord cluster_w; - cluster_w = last_end - cluster_start; - if (cy) *cy = -asc; - if (ch) *ch = asc + desc; - if (last_is_visible) - { - if (cx) *cx = cluster_start + - (cluster_w / items) * - (item_pos - 1); - if (cw) *cw = (cluster_w / items); - } - else - { - if (cx) *cx = cluster_start; - if (cw) *cw = 0; - } - ret_val = 1; - goto end; - } -end: - - return ret_val; -} - -/** - * @internal - * Query the coordinates of the char at position pos. If the position is at the - * end of the string (i.e where the finishing null would be) it returns the - * coordinates of the position right after the last char. This is either on - * the left or on the right of the string, depending on BiDi direction. Returned - * advance in this case is 0. - * - * This is the same as evas_common_font_query_char_coords() except that the - * advance of the character is returned instead of the width and the pen - * position is returned instead of the actual pixel position. - * - * @param fn the font set to use. - * @param text_props the string object. - * @param pos the position of the char in the string object (not actual position in the string object, but the position of the source character). - * @param[out] cpenx the calculated x - CAN BE NULL - * @param[out] cy the calculated y - CAN BE NULL - * @param[out] cadv the calculated advance - CAN BE NULL - * @param[out] ch the calculated height - CAN BE NULL - * @return TRUE on success, FALSE otherwise. - * - * @see evas_common_font_query_char_coords() - */ -EAPI int -evas_common_font_query_pen_coords(RGBA_Font *fn, const Evas_Text_Props *text_props, int pos, int *cpen_x, int *cy, int *cadv, int *ch) -{ - int asc, desc; - size_t position; - int ret_val = 0; - EVAS_FONT_WALK_TEXT_INIT(); - - asc = evas_common_font_max_ascent_get(fn); - desc = evas_common_font_max_descent_get(fn); - - position = pos; - /* If it's the null, choose location according to the direction. */ - if (position == text_props->text_len) - { - /* if it's rtl then the location is the left of the string, - * otherwise, the right. */ -#ifdef BIDI_SUPPORT - if (text_props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) - { - if (cpen_x) *cpen_x = 0; - if (ch) *ch = asc + desc; - } - else -#endif - { - evas_common_font_query_advance(fn, text_props, cpen_x, ch); - } - if (cy) *cy = 0; - if (cadv) *cadv = 0; - ret_val = 1; - goto end; - } - Evas_Coord cluster_start = 0; - int prev_cluster = -1; - int found = 0, items = 1, item_pos = 1; - int last_is_visible = 0; - EVAS_FONT_WALK_TEXT_START() - { - EVAS_FONT_WALK_TEXT_WORK(); - - if (prev_cluster != (int) EVAS_FONT_WALK_POS) - { - if (found) - { - break; - } - else - { - cluster_start = EVAS_FONT_WALK_PEN_X; - } - } - last_is_visible = EVAS_FONT_WALK_IS_VISIBLE; - - if ((text_props->bidi.dir == EVAS_BIDI_DIRECTION_LTR) && - (EVAS_FONT_WALK_POS <= (size_t) position) && - ((((size_t) position) < EVAS_FONT_WALK_POS_NEXT) || - (EVAS_FONT_WALK_IS_LAST))) - { - found = 1; -#ifdef OT_SUPPORT - items = evas_common_font_ot_cluster_size_get(text_props, - char_index); -#endif - item_pos = position - EVAS_FONT_WALK_POS + 1; - } - else if ((text_props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) && - ((EVAS_FONT_WALK_POS_PREV > (size_t) position) || - (EVAS_FONT_WALK_IS_FIRST)) && - (((size_t) position) >= EVAS_FONT_WALK_POS)) - { - found = 1; -#ifdef OT_SUPPORT - items = evas_common_font_ot_cluster_size_get(text_props, - char_index); -#endif - item_pos = items - (position - EVAS_FONT_WALK_POS); - } - - prev_cluster = EVAS_FONT_WALK_POS; - } - EVAS_FONT_WALK_TEXT_END(); - - if (found) - { - Evas_Coord cluster_adv; - cluster_adv = EVAS_FONT_WALK_PEN_X - cluster_start; - if (cy) *cy = -asc; - if (ch) *ch = asc + desc; - if (last_is_visible) - { - if (cpen_x) *cpen_x = cluster_start + - (cluster_adv / items) * - (item_pos - 1); - if (cadv) *cadv = (cluster_adv / items); - } - else - { - if (cpen_x) *cpen_x = EVAS_FONT_WALK_PEN_X; - if (cadv) *cadv = 0; - } - ret_val = 1; - goto end; - } -end: - - return ret_val; -} - -/** - * @internal - * Find the character at a specific x, y coordinates and return it's position - * in the text (not in the text object, but in the source text). Also calculate - * the char's geometry. - * - * @param fn the font set to use. - * @param text_props the string object. - * @param x the x to look at. - * @param y the y to look at. - * @param[out] cx the calculated x - CAN BE NULL - * @param[out] cy the calculated y - CAN BE NULL - * @param[out] cw the calculated width - CAN BE NULL - * @param[out] ch the calculated height - CAN BE NULL - * @return the position found, -1 on failure. - */ -EAPI int -evas_common_font_query_char_at_coords(RGBA_Font *fn, const Evas_Text_Props *text_props, int x, int y, int *cx, int *cy, int *cw, int *ch) -{ - int asc, desc; - int ret_val = -1; - EVAS_FONT_WALK_TEXT_INIT(); - - asc = evas_common_font_max_ascent_get(fn); - desc = evas_common_font_max_descent_get(fn); - Evas_Coord cluster_start = 0; - int prev_cluster = -1; - int found = 0, items = 1; - EVAS_FONT_WALK_TEXT_START() - { - EVAS_FONT_WALK_TEXT_WORK(); - if (prev_cluster != (int) EVAS_FONT_WALK_POS) - { - if (found) - { - break; - } - else - { - cluster_start = EVAS_FONT_WALK_PEN_X; - } - } - - if (!EVAS_FONT_WALK_IS_VISIBLE) continue; - - /* we need to see if the char at the visual position is the char, - * we check that by checking if it's before the current pen - * position and the next */ - if ((x >= EVAS_FONT_WALK_PEN_X) && - (x <= (EVAS_FONT_WALK_PEN_X_AFTER)) && (y >= -asc) && (y <= desc)) - { -#ifdef OT_SUPPORT - items = evas_common_font_ot_cluster_size_get(text_props, - char_index); -#endif - found = 1; - } - - prev_cluster = EVAS_FONT_WALK_POS; - } - EVAS_FONT_WALK_TEXT_END(); - if (found) - { - int item_pos; - Evas_Coord cluster_adv; - cluster_adv = EVAS_FONT_WALK_PEN_X - cluster_start; - - if (text_props->bidi.dir == EVAS_BIDI_DIRECTION_LTR) - { - double part; - part = cluster_adv / items; - item_pos = (int) ((x - cluster_start) / part); - } - else - { - double part; - part = cluster_adv / items; - item_pos = items - ((int) ((x - cluster_start) / part)) - 1; - } - if (cx) *cx = EVAS_FONT_WALK_PEN_X + - ((cluster_adv / items) * (item_pos - 1)); - if (cy) *cy = -asc; - if (cw) *cw = (cluster_adv / items); - if (ch) *ch = asc + desc; - ret_val = prev_cluster + item_pos; - goto end; - } -end: - - return ret_val; -} - -/** - * @internal - * Find one after the last character that fits until the boundaries set by x - * and y. I.e find the first char that doesn't fit. - * This LOGICALLY walks the string. This is needed for wrapping for example - * where we want the first part to be the first logical part. - * - * @param fn the font set to use. - * @param text_props the string object. - * @param x the x boundary. - * @param y the y boundary. - * @return the position found, -1 on failure. - */ -EAPI int -evas_common_font_query_last_up_to_pos(RGBA_Font *fn, const Evas_Text_Props *text_props, int x, int y) -{ - int asc, desc; - int ret=-1; - - asc = evas_common_font_max_ascent_get(fn); - desc = evas_common_font_max_descent_get(fn); - -#ifdef BIDI_SUPPORT - if (text_props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) - { - Evas_Font_Glyph_Info *gli = NULL; - Evas_Coord full_adv = 0, pen_x = 0, start_pen = 0; - int i; - - if ((text_props->info) && (text_props->len > 0)) - { - gli = text_props->info->glyph + text_props->start; - full_adv = gli[text_props->len - 1].pen_after; - if (text_props->start > 0) - { - start_pen = gli[-1].pen_after; - full_adv -= start_pen; - } - - gli += text_props->len - 1; - - for (i = text_props->len - 1 ; i >= 0 ; i--, gli--) - { - pen_x = full_adv - (gli->pen_after - start_pen); - /* If invisible, skip */ - if (gli->index == 0) continue; - if ((x >= pen_x) && - (((i == 0) && (x <= full_adv)) || - (x <= (full_adv - (gli[-1].pen_after - start_pen)))) && - (y >= -asc) && (y <= desc)) - { -#ifdef OT_SUPPORT - ret = EVAS_FONT_OT_POS_GET( - text_props->info->ot[text_props->start + i]) - - text_props->text_offset; -#else - ret = text_props->text_len - i - 1; -#endif - goto end; - } - } - } - } - else -#endif - { - EVAS_FONT_WALK_TEXT_INIT(); - /* When text is not rtl, visual direction = logical direction */ - EVAS_FONT_WALK_TEXT_START() - { - EVAS_FONT_WALK_TEXT_WORK(); - if (!EVAS_FONT_WALK_IS_VISIBLE) continue; - - if ((x >= EVAS_FONT_WALK_PEN_X) && - (x <= (EVAS_FONT_WALK_PEN_X_AFTER)) && - (y >= -asc) && (y <= desc)) - { - ret = EVAS_FONT_WALK_POS; - goto end; - } - } - EVAS_FONT_WALK_TEXT_END(); - } - -end: - - return ret; -} - diff --git a/libraries/evas/src/lib/engines/common/evas_image.h b/libraries/evas/src/lib/engines/common/evas_image.h deleted file mode 100644 index 300697c..0000000 --- a/libraries/evas/src/lib/engines/common/evas_image.h +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef _EVAS_IMAGE_H -#define _EVAS_IMAGE_H - - -EAPI void evas_common_image_init (void); -EAPI void evas_common_image_shutdown (void); - -EAPI void evas_common_image_image_all_unload (void); - -EAPI void evas_common_rgba_image_free (Image_Entry *ie); -EAPI void evas_common_rgba_image_unload (Image_Entry *ie); -EAPI void evas_common_image_colorspace_normalize (RGBA_Image *im); -EAPI void evas_common_image_colorspace_dirty (RGBA_Image *im); -EAPI void evas_common_image_cache_free (void); /*2*/ -EAPI void evas_common_image_premul (Image_Entry *ie); /*2*/ -EAPI void evas_common_image_set_alpha_sparse (Image_Entry *ie); /*2*/ -/* EAPI RGBA_Image *evas_common_image_alpha_create (int w, int h); */ -/* EAPI RGBA_Image *evas_common_image_create (int w, int h); */ -EAPI RGBA_Image *evas_common_image_new (unsigned int w, unsigned int h, unsigned int alpha); -EAPI Evas_Cache_Image *evas_common_image_cache_get (void); - -EAPI void evas_common_image_set_cache (unsigned int size); -EAPI int evas_common_image_get_cache (void); - -EAPI RGBA_Image *evas_common_image_line_buffer_obtain (int len); -EAPI void evas_common_image_line_buffer_release (RGBA_Image *im); - -EAPI RGBA_Image *evas_common_image_alpha_line_buffer_obtain (int len); -EAPI void evas_common_image_alpha_line_buffer_release (RGBA_Image *im); -EAPI void evas_common_image_alpha_line_buffer_free (RGBA_Image *im); - -EAPI RGBA_Image *evas_common_load_image_from_file (const char *file, const char *key, RGBA_Image_Loadopts *lo, int *error); -EAPI int evas_common_save_image_to_file (RGBA_Image *im, const char *file, const char *key, int quality, int compress); - -EAPI void evas_common_rgba_image_scalecache_size_set(unsigned int size); -EAPI unsigned int evas_common_rgba_image_scalecache_size_get(void); -EAPI void evas_common_rgba_image_scalecache_flush(void); -EAPI void evas_common_rgba_image_scalecache_dump(void); -EAPI void - evas_common_rgba_image_scalecache_prepare(Image_Entry *ie, RGBA_Image *dst, - RGBA_Draw_Context *dc, int smooth, - int src_region_x, int src_region_y, - int src_region_w, int src_region_h, - int dst_region_x, int dst_region_y, - int dst_region_w, int dst_region_h); -EAPI void - evas_common_rgba_image_scalecache_do(Image_Entry *ie, RGBA_Image *dst, - RGBA_Draw_Context *dc, int smooth, - int src_region_x, int src_region_y, - int src_region_w, int src_region_h, - int dst_region_x, int dst_region_y, - int dst_region_w, int dst_region_h); - - -EAPI int evas_common_load_rgba_image_module_from_file (Image_Entry *im); -EAPI int evas_common_load_rgba_image_data_from_file (Image_Entry *im); -EAPI double evas_common_load_rgba_image_frame_duration_from_file(Image_Entry *im, int start_frame, int frame_num); - -void _evas_common_rgba_image_post_surface(Image_Entry *ie); - -EAPI Eina_Bool evas_common_extension_can_load_get(const char *file); - -#endif /* _EVAS_IMAGE_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_image_data.c b/libraries/evas/src/lib/engines/common/evas_image_data.c deleted file mode 100644 index 2815ff8..0000000 --- a/libraries/evas/src/lib/engines/common/evas_image_data.c +++ /dev/null @@ -1,151 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -#include "evas_common.h" -#include "evas_private.h" -#include "evas_image.h" - -int -evas_common_rgba_image_from_data(Image_Entry* ie_dst, int w, int h, DATA32 *image_data, int alpha, int cspace) -{ - RGBA_Image *dst = (RGBA_Image *) ie_dst; - - switch (cspace) - { - case EVAS_COLORSPACE_ARGB8888: - dst->cache_entry.w = w; - dst->cache_entry.h = h; - dst->image.data = image_data; - dst->image.no_free = 1; - dst->cache_entry.flags.alpha = alpha ? 1 : 0; - break; - case EVAS_COLORSPACE_YCBCR422P601_PL: - case EVAS_COLORSPACE_YCBCR422P709_PL: - case EVAS_COLORSPACE_YCBCR422601_PL: - case EVAS_COLORSPACE_YCBCR420TM12601_PL: - case EVAS_COLORSPACE_YCBCR420NV12601_PL: - w &= ~0x1; - dst->cache_entry.w = w; - dst->cache_entry.h = h; - dst->cs.data = image_data; - dst->cs.no_free = 1; - break; - default: - abort(); - break; - } - dst->cache_entry.space = cspace; - evas_common_image_colorspace_dirty(dst); - _evas_common_rgba_image_post_surface(ie_dst); - return 0; -} - -int -evas_common_rgba_image_from_copied_data(Image_Entry* ie_dst, int w, int h, DATA32 *image_data, int alpha, int cspace) -{ - RGBA_Image *dst = (RGBA_Image *) ie_dst; - - /* FIXME: Is dst->image.data valid. */ - switch (cspace) - { - case EVAS_COLORSPACE_ARGB8888: - dst->cache_entry.flags.alpha = alpha ? 1 : 0; - if (image_data) - memcpy(dst->image.data, image_data, w * h * sizeof(DATA32)); - break; - case EVAS_COLORSPACE_YCBCR422P601_PL: - case EVAS_COLORSPACE_YCBCR422P709_PL: - case EVAS_COLORSPACE_YCBCR422601_PL: - case EVAS_COLORSPACE_YCBCR420TM12601_PL: - case EVAS_COLORSPACE_YCBCR420NV12601_PL: - dst->cs.data = calloc(1, dst->cache_entry.h * sizeof(unsigned char*) * 2); - if (image_data && (dst->cs.data)) - memcpy(dst->cs.data, image_data, dst->cache_entry.h * sizeof(unsigned char*) * 2); - break; - default: - abort(); - break; - } - - dst->cache_entry.space = cspace; - evas_common_image_colorspace_dirty(dst); - _evas_common_rgba_image_post_surface(ie_dst); - return 0; -} - -int -evas_common_rgba_image_size_set(Image_Entry *ie_dst, const Image_Entry *ie_im, unsigned int w, unsigned int h __UNUSED__) -{ - RGBA_Image *dst = (RGBA_Image *) ie_dst; - RGBA_Image *im = (RGBA_Image *) ie_im; - - if ((im->cache_entry.space == EVAS_COLORSPACE_YCBCR422P601_PL) || - (im->cache_entry.space == EVAS_COLORSPACE_YCBCR422P709_PL) || - (im->cache_entry.space == EVAS_COLORSPACE_YCBCR422601_PL) || - (im->cache_entry.space == EVAS_COLORSPACE_YCBCR420TM12601_PL) || - (im->cache_entry.space == EVAS_COLORSPACE_YCBCR420NV12601_PL)) - { - w &= ~0x1; - dst->cs.data = calloc(1, dst->cache_entry.h * sizeof(unsigned char *) * 2); - } - - dst->flags = im->flags; - dst->cs.no_free = 0; - evas_common_image_colorspace_dirty(dst); - - _evas_common_rgba_image_post_surface(ie_dst); - return 0; -} - -int -evas_common_rgba_image_colorspace_set(Image_Entry* ie_dst, int cspace) -{ - RGBA_Image *dst = (RGBA_Image *) ie_dst; - - switch (cspace) - { - case EVAS_COLORSPACE_ARGB8888: - if (dst->cs.data) - { - if (!dst->cs.no_free) free(dst->cs.data); - dst->cs.data = NULL; - dst->cs.no_free = 0; - } - break; - case EVAS_COLORSPACE_YCBCR422P601_PL: - case EVAS_COLORSPACE_YCBCR422P709_PL: - case EVAS_COLORSPACE_YCBCR422601_PL: - case EVAS_COLORSPACE_YCBCR420TM12601_PL: - case EVAS_COLORSPACE_YCBCR420NV12601_PL: - if (dst->image.no_free) - { - ie_dst->allocated.w = 0; - ie_dst->allocated.h = 0; -#ifdef BUILD_ASYNC_PRELOAD - ie_dst->flags.preload_done = 0; -#endif - ie_dst->flags.loaded = 0; - dst->image.data = NULL; - dst->image.no_free = 0; - /* FIXME: Must allocate image.data surface cleanly. */ - } - if (dst->cs.data) - { - if (!dst->cs.no_free) free(dst->cs.data); - } - dst->cs.data = calloc(1, dst->cache_entry.h * sizeof(unsigned char *) * 2); - dst->cs.no_free = 0; - break; - default: - abort(); - break; - } - dst->cache_entry.space = cspace; - evas_common_image_colorspace_dirty(dst); - - _evas_common_rgba_image_post_surface(ie_dst); - return 0; -} diff --git a/libraries/evas/src/lib/engines/common/evas_image_load.c b/libraries/evas/src/lib/engines/common/evas_image_load.c deleted file mode 100644 index 21ac5d4..0000000 --- a/libraries/evas/src/lib/engines/common/evas_image_load.c +++ /dev/null @@ -1,385 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include - -#include "evas_common.h" -#include "evas_private.h" -#include "evas_cs.h" - -struct ext_loader_s -{ - unsigned int length; - const char *extension; - const char *loader; -}; - -#define MATCHING(Ext, Module) \ - { sizeof (Ext), Ext, Module } - -static const struct ext_loader_s loaders[] = -{ /* map extensions to loaders to use for good first-guess tries */ - MATCHING(".png", "png"), - MATCHING(".jpg", "jpeg"), - MATCHING(".jpeg", "jpeg"), - MATCHING(".jfif", "jpeg"), - MATCHING(".eet", "eet"), - MATCHING(".edj", "eet"), - MATCHING(".eap", "eet"), - MATCHING(".edb", "edb"), - MATCHING(".xpm", "xpm"), - MATCHING(".tiff", "tiff"), - MATCHING(".tif", "tiff"), - MATCHING(".svg", "svg"), - MATCHING(".svgz", "svg"), - MATCHING(".svg.gz", "svg"), - MATCHING(".gif", "gif"), - MATCHING(".pbm", "pmaps"), - MATCHING(".pgm", "pmaps"), - MATCHING(".ppm", "pmaps"), - MATCHING(".pnm", "pmaps"), - MATCHING(".bmp", "bmp"), - MATCHING(".tga", "tga"), - MATCHING(".wbmp", "wbmp"), - MATCHING(".ico", "ico"), - MATCHING(".cur", "ico"), - MATCHING(".psd", "psd"), - MATCHING(".pdf", "generic"), - MATCHING(".ps", "generic"), - MATCHING(".xcf", "generic"), - MATCHING(".xcf.gz", "generic"), - /* RAW */ - MATCHING(".arw", "generic"), - MATCHING(".cr2", "generic"), - MATCHING(".crw", "generic"), - MATCHING(".dcr", "generic"), - MATCHING(".dng", "generic"), - MATCHING(".k25", "generic"), - MATCHING(".kdc", "generic"), - MATCHING(".erf", "generic"), - MATCHING(".mrw", "generic"), - MATCHING(".nef", "generic"), - MATCHING(".nrf", "generic"), - MATCHING(".nrw", "generic"), - MATCHING(".orf", "generic"), - MATCHING(".raw", "generic"), - MATCHING(".rw2", "generic"), - MATCHING(".pef", "generic"), - MATCHING(".raf", "generic"), - MATCHING(".sr2", "generic"), - MATCHING(".srf", "generic"), - MATCHING(".x3f", "generic"), - /* video */ - MATCHING(".264", "generic"), - MATCHING(".3g2", "generic"), - MATCHING(".3gp", "generic"), - MATCHING(".3gp2", "generic"), - MATCHING(".3gpp", "generic"), - MATCHING(".3gpp2", "generic"), - MATCHING(".3p2", "generic"), - MATCHING(".asf", "generic"), - MATCHING(".avi", "generic"), - MATCHING(".bdm", "generic"), - MATCHING(".bdmv", "generic"), - MATCHING(".clpi", "generic"), - MATCHING(".clp", "generic"), - MATCHING(".fla", "generic"), - MATCHING(".flv", "generic"), - MATCHING(".m1v", "generic"), - MATCHING(".m2v", "generic"), - MATCHING(".m2t", "generic"), - MATCHING(".m4v", "generic"), - MATCHING(".mkv", "generic"), - MATCHING(".mov", "generic"), - MATCHING(".mp2", "generic"), - MATCHING(".mp2ts", "generic"), - MATCHING(".mp4", "generic"), - MATCHING(".mpe", "generic"), - MATCHING(".mpeg", "generic"), - MATCHING(".mpg", "generic"), - MATCHING(".mpl", "generic"), - MATCHING(".mpls", "generic"), - MATCHING(".mts", "generic"), - MATCHING(".mxf", "generic"), - MATCHING(".nut", "generic"), - MATCHING(".nuv", "generic"), - MATCHING(".ogg", "generic"), - MATCHING(".ogm", "generic"), - MATCHING(".ogv", "generic"), - MATCHING(".rm", "generic"), - MATCHING(".rmj", "generic"), - MATCHING(".rmm", "generic"), - MATCHING(".rms", "generic"), - MATCHING(".rmx", "generic"), - MATCHING(".rmvb", "generic"), - MATCHING(".swf", "generic"), - MATCHING(".ts", "generic"), - MATCHING(".weba", "generic"), - MATCHING(".webm", "generic"), - MATCHING(".wmv", "generic") -}; - -static const char *loaders_name[] = -{ /* in order of most likely needed */ - "png", "jpeg", "eet", "xpm", "tiff", "gif", "svg", "pmaps", "bmp", "tga", "wbmp", "ico", "psd", "edb", "generic" -}; - -struct evas_image_foreach_loader_data -{ - Image_Entry *ie; - int *error; - Evas_Module *em; -}; - - -static Eina_Bool -_evas_image_foreach_loader(const Eina_Hash *hash __UNUSED__, const void *key __UNUSED__, void *data, void *fdata) -{ - Evas_Image_Load_Func *evas_image_load_func = NULL; - Evas_Module *em = data; - struct evas_image_foreach_loader_data *d = fdata; - Image_Entry *ie = d->ie; - - if (!evas_module_load(em)) return EINA_TRUE; - evas_image_load_func = em->functions; - evas_module_use(em); - *(d->error) = EVAS_LOAD_ERROR_NONE; - if (evas_image_load_func && - evas_image_load_func->file_head(ie, ie->file, ie->key, d->error) && - (*(d->error) == EVAS_LOAD_ERROR_NONE)) - { - d->em = em; - return EINA_FALSE; - } - - return EINA_TRUE; -} - -EAPI int -evas_common_load_rgba_image_module_from_file(Image_Entry *ie) -{ - Evas_Image_Load_Func *evas_image_load_func = NULL; - const char *loader = NULL, *end; - Evas_Module *em; - struct stat st; - unsigned int i; - int len, ret = EVAS_LOAD_ERROR_NONE; - struct evas_image_foreach_loader_data fdata; - - -#ifdef EVAS_CSERVE - if (evas_cserve_use_get()) - { - // TODO: handle errors from server and return them? - DBG("try cserve '%s' '%s'", ie->file, ie->key ? ie->key : ""); - if (evas_cserve_image_load(ie, ie->file, ie->key, &(ie->load_opts))) - { - DBG("try cserve '%s' '%s' loaded!", - ie->file, ie->key ? ie->key : ""); - return EVAS_LOAD_ERROR_NONE; - } - } -#endif - if (stat(ie->file, &st) != 0 || S_ISDIR(st.st_mode)) - { - DBG("trying to open directory '%s' !", ie->file); - return EVAS_LOAD_ERROR_DOES_NOT_EXIST; - } - - len = strlen(ie->file); - end = ie->file + len; - for (i = 0; i < (sizeof (loaders) / sizeof(struct ext_loader_s)); i++) - { - int len2 = strlen(loaders[i].extension); - if (len2 > len) continue; - if (!strcasecmp(end - len2, loaders[i].extension)) - { - loader = loaders[i].loader; - DBG("known loader '%s' handles extension '%s' of file '%s'", - loader, end - len2, ie->file); - break; - } - } - - if (loader) - { - em = evas_module_find_type(EVAS_MODULE_TYPE_IMAGE_LOADER, loader); - if (em) - { - DBG("found image loader '%s' (%p)", loader, em); - if (evas_module_load(em)) - { - evas_module_use(em); - evas_image_load_func = em->functions; - ret = EVAS_LOAD_ERROR_NONE; - if (evas_image_load_func->file_head(ie, ie->file, ie->key, &ret)) - { - DBG("loaded file head using module '%s' (%p): %s", - loader, em, ie->file); - goto end; - } - evas_module_unload(em); - INF("failed to load file head using module '%s' (%p): " - "%s (%s)", - loader, em, ie->file, evas_load_error_str(ret)); - } - else - WRN("failed to load module '%s' (%p)", loader, em); - } - else - INF("image loader '%s' is not enabled or missing!", loader); - } - - fdata.ie = ie; - fdata.error = &ret; - fdata.em = NULL; - ret = EVAS_LOAD_ERROR_NONE; - evas_module_foreach_image_loader(_evas_image_foreach_loader, &fdata); - em = fdata.em; - evas_image_load_func = em ? em->functions : NULL; - if (em) goto end; - - /* This is our last chance, try all known image loader. */ - /* FIXME: We could use eina recursive module search ability. */ - for (i = 0; i < sizeof (loaders_name) / sizeof (char *); i++) - { - em = evas_module_find_type(EVAS_MODULE_TYPE_IMAGE_LOADER, loaders_name[i]); - if (em) - { - if (evas_module_load(em)) - { - evas_module_use(em); - evas_image_load_func = em->functions; - ret = EVAS_LOAD_ERROR_NONE; - if (evas_image_load_func->file_head(ie, ie->file, ie->key, &ret)) - { - DBG("brute force loader '%s' (%p) worked on %s", - loaders_name[i], em, ie->file); - goto end; - } - else - INF("brute force loader '%s' (%p) failed on %s (%s)", - loaders_name[i], em, ie->file, - evas_load_error_str(ret)); - - evas_module_unload(em); - } - else - INF("failed to load module '%s' (%p)", loaders_name[i], em); - } - else - DBG("could not find module '%s'", loaders_name[i]); - } - - INF("exhausted all means to load image '%s'", ie->file); - return EVAS_LOAD_ERROR_UNKNOWN_FORMAT; - - end: - - if (ret != EVAS_LOAD_ERROR_NONE) - { - const char *modname = NULL; - int modversion = -1; - if (em && em->definition) - { - modname = em->definition->name; - modversion = em->definition->version; - } - WRN("loader '%s' (version %d) " - "handled file '%s', key '%s' with errors: %s", - modname ? modname : "", modversion, - ie->file, ie->key ? ie->key : "", - evas_load_error_str(ret)); - goto end; - } - - DBG("loader '%s' used for file %s", - (em && em->definition && em->definition->name) ? - em->definition->name : "", - ie->file); - - ie->info.module = (void*) em; - ie->info.loader = (void*) evas_image_load_func; - evas_module_ref((Evas_Module*) ie->info.module); - return ret; -} - -EAPI int -evas_common_load_rgba_image_data_from_file(Image_Entry *ie) -{ - Evas_Image_Load_Func *evas_image_load_func = NULL; - int ret = EVAS_LOAD_ERROR_NONE; - - if ((ie->flags.loaded) && (!ie->flags.animated)) return EVAS_LOAD_ERROR_GENERIC; - -#ifdef EVAS_CSERVE - if (ie->data1) - { - if (evas_cserve_image_data_load(ie)) - { - RGBA_Image *im = (RGBA_Image *)ie; - Mem *mem = ie->data2; - if (mem) - { - im->image.data = (void*) (mem->data + mem->offset); - im->image.no_free = 1; - return EVAS_LOAD_ERROR_NONE; - } - } - return EVAS_LOAD_ERROR_GENERIC; - } -#endif - - if (!ie->info.module) return EVAS_LOAD_ERROR_GENERIC; - -// printf("load data [%p] %s %s\n", ie, ie->file, ie->key); - - evas_image_load_func = ie->info.loader; - evas_module_use((Evas_Module*) ie->info.module); - if (!evas_image_load_func->file_data(ie, ie->file, ie->key, &ret)) - { - return ret; - } - -// evas_module_unref((Evas_Module*) ie->info.module); -// ie->info.module = NULL; - - return EVAS_LOAD_ERROR_NONE; -} - -EAPI double -evas_common_load_rgba_image_frame_duration_from_file(Image_Entry *ie, const int start, const int frame_num) -{ - Evas_Image_Load_Func *evas_image_load_func = NULL; - - if (!ie->info.module) return -1; - - evas_image_load_func = ie->info.loader; - evas_module_use((Evas_Module*) ie->info.module); - if (evas_image_load_func->frame_duration) - return evas_image_load_func->frame_duration(ie, ie->file, start, frame_num); - return -1; -} - -EAPI Eina_Bool -evas_common_extension_can_load_get(const char *file) -{ - unsigned int length; - unsigned int i; - - length = eina_stringshare_strlen(file) + 1; - if (length < 5) return EINA_FALSE; - - for (i = 0; i < sizeof (loaders) / sizeof (struct ext_loader_s); ++i) - { - if (loaders[i].length > length) continue; - - if (!strcasecmp(loaders[i].extension, file + length - loaders[i].length)) - return EINA_TRUE; - } - - return EINA_FALSE; -} diff --git a/libraries/evas/src/lib/engines/common/evas_image_main.c b/libraries/evas/src/lib/engines/common/evas_image_main.c deleted file mode 100644 index 9c233b3..0000000 --- a/libraries/evas/src/lib/engines/common/evas_image_main.c +++ /dev/null @@ -1,889 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include "config.h" /* so that EAPI in Eet.h is correctly defined */ -#endif - -#ifdef BUILD_LOADER_EET -# include -#endif - -#include "evas_common.h" -#include "evas_private.h" -#include "evas_image_private.h" -#include "evas_convert_yuv.h" -#include "evas_cs.h" - -#ifdef HAVE_VALGRIND -# include -#endif - -//#define SURFDBG 1 - -static Evas_Cache_Image * eci = NULL; -static int reference = 0; - -/* static RGBA_Image *evas_rgba_line_buffer = NULL; */ - -#define EVAS_RGBA_LINE_BUFFER_MIN_LEN 256 -#define EVAS_RGBA_LINE_BUFFER_MAX_LEN 2048 - -/* static RGBA_Image *evas_alpha_line_buffer = NULL; */ - -#define EVAS_ALPHA_LINE_BUFFER_MIN_LEN 256 -#define EVAS_ALPHA_LINE_BUFFER_MAX_LEN 2048 - - -static Image_Entry *_evas_common_rgba_image_new(void); -static void _evas_common_rgba_image_delete(Image_Entry *ie); - -static int _evas_common_rgba_image_surface_alloc(Image_Entry *ie, unsigned int w, unsigned int h); -static void _evas_common_rgba_image_surface_delete(Image_Entry *ie); -static DATA32 *_evas_common_rgba_image_surface_pixels(Image_Entry *ie); - -static void _evas_common_rgba_image_unload(Image_Entry *im); - -static void _evas_common_rgba_image_dirty_region(Image_Entry *im, unsigned int x, unsigned int y, unsigned int w, unsigned int h); - -static int _evas_common_rgba_image_ram_usage(Image_Entry *ie); - -/* Only called when references > 0. Need to provide a fresh copie of im. */ -/* The destination surface does have a surface, but no allocated pixel data. */ -static int _evas_common_rgba_image_dirty(Image_Entry* dst, const Image_Entry* src); - -#if 0 -static void -_evas_common_rgba_image_debug(const char* context, Image_Entry *eim) -{ - DBG("%p = [%s] {%s,%s} %i [%i|%i]", eim, context, eim->file, eim->key, eim->references, eim->w, eim->h); -} -#endif - -static const Evas_Cache_Image_Func _evas_common_image_func = -{ - _evas_common_rgba_image_new, - _evas_common_rgba_image_delete, - _evas_common_rgba_image_surface_alloc, - _evas_common_rgba_image_surface_delete, - _evas_common_rgba_image_surface_pixels, - evas_common_load_rgba_image_module_from_file, - _evas_common_rgba_image_unload, - _evas_common_rgba_image_dirty_region, - _evas_common_rgba_image_dirty, - evas_common_rgba_image_size_set, - evas_common_rgba_image_from_copied_data, - evas_common_rgba_image_from_data, - evas_common_rgba_image_colorspace_set, - evas_common_load_rgba_image_data_from_file, - _evas_common_rgba_image_ram_usage, -/* _evas_common_rgba_image_debug */ - NULL -}; - -EAPI void -evas_common_image_init(void) -{ - if (!eci) - eci = evas_cache_image_init(&_evas_common_image_func); - reference++; -//// ERR("REF++=%i", reference); - -#ifdef BUILD_LOADER_EET - eet_init(); -#endif - evas_common_scalecache_init(); -} - -EAPI void -evas_common_image_shutdown(void) -{ - if (--reference == 0) - { -//// printf("REF--=%i\n", reference); -// DISABLE for now - something wrong with cache shutdown freeing things -// still in use - rage_thumb segv's now. -// -// actually - i think i see it. cache ref goes to 0 (and thus gets freed) -// because in eng_setup() when a buffer changes size it is FIRST freed -// THEN allocated again - thus brignhjing ref to 0 then back to 1 immediately -// where it should stay at 1. - see evas_engine.c in the buffer enigne for -// example. eng_output_free() is called BEFORE _output_setup(). although this -// is only a SIGNE of the problem. we can patch this up with either freeing -// after the setup (so we just pt a ref of 2 then back to 1), or just -// evas_common_image_init() at the start and evas_common_image_shutdown() -// after it all. really ref 0 should only be reached when no more canvases -// with no more objects exist anywhere. - -// ENABLE IT AGAIN, hope it is fixed. Gustavo @ January 22nd, 2009. - evas_cache_image_shutdown(eci); - eci = NULL; - } - -#ifdef BUILD_LOADER_EET - eet_shutdown(); -#endif - evas_common_scalecache_shutdown(); -} - -EAPI void -evas_common_image_image_all_unload(void) -{ - evas_common_rgba_image_scalecache_dump(); - evas_cache_image_unload_all(eci); -} - -static Image_Entry * -_evas_common_rgba_image_new(void) -{ - RGBA_Image *im; - - im = calloc(1, sizeof(RGBA_Image)); - if (!im) return NULL; - im->flags = RGBA_IMAGE_NOTHING; - im->ref = 1; -#ifdef EVAS_FRAME_QUEUING - LKI(im->cache_entry.ref_fq_add); - LKI(im->cache_entry.ref_fq_del); - eina_condition_new(&(im->cache_entry.cond_fq_del), - &(im->cache_entry.ref_fq_del)); -#endif - - evas_common_rgba_image_scalecache_init(&im->cache_entry); - - return &im->cache_entry; -} - -static void -_evas_common_rgba_image_delete(Image_Entry *ie) -{ - RGBA_Image *im = (RGBA_Image *)ie; - -#ifdef BUILD_PIPE_RENDER - evas_common_pipe_free(im); -# ifdef EVAS_FRAME_QUEUING - LKD(im->cache_entry.ref_fq_add); - LKD(im->cache_entry.ref_fq_del); - eina_condition_free(&(im->cache_entry.cond_fq_del)); -# endif -#endif - evas_common_rgba_image_scalecache_shutdown(&im->cache_entry); - if (ie->info.module) evas_module_unref((Evas_Module *)ie->info.module); - /* memset the image to 0x99 because i recently saw a segv where an - * seemed to be used BUT its contents were wrong - it looks like it was - * overwritten by something from efreet - as there was an execute command - * for a command there and some other signs - but to make sure, I am - * going to empty this struct out in case this happens again so i know - * that something else is overwritign this struct - or not */ -// memset(im, 0x99, sizeof(im)); -#ifdef EVAS_CSERVE - if (ie->data1) evas_cserve_image_free(ie); -#endif -/* - * FIXME: This doesn't seem to be needed... But I'm not sure why. - * -- nash - { - Filtered_Image *fi; - - EINA_LIST_FREE(im->filtered, fi) - { - free(fi->key); - _evas_common_rgba_image_delete((Image_Entry *)(fi->image)); - free(fi); - } - } -*/ - if (ie->frames) - { - Eina_List *l; - Image_Entry_Frame *frame; - EINA_LIST_FOREACH(ie->frames, l, frame) - { - if (frame) - { - if (frame->data) free(frame->data); - if (frame->info) free(frame->info); - free (frame); - } - } - } - free(im); -} - -EAPI void -evas_common_rgba_image_free(Image_Entry *ie) -{ - _evas_common_rgba_image_surface_delete(ie); - _evas_common_rgba_image_delete(ie); -} - -#ifdef SURFDBG -static Eina_List *surfs = NULL; - -static void -surf_debug(void) -{ - Eina_List *l; - Image_Entry *ie; - RGBA_Image *im; - int i = 0; - - printf("----SURFS----\n"); - EINA_LIST_FOREACH(surfs, l, ie) - { - im = ie; - printf("%i - %p - %ix%i [%s][%s]\n", - i, im->image.data, ie->allocated.w, ie->allocated.h, - ie->file, ie->key - ); - i++; - } -} -#endif - -EAPI void -evas_common_rgba_image_unload(Image_Entry *ie) -{ - RGBA_Image *im = (RGBA_Image *) ie; - - if (!ie->flags.loaded) return; - if ((!ie->info.module) && (!ie->data1)) return; - if (!ie->file) return; - - ie->flags.loaded = 0; - - if ((im->cs.data) && (im->image.data)) - { - if (im->cs.data != im->image.data) - { - if (!im->cs.no_free) free(im->cs.data); - } - } - else if (im->cs.data) - { - if (!im->cs.no_free) free(im->cs.data); - } - im->cs.data = NULL; - -#ifdef EVAS_CSERVE - if (ie->data1) - { - evas_cserve_image_useless(ie); - im->image.data = NULL; - ie->allocated.w = 0; - ie->allocated.h = 0; - ie->flags.loaded = 0; -#ifdef BUILD_ASYNC_PRELOAD - ie->flags.preload_done = 0; -#endif - return; - } -#endif - - if (im->image.data && !im->image.no_free) - { - free(im->image.data); -#ifdef SURFDBG - surfs = eina_list_remove(surfs, ie); -#endif - } - im->image.data = NULL; - ie->allocated.w = 0; - ie->allocated.h = 0; - ie->flags.loaded = 0; -#ifdef BUILD_ASYNC_PRELOAD - ie->flags.preload_done = 0; -#endif -#ifdef SURFDBG - surf_debug(); -#endif -} - -void -_evas_common_rgba_image_post_surface(Image_Entry *ie) -{ -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_IMAGE - RGBA_Image *im = (RGBA_Image *)ie; - - if (im->pixman.im) pixman_image_unref(im->pixman.im); - if (im->cache_entry.flags.alpha) - { - im->pixman.im = pixman_image_create_bits - ( -// FIXME: endianess determines this - PIXMAN_a8r8g8b8, -// PIXMAN_b8g8r8a8, - im->cache_entry.w, im->cache_entry.h, - im->image.data, - im->cache_entry.w * 4 - ); - } - else - { - im->pixman.im = pixman_image_create_bits - ( -// FIXME: endianess determines this - PIXMAN_x8r8g8b8, -// PIXMAN_b8g8r8x8, - im->cache_entry.w, im->cache_entry.h, - im->image.data, - im->cache_entry.w * 4 - ); - } -# else - (void)ie; -# endif -#else - (void)ie; -#endif -} - -static int -_evas_common_rgba_image_surface_alloc(Image_Entry *ie, unsigned int w, unsigned int h) -{ - RGBA_Image *im = (RGBA_Image *) ie; - size_t siz = 0; - -#ifdef EVAS_CSERVE - if (ie->data1) return 0; -#endif - if (im->image.no_free) return 0; - - if (im->flags & RGBA_IMAGE_ALPHA_ONLY) - siz = w * h * sizeof(DATA8); - else - siz = w * h * sizeof(DATA32); - - if (im->image.data) - { - free(im->image.data); -#ifdef SURFDBG - surfs = eina_list_remove(surfs, ie); -#endif - } - im->image.data = malloc(siz); - if (!im->image.data) return -1; - ie->allocated.w = w; - ie->allocated.h = h; -#ifdef SURFDBG - surfs = eina_list_append(surfs, ie); -#endif -#ifdef HAVE_VALGRIND -# ifdef VALGRIND_MAKE_READABLE - VALGRIND_MAKE_READABLE(im->image.data, siz); -# else -# ifdef VALGRIND_MAKE_MEM_DEFINED - VALGRIND_MAKE_MEM_DEFINED(im->image.data, siz); -# endif -# endif -#endif - _evas_common_rgba_image_post_surface(ie); -#ifdef SURFDBG - surf_debug(); -#endif - return 0; -} - -static void -_evas_common_rgba_image_surface_delete(Image_Entry *ie) -{ - RGBA_Image *im = (RGBA_Image *) ie; - -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_IMAGE - if (im->pixman.im) - { - pixman_image_unref(im->pixman.im); - im->pixman.im = NULL; - } -# endif -#endif - if (ie->file) - DBG("unload: [%p] %s %s", ie, ie->file, ie->key); - if ((im->cs.data) && (im->image.data)) - { - if (im->cs.data != im->image.data) - { - if (!im->cs.no_free) free(im->cs.data); - } - } - else if (im->cs.data) - { - if (!im->cs.no_free) free(im->cs.data); - } - im->cs.data = NULL; - - if (im->image.data && !im->image.no_free) - { - free(im->image.data); -#ifdef SURFDBG - surfs = eina_list_remove(surfs, ie); -#endif - } -#ifdef EVAS_CSERVE - else if (ie->data1) - evas_cserve_image_free(ie); -#endif - - im->image.data = NULL; - ie->allocated.w = 0; - ie->allocated.h = 0; -#ifdef BUILD_ASYNC_PRELOAD - ie->flags.preload_done = 0; -#endif - ie->flags.loaded = 0; - evas_common_rgba_image_scalecache_dirty(&im->cache_entry); -#ifdef SURFDBG - surf_debug(); -#endif -} - -static void -_evas_common_rgba_image_unload(Image_Entry *im) -{ -// DBG("unload: [%p] %s %s", im, im->file, im->key); - evas_common_rgba_image_scalecache_dirty(im); - evas_common_rgba_image_unload(im); -} - -static void -_evas_common_rgba_image_dirty_region(Image_Entry* ie, unsigned int x __UNUSED__, unsigned int y __UNUSED__, unsigned int w __UNUSED__, unsigned int h __UNUSED__) -{ - RGBA_Image *im = (RGBA_Image *) ie; - -#ifdef EVAS_CSERVE - if (ie->data1) evas_cserve_image_free(ie); -#endif - im->flags |= RGBA_IMAGE_IS_DIRTY; - evas_common_rgba_image_scalecache_dirty(&im->cache_entry); -} - -/* Only called when references > 0. Need to provide a fresh copie of im. */ -static int -_evas_common_rgba_image_dirty(Image_Entry *ie_dst, const Image_Entry *ie_src) -{ - RGBA_Image *dst = (RGBA_Image *) ie_dst; - RGBA_Image *src = (RGBA_Image *) ie_src; - - evas_common_rgba_image_scalecache_dirty((Image_Entry *)ie_src); - evas_common_rgba_image_scalecache_dirty(ie_dst); - evas_cache_image_load_data(&src->cache_entry); - if (_evas_common_rgba_image_surface_alloc(&dst->cache_entry, - src->cache_entry.w, src->cache_entry.h)) - { -#ifdef EVAS_CSERVE - if (ie_src->data1) evas_cserve_image_free((Image_Entry*) ie_src); -#endif - return 1; - } - -#ifdef EVAS_CSERVE - if (ie_src->data1) evas_cserve_image_free((Image_Entry*) ie_src); -#endif - evas_common_image_colorspace_normalize(src); - evas_common_image_colorspace_normalize(dst); -/* evas_common_blit_rectangle(src, dst, 0, 0, src->cache_entry.w, src->cache_entry.h, 0, 0); */ -/* evas_common_cpu_end_opt(); */ - - return 0; -} - -static int -_evas_common_rgba_image_ram_usage(Image_Entry *ie) -{ - RGBA_Image *im = (RGBA_Image *)ie; - int size = sizeof(struct _RGBA_Image); - - if (ie->cache_key) size += strlen(ie->cache_key); - if (ie->file) size += strlen(ie->file); - if (ie->key) size += strlen(ie->key); - - if (im->image.data) - { -#ifdef EVAS_CSERVE - if ((!im->image.no_free) || (ie->data1)) -#else - if ((!im->image.no_free)) -#endif - size += im->cache_entry.w * im->cache_entry.h * sizeof(DATA32); - } - size += evas_common_rgba_image_scalecache_usage_get(&im->cache_entry); - return size; -} - -static DATA32 * -_evas_common_rgba_image_surface_pixels(Image_Entry *ie) -{ - RGBA_Image *im = (RGBA_Image *) ie; - - return im->image.data; -} - -#if 0 -void -evas_common_image_surface_alpha_tiles_calc(RGBA_Surface *is, int tsize) -{ - int x, y; - DATA32 *ptr; - - if (is->spans) return; - if (!is->im->cache_entry.flags.alpha) return; - /* FIXME: dont handle alpha only images yet */ - if ((is->im->flags & RGBA_IMAGE_ALPHA_ONLY)) return; - if (tsize < 0) tsize = 0; - is->spans = calloc(1, sizeof(RGBA_Image_Span *) * is->h); - if (!is->spans) return; - ptr = is->data; - for (y = 0; y < is->h; y++) - { - RGBA_Image_Span *sp; - - sp = NULL; - for (x = 0; x < is->w; x++) - { - DATA8 a; - - a = A_VAL(ptr); - if (sp) - { - if (a == 0) - { - is->spans[y] = eina_inlist_append(is->spans[y], sp); - sp = NULL; - } - else - { - sp->w++; - if ((sp->v == 2) && (a != 255)) sp->v = 1; - } - } - else - { - if (a == 255) - { - sp = calloc(1, sizeof(RGBA_Image_Span)); - sp->x = x; - sp->w = 1; - sp->v = 2; - } - else if (a > 0) - { - sp = calloc(1, sizeof(RGBA_Image_Span)); - sp->x = x; - sp->w = 1; - sp->v = 1; - } - } - ptr++; - } - if (sp) - { - is->spans[y] = eina_inlist_append(is->spans[y], sp); - sp = NULL; - } - } -} -#endif - -/* EAPI void */ -/* evas_common_image_surface_dealloc(RGBA_Surface *is) */ -/* { */ -/* if ((is->data) && (!is->no_free)) */ -/* { */ -/* free(is->data); */ -/* is->data = NULL; */ -/* } */ -/* } */ - -static RGBA_Image * -evas_common_image_create(unsigned int w, unsigned int h) -{ - RGBA_Image *im; - - im = (RGBA_Image *) _evas_common_rgba_image_new(); - if (!im) return NULL; - im->cache_entry.w = w; - im->cache_entry.h = h; - if (_evas_common_rgba_image_surface_alloc(&im->cache_entry, w, h)) - { - _evas_common_rgba_image_delete(&im->cache_entry); - return NULL; - } - im->cache_entry.flags.cached = 0; - return im; -} - -EAPI RGBA_Image * -evas_common_image_alpha_create(unsigned int w, unsigned int h) -{ - RGBA_Image *im; - - im = (RGBA_Image *) _evas_common_rgba_image_new(); - if (!im) return NULL; - im->cache_entry.w = w; - im->cache_entry.h = h; - im->cache_entry.flags.alpha = 1; - if (_evas_common_rgba_image_surface_alloc(&im->cache_entry, w, h)) - { - _evas_common_rgba_image_delete(&im->cache_entry); - return NULL; - } - im->cache_entry.flags.cached = 0; - return im; -} - -EAPI RGBA_Image * -evas_common_image_new(unsigned int w, unsigned int h, unsigned int alpha) -{ - if (alpha) - return evas_common_image_alpha_create(w, h); - return evas_common_image_create(w, h); -} - -void -evas_common_image_colorspace_normalize(RGBA_Image *im) -{ - if ((!im->cs.data) || - ((!im->cs.dirty) && (!(im->flags & RGBA_IMAGE_IS_DIRTY)))) return; - switch (im->cache_entry.space) - { - case EVAS_COLORSPACE_ARGB8888: - if (im->image.data != im->cs.data) - { -#ifdef EVAS_CSERVE - if (((Image_Entry *)im)->data1) evas_cserve_image_free(&im->cache_entry); -#endif - if (!im->image.no_free) - { - free(im->image.data); -#ifdef SURFDBG - surfs = eina_list_remove(surfs, im); -#endif - ((Image_Entry *)im)->allocated.w = 0; - ((Image_Entry *)im)->allocated.h = 0; - } - im->image.data = im->cs.data; - im->cs.no_free = im->image.no_free; - } - break; - case EVAS_COLORSPACE_YCBCR422P601_PL: -#ifdef BUILD_CONVERT_YUV - if ((im->image.data) && (*((unsigned char **)im->cs.data))) - evas_common_convert_yuv_420p_601_rgba(im->cs.data, (DATA8*) im->image.data, - im->cache_entry.w, im->cache_entry.h); -#endif - break; - case EVAS_COLORSPACE_YCBCR422601_PL: -#ifdef BUILD_CONVERT_YUV - if ((im->image.data) && (*((unsigned char **)im->cs.data))) - evas_common_convert_yuv_422_601_rgba(im->cs.data, (DATA8*) im->image.data, - im->cache_entry.w, im->cache_entry.h); -#endif - break; - case EVAS_COLORSPACE_YCBCR420NV12601_PL: -#ifdef BUILD_CONVERT_YUV - if ((im->image.data) && (*((unsigned char **)im->cs.data))) - evas_common_convert_yuv_420_601_rgba(im->cs.data, (DATA8*) im->image.data, - im->cache_entry.w, im->cache_entry.h); -#endif - break; - case EVAS_COLORSPACE_YCBCR420TM12601_PL: -#ifdef BUILD_CONVERT_YUV - if ((im->image.data) && (*((unsigned char **)im->cs.data))) - evas_common_convert_yuv_420T_601_rgba(im->cs.data, (DATA8*) im->image.data, - im->cache_entry.w, im->cache_entry.h); -#endif - break; - default: - break; - } - im->cs.dirty = 0; -#ifdef SURFDBG - surf_debug(); -#endif -} - -EAPI void -evas_common_image_colorspace_dirty(RGBA_Image *im) -{ - im->cs.dirty = 1; - evas_common_rgba_image_scalecache_dirty(&im->cache_entry); -} - -EAPI void -evas_common_image_set_cache(unsigned int size) -{ - if (eci) - evas_cache_image_set(eci, size); -} - -EAPI int -evas_common_image_get_cache(void) -{ - return evas_cache_image_get(eci); -} - -EAPI RGBA_Image * -evas_common_load_image_from_file(const char *file, const char *key, RGBA_Image_Loadopts *lo, int *error) -{ - if (!file) - { - *error = EVAS_LOAD_ERROR_GENERIC; - return NULL; - } - return (RGBA_Image *) evas_cache_image_request(eci, file, key, lo, error); -} - -EAPI void -evas_common_image_cache_free(void) -{ - evas_common_image_set_cache(0); -} - -EAPI Evas_Cache_Image* -evas_common_image_cache_get(void) -{ - return eci; -} - -EAPI RGBA_Image * -evas_common_image_line_buffer_obtain(int len) -{ - if (len < 1) return NULL; - if (len < EVAS_RGBA_LINE_BUFFER_MIN_LEN) - len = EVAS_RGBA_LINE_BUFFER_MIN_LEN; - return evas_common_image_create(len, 1); -/* - if (evas_rgba_line_buffer) - { - if (evas_rgba_line_buffer->image->w >= len) - return evas_rgba_line_buffer; - evas_rgba_line_buffer->image->data = (DATA32 *)realloc(evas_rgba_line_buffer->image->data, len * sizeof(DATA32)); - if (!evas_rgba_line_buffer->image->data) - { - evas_common_image_free(evas_rgba_line_buffer); - evas_rgba_line_buffer = NULL; - return NULL; - } - evas_rgba_line_buffer->image->w = len; - return evas_rgba_line_buffer; - } - evas_rgba_line_buffer = evas_common_image_create(len, 1); - if (!evas_rgba_line_buffer) return NULL; - return evas_rgba_line_buffer; - */ -} - -EAPI void -evas_common_image_line_buffer_release(RGBA_Image *im) -{ - _evas_common_rgba_image_delete(&im->cache_entry); -/* - if (!evas_rgba_line_buffer) return; - if (EVAS_RGBA_LINE_BUFFER_MAX_LEN < evas_rgba_line_buffer->image->w) - { - evas_rgba_line_buffer->image->w = EVAS_RGBA_LINE_BUFFER_MAX_LEN; - evas_rgba_line_buffer->image->data = (DATA32 *)realloc(evas_rgba_line_buffer->image->data, - evas_rgba_line_buffer->image->w * sizeof(DATA32)); - if (!evas_rgba_line_buffer->image->data) - { - evas_common_image_free(evas_rgba_line_buffer); - evas_rgba_line_buffer = NULL; - } - } - */ -} - -EAPI void -evas_common_image_line_buffer_free(RGBA_Image *im) -{ - _evas_common_rgba_image_delete(&im->cache_entry); -/* - if (!evas_rgba_line_buffer) return; - evas_common_image_free(evas_rgba_line_buffer); - evas_rgba_line_buffer = NULL; - */ -} - -EAPI RGBA_Image * -evas_common_image_alpha_line_buffer_obtain(int len) -{ - if (len < 1) return NULL; - if (len < EVAS_ALPHA_LINE_BUFFER_MIN_LEN) - len = EVAS_ALPHA_LINE_BUFFER_MIN_LEN; - return evas_common_image_alpha_create(len, 1); -/* - if (evas_alpha_line_buffer) - { - if (evas_alpha_line_buffer->image->w >= len) - return evas_alpha_line_buffer; - evas_alpha_line_buffer->image->data = realloc(evas_alpha_line_buffer->image->data, len * sizeof(DATA8)); - if (!evas_alpha_line_buffer->image->data) - { - evas_common_image_free(evas_alpha_line_buffer); - evas_alpha_line_buffer = NULL; - return NULL; - } - evas_alpha_line_buffer->image->w = len; - return evas_alpha_line_buffer; - } - evas_alpha_line_buffer = evas_common_image_alpha_create(len, 1); - return evas_alpha_line_buffer; - */ -} - -EAPI void -evas_common_image_alpha_line_buffer_release(RGBA_Image *im) -{ - _evas_common_rgba_image_delete(&im->cache_entry); -/* - if (!evas_alpha_line_buffer) return; - if (EVAS_ALPHA_LINE_BUFFER_MAX_LEN < evas_alpha_line_buffer->image->w) - { - evas_alpha_line_buffer->image->w = EVAS_ALPHA_LINE_BUFFER_MAX_LEN; - evas_alpha_line_buffer->image->data = realloc(evas_alpha_line_buffer->image->data, - evas_alpha_line_buffer->image->w * sizeof(DATA8)); - if (!evas_alpha_line_buffer->image->data) - { - evas_common_image_free(evas_alpha_line_buffer); - evas_alpha_line_buffer = NULL; - } - } - */ -} - -EAPI void -evas_common_image_premul(Image_Entry *ie) -{ - DATA32 nas = 0; - - if (!ie) return ; - if (!evas_cache_image_pixels(ie)) return ; - if (!ie->flags.alpha) return; - - nas = evas_common_convert_argb_premul(evas_cache_image_pixels(ie), ie->w * ie->h); - if ((ALPHA_SPARSE_INV_FRACTION * nas) >= (ie->w * ie->h)) - ie->flags.alpha_sparse = 1; -} - -EAPI void -evas_common_image_set_alpha_sparse(Image_Entry *ie) -{ - DATA32 *s, *se; - DATA32 nas = 0; - - if (!ie) return; - if (!evas_cache_image_pixels(ie)) return ; - if (!ie->flags.alpha) return; - - s = evas_cache_image_pixels(ie); - se = s + (ie->w * ie->h); - while (s < se) - { - DATA32 p = *s & 0xff000000; - - if (!p || (p == 0xff000000)) - nas++; - s++; - } - if ((ALPHA_SPARSE_INV_FRACTION * nas) >= (ie->w * ie->h)) - ie->flags.alpha_sparse = 1; -} diff --git a/libraries/evas/src/lib/engines/common/evas_image_private.h b/libraries/evas/src/lib/engines/common/evas_image_private.h deleted file mode 100644 index 1bec6c8..0000000 --- a/libraries/evas/src/lib/engines/common/evas_image_private.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _EVAS_IMAGE_PRIVATE_H -#define _EVAS_IMAGE_PRIVATE_H - -int evas_common_rgba_image_size_set (Image_Entry* dst, const Image_Entry* im, unsigned int w, unsigned int h); -int evas_common_rgba_image_from_copied_data (Image_Entry* dst, unsigned int w, unsigned int h, DATA32 *image_data, int alpha, int cspace); -int evas_common_rgba_image_from_data (Image_Entry* dst, unsigned int w, unsigned int h, DATA32 *image_data, int alpha, int cspace); -int evas_common_rgba_image_colorspace_set (Image_Entry* dst, int cspace); - -void evas_common_scalecache_init(void); -void evas_common_scalecache_shutdown(void); -void evas_common_rgba_image_scalecache_init(Image_Entry *ie); -void evas_common_rgba_image_scalecache_shutdown(Image_Entry *ie); -void evas_common_rgba_image_scalecache_dirty(Image_Entry *ie); -void evas_common_rgba_image_scalecache_orig_use(Image_Entry *ie); -int evas_common_rgba_image_scalecache_usage_get(Image_Entry *ie); - -#endif /* _EVAS_IMAGE_PRIVATE_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_image_save.c b/libraries/evas/src/lib/engines/common/evas_image_save.c deleted file mode 100644 index d7484c0..0000000 --- a/libraries/evas/src/lib/engines/common/evas_image_save.c +++ /dev/null @@ -1,51 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include "evas_options.h" - -#include "evas_common.h" -#include "evas_private.h" - - -int -evas_common_save_image_to_file(RGBA_Image *im, const char *file, const char *key, int quality, int compress) -{ - Evas_Image_Save_Func *evas_image_save_func = NULL; - char *p; - char *saver = NULL; - - p = strrchr(file, '.'); - if (p) - { - p++; - - if (!strcasecmp(p, "png")) - saver = "png"; - if ((!strcasecmp(p, "jpg")) || (!strcasecmp(p, "jpeg")) || - (!strcasecmp(p, "jfif"))) - saver = "jpeg"; - if ((!strcasecmp(p, "eet")) || (!strcasecmp(p, "edj")) || - (!strcasecmp(p, "eap"))) - saver = "eet"; - if (!strcasecmp(p, "edb")) - saver = "edb"; - } - - if (saver) - { - Evas_Module *em; - - em = evas_module_find_type(EVAS_MODULE_TYPE_IMAGE_SAVER, saver); - if (em) - { - evas_module_use(em); - if (evas_module_load(em)) - { - evas_image_save_func = em->functions; - return evas_image_save_func->image_save(im, file, key, quality, compress); - } - } - } - return 0; -} diff --git a/libraries/evas/src/lib/engines/common/evas_image_scalecache.c b/libraries/evas/src/lib/engines/common/evas_image_scalecache.c deleted file mode 100644 index e4e4790..0000000 --- a/libraries/evas/src/lib/engines/common/evas_image_scalecache.c +++ /dev/null @@ -1,844 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#ifdef HAVE_EVIL -# include -#endif - -#include - -#include "evas_common.h" -#include "evas_private.h" -#include "evas_image_private.h" - -#define SCALECACHE 1 - -#define MAX_SCALEITEMS 32 -#define MIN_SCALE_USES 3 -//#define MIN_SCALE_AGE_GAP 5000 -#define MAX_SCALECACHE_DIM 3200 -#define FLOP_ADD 4 -#define MAX_FLOP_COUNT 16 -#define FLOP_DEL 1 -#define SCALE_CACHE_SIZE 4 * 1024 * 1024 -//#define SCALE_CACHE_SIZE 0 - -typedef struct _Scaleitem Scaleitem; - -struct _Scaleitem -{ - EINA_INLIST; - unsigned long long usage; - unsigned long long usage_count; - RGBA_Image *im, *parent_im; - int src_x, src_y; - unsigned int src_w, src_h; - unsigned int dst_w, dst_h; - unsigned int flop; - unsigned int size_adjust; -#ifdef EVAS_FRAME_QUEUING - RWLK(lock); -#endif - Eina_Bool forced_unload : 1; - Eina_Bool smooth : 1; - Eina_Bool populate_me : 1; -}; - -#ifdef SCALECACHE -static unsigned long long use_counter = 0; - -static LK(cache_lock); -static Eina_Inlist *cache_list = NULL; -static unsigned int cache_size = 0; -static int init = 0; - -static unsigned int max_cache_size = SCALE_CACHE_SIZE; -static unsigned int max_dimension = MAX_SCALECACHE_DIM; -static unsigned int max_flop_count = MAX_FLOP_COUNT; -static unsigned int max_scale_items = MAX_SCALEITEMS; -static unsigned int min_scale_uses = MIN_SCALE_USES; -#endif - -void -evas_common_scalecache_init(void) -{ -#ifdef SCALECACHE - const char *s; - - init++; - if (init > 1) return; - use_counter = 0; - LKI(cache_lock); - s = getenv("EVAS_SCALECACHE_SIZE"); - if (s) max_cache_size = atoi(s) * 1024; - s = getenv("EVAS_SCALECACHE_MAX_DIMENSION"); - if (s) max_dimension = atoi(s); - s = getenv("EVAS_SCALECACHE_MAX_FLOP_COUNT"); - if (s) max_flop_count = atoi(s); - s = getenv("EVAS_SCALECACHE_MAX_ITEMS"); - if (s) max_scale_items = atoi(s); - s = getenv("EVAS_SCALECACHE_MIN_USES"); - if (s) min_scale_uses = atoi(s); -#endif -} - -void -evas_common_scalecache_shutdown(void) -{ -#ifdef SCALECACHE - init--; - if (init ==0) - LKD(cache_lock); -#endif -} - -void -evas_common_rgba_image_scalecache_init(Image_Entry *ie) -{ -#ifdef SCALECACHE - RGBA_Image *im = (RGBA_Image *)ie; - // NOTE: this conflicts with evas image cache init and del of lock - LKI(im->cache.lock); -#endif -} - -void -evas_common_rgba_image_scalecache_shutdown(Image_Entry *ie) -{ -#ifdef SCALECACHE - RGBA_Image *im = (RGBA_Image *)ie; - evas_common_rgba_image_scalecache_dirty(ie); - // NOTE: this conflicts with evas image cache init and del of lock - LKD(im->cache.lock); -#endif -} - -void -evas_common_rgba_image_scalecache_dirty(Image_Entry *ie) -{ -#ifdef SCALECACHE - RGBA_Image *im = (RGBA_Image *)ie; - LKL(im->cache.lock); - while (im->cache.list) - { - Scaleitem *sci; - sci = im->cache.list->data; -#ifdef EVAS_FRAME_QUEUING - WRLKL(sci->lock); -#endif - im->cache.list = eina_list_remove(im->cache.list, sci); - if (sci->im) - { -// INF(" 0- %i", sci->dst_w * sci->dst_h * 4); - LKL(cache_lock); - evas_common_rgba_image_free(&sci->im->cache_entry); - if (!sci->forced_unload) - cache_size -= sci->dst_w * sci->dst_h * 4; - else - cache_size -= sci->size_adjust; - cache_list = eina_inlist_remove(cache_list, (Eina_Inlist *)sci); - LKU(cache_lock); - } -#ifdef EVAS_FRAME_QUEUING - RWLKU(sci->lock); - RWLKD(sci->lock); -#endif - free(sci); - } - LKU(im->cache.lock); -#endif -} - -void -evas_common_rgba_image_scalecache_orig_use(Image_Entry *ie) -{ -#ifdef SCALECACHE - RGBA_Image *im = (RGBA_Image *)ie; - LKL(im->cache.lock); - use_counter++; - // FIXME: if orig not loaded, reload - // FIXME: mark orig with current used counter - im->cache.orig_usage++; - im->cache.usage_count = use_counter; - LKU(im->cache.lock); -#endif -} - -int -evas_common_rgba_image_scalecache_usage_get(Image_Entry *ie) -{ -#ifdef SCALECACHE - RGBA_Image *im = (RGBA_Image *)ie; - int size = 0; - Eina_List *l; - Scaleitem *sci; - LKL(im->cache.lock); - EINA_LIST_FOREACH(im->cache.list, l, sci) - { - if (sci->im) size += sci->dst_w * sci->dst_h * 4; - } - LKU(im->cache.lock); - return size; -#else - return 0; -#endif -} - -#ifdef SCALECACHE -static void -_sci_fix_newest(RGBA_Image *im) -{ - Eina_List *l; - Scaleitem *sci; - - im->cache.newest_usage = 0; - im->cache.newest_usage_count = 0; - EINA_LIST_FOREACH(im->cache.list, l, sci) - { - if (sci->usage > im->cache.newest_usage) - im->cache.newest_usage = sci->usage; - if (sci->usage_count > im->cache.newest_usage_count) - im->cache.newest_usage_count = sci->usage_count; - } -// INF("_sci_fix_newest! -> %i", im->cache.newest_usage); -} - -static Scaleitem * -_sci_find(RGBA_Image *im, - RGBA_Draw_Context *dc __UNUSED__, int smooth, - int src_region_x, int src_region_y, - unsigned int src_region_w, unsigned int src_region_h, - unsigned int dst_region_w, unsigned int dst_region_h) -{ - Eina_List *l; - Scaleitem *sci; - - EINA_LIST_FOREACH(im->cache.list, l, sci) - { - if ( - (sci->src_w == src_region_w) && - (sci->src_h == src_region_h) && - (sci->dst_w == dst_region_w) && - (sci->dst_h == dst_region_h) && - (sci->src_x == src_region_x) && - (sci->src_y == src_region_y) && - (sci->smooth == smooth) - ) - { - if (im->cache.list != l) - { - im->cache.list = eina_list_remove_list(im->cache.list, l); - im->cache.list = eina_list_prepend(im->cache.list, sci); - } - return sci; - } - } - if (eina_list_count(im->cache.list) > max_scale_items) - { - l = eina_list_last(im->cache.list); - sci = l->data; -#ifdef EVAS_FRAME_QUEUING - WRLKL(sci->lock); -#endif - im->cache.list = eina_list_remove_list(im->cache.list, l); - if ((sci->usage == im->cache.newest_usage) || - (sci->usage_count == im->cache.newest_usage_count)) - _sci_fix_newest(im); - if (sci->im) - { - evas_common_rgba_image_free(&sci->im->cache_entry); - if (!sci->forced_unload) - cache_size -= sci->dst_w * sci->dst_h * 4; - else - cache_size -= sci->size_adjust; -// INF(" 1- %i", sci->dst_w * sci->dst_h * 4); - cache_list = eina_inlist_remove(cache_list, (Eina_Inlist *)sci); - } -#ifdef EVAS_FRAME_QUEUING - RWLKU(sci->lock); -#endif - if (max_scale_items < 1) return NULL; - } - else - { - if (max_scale_items < 1) return NULL; - - if (eina_list_count(im->cache.list) > (max_scale_items - 1)) - return NULL; - sci = calloc(1, sizeof(Scaleitem)); - sci->parent_im = im; -#ifdef EVAS_FRAME_QUEUING - RWLKI(sci->lock); -#endif - } - sci->usage = 0; - sci->usage_count = 0; - sci->populate_me = 0; - sci->smooth = smooth; - sci->forced_unload = 0; - sci->flop = 0; - sci->im = NULL; - sci->src_x = src_region_x; - sci->src_y = src_region_y; - sci->src_w = src_region_w; - sci->src_h = src_region_h; - sci->dst_w = dst_region_w; - sci->dst_h = dst_region_h; - im->cache.list = eina_list_prepend(im->cache.list, sci); - return sci; -} - -static void -_cache_prune(Scaleitem *notsci, Eina_Bool copies_only) -{ - Scaleitem *sci; - while (cache_size > max_cache_size) - { - if (!cache_list) break; - sci = (Scaleitem *)(cache_list); - if (copies_only) - { - while ((sci) && (!sci->parent_im->image.data)) - sci = (Scaleitem *)(((Eina_Inlist *)sci)->next); - if (!sci) return; - } - if (sci == notsci) return; -#ifdef EVAS_FRAME_QUEUING - WRLKL(sci->lock); -#endif - if (sci->im) - { - evas_common_rgba_image_free(&sci->im->cache_entry); - sci->im = NULL; - sci->usage = 0; - sci->usage_count = 0; - sci->flop += FLOP_ADD; - if (!sci->forced_unload) - cache_size -= sci->dst_w * sci->dst_h * 4; - else - cache_size -= sci->size_adjust; -// INF(" 2- %i", sci->dst_w * sci->dst_h * 4); - cache_list = eina_inlist_remove(cache_list, (Eina_Inlist *)sci); - memset(sci, 0, sizeof(Eina_Inlist)); - } -#ifdef EVAS_FRAME_QUEUING - RWLKU(sci->lock); -#endif - -// INF("FLUSH %i > %i", cache_size, max_cache_size); - } -} -#endif - -EAPI void -evas_common_rgba_image_scalecache_size_set(unsigned int size) -{ -#ifdef SCALECACHE - LKL(cache_lock); - if (size != max_cache_size) - { - max_cache_size = size; - _cache_prune(NULL, 1); - } - LKU(cache_lock); -#endif -} - -EAPI unsigned int -evas_common_rgba_image_scalecache_size_get(void) -{ -#ifdef SCALECACHE - int t; - LKL(cache_lock); - t = max_cache_size; - LKU(cache_lock); - return t; -#else - return 0; -#endif -} - -EAPI void -evas_common_rgba_image_scalecache_dump(void) -{ -#ifdef SCALECACHE - int t; - LKL(cache_lock); - t = max_cache_size; - max_cache_size = 0; - _cache_prune(NULL, 0); - max_cache_size = t; - LKU(cache_lock); -#endif -} - -EAPI void -evas_common_rgba_image_scalecache_flush(void) -{ -#ifdef SCALECACHE - int t; - LKL(cache_lock); - t = max_cache_size; - max_cache_size = 0; - _cache_prune(NULL, 1); - max_cache_size = t; - LKU(cache_lock); -#endif -} - -EAPI void -evas_common_rgba_image_scalecache_prepare(Image_Entry *ie, RGBA_Image *dst __UNUSED__, - RGBA_Draw_Context *dc, int smooth, - int src_region_x, int src_region_y, - int src_region_w, int src_region_h, - int dst_region_x __UNUSED__, int dst_region_y __UNUSED__, - int dst_region_w, int dst_region_h) -{ -#ifdef SCALECACHE - int locked = 0; - Eina_Lock_Result ret; - RGBA_Image *im = (RGBA_Image *)ie; - Scaleitem *sci; - if (!im->image.data) return; - if ((dst_region_w == 0) || (dst_region_h == 0) || - (src_region_w == 0) || (src_region_h == 0)) return; - // was having major lock issues here - LKL was deadlocking. what was - // going on? it may have been an eina treads badness but this will stay here - // for now for debug -#if 1 - ret = LKT(im->cache.lock); - if (ret == EINA_FALSE) /* can't get image lock */ - { - useconds_t slp = 1, slpt = 0; - - while (slpt < 500000) - { -#ifdef _WIN32 - Sleep(slp / 1000); -#else - usleep(slp); -#endif - slpt += slp; - slp++; - ret = LKT(im->cache.lock); - if (ret == EINA_LOCK_DEADLOCK) - { - printf("WARNING: DEADLOCK on image %p (%s)\n", im, ie->file); - } - else - { - locked = 1; - break; - } - } - if (ret == EINA_FALSE) - { - printf("WARNING: lock still there after %i usec\n", slpt); - printf("WARNING: stucklock on image %p (%s)\n", im, ie->file); - LKDBG(im->cache.lock); - } - } - else if (ret == EINA_LOCK_DEADLOCK) - { - printf("WARNING: DEADLOCK on image %p (%s)\n", im, ie->file); - } - else locked = 1; -#endif - if (!locked) { LKL(im->cache.lock); locked = 1; } - use_counter++; - if ((src_region_w == dst_region_w) && (src_region_h == dst_region_h)) - { - // 1:1 scale. - im->cache.orig_usage++; - im->cache.usage_count = use_counter; - if (locked) LKU(im->cache.lock); - return; - } - if ((!im->cache_entry.flags.alpha) && (!smooth)) - { - // solid nearest scaling - it's actually the same speed cached or not, - // or in some cases faster not cached - im->cache.orig_usage++; - im->cache.usage_count = use_counter; - if (locked) LKU(im->cache.lock); - return; - } - LKL(cache_lock); - sci = _sci_find(im, dc, smooth, - src_region_x, src_region_y, src_region_w, src_region_h, - dst_region_w, dst_region_h); - if (!sci) - { - LKU(cache_lock); - if (locked) LKU(im->cache.lock); - return; - } -// INF("%10i | %4i %4i %4ix%4i -> %4i %4i %4ix%4i | %i", -// (int)use_counter, -// src_region_x, src_region_y, src_region_w, src_region_h, -// dst_region_x, dst_region_y, dst_region_w, dst_region_h, -// smooth); - if ((sci->usage >= min_scale_uses) - && (ie->scale_hint != EVAS_IMAGE_SCALE_HINT_DYNAMIC) -// && (sci->usage_count > (use_counter - MIN_SCALE_AGE_GAP)) - ) - { - if (!sci->im) - { - if ((sci->dst_w < max_dimension) && - (sci->dst_h < max_dimension)) - { - if (sci->flop <= max_flop_count) - { - sci->populate_me = 1; - im->cache.populate_count++; - } - } - } - } - sci->usage++; - sci->usage_count = use_counter; - LKU(cache_lock); - if (sci->usage > im->cache.newest_usage) - im->cache.newest_usage = sci->usage; -// INF("newset? %p %i > %i", im, -// (int)sci->usage, -// (int)im->cache.newest_usage); - if (sci->usage_count > im->cache.newest_usage_count) - im->cache.newest_usage_count = sci->usage_count; -// INF(" -------------- used %8i#, %8i@", (int)sci->usage, (int)sci->usage_count); - if (locked) LKU(im->cache.lock); -#endif -} - -#ifdef SCALECACHE -//static int pops = 0; -//static int hits = 0; -//static int misses = 0; -//static int noscales = 0; -#endif - -EAPI void -evas_common_rgba_image_scalecache_do(Image_Entry *ie, RGBA_Image *dst, - RGBA_Draw_Context *dc, int smooth, - int src_region_x, int src_region_y, - int src_region_w, int src_region_h, - int dst_region_x, int dst_region_y, - int dst_region_w, int dst_region_h) -{ -#ifdef SCALECACHE - RGBA_Image *im = (RGBA_Image *)ie; - Scaleitem *sci; - int didpop = 0; - int dounload = 0; -/* - static int i = 0; - - i++; - if (i > 2000) - { - INF("p: %6i, h: %6i, m: %6i, n: %6i", - pops, hits, misses, noscales); - i = 0; - } - */ - if ((dst_region_w == 0) || (dst_region_h == 0) || - (src_region_w == 0) || (src_region_h == 0)) return; - LKL(im->cache.lock); - if ((src_region_w == dst_region_w) && (src_region_h == dst_region_h)) - { -#ifdef EVAS_FRAME_QUEUING - if (!evas_common_frameq_enabled()) -#endif - { - if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888) - evas_cache_image_load_data(&im->cache_entry); - evas_common_image_colorspace_normalize(im); - } -// noscales++; - LKU(im->cache.lock); - if (im->image.data) - { - evas_common_scale_rgba_in_to_out_clip_sample(im, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); - } - return; - } - LKL(cache_lock); - sci = _sci_find(im, dc, smooth, - src_region_x, src_region_y, src_region_w, src_region_h, - dst_region_w, dst_region_h); - LKU(cache_lock); - if (!sci) - { -#ifdef EVAS_FRAME_QUEUING - if (!evas_common_frameq_enabled()) -#endif - { - if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888) - evas_cache_image_load_data(&im->cache_entry); - evas_common_image_colorspace_normalize(im); - } -// misses++; - LKU(im->cache.lock); - if (im->image.data) - { - if (smooth) - evas_common_scale_rgba_in_to_out_clip_smooth(im, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); - else - evas_common_scale_rgba_in_to_out_clip_sample(im, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); - } - return; - } - if (sci->populate_me) - { - int size, osize, used; - - size = dst_region_w * dst_region_h; - if (((((dst_region_w > 640) || (dst_region_h > 640)) && - (size > (480 * 480))) || - (ie->scale_hint == EVAS_IMAGE_SCALE_HINT_STATIC)) && - (ie->scale_hint != EVAS_IMAGE_SCALE_HINT_DYNAMIC)) - { - Eina_List *l; - Scaleitem *sci2; - - dounload = 1; - osize = sci->parent_im->cache_entry.w * sci->parent_im->cache_entry.h; - used = 0; - EINA_LIST_FOREACH(im->cache.list, l, sci2) - { - if (sci2->im) used += sci2->dst_w * sci2->dst_h; - } - if ((size < osize) && (used == 0)) - sci->size_adjust = 0; - else - { - osize -= used; - if (osize < 0) osize = 0; - size -= osize; - sci->size_adjust = size * 4; - } - } - else - { - size *= sizeof(DATA32); - if ((cache_size + size) > max_cache_size) - { - sci->populate_me = 0; - im->cache.populate_count--; - } - } - } - if (sci->populate_me) - { -// INF("##! populate!"); - sci->im = evas_common_image_new - (dst_region_w, dst_region_h, im->cache_entry.flags.alpha); - if (sci->im) - { - static RGBA_Draw_Context *ct = NULL; - - LKL(cache_lock); - im->cache.orig_usage++; - im->cache.usage_count = use_counter; - im->cache.populate_count--; -// pops++; - if (!ct) - { - // FIXME: static ct - never can free on shutdown? not a leak - // or real harm - just annoying valgrind bitch - ct = evas_common_draw_context_new(); - evas_common_draw_context_set_render_op(ct, _EVAS_RENDER_COPY); - } - if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888) - evas_cache_image_load_data(&im->cache_entry); - evas_common_image_colorspace_normalize(im); - if (im->image.data) - { - if (smooth) - evas_common_scale_rgba_in_to_out_clip_smooth - (im, sci->im, ct, - src_region_x, src_region_y, - src_region_w, src_region_h, - 0, 0, - dst_region_w, dst_region_h); - else - evas_common_scale_rgba_in_to_out_clip_sample - (im, sci->im, ct, - src_region_x, src_region_y, - src_region_w, src_region_h, - 0, 0, - dst_region_w, dst_region_h); - sci->populate_me = 0; -#if 0 // visual debug of cached images - { - int xx, yy; - DATA32 *pp; - - pp = sci->im->image.data; - for (yy = 0; yy < dst_region_h; yy++) - { - - for (xx = 0; xx < dst_region_w; xx++) - { - if (yy & 0x1) - { - if (xx & 0x1) *pp = 0x882288ff; - } - else - { - if (!(xx & 0x1)) *pp = 0x882288ff; - } - pp++; - } - } - } -#endif - } - if (dounload) - { - sci->forced_unload = 1; - cache_size += sci->size_adjust; - } - else - { - cache_size += sci->dst_w * sci->dst_h * 4; - } -// INF(" + %i @ flop: %i (%ix%i)", -// sci->dst_w * sci->dst_h * 4, sci->flop, -// sci->dst_w, sci->dst_h); - cache_list = eina_inlist_append(cache_list, (Eina_Inlist *)sci); - _cache_prune(sci, 0); - LKU(cache_lock); - didpop = 1; - } - } - if (sci->im && !ie->flags.animated) - { - if (!didpop) - { - LKL(cache_lock); - cache_list = eina_inlist_remove(cache_list, (Eina_Inlist *)sci); - cache_list = eina_inlist_append(cache_list, (Eina_Inlist *)sci); - LKU(cache_lock); - } - else - { - if (sci->flop >= FLOP_DEL) sci->flop -= FLOP_DEL; - } -// INF("use cached!"); -#ifdef EVAS_FRAME_QUEUING - RDLKL(sci->lock); -#endif - LKU(im->cache.lock); - evas_common_scale_rgba_in_to_out_clip_sample - (sci->im, dst, dc, - 0, 0, - dst_region_w, dst_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); -#ifdef EVAS_FRAME_QUEUING - RWLKU(sci->lock); -#endif -// hits++; -// INF("check %p %i < %i", -// im, -// (int)im->cache.orig_usage, -// (int)im->cache.newest_usage); -#ifndef EVAS_FRAME_QUEUING - /* while framequeuing is applied, - * original image data is loaded by the main thread - * just before enqueuing the rendering op into the pipe. - * so unloading the original image data here - * causes only speed-down side-effect and no memory usage gain; - * it will be loaded again for the very next rendering for this image. - */ - if (ie->scale_hint != EVAS_IMAGE_SCALE_HINT_DYNAMIC) - { - if ((dounload) || - ((im->cache_entry.flags.loaded) && - ((!im->cs.no_free) -#ifdef EVAS_CSERVE - || (ie->data1) -#endif - ) && - (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888))) - { - if ((dounload) || (im->cache.orig_usage < - (im->cache.newest_usage / 20))) - { - //FIXME: imagedataunload - inform owners - evas_common_rgba_image_unload(&im->cache_entry); - } - } - } -#endif - } - else - { -#ifdef EVAS_FRAME_QUEUING - if (!evas_common_frameq_enabled()) -#endif - { - if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888) - evas_cache_image_load_data(&im->cache_entry); - evas_common_image_colorspace_normalize(im); - } -// misses++; - LKU(im->cache.lock); - if (im->image.data) - { - if (smooth) - evas_common_scale_rgba_in_to_out_clip_smooth(im, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); - else - evas_common_scale_rgba_in_to_out_clip_sample(im, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); - } - } -#else - RGBA_Image *im = (RGBA_Image *)ie; -#ifdef EVAS_FRAME_QUEUING - if (!evas_common_frameq_enabled()) -#endif - { - if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888) - evas_cache_image_load_data(&im->cache_entry); - evas_common_image_colorspace_normalize(im); - } - if (im->image.data) - { - if (smooth) - evas_common_scale_rgba_in_to_out_clip_smooth(im, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); - else - evas_common_scale_rgba_in_to_out_clip_sample(im, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); - } -#endif -} diff --git a/libraries/evas/src/lib/engines/common/evas_line.h b/libraries/evas/src/lib/engines/common/evas_line.h deleted file mode 100644 index 9d45e3d..0000000 --- a/libraries/evas/src/lib/engines/common/evas_line.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _EVAS_LINE_H -#define _EVAS_LINE_H - - -EAPI void evas_common_line_init (void); - -EAPI void evas_common_line_draw (RGBA_Image *dst, RGBA_Draw_Context *dc, int x1, int y1, int x2, int y2); - - -#endif /* _EVAS_LINE_H */ - diff --git a/libraries/evas/src/lib/engines/common/evas_line_main.c b/libraries/evas/src/lib/engines/common/evas_line_main.c deleted file mode 100644 index aacf805..0000000 --- a/libraries/evas/src/lib/engines/common/evas_line_main.c +++ /dev/null @@ -1,1029 +0,0 @@ -#include "evas_common.h" -#include "evas_blend_private.h" - - -static void -_evas_draw_point(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y); - -static void -_evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, int y1); - -static void -_evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, int y1); - -static void -_evas_draw_line_aa(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, int y1); - - -#define IN_RANGE(x, y, w, h) \ - ( x > 0 && y > 0 &&((unsigned)(x) < (unsigned)(w)) && ((unsigned)(y) < (unsigned)(h)) ) - -#define IN_RECT(x, y, rx, ry, rw, rh) \ - ( ((unsigned)((x) - (rx)) < (unsigned)(rw)) && \ - ((unsigned)((y) - (ry)) < (unsigned)(rh)) ) - -#define EXCHANGE_POINTS(x0, y0, x1, y1) \ - { \ - int _tmp = y0; \ - \ - y0 = y1; \ - y1 = _tmp; \ - \ - _tmp = x0; \ - x0 = x1; \ - x1 = _tmp; \ - } - - -EAPI void -evas_common_line_init(void) -{ -} - -EAPI void -evas_common_line_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, int y1) -{ - int x, y, w, h; - int clx, cly, clw, clh; - int cuse, cx, cy, cw, ch; - - if ((x0 == x1) && (y0 == y1)) - { - _evas_draw_point(dst, dc, x0, y0); - return; - } - - clx = cly = 0; - clw = dst->cache_entry.w; - clh = dst->cache_entry.h; - - /* save out clip info */ - cuse = dc->clip.use; - cx = dc->clip.x; - cy = dc->clip.y; - cw = dc->clip.w; - ch = dc->clip.h; - - if (cuse) - { - RECTS_CLIP_TO_RECT(clx, cly, clw, clh, cx, cy, cw, ch); - if ((clw < 1) || (clh < 1)) - return; - } - - x = MIN(x0, x1); - y = MIN(y0, y1); - w = MAX(x0, x1) - x + 1; - h = MAX(y0, y1) - y + 1; - - RECTS_CLIP_TO_RECT(clx, cly, clw, clh, x, y, w, h); - if ((clw < 1) || (clh < 1)) - return; - - dc->clip.use = 1; - dc->clip.x = clx; - dc->clip.y = cly; - dc->clip.w = clw; - dc->clip.h = clh; - - if (dc->anti_alias) - _evas_draw_line_aa(dst, dc, x0, y0, x1, y1); - else - _evas_draw_line(dst, dc, x0, y0, x1, y1); - - /* restore clip info */ - dc->clip.use = cuse; - dc->clip.x = cx; - dc->clip.y = cy; - dc->clip.w = cw; - dc->clip.h = ch; -} - - -static void -_evas_draw_point(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y) -{ - RGBA_Gfx_Pt_Func pfunc; - - if (!IN_RANGE(x, y, dst->cache_entry.w, dst->cache_entry.h)) - return; - if ((dc->clip.use) && (!IN_RECT(x, y, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h))) - return; -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pixman_op_t op = PIXMAN_OP_SRC; - - if (dc->render_op == _EVAS_RENDER_BLEND) - op = PIXMAN_OP_OVER; - - if ((dst->pixman.im) && (dc->col.pixman_color_image)) - pixman_image_composite(op, dc->col.pixman_color_image, NULL, - dst->pixman.im, x, y, 0, 0, x, y, 1, 1); - else -# endif -#endif - { - pfunc = evas_common_gfx_func_composite_color_pt_get(dc->col.col, dst, dc->render_op); - if (pfunc) - pfunc(0, 255, dc->col.col, dst->image.data + (dst->cache_entry.w * y) + x); - } -} - -/* - these functions use the dc->clip data as bounding - data. they assume that such data has already been cut - back to lie in the dst image rect and the object's - (line) bounding rect. -*/ -static void -_evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, int y1) -{ - int dx, dy, len, lx, ty, rx, by; - int clx, cly, clw, clh; - int dstw; - DATA32 *p, color; - RGBA_Gfx_Pt_Func pfunc; - RGBA_Gfx_Func sfunc; - -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY - if (dc->render_op == _EVAS_RENDER_BLEND) - op = PIXMAN_OP_OVER; -# endif -#endif - - dstw = dst->cache_entry.w; - color = dc->col.col; - - if (y0 > y1) - EXCHANGE_POINTS(x0, y0, x1, y1) - if (x0 > x1) - EXCHANGE_POINTS(x0, y0, x1, y1) - - dx = x1 - x0; - dy = y1 - y0; - - clx = dc->clip.x; - cly = dc->clip.y; - clw = dc->clip.w; - clh = dc->clip.h; - - lx = clx; - rx = clx + clw - 1; - ty = cly; - by = cly + clh - 1; - - if (dy == 0) - { -#ifdef EVAS_SLI - if (((y0) % dc->sli.h) == dc->sli.y) -#endif - { - if ((y0 >= ty) && (y0 <= by)) - { - if (dx < 0) - { - int tmp = x1; - - x1 = x0; - x0 = tmp; - } - - if (x0 < lx) x0 = lx; - if (x1 > rx) x1 = rx; - - len = x1 - x0 + 1; - p = dst->image.data + (dstw * y0) + x0; -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (!dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - NULL, dst->pixman.im, - x0, y0, 0, 0, x0, y0, len, 1); - else if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - dc->mask.mask->pixman.im, - dst->pixman.im, - x0, y0, 0, 0, x0, y0, len, 1); - else -# endif -#endif - { - sfunc = evas_common_gfx_func_composite_color_span_get(color, dst, len, dc->render_op); - if (sfunc) - sfunc(NULL, NULL, color, p, len); - } - } - } - return; - } - - pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst, dc->render_op); - if (!pfunc) return; - - if (dx == 0) - { - if ((x0 >= lx) && (x0 <= rx)) - { - if (y0 < ty) y0 = ty; - if (y1 > by) y1 = by; - - len = y1 - y0 + 1; - p = dst->image.data + (dstw * y0) + x0; -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (!dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - NULL, dst->pixman.im, - x0, y0, 0, 0, x0, y0, 1, len); - else if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - dc->mask.mask->pixman.im, dst->pixman.im, - x0, y0, 0, 0, x0, y0, 1, len); - else -# endif -#endif - { - while (len--) - { -#ifdef EVAS_SLI - if (((y1 + 1 - len) % dc->sli.h) == dc->sli.y) -#endif - { - pfunc(0, 255, color, p); - } - p += dstw; - } - } - } - return; - } - - if ((dy == dx) || (dy == -dx)) - { - int p0_in, p1_in; - - p0_in = (IN_RECT(x0, y0, clx, cly, clw, clh) ? 1 : 0); - p1_in = (IN_RECT(x1, y1, clx, cly, clw, clh) ? 1 : 0); - - if (dy > 0) - { - if (!p0_in) - { - x0 = x0 + (ty - y0); - y0 = ty; - if (x0 > rx) return; - if (x0 < lx) - { - y0 = y0 + (lx - x0); - x0 = lx; - if ((y0 < ty) || (y0 > by)) return; - } - } - if (!p1_in) - { - x1 = x0 + (by - y0); - y1 = by; - if (x1 < lx) return; - if (x1 > rx) - { - y1 = y0 + (rx - x0); - x1 = rx; - if ((y1 < ty) || (y1 > by)) return; - } - } - } - else - { - if (!p0_in) - { - x0 = x0 - (by - y0); - y0 = by; - if (x0 > rx) return; - if (x0 < lx) - { - y0 = y0 - (lx - x0); - x0 = lx; - if ((y0 < ty) || (y0 > by)) return; - } - } - if (!p1_in) - { - x1 = x0 - (ty - y0); - y1 = ty; - if (x1 < lx) return; - if (x1 > rx) - { - y1 = y0 - (rx - x0); - x1 = rx; - if ((y1 < ty) || (y1 > by)) return; - } - } - } - if (y1 > y0) - { - p = dst->image.data + (dstw * y0) + x0; - len = y1 - y0 + 1; - if (dx > 0) dstw++; - else dstw--; - } - else - { - len = y0 - y1 + 1; - p = dst->image.data + (dstw * y1) + x1; - if (dx > 0) dstw--; - else dstw++; - } -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - int pixman_x_position = x0; - int pixman_y_position = y0; - int x_unit = dstw - dst->cache_entry.w; -# endif -#endif - - - while (len--) - { -#ifdef EVAS_SLI - if (((y1 + 1 - len) % dc->sli.h) == dc->sli.y) -#endif - { -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (!dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - NULL, dst->pixman.im, - pixman_x_position, - pixman_y_position, - 0, 0, pixman_x_position, - pixman_y_position, 1, 1); - else if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - dc->mask.mask->pixman.im, - dst->pixman.im, - pixman_x_position, - pixman_y_position, 0, 0, - pixman_x_position, - pixman_y_position, 1, 1); - else -# endif -#endif - pfunc(0, 255, color, p); - } -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pixman_x_position += x_unit; - pixman_y_position += 1; -# endif -#endif - p += dstw; - } - } -} - - -#define SETUP_LINE_SHALLOW \ - if (x0 > x1) \ - { \ - EXCHANGE_POINTS(x0, y0, x1, y1); \ - dx = -dx; \ - dy = -dy; \ - } \ - \ - px = x0; \ - py = y0; \ - \ - p0_in = (IN_RANGE(x0 , y0 , clw, clh) ? 1 : 0); \ - p1_in = (IN_RANGE(x1 , y1 , clw, clh) ? 1 : 0); \ - \ - dely = 1; \ - dh = dstw; \ - if (dy < 0) \ - { \ - dely = -1; \ - dh = -dstw; \ - } \ - \ - dyy = ((dy) << 16) / (dx); \ - \ - if (!p0_in) \ - { \ - dxx = ((dx) << 16) / (dy); \ - if (px < 0) \ - { \ - x = -px; px = 0; \ - yy = x * dyy; \ - y = yy >> 16; \ - if (!a_a) \ - y += (yy - (y << 16)) >> 15; \ - py += y; \ - if ((dely > 0) && (py >= clh)) \ - return; \ - else if ((dely < 0) && (py < -1)) \ - return; \ - } \ - \ - y = 0; \ - if ((dely > 0) && (py < 0)) \ - y = (-1 - py); \ - else if ((dely < 0) && (py >= clh)) \ - y = (clh - 1 - py); \ - \ - xx = y * dxx; \ - x = xx >> 16; \ - if (!a_a) \ - x += (xx - (x << 16)) >> 15; \ - px += x; \ - if (px >= clw) return; \ - \ - yy = x * dyy; \ - y = yy >> 16; \ - if (!a_a) \ - y += (yy - (y << 16)) >> 15; \ - py += y; \ - if ((dely > 0) && (py >= clh)) \ - return; \ - else if ((dely < 0) && (py < -1)) \ - return; \ - } \ - \ - p = data + (dstw * py) + px; \ - \ - x = px - x0; \ - yy = x * dyy; \ - prev_y = (yy >> 16); \ - \ - rx = MIN(x1 + 1, clw); \ - by = clh - 1; - - -#define SETUP_LINE_STEEP \ - if (y0 > y1) \ - { \ - EXCHANGE_POINTS(x0, y0, x1, y1); \ - dx = -dx; \ - dy = -dy; \ - } \ - \ - px = x0; \ - py = y0; \ - \ - p0_in = (IN_RANGE(x0 , y0 , clw, clh) ? 1 : 0); \ - p1_in = (IN_RANGE(x1 , y1 , clw, clh) ? 1 : 0); \ - \ - delx = 1; \ - if (dx < 0) \ - delx = -1; \ - \ - dxx = ((dx) << 16) / (dy); \ - \ - if (!p0_in) \ - { \ - dyy = ((dy) << 16) / (dx); \ - \ - if (py < 0) \ - { \ - y = -py; py = 0; \ - xx = y * dxx; \ - x = xx >> 16; \ - if (!a_a) \ - x += (xx - (x << 16)) >> 15; \ - px += x; \ - if ((delx > 0) && (px >= clw)) \ - return; \ - else if ((delx < 0) && (px < -1)) \ - return; \ - } \ - \ - x = 0; \ - if ((delx > 0) && (px < -1)) \ - x = (-1 - px); \ - else if ((delx < 0) && (px >= clw)) \ - x = (clw - 1 - px); \ - \ - yy = x * dyy; \ - y = yy >> 16; \ - if (!a_a) \ - y += (yy - (y << 16)) >> 15; \ - py += y; \ - if (py >= clh) return; \ - \ - xx = y * dxx; \ - x = xx >> 16; \ - if (!a_a) \ - x += (xx - (x << 16)) >> 15; \ - px += x; \ - if ((delx > 0) && (px >= clw)) \ - return; \ - else if ((delx < 0) && (px < -1)) \ - return; \ - } \ - \ - p = data + (dstw * py) + px; \ - \ - y = py - y0; \ - xx = y * dxx; \ - prev_x = (xx >> 16); \ - \ - by = MIN(y1 + 1, clh); \ - rx = clw - 1; - -static void -_evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, int y1) -{ - int px, py, x, y, prev_x, prev_y; - int dx, dy, rx, by, p0_in, p1_in, dh, a_a = 0; - int delx, dely, xx, yy, dxx, dyy; - int clx, cly, clw, clh; - int dstw; - DATA32 *p, *data, color; - RGBA_Gfx_Pt_Func pfunc; - - dx = x1 - x0; - dy = y1 - y0; - -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - int pix_x; - int pix_y; - int pix_x_unit; - int pix_y_unit; - - pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY - if (dc->render_op == _EVAS_RENDER_BLEND) - op = PIXMAN_OP_OVER; - pix_x = x0; - pix_y = y0; - - if (dx < 0) - pix_x_unit = -1; - else - pix_x_unit = 1; - - if (dy < 0) - pix_y_unit = -1; - else - pix_y_unit = 1; -# endif -#endif - - if ( (dx == 0) || (dy == 0) || (dx == dy) || (dx == -dy) ) - { - _evas_draw_simple_line(dst, dc, x0, y0, x1, y1); - return; - } - - color = dc->col.col; - pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst, dc->render_op); - if (!pfunc) return; - - clx = dc->clip.x; - cly = dc->clip.y; - clw = dc->clip.w; - clh = dc->clip.h; - - data = dst->image.data; - dstw = dst->cache_entry.w; - - data += (dstw * cly) + clx; - x0 -= clx; - y0 -= cly; - x1 -= clx; - y1 -= cly; - - /* shallow: x-parametric */ - if ((dy < dx) || (dy < -dx)) - { - SETUP_LINE_SHALLOW; - - while (px < rx) - { - y = (yy >> 16); - y += ((yy - (y << 16)) >> 15); - if (prev_y != y) - { - prev_y = y; - p += dh; - py += dely; -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pix_y += pix_y_unit; -# endif -#endif - } - if (!p1_in) - { - if ((py < 0) && (dely < 0)) return; - if ((py > by) && (dely > 0)) return; - } - if (!p0_in) - { - if (py < 0) goto next_x; - } -#ifdef EVAS_SLI - if (((py) % dc->sli.h) == dc->sli.y) -#endif - { - if (IN_RANGE(px, py, clw, clh)) - { -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (!dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - NULL, dst->pixman.im, - pix_x, pix_y, 0, 0, - pix_x, pix_y, 1, 1); - else if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - dc->mask.mask->pixman.im, - dst->pixman.im, - pix_x, pix_y, 0, 0, - pix_x, pix_y, 1, 1); - else -# endif -#endif - pfunc(0, 255, color, p); - } - } -next_x: - yy += dyy; - px++; - p++; -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pix_x += pix_x_unit; -# endif -#endif - } - return; - } - - /* steep: y-parametric */ - - SETUP_LINE_STEEP; - - while (py < by) - { - x = (xx >> 16); - x += ((xx - (x << 16)) >> 15); - if (prev_x != x) - { - prev_x = x; - px += delx; - p += delx; -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pix_x += pix_x_unit; -# endif -#endif - } - if (!p1_in) - { - if ((px < 0) && (delx < 0)) return; - if ((px > rx) && (delx > 0)) return; - } - if (!p0_in) - { - if (px < 0) goto next_y; - } -#ifdef EVAS_SLI - if (((py) % dc->sli.h) == dc->sli.y) -#endif - { - if (IN_RANGE(px, py, clw, clh)) - { -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (!dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - NULL, dst->pixman.im, - pix_x, pix_y, 0, 0, - pix_x, pix_y, 1, 1); - else if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - dc->mask.mask->pixman.im, - dst->pixman.im, - pix_x, pix_y, 0, 0, - pix_x, pix_y, 1, 1); - else -# endif -#endif - pfunc(0, 255, color, p); - } - } -next_y: - xx += dxx; - py++; - p += dstw; -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pix_y += pix_y_unit; -# endif -#endif - - } -} - - -static void -_evas_draw_line_aa(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, int y1) -{ - int px, py, x, y, prev_x, prev_y; - int dx, dy, rx, by, p0_in, p1_in, dh, a_a = 1; - int delx, dely, xx, yy, dxx, dyy; - int clx, cly, clw, clh; - int dstw; - DATA32 *p, *data, color; - RGBA_Gfx_Pt_Func pfunc; - - dx = x1 - x0; - dy = y1 - y0; - -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - int pix_x; - int pix_y; - int pix_x_unit; - int pix_y_unit; - - pixman_image_t *aa_mask_image; - int alpha_data_buffer; - - pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY - if (dc->render_op == _EVAS_RENDER_BLEND) - op = PIXMAN_OP_OVER; - pix_x = x0; - pix_y = y0; - - if (dx < 0) - pix_x_unit = -1; - else - pix_x_unit = 1; - - if (dy < 0) - pix_y_unit = -1; - else - pix_y_unit = 1; -# endif -#endif - if (y0 > y1) - EXCHANGE_POINTS(x0, y0, x1, y1); - - dx = x1 - x0; - dy = y1 - y0; - - if ((dx == 0) || (dy == 0) || (dx == dy) || (dx == -dy)) - { - _evas_draw_simple_line(dst, dc, x0, y0, x1, y1); - return; - } - - color = dc->col.col; - pfunc = evas_common_gfx_func_composite_mask_color_pt_get(color, dst, dc->render_op); - if (!pfunc) return; - - clx = dc->clip.x; - cly = dc->clip.y; - clw = dc->clip.w; - clh = dc->clip.h; - - data = evas_cache_image_pixels(&dst->cache_entry); - dstw = dst->cache_entry.w; - - data += (dstw * cly) + clx; - x0 -= clx; - y0 -= cly; - x1 -= clx; - y1 -= cly; - - /* shallow: x-parametric */ - if ((dy < dx) || (dy < -dx)) - { - SETUP_LINE_SHALLOW; - - while (px < rx) - { - DATA8 aa; - - y = (yy >> 16); - if (prev_y != y) - { - prev_y = y; - p += dh; - py += dely; -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pix_y += pix_y_unit; -# endif -#endif - } - if (!p1_in) - { - if ((py < 0) && (dely < 0)) return; - if ((py > by) && (dely > 0)) return; - } - if (!p0_in) - { - if (py < 0) goto next_x; - } - if (px < clw) - { - aa = ((yy - (y << 16)) >> 8); - if ((py) < clh) - { -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - alpha_data_buffer = 255 - aa; - aa_mask_image = pixman_image_create_bits(PIXMAN_a8, 1, 1, - (uint32_t *)&alpha_data_buffer, 4); - - if ((dst->pixman.im) && (dc->col.pixman_color_image ) && - (!dc->mask.mask)) - pixman_image_composite(PIXMAN_OP_OVER, - dc->col.pixman_color_image, - aa_mask_image, dst->pixman.im, - pix_x, pix_y, 0, 0, - pix_x, pix_y, 1, 1); - else if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (dc->mask.mask) ) - pixman_image_composite(op, dc->col.pixman_color_image, - dc->mask.mask->pixman.im, - dst->pixman.im, - pix_x, pix_y, 0, 0, - pix_x, pix_y, 1, 1); - else -# endif -#endif - pfunc(0, 255 - aa, color, p); -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pixman_image_unref(aa_mask_image); -# endif -#endif - } - if ((py + 1) < clh) - { -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - alpha_data_buffer = aa; - aa_mask_image = pixman_image_create_bits(PIXMAN_a8, 1, 1, - (uint32_t *)&alpha_data_buffer, 4); - - if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (!dc->mask.mask)) - pixman_image_composite(PIXMAN_OP_OVER, - dc->col.pixman_color_image, - aa_mask_image, dst->pixman.im, - pix_x, pix_y + 1, 0, 0, - pix_x, pix_y + 1, 1, 1); - else if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - dc->mask.mask->pixman.im, - dst->pixman.im, - pix_x, pix_y + 1, 0, 0, - pix_x, pix_y + 1, 1, 1); - else -# endif -#endif - pfunc(0, aa, color, p + dstw); -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pixman_image_unref(aa_mask_image); -# endif -#endif - } - } - -next_x: - yy += dyy; - px++; - p++; -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pix_x += pix_x_unit; -# endif -#endif - } - return; - } - - /* steep: y-parametric */ - SETUP_LINE_STEEP; - - while (py < by) - { - DATA8 aa; - - x = (xx >> 16); - if (prev_x != x) - { - prev_x = x; - px += delx; - p += delx; -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pix_x += pix_x_unit; -# endif -#endif - } - if (!p1_in) - { - if ((px < 0) && (delx < 0)) return; - if ((px > rx) && (delx > 0)) return; - } - if (!p0_in) - { - if (px < 0) goto next_y; - } - if (py < clh) - { - aa = ((xx - (x << 16)) >> 8); - if ((px) < clw) - { -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - alpha_data_buffer = 255 - aa; - aa_mask_image = pixman_image_create_bits(PIXMAN_a8, 1, 1, (uint32_t *)&alpha_data_buffer, 4); - - if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (!dc->mask.mask)) - pixman_image_composite(PIXMAN_OP_OVER, - dc->col.pixman_color_image, - aa_mask_image, dst->pixman.im, - pix_x, pix_y, 0, 0, - pix_x, pix_y, 1, 1); - else if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - dc->mask.mask->pixman.im, - dst->pixman.im, - pix_x, pix_y, 0, 0, - pix_x, pix_y, 1, 1); - else -# endif -#endif - pfunc(0, 255 - aa, color, p); -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pixman_image_unref(aa_mask_image); -# endif -#endif - - } - if ((px + 1) < clw) - { -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - alpha_data_buffer = aa; - aa_mask_image = pixman_image_create_bits(PIXMAN_a8, 1, 1, - (uint32_t *)&alpha_data_buffer, 4); - - if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (!dc->mask.mask)) - pixman_image_composite(PIXMAN_OP_OVER, - dc->col.pixman_color_image, - aa_mask_image, dst->pixman.im, - pix_x + 1, pix_y, 0, 0, - pix_x + 1, pix_y, 1, 1); - else if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - dc->mask.mask->pixman.im, - dst->pixman.im, - pix_x + 1, pix_y, 0, 0, - pix_x + 1, pix_y, 1, 1); - else -# endif -#endif - pfunc(0, aa, color, p + 1); -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pixman_image_unref(aa_mask_image); -# endif -#endif - } - } - next_y: - xx += dxx; - py++; - p += dstw; -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_LINE - pix_y += pix_y_unit; -# endif -#endif - } -} diff --git a/libraries/evas/src/lib/engines/common/evas_map_image.c b/libraries/evas/src/lib/engines/common/evas_map_image.c deleted file mode 100644 index 502b2dc..0000000 --- a/libraries/evas/src/lib/engines/common/evas_map_image.c +++ /dev/null @@ -1,432 +0,0 @@ -#include "evas_common.h" -#include "evas_blend_private.h" - -#ifdef BUILD_SCALE_SMOOTH -# ifdef BUILD_MMX -# undef SCALE_USING_MMX -# define SCALE_USING_MMX -# endif -#endif - -#define FPI 8 -#define FPI1 (1 << (FPI)) -#define FPIH (1 << (FPI - 1)) - -#define FPFPI1 (1 << (FP + FPI)) - -typedef struct _Line Line; -typedef struct _Span Span; - -struct _Span -{ - int x1, x2; - FPc o1, o2, z1, z2; - FPc u[2], v[2]; - DATA32 col[2]; -}; - -struct _Line -{ - Span span[2]; -}; - -static FPc -_interp(int x1, int x2, int p, FPc u1, FPc u2) -{ - FPc u; - - x2 -= x1; - p -= x1; - u = u2 - u1; - u = (u * p) / (x2 + 1); - // FIXME: do z persp - return u1 + u; -} - -static DATA32 -_interp_col(int x1, int x2, int p, DATA32 col1, DATA32 col2) -{ - x2 -= x1; - p -= x1; - p = (p << 8) / (x2 + 1); - // FIXME: do z persp - return INTERP_256(p, col2, col1); -} - -static void -_limit(Span *s, int c1, int c2, int nocol) -{ - if (s->x1 < c1) - { - s->u[0] = _interp(s->x1, s->x2, c1, s->u[0], s->u[1]); - s->v[0] = _interp(s->x1, s->x2, c1, s->v[0], s->v[1]); - if (!nocol) - s->col[0] = _interp_col(s->x1, s->x2, c1, s->col[0], s->col[1]); - s->x1 = c1; - s->o1 = c1 << FP; - // FIXME: do s->z1 - } - if (s->x2 > c2) - { - s->u[1] = _interp(s->x1, s->x2, c2, s->u[0], s->u[1]); - s->v[1] = _interp(s->x1, s->x2, c2, s->v[0], s->v[1]); - if (!nocol) - s->col[1] = _interp_col(s->x1, s->x2, c2, s->col[0], s->col[1]); - s->x2 = c2; - s->o2 = c2 << FP; - // FIXME: do s->z2 - } -} - -// 12.63 % of time - this can improve -static void -_calc_spans(RGBA_Map_Point *p, Line *spans, int ystart, int yend, int cx, int cy __UNUSED__, int cw, int ch __UNUSED__) -{ - int i, y, yp, yy; - int py[4]; - int edge[4][4], edge_num, swapped, order[4]; - FPc uv[4][2], u, v, x, h, t, uu, vv; - DATA32 col[4]; - -#if 1 // maybe faster on x86? - for (i = 0; i < 4; i++) py[i] = p[i].y >> FP; -# define PY(x) (py[x]) -#else -# define PY(x) (p[x].y >> FP) -#endif - - if ((PY(0) == PY(1)) && (PY(0) == PY(2)) && (PY(0) == PY(3))) - { - int leftp, rightp; - int nocol = 1; - - leftp = rightp = 0; - for (i = 1; i < 4; i++) - { - if (p[i].x < p[leftp].x) leftp = i; - if (p[i].x > p[rightp].x) rightp = i; - if (p[i].col != 0xffffffff) nocol = 0; - } - for (y = ystart; y <= yend; y++) - { - yp = y - ystart; - if (y == PY(0)) - { - i = 0; - spans[yp].span[i].x1 = p[leftp].x >> FP; - spans[yp].span[i].o1 = p[leftp].x; - spans[yp].span[i].u[0] = p[leftp].u; - spans[yp].span[i].v[0] = p[leftp].v; - spans[yp].span[i].col[0] = p[leftp].col; - spans[yp].span[i].x2 = p[rightp].x >> FP; - spans[yp].span[i].o2 = p[rightp].x; - spans[yp].span[i].u[1] = p[rightp].u; - spans[yp].span[i].v[1] = p[rightp].v; - spans[yp].span[i].col[1] = p[rightp].col; - if ((spans[yp].span[i].x1 >= (cx + cw)) || - (spans[yp].span[i].x2 < cx)) - spans[yp].span[i].x1 = -1; - else - { - _limit(&(spans[yp].span[i]), cx, cx + cw, nocol); - i++; - spans[yp].span[i].x1 = -1; - } - } - else - spans[yp].span[0].x1 = -1; - } - return; - } - for (y = ystart; y <= yend; y++) - { - int nocol = 1; - - yp = y - ystart; - edge_num = 0; - for (i = 0; i < 4; i++) - { - if ((PY(i) <= y) && (PY((i + 1) % 4) > y)) - { - edge[edge_num][0] = i; - edge[edge_num][1] = (i + 1) % 4; - edge_num++; - } - else if ((PY((i + 1) % 4) <= y) && (PY(i) > y)) - { - edge[edge_num][0] = (i + 1) % 4; - edge[edge_num][1] = i; - edge_num++; - } - if (p[i].col != 0xffffffff) nocol = 0; - } - // calculate line x points for each edge - for (i = 0; i < edge_num; i++) - { - int e1 = edge[i][0]; - int e2 = edge[i][1]; - FPc t256; - - h = (p[e2].y - p[e1].y) >> FP; // height of edge - if (h < 1) h = 1; - t = (((y << FP) + (FP1 / 2) - 1) - p[e1].y) >> FP; - x = p[e2].x - p[e1].x; - x = p[e1].x + ((x * t) / h); - -/* - // FIXME: 3d accuracy here - // XXX t needs adjusting. above its a linear interp point - // only. - // - // // FIXME: do in fixed pt. reduce divides - evas_common_cpu_end_opt(); - // - int foc = 512, z0 = 0, px = 320, py = 240; // FIXME: need from map points - // - float focf, hf; - float z1, z2, y1, y2, dz, dy, zt, dydz, yt; - - focf = foc; - hf = h; - - // adjust for fixed point and focal length and z0 for map - z1 = (p[e1].z >> FP) - z0 + foc; - z2 = (p[e2].z >> FP) - z0 + foc; - // deltas - dz = z1 - z2; - - if (dz != 0) - { - int pt; - - // adjust for perspective point (being 0 0) - y1 = (p[e1].y >> FP) - py; - y2 = (p[e2].y >> FP) - py; - - // correct for x &y not being in world coords - screen coords - y1 = (y1 * z1) / focf; - y2 = (y2 * z2) / focf; - - // deltas - dy = y1 - y2; - - yt = y - py; - dydz = dy / dz; - - zt = (y2 - (dydz * z2)) / ((yt / focf) - dydz); - - pt = t; - t = ((z1 - zt) * hf) / dz; - } - */ - u = p[e2].u - p[e1].u; - uu = u >> FP; - if (uu < 0) uu = -uu; - if (uu == h) - { - yy = ((y << FP) - p[e1].y) >> FP; - if (u > 0) - u = p[e1].u + (yy << FP); - else - u = p[e1].u - (yy << FP) - (FP1 - 1); - } - else - { - if (u >= 0) - u = p[e1].u + ((u * t) / h); - else - u = p[e1].u + (((u * t) - (FP1 / 2)) / h); - } - - v = p[e2].v - p[e1].v; - vv = v >> FP; - if (vv < 0) vv = -vv; - if (vv == h) - { - yy = ((y << FP) - p[e1].y) >> FP; - if (v > 0) - v = p[e1].v + (yy << FP); - else - v = p[e1].v - (yy << FP) - (FP1 - 1); - } - else - { - if (v >= 0) - v = p[e1].v + ((v * t) / h); - else - v = p[e1].v + (((v * t) - (FP1 / 2)) / h); - } - - // FIXME: 3d accuracy for color too - t256 = (t << 8) / h; // maybe * 255? - col[i] = INTERP_256(t256, p[e2].col, p[e1].col); - - // FIXME: store z persp - uv[i][1] = v; - uv[i][0] = u; - edge[i][2] = x >> FP; - edge[i][3] = x; - // also fill in order - order[i] = i; - } - // sort edges from left to right - bubble. its a small list! - do - { - swapped = 0; - for (i = 0; i < (edge_num - 1); i++) - { - if (edge[order[i]][2] > edge[order[i + 1]][2]) - { - t = order[i]; - order[i] = order[i + 1]; - order[i + 1] = t; - swapped = 1; - } - } - } - while (swapped); - if (edge_num == 2) - { - i = 0; - spans[yp].span[i].x1 = edge[order[0]][2]; - spans[yp].span[i].o1 = edge[order[0]][3]; - spans[yp].span[i].u[0] = uv[order[0]][0]; - spans[yp].span[i].v[0] = uv[order[0]][1]; - spans[yp].span[i].col[0] = col[order[0]]; - - spans[yp].span[i].x2 = edge[order[1]][2]; - spans[yp].span[i].o2 = edge[order[1]][3]; - spans[yp].span[i].u[1] = uv[order[1]][0]; - spans[yp].span[i].v[1] = uv[order[1]][1]; - spans[yp].span[i].col[1] = col[order[1]]; - if ((spans[yp].span[i].x1 >= (cx + cw)) || - (spans[yp].span[i].x2 < cx)) - spans[yp].span[i].x1 = -1; - else - { - _limit(&(spans[yp].span[i]), cx, cx + cw, nocol); - i++; - spans[yp].span[i].x1 = -1; - } - } - else if (edge_num == 4) - { - i = 0; - spans[yp].span[i].x1 = edge[order[0]][2]; - spans[yp].span[i].u[0] = uv[order[0]][0]; - spans[yp].span[i].v[0] = uv[order[0]][1]; - spans[yp].span[i].col[0] = col[order[0]]; - - spans[yp].span[i].x2 = edge[order[1]][2]; - spans[yp].span[i].u[1] = uv[order[1]][0]; - spans[yp].span[i].v[1] = uv[order[1]][1]; - spans[yp].span[i].col[1] = col[order[1]]; - if ((spans[yp].span[i].x1 >= (cx + cw)) || - (spans[yp].span[i].x2 < cx)) - spans[yp].span[i].x1 = -1; - else - { - _limit(&(spans[yp].span[i]), cx, cx + cw, nocol); - i++; - } - spans[yp].span[i].x1 = edge[order[2]][2]; - spans[yp].span[i].u[0] = uv[order[2]][0]; - spans[yp].span[i].v[0] = uv[order[2]][1]; - spans[yp].span[i].col[0] = col[order[2]]; - - spans[yp].span[i].x2 = edge[order[3]][2]; - spans[yp].span[i].u[1] = uv[order[3]][0]; - spans[yp].span[i].v[1] = uv[order[3]][1]; - spans[yp].span[i].col[1] = col[order[3]]; - if ((spans[yp].span[i].x1 >= (cx + cw)) || - (spans[yp].span[i].x2 < cx)) - spans[yp].span[i].x1 = -1; - else - { - int l = cx; - - if (i > 0) l = spans[yp].span[i - 1].x2; - _limit(&(spans[yp].span[i]), l, cx + cw, nocol); - } - } - else - spans[yp].span[0].x1 = -1; - } -} - -#ifdef BUILD_SCALE_SMOOTH -# ifdef BUILD_MMX -# undef FUNC_NAME -# define FUNC_NAME evas_common_map_rgba_internal_mmx -# undef SCALE_USING_MMX -# define SCALE_USING_MMX -# include "evas_map_image_internal.c" -# endif -# ifdef BUILD_C -# undef FUNC_NAME -# define FUNC_NAME evas_common_map_rgba_internal -# undef SCALE_USING_MMX -# include "evas_map_image_internal.c" -# endif -#endif - -EAPI void -evas_common_map_rgba(RGBA_Image *src, RGBA_Image *dst, - RGBA_Draw_Context *dc, - int npoints __UNUSED__, RGBA_Map_Point *p, - int smooth, int level) -{ -#ifdef BUILD_MMX - int mmx, sse, sse2; -#endif - Cutout_Rects *rects; - Cutout_Rect *r; - int c, cx, cy, cw, ch; - int i; - - if (src->cache_entry.space == EVAS_COLORSPACE_ARGB8888) - evas_cache_image_load_data(&src->cache_entry); - evas_common_image_colorspace_normalize(src); - if (!src->image.data) return; -#ifdef BUILD_MMX - evas_common_cpu_can_do(&mmx, &sse, &sse2); -#endif - if ((!dc->cutout.rects) && (!dc->clip.use)) - { -#ifdef BUILD_MMX - if (mmx) - evas_common_map_rgba_internal_mmx(src, dst, dc, p, smooth, level); - else -#endif -#ifdef BUILD_C - evas_common_map_rgba_internal(src, dst, dc, p, smooth, level); -#endif - return; - } - /* save out clip info */ - c = dc->clip.use; cx = dc->clip.x; cy = dc->clip.y; cw = dc->clip.w; ch = dc->clip.h; - evas_common_draw_context_clip_clip(dc, 0, 0, dst->cache_entry.w, dst->cache_entry.h); - /* our clip is 0 size.. abort */ - if ((dc->clip.w <= 0) || (dc->clip.h <= 0)) - { - dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; - return; - } - rects = evas_common_draw_context_apply_cutouts(dc); - for (i = 0; i < rects->active; ++i) - { - r = rects->rects + i; - evas_common_draw_context_set_clip(dc, r->x, r->y, r->w, r->h); -#ifdef BUILD_MMX - if (mmx) - evas_common_map_rgba_internal_mmx(src, dst, dc, p, smooth, level); - else -#endif -#ifdef BUILD_C - evas_common_map_rgba_internal(src, dst, dc, p, smooth, level); -#endif - } - evas_common_draw_context_apply_clear_cutouts(rects); - /* restore clip info */ - dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; -} diff --git a/libraries/evas/src/lib/engines/common/evas_map_image.h b/libraries/evas/src/lib/engines/common/evas_map_image.h deleted file mode 100644 index a7cb8cf..0000000 --- a/libraries/evas/src/lib/engines/common/evas_map_image.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _EVAS_MAP_H -#define _EVAS_MAP_H - -EAPI void -evas_common_map_rgba(RGBA_Image *src, RGBA_Image *dst, - RGBA_Draw_Context *dc, - int npoints, RGBA_Map_Point *points, - int smooth, int level); - -#endif /* _EVAS_MAP_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_map_image_core.c b/libraries/evas/src/lib/engines/common/evas_map_image_core.c deleted file mode 100644 index b9bbeb5..0000000 --- a/libraries/evas/src/lib/engines/common/evas_map_image_core.c +++ /dev/null @@ -1,226 +0,0 @@ -//#undef SCALE_USING_MMX -{ - if (smooth) - { - for (y = ystart; y <= yend; y++) - { - int x, w, ww; - FPc u, v, ud, vd, dv, ue, ve; - DATA32 *d, *s; -#ifdef COLMUL - FPc cv, cd; // col -# ifdef SCALE_USING_MMX - FPc cc; -#endif - DATA32 c1, c2; // col -#endif - Line *line; - -#ifdef SCALE_USING_MMX - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) -#endif - - line = &(spans[y - ystart]); - for (i = 0; i < 2; i++) - { - Span *span; - - span = &(line->span[i]); - if (span->x1 >= 0) - { - long long tl; - - x = span->x1; - w = (span->x2 - x); - if (w <= 0) continue; - dv = (span->o2 - span->o1); - if (dv <= 0) continue; - - ww = w; - u = span->u[0] << FPI; - if (u < 0) u = 0; - else if (u > swp) u = swp; - v = span->v[0] << FPI; - if (v < 0) v = 0; - else if (v > shp) v = shp; - ue = span->u[1] << FPI; - if (ue < 0) ue = 0; - else if (ue > swp) ue = swp; - ve = span->v[1] << FPI; - if (ve < 0) ve = 0; - else if (ve > shp) ve = shp; - ud = (ue - u) / w; - vd = (ve - v) / w; - tl = (long long)ud * (w << FP); - tl = tl / dv; - ud = tl; - u -= (ud * (span->o1 - (span->x1 << FP))) / FP1; - - tl = (long long)vd * (w << FP); - tl = tl / dv; - vd = tl; - v -= (vd * (span->o1 - (span->x1 << FP))) / FP1; - - if (ud < 0) u += ud; - if (vd < 0) v += vd; - if (u < 0) u = 0; - else if (u >= swp) u = swp - 1; - if (v < 0) v = 0; - else if (v >= shp) v = shp - 1; - - if (direct) - d = dst->image.data + (y * dst->cache_entry.w) + x; - else - d = buf; - -#define SMOOTH 1 -#ifdef COLMUL - c1 = span->col[0]; // col - c2 = span->col[1]; // col - cv = 0; // col - cd = (255 << 16) / w; // col - - if (c1 == c2) - { - if (c1 == 0xffffffff) - { -#endif -#include "evas_map_image_loop.c" -#ifdef COLMUL - } - else if ((c1 == 0x0000ff) && (!src->cache_entry.flags.alpha)) - { - // all black line -# define COLBLACK 1 -# include "evas_map_image_loop.c" -# undef COLBLACK - } - else if (c1 == 0x000000) - { - // skip span - } - else - { - // generic loop -# include "evas_map_image_loop.c" - } - } - else - { -# include "evas_map_image_loop.c" - } -#endif - if (!direct) - { - d = dst->image.data; - d += (y * dst->cache_entry.w) + x; - func(buf, NULL, dc->mul.col, d, w); - } - } - else break; - } - } - } - else - { - for (y = ystart; y <= yend; y++) - { - int x, w, ww; - FPc u, v, ud, vd, ue, ve; - DATA32 *d, *s; -#ifdef COLMUL - FPc cv, cd; // col - DATA32 c1, c2; // col -#endif - Line *line; - - line = &(spans[y - ystart]); - for (i = 0; i < 2; i++) - { - Span *span; - - span = &(line->span[i]); - if (span->x1 >= 0) - { - x = span->x1; - w = (span->x2 - x); - - if (w <= 0) continue; - ww = w; - u = span->u[0] << FPI; - if (u < 0) u = 0; - else if (u > swp) u = swp; - v = span->v[0] << FPI; - if (v < 0) v = 0; - else if (v > shp) v = shp; - ue = span->u[1] << FPI; - if (ue < 0) ue = 0; - else if (ue > swp) ue = swp; - ve = span->v[1] << FPI; - if (ve < 0) ve = 0; - else if (ve > shp) ve = shp; - ud = (ue - u) / w; - vd = (ve - v) / w; - if (direct) - d = dst->image.data + (y * dst->cache_entry.w) + x; - else - d = buf; - - if (ud < 0) u += ud; - if (vd < 0) v += vd; - if (u < 0) u = 0; - else if (u >= swp) u = swp - 1; - if (v < 0) v = 0; - else if (v >= shp) v = shp - 1; - -#undef SMOOTH -#ifdef COLMUL - c1 = span->col[0]; // col - c2 = span->col[1]; // col - cv = 0; // col - cd = (255 << 16) / w; // col - - if (c1 == c2) - { - if (c1 == 0xffffffff) - { -#endif -#include "evas_map_image_loop.c" -#ifdef COLMUL - } - else if ((c1 == 0x0000ff) && (!src->cache_entry.flags.alpha)) - { - // all black line -# define COLBLACK 1 -# include "evas_map_image_loop.c" -# undef COLBLACK - } - else if (c1 == 0x000000) - { - // skip span - } - else - { - // generic loop -# include "evas_map_image_loop.c" - } - } - else - { - // generic loop -# include "evas_map_image_loop.c" - } -#endif - if (!direct) - { - d = dst->image.data; - d += (y * dst->cache_entry.w) + x; - func(buf, NULL, dc->mul.col, d, w); - } - } - else break; - } - } - } -} diff --git a/libraries/evas/src/lib/engines/common/evas_map_image_internal.c b/libraries/evas/src/lib/engines/common/evas_map_image_internal.c deleted file mode 100644 index d60117e..0000000 --- a/libraries/evas/src/lib/engines/common/evas_map_image_internal.c +++ /dev/null @@ -1,117 +0,0 @@ -// 66.74 % of time -static void -FUNC_NAME(RGBA_Image *src, RGBA_Image *dst, - RGBA_Draw_Context *dc, - RGBA_Map_Point *p, - int smooth, int level __UNUSED__) // level unused for now - for future use -{ - int i; - int c, cx, cy, cw, ch; - int ytop, ybottom, ystart, yend, y, sw, shp, swp, direct; - Line *spans; - DATA32 *buf = NULL, *sp; - RGBA_Gfx_Func func = NULL; - int havea = 0; - int havecol = 4; - - // get the clip - c = dc->clip.use; cx = dc->clip.x; cy = dc->clip.y; cw = dc->clip.w; ch = dc->clip.h; - if (!c) - { - cx = 0; - cy = 0; - cw = dst->cache_entry.w; - ch = dst->cache_entry.h; - } - - // find y yop line and y bottom line - ytop = p[0].y; - if ((p[0].col >> 24) < 0xff) havea = 1; - if (p[0].col == 0xffffffff) havecol--; - for (i = 1; i < 4; i++) - { - if (p[i].y < ytop) ytop = p[i].y; - if ((p[i].col >> 24) < 0xff) havea = 1; - if (p[i].col == 0xffffffff) havecol--; - } - - ybottom = p[0].y; - for (i = 1; i < 4; i++) - { - if (p[i].y > ybottom) ybottom = p[i].y; - } - - // convert to screen space from fixed point - ytop = ytop >> FP; - ybottom = ybottom >> FP; - - // if its outside the clip vertical bounds - don't bother - if ((ytop >= (cy + ch)) || (ybottom < cy)) return; - - // limit to the clip vertical bounds - if (ytop < cy) ystart = cy; - else ystart = ytop; - if (ybottom >= (cy + ch)) yend = (cy + ch) - 1; - else yend = ybottom; - - // get some source image information - sp = src->image.data; - sw = src->cache_entry.w; - swp = sw << (FP + FPI); - shp = src->cache_entry.h << (FP + FPI); - - // limit u,v coords of points to be within the source image - for (i = 0; i < 4; i++) - { - if (p[i].u < 0) p[i].u = 0; - else if (p[i].u > (int)(src->cache_entry.w << FP)) - p[i].u = src->cache_entry.w << FP; - - if (p[i].v < 0) p[i].v = 0; - else if (p[i].v > (int)(src->cache_entry.h << FP)) - p[i].v = src->cache_entry.h << FP; - } - - // allocate some spans to hold out span list - spans = alloca((yend - ystart + 1) * sizeof(Line)); - if (!spans) return; - memset(spans, 0, (yend - ystart + 1) * sizeof(Line)); - - // calculate the spans list - _calc_spans(p, spans, ystart, yend, cx, cy, cw, ch); - - // walk through spans and render - - // if operation is solid, bypass buf and draw func and draw direct to dst - direct = 0; - if ((!src->cache_entry.flags.alpha) && (!dst->cache_entry.flags.alpha) && - (!dc->mul.use) && (!havea)) - { - direct = 1; - } - else - { - int pa; - - buf = alloca(cw * sizeof(DATA32)); - if (!buf) return; - pa = src->cache_entry.flags.alpha; - if (havea) src->cache_entry.flags.alpha = 1; - if (dc->mul.use) - func = evas_common_gfx_func_composite_pixel_color_span_get(src, dc->mul.col, dst, cw, dc->render_op); - else - func = evas_common_gfx_func_composite_pixel_span_get(src, dst, cw, dc->render_op); - src->cache_entry.flags.alpha = pa; - } - - if (!havecol) - { -#undef COLMUL -#include "evas_map_image_core.c" - } - else - { -#define COLMUL 1 -#include "evas_map_image_core.c" - } -} diff --git a/libraries/evas/src/lib/engines/common/evas_map_image_loop.c b/libraries/evas/src/lib/engines/common/evas_map_image_loop.c deleted file mode 100644 index c434386..0000000 --- a/libraries/evas/src/lib/engines/common/evas_map_image_loop.c +++ /dev/null @@ -1,116 +0,0 @@ -#ifdef SMOOTH -{ - while (ww > 0) - { -# ifdef COLBLACK - *d = 0xff000000; // col -# else - FPc u1, v1, u2, v2; - FPc rv, ru; - DATA32 val1, val2, val3, val4; - - u1 = u; - if (u1 < 0) u1 = 0; - else if (u1 >= swp) u1 = swp - 1; - - v1 = v; - if (v1 < 0) v1 = 0; - else if (v1 >= shp) v1 = shp - 1; - - u2 = u1 + FPFPI1; - if (u2 >= swp) u2 = swp - 1; - - v2 = v1 + FPFPI1; - if (v2 >= shp) v2 = shp - 1; - - ru = (u >> (FP + FPI - 8)) & 0xff; - rv = (v >> (FP + FPI - 8)) & 0xff; - - s = sp + ((v1 >> (FP + FPI)) * sw) + - (u1 >> (FP + FPI)); - val1 = *s; - s = sp + ((v1 >> (FP + FPI)) * sw) + - (u2 >> (FP + FPI)); - val2 = *s; - - s = sp + ((v2 >> (FP + FPI)) * sw) + - (u1 >> (FP + FPI)); - val3 = *s; - s = sp + ((v2 >> (FP + FPI)) * sw) + - (u2 >> (FP + FPI)); - val4 = *s; -# ifdef SCALE_USING_MMX - MOV_A2R(rv, mm4); - MOV_A2R(ru, mm6); - MOV_P2R(val1, mm1, mm0); - if (val1 | val2) - { - MOV_P2R(val2, mm2, mm0); - INTERP_256_R2R(mm6, mm2, mm1, mm5); - } - MOV_P2R(val3, mm2, mm0); - if (val3 | val4) - { - MOV_P2R(val4, mm3, mm0); - INTERP_256_R2R(mm6, mm3, mm2, mm5); - } - INTERP_256_R2R(mm4, mm2, mm1, mm5); -# ifdef COLMUL - cc = cv >> 16; // col - cv += cd; // col - MOV_A2R(cc, mm2); // col - MOV_P2R(c1, mm3, mm0); // col - MOV_P2R(c2, mm4, mm0); // col - INTERP_256_R2R(mm2, mm4, mm3, mm5); // col - MUL4_SYM_R2R(mm3, mm1, mm5); // col -# endif - MOV_R2P(mm1, *d, mm0); -# else - val1 = INTERP_256(ru, val2, val1); - val3 = INTERP_256(ru, val4, val3); - val1 = INTERP_256(rv, val3, val1); // col -# ifdef COLMUL - val2 = INTERP_256((cv >> 16), c2, c1); // col - *d = MUL4_SYM(val2, val1); // col - cv += cd; // col -# else - *d = INTERP_256(rv, val3, val1); -# endif -# endif - u += ud; - v += vd; -# endif - d++; - ww--; - } -} -#else -{ - while (ww > 0) - { -# ifdef COLMUL -# ifndef COLBLACK - DATA32 val1, cval; // col -# endif -# endif -# ifdef COLBLACK - *d = 0xff000000; // col -# else - s = sp + ((v >> (FP + FPI)) * sw) + - (u >> (FP + FPI)); -# ifdef COLMUL - val1 = *s; // col - cval = INTERP_256((cv >> 16), c2, c1); // col - *d = MUL4_SYM(cval, val1); - cv += cd; // col -# else - *d = *s; -# endif - u += ud; - v += vd; -# endif - d++; - ww--; - } -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_add/Makefile.am b/libraries/evas/src/lib/engines/common/evas_op_add/Makefile.am deleted file mode 100644 index 78ce9fa..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_add/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -EXTRA_DIST = \ -op_add_color_.c \ -op_add_color_i386.c \ -op_add_mask_color_.c \ -op_add_mask_color_i386.c \ -op_add_pixel_.c \ -op_add_pixel_color_.c \ -op_add_pixel_color_i386.c \ -op_add_pixel_i386.c \ -op_add_pixel_mask_.c \ -op_add_pixel_mask_i386.c diff --git a/libraries/evas/src/lib/engines/common/evas_op_add/Makefile.in b/libraries/evas/src/lib/engines/common/evas_op_add/Makefile.in deleted file mode 100644 index 61d3479..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_add/Makefile.in +++ /dev/null @@ -1,547 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/lib/engines/common/evas_op_add -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ - $(top_srcdir)/m4/efl_coverage.m4 \ - $(top_srcdir)/m4/efl_doxygen.m4 \ - $(top_srcdir)/m4/efl_fnmatch.m4 \ - $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ - $(top_srcdir)/m4/evas_check_engine.m4 \ - $(top_srcdir)/m4/evas_check_loader.m4 \ - $(top_srcdir)/m4/evas_converter.m4 \ - $(top_srcdir)/m4/evas_dither.m4 \ - $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CHECK_CFLAGS = @CHECK_CFLAGS@ -CHECK_LIBS = @CHECK_LIBS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ -ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ -EDB_CFLAGS = @EDB_CFLAGS@ -EDB_LIBS = @EDB_LIBS@ -EDJE_CFLAGS = @EDJE_CFLAGS@ -EDJE_LIBS = @EDJE_LIBS@ -EET_CFLAGS = @EET_CFLAGS@ -EET_LIBS = @EET_LIBS@ -EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ -EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ -EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ -EGREP = @EGREP@ -EINA_CFLAGS = @EINA_CFLAGS@ -EINA_LIBS = @EINA_LIBS@ -EVAS_CFLAGS = @EVAS_CFLAGS@ -EVAS_LIBS = @EVAS_LIBS@ -EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@ -EVIL_CFLAGS = @EVIL_CFLAGS@ -EVIL_LIBS = @EVIL_LIBS@ -EXEEXT = @EXEEXT@ -EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ -EXOTIC_LIBS = @EXOTIC_LIBS@ -FGREP = @FGREP@ -FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ -FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ -FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ -FREETYPE_LIBS = @FREETYPE_LIBS@ -FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@ -FRIBIDI_LIBS = @FRIBIDI_LIBS@ -GL_EET_CFLAGS = @GL_EET_CFLAGS@ -GL_EET_LIBS = @GL_EET_LIBS@ -GREP = @GREP@ -HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@ -HARFBUZZ_LIBS = @HARFBUZZ_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@ -LINEBREAK_LIBS = @LINEBREAK_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MODULE_ARCH = @MODULE_ARCH@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJC = @OBJC@ -OBJCDEPMODE = @OBJCDEPMODE@ -OBJCFLAGS = @OBJCFLAGS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ -PIXMAN_LIBS = @PIXMAN_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PNG_CFLAGS = @PNG_CFLAGS@ -PNG_LIBS = @PNG_LIBS@ -RANLIB = @RANLIB@ -SDL_CFLAGS = @SDL_CFLAGS@ -SDL_LIBS = @SDL_LIBS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SHM_OPEN_LINK = @SHM_OPEN_LINK@ -STRIP = @STRIP@ -SVG_CFLAGS = @SVG_CFLAGS@ -SVG_LIBS = @SVG_LIBS@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -VMAJ = @VMAJ@ -WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ -WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ -XCB_CFLAGS = @XCB_CFLAGS@ -XCB_GL_CFLAGS = @XCB_GL_CFLAGS@ -XCB_GL_LIBS = @XCB_GL_LIBS@ -XCB_LIBS = @XCB_LIBS@ -XEXT_CFLAGS = @XEXT_CFLAGS@ -XEXT_LIBS = @XEXT_LIBS@ -XMKMF = @XMKMF@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_OBJC = @ac_ct_OBJC@ -altivec_cflags = @altivec_cflags@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -dlopen_libs = @dlopen_libs@ -docdir = @docdir@ -dvidir = @dvidir@ -edje_cc = @edje_cc@ -efl_doxygen = @efl_doxygen@ -efl_have_doxygen = @efl_have_doxygen@ -evas_engine_buffer_cflags = @evas_engine_buffer_cflags@ -evas_engine_buffer_libs = @evas_engine_buffer_libs@ -evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@ -evas_engine_direct3d_libs = @evas_engine_direct3d_libs@ -evas_engine_directfb_cflags = @evas_engine_directfb_cflags@ -evas_engine_directfb_libs = @evas_engine_directfb_libs@ -evas_engine_fb_cflags = @evas_engine_fb_cflags@ -evas_engine_fb_libs = @evas_engine_fb_libs@ -evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@ -evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@ -evas_engine_gl_common_libs = @evas_engine_gl_common_libs@ -evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@ -evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@ -evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@ -evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@ -evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@ -evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@ -evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@ -evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@ -evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@ -evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@ -evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@ -evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@ -evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@ -evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@ -evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@ -evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@ -evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@ -evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@ -evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@ -evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@ -evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@ -evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@ -evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ -evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ -evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ -evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ -evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ -evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ -evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ -evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ -evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ -evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ -evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ -evas_image_loader_edb_libs = @evas_image_loader_edb_libs@ -evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@ -evas_image_loader_eet_libs = @evas_image_loader_eet_libs@ -evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@ -evas_image_loader_generic_libs = @evas_image_loader_generic_libs@ -evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@ -evas_image_loader_gif_libs = @evas_image_loader_gif_libs@ -evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@ -evas_image_loader_ico_libs = @evas_image_loader_ico_libs@ -evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@ -evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@ -evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@ -evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@ -evas_image_loader_png_cflags = @evas_image_loader_png_cflags@ -evas_image_loader_png_libs = @evas_image_loader_png_libs@ -evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@ -evas_image_loader_psd_libs = @evas_image_loader_psd_libs@ -evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@ -evas_image_loader_svg_libs = @evas_image_loader_svg_libs@ -evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@ -evas_image_loader_tga_libs = @evas_image_loader_tga_libs@ -evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@ -evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@ -evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@ -evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@ -evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@ -evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@ -exec_prefix = @exec_prefix@ -have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@ -have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@ -have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@ -have_evas_engine_software_x11 = @have_evas_engine_software_x11@ -have_evas_engine_software_xcb = @have_evas_engine_software_xcb@ -have_evas_engine_software_xlib = @have_evas_engine_software_xlib@ -have_lcov = @have_lcov@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -lt_enable_auto_import = @lt_enable_auto_import@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfig_requires_private = @pkgconfig_requires_private@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pthread_cflags = @pthread_cflags@ -pthread_libs = @pthread_libs@ -release_info = @release_info@ -requirement_evas = @requirement_evas@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -version_info = @version_info@ -MAINTAINERCLEANFILES = Makefile.in -EXTRA_DIST = \ -op_add_color_.c \ -op_add_color_i386.c \ -op_add_mask_color_.c \ -op_add_mask_color_i386.c \ -op_add_pixel_.c \ -op_add_pixel_color_.c \ -op_add_pixel_color_i386.c \ -op_add_pixel_i386.c \ -op_add_pixel_mask_.c \ -op_add_pixel_mask_i386.c - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_add/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_add/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_color_.c b/libraries/evas/src/lib/engines/common/evas_op_add/op_add_color_.c deleted file mode 100644 index ace781b..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_color_.c +++ /dev/null @@ -1,33 +0,0 @@ -/* add color -> dst */ - -#ifdef BUILD_C -static void -init_add_color_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_add_color_pt_funcs_c(void) -{ -} -#endif - -/*-----*/ - -/* add_rel color -> dst */ - -#ifdef BUILD_C -static void -init_add_rel_color_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_add_rel_color_pt_funcs_c(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_add/op_add_color_i386.c deleted file mode 100644 index f4f83a4..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_color_i386.c +++ /dev/null @@ -1,33 +0,0 @@ -/* add color -> dst */ - -#ifdef BUILD_MMX -static void -init_add_color_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_add_color_pt_funcs_mmx(void) -{ -} -#endif - -/*-----*/ - -/* add_rel color -> dst */ - -#ifdef BUILD_MMX -static void -init_add_rel_color_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_add_rel_color_pt_funcs_mmx(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_mask_color_.c b/libraries/evas/src/lib/engines/common/evas_op_add/op_add_mask_color_.c deleted file mode 100644 index b20053c..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_mask_color_.c +++ /dev/null @@ -1,33 +0,0 @@ -/* add mask x color -> dst */ - -#ifdef BUILD_C -static void -init_add_mask_color_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_add_mask_color_pt_funcs_c(void) -{ -} -#endif - -/*-----*/ - -/* add_rel mask x color -> dst */ - -#ifdef BUILD_C -static void -init_add_rel_mask_color_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_add_rel_mask_color_pt_funcs_c(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_mask_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_add/op_add_mask_color_i386.c deleted file mode 100644 index 6a86f86..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_mask_color_i386.c +++ /dev/null @@ -1,33 +0,0 @@ -/* add mask x color -> dst */ - -#ifdef BUILD_MMX -static void -init_add_mask_color_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_add_mask_color_pt_funcs_mmx(void) -{ -} -#endif - -/*-----*/ - -/* add_rel mask x color -> dst */ - -#ifdef BUILD_MMX -static void -init_add_rel_mask_color_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_add_rel_mask_color_pt_funcs_mmx(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_.c b/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_.c deleted file mode 100644 index 4fe5a76..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_.c +++ /dev/null @@ -1,33 +0,0 @@ -/* add pixel --> dst */ - -#ifdef BUILD_C -static void -init_add_pixel_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_add_pixel_pt_funcs_c(void) -{ -} -#endif - -/*-----*/ - -/* add_rel pixel --> dst */ - -#ifdef BUILD_C -static void -init_add_rel_pixel_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_add_rel_pixel_pt_funcs_c(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_color_.c b/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_color_.c deleted file mode 100644 index aa0dba1..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_color_.c +++ /dev/null @@ -1,33 +0,0 @@ -/* add pixel x color --> dst */ - -#ifdef BUILD_C -static void -init_add_pixel_color_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_add_pixel_color_pt_funcs_c(void) -{ -} -#endif - -/*-----*/ - -/* add_rel pixel x color --> dst */ - -#ifdef BUILD_C -static void -init_add_rel_pixel_color_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_add_rel_pixel_color_pt_funcs_c(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_color_i386.c deleted file mode 100644 index fa382d9..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_color_i386.c +++ /dev/null @@ -1,29 +0,0 @@ -/* add pixel x color --> dst */ - -#ifdef BUILD_MMX -static void -init_add_pixel_color_span_funcs_mmx(void) -{ } -#endif - -#ifdef BUILD_MMX -static void -init_add_pixel_color_pt_funcs_mmx(void) -{ } -#endif - -/*-----*/ - -/* add_rel pixel x color --> dst */ - -#ifdef BUILD_MMX -static void -init_add_rel_pixel_color_span_funcs_mmx(void) -{ } -#endif - -#ifdef BUILD_MMX -static void -init_add_rel_pixel_color_pt_funcs_mmx(void) -{ } -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_i386.c b/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_i386.c deleted file mode 100644 index eb2b5a3..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_i386.c +++ /dev/null @@ -1,33 +0,0 @@ -/* add pixel --> dst */ - -#ifdef BUILD_MMX -static void -init_add_pixel_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_add_pixel_pt_funcs_mmx(void) -{ -} -#endif - -/*-----*/ - -/* add_rel pixel --> dst */ - -#ifdef BUILD_MMX -static void -init_add_rel_pixel_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_add_rel_pixel_pt_funcs_mmx(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_mask_.c b/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_mask_.c deleted file mode 100644 index 8414bce..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_mask_.c +++ /dev/null @@ -1,37 +0,0 @@ -/* add pixel x mask --> dst */ - -#ifdef BUILD_C -/* XXX: not used -static void -init_add_pixel_mask_span_funcs_c(void) -{ -} -*/ -#endif - -#ifdef BUILD_C -/* XXX: not used -static void -init_add_pixel_mask_pt_funcs_c(void) -{ -} -*/ -#endif - -/*-----*/ - -/* add_rel pixel x mask --> dst */ - -#ifdef BUILD_C -static void -init_add_rel_pixel_mask_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_add_rel_pixel_mask_pt_funcs_c(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_mask_i386.c b/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_mask_i386.c deleted file mode 100644 index a6309c3..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_add/op_add_pixel_mask_i386.c +++ /dev/null @@ -1,33 +0,0 @@ -/* add pixel x mask -> dst */ - -#ifdef BUILD_MMX -static void -init_add_pixel_mask_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_add_pixel_mask_pt_funcs_mmx(void) -{ -} -#endif - -/*-----*/ - -/* add_rel pixel x mask -> dst */ - -#ifdef BUILD_MMX -static void -init_add_rel_pixel_mask_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_add_rel_pixel_mask_pt_funcs_mmx(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_add_main_.c b/libraries/evas/src/lib/engines/common/evas_op_add_main_.c deleted file mode 100644 index ef8b728..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_add_main_.c +++ /dev/null @@ -1,541 +0,0 @@ -#include "evas_common.h" -static RGBA_Gfx_Func op_add_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; -static RGBA_Gfx_Pt_Func op_add_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; - -static void op_add_init(void); -static void op_add_shutdown(void); - -static RGBA_Gfx_Func op_add_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_add_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_add_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_add_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_add_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); - -static RGBA_Gfx_Pt_Func op_add_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_add_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_add_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_add_mask_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_add_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); - -static RGBA_Gfx_Compositor _composite_add = { "add", - op_add_init, op_add_shutdown, - op_add_pixel_span_get, op_add_color_span_get, - op_add_pixel_color_span_get, op_add_mask_color_span_get, - op_add_pixel_mask_span_get, - op_add_pixel_pt_get, op_add_color_pt_get, - op_add_pixel_color_pt_get, op_add_mask_color_pt_get, - op_add_pixel_mask_pt_get - }; - -RGBA_Gfx_Compositor * -evas_common_gfx_compositor_add_get(void) -{ - return &(_composite_add); -} - -static RGBA_Gfx_Func op_add_rel_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; -static RGBA_Gfx_Pt_Func op_add_rel_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; - -static void op_add_rel_init(void); -static void op_add_rel_shutdown(void); - -static RGBA_Gfx_Func op_add_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_add_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_add_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_add_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_add_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); - -static RGBA_Gfx_Pt_Func op_add_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_add_rel_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_add_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_add_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_add_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); - -static RGBA_Gfx_Compositor _composite_add_rel = { "add_rel", - op_add_rel_init, op_add_rel_shutdown, - op_add_rel_pixel_span_get, op_add_rel_color_span_get, - op_add_rel_pixel_color_span_get, op_add_rel_mask_color_span_get, - op_add_rel_pixel_mask_span_get, - op_add_rel_pixel_pt_get, op_add_rel_color_pt_get, - op_add_rel_pixel_color_pt_get, op_add_rel_mask_color_pt_get, - op_add_rel_pixel_mask_pt_get - }; - -RGBA_Gfx_Compositor * -evas_common_gfx_compositor_add_rel_get(void) -{ - return &(_composite_add_rel); -} - - -# include "./evas_op_add/op_add_pixel_.c" -# include "./evas_op_add/op_add_color_.c" -# include "./evas_op_add/op_add_pixel_color_.c" -# include "./evas_op_add/op_add_pixel_mask_.c" -# include "./evas_op_add/op_add_mask_color_.c" -//# include "./evas_op_add/op_add_pixel_mask_color_.c" - -# include "./evas_op_add/op_add_pixel_i386.c" -# include "./evas_op_add/op_add_color_i386.c" -# include "./evas_op_add/op_add_pixel_color_i386.c" -# include "./evas_op_add/op_add_pixel_mask_i386.c" -# include "./evas_op_add/op_add_mask_color_i386.c" -//# include "op_add_pixel_mask_color_.c" - -static void -op_add_init(void) -{ - memset(op_add_span_funcs, 0, sizeof(op_add_span_funcs)); - memset(op_add_pt_funcs, 0, sizeof(op_add_pt_funcs)); -#ifdef BUILD_MMX - init_add_pixel_span_funcs_mmx(); - init_add_pixel_color_span_funcs_mmx(); - init_add_pixel_mask_span_funcs_mmx(); - init_add_color_span_funcs_mmx(); - init_add_mask_color_span_funcs_mmx(); - - init_add_pixel_pt_funcs_mmx(); - init_add_pixel_color_pt_funcs_mmx(); - init_add_pixel_mask_pt_funcs_mmx(); - init_add_color_pt_funcs_mmx(); - init_add_mask_color_pt_funcs_mmx(); -#endif -#ifdef BUILD_C - init_add_pixel_span_funcs_c(); - init_add_pixel_color_span_funcs_c(); - init_add_rel_pixel_mask_span_funcs_c(); - init_add_color_span_funcs_c(); - init_add_mask_color_span_funcs_c(); - - init_add_pixel_pt_funcs_c(); - init_add_pixel_color_pt_funcs_c(); - init_add_rel_pixel_mask_pt_funcs_c(); - init_add_color_pt_funcs_c(); - init_add_mask_color_pt_funcs_c(); -#endif -} - -static void -op_add_shutdown(void) -{ -} - -static RGBA_Gfx_Func -add_gfx_span_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_add_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_add_span_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Func -op_add_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_add_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_add_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - s = SP; - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_add_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_add_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -add_gfx_pt_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Pt_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_add_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_add_pt_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Pt_Func -op_add_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_add_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_add_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_add_mask_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_add_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_gfx_pt_func_cpu(s, m, c, d); -} - - - -static void -op_add_rel_init(void) -{ - memset(op_add_rel_span_funcs, 0, sizeof(op_add_rel_span_funcs)); - memset(op_add_rel_pt_funcs, 0, sizeof(op_add_rel_pt_funcs)); -#ifdef BUILD_MMX - init_add_rel_pixel_span_funcs_mmx(); - init_add_rel_pixel_color_span_funcs_mmx(); - init_add_rel_pixel_mask_span_funcs_mmx(); - init_add_rel_color_span_funcs_mmx(); - init_add_rel_mask_color_span_funcs_mmx(); - - init_add_rel_pixel_pt_funcs_mmx(); - init_add_rel_pixel_color_pt_funcs_mmx(); - init_add_rel_pixel_mask_pt_funcs_mmx(); - init_add_rel_color_pt_funcs_mmx(); - init_add_rel_mask_color_pt_funcs_mmx(); -#endif -#ifdef BUILD_C - init_add_rel_pixel_span_funcs_c(); - init_add_rel_pixel_color_span_funcs_c(); - init_add_rel_pixel_mask_span_funcs_c(); - init_add_rel_color_span_funcs_c(); - init_add_rel_mask_color_span_funcs_c(); - - init_add_rel_pixel_pt_funcs_c(); - init_add_rel_pixel_color_pt_funcs_c(); - init_add_rel_pixel_mask_pt_funcs_c(); - init_add_rel_color_pt_funcs_c(); - init_add_rel_mask_color_pt_funcs_c(); -#endif -} - -static void -op_add_rel_shutdown(void) -{ -} - -static RGBA_Gfx_Func -add_rel_gfx_span_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_add_rel_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_add_rel_span_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Func -op_add_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_add_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_add_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - s = SP; - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_add_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_add_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -add_rel_gfx_pt_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Pt_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_add_rel_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_add_rel_pt_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Pt_Func -op_add_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_add_rel_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_add_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_add_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_add_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return add_rel_gfx_pt_func_cpu(s, m, c, d); -} diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.am b/libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.am deleted file mode 100644 index 77435c4..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.am +++ /dev/null @@ -1,46 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -EXTRA_DIST = \ -op_blend_color_.c \ -op_blend_color_i386.c \ -op_blend_color_neon.c \ -op_blend_color_sse3.c \ -op_blend_mask_color_.c \ -op_blend_mask_color_i386.c \ -op_blend_mask_color_neon.c \ -op_blend_mask_color_sse3.c \ -op_blend_pixel_.c \ -op_blend_pixel_color_.c \ -op_blend_pixel_color_i386.c \ -op_blend_pixel_color_neon.c \ -op_blend_pixel_color_sse3.c \ -op_blend_pixel_i386.c \ -op_blend_pixel_mask_.c \ -op_blend_pixel_mask_i386.c \ -op_blend_pixel_mask_neon.c \ -op_blend_pixel_mask_sse3.c \ -op_blend_pixel_neon.c \ -op_blend_pixel_sse3.c - -noinst_LTLIBRARIES = libevas_engine_common_op_blend_master_sse3.la - -libevas_engine_common_op_blend_master_sse3_la_SOURCES = \ -op_blend_master_sse3.c - -libevas_engine_common_op_blend_master_sse3_la_CFLAGS = \ --I. \ --I$(top_srcdir)/src/lib \ --I$(top_srcdir)/src/lib/engines/common \ --I$(top_srcdir)/src/lib/engines/common/evas_op_blend \ --I$(top_srcdir)/src/lib/cserve \ --I$(top_srcdir)/src/lib/include \ --DPACKAGE_BIN_DIR=\"$(bindir)\" \ --DPACKAGE_LIB_DIR=\"$(libdir)\" \ --DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@FREETYPE_CFLAGS@ @VALGRIND_CFLAGS@ \ -@PIXMAN_CFLAGS@ \ -@EET_CFLAGS@ @pthread_cflags@ \ -@EINA_CFLAGS@ \ -@FRIBIDI_CFLAGS@ @HARFBUZZ_CFLAGS@ \ -@PIXMAN_CFLAGS@ \ -@EVAS_SSE3_CFLAGS@ diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.in b/libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.in deleted file mode 100644 index 016b49c..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.in +++ /dev/null @@ -1,721 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/lib/engines/common/evas_op_blend -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ - $(top_srcdir)/m4/efl_coverage.m4 \ - $(top_srcdir)/m4/efl_doxygen.m4 \ - $(top_srcdir)/m4/efl_fnmatch.m4 \ - $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ - $(top_srcdir)/m4/evas_check_engine.m4 \ - $(top_srcdir)/m4/evas_check_loader.m4 \ - $(top_srcdir)/m4/evas_converter.m4 \ - $(top_srcdir)/m4/evas_dither.m4 \ - $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -LTLIBRARIES = $(noinst_LTLIBRARIES) -libevas_engine_common_op_blend_master_sse3_la_LIBADD = -am_libevas_engine_common_op_blend_master_sse3_la_OBJECTS = libevas_engine_common_op_blend_master_sse3_la-op_blend_master_sse3.lo -libevas_engine_common_op_blend_master_sse3_la_OBJECTS = \ - $(am_libevas_engine_common_op_blend_master_sse3_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -libevas_engine_common_op_blend_master_sse3_la_LINK = $(LIBTOOL) \ - $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) \ - $(libevas_engine_common_op_blend_master_sse3_la_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libevas_engine_common_op_blend_master_sse3_la_SOURCES) -DIST_SOURCES = \ - $(libevas_engine_common_op_blend_master_sse3_la_SOURCES) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CHECK_CFLAGS = @CHECK_CFLAGS@ -CHECK_LIBS = @CHECK_LIBS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ -ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ -EDB_CFLAGS = @EDB_CFLAGS@ -EDB_LIBS = @EDB_LIBS@ -EDJE_CFLAGS = @EDJE_CFLAGS@ -EDJE_LIBS = @EDJE_LIBS@ -EET_CFLAGS = @EET_CFLAGS@ -EET_LIBS = @EET_LIBS@ -EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ -EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ -EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ -EGREP = @EGREP@ -EINA_CFLAGS = @EINA_CFLAGS@ -EINA_LIBS = @EINA_LIBS@ -EVAS_CFLAGS = @EVAS_CFLAGS@ -EVAS_LIBS = @EVAS_LIBS@ -EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@ -EVIL_CFLAGS = @EVIL_CFLAGS@ -EVIL_LIBS = @EVIL_LIBS@ -EXEEXT = @EXEEXT@ -EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ -EXOTIC_LIBS = @EXOTIC_LIBS@ -FGREP = @FGREP@ -FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ -FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ -FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ -FREETYPE_LIBS = @FREETYPE_LIBS@ -FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@ -FRIBIDI_LIBS = @FRIBIDI_LIBS@ -GL_EET_CFLAGS = @GL_EET_CFLAGS@ -GL_EET_LIBS = @GL_EET_LIBS@ -GREP = @GREP@ -HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@ -HARFBUZZ_LIBS = @HARFBUZZ_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@ -LINEBREAK_LIBS = @LINEBREAK_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MODULE_ARCH = @MODULE_ARCH@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJC = @OBJC@ -OBJCDEPMODE = @OBJCDEPMODE@ -OBJCFLAGS = @OBJCFLAGS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ -PIXMAN_LIBS = @PIXMAN_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PNG_CFLAGS = @PNG_CFLAGS@ -PNG_LIBS = @PNG_LIBS@ -RANLIB = @RANLIB@ -SDL_CFLAGS = @SDL_CFLAGS@ -SDL_LIBS = @SDL_LIBS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SHM_OPEN_LINK = @SHM_OPEN_LINK@ -STRIP = @STRIP@ -SVG_CFLAGS = @SVG_CFLAGS@ -SVG_LIBS = @SVG_LIBS@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -VMAJ = @VMAJ@ -WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ -WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ -XCB_CFLAGS = @XCB_CFLAGS@ -XCB_GL_CFLAGS = @XCB_GL_CFLAGS@ -XCB_GL_LIBS = @XCB_GL_LIBS@ -XCB_LIBS = @XCB_LIBS@ -XEXT_CFLAGS = @XEXT_CFLAGS@ -XEXT_LIBS = @XEXT_LIBS@ -XMKMF = @XMKMF@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_OBJC = @ac_ct_OBJC@ -altivec_cflags = @altivec_cflags@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -dlopen_libs = @dlopen_libs@ -docdir = @docdir@ -dvidir = @dvidir@ -edje_cc = @edje_cc@ -efl_doxygen = @efl_doxygen@ -efl_have_doxygen = @efl_have_doxygen@ -evas_engine_buffer_cflags = @evas_engine_buffer_cflags@ -evas_engine_buffer_libs = @evas_engine_buffer_libs@ -evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@ -evas_engine_direct3d_libs = @evas_engine_direct3d_libs@ -evas_engine_directfb_cflags = @evas_engine_directfb_cflags@ -evas_engine_directfb_libs = @evas_engine_directfb_libs@ -evas_engine_fb_cflags = @evas_engine_fb_cflags@ -evas_engine_fb_libs = @evas_engine_fb_libs@ -evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@ -evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@ -evas_engine_gl_common_libs = @evas_engine_gl_common_libs@ -evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@ -evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@ -evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@ -evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@ -evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@ -evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@ -evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@ -evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@ -evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@ -evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@ -evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@ -evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@ -evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@ -evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@ -evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@ -evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@ -evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@ -evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@ -evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@ -evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@ -evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@ -evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@ -evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ -evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ -evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ -evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ -evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ -evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ -evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ -evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ -evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ -evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ -evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ -evas_image_loader_edb_libs = @evas_image_loader_edb_libs@ -evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@ -evas_image_loader_eet_libs = @evas_image_loader_eet_libs@ -evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@ -evas_image_loader_generic_libs = @evas_image_loader_generic_libs@ -evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@ -evas_image_loader_gif_libs = @evas_image_loader_gif_libs@ -evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@ -evas_image_loader_ico_libs = @evas_image_loader_ico_libs@ -evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@ -evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@ -evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@ -evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@ -evas_image_loader_png_cflags = @evas_image_loader_png_cflags@ -evas_image_loader_png_libs = @evas_image_loader_png_libs@ -evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@ -evas_image_loader_psd_libs = @evas_image_loader_psd_libs@ -evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@ -evas_image_loader_svg_libs = @evas_image_loader_svg_libs@ -evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@ -evas_image_loader_tga_libs = @evas_image_loader_tga_libs@ -evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@ -evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@ -evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@ -evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@ -evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@ -evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@ -exec_prefix = @exec_prefix@ -have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@ -have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@ -have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@ -have_evas_engine_software_x11 = @have_evas_engine_software_x11@ -have_evas_engine_software_xcb = @have_evas_engine_software_xcb@ -have_evas_engine_software_xlib = @have_evas_engine_software_xlib@ -have_lcov = @have_lcov@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -lt_enable_auto_import = @lt_enable_auto_import@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfig_requires_private = @pkgconfig_requires_private@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pthread_cflags = @pthread_cflags@ -pthread_libs = @pthread_libs@ -release_info = @release_info@ -requirement_evas = @requirement_evas@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -version_info = @version_info@ -MAINTAINERCLEANFILES = Makefile.in -EXTRA_DIST = \ -op_blend_color_.c \ -op_blend_color_i386.c \ -op_blend_color_neon.c \ -op_blend_color_sse3.c \ -op_blend_mask_color_.c \ -op_blend_mask_color_i386.c \ -op_blend_mask_color_neon.c \ -op_blend_mask_color_sse3.c \ -op_blend_pixel_.c \ -op_blend_pixel_color_.c \ -op_blend_pixel_color_i386.c \ -op_blend_pixel_color_neon.c \ -op_blend_pixel_color_sse3.c \ -op_blend_pixel_i386.c \ -op_blend_pixel_mask_.c \ -op_blend_pixel_mask_i386.c \ -op_blend_pixel_mask_neon.c \ -op_blend_pixel_mask_sse3.c \ -op_blend_pixel_neon.c \ -op_blend_pixel_sse3.c - -noinst_LTLIBRARIES = libevas_engine_common_op_blend_master_sse3.la -libevas_engine_common_op_blend_master_sse3_la_SOURCES = \ -op_blend_master_sse3.c - -libevas_engine_common_op_blend_master_sse3_la_CFLAGS = \ --I. \ --I$(top_srcdir)/src/lib \ --I$(top_srcdir)/src/lib/engines/common \ --I$(top_srcdir)/src/lib/engines/common/evas_op_blend \ --I$(top_srcdir)/src/lib/cserve \ --I$(top_srcdir)/src/lib/include \ --DPACKAGE_BIN_DIR=\"$(bindir)\" \ --DPACKAGE_LIB_DIR=\"$(libdir)\" \ --DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@FREETYPE_CFLAGS@ @VALGRIND_CFLAGS@ \ -@PIXMAN_CFLAGS@ \ -@EET_CFLAGS@ @pthread_cflags@ \ -@EINA_CFLAGS@ \ -@FRIBIDI_CFLAGS@ @HARFBUZZ_CFLAGS@ \ -@PIXMAN_CFLAGS@ \ -@EVAS_SSE3_CFLAGS@ - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_blend/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_blend/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libevas_engine_common_op_blend_master_sse3.la: $(libevas_engine_common_op_blend_master_sse3_la_OBJECTS) $(libevas_engine_common_op_blend_master_sse3_la_DEPENDENCIES) - $(AM_V_CCLD)$(libevas_engine_common_op_blend_master_sse3_la_LINK) $(libevas_engine_common_op_blend_master_sse3_la_OBJECTS) $(libevas_engine_common_op_blend_master_sse3_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libevas_engine_common_op_blend_master_sse3_la-op_blend_master_sse3.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -libevas_engine_common_op_blend_master_sse3_la-op_blend_master_sse3.lo: op_blend_master_sse3.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libevas_engine_common_op_blend_master_sse3_la_CFLAGS) $(CFLAGS) -MT libevas_engine_common_op_blend_master_sse3_la-op_blend_master_sse3.lo -MD -MP -MF $(DEPDIR)/libevas_engine_common_op_blend_master_sse3_la-op_blend_master_sse3.Tpo -c -o libevas_engine_common_op_blend_master_sse3_la-op_blend_master_sse3.lo `test -f 'op_blend_master_sse3.c' || echo '$(srcdir)/'`op_blend_master_sse3.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libevas_engine_common_op_blend_master_sse3_la-op_blend_master_sse3.Tpo $(DEPDIR)/libevas_engine_common_op_blend_master_sse3_la-op_blend_master_sse3.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='op_blend_master_sse3.c' object='libevas_engine_common_op_blend_master_sse3_la-op_blend_master_sse3.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libevas_engine_common_op_blend_master_sse3_la_CFLAGS) $(CFLAGS) -c -o libevas_engine_common_op_blend_master_sse3_la-op_blend_master_sse3.lo `test -f 'op_blend_master_sse3.c' || echo '$(srcdir)/'`op_blend_master_sse3.c - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_.c deleted file mode 100644 index be70065..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_.c +++ /dev/null @@ -1,109 +0,0 @@ -/* blend color -> dst */ - -#ifdef BUILD_C -static void -_op_blend_c_dp(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e, a = 256 - (c >> 24); - UNROLL8_PLD_WHILE(d, l, e, - { - *d = c + MUL_256(a, *d); - d++; - }); -} - -#define _op_blend_caa_dp _op_blend_c_dp - -#define _op_blend_c_dpan _op_blend_c_dp -#define _op_blend_caa_dpan _op_blend_c_dpan - -static void -init_blend_color_span_funcs_c(void) -{ - op_blend_span_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_blend_c_dp; - op_blend_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_blend_caa_dp; - - op_blend_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_blend_c_dpan; - op_blend_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_blend_pt_c_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = 256 - (c >> 24); - *d = c + MUL_256(s, *d); -} - -#define _op_blend_pt_caa_dp _op_blend_pt_c_dp - -#define _op_blend_pt_c_dpan _op_blend_pt_c_dp -#define _op_blend_pt_caa_dpan _op_blend_pt_c_dpan - -#define _op_blend_pt_c_dpas _op_blend_pt_c_dp -#define _op_blend_pt_caa_dpas _op_blend_pt_c_dp - -static void -init_blend_color_pt_funcs_c(void) -{ - op_blend_pt_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_blend_pt_c_dp; - op_blend_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_blend_pt_caa_dp; - - op_blend_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_blend_pt_c_dpan; - op_blend_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_pt_caa_dpan; -} -#endif - -/*-----*/ - -/* blend_rel color -> dst */ - -#ifdef BUILD_C -static void -_op_blend_rel_c_dp(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha = 256 - (c >> 24); - UNROLL8_PLD_WHILE(d, l, e, - { - *d = MUL_SYM(*d >> 24, c) + MUL_256(alpha, *d); - d++; - }); -} - -#define _op_blend_rel_caa_dp _op_blend_rel_c_dp - -#define _op_blend_rel_c_dpan _op_blend_c_dpan -#define _op_blend_rel_caa_dpan _op_blend_caa_dpan - -static void -init_blend_rel_color_span_funcs_c(void) -{ - op_blend_rel_span_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_blend_rel_c_dp; - op_blend_rel_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_blend_rel_caa_dp; - - op_blend_rel_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_blend_rel_c_dpan; - op_blend_rel_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_rel_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_blend_rel_pt_c_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = *d >> 24; - *d = MUL_SYM(s, c) + MUL_256(256 - (c >> 24), *d); -} - -#define _op_blend_rel_pt_caa_dp _op_blend_rel_pt_c_dp - -#define _op_blend_rel_pt_c_dpan _op_blend_pt_c_dpan -#define _op_blend_rel_pt_caa_dpan _op_blend_pt_caa_dpan - -static void -init_blend_rel_color_pt_funcs_c(void) -{ - op_blend_rel_pt_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_blend_rel_pt_c_dp; - op_blend_rel_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_blend_rel_pt_caa_dp; - - op_blend_rel_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_blend_rel_pt_c_dpan; - op_blend_rel_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_rel_pt_caa_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_i386.c deleted file mode 100644 index a05af7d..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_i386.c +++ /dev/null @@ -1,138 +0,0 @@ -/* blend color --> dst */ - -#ifdef BUILD_MMX -static void -_op_blend_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - c = 256 - (c >> 24); - MOV_A2R(c, mm3) - while (d < e) { - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm3, mm1) - paddw_r2r(mm2, mm1); - MOV_R2P(mm1, *d, mm0) - d++; - } -} - -#define _op_blend_caa_dp_mmx _op_blend_c_dp_mmx - -#define _op_blend_c_dpan_mmx _op_blend_c_dp_mmx -#define _op_blend_caa_dpan_mmx _op_blend_c_dpan_mmx - -static void -init_blend_color_span_funcs_mmx(void) -{ - op_blend_span_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_blend_c_dp_mmx; - op_blend_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_caa_dp_mmx; - - op_blend_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_c_dpan_mmx; - op_blend_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_blend_pt_c_dp_mmx(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - c = 256 - (c >> 24); - MOV_A2R(c, mm3) - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm3, mm1) - paddw_r2r(mm2, mm1); - MOV_R2P(mm1, *d, mm0) -} - -#define _op_blend_pt_caa_dp_mmx _op_blend_pt_c_dp_mmx - -#define _op_blend_pt_c_dpan_mmx _op_blend_pt_c_dp_mmx -#define _op_blend_pt_caa_dpan_mmx _op_blend_pt_c_dpan_mmx - -static void -init_blend_color_pt_funcs_mmx(void) -{ - op_blend_pt_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_blend_pt_c_dp_mmx; - op_blend_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_pt_caa_dp_mmx; - - op_blend_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_pt_c_dpan_mmx; - op_blend_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_pt_caa_dpan_mmx; -} -#endif -/*-----*/ - -/* blend_rel color -> dst */ - -#ifdef BUILD_MMX -static void -_op_blend_rel_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - c = 256 - (c >> 24); - MOV_A2R(c, mm3) - MOV_A2R(ALPHA_255, mm5) - while (d < e) { - MOV_P2R(*d, mm1, mm0) - MOV_RA2R(mm1, mm4) - MUL4_256_R2R(mm3, mm1) - MUL4_SYM_R2R(mm2, mm4, mm5) - paddw_r2r(mm4, mm1); - MOV_R2P(mm1, *d, mm0) - d++; - } -} - -#define _op_blend_rel_caa_dp_mmx _op_blend_rel_c_dp_mmx - -#define _op_blend_rel_c_dpan_mmx _op_blend_c_dpan_mmx -#define _op_blend_rel_caa_dpan_mmx _op_blend_caa_dpan_mmx - -static void -init_blend_rel_color_span_funcs_mmx(void) -{ - op_blend_rel_span_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_blend_rel_c_dp_mmx; - op_blend_rel_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_rel_caa_dp_mmx; - - op_blend_rel_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_rel_c_dpan_mmx; - op_blend_rel_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_rel_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_blend_rel_pt_c_dp_mmx(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_256, mm6) - MOV_A2R(ALPHA_255, mm5) - - MOV_P2R(c, mm2, mm0) - MOV_RA2R(mm2, mm1) - psubw_r2r(mm1, mm6); - - MOV_P2R(*d, mm1, mm0) - MOV_RA2R(mm1, mm4) - MUL4_256_R2R(mm6, mm1) - - MUL4_SYM_R2R(mm4, mm2, mm5) - paddw_r2r(mm2, mm1); - MOV_R2P(mm1, *d, mm0) -} - -#define _op_blend_rel_pt_caa_dp_mmx _op_blend_rel_pt_c_dp_mmx - -#define _op_blend_rel_pt_c_dpan_mmx _op_blend_pt_c_dpan_mmx -#define _op_blend_rel_pt_caa_dpan_mmx _op_blend_pt_caa_dpan_mmx - -static void -init_blend_rel_color_pt_funcs_mmx(void) -{ - op_blend_rel_pt_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_blend_rel_pt_c_dp_mmx; - op_blend_rel_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_rel_pt_caa_dp_mmx; - - op_blend_rel_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_rel_pt_c_dpan_mmx; - op_blend_rel_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_rel_pt_caa_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_neon.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_neon.c deleted file mode 100644 index 53b9991..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_neon.c +++ /dev/null @@ -1,223 +0,0 @@ -/* blend color --> dst */ - -#ifdef BUILD_NEON -static void -_op_blend_c_dp_neon(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e, *tmp = 0; -#define AP "B_C_DP" - asm volatile ( - ".fpu neon \n\t" - "vdup.u32 q6, %[c] \n\t" - "vmov.i8 q5, #1 \n\t" - "vmvn.u8 q7,q6 \n\t" - "vshr.u32 q7, q7, $0x18 \n\t" - "vmul.u32 q7,q5, q7 \n\t" - "bic %[e], #3 \n\t" - "bic %[d], #3 \n\t" - - AP "loopchoose: \n\t" - // If aligned already - straight to quads - "andS %[tmp], %[d],$0x1f \n\t" - "beq "AP"quadloops \n\t" - - "andS %[tmp], %[d],$0x4 \n\t" - "beq "AP"dualloop \n\t" - - // Only ever executes once, fall through to dual - AP "singleloop: \n\t" - // Use 'tmp' not 'd' - "vld1.32 d0[0], [%[d]] \n\t" - // Only touch d1 - "vmull.u8 q0, d0, d14 \n\t" - "vqrshrn.u16 d0, q0, #8 \n\t" - "vadd.u8 d0, d12, d0 \n\t" - "vst1.32 d0[0], [%[d]] \n\t" - - "add %[d], #4 \n\t" - - // Can we go the fast path? - "andS %[tmp], %[d],$0x1f \n\t" - "beq "AP"quadloops \n\t" - - AP "dualloop: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #32 \n\t" - "blt "AP"loopout \n\t" - - - AP "dualloopint: \n\t" - "vldr.32 d0, [%[d]] \n\t" - "vmull.u8 q1, d0, d14 \n\t" - "vqrshrn.u16 d0, q1, #8 \n\t" - "vqadd.u8 d0, d0, d12 \n\t" - - "vstm %[d]!, {d0} \n\t" - - "ands %[tmp], %[d], $0x1f \n\t" - "bne "AP"dualloopint \n\t" - - AP "quadloops: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #32 \n\t" - "blt "AP"loopout \n\t" - - "sub %[tmp],%[e],#31 \n\t" - - AP "quadloopint:\n\t" - "vldm %[d], {d0,d1,d2,d3} \n\t" - - "vmull.u8 q2, d0, d14 \n\t" - "vmull.u8 q3, d1, d15 \n\t" - "vmull.u8 q4, d2, d14 \n\t" - "vmull.u8 q5, d3, d15 \n\t" - - "vqrshrn.u16 d0, q2, #8 \n\t" - "vqrshrn.u16 d1, q3, #8 \n\t" - "vqrshrn.u16 d2, q4, #8 \n\t" - "vqrshrn.u16 d3, q5, #8 \n\t" - - "vqadd.u8 q0, q6, q0 \n\t" - "vqadd.u8 q1, q6, q1 \n\t" - - "vstm %[d]!, {d0,d1,d2,d3} \n\t" - - "cmp %[tmp], %[d]\n\t" - "bhi "AP"quadloopint\n\t" - - AP "loopout: \n\t" - "cmp %[d], %[e]\n\t" - "beq "AP"done\n\t" - "sub %[tmp],%[e], %[d] \n\t" - "cmp %[tmp],#8 \n\t" - "blt "AP"singleloop2 \n\t" - - AP "dualloop2: \n\t" - "sub %[tmp],%[e],$0x7 \n\t" - AP "dualloop2int: \n\t" - "vldr.64 d0, [%[d]] \n\t" - "vmull.u8 q1, d0, d14 \n\t" - "vqrshrn.u16 d0, q1, #8 \n\t" - "vqadd.u8 d0, d0, d12 \n\t" - - "vstr.64 d0, [%[d]] \n\t" - - "add %[d], #8 \n\t" - "cmp %[tmp], %[d] \n\t" - "bhi "AP"dualloop2int \n\t" - - // Single ?? - "cmp %[e], %[d] \n\t" - "beq "AP"done \n\t" - - AP "singleloop2: \n\t" - "vld1.32 d0[0], [%[d]] \n\t" - "vmull.u8 q1, d0, d14 \n\t" - "vqrshrn.u16 d0, q1, #8 \n\t" - "vqadd.u8 d0, d0, d12 \n\t" - - "vst1.32 d0[0], [%[d]] \n\t" - - AP "done:\n\t" - - : // output regs - // Input - : [e] "r" (e = d + l), [d] "r" (d), [c] "r" (c), [tmp] "r" (tmp) - : "q0", "q1", "q2","q3", "q4","q5","q6", "q7","memory" // clobbered - - ); -#undef AP - -} - -#define _op_blend_caa_dp_neon _op_blend_c_dp_neon - -#define _op_blend_c_dpan_neon _op_blend_c_dp_neon -#define _op_blend_caa_dpan_neon _op_blend_c_dpan_neon - -static void -init_blend_color_span_funcs_neon(void) -{ - op_blend_span_funcs[SP_N][SM_N][SC][DP][CPU_NEON] = _op_blend_c_dp_neon; - op_blend_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_NEON] = _op_blend_caa_dp_neon; - - op_blend_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_c_dpan_neon; - op_blend_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_caa_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_blend_pt_c_dp_neon(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = 256 - (c >> 24); - *d = c + MUL_256(s, *d); -} - -#define _op_blend_pt_caa_dp_neon _op_blend_pt_c_dp_neon - -#define _op_blend_pt_c_dpan_neon _op_blend_pt_c_dp_neon -#define _op_blend_pt_caa_dpan_neon _op_blend_pt_c_dpan_neon - -static void -init_blend_color_pt_funcs_neon(void) -{ - op_blend_pt_funcs[SP_N][SM_N][SC][DP][CPU_NEON] = _op_blend_pt_c_dp_neon; - op_blend_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_NEON] = _op_blend_pt_caa_dp_neon; - - op_blend_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_pt_c_dpan_neon; - op_blend_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_pt_caa_dpan_neon; -} -#endif -/*-----*/ - -/* blend_rel color -> dst */ - -#ifdef BUILD_NEON -static void -_op_blend_rel_c_dp_neon(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha = 256 - (c >> 24); - UNROLL8_PLD_WHILE(d, l, e, - { - *d = MUL_SYM(*d >> 24, c) + MUL_256(alpha, *d); - d++; - }); -} - -#define _op_blend_rel_caa_dp_neon _op_blend_rel_c_dp_neon - -#define _op_blend_rel_c_dpan_neon _op_blend_c_dpan_neon -#define _op_blend_rel_caa_dpan_neon _op_blend_caa_dpan_neon - -static void -init_blend_rel_color_span_funcs_neon(void) -{ - op_blend_rel_span_funcs[SP_N][SM_N][SC][DP][CPU_NEON] = _op_blend_rel_c_dp_neon; - op_blend_rel_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_NEON] = _op_blend_rel_caa_dp_neon; - - op_blend_rel_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_rel_c_dpan_neon; - op_blend_rel_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_rel_caa_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_blend_rel_pt_c_dp_neon(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = *d >> 24; - *d = MUL_SYM(s, c) + MUL_256(256 - (c >> 24), *d); -} - -#define _op_blend_rel_pt_caa_dp_neon _op_blend_rel_pt_c_dp_neon - -#define _op_blend_rel_pt_c_dpan_neon _op_blend_pt_c_dpan_neon -#define _op_blend_rel_pt_caa_dpan_neon _op_blend_pt_caa_dpan_neon - -static void -init_blend_rel_color_pt_funcs_neon(void) -{ - op_blend_rel_pt_funcs[SP_N][SM_N][SC][DP][CPU_NEON] = _op_blend_rel_pt_c_dp_neon; - op_blend_rel_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_NEON] = _op_blend_rel_pt_caa_dp_neon; - - op_blend_rel_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_rel_pt_c_dpan_neon; - op_blend_rel_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_rel_pt_caa_dpan_neon; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_sse3.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_sse3.c deleted file mode 100644 index 1843265..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_sse3.c +++ /dev/null @@ -1,167 +0,0 @@ -/* blend color -> dst */ - -#ifdef BUILD_SSE3 - -static void -_op_blend_c_dp_sse3(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - - DATA32 a = 256 - (c >> 24); - - const __m128i c_packed = _mm_set_epi32(c, c, c, c); - const __m128i a_packed = _mm_set_epi32(a, a, a, a); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - *d = c + MUL_256(a, *d); - d++; l--; - }, - { /* A4OP */ - - __m128i d0 = _mm_load_si128((__m128i *)d); - - d0 = mul_256_sse3(a_packed, d0); - d0 = _mm_add_epi32(d0, c_packed); - - _mm_store_si128((__m128i *)d, d0); - - d += 4; l -= 4; - }, - { /* A8OP */ - - __m128i d0 = _mm_load_si128((__m128i *)d); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - d0 = mul_256_sse3(a_packed, d0); - d1 = mul_256_sse3(a_packed, d1); - - d0 = _mm_add_epi32(d0, c_packed); - d1 = _mm_add_epi32(d1, c_packed); - - _mm_store_si128((__m128i *)d, d0); - _mm_store_si128((__m128i *)(d+4), d1); - - d += 8; l -= 8; - }) -} - -#define _op_blend_caa_dp_sse3 _op_blend_c_dp_sse3 - -#define _op_blend_c_dpan_sse3 _op_blend_c_dp_sse3 -#define _op_blend_caa_dpan_sse3 _op_blend_c_dpan_sse3 - -static void -init_blend_color_span_funcs_sse3(void) -{ -// FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle) -// op_blend_span_funcs[SP_N][SM_N][SC][DP][CPU_SSE3] = _op_blend_c_dp_sse3; - op_blend_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_caa_dp_sse3; - -// FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle) -// op_blend_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_c_dpan_sse3; - op_blend_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_caa_dpan_sse3; -} - -#define _op_blend_pt_c_dp_sse3 NULL -#define _op_blend_pt_caa_dp_sse3 _op_blend_pt_c_dp_sse3 - -#define _op_blend_pt_c_dpan_sse3 _op_blend_pt_c_dp_sse3 -#define _op_blend_pt_caa_dpan_sse3 _op_blend_pt_c_dpan_sse3 - -#define _op_blend_pt_c_dpas_sse3 _op_blend_pt_c_dp_sse3 -#define _op_blend_pt_caa_dpas_sse3 _op_blend_pt_c_dp_sse3 - -static void -init_blend_color_pt_funcs_sse3(void) -{ - op_blend_pt_funcs[SP_N][SM_N][SC][DP][CPU_SSE3] = _op_blend_pt_c_dp_sse3; - op_blend_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_pt_caa_dp_sse3; - - op_blend_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_pt_c_dpan_sse3; - op_blend_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_pt_caa_dpan_sse3; -} - - -/*-----*/ - -/* blend_rel color -> dst */ - -static void -_op_blend_rel_c_dp_sse3(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - - int alpha = 256 - (c >> 24); - - const __m128i c_packed = _mm_set_epi32(c, c, c, c); - const __m128i alpha_packed = _mm_set_epi32(alpha, alpha, alpha, alpha); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - *d = MUL_SYM(*d >> 24, c) + MUL_256(alpha, *d); - d++; l--; - }, - { /* A4OP */ - - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i mul0 = mul_256_sse3(alpha_packed, d0); - __m128i sym0 = mul_sym_sse3(_mm_srli_epi32(d0, 24), c_packed); - - d0 = _mm_add_epi32(mul0, sym0); - - _mm_store_si128((__m128i *)d, d0); - - d += 4; l -= 4; - }, - { /* A8OP */ - - __m128i d0 = _mm_load_si128((__m128i *)d); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - __m128i mul0 = mul_256_sse3(alpha_packed, d0); - __m128i mul1 = mul_256_sse3(alpha_packed, d1); - - __m128i sym0 = mul_sym_sse3(_mm_srli_epi32(d0, 24), c_packed); - __m128i sym1 = mul_sym_sse3(_mm_srli_epi32(d1, 24), c_packed); - - d0 = _mm_add_epi32(mul0, sym0); - d1 = _mm_add_epi32(mul1, sym1); - - _mm_store_si128((__m128i *)d, d0); - _mm_store_si128((__m128i *)(d+4), d1); - - d += 8; l -= 8; - }) -} - -#define _op_blend_rel_caa_dp_sse3 _op_blend_rel_c_dp_sse3 -#define _op_blend_rel_c_dpan_sse3 _op_blend_c_dpan_sse3 -#define _op_blend_rel_caa_dpan_sse3 _op_blend_caa_dpan_sse3 - -static void -init_blend_rel_color_span_funcs_sse3(void) -{ - op_blend_rel_span_funcs[SP_N][SM_N][SC][DP][CPU_SSE3] = _op_blend_rel_c_dp_sse3; - op_blend_rel_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_rel_caa_dp_sse3; - - op_blend_rel_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_rel_c_dpan_sse3; - op_blend_rel_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_rel_caa_dpan_sse3; -} - -#define _op_blend_rel_pt_c_dp_sse3 NULL -#define _op_blend_rel_pt_caa_dp_sse3 _op_blend_rel_pt_c_dp_sse3 - -#define _op_blend_rel_pt_c_dpan_sse3 _op_blend_pt_c_dpan_sse3 -#define _op_blend_rel_pt_caa_dpan_sse3 _op_blend_pt_caa_dpan_sse3 - -static void -init_blend_rel_color_pt_funcs_sse3(void) -{ - op_blend_rel_pt_funcs[SP_N][SM_N][SC][DP][CPU_SSE3] = _op_blend_rel_pt_c_dp_sse3; - op_blend_rel_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_rel_pt_caa_dp_sse3; - - op_blend_rel_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_rel_pt_c_dpan_sse3; - op_blend_rel_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_rel_pt_caa_dpan_sse3; -} - -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_.c deleted file mode 100644 index 12a0a75..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_.c +++ /dev/null @@ -1,185 +0,0 @@ -/* blend mask x color -> dst */ - -#ifdef BUILD_C -static void -_op_blend_mas_c_dp(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha = 256 - (c >> 24); - UNROLL8_PLD_WHILE(d, l, e, - { - DATA32 a = *m; - switch(a) - { - case 0: - break; - case 255: - *d = c + MUL_256(alpha, *d); - break; - default: - { - DATA32 mc = MUL_SYM(a, c); - a = 256 - (mc >> 24); - *d = mc + MUL_256(a, *d); - } - break; - } - m++; d++; - }); -} - -static void -_op_blend_mas_can_dp(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - alpha = *m; - switch(alpha) - { - case 0: - break; - case 255: - *d = c; - break; - default: - alpha++; - *d = INTERP_256(alpha, c, *d); - break; - } - m++; d++; - }); -} - -#define _op_blend_mas_cn_dp _op_blend_mas_can_dp -#define _op_blend_mas_caa_dp _op_blend_mas_c_dp - -#define _op_blend_mas_c_dpan _op_blend_mas_c_dp -#define _op_blend_mas_cn_dpan _op_blend_mas_cn_dp -#define _op_blend_mas_can_dpan _op_blend_mas_can_dp -#define _op_blend_mas_caa_dpan _op_blend_mas_caa_dp - -static void -init_blend_mask_color_span_funcs_c(void) -{ - op_blend_span_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_blend_mas_c_dp; - op_blend_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_C] = _op_blend_mas_cn_dp; - op_blend_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_blend_mas_can_dp; - op_blend_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_blend_mas_caa_dp; - - op_blend_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_blend_mas_c_dpan; - op_blend_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_mas_cn_dpan; - op_blend_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_blend_mas_can_dpan; - op_blend_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_blend_mas_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_blend_pt_mas_c_dp(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = MUL_SYM(m, c); - m = 256 - (s >> 24); - *d = s + MUL_256(m, *d); -} - -static void -_op_blend_pt_mas_can_dp(DATA32 s __UNUSED__, DATA8 m, DATA32 c, DATA32 *d) { - *d = INTERP_256(m + 1, c, *d); -} - -#define _op_blend_pt_mas_cn_dp _op_blend_pt_mas_can_dp -#define _op_blend_pt_mas_caa_dp _op_blend_pt_mas_c_dp - -#define _op_blend_pt_mas_c_dpan _op_blend_pt_mas_c_dp -#define _op_blend_pt_mas_cn_dpan _op_blend_pt_mas_cn_dp -#define _op_blend_pt_mas_can_dpan _op_blend_pt_mas_can_dp -#define _op_blend_pt_mas_caa_dpan _op_blend_pt_mas_caa_dp - -static void -init_blend_mask_color_pt_funcs_c(void) -{ - op_blend_pt_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_blend_pt_mas_c_dp; - op_blend_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_C] = _op_blend_pt_mas_cn_dp; - op_blend_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_blend_pt_mas_can_dp; - op_blend_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_blend_pt_mas_caa_dp; - - op_blend_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_blend_pt_mas_c_dpan; - op_blend_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_pt_mas_cn_dpan; - op_blend_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_blend_pt_mas_can_dpan; - op_blend_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_blend_pt_mas_caa_dpan; -} -#endif - -/*-----*/ - -/* blend_rel mask x color --> dst */ - -#ifdef BUILD_C -static void -_op_blend_rel_mas_c_dp(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - DATA32 mc = MUL_SYM(*m, c); - alpha = 256 - (mc >> 24); - *d = MUL_SYM(*d >> 24, mc) + MUL_256(alpha, *d); - d++; - m++; - }); -} - -#define _op_blend_rel_mas_cn_dp _op_blend_rel_mas_c_dp -#define _op_blend_rel_mas_can_dp _op_blend_rel_mas_c_dp -#define _op_blend_rel_mas_caa_dp _op_blend_rel_mas_c_dp - -#define _op_blend_rel_mas_c_dpan _op_blend_mas_c_dpan -#define _op_blend_rel_mas_cn_dpan _op_blend_mas_cn_dpan -#define _op_blend_rel_mas_can_dpan _op_blend_mas_can_dpan -#define _op_blend_rel_mas_caa_dpan _op_blend_mas_caa_dpan - -static void -init_blend_rel_mask_color_span_funcs_c(void) -{ - op_blend_rel_span_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_blend_rel_mas_c_dp; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_C] = _op_blend_rel_mas_can_dp; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_blend_rel_mas_can_dp; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_blend_rel_mas_caa_dp; - - op_blend_rel_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_blend_rel_mas_c_dpan; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_rel_mas_cn_dpan; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_blend_rel_mas_can_dpan; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_blend_rel_mas_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_blend_rel_pt_mas_c_dp(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = MUL_SYM(m, c); - c = 256 - (s >> 24); - *d = MUL_SYM(*d >> 24, s) + MUL_256(c, *d); -} - -#define _op_blend_rel_pt_mas_cn_dp _op_blend_rel_pt_mas_c_dp -#define _op_blend_rel_pt_mas_can_dp _op_blend_rel_pt_mas_c_dp -#define _op_blend_rel_pt_mas_caa_dp _op_blend_rel_pt_mas_c_dp - -#define _op_blend_rel_pt_mas_c_dpan _op_blend_pt_mas_c_dpan -#define _op_blend_rel_pt_mas_cn_dpan _op_blend_pt_mas_cn_dpan -#define _op_blend_rel_pt_mas_can_dpan _op_blend_pt_mas_can_dpan -#define _op_blend_rel_pt_mas_caa_dpan _op_blend_pt_mas_caa_dpan - -static void -init_blend_rel_mask_color_pt_funcs_c(void) -{ - op_blend_rel_pt_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_blend_rel_pt_mas_c_dp; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_C] = _op_blend_rel_pt_mas_cn_dp; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_blend_rel_pt_mas_can_dp; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_blend_rel_pt_mas_caa_dp; - - op_blend_rel_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_blend_rel_pt_mas_c_dpan; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_rel_pt_mas_cn_dpan; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_blend_rel_pt_mas_can_dpan; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_blend_rel_pt_mas_caa_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_i386.c deleted file mode 100644 index f8fe02e..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_i386.c +++ /dev/null @@ -1,251 +0,0 @@ -/* blend mask x color -> dst */ - -#ifdef BUILD_MMX -static void -_op_blend_mas_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_256, mm6) - MOV_P2R(c, mm2, mm0) - c = 256 - (c >> 24); - MOV_A2R(c, mm4) - while (d < e) { - l = *m; - switch(l) - { - case 0: - break; - case 255: - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm4, mm1) - paddw_r2r(mm2, mm1); - MOV_R2P(mm1, *d, mm0) - break; - default: - l++; - MOV_A2R(l, mm3) - MUL4_256_R2R(mm2, mm3) - - MOV_RA2R(mm3, mm1) - movq_r2r(mm6, mm7); - psubw_r2r(mm1, mm7); - - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm7, mm1) - - paddw_r2r(mm3, mm1); - MOV_R2P(mm1, *d, mm0) - break; - } - m++; d++; - } -} - -static void -_op_blend_mas_can_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - MOV_A2R(ALPHA_255, mm5) - while (d < e) { - l = *m; - switch(l) - { - case 0: - break; - case 255: - *d = c; - break; - default: - l++; - MOV_A2R(l, mm3) - MOV_P2R(*d, mm1, mm0) - movq_r2r(mm2, mm4); - INTERP_256_R2R(mm3, mm4, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - break; - } - m++; d++; - } -} - -#define _op_blend_mas_cn_dp_mmx _op_blend_mas_can_dp_mmx -#define _op_blend_mas_caa_dp_mmx _op_blend_mas_c_dp_mmx - -#define _op_blend_mas_c_dpan_mmx _op_blend_mas_c_dp_mmx -#define _op_blend_mas_cn_dpan_mmx _op_blend_mas_cn_dp_mmx -#define _op_blend_mas_can_dpan_mmx _op_blend_mas_can_dp_mmx -#define _op_blend_mas_caa_dpan_mmx _op_blend_mas_caa_dp_mmx - -static void -init_blend_mask_color_span_funcs_mmx(void) -{ - op_blend_span_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_blend_mas_c_dp_mmx; - op_blend_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_blend_mas_cn_dp_mmx; - op_blend_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_blend_mas_can_dp_mmx; - op_blend_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_blend_mas_caa_dp_mmx; - - op_blend_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_blend_mas_c_dpan_mmx; - op_blend_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_mas_cn_dpan_mmx; - op_blend_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_blend_mas_can_dpan_mmx; - op_blend_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_blend_mas_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_blend_pt_mas_c_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = m + 1; - MOV_A2R(s, mm3) - MOV_A2R(ALPHA_256, mm6) - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - MUL4_256_R2R(mm2, mm3) - - MOV_RA2R(mm3, mm1) - psubw_r2r(mm1, mm6); - - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm6, mm1) - - paddw_r2r(mm3, mm1); - MOV_R2P(mm1, *d, mm0) -} - - -#define _op_blend_pt_mas_cn_dp_mmx _op_blend_pt_mas_c_dp_mmx -#define _op_blend_pt_mas_can_dp_mmx _op_blend_pt_mas_c_dp_mmx -#define _op_blend_pt_mas_caa_dp_mmx _op_blend_pt_mas_c_dp_mmx - -#define _op_blend_pt_mas_c_dpan_mmx _op_blend_pt_mas_c_dp_mmx -#define _op_blend_pt_mas_cn_dpan_mmx _op_blend_pt_mas_cn_dp_mmx -#define _op_blend_pt_mas_can_dpan_mmx _op_blend_pt_mas_can_dp_mmx -#define _op_blend_pt_mas_caa_dpan_mmx _op_blend_pt_mas_caa_dp_mmx - -static void -init_blend_mask_color_pt_funcs_mmx(void) -{ - op_blend_pt_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_blend_pt_mas_c_dp_mmx; - op_blend_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_blend_pt_mas_cn_dp_mmx; - op_blend_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_blend_pt_mas_can_dp_mmx; - op_blend_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_blend_pt_mas_caa_dp_mmx; - - op_blend_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_blend_pt_mas_c_dpan_mmx; - op_blend_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_pt_mas_cn_dpan_mmx; - op_blend_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_blend_pt_mas_can_dpan_mmx; - op_blend_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_blend_pt_mas_caa_dpan_mmx; -} -#endif - -/*-----*/ - -/* blend_rel mask x color -> dst */ - -#ifdef BUILD_MMX -static void -_op_blend_rel_mas_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_256, mm6) - MOV_A2R(ALPHA_255, mm5) - MOV_P2R(c, mm2, mm0) - while (d < e) { - l = *m; - switch(l) - { - case 0: - break; - default: - l++; - MOV_A2R(l, mm3) - MUL4_256_R2R(mm2, mm3) - - MOV_RA2R(mm3, mm1) - movq_r2r(mm6, mm7); - psubw_r2r(mm1, mm7); - - MOV_P2R(*d, mm1, mm0) - MOV_RA2R(mm1, mm4) - MUL4_256_R2R(mm7, mm1) - - MUL4_SYM_R2R(mm4, mm3, mm5) - - paddw_r2r(mm3, mm1); - MOV_R2P(mm1, *d, mm0) - break; - } - m++; d++; - } -} - -#define _op_blend_rel_mas_cn_dp_mmx _op_blend_rel_mas_c_dp_mmx -#define _op_blend_rel_mas_can_dp_mmx _op_blend_rel_mas_c_dp_mmx -#define _op_blend_rel_mas_caa_dp_mmx _op_blend_rel_mas_c_dp_mmx - -#define _op_blend_rel_mas_c_dpan_mmx _op_blend_mas_c_dpan_mmx -#define _op_blend_rel_mas_cn_dpan_mmx _op_blend_mas_cn_dpan_mmx -#define _op_blend_rel_mas_can_dpan_mmx _op_blend_mas_can_dpan_mmx -#define _op_blend_rel_mas_caa_dpan_mmx _op_blend_mas_caa_dpan_mmx - -static void -init_blend_rel_mask_color_span_funcs_mmx(void) -{ - op_blend_rel_span_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_blend_rel_mas_c_dp_mmx; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_blend_rel_mas_cn_dp_mmx; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_blend_rel_mas_can_dp_mmx; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_blend_rel_mas_caa_dp_mmx; - - op_blend_rel_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_blend_rel_mas_c_dpan_mmx; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_mas_cn_dpan_mmx; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_blend_rel_mas_can_dpan_mmx; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_blend_rel_mas_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_blend_rel_pt_mas_c_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_256, mm6) - MOV_A2R(ALPHA_255, mm5) - s = m + 1; - MOV_A2R(s, mm3) - MOV_P2R(c, mm2, mm0) - MUL4_256_R2R(mm2, mm3) - - MOV_RA2R(mm3, mm1) - psubw_r2r(mm1, mm6); - - MOV_P2R(*d, mm1, mm0) - MOV_RA2R(mm1, mm4) - MUL4_256_R2R(mm6, mm1) - - MUL4_SYM_R2R(mm4, mm3, mm5) - - paddw_r2r(mm3, mm1); - MOV_R2P(mm1, *d, mm0) -} - -#define _op_blend_rel_pt_mas_cn_dp_mmx _op_blend_rel_pt_mas_c_dp_mmx -#define _op_blend_rel_pt_mas_can_dp_mmx _op_blend_rel_pt_mas_c_dp_mmx -#define _op_blend_rel_pt_mas_caa_dp_mmx _op_blend_rel_pt_mas_c_dp_mmx - -#define _op_blend_rel_pt_mas_c_dpan_mmx _op_blend_pt_mas_c_dpan_mmx -#define _op_blend_rel_pt_mas_cn_dpan_mmx _op_blend_pt_mas_cn_dpan_mmx -#define _op_blend_rel_pt_mas_can_dpan_mmx _op_blend_pt_mas_can_dpan_mmx -#define _op_blend_rel_pt_mas_caa_dpan_mmx _op_blend_pt_mas_caa_dpan_mmx - -static void -init_blend_rel_mask_color_pt_funcs_mmx(void) -{ - op_blend_rel_pt_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_blend_rel_pt_mas_c_dp_mmx; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_blend_rel_pt_mas_cn_dp_mmx; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_blend_rel_pt_mas_can_dp_mmx; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_blend_rel_pt_mas_caa_dp_mmx; - - op_blend_rel_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_blend_rel_pt_mas_c_dpan_mmx; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_pt_mas_cn_dpan_mmx; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_blend_rel_pt_mas_can_dpan_mmx; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_blend_rel_pt_mas_caa_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_neon.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_neon.c deleted file mode 100644 index f5eb480..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_neon.c +++ /dev/null @@ -1,562 +0,0 @@ -#define NEONDEBUG 0 - - -#if NEONDEBUG -#define DEBUG_FNCOUNT(x) \ - do { \ - static int _foo = 0; \ - if (_foo++%10000 ==0) \ - printf("%s %+d %s: %d (%s)\n",__FILE__,__LINE__,__FUNCTION__,\ - _foo, x " optimised");\ - } while (0) -#else -#define DEBUG_FNCOUNT(x) ((void)x) -#endif - - -/* blend mask x color -> dst */ - -#ifdef BUILD_NEON -static void -_op_blend_mas_c_dp_neon(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - - DEBUG_FNCOUNT(""); - -#define AP "blend_mas_c_dp_" - asm volatile ( - ".fpu neon \n\t" - " vdup.i32 q15, %[c] \n\t" - " vmov.i8 q14, #1 \n\t" - - // If aligned already - straight to quads - " andS %[tmp], %[d],$0xf \n\t" - " beq "AP"quadloops \n\t" - - " andS %[tmp], %[d],$0x4 \n\t" - " beq "AP"dualloop \n\t" - - AP"singleloop: \n\t" - " vld1.8 d0[0], [%[m]]! \n\t" - " vld1.32 d4[0], [%[d]] \n\t" - " vdup.u8 d0, d0[0] \n\t" - " vmull.u8 q4, d0, d30 \n\t" - " vqrshrn.u16 d12, q4, #8 \n\t" - " vmvn.u16 d14, d12 \n\t" - " vshr.u32 d16, d14, #24 \n\t" - " vmul.u32 d16, d16, d28 \n\t" - " vmull.u8 q7, d16, d4 \n\t" - " vqrshrn.u16 d0, q7, #8 \n\t" - " vqadd.u8 d0, d0, d12 \n\t" - " vst1.32 d0[0], [%[d]]! \n\t" - - // Can we go the fast path? - " andS %[tmp], %[d],$0xf \n\t" - " beq "AP"quadloops \n\t" - - AP"dualloop: \n\t" - " sub %[tmp], %[e], %[d] \n\t" - " cmp %[tmp], #16 \n\t" - " blt "AP"loopout \n\t" - - " vld1.16 d0[0], [%[m]]! \n\t" - " vldm %[d], {d4} \n\t" - " vmovl.u8 q0, d0 \n\t" - " vmovl.u8 q0, d0 \n\t" - " vmul.u32 q0, q14 \n\t" - " vmull.u8 q4, d0, d30 \n\t" - " vqrshrn.u16 d12, q4, #8 \n\t" - " vmvn.u16 d14, d12 \n\t" - " vshr.u32 d16, d14, #24 \n\t" - " vmul.u32 d16, d16, d28 \n\t" - " vmull.u8 q7, d16, d4 \n\t" - " vqrshrn.u16 d0, q7, #8 \n\t" - " vqadd.u8 q0, q0, q6 \n\t" - " vstm %[d]!, {d0} \n\t" - - AP"quadloops: \n\t" - " sub %[tmp], %[e], %[d] \n\t" - " cmp %[tmp], #16 \n\t" - " blt "AP"loopout \n\t" - - - " sub %[tmp], %[e], #15 \n\t" - - " sub %[d], #16 \n\t" - AP"fastloop:" - " add %[d], #16 \n\t" - " cmp %[tmp], %[d] \n\t" - " ble "AP"loopout \n\t" - AP"quadloopint: \n\t" - " ldr %[x], [%[m]] \n\t" - " add %[m], #4 \n\t" - " cmp %[x], #0 \n\t" - " beq "AP"fastloop \n\t" - " vmov.32 d0[0], %[x] \n\t" - " vldm %[d], {d4,d5} \n\t" - - // Expand M: Fixme: Can we do this quicker? - " vmovl.u8 q0, d0 \n\t" - " vmovl.u8 q0, d0 \n\t" - " vmul.u32 q0, q14 \n\t" - - // Multiply a * c - " vmull.u8 q4, d0, d30 \n\t" - " vmull.u8 q5, d1, d31 \n\t" - - // Shorten - " vqrshrn.u16 d12, q4, #8 \n\t" - " vqrshrn.u16 d13, q5, #8 \n\t" - - // extract negated alpha - " vmvn.u16 q7, q6 \n\t" - " vshr.u32 q8, q7, #24 \n\t" - " vmul.u32 q8, q8, q14 \n\t" - - // Multiply - " vmull.u8 q7, d16, d4 \n\t" - " vmull.u8 q8, d17, d5 \n\t" - - " vqrshrn.u16 d0, q7, #8 \n\t" - " vqrshrn.u16 d1, q8, #8 \n\t" - - // Add - " vqadd.u8 q0, q0, q6 \n\t" - - " vstm %[d]!, {d0,d1} \n\t" - - " cmp %[tmp], %[d] \n\t" - " bhi "AP"quadloopint \n\t" - - AP"loopout: \n\t" -#if NEONDEBUG - "cmp %[d], %[e] \n\t" - "ble "AP"foo \n\t" - "cmp %[tmp], %[m] \n\t" - "sub %[x], %[x] \n\t" - "vst1.32 d0[0], [%[x]] \n\t" - AP"foo: \n\t" -#endif - - " cmp %[d], %[e] \n\t" - " beq "AP"done \n\t" - " sub %[tmp],%[e], %[d] \n\t" - " cmp %[tmp],#4 \n\t" - " beq "AP"singleout \n\t" - - AP "dualloop2: \n\t" - "sub %[tmp],%[e],$0x8 \n\t" - " vld1.16 d0[0], [%[m]]! \n\t" - " vldm %[d], {d4} \n\t" - " vmovl.u8 q0, d0 \n\t" - " vmovl.u8 q0, d0 \n\t" - " vmul.u32 q0, q14 \n\t" - " vmull.u8 q4, d0, d30 \n\t" - " vqrshrn.u16 d12, q4, #8 \n\t" - " vmvn.u16 d14, d12 \n\t" - " vshr.u32 d16, d14, #24 \n\t" - " vmul.u32 d16, d16, d28 \n\t" - " vmull.u8 q7, d16, d4 \n\t" - " vqrshrn.u16 d0, q7, #8 \n\t" - " vqadd.u8 q0, q0, q6 \n\t" - " vstm %[d]!, {d0} \n\t" - - " cmp %[e], %[d] \n\t" - " beq "AP"done \n\t" - - AP"singleout: \n\t" - " vld1.8 d0[0], [%[m]]! \n\t" - " vld1.32 d4[0], [%[d]] \n\t" - " vdup.u8 d0, d0[0] \n\t" - " vmull.u8 q4, d0, d30 \n\t" - " vqrshrn.u16 d12, q4, #8 \n\t" - " vmvn.u16 d14, d12 \n\t" - " vshr.u32 d16, d14, #24 \n\t" - " vmul.u32 d16, d16, d28 \n\t" - " vmull.u8 q7, d16, d4 \n\t" - " vqrshrn.u16 d0, q7, #8 \n\t" - " vqadd.u8 q0, q0, q6 \n\t" - " vst1.32 d0[0], [%[d]]! \n\t" - - AP"done: \n\t" -#if NEONDEBUG - "cmp %[d], %[e] \n\t" - "beq "AP"reallydone \n\t" - "sub %[tmp], %[tmp] \n\t" - "vst1.32 d0[0], [%[tmp]] \n\t" - AP"reallydone:" -#endif - : // Out - : [e] "r" (d + l), [d] "r" (d), [c] "r" (c), - [tmp] "r" (7), [m] "r" (m), [x] "r" (0) - : "q0", "q1", "q2","q3", "q4","q5","q6", "q7","q8","q14","q15", - "memory" // clobbered - ); -#undef AP -} -#endif - -#ifdef BUILD_NEON -static void -_op_blend_mas_can_dp_neon(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e,*tmp; - int alpha; - - DEBUG_FNCOUNT(""); - -#define AP "_blend_mas_can_dp_neon_" - asm volatile ( - ".fpu neon \n\t" - "vdup.u32 q9, %[c] \n\t" - "vmov.i8 q15, #1 \n\t" - "vmov.i8 q14, #0 \n\t" - - // Make C 16 bit (C in q3/q2) - "vmovl.u8 q3, d19 \n\t" - "vmovl.u8 q2, d18 \n\t" - - // Which loop to start - " andS %[tmp], %[d],$0xf \n\t" - " beq "AP"quadloop \n\t" - - " andS %[tmp], %[d], #4 \n\t" - " beq "AP"dualstart \n\t" - - - AP"singleloop: \n\t" - " vld1.8 d0[0], [%[m]]! \n\t" - " vld1.32 d8[0], [%[d]] \n\t" - " vdup.u8 d0, d0[0] \n\t" - " vshr.u8 d0, d0, #1 \n\t" - " vmovl.u8 q0, d0 \n\t" - " vmovl.u8 q4, d8 \n\t" - " vsub.s16 q6, q2, q4 \n\t" - " vmul.s16 q6, q0 \n\t" - " vshr.s16 q6, #7 \n\t" - " vadd.s16 q6, q4 \n\t" - " vqmovun.s16 d2, q6 \n\t" - " vst1.32 d2[0], [%[d]]! \n\t" - - " andS %[tmp], %[d], $0xf \n\t" - " beq "AP"quadloop \n\t" - - AP"dualstart: \n\t" - " sub %[tmp], %[e], %[d] \n\t" - " cmp %[tmp], #16 \n\t" - " blt "AP"loopout \n\t" - - AP"dualloop: \n\t" - " vld1.16 d0[0], [%[m]]! \n\t" - " vldm %[d], {d8} \n\t" - " vmovl.u8 q0, d0 \n\t" - " vmovl.u8 q0, d0 \n\t" - " vmul.u32 d0, d0, d30 \n\t" - " vshr.u8 d0, d0, #1 \n\t" - " vmovl.u8 q0, d0 \n\t" - " vmovl.u8 q4, d8 \n\t" - " vsub.s16 q6, q2, q4 \n\t" - " vmul.s16 q6, q0 \n\t" - " vshr.s16 q6, #7 \n\t" - " vadd.s16 q6, q4 \n\t" - " vqmovun.s16 d2, q6 \n\t" - " vstm %[d]!, {d2} \n\t" - - AP"quadloop: \n\t" - " sub %[tmp], %[e], %[d] \n\t" - " cmp %[tmp], #16 \n\t" - " blt "AP"loopout \n\t" - " sub %[tmp], %[e], #15 \n\t" - - " sub %[d], #16 \n\t" - AP"fastloop: \n\t" - " add %[d], #16 \n\t" - " cmp %[tmp], %[d] \n\t" - " blt "AP"loopout \n\t" - - AP"quadloopint: \n\t" - // Load the mask: 4 bytes: It has d0/d1 - " ldr %[x], [%[m]] \n\t" - " add %[m], #4 \n\t" - - // Check for shortcuts - " cmp %[x], #0 \n\t" - " beq "AP"fastloop \n\t" - - " cmp %[x], $0xffffffff \n\t" - " beq "AP"quadstore \n\t" - - " vmov.32 d0[0], %[x] \n\t" - // Load d into d8/d9 q4 - " vldm %[d], {d8,d9} \n\t" - - // Get the alpha channel ready (m) - " vmovl.u8 q0, d0 \n\t" - " vmovl.u8 q0, d0 \n\t" - " vmul.u32 q0, q0,q15 \n\t" - // Lop a bit off to prevent overflow - " vshr.u8 q0, q0, #1 \n\t" - - // Now make it 16 bit - " vmovl.u8 q1, d1 \n\t" - " vmovl.u8 q0, d0 \n\t" - - // 16 bit 'd' - " vmovl.u8 q5, d9 \n\t" - " vmovl.u8 q4, d8 \n\t" - - // Diff 'd' & 'c' - " vsub.s16 q7, q3, q5 \n\t" - " vsub.s16 q6, q2, q4 \n\t" - - " vmul.s16 q7, q1 \n\t" - " vmul.s16 q6, q0 \n\t" - - // Shift results a bit - " vshr.s16 q7, #7 \n\t" - " vshr.s16 q6, #7 \n\t" - - // Add 'd' - " vadd.s16 q7, q5 \n\t" - " vadd.s16 q6, q4 \n\t" - - // Make sure none are negative - " vqmovun.s16 d9, q7 \n\t" - " vqmovun.s16 d8, q6 \n\t" - - " vstm %[d]!, {d8,d9} \n\t" - - " cmp %[tmp], %[d] \n\t" - " bhi "AP"quadloopint \n\t" - " b "AP"loopout \n\t" - - AP"quadstore: \n\t" - " vstm %[d]!, {d18,d19} \n\t" - " cmp %[tmp], %[d] \n\t" - " bhi "AP"quadloopint \n\t" - - AP"loopout: \n\t" -#if NEONDEBUG - "cmp %[d], %[e] \n\t" - "ble "AP"foo \n\t" - "sub %[tmp], %[tmp] \n\t" - "vst1.32 d0[0], [%[tmp]] \n\t" - AP"foo: \n\t" -#endif - - " cmp %[e], %[d] \n\t" - " beq "AP"done \n\t" - - " sub %[tmp],%[e], %[d] \n\t" - " cmp %[tmp],#8 \n\t" - - " blt "AP"onebyte \n\t" - - // Load the mask: 2 bytes: It has d0 - " vld1.16 d0[0], [%[m]]! \n\t" - - // Load d into d8/d9 q4 - " vldm %[d], {d8} \n\t" - - // Get the alpha channel ready (m) - " vmovl.u8 q0, d0 \n\t" - " vmovl.u8 q0, d0 \n\t" - " vmul.u32 d0, d0, d30 \n\t" - // Lop a bit off to prevent overflow - " vshr.u8 d0, d0, #1 \n\t" - - // Now make it 16 bit - " vmovl.u8 q0, d0 \n\t" - - // 16 bit 'd' - " vmovl.u8 q4, d8 \n\t" - - // Diff 'd' & 'c' - " vsub.s16 q6, q2, q4 \n\t" - - " vmul.s16 q6, q0 \n\t" - - // Shift results a bit - " vshr.s16 q6, #7 \n\t" - - // Add 'd' - "vadd.s16 q6, q4 \n\t" - - // Make sure none are negative - "vqmovun.s16 d2, q6 \n\t" - - "vstm %[d]!, {d2} \n\t" - - "cmp %[e], %[d] \n\t" - "beq "AP"done \n\t" - - AP"onebyte: \n\t" - "vld1.8 d0[0], [%[m]]! \n\t" - "vld1.32 d8[0], [%[d]] \n\t" - "vdup.u8 d0, d0[0] \n\t" - "vshr.u8 d0, d0, #1 \n\t" - "vmovl.u8 q0, d0 \n\t" - "vmovl.u8 q4, d8 \n\t" - "vsub.s16 q6, q2, q4 \n\t" - "vmul.s16 q6, q0 \n\t" - "vshr.s16 q6, #7 \n\t" - "vadd.s16 q6, q4 \n\t" - "vqmovun.s16 d2, q6 \n\t" - "vst1.32 d2[0], [%[d]]! \n\t" - - - AP"done: \n\t" -#if NEONDEBUG - "cmp %[d], %[e] \n\t" - "beq "AP"reallydone \n\t" - "sub %[m], %[m] \n\t" - "vst1.32 d0[0], [%[m]] \n\t" - AP"reallydone:" -#endif - - - : // output regs - // Input - : [e] "r" (e = d + l), [d] "r" (d), [c] "r" (c), - [m] "r" (m), [tmp] "r" (7), [x] "r" (33) - : "q0", "q1", "q2","q3", "q4","q5","q6", "q7","q9","q14","q15", - "memory" // clobbered - - ); -#undef AP -} -#endif - -#ifdef BUILD_NEON -#define _op_blend_mas_cn_dp_neon _op_blend_mas_can_dp_neon -#define _op_blend_mas_caa_dp_neon _op_blend_mas_c_dp_neon - -#define _op_blend_mas_c_dpan_neon _op_blend_mas_c_dp_neon -#define _op_blend_mas_cn_dpan_neon _op_blend_mas_cn_dp_neon -#define _op_blend_mas_can_dpan_neon _op_blend_mas_can_dp_neon -#define _op_blend_mas_caa_dpan_neon _op_blend_mas_caa_dp_neon - -static void -init_blend_mask_color_span_funcs_neon(void) -{ - op_blend_span_funcs[SP_N][SM_AS][SC][DP][CPU_NEON] = _op_blend_mas_c_dp_neon; - op_blend_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_NEON] = _op_blend_mas_cn_dp_neon; - op_blend_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_NEON] = _op_blend_mas_can_dp_neon; - op_blend_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_NEON] = _op_blend_mas_caa_dp_neon; - - op_blend_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_NEON] = _op_blend_mas_c_dpan_neon; - op_blend_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_mas_cn_dpan_neon; - op_blend_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_NEON] = _op_blend_mas_can_dpan_neon; - op_blend_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_NEON] = _op_blend_mas_caa_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_blend_pt_mas_c_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = MUL_SYM(m, c); - c = 256 - (s >> 24); - *d = MUL_SYM(*d >> 24, s) + MUL_256(c, *d); -} - - -#define _op_blend_pt_mas_cn_dp_neon _op_blend_pt_mas_c_dp_neon -#define _op_blend_pt_mas_can_dp_neon _op_blend_pt_mas_c_dp_neon -#define _op_blend_pt_mas_caa_dp_neon _op_blend_pt_mas_c_dp_neon - -#define _op_blend_pt_mas_c_dpan_neon _op_blend_pt_mas_c_dp_neon -#define _op_blend_pt_mas_cn_dpan_neon _op_blend_pt_mas_cn_dp_neon -#define _op_blend_pt_mas_can_dpan_neon _op_blend_pt_mas_can_dp_neon -#define _op_blend_pt_mas_caa_dpan_neon _op_blend_pt_mas_caa_dp_neon - -static void -init_blend_mask_color_pt_funcs_neon(void) -{ - op_blend_pt_funcs[SP_N][SM_AS][SC][DP][CPU_NEON] = _op_blend_pt_mas_c_dp_neon; - op_blend_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_NEON] = _op_blend_pt_mas_cn_dp_neon; - op_blend_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_NEON] = _op_blend_pt_mas_can_dp_neon; - op_blend_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_NEON] = _op_blend_pt_mas_caa_dp_neon; - - op_blend_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_NEON] = _op_blend_pt_mas_c_dpan_neon; - op_blend_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_pt_mas_cn_dpan_neon; - op_blend_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_NEON] = _op_blend_pt_mas_can_dpan_neon; - op_blend_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_NEON] = _op_blend_pt_mas_caa_dpan_neon; -} -#endif - -/*-----*/ - -/* blend_rel mask x color -> dst */ - -#ifdef BUILD_NEON -static void -_op_blend_rel_mas_c_dp_neon(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha; - - DEBUG_FNCOUNT("not"); - - UNROLL8_PLD_WHILE(d, l, e, - { - DATA32 mc = MUL_SYM(*m, c); - alpha = 256 - (mc >> 24); - *d = MUL_SYM(*d >> 24, mc) + MUL_256(alpha, *d); - d++; - m++; - }); -} - -#define _op_blend_rel_mas_cn_dp_neon _op_blend_rel_mas_c_dp_neon -#define _op_blend_rel_mas_can_dp_neon _op_blend_rel_mas_c_dp_neon -#define _op_blend_rel_mas_caa_dp_neon _op_blend_rel_mas_c_dp_neon - -#define _op_blend_rel_mas_c_dpan_neon _op_blend_mas_c_dpan_neon -#define _op_blend_rel_mas_cn_dpan_neon _op_blend_mas_cn_dpan_neon -#define _op_blend_rel_mas_can_dpan_neon _op_blend_mas_can_dpan_neon -#define _op_blend_rel_mas_caa_dpan_neon _op_blend_mas_caa_dpan_neon - -static void -init_blend_rel_mask_color_span_funcs_neon(void) -{ - op_blend_rel_span_funcs[SP_N][SM_AS][SC][DP][CPU_NEON] = _op_blend_rel_mas_c_dp_neon; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_NEON] = _op_blend_rel_mas_cn_dp_neon; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_NEON] = _op_blend_rel_mas_can_dp_neon; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_NEON] = _op_blend_rel_mas_caa_dp_neon; - - op_blend_rel_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_NEON] = _op_blend_rel_mas_c_dpan_neon; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_mas_cn_dpan_neon; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_NEON] = _op_blend_rel_mas_can_dpan_neon; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_NEON] = _op_blend_rel_mas_caa_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_blend_rel_pt_mas_c_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = MUL_SYM(m, c); - c = 256 - (s >> 24); - *d = MUL_SYM(*d >> 24, s) + MUL_256(c, *d); -} - -#define _op_blend_rel_pt_mas_cn_dp_neon _op_blend_rel_pt_mas_c_dp_neon -#define _op_blend_rel_pt_mas_can_dp_neon _op_blend_rel_pt_mas_c_dp_neon -#define _op_blend_rel_pt_mas_caa_dp_neon _op_blend_rel_pt_mas_c_dp_neon - -#define _op_blend_rel_pt_mas_c_dpan_neon _op_blend_pt_mas_c_dpan_neon -#define _op_blend_rel_pt_mas_cn_dpan_neon _op_blend_pt_mas_cn_dpan_neon -#define _op_blend_rel_pt_mas_can_dpan_neon _op_blend_pt_mas_can_dpan_neon -#define _op_blend_rel_pt_mas_caa_dpan_neon _op_blend_pt_mas_caa_dpan_neon - -static void -init_blend_rel_mask_color_pt_funcs_neon(void) -{ - op_blend_rel_pt_funcs[SP_N][SM_AS][SC][DP][CPU_NEON] = _op_blend_rel_pt_mas_c_dp_neon; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_NEON] = _op_blend_rel_pt_mas_cn_dp_neon; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_NEON] = _op_blend_rel_pt_mas_can_dp_neon; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_NEON] = _op_blend_rel_pt_mas_caa_dp_neon; - - op_blend_rel_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_NEON] = _op_blend_rel_pt_mas_c_dpan_neon; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_pt_mas_cn_dpan_neon; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_NEON] = _op_blend_rel_pt_mas_can_dpan_neon; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_NEON] = _op_blend_rel_pt_mas_caa_dpan_neon; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_sse3.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_sse3.c deleted file mode 100644 index 5883d15..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_sse3.c +++ /dev/null @@ -1,321 +0,0 @@ -/* blend mask x color -> dst */ - -#ifdef BUILD_SSE3 - -static void -_op_blend_mas_c_dp_sse3(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - - const __m128i c_packed = _mm_set_epi32(c, c, c, c); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - DATA32 a = *m; - DATA32 mc = MUL_SYM(a, c); - a = 256 - (mc >> 24); - *d = mc + MUL_256(a, *d); - m++; d++; l--; - }, - { /* A4OP */ - - if ((m[3] | m[2] | m[1] | m[0]) == 0) { - m += 4; d += 4; l -= 4; - continue; - } - - __m128i m0 = _mm_set_epi32(m[3], m[2], m[1], m[0]); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i mc0 = mul_sym_sse3(m0, c_packed); - __m128i a0 = sub4_alpha_sse3(mc0); - __m128i mul0 = mul_256_sse3(a0, d0); - - mul0 = _mm_add_epi32(mul0, mc0); - - _mm_store_si128((__m128i *)d, mul0); - - m += 4; d += 4; l -= 4; - }, - { /* A8OP */ - - if((m[7] | m[6] | m[5] | m[4] | m[3] | m[2] | m[1] | m[0]) == 0) { - m += 8; d += 8; l -= 8; - continue; - } - - __m128i m0 = _mm_set_epi32(m[3], m[2], m[1], m[0]); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i m1 = _mm_set_epi32(m[7], m[6], m[5], m[4]); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - __m128i mc0 = mul_sym_sse3(m0, c_packed); - __m128i a0 = sub4_alpha_sse3(mc0); - __m128i mul0 = mul_256_sse3(a0, d0); - - mul0 = _mm_add_epi32(mc0, mul0); - - __m128i mc1 = mul_sym_sse3(m1, c_packed); - __m128i a1 = sub4_alpha_sse3(mc1); - __m128i mul1 = mul_256_sse3(a1, d1); - - mul1 = _mm_add_epi32(mc1, mul1); - - _mm_store_si128((__m128i *)d, mul0); - _mm_store_si128((__m128i *)(d+4), mul1); - - m += 8; d += 8; l -= 8; - }) -} - -static void -_op_blend_mas_can_dp_sse3(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - - DATA32 alpha; - - const __m128i one = _mm_set_epi32(1, 1, 1, 1); - const __m128i c_packed = _mm_set_epi32(c, c, c, c); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - alpha = *m; - switch(alpha) - { - case 0: - break; - case 255: - *d = c; - break; - default: - alpha++; - *d = INTERP_256(alpha, c, *d); - break; - } - m++; d++; l--; - }, - { /* A4OP */ - - if ((m[3] | m[2] | m[1] | m[0]) == 0) { - m += 4; d += 4; l -= 4; - continue; - } - - __m128i m0 = _mm_set_epi32(m[3], m[2], m[1], m[0]); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i zm0 = _mm_cmpeq_epi32(m0, _mm_setzero_si128()); - - m0 = _mm_add_epi32(one, m0); - - __m128i r0 = interp4_256_sse3(m0, c_packed, d0); - - r0 = _mm_and_si128(~zm0, r0); - d0 = _mm_and_si128(zm0, d0); - - d0 = _mm_add_epi32(r0, d0); - - _mm_store_si128((__m128i *)d, d0); - - m += 4; d += 4; l -= 4; - }, - { /* A8OP */ - - if ((m[7] | m[6] | m[5] | m[4] | m[3] | m[2] | m[1] | m[0]) == 0) { - m += 8; d += 8; l -= 8; - continue; - } - - __m128i m0 = _mm_set_epi32(m[3], m[2], m[1], m[0]); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i m1 = _mm_set_epi32(m[7], m[6], m[5], m[4]); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - __m128i zm0 = _mm_cmpeq_epi32(m0, _mm_setzero_si128()); - __m128i zm1 = _mm_cmpeq_epi32(m1, _mm_setzero_si128()); - - m0 = _mm_add_epi32(one, m0); - m1 = _mm_add_epi32(one, m1); - - __m128i r0 = interp4_256_sse3(m0, c_packed, d0); - __m128i r1 = interp4_256_sse3(m1, c_packed, d1); - - r0 = _mm_and_si128(~zm0, r0); - d0 = _mm_and_si128(zm0, d0); - - r1 = _mm_and_si128(~zm1, r1); - d1 = _mm_and_si128(zm1, d1); - - d0 = _mm_add_epi32(d0, r0); - d1 = _mm_add_epi32(d1, r1); - - _mm_store_si128((__m128i *)d, d0); - _mm_store_si128((__m128i *)(d+4), d1); - - m += 8; d += 8; l -= 8; - }) -} - -#define _op_blend_mas_cn_dp_sse3 _op_blend_mas_can_dp_sse3 -#define _op_blend_mas_caa_dp_sse3 _op_blend_mas_c_dp_sse3 - -#define _op_blend_mas_c_dpan_sse3 _op_blend_mas_c_dp_sse3 -#define _op_blend_mas_cn_dpan_sse3 _op_blend_mas_cn_dp_sse3 -#define _op_blend_mas_can_dpan_sse3 _op_blend_mas_can_dp_sse3 -#define _op_blend_mas_caa_dpan_sse3 _op_blend_mas_caa_dp_sse3 - -static void -init_blend_mask_color_span_funcs_sse3(void) -{ -// FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle) -// op_blend_span_funcs[SP_N][SM_AS][SC][DP][CPU_SSE3] = _op_blend_mas_c_dp_sse3; - op_blend_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_mas_cn_dp_sse3; - op_blend_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_SSE3] = _op_blend_mas_can_dp_sse3; - op_blend_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_SSE3] = _op_blend_mas_caa_dp_sse3; - -// FIXME: BUGGY BUGGY Core i5 2500 (64bit), gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text) -// op_blend_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_SSE3] = _op_blend_mas_c_dpan_sse3; - op_blend_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_mas_cn_dpan_sse3; - op_blend_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_SSE3] = _op_blend_mas_can_dpan_sse3; - op_blend_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_SSE3] = _op_blend_mas_caa_dpan_sse3; -} - -#define _op_blend_pt_mas_c_dp_sse3 NULL -#define _op_blend_pt_mas_can_dp_sse3 NULL - -#define _op_blend_pt_mas_cn_dp_sse3 _op_blend_pt_mas_can_dp_sse3 -#define _op_blend_pt_mas_caa_dp_sse3 _op_blend_pt_mas_c_dp_sse3 - -#define _op_blend_pt_mas_c_dpan_sse3 _op_blend_pt_mas_c_dp_sse3 -#define _op_blend_pt_mas_cn_dpan_sse3 _op_blend_pt_mas_cn_dp_sse3 -#define _op_blend_pt_mas_can_dpan_sse3 _op_blend_pt_mas_can_dp_sse3 -#define _op_blend_pt_mas_caa_dpan_sse3 _op_blend_pt_mas_caa_dp_sse3 - -static void -init_blend_mask_color_pt_funcs_sse3(void) -{ - op_blend_pt_funcs[SP_N][SM_AS][SC][DP][CPU_SSE3] = _op_blend_pt_mas_c_dp_sse3; - op_blend_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_pt_mas_cn_dp_sse3; - op_blend_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_SSE3] = _op_blend_pt_mas_can_dp_sse3; - op_blend_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_SSE3] = _op_blend_pt_mas_caa_dp_sse3; - - op_blend_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_SSE3] = _op_blend_pt_mas_c_dpan_sse3; - op_blend_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_pt_mas_cn_dpan_sse3; - op_blend_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_SSE3] = _op_blend_pt_mas_can_dpan_sse3; - op_blend_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_SSE3] = _op_blend_pt_mas_caa_dpan_sse3; -} - -/*-----*/ - -/* blend_rel mask x color --> dst */ - -static void -_op_blend_rel_mas_c_dp_sse3(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - - const __m128i c_packed = _mm_set_epi32(c, c, c, c); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - DATA32 mc = MUL_SYM(*m, c); - int alpha = 256 - (mc >> 24); - *d = MUL_SYM(*d >> 24, mc) + MUL_256(alpha, *d); - d++; m++; l--; - }, - { /* A4OP */ - - __m128i m0 = _mm_set_epi32(m[3], m[2], m[1], m[0]); - __m128i d0 = _mm_load_si128((__m128i *) d); - - __m128i mc0 = mul_sym_sse3(m0, c_packed); - __m128i a0 = sub4_alpha_sse3(mc0); - - __m128i d0_sym = mul_sym_sse3(_mm_srli_epi32(d0, 24), mc0); - d0 = mul_256_sse3(a0, d0); - - d0 = _mm_add_epi32(d0, d0_sym); - - _mm_store_si128((__m128i *)d, d0); - - d += 4; m += 4; l -= 4; - }, - { /* A8OP */ - - __m128i m0 = _mm_set_epi32(m[3], m[2], m[1], m[0]); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i m1 = _mm_set_epi32(m[7], m[6], m[5], m[4]); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - __m128i mc0 = mul_sym_sse3(m0, c_packed); - __m128i mc1 = mul_sym_sse3(m1, c_packed); - - __m128i a0 = sub4_alpha_sse3(mc0); - __m128i a1 = sub4_alpha_sse3(mc1); - - __m128i d0_sym = mul_sym_sse3(_mm_srli_epi32(d0, 24), mc0); - __m128i d1_sym = mul_sym_sse3(_mm_srli_epi32(d1, 24), mc1); - - d0 = mul_256_sse3(a0, d0); - d1 = mul_256_sse3(a1, d1); - - d0 = _mm_add_epi32(d0, d0_sym); - d1 = _mm_add_epi32(d1, d1_sym); - - _mm_store_si128((__m128i *)d, d0); - _mm_store_si128((__m128i *)(d+4), d1); - - d += 8; m += 8; l -= 8; - }) -} - -#define _op_blend_rel_mas_cn_dp_sse3 _op_blend_rel_mas_c_dp_sse3 -#define _op_blend_rel_mas_can_dp_sse3 _op_blend_rel_mas_c_dp_sse3 -#define _op_blend_rel_mas_caa_dp_sse3 _op_blend_rel_mas_c_dp_sse3 - -#define _op_blend_rel_mas_c_dpan_sse3 _op_blend_mas_c_dpan_sse3 -#define _op_blend_rel_mas_cn_dpan_sse3 _op_blend_mas_cn_dpan_sse3 -#define _op_blend_rel_mas_can_dpan_sse3 _op_blend_mas_can_dpan_sse3 -#define _op_blend_rel_mas_caa_dpan_sse3 _op_blend_mas_caa_dpan_sse3 - -static void -init_blend_rel_mask_color_span_funcs_sse3(void) -{ - op_blend_rel_span_funcs[SP_N][SM_AS][SC][DP][CPU_SSE3] = _op_blend_rel_mas_c_dp_sse3; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_rel_mas_can_dp_sse3; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_SSE3] = _op_blend_rel_mas_can_dp_sse3; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_SSE3] = _op_blend_rel_mas_caa_dp_sse3; - - op_blend_rel_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_SSE3] = _op_blend_rel_mas_c_dpan_sse3; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_mas_cn_dpan_sse3; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_SSE3] = _op_blend_rel_mas_can_dpan_sse3; - op_blend_rel_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_SSE3] = _op_blend_rel_mas_caa_dpan_sse3; -} - -#define _op_blend_rel_pt_mas_c_dp_sse3 NULL - -#define _op_blend_rel_pt_mas_cn_dp_sse3 _op_blend_rel_pt_mas_c_dp_sse3 -#define _op_blend_rel_pt_mas_can_dp_sse3 _op_blend_rel_pt_mas_c_dp_sse3 -#define _op_blend_rel_pt_mas_caa_dp_sse3 _op_blend_rel_pt_mas_c_dp_sse3 - -#define _op_blend_rel_pt_mas_c_dpan_sse3 _op_blend_pt_mas_c_dpan_sse3 -#define _op_blend_rel_pt_mas_cn_dpan_sse3 _op_blend_pt_mas_cn_dpan_sse3 -#define _op_blend_rel_pt_mas_can_dpan_sse3 _op_blend_pt_mas_can_dpan_sse3 -#define _op_blend_rel_pt_mas_caa_dpan_sse3 _op_blend_pt_mas_caa_dpan_sse3 - -static void -init_blend_rel_mask_color_pt_funcs_sse3(void) -{ - op_blend_rel_pt_funcs[SP_N][SM_AS][SC][DP][CPU_SSE3] = _op_blend_rel_pt_mas_c_dp_sse3; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_rel_pt_mas_cn_dp_sse3; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_SSE3] = _op_blend_rel_pt_mas_can_dp_sse3; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_SSE3] = _op_blend_rel_pt_mas_caa_dp_sse3; - - op_blend_rel_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_SSE3] = _op_blend_rel_pt_mas_c_dpan_sse3; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_pt_mas_cn_dpan_sse3; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_SSE3] = _op_blend_rel_pt_mas_can_dpan_sse3; - op_blend_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_SSE3] = _op_blend_rel_pt_mas_caa_dpan_sse3; -} - -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_master_sse3.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_master_sse3.c deleted file mode 100644 index eac6755..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_master_sse3.c +++ /dev/null @@ -1,77 +0,0 @@ -#define NEED_SSE3 1 - -#include "evas_common.h" - -#ifdef BUILD_SSE3 -static __m128i A_MASK_SSE3; -#endif - -extern RGBA_Gfx_Func op_blend_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; -extern RGBA_Gfx_Pt_Func op_blend_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; - -extern RGBA_Gfx_Func op_blend_rel_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; -extern RGBA_Gfx_Pt_Func op_blend_rel_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; - -# include "op_blend_pixel_sse3.c" -# include "op_blend_color_sse3.c" -# include "op_blend_pixel_color_sse3.c" -# include "op_blend_pixel_mask_sse3.c" -# include "op_blend_mask_color_sse3.c" - -void -evas_common_op_blend_init_sse3(void) -{ -#ifdef BUILD_SSE3 - GA_MASK_SSE3 = _mm_set_epi32(0x00FF00FF, 0x00FF00FF, 0x00FF00FF, 0x00FF00FF); - RB_MASK_SSE3 = _mm_set_epi32(0xFF00FF00, 0xFF00FF00, 0xFF00FF00, 0xFF00FF00); - SYM4_MASK_SSE3 = _mm_set_epi32(0x00FF00FF, 0x000000FF, 0x00FF00FF, 0x000000FF); - RGB_MASK_SSE3 = _mm_set_epi32(0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF); - A_MASK_SSE3 = _mm_set_epi32(0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000); - ALPHA_SSE3 = _mm_set_epi32(256, 256, 256, 256); - - init_blend_pixel_span_funcs_sse3(); - init_blend_pixel_color_span_funcs_sse3(); - init_blend_pixel_mask_span_funcs_sse3(); - init_blend_color_span_funcs_sse3(); - init_blend_mask_color_span_funcs_sse3(); - - init_blend_pixel_pt_funcs_sse3(); - init_blend_pixel_color_pt_funcs_sse3(); - init_blend_pixel_mask_pt_funcs_sse3(); - init_blend_color_pt_funcs_sse3(); - init_blend_mask_color_pt_funcs_sse3(); -#endif -} - -void -evas_common_op_blend_rel_init_sse3(void) -{ -#ifdef BUILD_SSE3 - init_blend_rel_pixel_span_funcs_sse3(); - init_blend_rel_pixel_color_span_funcs_sse3(); - init_blend_rel_pixel_mask_span_funcs_sse3(); - init_blend_rel_color_span_funcs_sse3(); - init_blend_rel_mask_color_span_funcs_sse3(); - - init_blend_rel_pixel_pt_funcs_sse3(); - init_blend_rel_pixel_color_pt_funcs_sse3(); - init_blend_rel_pixel_mask_pt_funcs_sse3(); - init_blend_rel_color_pt_funcs_sse3(); - init_blend_rel_mask_color_pt_funcs_sse3(); -#endif -} - -//#pragma GCC push_options -//#pragma GCC optimize ("O0") -void -evas_common_op_sse3_test(void) -{ -#ifdef BUILD_SSE3 - DATA32 s[64] = {0x11883399}, d[64] = {0xff88cc33}; - - s[0] = rand(); d[1] = rand(); - _op_blend_pas_dp_sse3(s, NULL, 0, d, 64); - evas_common_cpu_end_opt(); -#endif -} -//#pragma GCC pop_options diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_.c deleted file mode 100644 index 0ce78d8..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_.c +++ /dev/null @@ -1,162 +0,0 @@ -/* blend pixel --> dst */ - -#ifdef BUILD_C -static void -_op_blend_p_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - alpha = 256 - (*s >> 24); - *d = *s++ + MUL_256(alpha, *d); - d++; - }); -} - -static void -_op_blend_pas_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - switch (*s & 0xff000000) - { - case 0: - break; - case 0xff000000: - *d = *s; - break; - default: - alpha = 256 - (*s >> 24); - *d = *s + MUL_256(alpha, *d); - break; - } - s++; d++; - }); -} - -#define _op_blend_pan_dp NULL - -#define _op_blend_p_dpan _op_blend_p_dp -#define _op_blend_pas_dpan _op_blend_pas_dp -#define _op_blend_pan_dpan _op_blend_pan_dp - -static void -init_blend_pixel_span_funcs_c(void) -{ - op_blend_span_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_blend_p_dp; - op_blend_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_blend_pas_dp; - op_blend_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_blend_pan_dp; - - op_blend_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_blend_p_dpan; - op_blend_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_blend_pas_dpan; - op_blend_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_blend_pan_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_blend_pt_p_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - c = 256 - (s >> 24); - *d = s + MUL_256(c, *d); -} - -#define _op_blend_pt_pas_dp _op_blend_pt_p_dp -#define _op_blend_pt_pan_dp NULL - -#define _op_blend_pt_p_dpan _op_blend_pt_p_dp -#define _op_blend_pt_pan_dpan _op_blend_pt_pan_dp -#define _op_blend_pt_pas_dpan _op_blend_pt_pas_dp - -static void -init_blend_pixel_pt_funcs_c(void) -{ - op_blend_pt_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_blend_pt_p_dp; - op_blend_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_blend_pt_pas_dp; - op_blend_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_blend_pt_pan_dp; - - op_blend_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_blend_pt_p_dpan; - op_blend_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_blend_pt_pas_dpan; - op_blend_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_blend_pt_pan_dpan; -} -#endif - -/*-----*/ - -/* blend_rel pixel -> dst */ - -#ifdef BUILD_C -static void -_op_blend_rel_p_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - alpha = 256 - (*s >> 24); - c = 1 + (*d >> 24); - *d = MUL_256(c, *s) + MUL_256(alpha, *d); - d++; - s++; - }); -} - -static void -_op_blend_rel_pan_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - UNROLL8_PLD_WHILE(d, l, e, - { - c = 1 + (*d >> 24); - *d++ = MUL_256(c, *s); - s++; - }); -} - -#define _op_blend_rel_pas_dp _op_blend_rel_p_dp - -#define _op_blend_rel_p_dpan _op_blend_p_dpan -#define _op_blend_rel_pan_dpan _op_blend_pan_dpan -#define _op_blend_rel_pas_dpan _op_blend_pas_dpan - -static void -init_blend_rel_pixel_span_funcs_c(void) -{ - op_blend_rel_span_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_blend_rel_p_dp; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_blend_rel_pas_dp; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_blend_rel_pan_dp; - - op_blend_rel_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_blend_rel_p_dpan; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_blend_rel_pas_dpan; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_blend_rel_pan_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_blend_rel_pt_p_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - c = 256 - (s >> 24); - *d = MUL_SYM(*d >> 24, s) + MUL_256(c, *d); -} - -static void -_op_blend_rel_pt_pan_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) { - *d = MUL_SYM(*d >> 24, s); -} - -#define _op_blend_rel_pt_pas_dp _op_blend_rel_pt_p_dp - -#define _op_blend_rel_pt_p_dpan _op_blend_pt_p_dpan -#define _op_blend_rel_pt_pan_dpan _op_blend_pt_pan_dpan -#define _op_blend_rel_pt_pas_dpan _op_blend_pt_pas_dpan - -static void -init_blend_rel_pixel_pt_funcs_c(void) -{ - op_blend_rel_pt_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_blend_rel_pt_p_dp; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_blend_rel_pt_pas_dp; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_blend_rel_pt_pan_dp; - - op_blend_rel_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_blend_rel_pt_p_dpan; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_blend_rel_pt_pas_dpan; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_blend_rel_pt_pan_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_.c deleted file mode 100644 index c5e40a0..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_.c +++ /dev/null @@ -1,284 +0,0 @@ -/* blend pixel x color --> dst */ - -#ifdef BUILD_C -static void -_op_blend_p_c_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - DATA32 sc = MUL4_SYM(c, *s); - alpha = 256 - (sc >> 24); - *d = sc + MUL_256(alpha, *d); - d++; - s++; - }); -} - -static void -_op_blend_pan_c_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha = 256 - (c >> 24); - UNROLL8_PLD_WHILE(d, l, e, - { - *d = ((c & 0xff000000) + MUL3_SYM(c, *s)) + MUL_256(alpha, *d); - d++; - s++; - }); -} - -static void -_op_blend_p_can_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - alpha = 256 - (*s >> 24); - *d = ((*s & 0xff000000) + MUL3_SYM(c, *s)) + MUL_256(alpha, *d); - d++; - s++; - }); -} - -static void -_op_blend_pan_can_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - UNROLL8_PLD_WHILE(d, l, e, - { - *d++ = 0xff000000 + MUL3_SYM(c, *s); - s++; - }); -} - -static void -_op_blend_p_caa_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha; - c = 1 + (c & 0xff); - UNROLL8_PLD_WHILE(d, l, e, - { - DATA32 sc = MUL_256(c, *s); - alpha = 256 - (sc >> 24); - *d = sc + MUL_256(alpha, *d); - d++; - s++; - }); -} - -static void -_op_blend_pan_caa_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - c = 1 + (c & 0xff); - UNROLL8_PLD_WHILE(d, l, e, - { - *d = INTERP_256(c, *s, *d); - d++; - s++; - }); -} - -#define _op_blend_pas_c_dp _op_blend_p_c_dp -#define _op_blend_pas_can_dp _op_blend_p_can_dp -#define _op_blend_pas_caa_dp _op_blend_p_caa_dp - -#define _op_blend_p_c_dpan _op_blend_p_c_dp -#define _op_blend_pas_c_dpan _op_blend_pas_c_dp -#define _op_blend_pan_c_dpan _op_blend_pan_c_dp -#define _op_blend_p_can_dpan _op_blend_p_can_dp -#define _op_blend_pas_can_dpan _op_blend_pas_can_dp -#define _op_blend_pan_can_dpan _op_blend_pan_can_dp -#define _op_blend_p_caa_dpan _op_blend_p_caa_dp -#define _op_blend_pas_caa_dpan _op_blend_pas_caa_dp -#define _op_blend_pan_caa_dpan _op_blend_pan_caa_dp - -static void -init_blend_pixel_color_span_funcs_c(void) -{ - op_blend_span_funcs[SP][SM_N][SC][DP][CPU_C] = _op_blend_p_c_dp; - op_blend_span_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_blend_pas_c_dp; - op_blend_span_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_blend_pan_c_dp; - op_blend_span_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_blend_p_can_dp; - op_blend_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_blend_pas_can_dp; - op_blend_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_C] = _op_blend_pan_can_dp; - op_blend_span_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_blend_p_caa_dp; - op_blend_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_blend_pas_caa_dp; - op_blend_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_blend_pan_caa_dp; - - op_blend_span_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_blend_p_c_dpan; - op_blend_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_blend_pas_c_dpan; - op_blend_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_blend_pan_c_dpan; - op_blend_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_blend_p_can_dpan; - op_blend_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_blend_pas_can_dpan; - op_blend_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_C] = _op_blend_pan_can_dpan; - op_blend_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_p_caa_dpan; - op_blend_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_pas_caa_dpan; - op_blend_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_pan_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_blend_pt_p_c_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = MUL4_SYM(c, s); - c = 256 - (s >> 24); - *d = s + MUL_256(c, *d); -} - -#define _op_blend_pt_pas_c_dp _op_blend_pt_p_c_dp -#define _op_blend_pt_pan_c_dp _op_blend_pt_p_c_dp -#define _op_blend_pt_p_can_dp _op_blend_pt_p_c_dp -#define _op_blend_pt_pas_can_dp _op_blend_pt_p_c_dp -#define _op_blend_pt_pan_can_dp _op_blend_pt_p_c_dp -#define _op_blend_pt_p_caa_dp _op_blend_pt_p_c_dp -#define _op_blend_pt_pas_caa_dp _op_blend_pt_p_c_dp -#define _op_blend_pt_pan_caa_dp _op_blend_pt_p_c_dp - -#define _op_blend_pt_p_c_dpan _op_blend_pt_p_c_dp -#define _op_blend_pt_pas_c_dpan _op_blend_pt_pas_c_dp -#define _op_blend_pt_pan_c_dpan _op_blend_pt_pan_c_dp -#define _op_blend_pt_p_can_dpan _op_blend_pt_p_can_dp -#define _op_blend_pt_pas_can_dpan _op_blend_pt_pas_can_dp -#define _op_blend_pt_pan_can_dpan _op_blend_pt_pan_can_dp -#define _op_blend_pt_p_caa_dpan _op_blend_pt_p_caa_dp -#define _op_blend_pt_pas_caa_dpan _op_blend_pt_pas_caa_dp -#define _op_blend_pt_pan_caa_dpan _op_blend_pt_pan_caa_dp - -static void -init_blend_pixel_color_pt_funcs_c(void) -{ - op_blend_pt_funcs[SP][SM_N][SC][DP][CPU_C] = _op_blend_pt_p_c_dp; - op_blend_pt_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_blend_pt_pas_c_dp; - op_blend_pt_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_blend_pt_pan_c_dp; - op_blend_pt_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_blend_pt_p_can_dp; - op_blend_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_blend_pt_pas_can_dp; - op_blend_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_C] = _op_blend_pt_pan_can_dp; - op_blend_pt_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_blend_pt_p_caa_dp; - op_blend_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_blend_pt_pas_caa_dp; - op_blend_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_blend_pt_pan_caa_dp; - - op_blend_pt_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_blend_pt_p_c_dpan; - op_blend_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_blend_pt_pas_c_dpan; - op_blend_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_blend_pt_pan_c_dpan; - op_blend_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_blend_pt_p_can_dpan; - op_blend_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_blend_pt_pas_can_dpan; - op_blend_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_C] = _op_blend_pt_pan_can_dpan; - op_blend_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_pt_p_caa_dpan; - op_blend_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_pt_pas_caa_dpan; - op_blend_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_pt_pan_caa_dpan; -} -#endif - -/*-----*/ - -/* blend_rel pixel x color -> dst */ - -#ifdef BUILD_C -static void -_op_blend_rel_p_c_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - DATA32 sc = MUL4_SYM(c, *s); - alpha = 256 - (sc >> 24); - *d = MUL_SYM(*d >> 24, sc) + MUL_256(alpha, *d); - d++; - s++; - }); -} - -#define _op_blend_rel_pas_c_dp _op_blend_rel_p_c_dp -#define _op_blend_rel_pan_c_dp _op_blend_rel_p_c_dp -#define _op_blend_rel_p_can_dp _op_blend_rel_p_c_dp -#define _op_blend_rel_pas_can_dp _op_blend_rel_p_c_dp -#define _op_blend_rel_pan_can_dp _op_blend_rel_p_c_dp -#define _op_blend_rel_p_caa_dp _op_blend_rel_p_c_dp -#define _op_blend_rel_pas_caa_dp _op_blend_rel_p_c_dp -#define _op_blend_rel_pan_caa_dp _op_blend_rel_p_c_dp - -#define _op_blend_rel_p_c_dpan _op_blend_p_c_dpan -#define _op_blend_rel_pas_c_dpan _op_blend_pas_c_dpan -#define _op_blend_rel_pan_c_dpan _op_blend_pan_c_dpan -#define _op_blend_rel_p_can_dpan _op_blend_p_can_dpan -#define _op_blend_rel_pas_can_dpan _op_blend_pas_can_dpan -#define _op_blend_rel_pan_can_dpan _op_blend_pan_can_dpan -#define _op_blend_rel_p_caa_dpan _op_blend_p_caa_dpan -#define _op_blend_rel_pas_caa_dpan _op_blend_pas_caa_dpan -#define _op_blend_rel_pan_caa_dpan _op_blend_pan_caa_dpan - -static void -init_blend_rel_pixel_color_span_funcs_c(void) -{ - op_blend_rel_span_funcs[SP][SM_N][SC][DP][CPU_C] = _op_blend_rel_p_c_dp; - op_blend_rel_span_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_blend_rel_pas_c_dp; - op_blend_rel_span_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_blend_rel_pan_c_dp; - op_blend_rel_span_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_blend_rel_p_can_dp; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_blend_rel_pas_can_dp; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_C] = _op_blend_rel_pan_can_dp; - op_blend_rel_span_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_blend_rel_p_caa_dp; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_blend_rel_pas_caa_dp; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_blend_rel_pan_caa_dp; - - op_blend_rel_span_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_blend_rel_p_c_dpan; - op_blend_rel_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_blend_rel_pas_c_dpan; - op_blend_rel_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_blend_rel_pan_c_dpan; - op_blend_rel_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_blend_rel_p_can_dpan; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_blend_rel_pas_can_dpan; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_C] = _op_blend_rel_pan_can_dpan; - op_blend_rel_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_rel_p_caa_dpan; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_rel_pas_caa_dpan; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_rel_pan_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_blend_rel_pt_p_c_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = MUL4_SYM(c, s); - c = 256 - (s >> 24); - *d = MUL_SYM(*d >> 24, s) + MUL_256(c, *d); -} - -#define _op_blend_rel_pt_pas_c_dp _op_blend_rel_pt_p_c_dp -#define _op_blend_rel_pt_pan_c_dp _op_blend_rel_pt_p_c_dp -#define _op_blend_rel_pt_p_can_dp _op_blend_rel_pt_p_c_dp -#define _op_blend_rel_pt_pas_can_dp _op_blend_rel_pt_p_c_dp -#define _op_blend_rel_pt_pan_can_dp _op_blend_rel_pt_p_c_dp -#define _op_blend_rel_pt_p_caa_dp _op_blend_rel_pt_p_c_dp -#define _op_blend_rel_pt_pas_caa_dp _op_blend_rel_pt_p_c_dp -#define _op_blend_rel_pt_pan_caa_dp _op_blend_rel_pt_p_c_dp - -#define _op_blend_rel_pt_p_c_dpan _op_blend_pt_p_c_dpan -#define _op_blend_rel_pt_pas_c_dpan _op_blend_pt_pas_c_dpan -#define _op_blend_rel_pt_pan_c_dpan _op_blend_pt_pan_c_dpan -#define _op_blend_rel_pt_p_can_dpan _op_blend_pt_p_can_dpan -#define _op_blend_rel_pt_pas_can_dpan _op_blend_pt_pas_can_dpan -#define _op_blend_rel_pt_pan_can_dpan _op_blend_pt_pan_can_dpan -#define _op_blend_rel_pt_p_caa_dpan _op_blend_pt_p_caa_dpan -#define _op_blend_rel_pt_pas_caa_dpan _op_blend_pt_pas_caa_dpan -#define _op_blend_rel_pt_pan_caa_dpan _op_blend_pt_pan_caa_dpan - -static void -init_blend_rel_pixel_color_pt_funcs_c(void) -{ - op_blend_rel_pt_funcs[SP][SM_N][SC][DP][CPU_C] = _op_blend_rel_pt_p_c_dp; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_blend_rel_pt_pas_c_dp; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_blend_rel_pt_pan_c_dp; - op_blend_rel_pt_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_blend_rel_pt_p_can_dp; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_blend_rel_pt_pas_can_dp; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_C] = _op_blend_rel_pt_pan_can_dp; - op_blend_rel_pt_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_blend_rel_pt_p_caa_dp; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_blend_rel_pt_pas_caa_dp; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_blend_rel_pt_pan_caa_dp; - - op_blend_rel_pt_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_blend_rel_pt_p_c_dpan; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_blend_rel_pt_pas_c_dpan; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_blend_rel_pt_pan_c_dpan; - op_blend_rel_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_blend_rel_pt_p_can_dpan; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_blend_rel_pt_pas_can_dpan; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_C] = _op_blend_rel_pt_pan_can_dpan; - op_blend_rel_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_rel_pt_p_caa_dpan; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_rel_pt_pas_caa_dpan; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_blend_rel_pt_pan_caa_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_i386.c deleted file mode 100644 index 52751f4..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_i386.c +++ /dev/null @@ -1,221 +0,0 @@ -/* blend pixel x color --> dst */ - -#ifdef BUILD_MMX -static void -_op_blend_p_c_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - MOV_A2R(ALPHA_256, mm6) - MOV_A2R(ALPHA_255, mm5) - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - while (d < e) { - MOV_P2R(*s, mm3, mm0) - MUL4_SYM_R2R(mm2, mm3, mm5) - - MOV_RA2R(mm3, mm1) - movq_r2r(mm6, mm4); - psubw_r2r(mm1, mm4); - - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm4, mm1) - - paddw_r2r(mm3, mm1); - MOV_R2P(mm1, *d, mm0) - s++; d++; - } -} - -static void -_op_blend_pan_can_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - MOV_A2R(ALPHA_255, mm5) - while (d < e) { - MOV_P2R(*s, mm1, mm0) - MUL4_SYM_R2R(mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - s++; d++; - } -} - -static void -_op_blend_pan_caa_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - c = 1 + (c & 0xff); - MOV_A2R(c, mm2) - MOV_A2R(ALPHA_255, mm5) - pxor_r2r(mm0, mm0); - while (d < e) { - MOV_P2R(*s, mm3, mm0) - MOV_P2R(*d, mm1, mm0) - INTERP_256_R2R(mm2, mm3, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - s++; d++; - } -} - -#define _op_blend_pas_c_dp_mmx _op_blend_p_c_dp_mmx -#define _op_blend_pan_c_dp_mmx _op_blend_p_c_dp_mmx -#define _op_blend_p_can_dp_mmx _op_blend_p_c_dp_mmx -#define _op_blend_pas_can_dp_mmx _op_blend_p_c_dp_mmx -#define _op_blend_p_caa_dp_mmx _op_blend_p_c_dp_mmx -#define _op_blend_pas_caa_dp_mmx _op_blend_p_c_dp_mmx - -#define _op_blend_p_c_dpan_mmx _op_blend_p_c_dp_mmx -#define _op_blend_pas_c_dpan_mmx _op_blend_pas_c_dp_mmx -#define _op_blend_pan_c_dpan_mmx _op_blend_pan_c_dp_mmx -#define _op_blend_p_can_dpan_mmx _op_blend_p_can_dp_mmx -#define _op_blend_pas_can_dpan_mmx _op_blend_pas_can_dp_mmx -#define _op_blend_pan_can_dpan_mmx _op_blend_pan_can_dp_mmx -#define _op_blend_p_caa_dpan_mmx _op_blend_p_caa_dp_mmx -#define _op_blend_pas_caa_dpan_mmx _op_blend_pas_caa_dp_mmx -#define _op_blend_pan_caa_dpan_mmx _op_blend_pan_caa_dp_mmx - - -static void -init_blend_pixel_color_span_funcs_mmx(void) -{ - op_blend_span_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_blend_p_c_dp_mmx; - op_blend_span_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_blend_pas_c_dp_mmx; - op_blend_span_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_blend_pan_c_dp_mmx; - op_blend_span_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_blend_p_can_dp_mmx; - op_blend_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_blend_pas_can_dp_mmx; - op_blend_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_blend_pan_can_dp_mmx; - op_blend_span_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_p_caa_dp_mmx; - op_blend_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_pas_caa_dp_mmx; - op_blend_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_pan_caa_dp_mmx; - - op_blend_span_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_p_c_dpan_mmx; - op_blend_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_pas_c_dpan_mmx; - op_blend_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_pan_c_dpan_mmx; - op_blend_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_blend_p_can_dpan_mmx; - op_blend_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_blend_pas_can_dpan_mmx; - op_blend_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_blend_pan_can_dpan_mmx; - op_blend_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_p_caa_dpan_mmx; - op_blend_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_pas_caa_dpan_mmx; - op_blend_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_pan_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_blend_pt_p_c_dp_mmx(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - MOV_A2R(ALPHA_256, mm4) - MOV_A2R(ALPHA_255, mm5) - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - MOV_P2R(s, mm3, mm0) - MUL4_SYM_R2R(mm2, mm3, mm5) - - MOV_RA2R(mm3, mm1) - psubw_r2r(mm1, mm4); - - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm4, mm1) - - paddw_r2r(mm3, mm1); - MOV_R2P(mm1, *d, mm0) -} - -#define _op_blend_pt_pas_c_dp_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_pan_c_dp_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_p_can_dp_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_pas_can_dp_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_pan_can_dp_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_p_caa_dp_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_pas_caa_dp_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_pan_caa_dp_mmx _op_blend_pt_p_c_dp_mmx - -#define _op_blend_pt_p_c_dpan_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_pas_c_dpan_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_pan_c_dpan_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_p_can_dpan_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_pas_can_dpan_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_pan_can_dpan_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_p_caa_dpan_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_pas_caa_dpan_mmx _op_blend_pt_p_c_dp_mmx -#define _op_blend_pt_pan_caa_dpan_mmx _op_blend_pt_p_c_dp_mmx - -static void -init_blend_pixel_color_pt_funcs_mmx(void) -{ - op_blend_pt_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_blend_pt_p_c_dp_mmx; - op_blend_pt_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_blend_pt_pas_c_dp_mmx; - op_blend_pt_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_blend_pt_pan_c_dp_mmx; - op_blend_pt_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_blend_pt_p_can_dp_mmx; - op_blend_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_blend_pt_pas_can_dp_mmx; - op_blend_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_blend_pt_pan_can_dp_mmx; - op_blend_pt_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_pt_p_caa_dp_mmx; - op_blend_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_pt_pas_caa_dp_mmx; - op_blend_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_pt_pan_caa_dp_mmx; - - op_blend_pt_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_pt_p_c_dpan_mmx; - op_blend_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_pt_pas_c_dpan_mmx; - op_blend_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_pt_pan_c_dpan_mmx; - op_blend_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_blend_pt_p_can_dpan_mmx; - op_blend_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_blend_pt_pas_can_dpan_mmx; - op_blend_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_blend_pt_pan_can_dpan_mmx; - op_blend_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_pt_p_caa_dpan_mmx; - op_blend_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_pt_pas_caa_dpan_mmx; - op_blend_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_pt_pan_caa_dpan_mmx; -} -#endif - -/*-----*/ - -/* blend_rel pixel x color -> dst */ - -#ifdef BUILD_MMX - -#define _op_blend_rel_p_c_dpan_mmx _op_blend_p_c_dpan_mmx -#define _op_blend_rel_pas_c_dpan_mmx _op_blend_pas_c_dpan_mmx -#define _op_blend_rel_pan_c_dpan_mmx _op_blend_pan_c_dpan_mmx -#define _op_blend_rel_p_can_dpan_mmx _op_blend_p_can_dpan_mmx -#define _op_blend_rel_pas_can_dpan_mmx _op_blend_pas_can_dpan_mmx -#define _op_blend_rel_pan_can_dpan_mmx _op_blend_pan_can_dpan_mmx -#define _op_blend_rel_p_caa_dpan_mmx _op_blend_p_caa_dpan_mmx -#define _op_blend_rel_pas_caa_dpan_mmx _op_blend_pas_caa_dpan_mmx -#define _op_blend_rel_pan_caa_dpan_mmx _op_blend_pan_caa_dpan_mmx - -static void -init_blend_rel_pixel_color_span_funcs_mmx(void) -{ - op_blend_rel_span_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_rel_p_c_dpan_mmx; - op_blend_rel_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_rel_pas_c_dpan_mmx; - op_blend_rel_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_rel_pan_c_dpan_mmx; - op_blend_rel_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_blend_rel_p_can_dpan_mmx; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_blend_rel_pas_can_dpan_mmx; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_blend_rel_pan_can_dpan_mmx; - op_blend_rel_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_rel_p_caa_dpan_mmx; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_rel_pas_caa_dpan_mmx; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_rel_pan_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX - -#define _op_blend_rel_pt_p_c_dpan_mmx _op_blend_pt_p_c_dpan_mmx -#define _op_blend_rel_pt_pas_c_dpan_mmx _op_blend_pt_pas_c_dpan_mmx -#define _op_blend_rel_pt_pan_c_dpan_mmx _op_blend_pt_pan_c_dpan_mmx -#define _op_blend_rel_pt_p_can_dpan_mmx _op_blend_pt_p_can_dpan_mmx -#define _op_blend_rel_pt_pas_can_dpan_mmx _op_blend_pt_pas_can_dpan_mmx -#define _op_blend_rel_pt_pan_can_dpan_mmx _op_blend_pt_pan_can_dpan_mmx -#define _op_blend_rel_pt_p_caa_dpan_mmx _op_blend_pt_p_caa_dpan_mmx -#define _op_blend_rel_pt_pas_caa_dpan_mmx _op_blend_pt_pas_caa_dpan_mmx -#define _op_blend_rel_pt_pan_caa_dpan_mmx _op_blend_pt_pan_caa_dpan_mmx - -static void -init_blend_rel_pixel_color_pt_funcs_mmx(void) -{ - op_blend_rel_pt_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_rel_pt_p_c_dpan_mmx; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_rel_pt_pas_c_dpan_mmx; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_rel_pt_pan_c_dpan_mmx; - op_blend_rel_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_blend_rel_pt_p_can_dpan_mmx; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_blend_rel_pt_pas_can_dpan_mmx; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_blend_rel_pt_pan_can_dpan_mmx; - op_blend_rel_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_rel_pt_p_caa_dpan_mmx; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_rel_pt_pas_caa_dpan_mmx; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_rel_pt_pan_caa_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_neon.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_neon.c deleted file mode 100644 index 6e35970..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_neon.c +++ /dev/null @@ -1,570 +0,0 @@ -/* blend pixel x color --> dst */ -#ifdef BUILD_NEON -/* Note: Optimisation is based on keeping _dest_ aligned: else it's a pair of - * reads, then two writes, a miss on read is 'just' two reads */ -static void -_op_blend_p_c_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { -#define AP "blend_p_c_dp_" - asm volatile ( - ".fpu neon \n\t" - // Load 'c' - "vdup.u32 q7, %[c] \n\t" - "vmov.i8 q6, #1 \n\t" - - // Choose a loop - "andS %[tmp], %[d], $0xf \n\t" - "beq "AP"quadstart \n\t" - - "andS %[tmp],%[d], $0x4 \n\t" - "beq "AP"dualloop \n\t" - - AP"singleloop:" - "vld1.32 d0[0], [%[s]]! \n\t" - "vld1.32 d2[0], [%[d]] \n\t" - // Mulitply s * c (= sc) - "vmull.u8 q4, d0,d14 \n\t" - // sc in d8 - "vqrshrn.u16 d4, q4, #8 \n\t" - - // sca in d9 - "vmvn.u32 d6, d4 \n\t" - "vshr.u32 d6, d6, #24 \n\t" - - "vmul.u32 d6, d12, d6 \n\t" - - /* d * alpha */ - "vmull.u8 q4, d6, d2 \n\t" - "vqrshrn.u16 d0, q4, #8 \n\t" - - "vqadd.u8 d2, d0, d4 \n\t" - - // Save dsc + sc - "vst1.32 d2[0], [%[d]]! \n\t" - - // Now where? - // Can we go the fast path? - "andS %[tmp], %[d],$0xf \n\t" - "beq "AP"quadstart \n\t" - - AP"dualloop: \n\t" - // Check we have enough to bother with! - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #16 \n\t" - "blt "AP"loopout \n\t" - - // load 's' -> q0, 'd' -> q1 - "vldm %[s]!, {d0} \n\t" - "vldm %[d], {d2} \n\t" - // Mulitply s * c (= sc) - "vmull.u8 q4, d0,d14 \n\t" - // sc in d8 - "vqrshrn.u16 d4, q4, #8 \n\t" - - // sca in d9 - "vmvn.u32 d6, d4 \n\t" - "vshr.u32 d6, d6, #24 \n\t" - - "vmul.u32 d6, d12, d6 \n\t" - - /* d * alpha */ - "vmull.u8 q4, d6, d2 \n\t" - "vqrshrn.u16 d0, q4, #8 \n\t" - - "vqadd.u8 d2, d0, d4 \n\t" - - // Save dsc + sc - "vst1.32 d2, [%[d]]! \n\t" - - AP"quadstart: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #16 \n\t" - "blt "AP"loopout \n\t" - - "sub %[tmp], %[e], #15 \n\t" - - AP"quadloop:\n\t" - // load 's' -> q0, 'd' -> q1 - "vldm %[s]!, {d0,d1} \n\t" - "vldm %[d], {d2,d3} \n\t" - // Mulitply s * c (= sc) - "vmull.u8 q4, d0,d14 \n\t" - "vmull.u8 q5, d1,d14 \n\t" - - // Get sc & sc alpha - "vqrshrn.u16 d4, q4, #8 \n\t" - "vqrshrn.u16 d5, q5, #8 \n\t" - // sc is now in q2, 8bpp - // Shift out, then spread alpha for q2 - "vmvn.u32 q3, q2 \n\t" - "vshr.u32 q3, q3, $0x18 \n\t" - "vmul.u32 q3, q6,q3 \n\t" - - // Multiply 'd' by sc.alpha (dsca) - "vmull.u8 q4, d6,d2 \n\t" - "vmull.u8 q5, d7,d3 \n\t" - - "vqrshrn.u16 d0, q4, #8 \n\t" - "vqrshrn.u16 d1, q5, #8 \n\t" - - "vqadd.u8 q1, q0, q2 \n\t" - - // Save dsc + sc - "vstm %[d]!, {d2,d3} \n\t" - - "cmp %[tmp], %[d] \n\t" - - "bhi "AP"quadloop \n\t" - - /* Trailing stuff */ - AP"loopout: \n\t" - - "cmp %[d], %[e] \n\t" - "beq "AP"done\n\t" - "sub %[tmp],%[e], %[d] \n\t" - "cmp %[tmp],$0x04 \n\t" - "beq "AP"singleloop2 \n\t" - - "sub %[tmp], %[e], #7 \n\t" - /* Dual loop */ - AP"dualloop2: \n\t" - "vldm %[s]!, {d0} \n\t" - "vldm %[d], {d2} \n\t" - // Mulitply s * c (= sc) - "vmull.u8 q4, d0,d14 \n\t" - // sc in d8 - "vqrshrn.u16 d4, q4, #8 \n\t" - - // sca in d9 - // XXX: I can probably squash one of these 3 - "vmvn.u32 d6, d4 \n\t" - "vshr.u32 d6, d6, #24 \n\t" - "vmul.u32 d6, d6, d12 \n\t" - - /* d * alpha */ - "vmull.u8 q4, d6, d2 \n\t" - "vqrshrn.u16 d0, q4, #8 \n\t" - - "vqadd.u8 d2, d0, d4 \n\t" - - // Save dsc + sc - "vstm %[d]!, {d2} \n\t" - - "cmp %[tmp], %[d] \n\t" - "bhi "AP"dualloop2 \n\t" - - "cmp %[d], %[e] \n\t" - "beq "AP"done \n\t" - - AP"singleloop2: \n\t" - "vld1.32 d0[0], [%[s]]! \n\t" - "vld1.32 d2[0], [%[d]] \n\t" - // Mulitply s * c (= sc) - "vmull.u8 q4, d0,d14 \n\t" - // sc in d8 - "vqrshrn.u16 d4, q4, #8 \n\t" - - // sca in d6 - "vmvn.u32 d6, d4 \n\t" - "vshr.u32 d6, d6, #24 \n\t" - "vmul.u32 d6, d12,d6 \n\t" - - /* d * alpha */ - "vmull.u8 q4, d6, d2 \n\t" - "vqrshrn.u16 d0, q4, #8 \n\t" - - "vqadd.u8 d2, d0, d4 \n\t" - - // Save dsc + sc - "vst1.32 d2[0], [%[d]]! \n\t" - - - AP"done:" - : // No output - // - : [s] "r" (s), [e] "r" (d + l), [d] "r" (d), [c] "r" (c), - [tmp] "r" (12) - : "q0","q1","q2","q3","q4","q5","q6","q7","memory" - ); -#undef AP -} - -static void -_op_blend_pan_can_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - UNROLL8_PLD_WHILE(d, l, e, - { - *d++ = 0xff000000 + MUL3_SYM(c, *s); - s++; - }); -} - -static void -_op_blend_pan_caa_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { -#if 1 - DATA32 *e; - int alpha; - c = 1 + (c & 0xff); - UNROLL8_PLD_WHILE(d, l, e, - { - DATA32 sc = MUL_256(c, *s); - alpha = 256 - (sc >> 24); - *d = sc + MUL_256(alpha, *d); - d++; - s++; - }); -#else // the below neon is buggy!! misses rendering of spans, i think with alignment. quick - just disable this. -#define AP "_op_blend_pan_caa_dp_" - DATA32 *e = d + l, *tmp = (void*)73; - asm volatile ( - ".fpu neon \n\t" - /* Set up 'c' */ - "vdup.u8 d14, %[c] \n\t" - "vmov.i8 d15, #1 \n\t" - "vaddl.u8 q15, d14, d15 \n\t" - "vshr.u8 q15,#1 \n\t" - - // Pick a loop - "andS %[tmp], %[d], $0xf \n\t" - "beq "AP"quadstart \n\t" - - "andS %[tmp], %[d], $0x4 \n\t" - "beq "AP"dualstart \n\t" - - AP"singleloop: \n\t" - "vld1.32 d4[0], [%[d]] \n\t" - "vld1.32 d0[0], [%[s]]! \n\t" - - // Long version of 'd' - "vmovl.u8 q8, d4 \n\t" - - // Long version of 's' - "vmovl.u8 q6, d0 \n\t" - - // d8 = s -d - "vsub.s16 d8, d12, d16 \n\t" - - // Multiply - "vmul.s16 d8, d8, d30 \n\t" - - // Shift down - "vshr.s16 d8, #7 \n\t" - - // Add 'd' - "vqadd.s16 d8, d8, d16 \n\t" - - // Shrink to save - "vqmovun.s16 d0, q4 \n\t" - "vst1.32 d0[0], [%[d]]! \n\t" - - // Now where? - "andS %[tmp], %[d], $0xf \n\t" - "beq "AP"quadstart \n\t" - - AP"dualstart: \n\t" - // Check we have enough - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #16 \n\t" - "blt "AP"loopout \n\t" - - AP"dualloop:" - "vldm %[d], {d4} \n\t" - "vldm %[s]!, {d0} \n\t" - - // Long version of d - "vmovl.u8 q8, d4 \n\t" - - // Long version of s - "vmovl.u8 q6, d0 \n\t" - - // q4/q5 = s-d - "vsub.s16 q4, q6, q8 \n\t" - - // Multiply - "vmul.s16 q4, q4,q15 \n\t" - - // Shift down - "vshr.s16 q4, #7 \n\t" - - // Add d - "vqadd.s16 q4, q4, q8 \n\t" - - // Shrink to save - "vqmovun.s16 d0, q4 \n\t" - - "vstm %[d]!, {d0} \n\t" - AP"quadstart: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #16 \n\t" - "blt "AP"loopout \n\t" - - "sub %[tmp], %[e], #15 \n\t" - - AP"quadloop: \n\t" - // load 's' -> q0, 'd' -> q2 - "vldm %[d], {d4,d5} \n\t" - "vldm %[s]!, {d0,d1} \n\t" - - // Long version of d - "vmovl.u8 q8, d4 \n\t" - "vmovl.u8 q9, d5 \n\t" - - // Long version of s - "vmovl.u8 q6, d0 \n\t" - "vmovl.u8 q7, d1 \n\t" - - // q4/q5 = s-d - "vsub.s16 q4, q6, q8 \n\t" - "vsub.s16 q5, q7, q9 \n\t" - - // Multiply - "vmul.s16 q4, q4,q15 \n\t" - "vmul.s16 q5, q5,q15 \n\t" - - // Shift down - "vshr.s16 q4, #7 \n\t" - "vshr.s16 q5, #7 \n\t" - - // Add d - "vqadd.s16 q4, q4, q8 \n\t" - "vqadd.s16 q5, q5, q9 \n\t" - - // Shrink to save - "vqmovun.s16 d0, q4 \n\t" - "vqmovun.s16 d1, q5 \n\t" - "vstm %[d]!, {d0,d1} \n\t" - "cmp %[tmp], %[d] \n\t" - - "bhi "AP"quadloop\n\t" - - - "b "AP"done\n\t" - AP"loopout: \n\t" - "cmp %[d], %[e] \n\t" - "beq "AP"done\n\t" - "sub %[tmp],%[e], %[d] \n\t" - "cmp %[tmp],$0x04 \n\t" - "beq "AP"singleloop2 \n\t" - - AP"dualloop2: \n\t" - "vldm %[d], {d4} \n\t" - "vldm %[s]!, {d0} \n\t" - - // Long version of d - "vmovl.u8 q8, d4 \n\t" - - // Long version of s - "vmovl.u8 q6, d0 \n\t" - - // q4/q5 = s-d - "vsub.s16 q4, q6, q8 \n\t" - - // Multiply - "vmul.s16 q4, q4,q15 \n\t" - - // Shift down - "vshr.s16 q4, #7 \n\t" - - // Add d - "vqadd.s16 q4, q4, q8 \n\t" - - // Shrink to save - "vqmovun.s16 d0, q4 \n\t" - - "vstm %[d]!, {d0} \n\t" - - "cmp %[d], %[e] \n\t" - "beq "AP"done \n\t" - - AP"singleloop2: \n\t" - "vld1.32 d4[0], [%[d]] \n\t" - "vld1.32 d0[0], [%[s]]! \n\t" - - // Long version of 'd' - "vmovl.u8 q8, d4 \n\t" - - // Long version of 's' - "vmovl.u8 q6, d0 \n\t" - - // d8 = s -d - "vsub.s16 d8, d12, d16 \n\t" - - // Multiply - "vmul.s16 d8, d8, d30 \n\t" - - // Shift down - "vshr.s16 d8, #7 \n\t" - - // Add 'd' - "vqadd.s16 d8, d8, d16 \n\t" - - // Shrink to save - "vqmovun.s16 d0, q4 \n\t" - - "vst1.32 d0[0], [%[d]] \n\t" - - - AP"done: \n\t" - - // No output - : - // Input - : [s] "r" (s), [d] "r" (d), [e] "r" (e), [c] "r" (c), [tmp] "r" (tmp) - // Clobbered - : "q0", "q1", "q2", "q3", "q4", "q5", "q6", "q7", "q8", "q9", "memory" - ); -#undef AP -#endif -} - -#define _op_blend_pas_c_dp_neon _op_blend_p_c_dp_neon -#define _op_blend_pan_c_dp_neon _op_blend_p_c_dp_neon -#define _op_blend_p_can_dp_neon _op_blend_p_c_dp_neon -#define _op_blend_pas_can_dp_neon _op_blend_p_c_dp_neon -#define _op_blend_p_caa_dp_neon _op_blend_p_c_dp_neon -#define _op_blend_pas_caa_dp_neon _op_blend_p_c_dp_neon - -#define _op_blend_p_c_dpan_neon _op_blend_p_c_dp_neon -#define _op_blend_pas_c_dpan_neon _op_blend_pas_c_dp_neon -#define _op_blend_pan_c_dpan_neon _op_blend_pan_c_dp_neon -#define _op_blend_p_can_dpan_neon _op_blend_p_can_dp_neon -#define _op_blend_pas_can_dpan_neon _op_blend_pas_can_dp_neon -#define _op_blend_pan_can_dpan_neon _op_blend_pan_can_dp_neon -#define _op_blend_p_caa_dpan_neon _op_blend_p_caa_dp_neon -#define _op_blend_pas_caa_dpan_neon _op_blend_pas_caa_dp_neon -#define _op_blend_pan_caa_dpan_neon _op_blend_pan_caa_dp_neon - - -static void -init_blend_pixel_color_span_funcs_neon(void) -{ - op_blend_span_funcs[SP][SM_N][SC][DP][CPU_NEON] = _op_blend_p_c_dp_neon; - op_blend_span_funcs[SP_AS][SM_N][SC][DP][CPU_NEON] = _op_blend_pas_c_dp_neon; - op_blend_span_funcs[SP_AN][SM_N][SC][DP][CPU_NEON] = _op_blend_pan_c_dp_neon; - op_blend_span_funcs[SP][SM_N][SC_AN][DP][CPU_NEON] = _op_blend_p_can_dp_neon; - op_blend_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_NEON] = _op_blend_pas_can_dp_neon; - op_blend_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_NEON] = _op_blend_pan_can_dp_neon; - op_blend_span_funcs[SP][SM_N][SC_AA][DP][CPU_NEON] = _op_blend_p_caa_dp_neon; - op_blend_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_NEON] = _op_blend_pas_caa_dp_neon; - op_blend_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_NEON] = _op_blend_pan_caa_dp_neon; - - op_blend_span_funcs[SP][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_p_c_dpan_neon; - op_blend_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_pas_c_dpan_neon; - op_blend_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_pan_c_dpan_neon; - op_blend_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_blend_p_can_dpan_neon; - op_blend_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_blend_pas_can_dpan_neon; - op_blend_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_blend_pan_can_dpan_neon; - op_blend_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_p_caa_dpan_neon; - op_blend_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_pas_caa_dpan_neon; - op_blend_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_pan_caa_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_blend_pt_p_c_dp_neon(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = MUL4_SYM(c, s); - c = 256 - (s >> 24); - *d = s + MUL_256(c, *d); -} - -#define _op_blend_pt_pas_c_dp_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_pan_c_dp_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_p_can_dp_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_pas_can_dp_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_pan_can_dp_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_p_caa_dp_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_pas_caa_dp_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_pan_caa_dp_neon _op_blend_pt_p_c_dp_neon - -#define _op_blend_pt_p_c_dpan_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_pas_c_dpan_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_pan_c_dpan_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_p_can_dpan_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_pas_can_dpan_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_pan_can_dpan_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_p_caa_dpan_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_pas_caa_dpan_neon _op_blend_pt_p_c_dp_neon -#define _op_blend_pt_pan_caa_dpan_neon _op_blend_pt_p_c_dp_neon - -static void -init_blend_pixel_color_pt_funcs_neon(void) -{ - op_blend_pt_funcs[SP][SM_N][SC][DP][CPU_NEON] = _op_blend_pt_p_c_dp_neon; - op_blend_pt_funcs[SP_AS][SM_N][SC][DP][CPU_NEON] = _op_blend_pt_pas_c_dp_neon; - op_blend_pt_funcs[SP_AN][SM_N][SC][DP][CPU_NEON] = _op_blend_pt_pan_c_dp_neon; - op_blend_pt_funcs[SP][SM_N][SC_AN][DP][CPU_NEON] = _op_blend_pt_p_can_dp_neon; - op_blend_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_NEON] = _op_blend_pt_pas_can_dp_neon; - op_blend_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_NEON] = _op_blend_pt_pan_can_dp_neon; - op_blend_pt_funcs[SP][SM_N][SC_AA][DP][CPU_NEON] = _op_blend_pt_p_caa_dp_neon; - op_blend_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_NEON] = _op_blend_pt_pas_caa_dp_neon; - op_blend_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_NEON] = _op_blend_pt_pan_caa_dp_neon; - - op_blend_pt_funcs[SP][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_pt_p_c_dpan_neon; - op_blend_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_pt_pas_c_dpan_neon; - op_blend_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_pt_pan_c_dpan_neon; - op_blend_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_blend_pt_p_can_dpan_neon; - op_blend_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_blend_pt_pas_can_dpan_neon; - op_blend_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_blend_pt_pan_can_dpan_neon; - op_blend_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_pt_p_caa_dpan_neon; - op_blend_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_pt_pas_caa_dpan_neon; - op_blend_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_pt_pan_caa_dpan_neon; -} -#endif - -/*-----*/ - -/* blend_rel pixel x color -> dst */ - -#ifdef BUILD_NEON - -#define _op_blend_rel_p_c_dpan_neon _op_blend_p_c_dpan_neon -#define _op_blend_rel_pas_c_dpan_neon _op_blend_pas_c_dpan_neon -#define _op_blend_rel_pan_c_dpan_neon _op_blend_pan_c_dpan_neon -#define _op_blend_rel_p_can_dpan_neon _op_blend_p_can_dpan_neon -#define _op_blend_rel_pas_can_dpan_neon _op_blend_pas_can_dpan_neon -#define _op_blend_rel_pan_can_dpan_neon _op_blend_pan_can_dpan_neon -#define _op_blend_rel_p_caa_dpan_neon _op_blend_p_caa_dpan_neon -#define _op_blend_rel_pas_caa_dpan_neon _op_blend_pas_caa_dpan_neon -#define _op_blend_rel_pan_caa_dpan_neon _op_blend_pan_caa_dpan_neon - -static void -init_blend_rel_pixel_color_span_funcs_neon(void) -{ - op_blend_rel_span_funcs[SP][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_rel_p_c_dpan_neon; - op_blend_rel_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_rel_pas_c_dpan_neon; - op_blend_rel_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_rel_pan_c_dpan_neon; - op_blend_rel_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_blend_rel_p_can_dpan_neon; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_blend_rel_pas_can_dpan_neon; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_blend_rel_pan_can_dpan_neon; - op_blend_rel_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_rel_p_caa_dpan_neon; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_rel_pas_caa_dpan_neon; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_rel_pan_caa_dpan_neon; -} -#endif - -#ifdef BUILD_NEON - -#define _op_blend_rel_pt_p_c_dpan_neon _op_blend_pt_p_c_dpan_neon -#define _op_blend_rel_pt_pas_c_dpan_neon _op_blend_pt_pas_c_dpan_neon -#define _op_blend_rel_pt_pan_c_dpan_neon _op_blend_pt_pan_c_dpan_neon -#define _op_blend_rel_pt_p_can_dpan_neon _op_blend_pt_p_can_dpan_neon -#define _op_blend_rel_pt_pas_can_dpan_neon _op_blend_pt_pas_can_dpan_neon -#define _op_blend_rel_pt_pan_can_dpan_neon _op_blend_pt_pan_can_dpan_neon -#define _op_blend_rel_pt_p_caa_dpan_neon _op_blend_pt_p_caa_dpan_neon -#define _op_blend_rel_pt_pas_caa_dpan_neon _op_blend_pt_pas_caa_dpan_neon -#define _op_blend_rel_pt_pan_caa_dpan_neon _op_blend_pt_pan_caa_dpan_neon - -static void -init_blend_rel_pixel_color_pt_funcs_neon(void) -{ - op_blend_rel_pt_funcs[SP][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_rel_pt_p_c_dpan_neon; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_rel_pt_pas_c_dpan_neon; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_NEON] = _op_blend_rel_pt_pan_c_dpan_neon; - op_blend_rel_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_blend_rel_pt_p_can_dpan_neon; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_blend_rel_pt_pas_can_dpan_neon; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_blend_rel_pt_pan_can_dpan_neon; - op_blend_rel_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_rel_pt_p_caa_dpan_neon; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_rel_pt_pas_caa_dpan_neon; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_blend_rel_pt_pan_caa_dpan_neon; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_sse3.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_sse3.c deleted file mode 100644 index 4ee31f5..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_color_sse3.c +++ /dev/null @@ -1,543 +0,0 @@ -/* blend pixel x color --> dst */ - -#ifdef BUILD_SSE3 - -static void -_op_blend_p_c_dp_sse3(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - - DATA32 alpha; - - const __m128i c_packed = _mm_set_epi32(c, c, c, c); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - DATA32 sc = MUL4_SYM(c, *s); - alpha = 256 - (sc >> 24); - *d = sc + MUL_256(alpha, *d); - d++; s++; l--; - }, - { /* A4OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i sc0 = mul4_sym_sse3(c_packed, s0); - __m128i a0 = sub4_alpha_sse3(sc0); - __m128i mul0 = mul_256_sse3(a0, d0); - - d0 = _mm_add_epi32(sc0, mul0); - - _mm_store_si128((__m128i *)d, d0); - - d += 4; s += 4; l -= 4; - }, - { /* A8OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - __m128i sc0 = mul4_sym_sse3(c_packed, s0); - __m128i sc1 = mul4_sym_sse3(c_packed, s1); - - __m128i a0 = sub4_alpha_sse3(sc0); - __m128i a1 = sub4_alpha_sse3(sc1); - - __m128i mul0 = mul_256_sse3(a0, d0); - __m128i mul1 = mul_256_sse3(a1, d1); - - d0 = _mm_add_epi32(sc0, mul0); - d1 = _mm_add_epi32(sc1, mul1); - - _mm_store_si128((__m128i *)d, d0); - _mm_store_si128((__m128i *)(d+4), d1); - - d += 8; s += 8; l -= 8; - }) -} - -static void -_op_blend_pan_c_dp_sse3(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - - DATA32 c_a = c & 0xFF000000; - DATA32 alpha = 256 - (c >> 24); - - const __m128i c_packed = _mm_set_epi32(c, c, c, c); - const __m128i c_alpha = _mm_set_epi32(c_a, c_a, c_a, c_a); - const __m128i a0 = _mm_set_epi32(alpha, alpha, alpha, alpha); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - *d = ((c & 0xff000000) + MUL3_SYM(c, *s)) + MUL_256(alpha, *d); - d++; s++; l--; - }, - { /* A4OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i r0 = _mm_add_epi32(mul3_sym_sse3(c_packed, s0), - mul_256_sse3(a0, d0)); - - r0 = _mm_add_epi32(r0, c_alpha); - - _mm_store_si128((__m128i *)d, r0); - - d += 4; s += 4; l -= 4; - }, - { /* A8OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - __m128i r0 = _mm_add_epi32(mul3_sym_sse3(c_packed, s0), - mul_256_sse3(a0, d0)); - - __m128i r1 = _mm_add_epi32(mul3_sym_sse3(c_packed, s1), - mul_256_sse3(a0, d1)); - - r0 = _mm_add_epi32(r0, c_alpha); - r1 = _mm_add_epi32(r1, c_alpha); - - _mm_store_si128((__m128i *)d, r0); - _mm_store_si128((__m128i *)(d+4), r1); - - d += 8; s += 8; l -= 8; - }) -} - -static void -_op_blend_p_can_dp_sse3(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - - int alpha; - const __m128i c_packed = _mm_set_epi32(c, c, c, c); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - alpha = 256 - (*s >> 24); - *d = ((*s & 0xff000000) + MUL3_SYM(c, *s)) + MUL_256(alpha, *d); - d++; s++; l--; - }, - { /* A4OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i a0 = sub4_alpha_sse3(s0); - - __m128i r0 = _mm_add_epi32(mul3_sym_sse3(c_packed, s0), - mul_256_sse3(a0, d0)); - - r0 = _mm_add_epi32(r0, _mm_and_si128(s0, A_MASK_SSE3)); - - _mm_store_si128((__m128i *)d, r0); - - d += 4; s += 4; l -= 4; - }, - { - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - __m128i a0 = sub4_alpha_sse3(s0); - __m128i a1 = sub4_alpha_sse3(s1); - - __m128i r0 = _mm_add_epi32(mul3_sym_sse3(c_packed, s0), - mul_256_sse3(a0, d0)); - - __m128i r1 = _mm_add_epi32(mul3_sym_sse3(c_packed, s1), - mul_256_sse3(a1, d1)); - - r0 = _mm_add_epi32(r0, _mm_and_si128(s0, A_MASK_SSE3)); - r1 = _mm_add_epi32(r1, _mm_and_si128(s1, A_MASK_SSE3)); - - _mm_store_si128((__m128i *)d, r0); - _mm_store_si128((__m128i *)(d+4), r1); - - d += 8; s += 8; l -= 8; - }) -} - -static void -_op_blend_pan_can_dp_sse3(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - - const __m128i c_packed = _mm_set_epi32(c, c, c, c); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - *d++ = 0xff000000 + MUL3_SYM(c, *s); - s++; l--; - }, - { /* A4OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - - __m128i r0 = mul3_sym_sse3(c_packed, s0); - r0 = _mm_add_epi32(r0, A_MASK_SSE3); - - _mm_store_si128((__m128i *)d, r0); - - d += 4; s += 4; l -= 4; - }, - { /* A8OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - - __m128i r0 = mul3_sym_sse3(c_packed, s0); - __m128i r1 = mul3_sym_sse3(c_packed, s1); - - r0 = _mm_add_epi32(r0, A_MASK_SSE3); - r1 = _mm_add_epi32(r1, A_MASK_SSE3); - - _mm_store_si128((__m128i *)d, r0); - _mm_store_si128((__m128i *)(d+4), r1); - - d += 8; s += 8; l -= 8; - }) -} - -static void -_op_blend_p_caa_dp_sse3(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - - int alpha; - c = 1 + (c & 0xff); - const __m128i c_packed = _mm_set_epi32(c, c, c, c); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - DATA32 sc = MUL_256(c, *s); - alpha = 256 - (sc >> 24); - *d = sc + MUL_256(alpha, *d); - d++; - s++; - l--; - }, - { /* A4OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128 ((__m128i *)d); - - __m128i sc0 = mul_256_sse3(c_packed, s0); - __m128i a0 = sub4_alpha_sse3(sc0); - - __m128i r0 = _mm_add_epi32(mul_256_sse3(a0, d0), sc0); - - _mm_store_si128((__m128i *)d, r0); - - d += 4; s += 4; l -= 4; - }, - { - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - __m128i sc0 = mul_256_sse3(c_packed, s0); - __m128i sc1 = mul_256_sse3(c_packed, s1); - - __m128i a0 = sub4_alpha_sse3(sc0); - __m128i a1 = sub4_alpha_sse3(sc1); - - __m128i r0 = _mm_add_epi32(mul_256_sse3(a0, d0), sc0); - __m128i r1 = _mm_add_epi32(mul_256_sse3(a1, d1), sc1); - - _mm_store_si128((__m128i *)d, r0); - _mm_store_si128((__m128i *)(d+4), r1); - - d += 8; s += 8; l -= 8; - }) -} - -static void -_op_blend_pan_caa_dp_sse3(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - - c = 1 + (c & 0xff); - const __m128i c_packed = _mm_set_epi32(c, c, c,c); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - *d = INTERP_256(c, *s, *d); - d++; s++; l--; - }, - { /* A4OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i r0 = interp4_256_sse3(c_packed, s0, d0); - - _mm_store_si128((__m128i *)d, r0); - - d += 4; s += 4; l -= 4; - }, - { - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - __m128i r0 = interp4_256_sse3(c_packed, s0, d0); - __m128i r1 = interp4_256_sse3(c_packed, s1, d1); - - _mm_store_si128((__m128i *)d, r0); - _mm_store_si128((__m128i *)(d+4), r1); - - d += 8; s += 8; l -= 8; - }) -} - -#define _op_blend_pas_c_dp_sse3 _op_blend_p_c_dp_sse3 -#define _op_blend_pas_can_dp_sse3 _op_blend_p_can_dp_sse3 -#define _op_blend_pas_caa_dp_sse3 _op_blend_p_caa_dp_sse3 - -#define _op_blend_p_c_dpan_sse3 _op_blend_p_c_dp_sse3 -#define _op_blend_pas_c_dpan_sse3 _op_blend_pas_c_dp_sse3 -#define _op_blend_pan_c_dpan_sse3 _op_blend_pan_c_dp_sse3 -#define _op_blend_p_can_dpan_sse3 _op_blend_p_can_dp_sse3 -#define _op_blend_pas_can_dpan_sse3 _op_blend_pas_can_dp_sse3 -#define _op_blend_pan_can_dpan_sse3 _op_blend_pan_can_dp_sse3 -#define _op_blend_p_caa_dpan_sse3 _op_blend_p_caa_dp_sse3 -#define _op_blend_pas_caa_dpan_sse3 _op_blend_pas_caa_dp_sse3 -#define _op_blend_pan_caa_dpan_sse3 _op_blend_pan_caa_dp_sse3 - -static void -init_blend_pixel_color_span_funcs_sse3(void) -{ - op_blend_span_funcs[SP][SM_N][SC][DP][CPU_SSE3] = _op_blend_p_c_dp_sse3; - op_blend_span_funcs[SP_AS][SM_N][SC][DP][CPU_SSE3] = _op_blend_pas_c_dp_sse3; - op_blend_span_funcs[SP_AN][SM_N][SC][DP][CPU_SSE3] = _op_blend_pan_c_dp_sse3; - op_blend_span_funcs[SP][SM_N][SC_AN][DP][CPU_SSE3] = _op_blend_p_can_dp_sse3; - op_blend_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_SSE3] = _op_blend_pas_can_dp_sse3; - op_blend_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_SSE3] = _op_blend_pan_can_dp_sse3; - op_blend_span_funcs[SP][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_p_caa_dp_sse3; - op_blend_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_pas_caa_dp_sse3; - op_blend_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_pan_caa_dp_sse3; - - op_blend_span_funcs[SP][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_p_c_dpan_sse3; - op_blend_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_pas_c_dpan_sse3; - op_blend_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_pan_c_dpan_sse3; - op_blend_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_SSE3] = _op_blend_p_can_dpan_sse3; - op_blend_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_SSE3] = _op_blend_pas_can_dpan_sse3; - op_blend_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_SSE3] = _op_blend_pan_can_dpan_sse3; - op_blend_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_p_caa_dpan_sse3; - op_blend_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_pas_caa_dpan_sse3; - op_blend_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_pan_caa_dpan_sse3; -} - -#define _op_blend_pt_p_c_dp_sse3 NULL - -#define _op_blend_pt_pas_c_dp_sse3 _op_blend_pt_p_c_dp_sse3 -#define _op_blend_pt_pan_c_dp_sse3 _op_blend_pt_p_c_dp_sse3 -#define _op_blend_pt_p_can_dp_sse3 _op_blend_pt_p_c_dp_sse3 -#define _op_blend_pt_pas_can_dp_sse3 _op_blend_pt_p_c_dp_sse3 -#define _op_blend_pt_pan_can_dp_sse3 _op_blend_pt_p_c_dp_sse3 -#define _op_blend_pt_p_caa_dp_sse3 _op_blend_pt_p_c_dp_sse3 -#define _op_blend_pt_pas_caa_dp_sse3 _op_blend_pt_p_c_dp_sse3 -#define _op_blend_pt_pan_caa_dp_sse3 _op_blend_pt_p_c_dp_sse3 - -#define _op_blend_pt_p_c_dpan_sse3 _op_blend_pt_p_c_dp_sse3 -#define _op_blend_pt_pas_c_dpan_sse3 _op_blend_pt_pas_c_dp_sse3 -#define _op_blend_pt_pan_c_dpan_sse3 _op_blend_pt_pan_c_dp_sse3 -#define _op_blend_pt_p_can_dpan_sse3 _op_blend_pt_p_can_dp_sse3 -#define _op_blend_pt_pas_can_dpan_sse3 _op_blend_pt_pas_can_dp_sse3 -#define _op_blend_pt_pan_can_dpan_sse3 _op_blend_pt_pan_can_dp_sse3 -#define _op_blend_pt_p_caa_dpan_sse3 _op_blend_pt_p_caa_dp_sse3 -#define _op_blend_pt_pas_caa_dpan_sse3 _op_blend_pt_pas_caa_dp_sse3 -#define _op_blend_pt_pan_caa_dpan_sse3 _op_blend_pt_pan_caa_dp_sse3 - -static void -init_blend_pixel_color_pt_funcs_sse3(void) -{ - op_blend_pt_funcs[SP][SM_N][SC][DP][CPU_SSE3] = _op_blend_pt_p_c_dp_sse3; - op_blend_pt_funcs[SP_AS][SM_N][SC][DP][CPU_SSE3] = _op_blend_pt_pas_c_dp_sse3; - op_blend_pt_funcs[SP_AN][SM_N][SC][DP][CPU_SSE3] = _op_blend_pt_pan_c_dp_sse3; - op_blend_pt_funcs[SP][SM_N][SC_AN][DP][CPU_SSE3] = _op_blend_pt_p_can_dp_sse3; - op_blend_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_SSE3] = _op_blend_pt_pas_can_dp_sse3; - op_blend_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_SSE3] = _op_blend_pt_pan_can_dp_sse3; - op_blend_pt_funcs[SP][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_pt_p_caa_dp_sse3; - op_blend_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_pt_pas_caa_dp_sse3; - op_blend_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_pt_pan_caa_dp_sse3; - - op_blend_pt_funcs[SP][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_pt_p_c_dpan_sse3; - op_blend_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_pt_pas_c_dpan_sse3; - op_blend_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_pt_pan_c_dpan_sse3; - op_blend_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_SSE3] = _op_blend_pt_p_can_dpan_sse3; - op_blend_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_SSE3] = _op_blend_pt_pas_can_dpan_sse3; - op_blend_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_SSE3] = _op_blend_pt_pan_can_dpan_sse3; - op_blend_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_pt_p_caa_dpan_sse3; - op_blend_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_pt_pas_caa_dpan_sse3; - op_blend_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_pt_pan_caa_dpan_sse3; -} - -/*-----*/ - -/* blend_rel pixel x color -> dst */ - -static void -_op_blend_rel_p_c_dp_sse3(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - - int alpha; - - const __m128i c_packed = _mm_set_epi32(c, c, c, c); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - DATA32 sc = MUL4_SYM(c, *s); - alpha = 256 - (sc >> 24); - *d = MUL_SYM(*d >> 24, sc) + MUL_256(alpha, *d); - d++; s++; l--; - }, - { /* A4OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i sc0 = mul4_sym_sse3(c_packed, s0); - __m128i a0 = sub4_alpha_sse3(sc0); - - __m128i l0 = mul_sym_sse3(_mm_srli_epi32(d0, 24), sc0); - __m128i r0 = mul_256_sse3(a0, d0); - - r0 = _mm_add_epi32(l0, r0); - - _mm_store_si128((__m128i *)d, r0); - - d += 4; s += 4; l -= 4; - }, - { /* A8OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - __m128i sc0 = mul4_sym_sse3(c_packed, s0); - __m128i sc1 = mul4_sym_sse3(c_packed, s1); - - __m128i a0 = sub4_alpha_sse3(sc0); - __m128i a1 = sub4_alpha_sse3(sc1); - - __m128i l0 = mul_sym_sse3(_mm_srli_epi32(d0, 24), sc0); - __m128i r0 = mul_256_sse3(a0, d0); - - __m128i l1 = mul_sym_sse3(_mm_srli_epi32(d1, 24), sc1); - __m128i r1 = mul_256_sse3(a1, d1); - - r0 = _mm_add_epi32(l0, r0); - r1 = _mm_add_epi32(l1, r1); - - _mm_store_si128((__m128i *)d, r0); - _mm_store_si128((__m128i *)(d+4), r1); - - d += 8; s += 8; l -= 8; - }) -} - -#define _op_blend_rel_pas_c_dp_sse3 _op_blend_rel_p_c_dp_sse3 -#define _op_blend_rel_pan_c_dp_sse3 _op_blend_rel_p_c_dp_sse3 -#define _op_blend_rel_p_can_dp_sse3 _op_blend_rel_p_c_dp_sse3 -#define _op_blend_rel_pas_can_dp_sse3 _op_blend_rel_p_c_dp_sse3 -#define _op_blend_rel_pan_can_dp_sse3 _op_blend_rel_p_c_dp_sse3 -#define _op_blend_rel_p_caa_dp_sse3 _op_blend_rel_p_c_dp_sse3 -#define _op_blend_rel_pas_caa_dp_sse3 _op_blend_rel_p_c_dp_sse3 -#define _op_blend_rel_pan_caa_dp_sse3 _op_blend_rel_p_c_dp_sse3 - -#define _op_blend_rel_p_c_dpan_sse3 _op_blend_p_c_dpan_sse3 -#define _op_blend_rel_pas_c_dpan_sse3 _op_blend_pas_c_dpan_sse3 -#define _op_blend_rel_pan_c_dpan_sse3 _op_blend_pan_c_dpan_sse3 -#define _op_blend_rel_p_can_dpan_sse3 _op_blend_p_can_dpan_sse3 -#define _op_blend_rel_pas_can_dpan_sse3 _op_blend_pas_can_dpan_sse3 -#define _op_blend_rel_pan_can_dpan_sse3 _op_blend_pan_can_dpan_sse3 -#define _op_blend_rel_p_caa_dpan_sse3 _op_blend_p_caa_dpan_sse3 -#define _op_blend_rel_pas_caa_dpan_sse3 _op_blend_pas_caa_dpan_sse3 -#define _op_blend_rel_pan_caa_dpan_sse3 _op_blend_pan_caa_dpan_sse3 - -static void -init_blend_rel_pixel_color_span_funcs_sse3(void) -{ - op_blend_rel_span_funcs[SP][SM_N][SC][DP][CPU_SSE3] = _op_blend_rel_p_c_dp_sse3; - op_blend_rel_span_funcs[SP_AS][SM_N][SC][DP][CPU_SSE3] = _op_blend_rel_pas_c_dp_sse3; - op_blend_rel_span_funcs[SP_AN][SM_N][SC][DP][CPU_SSE3] = _op_blend_rel_pan_c_dp_sse3; - op_blend_rel_span_funcs[SP][SM_N][SC_AN][DP][CPU_SSE3] = _op_blend_rel_p_can_dp_sse3; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_SSE3] = _op_blend_rel_pas_can_dp_sse3; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_SSE3] = _op_blend_rel_pan_can_dp_sse3; - op_blend_rel_span_funcs[SP][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_rel_p_caa_dp_sse3; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_rel_pas_caa_dp_sse3; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_rel_pan_caa_dp_sse3; - - op_blend_rel_span_funcs[SP][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_rel_p_c_dpan_sse3; - op_blend_rel_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_rel_pas_c_dpan_sse3; - op_blend_rel_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_rel_pan_c_dpan_sse3; - op_blend_rel_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_SSE3] = _op_blend_rel_p_can_dpan_sse3; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_SSE3] = _op_blend_rel_pas_can_dpan_sse3; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_SSE3] = _op_blend_rel_pan_can_dpan_sse3; - op_blend_rel_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_rel_p_caa_dpan_sse3; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_rel_pas_caa_dpan_sse3; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_rel_pan_caa_dpan_sse3; -} - -#define _op_blend_rel_pt_p_c_dp_sse3 NULL - -#define _op_blend_rel_pt_pas_c_dp_sse3 _op_blend_rel_pt_p_c_dp_sse3 -#define _op_blend_rel_pt_pan_c_dp_sse3 _op_blend_rel_pt_p_c_dp_sse3 -#define _op_blend_rel_pt_p_can_dp_sse3 _op_blend_rel_pt_p_c_dp_sse3 -#define _op_blend_rel_pt_pas_can_dp_sse3 _op_blend_rel_pt_p_c_dp_sse3 -#define _op_blend_rel_pt_pan_can_dp_sse3 _op_blend_rel_pt_p_c_dp_sse3 -#define _op_blend_rel_pt_p_caa_dp_sse3 _op_blend_rel_pt_p_c_dp_sse3 -#define _op_blend_rel_pt_pas_caa_dp_sse3 _op_blend_rel_pt_p_c_dp_sse3 -#define _op_blend_rel_pt_pan_caa_dp_sse3 _op_blend_rel_pt_p_c_dp_sse3 - -#define _op_blend_rel_pt_p_c_dpan_sse3 _op_blend_pt_p_c_dpan_sse3 -#define _op_blend_rel_pt_pas_c_dpan_sse3 _op_blend_pt_pas_c_dpan_sse3 -#define _op_blend_rel_pt_pan_c_dpan_sse3 _op_blend_pt_pan_c_dpan_sse3 -#define _op_blend_rel_pt_p_can_dpan_sse3 _op_blend_pt_p_can_dpan_sse3 -#define _op_blend_rel_pt_pas_can_dpan_sse3 _op_blend_pt_pas_can_dpan_sse3 -#define _op_blend_rel_pt_pan_can_dpan_sse3 _op_blend_pt_pan_can_dpan_sse3 -#define _op_blend_rel_pt_p_caa_dpan_sse3 _op_blend_pt_p_caa_dpan_sse3 -#define _op_blend_rel_pt_pas_caa_dpan_sse3 _op_blend_pt_pas_caa_dpan_sse3 -#define _op_blend_rel_pt_pan_caa_dpan_sse3 _op_blend_pt_pan_caa_dpan_sse3 - -static void -init_blend_rel_pixel_color_pt_funcs_sse3(void) -{ - op_blend_rel_pt_funcs[SP][SM_N][SC][DP][CPU_SSE3] = _op_blend_rel_pt_p_c_dp_sse3; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC][DP][CPU_SSE3] = _op_blend_rel_pt_pas_c_dp_sse3; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC][DP][CPU_SSE3] = _op_blend_rel_pt_pan_c_dp_sse3; - op_blend_rel_pt_funcs[SP][SM_N][SC_AN][DP][CPU_SSE3] = _op_blend_rel_pt_p_can_dp_sse3; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_SSE3] = _op_blend_rel_pt_pas_can_dp_sse3; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_SSE3] = _op_blend_rel_pt_pan_can_dp_sse3; - op_blend_rel_pt_funcs[SP][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_rel_pt_p_caa_dp_sse3; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_rel_pt_pas_caa_dp_sse3; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_rel_pt_pan_caa_dp_sse3; - - op_blend_rel_pt_funcs[SP][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_rel_pt_p_c_dpan_sse3; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_rel_pt_pas_c_dpan_sse3; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_SSE3] = _op_blend_rel_pt_pan_c_dpan_sse3; - op_blend_rel_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_SSE3] = _op_blend_rel_pt_p_can_dpan_sse3; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_SSE3] = _op_blend_rel_pt_pas_can_dpan_sse3; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_SSE3] = _op_blend_rel_pt_pan_can_dpan_sse3; - op_blend_rel_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_rel_pt_p_caa_dpan_sse3; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_rel_pt_pas_caa_dpan_sse3; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_SSE3] = _op_blend_rel_pt_pan_caa_dpan_sse3; -} - -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_i386.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_i386.c deleted file mode 100644 index 9b5abe6..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_i386.c +++ /dev/null @@ -1,217 +0,0 @@ -/* blend pixel --> dst */ - -#ifdef BUILD_MMX -static void -_op_blend_p_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_256, mm6) - while (d < e) - { - MOV_P2R(*s, mm2, mm0) - MOV_RA2R(mm2, mm1) - movq_r2r(mm6, mm3); - psubw_r2r(mm1, mm3); - - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm3, mm1) - - paddw_r2r(mm2, mm1); - MOV_R2P(mm1, *d, mm0) - s++; d++; - } -} - -static void -_op_blend_pas_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - _op_blend_p_dp_mmx(s, m, c, d, l); - return; - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_256, mm6) - while (d < e) - { - switch (*s & 0xff000000) - { - case 0: - break; - case 0xff000000: - *d = *s; - break; - default : - MOV_P2R(*s, mm2, mm0) - MOV_RA2R(mm2, mm1) - movq_r2r(mm6, mm3); - psubw_r2r(mm1, mm3); - - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm3, mm1) - - paddw_r2r(mm2, mm1); - MOV_R2P(mm1, *d, mm0) - break; - } - s++; d++; - } -} - -#define _op_blend_pan_dp_mmx NULL - -#define _op_blend_p_dpan_mmx _op_blend_p_dp_mmx -#define _op_blend_pas_dpan_mmx _op_blend_pas_dp_mmx -#define _op_blend_pan_dpan_mmx _op_blend_pan_dp_mmx - -static void -init_blend_pixel_span_funcs_mmx(void) -{ - op_blend_span_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_blend_p_dp_mmx; - op_blend_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_blend_pas_dp_mmx; - op_blend_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_MMX] = _op_blend_pan_dp_mmx; - - op_blend_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_blend_p_dpan_mmx; - op_blend_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_blend_pas_dpan_mmx; - op_blend_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_MMX] = _op_blend_pan_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_blend_pt_p_dp_mmx(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) { - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_256, mm6) - MOV_P2R(s, mm2, mm0) - MOV_RA2R(mm2, mm1) - movq_r2r(mm6, mm3); - psubw_r2r(mm1, mm3); - - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm3, mm1) - - paddw_r2r(mm2, mm1); - MOV_R2P(mm1, *d, mm0) -} - - -#define _op_blend_pt_pan_dp_mmx NULL -#define _op_blend_pt_pas_dp_mmx _op_blend_pt_p_dp_mmx - -#define _op_blend_pt_p_dpan_mmx _op_blend_pt_p_dp_mmx -#define _op_blend_pt_pan_dpan_mmx _op_blend_pt_pan_dp_mmx -#define _op_blend_pt_pas_dpan_mmx _op_blend_pt_pas_dp_mmx - -static void -init_blend_pixel_pt_funcs_mmx(void) -{ - op_blend_pt_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_blend_pt_p_dp_mmx; - op_blend_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_blend_pt_pas_dp_mmx; - op_blend_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_MMX] = _op_blend_pt_pan_dp_mmx; - - op_blend_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_blend_pt_p_dpan_mmx; - op_blend_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_blend_pt_pas_dpan_mmx; - op_blend_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_MMX] = _op_blend_pt_pan_dpan_mmx; -} -#endif - -/*-----*/ - -/* blend_rel pixel -> dst */ - -#ifdef BUILD_MMX -static void -_op_blend_rel_p_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_256, mm6) - MOV_A2R(ALPHA_255, mm5) - while (d < e) - { - MOV_P2R(*s, mm2, mm0) - MOV_RA2R(mm2, mm1) - movq_r2r(mm6, mm3); - psubw_r2r(mm1, mm3); - - MOV_P2R(*d, mm1, mm0) - MOV_RA2R(mm1, mm4) - MUL4_256_R2R(mm3, mm1) - - MUL4_SYM_R2R(mm4, mm2, mm5) - paddw_r2r(mm2, mm1); - MOV_R2P(mm1, *d, mm0) - s++; d++; - } -} - -static void -_op_blend_rel_pan_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_256, mm6) - MOV_A2R(ALPHA_255, mm5) - while (d < e) - { - MOV_P2R(*s, mm2, mm0) - MOV_PA2R(*d, mm1) - MUL4_SYM_R2R(mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - s++; d++; - } -} - -#define _op_blend_rel_pas_dp_mmx _op_blend_rel_p_dp_mmx - -#define _op_blend_rel_p_dpan_mmx _op_blend_p_dpan_mmx -#define _op_blend_rel_pan_dpan_mmx _op_blend_pan_dpan_mmx -#define _op_blend_rel_pas_dpan_mmx _op_blend_pas_dpan_mmx - -static void -init_blend_rel_pixel_span_funcs_mmx(void) -{ - op_blend_rel_span_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_blend_rel_p_dp_mmx; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_blend_rel_pas_dp_mmx; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_MMX] = _op_blend_rel_pan_dp_mmx; - - op_blend_rel_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_p_dpan_mmx; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_pas_dpan_mmx; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_pan_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_blend_rel_pt_p_dp_mmx(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) { - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_256, mm6) - MOV_A2R(ALPHA_255, mm5) - - MOV_P2R(s, mm2, mm0) - MOV_RA2R(mm2, mm1) - psubw_r2r(mm1, mm6); - - MOV_P2R(*d, mm1, mm0) - MOV_RA2R(mm1, mm4) - MUL4_256_R2R(mm6, mm1) - - MUL4_SYM_R2R(mm4, mm2, mm5) - paddw_r2r(mm2, mm1); - MOV_R2P(mm1, *d, mm0) -} - -#define _op_blend_rel_pt_pas_dp_mmx _op_blend_rel_pt_p_dp_mmx -#define _op_blend_rel_pt_pan_dp_mmx _op_blend_rel_pt_p_dp_mmx - -#define _op_blend_rel_pt_p_dpan_mmx _op_blend_pt_p_dpan_mmx -#define _op_blend_rel_pt_pas_dpan_mmx _op_blend_pt_pas_dpan_mmx -#define _op_blend_rel_pt_pan_dpan_mmx _op_blend_pt_pan_dpan_mmx - -static void -init_blend_rel_pixel_pt_funcs_mmx(void) -{ - op_blend_rel_pt_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_blend_rel_pt_p_dp_mmx; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_blend_rel_pt_pas_dp_mmx; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_MMX] = _op_blend_rel_pt_pan_dp_mmx; - - op_blend_rel_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_pt_p_dpan_mmx; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_pt_pas_dpan_mmx; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_pt_pan_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_.c deleted file mode 100644 index a9d0f4b..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_.c +++ /dev/null @@ -1,189 +0,0 @@ -/* blend pixel x mask --> dst */ - -#ifdef BUILD_C -static void -_op_blend_p_mas_dp(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - alpha = *m; - switch(alpha) - { - case 0: - break; - case 255: - alpha = 256 - (*s >> 24); - *d = *s + MUL_256(alpha, *d); - break; - default: - c = MUL_SYM(alpha, *s); - alpha = 256 - (c >> 24); - *d = c + MUL_256(alpha, *d); - break; - } - m++; s++; d++; - }); -} - -static void -_op_blend_pas_mas_dp(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - alpha = *m; - switch(alpha) - { - case 0: - break; - case 255: - *d = *s; - break; - default: - alpha++; - *d = INTERP_256(alpha, *s, *d); - break; - } - m++; s++; d++; - }); -} - -static void -_op_blend_pan_mas_dp(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - alpha = *m; - switch(alpha) - { - case 0: - break; - case 255: - *d = *s; - break; - default: - alpha++; - *d = INTERP_256(alpha, *s, *d); - break; - } - m++; s++; d++; - }); -} - - -#define _op_blend_p_mas_dpan _op_blend_p_mas_dp -#define _op_blend_pas_mas_dpan _op_blend_pas_mas_dp -#define _op_blend_pan_mas_dpan _op_blend_pan_mas_dp - -static void -init_blend_pixel_mask_span_funcs_c(void) -{ - op_blend_span_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_blend_p_mas_dp; - op_blend_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_blend_pas_mas_dp; - op_blend_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_C] = _op_blend_pan_mas_dp; - - op_blend_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_p_mas_dpan; - op_blend_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_pas_mas_dpan; - op_blend_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_pan_mas_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_blend_pt_p_mas_dp(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = MUL_SYM(m, s); - c = 256 - (s >> 24); - *d = s + MUL_256(c, *d); -} - -static void -_op_blend_pt_pan_mas_dp(DATA32 s, DATA8 m, DATA32 c __UNUSED__, DATA32 *d) { - *d = INTERP_256(m + 1, s, *d); -} - -#define _op_blend_pt_pas_mas_dp _op_blend_pt_p_mas_dp - -#define _op_blend_pt_p_mas_dpan _op_blend_pt_p_mas_dp -#define _op_blend_pt_pas_mas_dpan _op_blend_pt_pas_mas_dp -#define _op_blend_pt_pan_mas_dpan _op_blend_pt_pan_mas_dp - -static void -init_blend_pixel_mask_pt_funcs_c(void) -{ - op_blend_pt_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_blend_pt_p_mas_dp; - op_blend_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_blend_pt_pas_mas_dp; - op_blend_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_C] = _op_blend_pt_pan_mas_dp; - - op_blend_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_pt_p_mas_dpan; - op_blend_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_pt_pas_mas_dpan; - op_blend_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_pt_pan_mas_dpan; -} -#endif - -/*-----*/ - -/* blend_rel pixel x mask -> dst */ - -#ifdef BUILD_C -static void -_op_blend_rel_p_mas_dp(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - c = MUL_SYM(*m, *s); - alpha = 256 - (c >> 24); - *d = MUL_SYM(*d >> 24, c) + MUL_256(alpha, *d); - d++; m++; s++; - }); -} - -#define _op_blend_rel_pas_mas_dp _op_blend_rel_p_mas_dp -#define _op_blend_rel_pan_mas_dp _op_blend_rel_p_mas_dp - -#define _op_blend_rel_p_mas_dpan _op_blend_p_mas_dpan -#define _op_blend_rel_pas_mas_dpan _op_blend_pas_mas_dpan -#define _op_blend_rel_pan_mas_dpan _op_blend_pan_mas_dpan - -static void -init_blend_rel_pixel_mask_span_funcs_c(void) -{ - op_blend_rel_span_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_blend_rel_p_mas_dp; - op_blend_rel_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_blend_rel_pas_mas_dp; - op_blend_rel_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_C] = _op_blend_rel_pan_mas_dp; - - op_blend_rel_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_rel_p_mas_dpan; - op_blend_rel_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_rel_pas_mas_dpan; - op_blend_rel_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_rel_pan_mas_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_blend_rel_pt_p_mas_dp(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = MUL_SYM(m, s); - c = 256 - (s >> 24); - *d = MUL_SYM(*d >> 24, s) + MUL_256(c, *d); -} - -#define _op_blend_rel_pt_pas_mas_dp _op_blend_rel_pt_p_mas_dp -#define _op_blend_rel_pt_pan_mas_dp _op_blend_rel_pt_p_mas_dp - -#define _op_blend_rel_pt_p_mas_dpan _op_blend_pt_p_mas_dpan -#define _op_blend_rel_pt_pas_mas_dpan _op_blend_pt_pas_mas_dpan -#define _op_blend_rel_pt_pan_mas_dpan _op_blend_pt_pan_mas_dpan - -static void -init_blend_rel_pixel_mask_pt_funcs_c(void) -{ - op_blend_rel_pt_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_blend_rel_pt_p_mas_dp; - op_blend_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_blend_rel_pt_pas_mas_dp; - op_blend_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_C] = _op_blend_rel_pt_pan_mas_dp; - - op_blend_rel_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_rel_pt_p_mas_dpan; - op_blend_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_rel_pt_pas_mas_dpan; - op_blend_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_C] = _op_blend_rel_pt_pan_mas_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_i386.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_i386.c deleted file mode 100644 index 4fa50a9..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_i386.c +++ /dev/null @@ -1,157 +0,0 @@ -/* blend pixel x mask --> dst */ - -#ifdef BUILD_MMX -static void -_op_blend_pas_mas_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_256, mm6) - while (d < e) { - l = (*s >> 24); - switch(*m & l) - { - case 0: - break; - case 255: - *d = *s; - break; - default: - l = 1 + *m; - MOV_A2R(l, mm3) - MOV_P2R(*s, mm2, mm0) - MUL4_256_R2R(mm3, mm2) - - MOV_RA2R(mm2, mm1) - movq_r2r(mm6, mm3); - psubw_r2r(mm1, mm3); - - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm3, mm1) - - paddw_r2r(mm2, mm1); - MOV_R2P(mm1, *d, mm0) - break; - } - m++; s++; d++; - } -} - -static void -_op_blend_pan_mas_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = d + l; - MOV_A2R(ALPHA_255, mm5) - pxor_r2r(mm0, mm0); - while (d < e) { - l = *m; - switch(l) - { - case 0: - break; - case 255: - *d = *s; - break; - default: - l++; - MOV_A2R(l, mm3) - MOV_P2R(*s, mm2, mm0) - MOV_P2R(*d, mm1, mm0) - INTERP_256_R2R(mm3, mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - break; - } - m++; s++; d++; - } -} - -#define _op_blend_p_mas_dp_mmx _op_blend_pas_mas_dp_mmx - -#define _op_blend_p_mas_dpan_mmx _op_blend_p_mas_dp_mmx -#define _op_blend_pan_mas_dpan_mmx _op_blend_pan_mas_dp_mmx -#define _op_blend_pas_mas_dpan_mmx _op_blend_pas_mas_dp_mmx - -static void -init_blend_pixel_mask_span_funcs_mmx(void) -{ - op_blend_span_funcs[SP][SM_AS][SC_N][DP][CPU_MMX] = _op_blend_p_mas_dp_mmx; - op_blend_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_MMX] = _op_blend_pas_mas_dp_mmx; - op_blend_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_MMX] = _op_blend_pan_mas_dp_mmx; - - op_blend_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_p_mas_dpan_mmx; - op_blend_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_pas_mas_dpan_mmx; - op_blend_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_pan_mas_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_blend_pt_p_mas_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - c = m + 1; - MOV_A2R(c, mm3) - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_256, mm6) - MOV_P2R(s, mm2, mm0) - MUL4_256_R2R(mm3, mm2) - - MOV_RA2R(mm2, mm1) - psubw_r2r(mm1, mm6); - - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm6, mm1) - - paddw_r2r(mm2, mm1); - MOV_R2P(mm1, *d, mm0) -} - -#define _op_blend_pt_pan_mas_dp_mmx _op_blend_pt_p_mas_dp_mmx -#define _op_blend_pt_pas_mas_dp_mmx _op_blend_pt_p_mas_dp_mmx - -#define _op_blend_pt_p_mas_dpan_mmx _op_blend_pt_p_mas_dp_mmx -#define _op_blend_pt_pas_mas_dpan_mmx _op_blend_pt_pas_mas_dp_mmx -#define _op_blend_pt_pan_mas_dpan_mmx _op_blend_pt_pan_mas_dp_mmx - -static void -init_blend_pixel_mask_pt_funcs_mmx(void) -{ - op_blend_pt_funcs[SP][SM_AS][SC_N][DP][CPU_MMX] = _op_blend_pt_p_mas_dp_mmx; - op_blend_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_MMX] = _op_blend_pt_pas_mas_dp_mmx; - op_blend_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_MMX] = _op_blend_pt_pan_mas_dp_mmx; - - op_blend_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_pt_p_mas_dpan_mmx; - op_blend_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_pt_pas_mas_dpan_mmx; - op_blend_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_pt_pan_mas_dpan_mmx; -} -#endif - -/*-----*/ - -/* blend_rel pixel x mask -> dst */ - -#ifdef BUILD_MMX - -#define _op_blend_rel_p_mas_dpan_mmx _op_blend_p_mas_dpan_mmx -#define _op_blend_rel_pas_mas_dpan_mmx _op_blend_pas_mas_dpan_mmx -#define _op_blend_rel_pan_mas_dpan_mmx _op_blend_pan_mas_dpan_mmx - -static void -init_blend_rel_pixel_mask_span_funcs_mmx(void) -{ - op_blend_rel_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_p_mas_dpan_mmx; - op_blend_rel_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_pas_mas_dpan_mmx; - op_blend_rel_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_pan_mas_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX - -#define _op_blend_rel_pt_p_mas_dpan_mmx _op_blend_pt_p_mas_dpan_mmx -#define _op_blend_rel_pt_pas_mas_dpan_mmx _op_blend_pt_pas_mas_dpan_mmx -#define _op_blend_rel_pt_pan_mas_dpan_mmx _op_blend_pt_pan_mas_dpan_mmx - -static void -init_blend_rel_pixel_mask_pt_funcs_mmx(void) -{ - op_blend_rel_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_pt_p_mas_dpan_mmx; - op_blend_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_pt_pas_mas_dpan_mmx; - op_blend_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_blend_rel_pt_pan_mas_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_neon.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_neon.c deleted file mode 100644 index b252a67..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_neon.c +++ /dev/null @@ -1,129 +0,0 @@ -/* blend pixel x mask --> dst */ - -#ifdef BUILD_NEON -static void -_op_blend_pas_mas_dp_neon(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - alpha = *m; - switch(alpha) - { - case 0: - break; - case 255: - *d = *s; - break; - default: - alpha++; - *d = INTERP_256(alpha, *s, *d); - break; - } - m++; s++; d++; - }); -} - -static void -_op_blend_pan_mas_dp_neon(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e; - int alpha; - UNROLL8_PLD_WHILE(d, l, e, - { - alpha = *m; - switch(alpha) - { - case 0: - break; - case 255: - *d = *s; - break; - default: - alpha++; - *d = INTERP_256(alpha, *s, *d); - break; - } - m++; s++; d++; - }); -} - -#define _op_blend_p_mas_dp_neon _op_blend_pas_mas_dp_neon - -#define _op_blend_p_mas_dpan_neon _op_blend_p_mas_dp_neon -#define _op_blend_pan_mas_dpan_neon _op_blend_pan_mas_dp_neon -#define _op_blend_pas_mas_dpan_neon _op_blend_pas_mas_dp_neon - -static void -init_blend_pixel_mask_span_funcs_neon(void) -{ - op_blend_span_funcs[SP][SM_AS][SC_N][DP][CPU_NEON] = _op_blend_p_mas_dp_neon; - op_blend_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_NEON] = _op_blend_pas_mas_dp_neon; - op_blend_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_NEON] = _op_blend_pan_mas_dp_neon; - - op_blend_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_p_mas_dpan_neon; - op_blend_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_pas_mas_dpan_neon; - op_blend_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_pan_mas_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_blend_pt_p_mas_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = MUL_SYM(m, s); - c = 256 - (s >> 24); - *d = s + MUL_256(c, *d); -} - -#define _op_blend_pt_pan_mas_dp_neon _op_blend_pt_p_mas_dp_neon -#define _op_blend_pt_pas_mas_dp_neon _op_blend_pt_p_mas_dp_neon - -#define _op_blend_pt_p_mas_dpan_neon _op_blend_pt_p_mas_dp_neon -#define _op_blend_pt_pas_mas_dpan_neon _op_blend_pt_pas_mas_dp_neon -#define _op_blend_pt_pan_mas_dpan_neon _op_blend_pt_pan_mas_dp_neon - -static void -init_blend_pixel_mask_pt_funcs_neon(void) -{ - op_blend_pt_funcs[SP][SM_AS][SC_N][DP][CPU_NEON] = _op_blend_pt_p_mas_dp_neon; - op_blend_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_NEON] = _op_blend_pt_pas_mas_dp_neon; - op_blend_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_NEON] = _op_blend_pt_pan_mas_dp_neon; - - op_blend_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_pt_p_mas_dpan_neon; - op_blend_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_pt_pas_mas_dpan_neon; - op_blend_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_pt_pan_mas_dpan_neon; -} -#endif - -/*-----*/ - -/* blend_rel pixel x mask -> dst */ - -#ifdef BUILD_NEON - -#define _op_blend_rel_p_mas_dpan_neon _op_blend_p_mas_dpan_neon -#define _op_blend_rel_pas_mas_dpan_neon _op_blend_pas_mas_dpan_neon -#define _op_blend_rel_pan_mas_dpan_neon _op_blend_pan_mas_dpan_neon - -static void -init_blend_rel_pixel_mask_span_funcs_neon(void) -{ - op_blend_rel_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_p_mas_dpan_neon; - op_blend_rel_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_pas_mas_dpan_neon; - op_blend_rel_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_pan_mas_dpan_neon; -} -#endif - -#ifdef BUILD_NEON - -#define _op_blend_rel_pt_p_mas_dpan_neon _op_blend_pt_p_mas_dpan_neon -#define _op_blend_rel_pt_pas_mas_dpan_neon _op_blend_pt_pas_mas_dpan_neon -#define _op_blend_rel_pt_pan_mas_dpan_neon _op_blend_pt_pan_mas_dpan_neon - -static void -init_blend_rel_pixel_mask_pt_funcs_neon(void) -{ - op_blend_rel_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_pt_p_mas_dpan_neon; - op_blend_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_pt_pas_mas_dpan_neon; - op_blend_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_pt_pan_mas_dpan_neon; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_sse3.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_sse3.c deleted file mode 100644 index 617b9e2..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_mask_sse3.c +++ /dev/null @@ -1,300 +0,0 @@ -/* blend pixel x mask --> dst */ - -#ifdef BUILD_SSE3 - -static void -_op_blend_p_mas_dp_sse3(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { - - int alpha; - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - alpha = *m; - c = MUL_SYM(alpha, *s); - alpha = 256 - (c >> 24); - *d = c + MUL_256(alpha, *d); - m++; s++; d++; l--; - }, - { /* A4OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - __m128i m0 = _mm_set_epi32(m[3], m[2], m[1], m[0]); - - __m128i c0 = mul_sym_sse3(m0, s0); - __m128i a0 = sub4_alpha_sse3(c0); - __m128i r0 = mul_256_sse3(a0, d0); - - r0 = _mm_add_epi32(r0, c0); - - _mm_store_si128((__m128i *)d, r0); - - m += 4; s += 4; d += 4; l -= 4; - }, - { /* A8OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - __m128i m0 = _mm_set_epi32(m[3], m[2], m[1], m[0]); - - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - __m128i m1 = _mm_set_epi32(m[7], m[6], m[5], m[4]); - - __m128i c0 = mul_sym_sse3(m0, s0); - __m128i c1 = mul_sym_sse3(m1, s1); - - __m128i a0 = sub4_alpha_sse3(c0); - __m128i a1 = sub4_alpha_sse3(c1); - - __m128i r0 = mul_256_sse3(a0, d0); - __m128i r1 = mul_256_sse3(a1, d1); - - r0 = _mm_add_epi32(r0, c0); - r1 = _mm_add_epi32(r1, c1); - - _mm_store_si128((__m128i *)d, r0); - _mm_store_si128((__m128i *)(d+4), r1); - - m += 8; s += 8; d += 8; l -= 8; - }) -} - -static void -_op_blend_pas_mas_dp_sse3(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) { - - const __m128i ones = _mm_set_epi32(1, 1, 1, 1); - int alpha; - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - alpha = *m; - switch(alpha) - { - case 0: - break; - case 255: - *d = *s; - break; - default: - alpha++; - *d = INTERP_256(alpha, *s, *d); - break; - } - m++; s++; d++; l--; - }, - { /*A4OP */ - - if ((m[3] | m[2] | m[1] | m[0]) == 0) { - m += 4; s += 4; d += 4; l -= 4; - continue; - } - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - __m128i m0 = _mm_set_epi32(m[3], m[2], m[1], m[0]); - - __m128i zm0 = _mm_cmpeq_epi32(m0, _mm_setzero_si128()); - - m0 = _mm_add_epi32(m0, ones); - - __m128i r0 = interp4_256_sse3(m0, s0, d0); - - r0 = _mm_and_si128(~zm0, r0); - d0 = _mm_and_si128(zm0, d0); - - d0 = _mm_add_epi32(r0, d0); - - _mm_store_si128((__m128i *)d, d0); - - m += 4; s += 4; d += 4; l -= 4; - }, - { /* A8OP */ - - if ((m[7] | m[6] | m[5] | m[4] | m[3] | m[2] | m[1] | m[0]) == 0) { - m += 8; s += 8; d += 8; l -= 8; - continue; - } - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - __m128i m0 = _mm_set_epi32(m[3], m[2], m[1], m[0]); - - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - __m128i m1 = _mm_set_epi32(m[7], m[6], m[5], m[4]); - - __m128i zm0 = _mm_cmpeq_epi32(m0, _mm_setzero_si128()); - __m128i zm1 = _mm_cmpeq_epi32(m1, _mm_setzero_si128()); - - m0 = _mm_add_epi32(m0, ones); - m1 = _mm_add_epi32(m1, ones); - - __m128i r0 = interp4_256_sse3(m0, s0, d0); - __m128i r1 = interp4_256_sse3(m1, s1, d1); - - r0 = _mm_and_si128(~zm0, r0); - d0 = _mm_and_si128(zm0, d0); - - r1 = _mm_and_si128(~zm1, r1); - d1 = _mm_and_si128(zm1, d1); - - d0 = _mm_add_epi32(d0, r0); - d1 = _mm_add_epi32(d1, r1); - - _mm_store_si128((__m128i *)d, d0); - _mm_store_si128((__m128i *)(d+4), d1); - - m += 8; s += 8; d += 8; l -= 8; - }) -} - -#define _op_blend_pan_mas_dp_sse3 _op_blend_pas_mas_dp_sse3 - -#define _op_blend_p_mas_dpan_sse3 _op_blend_p_mas_dp_sse3 -#define _op_blend_pas_mas_dpan_sse3 _op_blend_pas_mas_dp_sse3 -#define _op_blend_pan_mas_dpan_sse3 _op_blend_pan_mas_dp_sse3 - -static void -init_blend_pixel_mask_span_funcs_sse3(void) -{ - op_blend_span_funcs[SP][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_p_mas_dp_sse3; - op_blend_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_pas_mas_dp_sse3; - op_blend_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_pan_mas_dp_sse3; - - op_blend_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_p_mas_dpan_sse3; - op_blend_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_pas_mas_dpan_sse3; - op_blend_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_pan_mas_dpan_sse3; -} - -#define _op_blend_pt_p_mas_dp_sse3 NULL -#define _op_blend_pt_pan_mas_dp_sse3 NULL - -#define _op_blend_pt_pas_mas_dp_sse3 _op_blend_pt_p_mas_dp_sse3 - -#define _op_blend_pt_p_mas_dpan_sse3 _op_blend_pt_p_mas_dp_sse3 -#define _op_blend_pt_pas_mas_dpan_sse3 _op_blend_pt_pas_mas_dp_sse3 -#define _op_blend_pt_pan_mas_dpan_sse3 _op_blend_pt_pan_mas_dp_sse3 - -static void -init_blend_pixel_mask_pt_funcs_sse3(void) -{ - op_blend_pt_funcs[SP][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_pt_p_mas_dp_sse3; - op_blend_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_pt_pas_mas_dp_sse3; - op_blend_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_pt_pan_mas_dp_sse3; - - op_blend_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_pt_p_mas_dpan_sse3; - op_blend_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_pt_pas_mas_dpan_sse3; - op_blend_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_pt_pan_mas_dpan_sse3; -} - -/*-----*/ - -/* blend_rel pixel x mask -> dst */ - -static void -_op_blend_rel_p_mas_dp_sse3(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { - - int alpha; - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - c = MUL_SYM(*m, *s); - alpha = 256 - (c >> 24); - *d = MUL_SYM(*d >> 24, c) + MUL_256(alpha, *d); - d++; m++; s++; l--; - }, - { /* A4OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i m0 = _mm_set_epi32(m[3], m[2], m[1], m[0]); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i c0 = mul_sym_sse3(m0, s0); - __m128i a0 = sub4_alpha_sse3(c0); - - __m128i l0 = mul_sym_sse3(_mm_srli_epi32(d0, 24), c0); - __m128i r0 = mul_256_sse3(a0, d0); - - d0 = _mm_add_epi32(l0, r0); - - _mm_store_si128((__m128i *)d, d0); - - d += 4; m += 4; s += 4; l -= 4; - }, - { /* A8OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i m0 = _mm_set_epi32(m[3], m[2], m[1], m[0]); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - __m128i m1 = _mm_set_epi32(m[7], m[6], m[5], m[4]); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - __m128i c0 = mul_sym_sse3(m0, s0); - __m128i c1 = mul_sym_sse3(m1, s1); - - __m128i a0 = sub4_alpha_sse3(c0); - __m128i a1 = sub4_alpha_sse3(c1); - - __m128i l0 = mul_sym_sse3(_mm_srli_epi32(d0, 24), c0); - __m128i r0 = mul_256_sse3(a0, d0); - - __m128i l1 = mul_sym_sse3(_mm_srli_epi32(d1, 24), c1); - __m128i r1 = mul_256_sse3(a1, d1); - - d0 = _mm_add_epi32(l0, r0); - d1 = _mm_add_epi32(l1, r1); - - _mm_store_si128((__m128i *)d, d0); - _mm_store_si128((__m128i *)(d+4), d1); - - d += 8; m += 8; s += 8; l -= 8; - }) -} - -#define _op_blend_rel_pas_mas_dp_sse3 _op_blend_rel_p_mas_dp_sse3 -#define _op_blend_rel_pan_mas_dp_sse3 _op_blend_rel_p_mas_dp_sse3 - -#define _op_blend_rel_p_mas_dpan_sse3 _op_blend_p_mas_dpan_sse3 -#define _op_blend_rel_pas_mas_dpan_sse3 _op_blend_pas_mas_dpan_sse3 -#define _op_blend_rel_pan_mas_dpan_sse3 _op_blend_pan_mas_dpan_sse3 - -static void -init_blend_rel_pixel_mask_span_funcs_sse3(void) -{ - op_blend_rel_span_funcs[SP][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_rel_p_mas_dp_sse3; - op_blend_rel_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_rel_pas_mas_dp_sse3; - op_blend_rel_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_rel_pan_mas_dp_sse3; - - op_blend_rel_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_p_mas_dpan_sse3; - op_blend_rel_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_pas_mas_dpan_sse3; - op_blend_rel_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_pan_mas_dpan_sse3; -} - -#define _op_blend_rel_pt_p_mas_dp_sse3 NULL - -#define _op_blend_rel_pt_pas_mas_dp_sse3 _op_blend_rel_pt_p_mas_dp_sse3 -#define _op_blend_rel_pt_pan_mas_dp_sse3 _op_blend_rel_pt_p_mas_dp_sse3 - -#define _op_blend_rel_pt_p_mas_dpan_sse3 _op_blend_pt_p_mas_dpan_sse3 -#define _op_blend_rel_pt_pas_mas_dpan_sse3 _op_blend_pt_pas_mas_dpan_sse3 -#define _op_blend_rel_pt_pan_mas_dpan_sse3 _op_blend_pt_pan_mas_dpan_sse3 - -static void -init_blend_rel_pixel_mask_pt_funcs_sse3(void) -{ - op_blend_rel_pt_funcs[SP][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_rel_pt_p_mas_dp_sse3; - op_blend_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_rel_pt_pas_mas_dp_sse3; - op_blend_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_rel_pt_pan_mas_dp_sse3; - - op_blend_rel_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_pt_p_mas_dpan_sse3; - op_blend_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_pt_pas_mas_dpan_sse3; - op_blend_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_pt_pan_mas_dpan_sse3; -} - -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_neon.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_neon.c deleted file mode 100644 index 1cb50b6..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_neon.c +++ /dev/null @@ -1,530 +0,0 @@ -/* blend pixel --> dst */ - -#ifdef BUILD_NEON -static void -_op_blend_p_dp_neon(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { -#define AP "blend_p_dp_" - asm volatile ( - ".fpu neon \n\t" - //** init - "vmov.i8 q8, $0x1 \n\t" - - AP "loopchoose: \n\t" - // If aligned already - straight to octs - "andS %[tmp], %[d],$0x1f \n\t" - "beq "AP"octloops \n\t" - - "andS %[tmp], %[d],$0xf \n\t" - "beq "AP"quadloops \n\t" - - "andS %[tmp], %[d],$0x4 \n\t" - "beq "AP"dualloop \n\t" - - // Only ever executes once, fall through to dual - AP "singleloop: \n\t" - "vld1.32 d0[0], [%[s]]! \n\t" - "vld1.32 d4[0], [%[d]] \n\t" - - "vmvn.u8 d8, d0 \n\t" - "vshr.u32 d8, d8, #24 \n\t" - - "vmul.u32 d8, d16, d8 \n\t" - - "vmull.u8 q6, d4,d8 \n\t" - "vqrshrn.u16 d8, q6, #8 \n\t" - // Add to 's' - "vqadd.u8 q2, q4,q0 \n\t" - - "vst1.32 d4[0], [%[d]] \n\t" - "add %[d], #4 \n\t" - - // Can we go the fast path? - "andS %[tmp], %[d],$0x1f \n\t" - "beq "AP"octloops \n\t" - - "andS %[tmp], %[d],$0x0f \n\t" - "beq "AP"quadloops \n\t" - - - AP "dualloop: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #32 \n\t" - "blt "AP"loopout \n\t" - - AP "dualloopint: \n\t" - //** Dual Loop - "vldm %[s]!, {d0} \n\t" - "vldr d4, [%[d]] \n\t" - - "vmvn.u8 d8, d0 \n\t" - "vshr.u32 d8, d8, #24 \n\t" - - "vmul.u32 d8, d16, d8 \n\t" - - "vmull.u8 q6, d4,d8 \n\t" - "vqrshrn.u16 d8, q6, #8 \n\t" - // Add to 's' - "vqadd.u8 d4, d8,d0 \n\t" - "vstr d4, [%[d]] \n\t" - "add %[d], #8 \n\t" - - "ands %[tmp], %[d], $0x1f \n\t" - "beq "AP"octloops \n\t" - - AP"quadloops: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #32 \n\t" - "blt "AP"loopout \n\t" - - "vldm %[s]!, {d0,d1) \n\t" - "vldm %[d], {d4,d5} \n\t" - - - // Copy s.a into q2 (>> 24) & subtract from 255 - "vmvn.u8 q4, q0 \n\t" - "vshr.u32 q4, q4,$0x18 \n\t" - - // Multiply into all fields - "vmul.u32 q4, q8,q4 \n\t" - - // a * d (clobbering 'd'/q7) - "vmull.u8 q6, d4,d8 \n\t" - "vmull.u8 q2, d5,d9 \n\t" - - // Shift & narrow it - "vqrshrn.u16 d8, q6, #8 \n\t" - "vqrshrn.u16 d9, q2, #8 \n\t" - - // Add to s - "vqadd.u8 q2, q4,q0 \n\t" - - // Write it - "vstm %[d]!, {d4,d5} \n\t" - - AP "octloops: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #32 \n\t" - "ble "AP"loopout \n\t" - - "sub %[tmp],%[e],#64 \n\t" - - - AP "octloopint:\n\t" - //** Oct loop - "vldm %[s]!, {d0,d1,d2,d3) \n\t" - "vldm %[d], {d4,d5,d6,d7} \n\t" - "pld [%[s], #64] \n\t" - - - // Copy s.a into q2 (>> 24) & subtract from 255 - "vmvn.u8 q4, q0 \n\t" - "vmvn.u8 q5, q1 \n\t" - "vshr.u32 q4, q4,$0x18 \n\t" - "vshr.u32 q5, q5,$0x18\n\t" - - // Multiply into all fields - "vmul.u32 q4, q8,q4 \n\t" - "vmul.u32 q5, q8,q5 \n\t" - - - // a * d (clobbering 'd'/q7) - "vmull.u8 q6, d4,d8 \n\t" - "vmull.u8 q2, d5,d9 \n\t" - "vmull.u8 q7, d6,d10 \n\t" - "vmull.u8 q3, d7,d11 \n\t" - - "cmp %[tmp], %[d]\n\t" - - // Shift & narrow it - "vqrshrn.u16 d8, q6, #8 \n\t" - "vqrshrn.u16 d9, q2, #8 \n\t" - "vqrshrn.u16 d10, q7, #8 \n\t" - "vqrshrn.u16 d11, q3, #8 \n\t" - - - // Add to s - "vqadd.u8 q2, q4,q0 \n\t" - "vqadd.u8 q3, q5,q1 \n\t" - - // Write it - "vstm %[d]!, {d4,d5,d6,d7} \n\t" - - "bhi "AP"octloopint\n\t" - - AP "loopout: \n\t" - "cmp %[d], %[e] \n\t" - "beq "AP"done \n\t" - "sub %[tmp],%[e], %[d] \n\t" - "cmp %[tmp],$0x04 \n\t" - "ble "AP"singleloop2 \n\t" - - AP "dualloop2: \n\t" - "sub %[tmp],%[e],$0x7 \n\t" - AP "dualloop2int: \n\t" - //** Trailing double - - "vldm %[s]!, {d0} \n\t" - "vldm %[d], {d4} \n\t" - - "vmvn.u8 d8, d0 \n\t" - "vshr.u32 d8, d8, #24 \n\t" - - "vmul.u32 d8, d16, d8 \n\t" - - "vmull.u8 q6, d4,d8 \n\t" - "vqrshrn.u16 d8, q6, #8 \n\t" - // Add to 's' - "vqadd.u8 d4, d8,d0 \n\t" - - "vstr.32 d4, [%[d]] \n\t" - "add %[d], #8 \n\t" - - "cmp %[tmp], %[d] \n\t" - "bhi "AP"dualloop2int \n\t" - - // Single ?? - "cmp %[e], %[d] \n\t" - "beq "AP"done \n\t" - - AP"singleloop2: \n\t" - "vld1.32 d0[0], [%[s]] \n\t" - "vld1.32 d4[0], [%[d]] \n\t" - - "vmvn.u8 d8, d0 \n\t" - "vshr.u32 d8, d8, #24 \n\t" - - "vmul.u32 d8, d8, d16 \n\t" - - "vmull.u8 q6, d8,d4 \n\t" - "vqrshrn.u16 d8, q6, #8 \n\t" - // Add to 's' - "vqadd.u8 d0, d0,d8 \n\t" - "vst1.32 d0[0], [%[d]] \n\t" - - //** Trailing single - - AP"done:\n\t" -//"sub %[tmp], %[e], #4 \n\t" -//"vmov.i32 d0, $0xffff0000 \n\t" -//"vst1.32 d0[0], [%[tmp]] \n\t" - - - : // output regs - // Input - : [e] "r" (d + l), [d] "r" (d), [s] "r" (s), [c] "r" (c), - [tmp] "r" (7) - : "q0", "q1", "q2","q3", "q4","q5","q6", "q7","q8","memory" // clobbered - ); -#undef AP - -} - -static void -_op_blend_pas_dp_neon(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { -#define AP "blend_pas_dp_" - DATA32 *e = d + l,*tmp = e + 32,*pl=(void*)912; - asm volatile ( - ".fpu neon \n\t" - "vmov.i8 q8, #1 \n\t" - AP"loopchoose: \n\t" - // If aliged - go as fast we can - "andS %[tmp], %[d], #31 \n\t" - "beq "AP"quadstart \n\t" - - // See if we can at least do our double loop - "andS %[tmp], %[d], $0x7 \n\t" - "beq "AP"dualstart \n\t" - - // Ugly single word version - AP "singleloop: \n\t" - "vld1.32 d0[0], [%[s]]! \n\t" - "vld1.32 d4[0], [%[d]] \n\t" - - "vmvn.u8 d8, d0 \n\t" - - "vshr.u32 d8, d8,$0x18 \n\t" - - // Mulitply into all fields - "vmul.u32 d8, d8, d16 \n\t" - - // Multiply out - "vmull.u8 q6, d8, d4 \n\t" - - "vqrshrn.u16 d8, q6, #8 \n\t" - - // Add to s - "vqadd.u8 d0, d0,d8 \n\t" - "vst1.32 d0[0], [%[d]]! \n\t" - - AP"dualstart: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #32 \n\t" - "blt "AP"loopout \n\t" - - // If aligned - go as fast we can - "andS %[tmp], %[d], #31 \n\t" - "beq "AP"quadstart \n\t" - - - AP"dualloop: \n\t" - - "vldm %[s]!, {d0) \n\t" - "vldm %[d], {d4} \n\t" - - // Subtract from 255 (ie negate) and extract alpha channel - "vmvn.u8 d8, d0 \n\t" - "vshr.u32 d8, d8,$0x18 \n\t" - - // Mulitply into all fields - "vmul.u32 d8, d8, d16 \n\t" - - // Multiply out - "vmull.u8 q6, d8, d4 \n\t" - - "vqrshrn.u16 d8, q6, #8 \n\t" - - // Add to s - "vqadd.u8 d0, d0,d8 \n\t" - "vstm %[d]!, {d0} \n\t" - - "andS %[tmp], %[d], $0x1f \n\t" - "bne "AP"dualloop \n\t" - - - AP"quadstart: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #32 \n\t" - "blt "AP"loopout \n\t" - - "sub %[tmp], %[e], #31 \n\t" - - AP"quadloop:\n\t" - "vldm %[s]!, {d0,d1,d2,d3) \n\t" - "vldm %[d], {d4,d5,d6,d7} \n\t" - - // Subtract from 255 (ie negate) and extract alpha channel - "vmvn.u8 q4, q0 \n\t" - "vmvn.u8 q5, q1 \n\t" - "vshr.u32 q4, q4,$0x18 \n\t" - "vshr.u32 q5, q5,$0x18 \n\t" - - // Prepare to preload - "add %[pl], %[s], #32 \n\t" - - // Mulitply into all fields - "vmul.u32 q4, q4, q8 \n\t" - "vmul.u32 q5, q5, q8 \n\t" - "pld [%[pl]] \n\t" - - // Multiply out - "vmull.u8 q6, d8, d4 \n\t" - "vmull.u8 q7, d10, d6 \n\t" - "vmull.u8 q2, d9, d5 \n\t" - "vmull.u8 q3, d11, d7 \n\t" - - "add %[pl], %[d], #32 \n\t" - - "vqrshrn.u16 d8, q6, #8 \n\t" - "vqrshrn.u16 d10, q7, #8 \n\t" - "vqrshrn.u16 d9, q2, #8 \n\t" - "vqrshrn.u16 d11, q3, #8 \n\t" - "pld [%[pl]] \n\t" - - "cmp %[tmp], %[pl] \n\t" - // Add to s - "vqadd.u8 q0, q0,q4 \n\t" - "vqadd.u8 q1, q1,q5 \n\t" - - "vstm %[d]!, {d0,d1,d2,d3} \n\t" - - "bhi "AP"quadloop \n\t" - - AP "loopout: \n\t" - "cmp %[d], %[e] \n\t" - "beq "AP"done \n\t" - - "sub %[tmp],%[e], %[d] \n\t" - "cmp %[tmp],$0x04 \n\t" - "beq "AP"singleloop2 \n\t" - - "sub %[tmp],%[e],$0x7 \n\t" - - AP"dualloop2: \n\t" - "vldm %[s]!, {d0) \n\t" - "vldm %[d], {d4} \n\t" - - // Subtract from 255 (ie negate) and extract alpha channel - "vmvn.u8 d8, d0 \n\t" - "vshr.u32 d8, d8,$0x18 \n\t" - - // Mulitply into all fields - "vmul.u32 d8, d8, d16 \n\t" - - // Multiply out - "vmull.u8 q6, d8, d4 \n\t" - - "vqrshrn.u16 d8, q6, #8 \n\t" - - // Add to s - "vqadd.u8 d0, d0,d8 \n\t" - - "vstm %[d]!, {d0} \n\t" - "cmp %[tmp], %[d] \n\t" - - "bhi "AP"dualloop2 \n\t" - - // Single ?? - "cmp %[e], %[d] \n\t" - "beq "AP"done \n\t" - - AP "singleloop2: \n\t" - "vld1.32 d0[0], [%[s]] \n\t" - "vld1.32 d4[0], [%[d]] \n\t" - - "vmvn.u8 d8, d0 \n\t" - - "vshr.u32 d8, d8,$0x18 \n\t" - - // Mulitply into all fields - "vmul.u32 d8, d8, d16 \n\t" - - // Multiply out - "vmull.u8 q6, d8, d4 \n\t" - - "vqrshrn.u16 d8, q6, #8 \n\t" - - // Add to s - "vqadd.u8 d0, d0,d8 \n\t" - - "vst1.32 d0[0], [%[d]] \n\t" - AP "done:\n\t" - - - : /* Out */ - : /* In */ [s] "r" (s), [e] "r" (e), [d] "r" (d), [tmp] "r" (tmp), - [pl] "r" (pl) - : /* Clobbered */ - "q0","q1","q2","q3","q4","q5","q6","q7","q8","memory" - ); -#undef AP -} - -#define _op_blend_pan_dp_neon NULL - -#define _op_blend_p_dpan_neon _op_blend_p_dp_neon -#define _op_blend_pas_dpan_neon _op_blend_pas_dp_neon -#define _op_blend_pan_dpan_neon _op_blend_pan_dp_neon - -static void -init_blend_pixel_span_funcs_neon(void) -{ - op_blend_span_funcs[SP][SM_N][SC_N][DP][CPU_NEON] = _op_blend_p_dp_neon; - op_blend_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_NEON] = _op_blend_pas_dp_neon; - op_blend_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_NEON] = _op_blend_pan_dp_neon; - - op_blend_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_NEON] = _op_blend_p_dpan_neon; - op_blend_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_NEON] = _op_blend_pas_dpan_neon; - op_blend_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_NEON] = _op_blend_pan_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_blend_pt_p_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - c = 256 - (s >> 24); - *d = s + MUL_256(c, *d); -} - - -#define _op_blend_pt_pan_dp_neon NULL -#define _op_blend_pt_pas_dp_neon _op_blend_pt_p_dp_neon - -#define _op_blend_pt_p_dpan_neon _op_blend_pt_p_dp_neon -#define _op_blend_pt_pan_dpan_neon _op_blend_pt_pan_dp_neon -#define _op_blend_pt_pas_dpan_neon _op_blend_pt_pas_dp_neon - -static void -init_blend_pixel_pt_funcs_neon(void) -{ - op_blend_pt_funcs[SP][SM_N][SC_N][DP][CPU_NEON] = _op_blend_pt_p_dp_neon; - op_blend_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_NEON] = _op_blend_pt_pas_dp_neon; - op_blend_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_NEON] = _op_blend_pt_pan_dp_neon; - - op_blend_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_NEON] = _op_blend_pt_p_dpan_neon; - op_blend_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_NEON] = _op_blend_pt_pas_dpan_neon; - op_blend_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_NEON] = _op_blend_pt_pan_dpan_neon; -} -#endif - -/*-----*/ - -/* blend_rel pixel -> dst */ - -#ifdef BUILD_NEON -static void -_op_blend_rel_p_dp_neon(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - while (d < e) { - l = 256 - (*s >> 24); - c = 1 + (*d >> 24); - *d = MUL_256(c, *s) + MUL_256(l, *d); - d++; - s++; - } -} - -static void -_op_blend_rel_pan_dp_neon(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - while (d < e) { - c = 1 + (*d >> 24); - *d++ = MUL_256(c, *s); - s++; - } -} - -#define _op_blend_rel_pas_dp_neon _op_blend_rel_p_dp_neon - -#define _op_blend_rel_p_dpan_neon _op_blend_p_dpan_neon -#define _op_blend_rel_pan_dpan_neon _op_blend_pan_dpan_neon -#define _op_blend_rel_pas_dpan_neon _op_blend_pas_dpan_neon - -static void -init_blend_rel_pixel_span_funcs_neon(void) -{ - op_blend_rel_span_funcs[SP][SM_N][SC_N][DP][CPU_NEON] = _op_blend_rel_p_dp_neon; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_NEON] = _op_blend_rel_pas_dp_neon; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_NEON] = _op_blend_rel_pan_dp_neon; - - op_blend_rel_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_p_dpan_neon; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_pas_dpan_neon; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_pan_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_blend_rel_pt_p_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - c = 256 - (s >> 24); - *d = MUL_SYM(*d >> 24, s) + MUL_256(c, *d); -} - -#define _op_blend_rel_pt_pas_dp_neon _op_blend_rel_pt_p_dp_neon -#define _op_blend_rel_pt_pan_dp_neon _op_blend_rel_pt_p_dp_neon - -#define _op_blend_rel_pt_p_dpan_neon _op_blend_pt_p_dpan_neon -#define _op_blend_rel_pt_pas_dpan_neon _op_blend_pt_pas_dpan_neon -#define _op_blend_rel_pt_pan_dpan_neon _op_blend_pt_pan_dpan_neon - -static void -init_blend_rel_pixel_pt_funcs_neon(void) -{ - op_blend_rel_pt_funcs[SP][SM_N][SC_N][DP][CPU_NEON] = _op_blend_rel_pt_p_dp_neon; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_NEON] = _op_blend_rel_pt_pas_dp_neon; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_NEON] = _op_blend_rel_pt_pan_dp_neon; - - op_blend_rel_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_pt_p_dpan_neon; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_pt_pas_dpan_neon; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_NEON] = _op_blend_rel_pt_pan_dpan_neon; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_sse3.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_sse3.c deleted file mode 100644 index 69c597c..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_sse3.c +++ /dev/null @@ -1,315 +0,0 @@ -/* blend pixel --> dst */ - -#ifdef BUILD_SSE3 - -static void -_op_blend_p_dp_sse3(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - int alpha = 256 - (*s >> 24); - *d = *s + MUL_256(alpha, *d); - s++; d++; l--; - }, - { /* A4OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i a0 = sub4_alpha_sse3(s0); - __m128i mul0 = mul_256_sse3(a0, d0); - d0 = _mm_add_epi32(mul0, s0); - - _mm_store_si128((__m128i *)d, d0); - - s += 4; d += 4; l -= 4; - }, - { /* A8OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - __m128i a0 = sub4_alpha_sse3(s0); - __m128i a1 = sub4_alpha_sse3(s1); - - __m128i mul0 = mul_256_sse3(a0, d0); - __m128i mul1 = mul_256_sse3(a1, d1); - - d0 = _mm_add_epi32(mul0, s0); - d1 = _mm_add_epi32(mul1, s1); - - _mm_store_si128((__m128i *)d, d0); - _mm_store_si128((__m128i *)(d+4), d1); - - s += 8; d += 8; l -= 8; - }) -} - -static void -_op_blend_pas_dp_sse3(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - - int alpha; - - const __m128i zero = _mm_setzero_si128(); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - switch (*s & 0xff000000) - { - case 0: - break; - case 0xff000000: - *d = *s; - break; - default: - alpha = 256 - (*s >> 24); - *d = *s + MUL_256(alpha, *d); - break; - } - s++; d++; l--; - }, - { /* A4OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i a0 = sub4_alpha_sse3(s0); - __m128i mul0 = mul_256_sse3(a0, d0); - - mul0 = _mm_add_epi32(s0, mul0); - - __m128i zmask0 = _mm_cmpeq_epi32(_mm_srli_epi32(s0, 24), zero); - __m128i imask0 = ~zmask0; - - mul0 = _mm_and_si128(imask0, mul0); - d0 = _mm_and_si128(zmask0, d0); - - d0 = _mm_add_epi32(mul0, d0); - - _mm_store_si128((__m128i *)d, d0); - - s += 4; d += 4; l -= 4; - }, - { /* A8OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - __m128i d1 = _mm_load_si128((__m128i *)(d+4)); - - __m128i a0 = sub4_alpha_sse3(s0); - __m128i a1 = sub4_alpha_sse3(s1); - - __m128i mul0 = mul_256_sse3(a0, d0); - __m128i mul1 = mul_256_sse3(a1, d1); - - mul0 = _mm_add_epi32(s0, mul0); - mul1 = _mm_add_epi32(s1, mul1); - - __m128i zmask0 = _mm_cmpeq_epi32(_mm_srli_epi32(s0, 24), zero); - __m128i zmask1 = _mm_cmpeq_epi32(_mm_srli_epi32(s1, 24), zero); - - __m128i imask0 = ~zmask0; - __m128i imask1 = ~zmask1; - - mul0 = _mm_and_si128(imask0, mul0); - d0 = _mm_and_si128(zmask0, d0); - - mul1 = _mm_and_si128(imask1, mul1); - d1 = _mm_and_si128(zmask1, d1); - - d0 = _mm_add_epi32(mul0, d0); - d1 = _mm_add_epi32(mul1, d1); - - _mm_store_si128((__m128i *)d, d0); - _mm_store_si128((__m128i *)(d+4), d1); - - s += 8; d += 8; l -= 8; - }) -} - -#define _op_blend_pan_dp_sse3 NULL - -#define _op_blend_p_dpan_sse3 _op_blend_p_dp_sse3 -#define _op_blend_pas_dpan_sse3 _op_blend_pas_dp_sse3 -#define _op_blend_pan_dpan_sse3 _op_blend_pan_dp_sse3 - -static void -init_blend_pixel_span_funcs_sse3(void) -{ - op_blend_span_funcs[SP][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_p_dp_sse3; - op_blend_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_pas_dp_sse3; - op_blend_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_pan_dp_sse3; - -// FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle) -// op_blend_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_p_dpan_sse3; - op_blend_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_pas_dpan_sse3; - op_blend_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_pan_dpan_sse3; -} - -#define _op_blend_pt_p_dp_sse3 NULL - -#define _op_blend_pt_pas_dp_sse3 _op_blend_pt_p_dp_sse3 -#define _op_blend_pt_pan_dp_sse3 NULL - -#define _op_blend_pt_p_dpan_sse3 _op_blend_pt_p_dp_sse3 -#define _op_blend_pt_pan_dpan_sse3 _op_blend_pt_pan_dp_sse3 -#define _op_blend_pt_pas_dpan_sse3 _op_blend_pt_pas_dp_sse3 - -static void -init_blend_pixel_pt_funcs_sse3(void) -{ - op_blend_pt_funcs[SP][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_pt_p_dp_sse3; - op_blend_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_pt_pas_dp_sse3; - op_blend_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_pt_pan_dp_sse3; - - op_blend_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_pt_p_dpan_sse3; - op_blend_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_pt_pas_dpan_sse3; - op_blend_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_pt_pan_dpan_sse3; -} - -/*-----*/ - -/* blend_rel pixel -> dst */ - -static void -_op_blend_rel_p_dp_sse3(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - - const __m128i ones = _mm_set_epi32(1, 1, 1, 1); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - int alpha = 256 - (*s >> 24); - c = 1 + (*d >> 24); - *d = MUL_256(c, *s) + MUL_256(alpha, *d); - d++; s++; l--; - }, - { /*A4OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i c0 = _mm_add_epi32(_mm_srli_epi32(d0, 24), ones); - __m128i a0 = sub4_alpha_sse3(s0); - - d0 = _mm_add_epi32(mul_256_sse3(c0, s0), mul_256_sse3(a0, d0)); - - _mm_store_si128((__m128i *)d, d0); - - d += 4; s += 4; l -= 4; - }, - { /* A8OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128 ((__m128i *)d); - - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - __m128i d1 = _mm_load_si128 ((__m128i *)(d+4)); - - __m128i c0 = _mm_add_epi32(_mm_srli_epi32(d0, 24), ones); - __m128i c1 = _mm_add_epi32(_mm_srli_epi32(d1, 24), ones); - - __m128i a0 = sub4_alpha_sse3(s0); - __m128i a1 = sub4_alpha_sse3(s1); - - d0 = _mm_add_epi32(mul_256_sse3(c0, s0), mul_256_sse3(a0, d0)); - d1 = _mm_add_epi32(mul_256_sse3(c1, s1), mul_256_sse3(a1, d1)); - - _mm_store_si128((__m128i *)d, d0); - _mm_store_si128((__m128i *)(d+4), d1); - - d += 8; s += 8; l -= 8; - }) -} - -static void -_op_blend_rel_pan_dp_sse3(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - - const __m128i ones = _mm_set_epi32(1, 1, 1, 1); - - LOOP_ALIGNED_U1_A48_SSE3(d, l, - { /* UOP */ - - c = 1 + (*d >> 24); - *d++ = MUL_256(c, *s); - s++; l--; - }, - { /* A4OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128((__m128i *)d); - - __m128i c0 = _mm_add_epi32(_mm_srli_epi32(d0, 24), ones); - d0 = mul_256_sse3(c0, s0); - - _mm_store_si128((__m128i *)d, d0); - - d += 4; s += 4; l -= 4; - }, - { /* A8OP */ - - __m128i s0 = _mm_lddqu_si128((__m128i *)s); - __m128i d0 = _mm_load_si128 ((__m128i *)d); - - __m128i s1 = _mm_lddqu_si128((__m128i *)(s+4)); - __m128i d1 = _mm_load_si128 ((__m128i *)(d+4)); - - __m128i c0 = _mm_add_epi32(_mm_srli_epi32(d0, 24), ones); - __m128i c1 = _mm_add_epi32(_mm_srli_epi32(d1, 24), ones); - - d0 = mul_256_sse3(c0, s0); - d1 = mul_256_sse3(c1, s1); - - _mm_store_si128((__m128i *)d, d0); - _mm_store_si128((__m128i *)(d+4), d1); - - d += 8; s += 8; l -= 8; - }) -} - -#define _op_blend_rel_pas_dp_sse3 _op_blend_rel_p_dp_sse3 - -#define _op_blend_rel_p_dpan_sse3 _op_blend_p_dpan_sse3 -#define _op_blend_rel_pan_dpan_sse3 _op_blend_pan_dpan_sse3 -#define _op_blend_rel_pas_dpan_sse3 _op_blend_pas_dpan_sse3 - -static void -init_blend_rel_pixel_span_funcs_sse3(void) -{ - op_blend_rel_span_funcs[SP][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_rel_p_dp_sse3; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_rel_pas_dp_sse3; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_rel_pan_dp_sse3; - - op_blend_rel_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_p_dpan_sse3; - op_blend_rel_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_pas_dpan_sse3; - op_blend_rel_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_pan_dpan_sse3; -} - -#define _op_blend_rel_pt_p_dp_sse3 NULL -#define _op_blend_rel_pt_pan_dp_sse3 NULL - -#define _op_blend_rel_pt_pas_dp_sse3 _op_blend_rel_pt_p_dp_sse3 - -#define _op_blend_rel_pt_p_dpan_sse3 _op_blend_pt_p_dpan_sse3 -#define _op_blend_rel_pt_pan_dpan_sse3 _op_blend_pt_pan_dpan_sse3 -#define _op_blend_rel_pt_pas_dpan_sse3 _op_blend_pt_pas_dpan_sse3 - -static void -init_blend_rel_pixel_pt_funcs_sse3(void) -{ - op_blend_rel_pt_funcs[SP][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_rel_pt_p_dp_sse3; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_rel_pt_pas_dp_sse3; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_rel_pt_pan_dp_sse3; - - op_blend_rel_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_pt_p_dpan_sse3; - op_blend_rel_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_pt_pas_dpan_sse3; - op_blend_rel_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_rel_pt_pan_dpan_sse3; -} - -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend_main_.c b/libraries/evas/src/lib/engines/common/evas_op_blend_main_.c deleted file mode 100644 index a1a5de8..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_blend_main_.c +++ /dev/null @@ -1,671 +0,0 @@ -#include "evas_common.h" - -RGBA_Gfx_Func op_blend_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; -RGBA_Gfx_Pt_Func op_blend_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; - -static void op_blend_init(void); -static void op_blend_shutdown(void); - -static RGBA_Gfx_Func op_blend_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_blend_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_blend_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_blend_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_blend_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); - -static RGBA_Gfx_Pt_Func op_blend_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_blend_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_blend_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_blend_mask_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_blend_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); - -static RGBA_Gfx_Compositor _composite_blend = { "blend", - op_blend_init, op_blend_shutdown, - op_blend_pixel_span_get, op_blend_color_span_get, - op_blend_pixel_color_span_get, op_blend_mask_color_span_get, - op_blend_pixel_mask_span_get, - op_blend_pixel_pt_get, op_blend_color_pt_get, - op_blend_pixel_color_pt_get, op_blend_mask_color_pt_get, - op_blend_pixel_mask_pt_get - }; - -RGBA_Gfx_Compositor * -evas_common_gfx_compositor_blend_get(void) -{ - return &(_composite_blend); -} - - -RGBA_Gfx_Func op_blend_rel_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; -RGBA_Gfx_Pt_Func op_blend_rel_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; - -static void op_blend_rel_init(void); -static void op_blend_rel_shutdown(void); - -static RGBA_Gfx_Func op_blend_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_blend_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_blend_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_blend_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_blend_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); - -static RGBA_Gfx_Pt_Func op_blend_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_blend_rel_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_blend_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_blend_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_blend_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); - -static RGBA_Gfx_Compositor _composite_blend_rel = { "blend_rel", - op_blend_rel_init, op_blend_rel_shutdown, - op_blend_rel_pixel_span_get, op_blend_rel_color_span_get, - op_blend_rel_pixel_color_span_get, op_blend_rel_mask_color_span_get, - op_blend_rel_pixel_mask_span_get, - op_blend_rel_pixel_pt_get, op_blend_rel_color_pt_get, - op_blend_rel_pixel_color_pt_get, op_blend_rel_mask_color_pt_get, - op_blend_rel_pixel_mask_pt_get - }; - -RGBA_Gfx_Compositor * -evas_common_gfx_compositor_blend_rel_get(void) -{ - return &(_composite_blend_rel); -} - - -# include "./evas_op_blend/op_blend_pixel_.c" -# include "./evas_op_blend/op_blend_color_.c" -# include "./evas_op_blend/op_blend_pixel_color_.c" -# include "./evas_op_blend/op_blend_pixel_mask_.c" -# include "./evas_op_blend/op_blend_mask_color_.c" -//# include "./evas_op_blend/op_blend_pixel_mask_color_.c" - -# include "./evas_op_blend/op_blend_pixel_i386.c" -# include "./evas_op_blend/op_blend_color_i386.c" -# include "./evas_op_blend/op_blend_pixel_color_i386.c" -# include "./evas_op_blend/op_blend_pixel_mask_i386.c" -# include "./evas_op_blend/op_blend_mask_color_i386.c" -//# include "./evas_op_blend/op_blend_pixel_mask_color_i386.c" - -# include "./evas_op_blend/op_blend_pixel_neon.c" -# include "./evas_op_blend/op_blend_color_neon.c" -# include "./evas_op_blend/op_blend_pixel_color_neon.c" -# include "./evas_op_blend/op_blend_pixel_mask_neon.c" -# include "./evas_op_blend/op_blend_mask_color_neon.c" -//# include "./evas_op_blend/op_blend_pixel_mask_color_neon.c" - -#ifdef BUILD_SSE3 -void evas_common_op_blend_init_sse3(void); -#endif - -static void -op_blend_init(void) -{ - memset(op_blend_span_funcs, 0, sizeof(op_blend_span_funcs)); - memset(op_blend_pt_funcs, 0, sizeof(op_blend_pt_funcs)); -#ifdef BUILD_SSE3 - evas_common_op_blend_init_sse3(); -#endif -#ifdef BUILD_MMX - init_blend_pixel_span_funcs_mmx(); - init_blend_pixel_color_span_funcs_mmx(); - init_blend_pixel_mask_span_funcs_mmx(); - init_blend_color_span_funcs_mmx(); - init_blend_mask_color_span_funcs_mmx(); - - init_blend_pixel_pt_funcs_mmx(); - init_blend_pixel_color_pt_funcs_mmx(); - init_blend_pixel_mask_pt_funcs_mmx(); - init_blend_color_pt_funcs_mmx(); - init_blend_mask_color_pt_funcs_mmx(); -#endif -#ifdef BUILD_NEON - init_blend_pixel_span_funcs_neon(); - init_blend_pixel_color_span_funcs_neon(); - init_blend_pixel_mask_span_funcs_neon(); - init_blend_color_span_funcs_neon(); - init_blend_mask_color_span_funcs_neon(); - - init_blend_pixel_pt_funcs_neon(); - init_blend_pixel_color_pt_funcs_neon(); - init_blend_pixel_mask_pt_funcs_neon(); - init_blend_color_pt_funcs_neon(); - init_blend_mask_color_pt_funcs_neon(); -#endif -#ifdef BUILD_C - init_blend_pixel_span_funcs_c(); - init_blend_pixel_color_span_funcs_c(); - init_blend_pixel_mask_span_funcs_c(); - init_blend_color_span_funcs_c(); - init_blend_mask_color_span_funcs_c(); - - init_blend_pixel_pt_funcs_c(); - init_blend_pixel_color_pt_funcs_c(); - init_blend_pixel_mask_pt_funcs_c(); - init_blend_color_pt_funcs_c(); - init_blend_mask_color_pt_funcs_c(); -#endif -} - -static void -op_blend_shutdown(void) -{ -} - -static RGBA_Gfx_Func -blend_gfx_span_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_SSE3 - if (evas_common_cpu_has_feature(CPU_FEATURE_SSE3)) - { - cpu = CPU_SSE3; - func = op_blend_span_funcs[s][m][c][d][cpu]; - if(func) return func; - } -#endif -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_blend_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_NEON - if (evas_common_cpu_has_feature(CPU_FEATURE_NEON)) - { - cpu = CPU_NEON; - func = op_blend_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_blend_span_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Func -op_blend_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - { - s = SP; - if (src->cache_entry.flags.alpha_sparse) - s = SP_AS; - } - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_blend_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_blend_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - { - s = SP; - if (src->cache_entry.flags.alpha_sparse) - s = SP_AS; - } - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_blend_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_blend_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - { - s = SP; - if (src->cache_entry.flags.alpha_sparse) - s = SP_AS; - } - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_gfx_span_func_cpu(s, m, c, d); -} - - -static RGBA_Gfx_Pt_Func -blend_gfx_pt_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Pt_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_SSE3 - if(evas_common_cpu_has_feature(CPU_FEATURE_SSE3)) - { - cpu = CPU_SSE3; - func = op_blend_pt_funcs[s][m][c][d][cpu]; - if(func) return func; - } -#endif -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_blend_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_NEON - if (evas_common_cpu_has_feature(CPU_FEATURE_NEON)) - { - cpu = CPU_NEON; - func = op_blend_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_blend_pt_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Pt_Func -op_blend_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_blend_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_blend_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_blend_mask_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_blend_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_gfx_pt_func_cpu(s, m, c, d); -} - -void evas_common_op_blend_rel_init_sse3(void); - -static void -op_blend_rel_init(void) -{ - memset(op_blend_rel_span_funcs, 0, sizeof(op_blend_rel_span_funcs)); - memset(op_blend_rel_pt_funcs, 0, sizeof(op_blend_rel_pt_funcs)); -#ifdef BUILD_SSE3 - evas_common_op_blend_rel_init_sse3(); -#endif -#ifdef BUILD_MMX - init_blend_rel_pixel_span_funcs_mmx(); - init_blend_rel_pixel_color_span_funcs_mmx(); - init_blend_rel_pixel_mask_span_funcs_mmx(); - init_blend_rel_color_span_funcs_mmx(); - init_blend_rel_mask_color_span_funcs_mmx(); - - init_blend_rel_pixel_pt_funcs_mmx(); - init_blend_rel_pixel_color_pt_funcs_mmx(); - init_blend_rel_pixel_mask_pt_funcs_mmx(); - init_blend_rel_color_pt_funcs_mmx(); - init_blend_rel_mask_color_pt_funcs_mmx(); -#endif -#ifdef BUILD_NEON - init_blend_rel_pixel_span_funcs_neon(); - init_blend_rel_pixel_color_span_funcs_neon(); - init_blend_rel_pixel_mask_span_funcs_neon(); - init_blend_rel_color_span_funcs_neon(); - init_blend_rel_mask_color_span_funcs_neon(); - - init_blend_rel_pixel_pt_funcs_neon(); - init_blend_rel_pixel_color_pt_funcs_neon(); - init_blend_rel_pixel_mask_pt_funcs_neon(); - init_blend_rel_color_pt_funcs_neon(); - init_blend_rel_mask_color_pt_funcs_neon(); -#endif -#ifdef BUILD_C - init_blend_rel_pixel_span_funcs_c(); - init_blend_rel_pixel_color_span_funcs_c(); - init_blend_rel_pixel_mask_span_funcs_c(); - init_blend_rel_color_span_funcs_c(); - init_blend_rel_mask_color_span_funcs_c(); - - init_blend_rel_pixel_pt_funcs_c(); - init_blend_rel_pixel_color_pt_funcs_c(); - init_blend_rel_pixel_mask_pt_funcs_c(); - init_blend_rel_color_pt_funcs_c(); - init_blend_rel_mask_color_pt_funcs_c(); -#endif -} - -static void -op_blend_rel_shutdown(void) -{ -} - -static RGBA_Gfx_Func -blend_rel_gfx_span_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_SSE3 - if (evas_common_cpu_has_feature(CPU_FEATURE_SSE3)) - { - cpu = CPU_SSE3; - func = op_blend_rel_span_funcs[s][m][c][d][cpu]; - if(func) return func; - } -#endif -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_blend_rel_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_NEON - if (evas_common_cpu_has_feature(CPU_FEATURE_NEON)) - { - cpu = CPU_NEON; - func = op_blend_rel_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_blend_rel_span_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Func -op_blend_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - { - s = SP; - if (src->cache_entry.flags.alpha_sparse) - s = SP_AS; - } - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_blend_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_blend_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - s = SP; - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_blend_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_blend_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - { - s = SP; - if (src->cache_entry.flags.alpha_sparse) - s = SP_AS; - } - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -blend_rel_gfx_pt_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Pt_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_SSE3 - if (evas_common_cpu_has_feature(CPU_FEATURE_SSE3)) - { - cpu = CPU_SSE3; - func = op_blend_rel_pt_funcs[s][m][c][d][cpu]; - if(func) return func; - } -#endif -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_blend_rel_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_NEON - if (evas_common_cpu_has_feature(CPU_FEATURE_NEON)) - { - cpu = CPU_NEON; - func = op_blend_rel_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_blend_rel_pt_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Pt_Func -op_blend_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_blend_rel_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_blend_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_blend_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_blend_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return blend_rel_gfx_pt_func_cpu(s, m, c, d); -} diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.am b/libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.am deleted file mode 100644 index 599e98d..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -EXTRA_DIST = \ -op_copy_color_.c \ -op_copy_color_i386.c \ -op_copy_color_neon.c \ -op_copy_mask_color_.c \ -op_copy_mask_color_i386.c \ -op_copy_mask_color_neon.c \ -op_copy_pixel_.c \ -op_copy_pixel_neon.c \ -op_copy_pixel_color_.c \ -op_copy_pixel_color_i386.c \ -op_copy_pixel_color_neon.c \ -op_copy_pixel_i386.c \ -op_copy_pixel_mask_.c \ -op_copy_pixel_mask_i386.c \ -op_copy_pixel_mask_neon.c diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.in b/libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.in deleted file mode 100644 index 687f34d..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.in +++ /dev/null @@ -1,552 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/lib/engines/common/evas_op_copy -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ - $(top_srcdir)/m4/efl_coverage.m4 \ - $(top_srcdir)/m4/efl_doxygen.m4 \ - $(top_srcdir)/m4/efl_fnmatch.m4 \ - $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ - $(top_srcdir)/m4/evas_check_engine.m4 \ - $(top_srcdir)/m4/evas_check_loader.m4 \ - $(top_srcdir)/m4/evas_converter.m4 \ - $(top_srcdir)/m4/evas_dither.m4 \ - $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CHECK_CFLAGS = @CHECK_CFLAGS@ -CHECK_LIBS = @CHECK_LIBS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ -ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ -EDB_CFLAGS = @EDB_CFLAGS@ -EDB_LIBS = @EDB_LIBS@ -EDJE_CFLAGS = @EDJE_CFLAGS@ -EDJE_LIBS = @EDJE_LIBS@ -EET_CFLAGS = @EET_CFLAGS@ -EET_LIBS = @EET_LIBS@ -EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ -EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ -EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ -EGREP = @EGREP@ -EINA_CFLAGS = @EINA_CFLAGS@ -EINA_LIBS = @EINA_LIBS@ -EVAS_CFLAGS = @EVAS_CFLAGS@ -EVAS_LIBS = @EVAS_LIBS@ -EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@ -EVIL_CFLAGS = @EVIL_CFLAGS@ -EVIL_LIBS = @EVIL_LIBS@ -EXEEXT = @EXEEXT@ -EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ -EXOTIC_LIBS = @EXOTIC_LIBS@ -FGREP = @FGREP@ -FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ -FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ -FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ -FREETYPE_LIBS = @FREETYPE_LIBS@ -FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@ -FRIBIDI_LIBS = @FRIBIDI_LIBS@ -GL_EET_CFLAGS = @GL_EET_CFLAGS@ -GL_EET_LIBS = @GL_EET_LIBS@ -GREP = @GREP@ -HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@ -HARFBUZZ_LIBS = @HARFBUZZ_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@ -LINEBREAK_LIBS = @LINEBREAK_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MODULE_ARCH = @MODULE_ARCH@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJC = @OBJC@ -OBJCDEPMODE = @OBJCDEPMODE@ -OBJCFLAGS = @OBJCFLAGS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ -PIXMAN_LIBS = @PIXMAN_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PNG_CFLAGS = @PNG_CFLAGS@ -PNG_LIBS = @PNG_LIBS@ -RANLIB = @RANLIB@ -SDL_CFLAGS = @SDL_CFLAGS@ -SDL_LIBS = @SDL_LIBS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SHM_OPEN_LINK = @SHM_OPEN_LINK@ -STRIP = @STRIP@ -SVG_CFLAGS = @SVG_CFLAGS@ -SVG_LIBS = @SVG_LIBS@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -VMAJ = @VMAJ@ -WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ -WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ -XCB_CFLAGS = @XCB_CFLAGS@ -XCB_GL_CFLAGS = @XCB_GL_CFLAGS@ -XCB_GL_LIBS = @XCB_GL_LIBS@ -XCB_LIBS = @XCB_LIBS@ -XEXT_CFLAGS = @XEXT_CFLAGS@ -XEXT_LIBS = @XEXT_LIBS@ -XMKMF = @XMKMF@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_OBJC = @ac_ct_OBJC@ -altivec_cflags = @altivec_cflags@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -dlopen_libs = @dlopen_libs@ -docdir = @docdir@ -dvidir = @dvidir@ -edje_cc = @edje_cc@ -efl_doxygen = @efl_doxygen@ -efl_have_doxygen = @efl_have_doxygen@ -evas_engine_buffer_cflags = @evas_engine_buffer_cflags@ -evas_engine_buffer_libs = @evas_engine_buffer_libs@ -evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@ -evas_engine_direct3d_libs = @evas_engine_direct3d_libs@ -evas_engine_directfb_cflags = @evas_engine_directfb_cflags@ -evas_engine_directfb_libs = @evas_engine_directfb_libs@ -evas_engine_fb_cflags = @evas_engine_fb_cflags@ -evas_engine_fb_libs = @evas_engine_fb_libs@ -evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@ -evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@ -evas_engine_gl_common_libs = @evas_engine_gl_common_libs@ -evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@ -evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@ -evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@ -evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@ -evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@ -evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@ -evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@ -evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@ -evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@ -evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@ -evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@ -evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@ -evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@ -evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@ -evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@ -evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@ -evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@ -evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@ -evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@ -evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@ -evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@ -evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@ -evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ -evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ -evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ -evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ -evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ -evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ -evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ -evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ -evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ -evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ -evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ -evas_image_loader_edb_libs = @evas_image_loader_edb_libs@ -evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@ -evas_image_loader_eet_libs = @evas_image_loader_eet_libs@ -evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@ -evas_image_loader_generic_libs = @evas_image_loader_generic_libs@ -evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@ -evas_image_loader_gif_libs = @evas_image_loader_gif_libs@ -evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@ -evas_image_loader_ico_libs = @evas_image_loader_ico_libs@ -evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@ -evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@ -evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@ -evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@ -evas_image_loader_png_cflags = @evas_image_loader_png_cflags@ -evas_image_loader_png_libs = @evas_image_loader_png_libs@ -evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@ -evas_image_loader_psd_libs = @evas_image_loader_psd_libs@ -evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@ -evas_image_loader_svg_libs = @evas_image_loader_svg_libs@ -evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@ -evas_image_loader_tga_libs = @evas_image_loader_tga_libs@ -evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@ -evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@ -evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@ -evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@ -evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@ -evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@ -exec_prefix = @exec_prefix@ -have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@ -have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@ -have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@ -have_evas_engine_software_x11 = @have_evas_engine_software_x11@ -have_evas_engine_software_xcb = @have_evas_engine_software_xcb@ -have_evas_engine_software_xlib = @have_evas_engine_software_xlib@ -have_lcov = @have_lcov@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -lt_enable_auto_import = @lt_enable_auto_import@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfig_requires_private = @pkgconfig_requires_private@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pthread_cflags = @pthread_cflags@ -pthread_libs = @pthread_libs@ -release_info = @release_info@ -requirement_evas = @requirement_evas@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -version_info = @version_info@ -MAINTAINERCLEANFILES = Makefile.in -EXTRA_DIST = \ -op_copy_color_.c \ -op_copy_color_i386.c \ -op_copy_color_neon.c \ -op_copy_mask_color_.c \ -op_copy_mask_color_i386.c \ -op_copy_mask_color_neon.c \ -op_copy_pixel_.c \ -op_copy_pixel_neon.c \ -op_copy_pixel_color_.c \ -op_copy_pixel_color_i386.c \ -op_copy_pixel_color_neon.c \ -op_copy_pixel_i386.c \ -op_copy_pixel_mask_.c \ -op_copy_pixel_mask_i386.c \ -op_copy_pixel_mask_neon.c - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_copy/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_copy/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_.c deleted file mode 100644 index 0178358..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_.c +++ /dev/null @@ -1,138 +0,0 @@ -/* copy color --> dst */ - -#ifdef BUILD_C -static void -_op_copy_c_dp(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - UNROLL8_PLD_WHILE(d, l, e, - { - *d = c; - d++; - }); -} - -#define _op_copy_cn_dp _op_copy_c_dp -#define _op_copy_can_dp _op_copy_c_dp -#define _op_copy_caa_dp _op_copy_c_dp - -#define _op_copy_c_dpan _op_copy_c_dp -#define _op_copy_cn_dpan _op_copy_c_dp -#define _op_copy_can_dpan _op_copy_c_dp -#define _op_copy_caa_dpan _op_copy_c_dp - -static void -init_copy_color_span_funcs_c(void) -{ - op_copy_span_funcs[SP_N][SM_N][SC_N][DP][CPU_C] = _op_copy_cn_dp; - op_copy_span_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_copy_c_dp; - op_copy_span_funcs[SP_N][SM_N][SC_AN][DP][CPU_C] = _op_copy_can_dp; - op_copy_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_copy_caa_dp; - - op_copy_span_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_cn_dpan; - op_copy_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_copy_c_dpan; - op_copy_span_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_can_dpan; - op_copy_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_copy_pt_c_dp(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - *d = c; -} - -#define _op_copy_pt_cn_dp _op_copy_pt_c_dp -#define _op_copy_pt_can_dp _op_copy_pt_c_dp -#define _op_copy_pt_caa_dp _op_copy_pt_c_dp - -#define _op_copy_pt_c_dpan _op_copy_pt_c_dp -#define _op_copy_pt_cn_dpan _op_copy_pt_c_dp -#define _op_copy_pt_can_dpan _op_copy_pt_c_dp -#define _op_copy_pt_caa_dpan _op_copy_pt_c_dp - -static void -init_copy_color_pt_funcs_c(void) -{ - op_copy_pt_funcs[SP_N][SM_N][SC_N][DP][CPU_C] = _op_copy_pt_cn_dp; - op_copy_pt_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_copy_pt_c_dp; - op_copy_pt_funcs[SP_N][SM_N][SC_AN][DP][CPU_C] = _op_copy_pt_can_dp; - op_copy_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_copy_pt_caa_dp; - - op_copy_pt_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_pt_cn_dpan; - op_copy_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_copy_pt_c_dpan; - op_copy_pt_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_pt_can_dpan; - op_copy_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_pt_caa_dpan; -} -#endif - -/*-----*/ - -/* copy_rel color --> dst */ - -#ifdef BUILD_C -static void -_op_copy_rel_c_dp(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - UNROLL8_PLD_WHILE(d, l, e, - { - *d = MUL_SYM(*d >> 24, c); - d++; - }); -} - - -#define _op_copy_rel_cn_dp _op_copy_rel_c_dp -#define _op_copy_rel_can_dp _op_copy_rel_c_dp -#define _op_copy_rel_caa_dp _op_copy_rel_c_dp - -#define _op_copy_rel_c_dpan _op_copy_c_dp -#define _op_copy_rel_cn_dpan _op_copy_cn_dp -#define _op_copy_rel_can_dpan _op_copy_can_dp -#define _op_copy_rel_caa_dpan _op_copy_caa_dp - -static void -init_copy_rel_color_span_funcs_c(void) -{ - op_copy_rel_span_funcs[SP_N][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_cn_dp; - op_copy_rel_span_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_copy_rel_c_dp; - op_copy_rel_span_funcs[SP_N][SM_N][SC_AN][DP][CPU_C] = _op_copy_rel_can_dp; - op_copy_rel_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_copy_rel_caa_dp; - - op_copy_rel_span_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_cn_dpan; - op_copy_rel_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_copy_rel_c_dpan; - op_copy_rel_span_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_rel_can_dpan; - op_copy_rel_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_rel_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_copy_rel_pt_c_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = 1 + (*d >> 24); - *d = MUL_256(s, c); -} - - -#define _op_copy_rel_pt_cn_dp _op_copy_rel_pt_c_dp -#define _op_copy_rel_pt_can_dp _op_copy_rel_pt_c_dp -#define _op_copy_rel_pt_caa_dp _op_copy_rel_pt_c_dp - -#define _op_copy_rel_pt_c_dpan _op_copy_pt_c_dp -#define _op_copy_rel_pt_cn_dpan _op_copy_pt_cn_dp -#define _op_copy_rel_pt_can_dpan _op_copy_pt_can_dp -#define _op_copy_rel_pt_caa_dpan _op_copy_pt_caa_dp - -static void -init_copy_rel_color_pt_funcs_c(void) -{ - op_copy_rel_pt_funcs[SP_N][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_pt_cn_dp; - op_copy_rel_pt_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_copy_rel_pt_c_dp; - op_copy_rel_pt_funcs[SP_N][SM_N][SC_AN][DP][CPU_C] = _op_copy_rel_pt_can_dp; - op_copy_rel_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_copy_rel_pt_caa_dp; - - op_copy_rel_pt_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_pt_cn_dpan; - op_copy_rel_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_copy_rel_pt_c_dpan; - op_copy_rel_pt_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_rel_pt_can_dpan; - op_copy_rel_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_rel_pt_caa_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_i386.c deleted file mode 100644 index d864d92..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_i386.c +++ /dev/null @@ -1,150 +0,0 @@ -/* copy color --> dst */ - -#ifdef BUILD_MMX -static void -_op_copy_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l - 1; - movd_m2r(c, mm1); - movq_r2r(mm1, mm2); - psllq_i2r(32, mm1); - por_r2r(mm2, mm1); - for (; d < e; d+=2) { - movq_r2m(mm1, d[0]); - } - e+=1; - for (; d < e; d++) { - *d = c; - } -} - -#define _op_copy_cn_dp_mmx _op_copy_c_dp_mmx -#define _op_copy_can_dp_mmx _op_copy_c_dp_mmx -#define _op_copy_caa_dp_mmx _op_copy_c_dp_mmx - -#define _op_copy_cn_dpan_mmx _op_copy_c_dp_mmx -#define _op_copy_c_dpan_mmx _op_copy_c_dp_mmx -#define _op_copy_can_dpan_mmx _op_copy_c_dp_mmx -#define _op_copy_caa_dpan_mmx _op_copy_c_dp_mmx - -static void -init_copy_color_span_funcs_mmx(void) -{ - op_copy_span_funcs[SP_N][SM_N][SC_N][DP][CPU_MMX] = _op_copy_cn_dp_mmx; - op_copy_span_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_copy_c_dp_mmx; - op_copy_span_funcs[SP_N][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_can_dp_mmx; - op_copy_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_caa_dp_mmx; - - op_copy_span_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_cn_dpan_mmx; - op_copy_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_c_dpan_mmx; - op_copy_span_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_can_dpan_mmx; - op_copy_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_copy_pt_c_dp_mmx(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - *d = c; -} - -#define _op_copy_pt_cn_dp_mmx _op_copy_pt_c_dp_mmx -#define _op_copy_pt_can_dp_mmx _op_copy_pt_c_dp_mmx -#define _op_copy_pt_caa_dp_mmx _op_copy_pt_c_dp_mmx - -#define _op_copy_pt_cn_dpan_mmx _op_copy_pt_c_dp_mmx -#define _op_copy_pt_c_dpan_mmx _op_copy_pt_c_dp_mmx -#define _op_copy_pt_can_dpan_mmx _op_copy_pt_c_dp_mmx -#define _op_copy_pt_caa_dpan_mmx _op_copy_pt_c_dp_mmx - -static void -init_copy_color_pt_funcs_mmx(void) -{ - op_copy_pt_funcs[SP_N][SM_N][SC_N][DP][CPU_MMX] = _op_copy_pt_cn_dp_mmx; - op_copy_pt_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_copy_pt_c_dp_mmx; - op_copy_pt_funcs[SP_N][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_pt_can_dp_mmx; - op_copy_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_pt_caa_dp_mmx; - - op_copy_pt_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_pt_cn_dpan_mmx; - op_copy_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_pt_c_dpan_mmx; - op_copy_pt_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_pt_can_dpan_mmx; - op_copy_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_pt_caa_dpan_mmx; -} -#endif - -/*-----*/ - -/* copy_rel color --> dst */ - -#ifdef BUILD_MMX -static void -_op_copy_rel_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - for (; d < e; d++) { - DATA32 da = 1 + (*d >> 24); - MOV_A2R(da, mm1) - MUL4_256_R2R(mm2, mm1) - MOV_R2P(mm1, *d, mm0) - } -} - -#define _op_copy_rel_cn_dp_mmx _op_copy_rel_c_dp_mmx -#define _op_copy_rel_can_dp_mmx _op_copy_rel_c_dp_mmx -#define _op_copy_rel_caa_dp_mmx _op_copy_rel_c_dp_mmx - -#define _op_copy_rel_cn_dpan_mmx _op_copy_cn_dpan_mmx -#define _op_copy_rel_c_dpan_mmx _op_copy_c_dpan_mmx -#define _op_copy_rel_can_dpan_mmx _op_copy_can_dpan_mmx -#define _op_copy_rel_caa_dpan_mmx _op_copy_caa_dpan_mmx - -static void -init_copy_rel_color_span_funcs_mmx(void) -{ - op_copy_rel_span_funcs[SP_N][SM_N][SC_N][DP][CPU_MMX] = _op_copy_rel_cn_dp_mmx; - op_copy_rel_span_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_c_dp_mmx; - op_copy_rel_span_funcs[SP_N][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_can_dp_mmx; - op_copy_rel_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_caa_dp_mmx; - - op_copy_rel_span_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_cn_dpan_mmx; - op_copy_rel_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_c_dpan_mmx; - op_copy_rel_span_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_can_dpan_mmx; - op_copy_rel_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_copy_rel_pt_c_dp_mmx(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = 1 + (*d >> 24); - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - MOV_A2R(s, mm1) - MUL4_256_R2R(mm2, mm1) - MOV_R2P(mm1, *d, mm0) -} - - -#define _op_copy_rel_pt_cn_dp_mmx _op_copy_rel_pt_c_dp_mmx -#define _op_copy_rel_pt_can_dp_mmx _op_copy_rel_pt_c_dp_mmx -#define _op_copy_rel_pt_caa_dp_mmx _op_copy_rel_pt_c_dp_mmx - -#define _op_copy_rel_pt_cn_dpan_mmx _op_copy_pt_cn_dpan_mmx -#define _op_copy_rel_pt_c_dpan_mmx _op_copy_pt_c_dpan_mmx -#define _op_copy_rel_pt_can_dpan_mmx _op_copy_pt_can_dpan_mmx -#define _op_copy_rel_pt_caa_dpan_mmx _op_copy_pt_caa_dpan_mmx - -static void -init_copy_rel_color_pt_funcs_mmx(void) -{ - op_copy_rel_pt_funcs[SP_N][SM_N][SC_N][DP][CPU_MMX] = _op_copy_rel_pt_cn_dp_mmx; - op_copy_rel_pt_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_pt_c_dp_mmx; - op_copy_rel_pt_funcs[SP_N][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_pt_can_dp_mmx; - op_copy_rel_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_pt_caa_dp_mmx; - - op_copy_rel_pt_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pt_cn_dpan_mmx; - op_copy_rel_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_pt_c_dpan_mmx; - op_copy_rel_pt_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pt_can_dpan_mmx; - op_copy_rel_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pt_caa_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_neon.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_neon.c deleted file mode 100644 index 96310cd..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_neon.c +++ /dev/null @@ -1,212 +0,0 @@ -/* copy color --> dst */ - -#ifdef BUILD_NEON -static void -_op_copy_c_dp_neon(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { -#define AP "COPY_C_DP_" - uint32_t *e = d + l,*tmp; - asm volatile ( - ".fpu neon \n\t" - - "vdup.i32 q0, %[c] \n\t" - - // Can we do 32 byte? - "andS %[tmp], %[d], $0x1f \n\t" - "beq "AP"quadstart \n\t" - - // Can we do at least 16 byte? - "andS %[tmp], %[d], $0x4 \n\t" - "beq "AP"dualstart \n\t" - - // Only once - AP"singleloop: \n\t" - "vst1.32 d0[0], [%[d]] \n\t" - "add %[d], #4 \n\t" - - // Up to 3 times - AP"dualstart: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #32 \n\t" - "blt "AP"loopout \n\t" - - AP"dualloop: \n\t" - "vstr.32 d0, [%[d]] \n\t" - - "add %[d], #8 \n\t" - "andS %[tmp], %[d], $0x1f \n\t" - "bne "AP"dualloop \n\t" - - - AP"quadstart: \n\t" - "sub %[tmp], %[e], %[d] \n\t" - "cmp %[tmp], #32 \n\t" - "blt "AP"loopout \n\t" - - "vmov q1, q0 \n\t" - "sub %[tmp],%[e],#31 \n\t" - - AP "quadloop: \n\t" - "vstm %[d]!, {d0,d1,d2,d3} \n\t" - - "cmp %[tmp], %[d] \n\t" - "bhi "AP"quadloop \n\t" - - - AP "loopout: \n\t" - "cmp %[d], %[e] \n\t" - "beq "AP"done \n\t" - "sub %[tmp],%[e], %[d] \n\t" - "cmp %[tmp],$0x04 \n\t" - "beq "AP"singleloop2 \n\t" - - AP "dualloop2: \n\t" - "sub %[tmp],%[e],#7 \n\t" - AP "dualloop2int: \n\t" - "vstr.64 d0, [%[d]] \n\t" - - "add %[d], #8 \n\t" - "cmp %[tmp], %[d] \n\t" - "bhi "AP"dualloop2int \n\t" - - // Single ?? - "cmp %[e], %[d] \n\t" - "beq "AP"done \n\t" - - AP "singleloop2: \n\t" - "vst1.32 d0[0], [%[d]] \n\t" - - AP "done:\n\t" - - : // No output regs - // Input - : [c] "r" (c), [e] "r" (e), [d] "r" (d),[tmp] "r" (tmp) - // Clobbered - : "q0","q1","memory" - - - ); -} - -#define _op_copy_cn_dp_neon _op_copy_c_dp_neon -#define _op_copy_can_dp_neon _op_copy_c_dp_neon -#define _op_copy_caa_dp_neon _op_copy_c_dp_neon - -#define _op_copy_cn_dpan_neon _op_copy_c_dp_neon -#define _op_copy_c_dpan_neon _op_copy_c_dp_neon -#define _op_copy_can_dpan_neon _op_copy_c_dp_neon -#define _op_copy_caa_dpan_neon _op_copy_c_dp_neon - -static void -init_copy_color_span_funcs_neon(void) -{ - op_copy_span_funcs[SP_N][SM_N][SC_N][DP][CPU_NEON] = _op_copy_cn_dp_neon; - op_copy_span_funcs[SP_N][SM_N][SC][DP][CPU_NEON] = _op_copy_c_dp_neon; - op_copy_span_funcs[SP_N][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_can_dp_neon; - op_copy_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_caa_dp_neon; - - op_copy_span_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_cn_dpan_neon; - op_copy_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_c_dpan_neon; - op_copy_span_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_can_dpan_neon; - op_copy_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_caa_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_copy_pt_c_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - *d = c; -} - -#define _op_copy_pt_cn_dp_neon _op_copy_pt_c_dp_neon -#define _op_copy_pt_can_dp_neon _op_copy_pt_c_dp_neon -#define _op_copy_pt_caa_dp_neon _op_copy_pt_c_dp_neon - -#define _op_copy_pt_cn_dpan_neon _op_copy_pt_c_dp_neon -#define _op_copy_pt_c_dpan_neon _op_copy_pt_c_dp_neon -#define _op_copy_pt_can_dpan_neon _op_copy_pt_c_dp_neon -#define _op_copy_pt_caa_dpan_neon _op_copy_pt_c_dp_neon - -static void -init_copy_color_pt_funcs_neon(void) -{ - op_copy_pt_funcs[SP_N][SM_N][SC_N][DP][CPU_NEON] = _op_copy_pt_cn_dp_neon; - op_copy_pt_funcs[SP_N][SM_N][SC][DP][CPU_NEON] = _op_copy_pt_c_dp_neon; - op_copy_pt_funcs[SP_N][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_pt_can_dp_neon; - op_copy_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_pt_caa_dp_neon; - - op_copy_pt_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_cn_dpan_neon; - op_copy_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_pt_c_dpan_neon; - op_copy_pt_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_pt_can_dpan_neon; - op_copy_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_pt_caa_dpan_neon; -} -#endif - -/*-----*/ - -/* copy_rel color --> dst */ - -#ifdef BUILD_NEON -static void -_op_copy_rel_c_dp_neon(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { - // FIXME: neon-it - DATA32 *e = d + l; - for (; d < e; d++) { - *d = MUL_SYM(*d >> 24, c); - } -} - -#define _op_copy_rel_cn_dp_neon _op_copy_rel_c_dp_neon -#define _op_copy_rel_can_dp_neon _op_copy_rel_c_dp_neon -#define _op_copy_rel_caa_dp_neon _op_copy_rel_c_dp_neon - -#define _op_copy_rel_cn_dpan_neon _op_copy_cn_dpan_neon -#define _op_copy_rel_c_dpan_neon _op_copy_c_dpan_neon -#define _op_copy_rel_can_dpan_neon _op_copy_can_dpan_neon -#define _op_copy_rel_caa_dpan_neon _op_copy_caa_dpan_neon - -static void -init_copy_rel_color_span_funcs_neon(void) -{ - op_copy_rel_span_funcs[SP_N][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_cn_dp_neon; - op_copy_rel_span_funcs[SP_N][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_c_dp_neon; - op_copy_rel_span_funcs[SP_N][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_can_dp_neon; - op_copy_rel_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_caa_dp_neon; - - op_copy_rel_span_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_cn_dpan_neon; - op_copy_rel_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_c_dpan_neon; - op_copy_rel_span_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_can_dpan_neon; - op_copy_rel_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_caa_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_copy_rel_pt_c_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = 1 + (*d >> 24); - *d = MUL_256(s, c); -} - - -#define _op_copy_rel_pt_cn_dp_neon _op_copy_rel_pt_c_dp_neon -#define _op_copy_rel_pt_can_dp_neon _op_copy_rel_pt_c_dp_neon -#define _op_copy_rel_pt_caa_dp_neon _op_copy_rel_pt_c_dp_neon - -#define _op_copy_rel_pt_cn_dpan_neon _op_copy_pt_cn_dpan_neon -#define _op_copy_rel_pt_c_dpan_neon _op_copy_pt_c_dpan_neon -#define _op_copy_rel_pt_can_dpan_neon _op_copy_pt_can_dpan_neon -#define _op_copy_rel_pt_caa_dpan_neon _op_copy_pt_caa_dpan_neon - -static void -init_copy_rel_color_pt_funcs_neon(void) -{ - op_copy_rel_pt_funcs[SP_N][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_cn_dp_neon; - op_copy_rel_pt_funcs[SP_N][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_pt_c_dp_neon; - op_copy_rel_pt_funcs[SP_N][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_pt_can_dp_neon; - op_copy_rel_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_pt_caa_dp_neon; - - op_copy_rel_pt_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_cn_dpan_neon; - op_copy_rel_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_pt_c_dpan_neon; - op_copy_rel_pt_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_pt_can_dpan_neon; - op_copy_rel_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_pt_caa_dpan_neon; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_.c deleted file mode 100644 index c03a843..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_.c +++ /dev/null @@ -1,170 +0,0 @@ -/* copy mask x color -> dst */ - -#ifdef BUILD_C -static void -_op_copy_mas_c_dp(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int color; - UNROLL8_PLD_WHILE(d, l, e, - { - color = *m; - switch(color) - { - case 0: - break; - case 255: - *d = c; - break; - default: - color++; - *d = INTERP_256(color, c, *d); - break; - } - m++; d++; - }); -} - -#define _op_copy_mas_cn_dp _op_copy_mas_c_dp -#define _op_copy_mas_can_dp _op_copy_mas_c_dp -#define _op_copy_mas_caa_dp _op_copy_mas_c_dp - -#define _op_copy_mas_c_dpan _op_copy_mas_c_dp -#define _op_copy_mas_cn_dpan _op_copy_mas_c_dpan -#define _op_copy_mas_can_dpan _op_copy_mas_c_dpan -#define _op_copy_mas_caa_dpan _op_copy_mas_c_dpan - -static void -init_copy_mask_color_span_funcs_c(void) -{ - op_copy_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_C] = _op_copy_mas_cn_dp; - op_copy_span_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_copy_mas_c_dp; - op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_copy_mas_can_dp; - op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_copy_mas_caa_dp; - - op_copy_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_mas_cn_dpan; - op_copy_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_copy_mas_c_dpan; - op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_copy_mas_can_dpan; - op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_copy_mas_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_copy_pt_mas_c_dp(DATA32 s __UNUSED__, DATA8 m, DATA32 c, DATA32 *d) { - *d = INTERP_256(m + 1, c, *d); -} - - -#define _op_copy_pt_mas_cn_dp _op_copy_pt_mas_c_dp -#define _op_copy_pt_mas_can_dp _op_copy_pt_mas_c_dp -#define _op_copy_pt_mas_caa_dp _op_copy_pt_mas_c_dp - -#define _op_copy_pt_mas_c_dpan _op_copy_pt_mas_c_dp -#define _op_copy_pt_mas_cn_dpan _op_copy_pt_mas_c_dpan -#define _op_copy_pt_mas_can_dpan _op_copy_pt_mas_c_dpan -#define _op_copy_pt_mas_caa_dpan _op_copy_pt_mas_c_dpan - -static void -init_copy_mask_color_pt_funcs_c(void) -{ - op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_C] = _op_copy_pt_mas_cn_dp; - op_copy_pt_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_copy_pt_mas_c_dp; - op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_copy_pt_mas_can_dp; - op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_copy_pt_mas_caa_dp; - - op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_pt_mas_cn_dpan; - op_copy_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_copy_pt_mas_c_dpan; - op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_copy_pt_mas_can_dpan; - op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_copy_pt_mas_caa_dpan; -} -#endif - -/*-----*/ - -/* copy_rel mask x color -> dst */ - -#ifdef BUILD_C -static void -_op_copy_rel_mas_c_dp(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int color; - UNROLL8_PLD_WHILE(d, l, e, - { - color = *m; - switch(color) - { - case 0: - break; - case 255: - color = 1 + (*d >> 24); - *d = MUL_256(color, c); - break; - default: - { - DATA32 da = 1 + (*d >> 24); - da = MUL_256(da, c); - color++; - *d = INTERP_256(color, da, *d); - } - break; - } - m++; d++; - }); -} - - -#define _op_copy_rel_mas_cn_dp _op_copy_rel_mas_c_dp -#define _op_copy_rel_mas_can_dp _op_copy_rel_mas_c_dp -#define _op_copy_rel_mas_caa_dp _op_copy_rel_mas_c_dp - -#define _op_copy_rel_mas_c_dpan _op_copy_mas_c_dpan -#define _op_copy_rel_mas_cn_dpan _op_copy_mas_cn_dpan -#define _op_copy_rel_mas_can_dpan _op_copy_mas_can_dpan -#define _op_copy_rel_mas_caa_dpan _op_copy_mas_caa_dpan - -static void -init_copy_rel_mask_color_span_funcs_c(void) -{ - op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_C] = _op_copy_rel_mas_cn_dp; - op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_copy_rel_mas_c_dp; - op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_copy_rel_mas_can_dp; - op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_copy_rel_mas_caa_dp; - - op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_rel_mas_cn_dpan; - op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_copy_rel_mas_c_dpan; - op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_copy_rel_mas_can_dpan; - op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_copy_rel_mas_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_copy_rel_pt_mas_c_dp(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = 1 + (*d >> 24); - s = MUL_256(s, c); - *d = INTERP_256(m + 1, s, *d); -} - -#define _op_copy_rel_pt_mas_cn_dp _op_copy_rel_pt_mas_c_dp -#define _op_copy_rel_pt_mas_can_dp _op_copy_rel_pt_mas_c_dp -#define _op_copy_rel_pt_mas_caa_dp _op_copy_rel_pt_mas_c_dp - -#define _op_copy_rel_pt_mas_c_dpan _op_copy_pt_mas_c_dpan -#define _op_copy_rel_pt_mas_cn_dpan _op_copy_pt_mas_cn_dpan -#define _op_copy_rel_pt_mas_can_dpan _op_copy_pt_mas_can_dpan -#define _op_copy_rel_pt_mas_caa_dpan _op_copy_pt_mas_caa_dpan - -static void -init_copy_rel_mask_color_pt_funcs_c(void) -{ - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_C] = _op_copy_rel_pt_mas_cn_dp; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_copy_rel_pt_mas_c_dp; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_copy_rel_pt_mas_can_dp; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_copy_rel_pt_mas_caa_dp; - - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_rel_pt_mas_cn_dpan; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_copy_rel_pt_mas_c_dpan; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_copy_rel_pt_mas_can_dpan; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_copy_rel_pt_mas_caa_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_i386.c deleted file mode 100644 index e27493f..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_i386.c +++ /dev/null @@ -1,193 +0,0 @@ -/* copy mask x color -> dst */ - -#ifdef BUILD_MMX -static void -_op_copy_mas_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - MOV_A2R(ALPHA_255, mm5) - while (d < e) { - l = *m; - switch(l) - { - case 0: - break; - case 255: - *d = c; - break; - default: - { - l++; - MOV_A2R(l, mm3) - MOV_P2R(*d, mm1, mm0) - movq_r2r(mm2, mm4); - INTERP_256_R2R(mm3, mm4, mm1, mm5); - MOV_R2P(mm1, *d, mm0) - } - break; - } - m++; d++; - } -} - -#define _op_copy_mas_cn_dp_mmx _op_copy_mas_c_dp_mmx -#define _op_copy_mas_can_dp_mmx _op_copy_mas_c_dp_mmx -#define _op_copy_mas_caa_dp_mmx _op_copy_mas_c_dp_mmx - -#define _op_copy_mas_c_dpan_mmx _op_copy_mas_c_dp_mmx -#define _op_copy_mas_cn_dpan_mmx _op_copy_mas_c_dpan_mmx -#define _op_copy_mas_can_dpan_mmx _op_copy_mas_c_dpan_mmx -#define _op_copy_mas_caa_dpan_mmx _op_copy_mas_c_dpan_mmx - -static void -init_copy_mask_color_span_funcs_mmx(void) -{ - op_copy_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_mas_cn_dp_mmx; - op_copy_span_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_copy_mas_c_dp_mmx; - op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_copy_mas_can_dp_mmx; - op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_copy_mas_caa_dp_mmx; - - op_copy_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_mas_cn_dpan_mmx; - op_copy_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_copy_mas_c_dpan_mmx; - op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_copy_mas_can_dpan_mmx; - op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_copy_mas_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_copy_pt_mas_c_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = m + 1; - MOV_A2R(ALPHA_255, mm5) - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - MOV_A2R(s, mm3) - MOV_P2R(*d, mm1, mm0) - INTERP_256_R2R(mm3, mm2, mm1, mm5); - MOV_R2P(mm1, *d, mm0) -} - -#define _op_copy_pt_mas_cn_dp_mmx _op_copy_pt_mas_c_dp_mmx -#define _op_copy_pt_mas_can_dp_mmx _op_copy_pt_mas_c_dp_mmx -#define _op_copy_pt_mas_caa_dp_mmx _op_copy_pt_mas_c_dp_mmx - -#define _op_copy_pt_mas_c_dpan_mmx _op_copy_pt_mas_c_dp_mmx -#define _op_copy_pt_mas_cn_dpan_mmx _op_copy_pt_mas_c_dpan_mmx -#define _op_copy_pt_mas_can_dpan_mmx _op_copy_pt_mas_c_dpan_mmx -#define _op_copy_pt_mas_caa_dpan_mmx _op_copy_pt_mas_c_dpan_mmx - -static void -init_copy_mask_color_pt_funcs_mmx(void) -{ - op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_pt_mas_cn_dp_mmx; - op_copy_pt_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_copy_pt_mas_c_dp_mmx; - op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_copy_pt_mas_can_dp_mmx; - op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_copy_pt_mas_caa_dp_mmx; - - op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_pt_mas_cn_dpan_mmx; - op_copy_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_copy_pt_mas_c_dpan_mmx; - op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_copy_pt_mas_can_dpan_mmx; - op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_copy_pt_mas_caa_dpan_mmx; -} -#endif - -/*-----*/ - -/* copy_rel mask x color -> dst */ - -#ifdef BUILD_MMX -static void -_op_copy_rel_mas_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - MOV_A2R(ALPHA_255, mm5) - while (d < e) { - l = *m; - switch(l) - { - case 0: - break; - case 255: - l = 1 + (*d >> 24); - MOV_A2R(l, mm1) - MUL4_256_R2R(mm2, mm1) - MOV_R2P(mm1, *d, mm0) - break; - default: - l++; - MOV_A2R(l, mm3) - MOV_P2R(*d, mm1, mm0) - MOV_RA2R(mm1, mm4) - MUL4_256_R2R(mm2, mm4) - INTERP_256_R2R(mm3, mm4, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - break; - } - m++; d++; - } -} - -#define _op_copy_rel_mas_cn_dp_mmx _op_copy_rel_mas_c_dp_mmx -#define _op_copy_rel_mas_can_dp_mmx _op_copy_rel_mas_c_dp_mmx -#define _op_copy_rel_mas_caa_dp_mmx _op_copy_rel_mas_c_dp_mmx - -#define _op_copy_rel_mas_c_dpan_mmx _op_copy_mas_c_dpan_mmx -#define _op_copy_rel_mas_cn_dpan_mmx _op_copy_mas_cn_dpan_mmx -#define _op_copy_rel_mas_can_dpan_mmx _op_copy_mas_can_dpan_mmx -#define _op_copy_rel_mas_caa_dpan_mmx _op_copy_mas_caa_dpan_mmx - -static void -init_copy_rel_mask_color_span_funcs_mmx(void) -{ - op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_mas_cn_dp_mmx; - op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_copy_rel_mas_c_dp_mmx; - op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_copy_rel_mas_can_dp_mmx; - op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_copy_rel_mas_caa_dp_mmx; - - op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_mas_cn_dpan_mmx; - op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_copy_rel_mas_c_dpan_mmx; - op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_mas_can_dpan_mmx; - op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_mas_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_copy_rel_pt_mas_c_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = m + 1; - MOV_A2R(ALPHA_255, mm5) - pxor_r2r(mm0, mm0); - MOV_A2R(s, mm3) - MOV_P2R(*d, mm1, mm0) - MOV_RA2R(mm1, mm4) - MOV_P2R(c, mm2, mm0) - MUL4_256_R2R(mm2, mm4) - INTERP_256_R2R(mm3, mm4, mm1, mm5) - MOV_R2P(mm1, *d, mm0) -} - -#define _op_copy_rel_pt_mas_cn_dp_mmx _op_copy_rel_pt_mas_c_dp_mmx -#define _op_copy_rel_pt_mas_can_dp_mmx _op_copy_rel_pt_mas_c_dp_mmx -#define _op_copy_rel_pt_mas_caa_dp_mmx _op_copy_rel_pt_mas_c_dp_mmx - -#define _op_copy_rel_pt_mas_c_dpan_mmx _op_copy_pt_mas_c_dpan_mmx -#define _op_copy_rel_pt_mas_cn_dpan_mmx _op_copy_pt_mas_cn_dpan_mmx -#define _op_copy_rel_pt_mas_can_dpan_mmx _op_copy_pt_mas_can_dpan_mmx -#define _op_copy_rel_pt_mas_caa_dpan_mmx _op_copy_pt_mas_caa_dpan_mmx - -static void -init_copy_rel_mask_color_pt_funcs_mmx(void) -{ - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_pt_mas_cn_dp_mmx; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_copy_rel_pt_mas_c_dp_mmx; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_copy_rel_pt_mas_can_dp_mmx; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_copy_rel_pt_mas_caa_dp_mmx; - - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pt_mas_cn_dpan_mmx; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_copy_rel_pt_mas_c_dpan_mmx; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pt_mas_can_dpan_mmx; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pt_mas_caa_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_neon.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_neon.c deleted file mode 100644 index dc7f78f..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_neon.c +++ /dev/null @@ -1,170 +0,0 @@ -/* copy mask x color -> dst */ - -#ifdef BUILD_NEON -static void -_op_copy_mas_c_dp_neon(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - // FIXME: neon-it - DATA32 *e; - int color; - UNROLL8_PLD_WHILE(d, l, e, - { - color = *m; - switch(color) - { - case 0: - break; - case 255: - *d = c; - break; - default: - color++; - *d = INTERP_256(color, c, *d); - break; - } - m++; d++; - }); -} - -#define _op_copy_mas_cn_dp_neon _op_copy_mas_c_dp_neon -#define _op_copy_mas_can_dp_neon _op_copy_mas_c_dp_neon -#define _op_copy_mas_caa_dp_neon _op_copy_mas_c_dp_neon - -#define _op_copy_mas_c_dpan_neon _op_copy_mas_c_dp_neon -#define _op_copy_mas_cn_dpan_neon _op_copy_mas_c_dpan_neon -#define _op_copy_mas_can_dpan_neon _op_copy_mas_c_dpan_neon -#define _op_copy_mas_caa_dpan_neon _op_copy_mas_c_dpan_neon - -static void -init_copy_mask_color_span_funcs_neon(void) -{ - op_copy_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_mas_cn_dp_neon; - op_copy_span_funcs[SP_N][SM_AS][SC][DP][CPU_NEON] = _op_copy_mas_c_dp_neon; - op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_NEON] = _op_copy_mas_can_dp_neon; - op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_NEON] = _op_copy_mas_caa_dp_neon; - - op_copy_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_mas_cn_dpan_neon; - op_copy_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_NEON] = _op_copy_mas_c_dpan_neon; - op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_NEON] = _op_copy_mas_can_dpan_neon; - op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_NEON] = _op_copy_mas_caa_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_copy_pt_mas_c_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - *d = INTERP_256(m + 1, c, *d); -} - -#define _op_copy_pt_mas_cn_dp_neon _op_copy_pt_mas_c_dp_neon -#define _op_copy_pt_mas_can_dp_neon _op_copy_pt_mas_c_dp_neon -#define _op_copy_pt_mas_caa_dp_neon _op_copy_pt_mas_c_dp_neon - -#define _op_copy_pt_mas_c_dpan_neon _op_copy_pt_mas_c_dp_neon -#define _op_copy_pt_mas_cn_dpan_neon _op_copy_pt_mas_c_dpan_neon -#define _op_copy_pt_mas_can_dpan_neon _op_copy_pt_mas_c_dpan_neon -#define _op_copy_pt_mas_caa_dpan_neon _op_copy_pt_mas_c_dpan_neon - -static void -init_copy_mask_color_pt_funcs_neon(void) -{ - op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_pt_mas_cn_dp_neon; - op_copy_pt_funcs[SP_N][SM_AS][SC][DP][CPU_NEON] = _op_copy_pt_mas_c_dp_neon; - op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_NEON] = _op_copy_pt_mas_can_dp_neon; - op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_NEON] = _op_copy_pt_mas_caa_dp_neon; - - op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_mas_cn_dpan_neon; - op_copy_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_NEON] = _op_copy_pt_mas_c_dpan_neon; - op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_NEON] = _op_copy_pt_mas_can_dpan_neon; - op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_NEON] = _op_copy_pt_mas_caa_dpan_neon; -} -#endif - -/*-----*/ - -/* copy_rel mask x color -> dst */ - -#ifdef BUILD_NEON -static void -_op_copy_rel_mas_c_dp_neon(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - // FIXME: neon-it - DATA32 *e; - int color; - UNROLL8_PLD_WHILE(d, l, e, - { - color = *m; - switch(color) - { - case 0: - break; - case 255: - color = 1 + (*d >> 24); - *d = MUL_256(color, c); - break; - default: - { - DATA32 da = 1 + (*d >> 24); - da = MUL_256(da, c); - color++; - *d = INTERP_256(color, da, *d); - } - break; - } - m++; d++; - }); -} - -#define _op_copy_rel_mas_cn_dp_neon _op_copy_rel_mas_c_dp_neon -#define _op_copy_rel_mas_can_dp_neon _op_copy_rel_mas_c_dp_neon -#define _op_copy_rel_mas_caa_dp_neon _op_copy_rel_mas_c_dp_neon - -#define _op_copy_rel_mas_c_dpan_neon _op_copy_mas_c_dpan_neon -#define _op_copy_rel_mas_cn_dpan_neon _op_copy_mas_cn_dpan_neon -#define _op_copy_rel_mas_can_dpan_neon _op_copy_mas_can_dpan_neon -#define _op_copy_rel_mas_caa_dpan_neon _op_copy_mas_caa_dpan_neon - -static void -init_copy_rel_mask_color_span_funcs_neon(void) -{ - op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_mas_cn_dp_neon; - op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP][CPU_NEON] = _op_copy_rel_mas_c_dp_neon; - op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_NEON] = _op_copy_rel_mas_can_dp_neon; - op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_NEON] = _op_copy_rel_mas_caa_dp_neon; - - op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_mas_cn_dpan_neon; - op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_NEON] = _op_copy_rel_mas_c_dpan_neon; - op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_mas_can_dpan_neon; - op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_mas_caa_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_copy_rel_pt_mas_c_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = 1 + (*d >> 24); - s = MUL_256(s, c); - *d = INTERP_256(m + 1, s, *d); -} - -#define _op_copy_rel_pt_mas_cn_dp_neon _op_copy_rel_pt_mas_c_dp_neon -#define _op_copy_rel_pt_mas_can_dp_neon _op_copy_rel_pt_mas_c_dp_neon -#define _op_copy_rel_pt_mas_caa_dp_neon _op_copy_rel_pt_mas_c_dp_neon - -#define _op_copy_rel_pt_mas_c_dpan_neon _op_copy_pt_mas_c_dpan_neon -#define _op_copy_rel_pt_mas_cn_dpan_neon _op_copy_pt_mas_cn_dpan_neon -#define _op_copy_rel_pt_mas_can_dpan_neon _op_copy_pt_mas_can_dpan_neon -#define _op_copy_rel_pt_mas_caa_dpan_neon _op_copy_pt_mas_caa_dpan_neon - -static void -init_copy_rel_mask_color_pt_funcs_neon(void) -{ - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_mas_cn_dp_neon; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP][CPU_NEON] = _op_copy_rel_pt_mas_c_dp_neon; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_NEON] = _op_copy_rel_pt_mas_can_dp_neon; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_NEON] = _op_copy_rel_pt_mas_caa_dp_neon; - - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_mas_cn_dpan_neon; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_NEON] = _op_copy_rel_pt_mas_c_dpan_neon; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_pt_mas_can_dpan_neon; - op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_pt_mas_caa_dpan_neon; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_.c deleted file mode 100644 index 45d59d0..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_.c +++ /dev/null @@ -1,117 +0,0 @@ -/* copy pixel --> dst */ - -#ifdef BUILD_C -static void -_op_copy_p_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - memcpy(d, s, l * sizeof(DATA32)); -} - -#define _op_copy_pan_dp _op_copy_p_dp -#define _op_copy_pas_dp _op_copy_p_dp - -#define _op_copy_p_dpan _op_copy_p_dp -#define _op_copy_pan_dpan _op_copy_pan_dp -#define _op_copy_pas_dpan _op_copy_pas_dp - -static void -init_copy_pixel_span_funcs_c(void) -{ - op_copy_span_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_copy_p_dp; - op_copy_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_copy_pan_dp; - op_copy_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_copy_pas_dp; - - op_copy_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_p_dpan; - op_copy_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_pan_dpan; - op_copy_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_pas_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_copy_pt_p_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) { - *d = s; -} - -#define _op_copy_pt_pan_dp _op_copy_pt_p_dp -#define _op_copy_pt_pas_dp _op_copy_pt_p_dp - -#define _op_copy_pt_p_dpan _op_copy_pt_p_dp -#define _op_copy_pt_pan_dpan _op_copy_pt_pan_dp -#define _op_copy_pt_pas_dpan _op_copy_pt_pas_dp - -static void -init_copy_pixel_pt_funcs_c(void) -{ - op_copy_pt_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_copy_pt_p_dp; - op_copy_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_copy_pt_pan_dp; - op_copy_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_copy_pt_pas_dp; - - op_copy_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_pt_p_dpan; - op_copy_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_pt_pan_dpan; - op_copy_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_pt_pas_dpan; -} -#endif - -/*-----*/ - -/* copy_rel pixel --> dst */ - -#ifdef BUILD_C -static void -_op_copy_rel_p_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e; - UNROLL8_PLD_WHILE(d, l, e, - { - *d = MUL_SYM(*d >> 24, *s); - d++; s++; - }); -} - - -#define _op_copy_rel_pas_dp _op_copy_rel_p_dp -#define _op_copy_rel_pan_dp _op_copy_rel_p_dp - -#define _op_copy_rel_p_dpan _op_copy_p_dpan -#define _op_copy_rel_pan_dpan _op_copy_pan_dpan -#define _op_copy_rel_pas_dpan _op_copy_pas_dpan - -static void -init_copy_rel_pixel_span_funcs_c(void) -{ - op_copy_rel_span_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_p_dp; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_pan_dp; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_pas_dp; - - op_copy_rel_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_p_dpan; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_pan_dpan; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_pas_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_copy_rel_pt_p_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - c = 1 + (*d >> 24); - *d = MUL_256(c, s); -} - - -#define _op_copy_rel_pt_pan_dp _op_copy_rel_pt_p_dp -#define _op_copy_rel_pt_pas_dp _op_copy_rel_pt_p_dp - -#define _op_copy_rel_pt_p_dpan _op_copy_pt_p_dpan -#define _op_copy_rel_pt_pan_dpan _op_copy_pt_pan_dpan -#define _op_copy_rel_pt_pas_dpan _op_copy_pt_pas_dpan - -static void -init_copy_rel_pixel_pt_funcs_c(void) -{ - op_copy_rel_pt_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_pt_p_dp; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_pt_pan_dp; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_pt_pas_dp; - - op_copy_rel_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_pt_p_dpan; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_pt_pan_dpan; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_pt_pas_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_color_.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_color_.c deleted file mode 100644 index 12b616d..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_color_.c +++ /dev/null @@ -1,236 +0,0 @@ -/* copy pixel x color --> dst */ - -#ifdef BUILD_C -static void -_op_copy_p_c_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - UNROLL8_PLD_WHILE(d, l, e, - { - *d = MUL4_SYM(c, *s); - d++; - s++; - }); -} - -static void -_op_copy_p_caa_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - c = 1 + (c >> 24); - UNROLL8_PLD_WHILE(d, l, e, - { - *d = MUL_256(c, *s); - d++; - s++; - }); -} - - -#define _op_copy_pas_c_dp _op_copy_p_c_dp -#define _op_copy_pan_c_dp _op_copy_p_c_dp -#define _op_copy_p_can_dp _op_copy_p_c_dp -#define _op_copy_pas_can_dp _op_copy_p_can_dp -#define _op_copy_pan_can_dp _op_copy_p_c_dp -#define _op_copy_pas_caa_dp _op_copy_p_caa_dp -#define _op_copy_pan_caa_dp _op_copy_p_caa_dp - -#define _op_copy_p_c_dpan _op_copy_p_c_dp -#define _op_copy_pas_c_dpan _op_copy_pas_c_dp -#define _op_copy_pan_c_dpan _op_copy_pan_c_dp -#define _op_copy_p_can_dpan _op_copy_p_can_dp -#define _op_copy_pas_can_dpan _op_copy_pas_can_dp -#define _op_copy_pan_can_dpan _op_copy_pan_can_dp -#define _op_copy_p_caa_dpan _op_copy_p_caa_dp -#define _op_copy_pas_caa_dpan _op_copy_pas_caa_dp -#define _op_copy_pan_caa_dpan _op_copy_pan_caa_dp - -static void -init_copy_pixel_color_span_funcs_c(void) -{ - op_copy_span_funcs[SP][SM_N][SC][DP][CPU_C] = _op_copy_p_c_dp; - op_copy_span_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_copy_pas_c_dp; - op_copy_span_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_copy_pan_c_dp; - op_copy_span_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_copy_p_can_dp; - op_copy_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_copy_pas_can_dp; - op_copy_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_C] = _op_copy_pan_can_dp; - op_copy_span_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_copy_p_caa_dp; - op_copy_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_copy_pas_caa_dp; - op_copy_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_copy_pan_caa_dp; - - op_copy_span_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_copy_p_c_dpan; - op_copy_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_copy_pas_c_dpan; - op_copy_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_copy_pan_c_dpan; - op_copy_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_p_can_dpan; - op_copy_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_pas_can_dpan; - op_copy_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_pan_can_dpan; - op_copy_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_p_caa_dpan; - op_copy_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_pas_caa_dpan; - op_copy_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_pan_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_copy_pt_p_c_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - *d = MUL4_SYM(c, s); -} - -static void -_op_copy_pt_p_caa_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - *d = MUL_SYM(c >> 24, s); -} - - -#define _op_copy_pt_p_can_dp _op_copy_pt_p_c_dp -#define _op_copy_pt_pan_c_dp _op_copy_pt_p_c_dp -#define _op_copy_pt_pan_can_dp _op_copy_pt_p_c_dp -#define _op_copy_pt_pan_caa_dp _op_copy_pt_p_caa_dp -#define _op_copy_pt_pas_c_dp _op_copy_pt_p_c_dp -#define _op_copy_pt_pas_can_dp _op_copy_pt_p_can_dp -#define _op_copy_pt_pas_caa_dp _op_copy_pt_p_caa_dp - -#define _op_copy_pt_p_c_dpan _op_copy_pt_p_c_dp -#define _op_copy_pt_pas_c_dpan _op_copy_pt_pas_c_dp -#define _op_copy_pt_pan_c_dpan _op_copy_pt_pan_c_dp -#define _op_copy_pt_p_can_dpan _op_copy_pt_p_can_dp -#define _op_copy_pt_pas_can_dpan _op_copy_pt_pas_can_dp -#define _op_copy_pt_pan_can_dpan _op_copy_pt_pan_can_dp -#define _op_copy_pt_p_caa_dpan _op_copy_pt_p_caa_dp -#define _op_copy_pt_pas_caa_dpan _op_copy_pt_pas_caa_dp -#define _op_copy_pt_pan_caa_dpan _op_copy_pt_pan_caa_dp - -static void -init_copy_pixel_color_pt_funcs_c(void) -{ - op_copy_pt_funcs[SP][SM_N][SC][DP][CPU_C] = _op_copy_pt_p_c_dp; - op_copy_pt_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_copy_pt_pas_c_dp; - op_copy_pt_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_copy_pt_pan_c_dp; - op_copy_pt_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_copy_pt_p_can_dp; - op_copy_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_copy_pt_pas_can_dp; - op_copy_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_C] = _op_copy_pt_pan_can_dp; - op_copy_pt_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_copy_pt_p_caa_dp; - op_copy_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_copy_pt_pas_caa_dp; - op_copy_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_copy_pt_pan_caa_dp; - - op_copy_pt_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_copy_pt_p_c_dpan; - op_copy_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_copy_pt_pas_c_dpan; - op_copy_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_copy_pt_pan_c_dpan; - op_copy_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_pt_p_can_dpan; - op_copy_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_pt_pas_can_dpan; - op_copy_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_pt_pan_can_dpan; - op_copy_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_pt_p_caa_dpan; - op_copy_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_pt_pas_caa_dpan; - op_copy_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_pt_pan_caa_dpan; -} -#endif - -/*-----*/ - -/* copy_rel pixel x color --> dst */ - -#ifdef BUILD_C -static void -_op_copy_rel_p_c_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - UNROLL8_PLD_WHILE(d, l, e, - { - DATA32 cs = MUL4_SYM(c, *s); - *d = MUL_SYM(*d >> 24, cs); - d++; - s++; - }); -} - -#define _op_copy_rel_pas_c_dp _op_copy_rel_p_c_dp -#define _op_copy_rel_pan_c_dp _op_copy_rel_p_c_dp -#define _op_copy_rel_p_can_dp _op_copy_rel_p_c_dp -#define _op_copy_rel_pas_can_dp _op_copy_rel_pas_c_dp -#define _op_copy_rel_pan_can_dp _op_copy_rel_p_c_dp -#define _op_copy_rel_p_caa_dp _op_copy_rel_p_c_dp -#define _op_copy_rel_pas_caa_dp _op_copy_rel_p_c_dp -#define _op_copy_rel_pan_caa_dp _op_copy_rel_p_c_dp - -#define _op_copy_rel_p_c_dpan _op_copy_p_c_dpan -#define _op_copy_rel_pas_c_dpan _op_copy_pas_c_dpan -#define _op_copy_rel_pan_c_dpan _op_copy_pan_c_dpan -#define _op_copy_rel_p_can_dpan _op_copy_p_can_dpan -#define _op_copy_rel_pas_can_dpan _op_copy_pas_can_dpan -#define _op_copy_rel_pan_can_dpan _op_copy_pan_can_dpan -#define _op_copy_rel_p_caa_dpan _op_copy_p_caa_dpan -#define _op_copy_rel_pas_caa_dpan _op_copy_pas_caa_dpan -#define _op_copy_rel_pan_caa_dpan _op_copy_pan_caa_dpan - -static void -init_copy_rel_pixel_color_span_funcs_c(void) -{ - op_copy_rel_span_funcs[SP][SM_N][SC][DP][CPU_C] = _op_copy_rel_p_c_dp; - op_copy_rel_span_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_copy_rel_pas_c_dp; - op_copy_rel_span_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_copy_rel_pan_c_dp; - op_copy_rel_span_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_copy_rel_p_can_dp; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_copy_rel_pas_can_dp; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_C] = _op_copy_rel_pan_can_dp; - op_copy_rel_span_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_copy_rel_p_caa_dp; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_copy_rel_pas_caa_dp; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_copy_rel_pan_caa_dp; - - op_copy_rel_span_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_copy_rel_p_c_dpan; - op_copy_rel_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_copy_rel_pas_c_dpan; - op_copy_rel_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_copy_rel_pan_c_dpan; - op_copy_rel_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_rel_p_can_dpan; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_rel_pas_can_dpan; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_rel_pan_can_dpan; - op_copy_rel_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_rel_p_caa_dpan; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_rel_pas_caa_dpan; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_rel_pan_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_copy_rel_pt_p_c_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = MUL4_SYM(c, s); - *d = MUL_SYM(*d >> 24, s); -} - -#define _op_copy_rel_pt_pas_c_dp _op_copy_rel_pt_p_c_dp -#define _op_copy_rel_pt_pan_c_dp _op_copy_rel_pt_p_c_dp -#define _op_copy_rel_pt_p_can_dp _op_copy_rel_pt_p_c_dp -#define _op_copy_rel_pt_pas_can_dp _op_copy_rel_pt_p_can_dp -#define _op_copy_rel_pt_pan_can_dp _op_copy_rel_pt_p_c_dp -#define _op_copy_rel_pt_p_caa_dp _op_copy_rel_pt_p_c_dp -#define _op_copy_rel_pt_pas_caa_dp _op_copy_rel_pt_p_caa_dp -#define _op_copy_rel_pt_pan_caa_dp _op_copy_rel_pt_p_caa_dp - -#define _op_copy_rel_pt_p_c_dpan _op_copy_pt_p_c_dpan -#define _op_copy_rel_pt_pas_c_dpan _op_copy_pt_pas_c_dpan -#define _op_copy_rel_pt_pan_c_dpan _op_copy_pt_pan_c_dpan -#define _op_copy_rel_pt_p_can_dpan _op_copy_pt_p_can_dpan -#define _op_copy_rel_pt_pas_can_dpan _op_copy_pt_pas_can_dpan -#define _op_copy_rel_pt_pan_can_dpan _op_copy_pt_pan_can_dpan -#define _op_copy_rel_pt_p_caa_dpan _op_copy_pt_p_caa_dpan -#define _op_copy_rel_pt_pas_caa_dpan _op_copy_pt_pas_caa_dpan -#define _op_copy_rel_pt_pan_caa_dpan _op_copy_pt_pan_caa_dpan - -static void -init_copy_rel_pixel_color_pt_funcs_c(void) -{ - op_copy_rel_pt_funcs[SP][SM_N][SC][DP][CPU_C] = _op_copy_rel_pt_p_c_dp; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_copy_rel_pt_pas_c_dp; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_copy_rel_pt_pan_c_dp; - op_copy_rel_pt_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_copy_rel_pt_p_can_dp; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_copy_rel_pt_pas_can_dp; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_C] = _op_copy_rel_pt_pan_can_dp; - op_copy_rel_pt_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_copy_rel_pt_p_caa_dp; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_copy_rel_pt_pas_caa_dp; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_copy_rel_pt_pan_caa_dp; - - op_copy_rel_pt_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_copy_rel_pt_p_c_dpan; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_copy_rel_pt_pas_c_dpan; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_copy_rel_pt_pan_c_dpan; - op_copy_rel_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_rel_pt_p_can_dpan; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_rel_pt_pas_can_dpan; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_rel_pt_pan_can_dpan; - op_copy_rel_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_rel_pt_p_caa_dpan; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_rel_pt_pas_caa_dpan; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_rel_pt_pan_caa_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_color_i386.c deleted file mode 100644 index fb5bc70..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_color_i386.c +++ /dev/null @@ -1,255 +0,0 @@ -/* copy pixel x color --> dst */ - -#ifdef BUILD_MMX -static void -_op_copy_p_c_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm3, mm0) - MOV_A2R(ALPHA_255, mm5) - while (d < e) { - MOV_P2R(*s, mm2, mm0) - MUL4_SYM_R2R(mm3, mm2, mm5); - MOV_R2P(mm2, *d, mm0) - s++; d++; - } -} - - -static void -_op_copy_p_caa_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - c = 1 + (c >> 24); - MOV_A2R(c, mm3) - pxor_r2r(mm0, mm0); - while (d < e) { - MOV_P2R(*s, mm2, mm0) - MUL4_256_R2R(mm3, mm2); - MOV_R2P(mm2, *d, mm0) - s++; d++; - } -} - - -#define _op_copy_pas_c_dp_mmx _op_copy_p_c_dp_mmx -#define _op_copy_pan_c_dp_mmx _op_copy_p_c_dp_mmx -#define _op_copy_p_can_dp_mmx _op_copy_p_c_dp_mmx -#define _op_copy_pas_can_dp_mmx _op_copy_pas_c_dp_mmx -#define _op_copy_pan_can_dp_mmx _op_copy_pan_c_dp_mmx -#define _op_copy_pas_caa_dp_mmx _op_copy_p_caa_dp_mmx -#define _op_copy_pan_caa_dp_mmx _op_copy_p_caa_dp_mmx - -#define _op_copy_p_c_dpan_mmx _op_copy_p_c_dp_mmx -#define _op_copy_pas_c_dpan_mmx _op_copy_pas_c_dp_mmx -#define _op_copy_pan_c_dpan_mmx _op_copy_pan_c_dp_mmx -#define _op_copy_p_can_dpan_mmx _op_copy_p_can_dp_mmx -#define _op_copy_pas_can_dpan_mmx _op_copy_pas_can_dp_mmx -#define _op_copy_pan_can_dpan_mmx _op_copy_pan_can_dp_mmx -#define _op_copy_p_caa_dpan_mmx _op_copy_p_caa_dp_mmx -#define _op_copy_pas_caa_dpan_mmx _op_copy_pas_caa_dp_mmx -#define _op_copy_pan_caa_dpan_mmx _op_copy_pan_caa_dp_mmx - -static void -init_copy_pixel_color_span_funcs_mmx(void) -{ - op_copy_span_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_copy_p_c_dp_mmx; - op_copy_span_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_copy_pas_c_dp_mmx; - op_copy_span_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_copy_pan_c_dp_mmx; - op_copy_span_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_p_can_dp_mmx; - op_copy_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_pas_can_dp_mmx; - op_copy_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_pan_can_dp_mmx; - op_copy_span_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_p_caa_dp_mmx; - op_copy_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_pas_caa_dp_mmx; - op_copy_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_pan_caa_dp_mmx; - - op_copy_span_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_p_c_dpan_mmx; - op_copy_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_pas_c_dpan_mmx; - op_copy_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_pan_c_dpan_mmx; - op_copy_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_p_can_dpan_mmx; - op_copy_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_pas_can_dpan_mmx; - op_copy_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_pan_can_dpan_mmx; - op_copy_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_p_caa_dpan_mmx; - op_copy_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_pas_caa_dpan_mmx; - op_copy_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_pan_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_copy_pt_p_c_dp_mmx(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - MOV_P2R(c, mm2, mm0) - MOV_P2R(s, mm2, mm0) - MUL4_SYM_R2R(mm3, mm2, mm5); - MOV_R2P(mm2, *d, mm0) -} - -#define _op_copy_pt_pas_c_dp_mmx _op_copy_pt_p_c_dp_mmx -#define _op_copy_pt_pan_c_dp_mmx _op_copy_pt_p_c_dp_mmx -#define _op_copy_pt_p_can_dp_mmx _op_copy_pt_p_c_dp_mmx -#define _op_copy_pt_pas_can_dp_mmx _op_copy_pt_p_c_dp_mmx -#define _op_copy_pt_pan_can_dp_mmx _op_copy_pt_p_c_dp_mmx -#define _op_copy_pt_p_caa_dp_mmx _op_copy_pt_p_c_dp_mmx -#define _op_copy_pt_pas_caa_dp_mmx _op_copy_pt_p_c_dp_mmx -#define _op_copy_pt_pan_caa_dp_mmx _op_copy_pt_p_c_dp_mmx - -#define _op_copy_pt_p_c_dpan_mmx _op_copy_pt_p_c_dp_mmx -#define _op_copy_pt_pas_c_dpan_mmx _op_copy_pt_pas_c_dp_mmx -#define _op_copy_pt_pan_c_dpan_mmx _op_copy_pt_pan_c_dp_mmx -#define _op_copy_pt_p_can_dpan_mmx _op_copy_pt_p_can_dp_mmx -#define _op_copy_pt_pas_can_dpan_mmx _op_copy_pt_pas_can_dp_mmx -#define _op_copy_pt_pan_can_dpan_mmx _op_copy_pt_pan_can_dp_mmx -#define _op_copy_pt_p_caa_dpan_mmx _op_copy_pt_p_caa_dp_mmx -#define _op_copy_pt_pas_caa_dpan_mmx _op_copy_pt_pas_caa_dp_mmx -#define _op_copy_pt_pan_caa_dpan_mmx _op_copy_pt_pan_caa_dp_mmx - -static void -init_copy_pixel_color_pt_funcs_mmx(void) -{ - op_copy_pt_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_copy_pt_p_c_dp_mmx; - op_copy_pt_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_copy_pt_pas_c_dp_mmx; - op_copy_pt_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_copy_pt_pan_c_dp_mmx; - op_copy_pt_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_pt_p_can_dp_mmx; - op_copy_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_pt_pas_can_dp_mmx; - op_copy_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_pt_pan_can_dp_mmx; - op_copy_pt_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_pt_p_caa_dp_mmx; - op_copy_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_pt_pas_caa_dp_mmx; - op_copy_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_pt_pan_caa_dp_mmx; - - op_copy_pt_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_pt_p_c_dpan_mmx; - op_copy_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_pt_pas_c_dpan_mmx; - op_copy_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_pt_pan_c_dpan_mmx; - op_copy_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_pt_p_can_dpan_mmx; - op_copy_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_pt_pas_can_dpan_mmx; - op_copy_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_pt_pan_can_dpan_mmx; - op_copy_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_pt_p_caa_dpan_mmx; - op_copy_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_pt_pas_caa_dpan_mmx; - op_copy_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_pt_pan_caa_dpan_mmx; -} -#endif - -/*-----*/ - -/* copy_rel pixel x color --> dst */ - -#ifdef BUILD_MMX -static void -_op_copy_rel_p_c_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm3, mm0) - MOV_A2R(ALPHA_255, mm5) - while (d < e) { - MOV_PA2R(*d, mm1) - MOV_P2R(*s, mm2, mm0) - MUL4_SYM_R2R(mm3, mm2, mm5); - MUL4_SYM_R2R(mm2, mm1, mm5); - MOV_R2P(mm1, *d, mm0) - s++; d++; - } -} - - -#define _op_copy_rel_pas_c_dp_mmx _op_copy_rel_p_c_dp_mmx -#define _op_copy_rel_pan_c_dp_mmx _op_copy_rel_p_c_dp_mmx -#define _op_copy_rel_p_can_dp_mmx _op_copy_rel_p_c_dp_mmx -#define _op_copy_rel_pas_can_dp_mmx _op_copy_rel_p_c_dp_mmx -#define _op_copy_rel_pan_can_dp_mmx _op_copy_rel_p_c_dp_mmx -#define _op_copy_rel_p_caa_dp_mmx _op_copy_rel_p_c_dp_mmx -#define _op_copy_rel_pas_caa_dp_mmx _op_copy_rel_p_c_dp_mmx -#define _op_copy_rel_pan_caa_dp_mmx _op_copy_rel_p_c_dp_mmx - -#define _op_copy_rel_p_c_dpan_mmx _op_copy_p_c_dpan_mmx -#define _op_copy_rel_pas_c_dpan_mmx _op_copy_pas_c_dpan_mmx -#define _op_copy_rel_pan_c_dpan_mmx _op_copy_pan_c_dpan_mmx -#define _op_copy_rel_p_can_dpan_mmx _op_copy_p_can_dpan_mmx -#define _op_copy_rel_pas_can_dpan_mmx _op_copy_pas_can_dpan_mmx -#define _op_copy_rel_pan_can_dpan_mmx _op_copy_pan_can_dpan_mmx -#define _op_copy_rel_p_caa_dpan_mmx _op_copy_p_caa_dpan_mmx -#define _op_copy_rel_pas_caa_dpan_mmx _op_copy_pas_caa_dpan_mmx -#define _op_copy_rel_pan_caa_dpan_mmx _op_copy_pan_caa_dpan_mmx - -static void -init_copy_rel_pixel_color_span_funcs_mmx(void) -{ - op_copy_rel_span_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_p_c_dp_mmx; - op_copy_rel_span_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_pas_c_dp_mmx; - op_copy_rel_span_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_pan_c_dp_mmx; - op_copy_rel_span_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_p_can_dp_mmx; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_pas_can_dp_mmx; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_pan_can_dp_mmx; - op_copy_rel_span_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_p_caa_dp_mmx; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_pas_caa_dp_mmx; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_pan_caa_dp_mmx; - - op_copy_rel_span_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_p_c_dpan_mmx; - op_copy_rel_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_pas_c_dpan_mmx; - op_copy_rel_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_pan_c_dpan_mmx; - op_copy_rel_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_p_can_dpan_mmx; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pas_can_dpan_mmx; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pan_can_dpan_mmx; - op_copy_rel_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_p_caa_dpan_mmx; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pas_caa_dpan_mmx; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pan_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_copy_rel_pt_p_c_dp_mmx(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm3, mm0) - MOV_A2R(ALPHA_255, mm5) - MOV_PA2R(*d, mm1) - MOV_P2R(s, mm2, mm0) - MUL4_SYM_R2R(mm3, mm2, mm5); - MUL4_SYM_R2R(mm2, mm1, mm5); - MOV_R2P(mm1, *d, mm0) -} - - -#define _op_copy_rel_pt_pas_c_dp_mmx _op_copy_rel_pt_p_c_dp_mmx -#define _op_copy_rel_pt_pan_c_dp_mmx _op_copy_rel_pt_p_c_dp_mmx -#define _op_copy_rel_pt_p_can_dp_mmx _op_copy_rel_pt_p_c_dp_mmx -#define _op_copy_rel_pt_pas_can_dp_mmx _op_copy_rel_pt_p_c_dp_mmx -#define _op_copy_rel_pt_pan_can_dp_mmx _op_copy_rel_pt_p_c_dp_mmx -#define _op_copy_rel_pt_p_caa_dp_mmx _op_copy_rel_pt_p_c_dp_mmx -#define _op_copy_rel_pt_pas_caa_dp_mmx _op_copy_rel_pt_p_c_dp_mmx -#define _op_copy_rel_pt_pan_caa_dp_mmx _op_copy_rel_pt_p_c_dp_mmx - -#define _op_copy_rel_pt_p_c_dpan_mmx _op_copy_pt_p_c_dpan_mmx -#define _op_copy_rel_pt_pas_c_dpan_mmx _op_copy_pt_pas_c_dpan_mmx -#define _op_copy_rel_pt_pan_c_dpan_mmx _op_copy_pt_pan_c_dpan_mmx -#define _op_copy_rel_pt_p_can_dpan_mmx _op_copy_pt_p_can_dpan_mmx -#define _op_copy_rel_pt_pas_can_dpan_mmx _op_copy_pt_pas_can_dpan_mmx -#define _op_copy_rel_pt_pan_can_dpan_mmx _op_copy_pt_pan_can_dpan_mmx -#define _op_copy_rel_pt_p_caa_dpan_mmx _op_copy_pt_p_caa_dpan_mmx -#define _op_copy_rel_pt_pas_caa_dpan_mmx _op_copy_pt_pas_caa_dpan_mmx -#define _op_copy_rel_pt_pan_caa_dpan_mmx _op_copy_pt_pan_caa_dpan_mmx - - -static void -init_copy_rel_pixel_color_pt_funcs_mmx(void) -{ - op_copy_rel_pt_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_pt_p_c_dp_mmx; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_pt_pas_c_dp_mmx; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_pt_pan_c_dp_mmx; - op_copy_rel_pt_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_pt_p_can_dp_mmx; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_pt_pas_can_dp_mmx; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_pt_pan_can_dp_mmx; - op_copy_rel_pt_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_pt_p_caa_dp_mmx; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_pt_pas_caa_dp_mmx; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_pt_pan_caa_dp_mmx; - - op_copy_rel_pt_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_pt_p_c_dpan_mmx; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_pt_pas_c_dpan_mmx; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_pt_pan_c_dpan_mmx; - op_copy_rel_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pt_p_can_dpan_mmx; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pt_pas_can_dpan_mmx; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pt_pan_can_dpan_mmx; - op_copy_rel_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pt_p_caa_dpan_mmx; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pt_pas_caa_dpan_mmx; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pt_pan_caa_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_color_neon.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_color_neon.c deleted file mode 100644 index f8a1e79..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_color_neon.c +++ /dev/null @@ -1,238 +0,0 @@ -/* copy pixel x color --> dst */ - -#ifdef BUILD_NEON -static void -_op_copy_p_c_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - // FIXME: neon-it - DATA32 *e; - UNROLL8_PLD_WHILE(d, l, e, - { - *d = MUL4_SYM(c, *s); - d++; - s++; - }); -} - - -static void -_op_copy_p_caa_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { // FIXME: neon-it - // FIXME: neon-it - DATA32 *e; - c = 1 + (c >> 24); - UNROLL8_PLD_WHILE(d, l, e, - { - *d = MUL_256(c, *s); - d++; - s++; - }); -} - - -#define _op_copy_pas_c_dp_neon _op_copy_p_c_dp_neon -#define _op_copy_pan_c_dp_neon _op_copy_p_c_dp_neon -#define _op_copy_p_can_dp_neon _op_copy_p_c_dp_neon -#define _op_copy_pas_can_dp_neon _op_copy_pas_c_dp_neon -#define _op_copy_pan_can_dp_neon _op_copy_pan_c_dp_neon -#define _op_copy_pas_caa_dp_neon _op_copy_p_caa_dp_neon -#define _op_copy_pan_caa_dp_neon _op_copy_p_caa_dp_neon - -#define _op_copy_p_c_dpan_neon _op_copy_p_c_dp_neon -#define _op_copy_pas_c_dpan_neon _op_copy_pas_c_dp_neon -#define _op_copy_pan_c_dpan_neon _op_copy_pan_c_dp_neon -#define _op_copy_p_can_dpan_neon _op_copy_p_can_dp_neon -#define _op_copy_pas_can_dpan_neon _op_copy_pas_can_dp_neon -#define _op_copy_pan_can_dpan_neon _op_copy_pan_can_dp_neon -#define _op_copy_p_caa_dpan_neon _op_copy_p_caa_dp_neon -#define _op_copy_pas_caa_dpan_neon _op_copy_pas_caa_dp_neon -#define _op_copy_pan_caa_dpan_neon _op_copy_pan_caa_dp_neon - -static void -init_copy_pixel_color_span_funcs_neon(void) -{ - op_copy_span_funcs[SP][SM_N][SC][DP][CPU_NEON] = _op_copy_p_c_dp_neon; - op_copy_span_funcs[SP_AS][SM_N][SC][DP][CPU_NEON] = _op_copy_pas_c_dp_neon; - op_copy_span_funcs[SP_AN][SM_N][SC][DP][CPU_NEON] = _op_copy_pan_c_dp_neon; - op_copy_span_funcs[SP][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_p_can_dp_neon; - op_copy_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_pas_can_dp_neon; - op_copy_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_pan_can_dp_neon; - op_copy_span_funcs[SP][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_p_caa_dp_neon; - op_copy_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_pas_caa_dp_neon; - op_copy_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_pan_caa_dp_neon; - - op_copy_span_funcs[SP][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_p_c_dpan_neon; - op_copy_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_pas_c_dpan_neon; - op_copy_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_pan_c_dpan_neon; - op_copy_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_p_can_dpan_neon; - op_copy_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_pas_can_dpan_neon; - op_copy_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_pan_can_dpan_neon; - op_copy_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_p_caa_dpan_neon; - op_copy_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_pas_caa_dpan_neon; - op_copy_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_pan_caa_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_copy_pt_p_c_dp_neon(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - *d = MUL4_SYM(c, s); -} - -#define _op_copy_pt_pas_c_dp_neon _op_copy_pt_p_c_dp_neon -#define _op_copy_pt_pan_c_dp_neon _op_copy_pt_p_c_dp_neon -#define _op_copy_pt_p_can_dp_neon _op_copy_pt_p_c_dp_neon -#define _op_copy_pt_pas_can_dp_neon _op_copy_pt_p_c_dp_neon -#define _op_copy_pt_pan_can_dp_neon _op_copy_pt_p_c_dp_neon -#define _op_copy_pt_p_caa_dp_neon _op_copy_pt_p_c_dp_neon -#define _op_copy_pt_pas_caa_dp_neon _op_copy_pt_p_c_dp_neon -#define _op_copy_pt_pan_caa_dp_neon _op_copy_pt_p_c_dp_neon - -#define _op_copy_pt_p_c_dpan_neon _op_copy_pt_p_c_dp_neon -#define _op_copy_pt_pas_c_dpan_neon _op_copy_pt_pas_c_dp_neon -#define _op_copy_pt_pan_c_dpan_neon _op_copy_pt_pan_c_dp_neon -#define _op_copy_pt_p_can_dpan_neon _op_copy_pt_p_can_dp_neon -#define _op_copy_pt_pas_can_dpan_neon _op_copy_pt_pas_can_dp_neon -#define _op_copy_pt_pan_can_dpan_neon _op_copy_pt_pan_can_dp_neon -#define _op_copy_pt_p_caa_dpan_neon _op_copy_pt_p_caa_dp_neon -#define _op_copy_pt_pas_caa_dpan_neon _op_copy_pt_pas_caa_dp_neon -#define _op_copy_pt_pan_caa_dpan_neon _op_copy_pt_pan_caa_dp_neon - -static void -init_copy_pixel_color_pt_funcs_neon(void) -{ - op_copy_pt_funcs[SP][SM_N][SC][DP][CPU_NEON] = _op_copy_pt_p_c_dp_neon; - op_copy_pt_funcs[SP_AS][SM_N][SC][DP][CPU_NEON] = _op_copy_pt_pas_c_dp_neon; - op_copy_pt_funcs[SP_AN][SM_N][SC][DP][CPU_NEON] = _op_copy_pt_pan_c_dp_neon; - op_copy_pt_funcs[SP][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_pt_p_can_dp_neon; - op_copy_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_pt_pas_can_dp_neon; - op_copy_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_pt_pan_can_dp_neon; - op_copy_pt_funcs[SP][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_pt_p_caa_dp_neon; - op_copy_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_pt_pas_caa_dp_neon; - op_copy_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_pt_pan_caa_dp_neon; - - op_copy_pt_funcs[SP][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_pt_p_c_dpan_neon; - op_copy_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_pt_pas_c_dpan_neon; - op_copy_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_pt_pan_c_dpan_neon; - op_copy_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_pt_p_can_dpan_neon; - op_copy_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_pt_pas_can_dpan_neon; - op_copy_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_pt_pan_can_dpan_neon; - op_copy_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_pt_p_caa_dpan_neon; - op_copy_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_pt_pas_caa_dpan_neon; - op_copy_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_pt_pan_caa_dpan_neon; -} -#endif - -/*-----*/ - -/* copy_rel pixel x color --> dst */ - -#ifdef BUILD_NEON -static void -_op_copy_rel_p_c_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - // FIXME: neon-it - DATA32 *e; - UNROLL8_PLD_WHILE(d, l, e, - { - DATA32 cs = MUL4_SYM(c, *s); - *d = MUL_SYM(*d >> 24, cs); - d++; - s++; - }); -} - - -#define _op_copy_rel_pas_c_dp_neon _op_copy_rel_p_c_dp_neon -#define _op_copy_rel_pan_c_dp_neon _op_copy_rel_p_c_dp_neon -#define _op_copy_rel_p_can_dp_neon _op_copy_rel_p_c_dp_neon -#define _op_copy_rel_pas_can_dp_neon _op_copy_rel_p_c_dp_neon -#define _op_copy_rel_pan_can_dp_neon _op_copy_rel_p_c_dp_neon -#define _op_copy_rel_p_caa_dp_neon _op_copy_rel_p_c_dp_neon -#define _op_copy_rel_pas_caa_dp_neon _op_copy_rel_p_c_dp_neon -#define _op_copy_rel_pan_caa_dp_neon _op_copy_rel_p_c_dp_neon - -#define _op_copy_rel_p_c_dpan_neon _op_copy_p_c_dpan_neon -#define _op_copy_rel_pas_c_dpan_neon _op_copy_pas_c_dpan_neon -#define _op_copy_rel_pan_c_dpan_neon _op_copy_pan_c_dpan_neon -#define _op_copy_rel_p_can_dpan_neon _op_copy_p_can_dpan_neon -#define _op_copy_rel_pas_can_dpan_neon _op_copy_pas_can_dpan_neon -#define _op_copy_rel_pan_can_dpan_neon _op_copy_pan_can_dpan_neon -#define _op_copy_rel_p_caa_dpan_neon _op_copy_p_caa_dpan_neon -#define _op_copy_rel_pas_caa_dpan_neon _op_copy_pas_caa_dpan_neon -#define _op_copy_rel_pan_caa_dpan_neon _op_copy_pan_caa_dpan_neon - -static void -init_copy_rel_pixel_color_span_funcs_neon(void) -{ - op_copy_rel_span_funcs[SP][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_p_c_dp_neon; - op_copy_rel_span_funcs[SP_AS][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_pas_c_dp_neon; - op_copy_rel_span_funcs[SP_AN][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_pan_c_dp_neon; - op_copy_rel_span_funcs[SP][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_p_can_dp_neon; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_pas_can_dp_neon; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_pan_can_dp_neon; - op_copy_rel_span_funcs[SP][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_p_caa_dp_neon; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_pas_caa_dp_neon; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_pan_caa_dp_neon; - - op_copy_rel_span_funcs[SP][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_p_c_dpan_neon; - op_copy_rel_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_pas_c_dpan_neon; - op_copy_rel_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_pan_c_dpan_neon; - op_copy_rel_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_p_can_dpan_neon; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_pas_can_dpan_neon; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_pan_can_dpan_neon; - op_copy_rel_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_p_caa_dpan_neon; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_pas_caa_dpan_neon; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_pan_caa_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_copy_rel_pt_p_c_dp_neon(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = MUL4_SYM(c, s); - *d = MUL_SYM(*d >> 24, s); -} - - -#define _op_copy_rel_pt_pas_c_dp_neon _op_copy_rel_pt_p_c_dp_neon -#define _op_copy_rel_pt_pan_c_dp_neon _op_copy_rel_pt_p_c_dp_neon -#define _op_copy_rel_pt_p_can_dp_neon _op_copy_rel_pt_p_c_dp_neon -#define _op_copy_rel_pt_pas_can_dp_neon _op_copy_rel_pt_p_c_dp_neon -#define _op_copy_rel_pt_pan_can_dp_neon _op_copy_rel_pt_p_c_dp_neon -#define _op_copy_rel_pt_p_caa_dp_neon _op_copy_rel_pt_p_c_dp_neon -#define _op_copy_rel_pt_pas_caa_dp_neon _op_copy_rel_pt_p_c_dp_neon -#define _op_copy_rel_pt_pan_caa_dp_neon _op_copy_rel_pt_p_c_dp_neon - -#define _op_copy_rel_pt_p_c_dpan_neon _op_copy_pt_p_c_dpan_neon -#define _op_copy_rel_pt_pas_c_dpan_neon _op_copy_pt_pas_c_dpan_neon -#define _op_copy_rel_pt_pan_c_dpan_neon _op_copy_pt_pan_c_dpan_neon -#define _op_copy_rel_pt_p_can_dpan_neon _op_copy_pt_p_can_dpan_neon -#define _op_copy_rel_pt_pas_can_dpan_neon _op_copy_pt_pas_can_dpan_neon -#define _op_copy_rel_pt_pan_can_dpan_neon _op_copy_pt_pan_can_dpan_neon -#define _op_copy_rel_pt_p_caa_dpan_neon _op_copy_pt_p_caa_dpan_neon -#define _op_copy_rel_pt_pas_caa_dpan_neon _op_copy_pt_pas_caa_dpan_neon -#define _op_copy_rel_pt_pan_caa_dpan_neon _op_copy_pt_pan_caa_dpan_neon - - -static void -init_copy_rel_pixel_color_pt_funcs_neon(void) -{ - op_copy_rel_pt_funcs[SP][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_pt_p_c_dp_neon; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_pt_pas_c_dp_neon; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_pt_pan_c_dp_neon; - op_copy_rel_pt_funcs[SP][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_pt_p_can_dp_neon; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_pt_pas_can_dp_neon; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_pt_pan_can_dp_neon; - op_copy_rel_pt_funcs[SP][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_pt_p_caa_dp_neon; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_pt_pas_caa_dp_neon; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_pt_pan_caa_dp_neon; - - op_copy_rel_pt_funcs[SP][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_pt_p_c_dpan_neon; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_pt_pas_c_dpan_neon; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_pt_pan_c_dpan_neon; - op_copy_rel_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_pt_p_can_dpan_neon; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_pt_pas_can_dpan_neon; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_pt_pan_can_dpan_neon; - op_copy_rel_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_pt_p_caa_dpan_neon; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_pt_pas_caa_dpan_neon; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_pt_pan_caa_dpan_neon; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_i386.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_i386.c deleted file mode 100644 index b03022b..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_i386.c +++ /dev/null @@ -1,131 +0,0 @@ -/* copy pixel --> dst */ - -#ifdef BUILD_MMX -static void -_op_copy_p_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = d + l - 15; - for (; d < e; d+=16, s+=16) { - MOVE_16DWORDS_MMX(s, d); - } - e+=15; - for (; d < e; d++, s++) { - *d = *s; - } -} - -#define _op_copy_pan_dp_mmx _op_copy_p_dp_mmx -#define _op_copy_pas_dp_mmx _op_copy_p_dp_mmx - -#define _op_copy_p_dpan_mmx _op_copy_p_dp_mmx -#define _op_copy_pan_dpan_mmx _op_copy_pan_dp_mmx -#define _op_copy_pas_dpan_mmx _op_copy_pas_dp_mmx - -static void -init_copy_pixel_span_funcs_mmx(void) -{ - op_copy_span_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_copy_p_dp_mmx; - op_copy_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_MMX] = _op_copy_pan_dp_mmx; - op_copy_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_copy_pas_dp_mmx; - - op_copy_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_p_dpan_mmx; - op_copy_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_pan_dpan_mmx; - op_copy_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_pas_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_copy_pt_p_dp_mmx(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) { - *d = s; -} - -#define _op_copy_pt_pan_dp_mmx _op_copy_pt_p_dp_mmx -#define _op_copy_pt_pas_dp_mmx _op_copy_pt_p_dp_mmx - -#define _op_copy_pt_p_dpan_mmx _op_copy_pt_p_dp_mmx -#define _op_copy_pt_pan_dpan_mmx _op_copy_pt_pan_dp_mmx -#define _op_copy_pt_pas_dpan_mmx _op_copy_pt_pas_dp_mmx - -static void -init_copy_pixel_pt_funcs_mmx(void) -{ - op_copy_pt_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_copy_pt_p_dp_mmx; - op_copy_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_MMX] = _op_copy_pt_pan_dp_mmx; - op_copy_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_copy_pt_pas_dp_mmx; - - op_copy_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_pt_p_dpan_mmx; - op_copy_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_pt_pan_dpan_mmx; - op_copy_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_pt_pas_dpan_mmx; -} -#endif - -/*-----*/ - -/* copy_rel pixel --> dst */ - -#ifdef BUILD_MMX -static void -_op_copy_rel_p_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - for (; d < e; d++, s++) { - MOV_PA2R(*d, mm1) - MOV_P2R(*s, mm2, mm0) - MUL4_SYM_R2R(mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - } -} - - -#define _op_copy_rel_pas_dp_mmx _op_copy_rel_p_dp_mmx -#define _op_copy_rel_pan_dp_mmx _op_copy_rel_p_dp_mmx - -#define _op_copy_rel_p_dpan_mmx _op_copy_p_dpan_mmx -#define _op_copy_rel_pan_dpan_mmx _op_copy_pan_dpan_mmx -#define _op_copy_rel_pas_dpan_mmx _op_copy_pas_dpan_mmx - -static void -init_copy_rel_pixel_span_funcs_mmx(void) -{ - op_copy_rel_span_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_copy_rel_p_dp_mmx; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_MMX] = _op_copy_rel_pan_dp_mmx; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_copy_rel_pas_dp_mmx; - - op_copy_rel_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_p_dpan_mmx; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pan_dpan_mmx; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pas_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_copy_rel_pt_p_dp_mmx(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - c = 1 + (*d >> 24); - MOV_A2R(c, mm1) - pxor_r2r(mm0, mm0); - MOV_P2R(s, mm2, mm0) - MUL4_256_R2R(mm2, mm1) - MOV_R2P(mm1, *d, mm0) -} - - -#define _op_copy_rel_pt_pan_dp_mmx _op_copy_rel_pt_p_dp_mmx -#define _op_copy_rel_pt_pas_dp_mmx _op_copy_rel_pt_p_dp_mmx - -#define _op_copy_rel_pt_p_dpan_mmx _op_copy_pt_p_dpan_mmx -#define _op_copy_rel_pt_pan_dpan_mmx _op_copy_pt_pan_dpan_mmx -#define _op_copy_rel_pt_pas_dpan_mmx _op_copy_pt_pas_dpan_mmx - -static void -init_copy_rel_pixel_pt_funcs_mmx(void) -{ - op_copy_rel_pt_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_copy_rel_pt_p_dp_mmx; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_MMX] = _op_copy_rel_pt_pan_dp_mmx; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_copy_rel_pt_pas_dp_mmx; - - op_copy_rel_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pt_p_dpan_mmx; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pt_pan_dpan_mmx; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pt_pas_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_mask_.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_mask_.c deleted file mode 100644 index 48b5338..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_mask_.c +++ /dev/null @@ -1,150 +0,0 @@ -/* copy pixel x mask --> dst */ - -#ifdef BUILD_C -static void -_op_copy_p_mas_dp(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e; - int color; - UNROLL8_PLD_WHILE(d, l, e, - { - color = *m; - switch(color) - { - case 0: - break; - case 255: - *d = *s; - break; - default: - color++; - *d = INTERP_256(color, *s, *d); - break; - } - m++; s++; d++; - }); -} - - -#define _op_copy_pan_mas_dp _op_copy_p_mas_dp -#define _op_copy_pas_mas_dp _op_copy_p_mas_dp - -#define _op_copy_p_mas_dpan _op_copy_p_mas_dp -#define _op_copy_pan_mas_dpan _op_copy_p_mas_dpan -#define _op_copy_pas_mas_dpan _op_copy_p_mas_dpan - -static void -init_copy_pixel_mask_span_funcs_c(void) -{ - op_copy_span_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_copy_p_mas_dp; - op_copy_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_C] = _op_copy_pan_mas_dp; - op_copy_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_copy_pas_mas_dp; - - op_copy_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_p_mas_dpan; - op_copy_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_pan_mas_dpan; - op_copy_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_pas_mas_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_copy_pt_p_mas_dp(DATA32 s, DATA8 m, DATA32 c __UNUSED__, DATA32 *d) { - *d = INTERP_256(m + 1, s, *d); -} - -#define _op_copy_pt_pan_mas_dp _op_copy_pt_p_mas_dp -#define _op_copy_pt_pas_mas_dp _op_copy_pt_p_mas_dp - -#define _op_copy_pt_p_mas_dpan _op_copy_pt_p_mas_dp -#define _op_copy_pt_pan_mas_dpan _op_copy_pt_p_mas_dpan -#define _op_copy_pt_pas_mas_dpan _op_copy_pt_p_mas_dpan - -static void -init_copy_pixel_mask_pt_funcs_c(void) -{ - op_copy_pt_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_copy_pt_p_mas_dp; - op_copy_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_C] = _op_copy_pt_pan_mas_dp; - op_copy_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_copy_pt_pas_mas_dp; - - op_copy_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_pt_p_mas_dpan; - op_copy_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_pt_pan_mas_dpan; - op_copy_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_pt_pas_mas_dpan; -} -#endif - -/*-----*/ - -/* copy_rel pixel x mask --> dst */ - -#ifdef BUILD_C -static void -_op_copy_rel_p_mas_dp(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e; - int color; - UNROLL8_PLD_WHILE(d, l, e, - { - color = *m; - switch(color) - { - case 0: - break; - case 255: - *d = MUL_SYM(*d >> 24, *s); - break; - default: - c = MUL_SYM(*d >> 24, *s); - l++; - *d = INTERP_256(l, c, *d); - break; - } - m++; s++; d++; - }); -} - - -#define _op_copy_rel_pan_mas_dp _op_copy_rel_p_mas_dp -#define _op_copy_rel_pas_mas_dp _op_copy_rel_p_mas_dp - -#define _op_copy_rel_p_mas_dpan _op_copy_p_mas_dpan -#define _op_copy_rel_pan_mas_dpan _op_copy_pan_mas_dpan -#define _op_copy_rel_pas_mas_dpan _op_copy_pas_mas_dpan - -static void -init_copy_rel_pixel_mask_span_funcs_c(void) -{ - op_copy_rel_span_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_copy_rel_p_mas_dp; - op_copy_rel_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_C] = _op_copy_rel_pan_mas_dp; - op_copy_rel_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_copy_rel_pas_mas_dp; - - op_copy_rel_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_rel_p_mas_dpan; - op_copy_rel_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_rel_pan_mas_dpan; - op_copy_rel_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_rel_pas_mas_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_copy_rel_pt_p_mas_dp(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - c = MUL_SYM(*d >> 24, s); - *d = INTERP_256(m + 1, c, *d); -} - - -#define _op_copy_rel_pt_pan_mas_dp _op_copy_rel_pt_p_mas_dp -#define _op_copy_rel_pt_pas_mas_dp _op_copy_rel_pt_p_mas_dp - -#define _op_copy_rel_pt_p_mas_dpan _op_copy_pt_p_mas_dpan -#define _op_copy_rel_pt_pan_mas_dpan _op_copy_pt_pan_mas_dpan -#define _op_copy_rel_pt_pas_mas_dpan _op_copy_pt_pas_mas_dpan - -static void -init_copy_rel_pixel_mask_pt_funcs_c(void) -{ - op_copy_rel_pt_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_copy_rel_pt_p_mas_dp; - op_copy_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_C] = _op_copy_rel_pt_pan_mas_dp; - op_copy_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_copy_rel_pt_pas_mas_dp; - - op_copy_rel_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_rel_pt_p_mas_dpan; - op_copy_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_rel_pt_pan_mas_dpan; - op_copy_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_rel_pt_pas_mas_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_mask_i386.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_mask_i386.c deleted file mode 100644 index 2511c41..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_mask_i386.c +++ /dev/null @@ -1,176 +0,0 @@ -/* copy pixel x mask --> dst */ - -#ifdef BUILD_MMX -static void -_op_copy_p_mas_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - while (d < e) { - l = *m; - switch(l) - { - case 0: - break; - case 255: - *d = *s; - break; - default: - l++; - MOV_A2R(l, mm3) - MOV_P2R(*s, mm2, mm0) - MOV_P2R(*d, mm1, mm0) - INTERP_256_R2R(mm3, mm2, mm1, mm5); - MOV_R2P(mm1, *d, mm0) - break; - } - m++; d++; - } -} - -#define _op_copy_pan_mas_dp_mmx _op_copy_p_mas_dp_mmx -#define _op_copy_pas_mas_dp_mmx _op_copy_p_mas_dp_mmx - -#define _op_copy_p_mas_dpan_mmx _op_copy_p_mas_dp_mmx -#define _op_copy_pan_mas_dpan_mmx _op_copy_p_mas_dpan_mmx -#define _op_copy_pas_mas_dpan_mmx _op_copy_p_mas_dpan_mmx - -static void -init_copy_pixel_mask_span_funcs_mmx(void) -{ - op_copy_span_funcs[SP][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_p_mas_dp_mmx; - op_copy_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_pan_mas_dp_mmx; - op_copy_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_pas_mas_dp_mmx; - - op_copy_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_p_mas_dpan_mmx; - op_copy_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_pan_mas_dpan_mmx; - op_copy_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_pas_mas_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_copy_pt_p_mas_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - c = m + 1; - MOV_A2R(ALPHA_255, mm5) - MOV_A2R(c, mm3) - pxor_r2r(mm0, mm0); - MOV_P2R(s, mm2, mm0) - MOV_P2R(*d, mm1, mm0) - INTERP_256_R2R(mm3, mm2, mm1, mm5); - MOV_R2P(mm1, *d, mm0) -} - -#define _op_copy_pt_pan_mas_dp_mmx _op_copy_pt_p_mas_dp_mmx -#define _op_copy_pt_pas_mas_dp_mmx _op_copy_pt_p_mas_dp_mmx - -#define _op_copy_pt_p_mas_dpan_mmx _op_copy_pt_p_mas_dp_mmx -#define _op_copy_pt_pan_mas_dpan_mmx _op_copy_pt_p_mas_dpan_mmx -#define _op_copy_pt_pas_mas_dpan_mmx _op_copy_pt_p_mas_dpan_mmx - -static void -init_copy_pixel_mask_pt_funcs_mmx(void) -{ - op_copy_pt_funcs[SP][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_pt_p_mas_dp_mmx; - op_copy_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_pt_pan_mas_dp_mmx; - op_copy_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_pt_pas_mas_dp_mmx; - - op_copy_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_pt_p_mas_dpan_mmx; - op_copy_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_pt_pan_mas_dpan_mmx; - op_copy_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_pt_pas_mas_dpan_mmx; -} -#endif - -/*-----*/ - -/* copy_rel pixel x mask --> dst */ - -#ifdef BUILD_MMX -static void -_op_copy_rel_p_mas_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - while (d < e) { - l = *m; - switch(l) - { - case 0: - break; - case 255: - MOV_P2R(*s, mm2, mm0) - MOV_PA2R(*d, mm1) - MUL4_SYM_R2R(mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - break; - default: - l++; - MOV_P2R(*s, mm3, mm0) - MOV_P2R(*d, mm1, mm0) - MOV_RA2R(mm1, mm2) - MUL4_SYM_R2R(mm3, mm2, mm5) - MOV_A2R(l, mm3) - INTERP_256_R2R(mm3, mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - break; - } - m++; s++; d++; - } -} - -#define _op_copy_rel_pan_mas_dp_mmx _op_copy_rel_p_mas_dp_mmx -#define _op_copy_rel_pas_mas_dp_mmx _op_copy_rel_p_mas_dp_mmx - -#define _op_copy_rel_p_mas_dpan_mmx _op_copy_p_mas_dpan_mmx -#define _op_copy_rel_pan_mas_dpan_mmx _op_copy_pan_mas_dpan_mmx -#define _op_copy_rel_pas_mas_dpan_mmx _op_copy_pas_mas_dpan_mmx - -static void -init_copy_rel_pixel_mask_span_funcs_mmx(void) -{ - op_copy_rel_span_funcs[SP][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_p_mas_dp_mmx; - op_copy_rel_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_pan_mas_dp_mmx; - op_copy_rel_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_pas_mas_dp_mmx; - - op_copy_rel_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_p_mas_dpan_mmx; - op_copy_rel_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pan_mas_dpan_mmx; - op_copy_rel_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pas_mas_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_copy_rel_pt_p_mas_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - c = m + 1; - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - MOV_P2R(s, mm3, mm0) - MOV_P2R(*d, mm1, mm0) - MOV_RA2R(mm1, mm2) - MUL4_SYM_R2R(mm3, mm2, mm5) - MOV_A2R(c, mm3) - INTERP_256_R2R(mm3, mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) -} - - -#define _op_copy_rel_pt_pan_mas_dp_mmx _op_copy_rel_pt_p_mas_dp_mmx -#define _op_copy_rel_pt_pas_mas_dp_mmx _op_copy_rel_pt_p_mas_dp_mmx - -#define _op_copy_rel_pt_p_mas_dpan_mmx _op_copy_pt_p_mas_dpan_mmx -#define _op_copy_rel_pt_pan_mas_dpan_mmx _op_copy_pt_pan_mas_dpan_mmx -#define _op_copy_rel_pt_pas_mas_dpan_mmx _op_copy_pt_pas_mas_dpan_mmx - -static void -init_copy_rel_pixel_mask_pt_funcs_mmx(void) -{ - op_copy_rel_pt_funcs[SP][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_pt_p_mas_dp_mmx; - op_copy_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_pt_pan_mas_dp_mmx; - op_copy_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_pt_pas_mas_dp_mmx; - - op_copy_rel_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pt_p_mas_dpan_mmx; - op_copy_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pt_pan_mas_dpan_mmx; - op_copy_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pt_pas_mas_dpan_mmx; -} -#endif - diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_mask_neon.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_mask_neon.c deleted file mode 100644 index e25f8f8..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_mask_neon.c +++ /dev/null @@ -1,151 +0,0 @@ -/* copy pixel x mask --> dst */ - -#ifdef BUILD_NEON -static void -_op_copy_p_mas_dp_neon(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) { - // FIXME: neon-it - DATA32 *e; - int color; - UNROLL8_PLD_WHILE(d, l, e, - { - color = *m; - switch(color) - { - case 0: - break; - case 255: - *d = *s; - break; - default: - color++; - *d = INTERP_256(color, *s, *d); - break; - } - m++; s++; d++; - }); -} - -#define _op_copy_pan_mas_dp_neon _op_copy_p_mas_dp_neon -#define _op_copy_pas_mas_dp_neon _op_copy_p_mas_dp_neon - -#define _op_copy_p_mas_dpan_neon _op_copy_p_mas_dp_neon -#define _op_copy_pan_mas_dpan_neon _op_copy_p_mas_dpan_neon -#define _op_copy_pas_mas_dpan_neon _op_copy_p_mas_dpan_neon - -static void -init_copy_pixel_mask_span_funcs_neon(void) -{ - op_copy_span_funcs[SP][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_p_mas_dp_neon; - op_copy_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_pan_mas_dp_neon; - op_copy_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_pas_mas_dp_neon; - - op_copy_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_p_mas_dpan_neon; - op_copy_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_pan_mas_dpan_neon; - op_copy_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_pas_mas_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_copy_pt_p_mas_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - *d = INTERP_256(m + 1, s, *d); -} - -#define _op_copy_pt_pan_mas_dp_neon _op_copy_pt_p_mas_dp_neon -#define _op_copy_pt_pas_mas_dp_neon _op_copy_pt_p_mas_dp_neon - -#define _op_copy_pt_p_mas_dpan_neon _op_copy_pt_p_mas_dp_neon -#define _op_copy_pt_pan_mas_dpan_neon _op_copy_pt_p_mas_dpan_neon -#define _op_copy_pt_pas_mas_dpan_neon _op_copy_pt_p_mas_dpan_neon - -static void -init_copy_pixel_mask_pt_funcs_neon(void) -{ - op_copy_pt_funcs[SP][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_pt_p_mas_dp_neon; - op_copy_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_pt_pan_mas_dp_neon; - op_copy_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_pt_pas_mas_dp_neon; - - op_copy_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_p_mas_dpan_neon; - op_copy_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_pan_mas_dpan_neon; - op_copy_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_pas_mas_dpan_neon; -} -#endif - -/*-----*/ - -/* copy_rel pixel x mask --> dst */ - -#ifdef BUILD_NEON -static void -_op_copy_rel_p_mas_dp_neon(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) { - // FIXME: neon-it - DATA32 *e; - int color; - UNROLL8_PLD_WHILE(d, l, e, - { - color = *m; - switch(color) - { - case 0: - break; - case 255: - *d = MUL_SYM(*d >> 24, *s); - break; - default: - c = MUL_SYM(*d >> 24, *s); - l++; - *d = INTERP_256(l, c, *d); - break; - } - m++; s++; d++; - }); -} - -#define _op_copy_rel_pan_mas_dp_neon _op_copy_rel_p_mas_dp_neon -#define _op_copy_rel_pas_mas_dp_neon _op_copy_rel_p_mas_dp_neon - -#define _op_copy_rel_p_mas_dpan_neon _op_copy_p_mas_dpan_neon -#define _op_copy_rel_pan_mas_dpan_neon _op_copy_pan_mas_dpan_neon -#define _op_copy_rel_pas_mas_dpan_neon _op_copy_pas_mas_dpan_neon - -static void -init_copy_rel_pixel_mask_span_funcs_neon(void) -{ - op_copy_rel_span_funcs[SP][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_p_mas_dp_neon; - op_copy_rel_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_pan_mas_dp_neon; - op_copy_rel_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_pas_mas_dp_neon; - - op_copy_rel_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_p_mas_dpan_neon; - op_copy_rel_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pan_mas_dpan_neon; - op_copy_rel_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pas_mas_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_copy_rel_pt_p_mas_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - c = MUL_SYM(*d >> 24, s); - *d = INTERP_256(m + 1, c, *d); -} - - -#define _op_copy_rel_pt_pan_mas_dp_neon _op_copy_rel_pt_p_mas_dp_neon -#define _op_copy_rel_pt_pas_mas_dp_neon _op_copy_rel_pt_p_mas_dp_neon - -#define _op_copy_rel_pt_p_mas_dpan_neon _op_copy_pt_p_mas_dpan_neon -#define _op_copy_rel_pt_pan_mas_dpan_neon _op_copy_pt_pan_mas_dpan_neon -#define _op_copy_rel_pt_pas_mas_dpan_neon _op_copy_pt_pas_mas_dpan_neon - -static void -init_copy_rel_pixel_mask_pt_funcs_neon(void) -{ - op_copy_rel_pt_funcs[SP][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_p_mas_dp_neon; - op_copy_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_pan_mas_dp_neon; - op_copy_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_pas_mas_dp_neon; - - op_copy_rel_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_p_mas_dpan_neon; - op_copy_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_pan_mas_dpan_neon; - op_copy_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_pas_mas_dpan_neon; -} -#endif - diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_neon.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_neon.c deleted file mode 100644 index 5b8bd60..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_neon.c +++ /dev/null @@ -1,158 +0,0 @@ -/* copy pixel --> dst */ - -#ifdef BUILD_NEON -static void -_op_copy_p_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { -//#define USENEON 1 -#ifndef USENEON - memcpy(d, s, l * sizeof(DATA32)); - return; -#else - DATA32 *e; - e = d + l - 23; - if (e > d) - { - int dl; - - asm volatile - (".fpu neon \n\t" - "_op_copy_p_dp_neon_asmloop: \n\t" - "pld [%[s], #192] \n\t" // preload 256 bytes ahead - "pld [%[s], #320] \n\t" // preload 320 bytes ahead - "vld1.32 {d0-d3}, [%[s]]! \n\t" // load 256bits (32 bytes 8 pix), 32bit aligned - "vld1.32 {d4-d7} , [%[s]]! \n\t" // load 256bits (32 bytes 8 pix), 32bit aligned - "vld1.32 {d8-d11}, [%[s]]! \n\t" // load 256bits (32 bytes 8 pix), 32bit aligned - "vst1.32 {d0-d3}, [%[d]]! \n\t" // store 256bits (32 bytes 8 pix), 32bit aligned - "vst1.32 {d4-d7}, [%[d]]! \n\t" // store 256bits (32 bytes 8 pix), 32bit aligned - "vst1.32 {d8-d11}, [%[d]]! \n\t" // store 256bits (32 bytes 8 pix), 32bit aligned - "cmp %[e], %[d] \n\t" // compare current and end ptr - "bgt _op_copy_p_dp_neon_asmloop \n\t" - : /*out*/ - : /*in */ [s] "r" (s), [e] "r" (e), [d] "r" (d) - : /*clobber*/ - "q0", "q1", "q2","q3", "q4", "q5", "q6", - "d0", "d1", "d2", "d3", - "d4", "d5", "d6", "d7", - "d8", "d9", "d10", "d11", - "memory" // clobbered - ); - dl = l % 24; // dl is how many pixels at end that is not a multiple of 24 - l = l - dl; // jump to there at the end of the run? - s = s + l; - d = d + l; - } - e += 23; - for (;d < e; d++, s++) *d = *s; -#endif -} - -#define _op_copy_pan_dp_neon _op_copy_p_dp_neon -#define _op_copy_pas_dp_neon _op_copy_p_dp_neon - -#define _op_copy_p_dpan_neon _op_copy_p_dp_neon -#define _op_copy_pan_dpan_neon _op_copy_pan_dp_neon -#define _op_copy_pas_dpan_neon _op_copy_pas_dp_neon - -static void -init_copy_pixel_span_funcs_neon(void) -{ - op_copy_span_funcs[SP][SM_N][SC_N][DP][CPU_NEON] = _op_copy_p_dp_neon; - op_copy_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_NEON] = _op_copy_pan_dp_neon; - op_copy_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_NEON] = _op_copy_pas_dp_neon; - - op_copy_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_p_dpan_neon; - op_copy_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_pan_dpan_neon; - op_copy_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_pas_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_copy_pt_p_dp_neon(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) { - *d = s; -} - -#define _op_copy_pt_pan_dp_neon _op_copy_pt_p_dp_neon -#define _op_copy_pt_pas_dp_neon _op_copy_pt_p_dp_neon - -#define _op_copy_pt_p_dpan_neon _op_copy_pt_p_dp_neon -#define _op_copy_pt_pan_dpan_neon _op_copy_pt_pan_dp_neon -#define _op_copy_pt_pas_dpan_neon _op_copy_pt_pas_dp_neon - -static void -init_copy_pixel_pt_funcs_neon(void) -{ - op_copy_pt_funcs[SP][SM_N][SC_N][DP][CPU_NEON] = _op_copy_pt_p_dp_neon; - op_copy_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_NEON] = _op_copy_pt_pan_dp_neon; - op_copy_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_NEON] = _op_copy_pt_pas_dp_neon; - - op_copy_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_p_dpan_neon; - op_copy_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_pan_dpan_neon; - op_copy_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_pas_dpan_neon; -} -#endif - -/*-----*/ - -/* copy_rel pixel --> dst */ - -#ifdef BUILD_NEON -static void -_op_copy_rel_p_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - // FIXME: neon-it - DATA32 *e; - UNROLL8_PLD_WHILE(d, l, e, - { - *d = MUL_SYM(*d >> 24, c); - d++; - }); -} - - -#define _op_copy_rel_pas_dp_neon _op_copy_rel_p_dp_neon -#define _op_copy_rel_pan_dp_neon _op_copy_rel_p_dp_neon - -#define _op_copy_rel_p_dpan_neon _op_copy_p_dpan_neon -#define _op_copy_rel_pan_dpan_neon _op_copy_pan_dpan_neon -#define _op_copy_rel_pas_dpan_neon _op_copy_pas_dpan_neon - -static void -init_copy_rel_pixel_span_funcs_neon(void) -{ - op_copy_rel_span_funcs[SP][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_p_dp_neon; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_pan_dp_neon; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_pas_dp_neon; - - op_copy_rel_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_p_dpan_neon; - op_copy_rel_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pan_dpan_neon; - op_copy_rel_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pas_dpan_neon; -} -#endif - -#ifdef BUILD_NEON -static void -_op_copy_rel_pt_p_dp_neon(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = 1 + (*d >> 24); - *d = MUL_256(s, c); -} - - -#define _op_copy_rel_pt_pan_dp_neon _op_copy_rel_pt_p_dp_neon -#define _op_copy_rel_pt_pas_dp_neon _op_copy_rel_pt_p_dp_neon - -#define _op_copy_rel_pt_p_dpan_neon _op_copy_pt_p_dpan_neon -#define _op_copy_rel_pt_pan_dpan_neon _op_copy_pt_pan_dpan_neon -#define _op_copy_rel_pt_pas_dpan_neon _op_copy_pt_pas_dpan_neon - -static void -init_copy_rel_pixel_pt_funcs_neon(void) -{ - op_copy_rel_pt_funcs[SP][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_p_dp_neon; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_pan_dp_neon; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_pas_dp_neon; - - op_copy_rel_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_p_dpan_neon; - op_copy_rel_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_pan_dpan_neon; - op_copy_rel_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_pas_dpan_neon; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy_main_.c b/libraries/evas/src/lib/engines/common/evas_op_copy_main_.c deleted file mode 100644 index 4575aee..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy_main_.c +++ /dev/null @@ -1,675 +0,0 @@ -#include "evas_common.h" -#include "evas_blend_private.h" - -static RGBA_Gfx_Func op_copy_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; -static RGBA_Gfx_Pt_Func op_copy_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; - -static void op_copy_init(void); -static void op_copy_shutdown(void); - -static RGBA_Gfx_Func op_copy_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_copy_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_copy_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_copy_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_copy_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); - -static RGBA_Gfx_Pt_Func op_copy_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_copy_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_copy_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_copy_mask_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_copy_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); - -static RGBA_Gfx_Compositor _composite_copy = { "copy", - op_copy_init, op_copy_shutdown, - op_copy_pixel_span_get, op_copy_color_span_get, - op_copy_pixel_color_span_get, op_copy_mask_color_span_get, - op_copy_pixel_mask_span_get, - op_copy_pixel_pt_get, op_copy_color_pt_get, - op_copy_pixel_color_pt_get, op_copy_mask_color_pt_get, - op_copy_pixel_mask_pt_get - }; - -RGBA_Gfx_Compositor * -evas_common_gfx_compositor_copy_get(void) -{ - return &(_composite_copy); -} - - -static RGBA_Gfx_Func op_copy_rel_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; -static RGBA_Gfx_Pt_Func op_copy_rel_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; - -static void op_copy_rel_init(void); -static void op_copy_rel_shutdown(void); - -static RGBA_Gfx_Func op_copy_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_copy_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_copy_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_copy_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_copy_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); - -static RGBA_Gfx_Pt_Func op_copy_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); -/* XXX: doesn't exist -static RGBA_Gfx_Pt_Func op_copy_rel_color_pt_get(DATA32 col, RGBA_Image *dst); - */ -static RGBA_Gfx_Pt_Func op_copy_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_copy_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_copy_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); - -static RGBA_Gfx_Compositor _composite_copy_rel = { "copy_rel", - op_copy_rel_init, op_copy_rel_shutdown, - op_copy_rel_pixel_span_get, op_copy_rel_color_span_get, - op_copy_rel_pixel_color_span_get, op_copy_rel_mask_color_span_get, - op_copy_rel_pixel_mask_span_get, - op_copy_rel_pixel_pt_get, op_copy_color_pt_get, - op_copy_rel_pixel_color_pt_get, op_copy_rel_mask_color_pt_get, - op_copy_rel_pixel_mask_pt_get - }; - -RGBA_Gfx_Compositor * -evas_common_gfx_compositor_copy_rel_get(void) -{ - return &(_composite_copy_rel); -} - - -# include "./evas_op_copy/op_copy_pixel_.c" -# include "./evas_op_copy/op_copy_color_.c" -# include "./evas_op_copy/op_copy_pixel_color_.c" -# include "./evas_op_copy/op_copy_pixel_mask_.c" -# include "./evas_op_copy/op_copy_mask_color_.c" -//# include "./evas_op_copy/op_copy_pixel_mask_color_.c" - -# include "./evas_op_copy/op_copy_pixel_i386.c" -# include "./evas_op_copy/op_copy_color_i386.c" -# include "./evas_op_copy/op_copy_pixel_color_i386.c" -# include "./evas_op_copy/op_copy_pixel_mask_i386.c" -# include "./evas_op_copy/op_copy_mask_color_i386.c" -//# include "./evas_op_copy/op_copy_pixel_mask_color_i386.c" - -# include "./evas_op_copy/op_copy_pixel_neon.c" -# include "./evas_op_copy/op_copy_color_neon.c" -# include "./evas_op_copy/op_copy_pixel_color_neon.c" -# include "./evas_op_copy/op_copy_pixel_mask_neon.c" -# include "./evas_op_copy/op_copy_mask_color_neon.c" -//# include "./evas_op_copy/op_copy_pixel_mask_color_neon.c" - - -static void -op_copy_init(void) -{ - memset(op_copy_span_funcs, 0, sizeof(op_copy_span_funcs)); - memset(op_copy_pt_funcs, 0, sizeof(op_copy_pt_funcs)); -#ifdef BUILD_MMX - init_copy_pixel_span_funcs_mmx(); - init_copy_pixel_color_span_funcs_mmx(); - init_copy_pixel_mask_span_funcs_mmx(); - init_copy_color_span_funcs_mmx(); - init_copy_mask_color_span_funcs_mmx(); - - init_copy_pixel_pt_funcs_mmx(); - init_copy_pixel_color_pt_funcs_mmx(); - init_copy_pixel_mask_pt_funcs_mmx(); - init_copy_color_pt_funcs_mmx(); - init_copy_mask_color_pt_funcs_mmx(); -#endif -#ifdef BUILD_NEON - init_copy_pixel_span_funcs_neon(); - init_copy_pixel_color_span_funcs_neon(); - init_copy_pixel_mask_span_funcs_neon(); - init_copy_color_span_funcs_neon(); - init_copy_mask_color_span_funcs_neon(); - - init_copy_pixel_pt_funcs_neon(); - init_copy_pixel_color_pt_funcs_neon(); - init_copy_pixel_mask_pt_funcs_neon(); - init_copy_color_pt_funcs_neon(); - init_copy_mask_color_pt_funcs_neon(); -#endif -#ifdef BUILD_C - init_copy_pixel_span_funcs_c(); - init_copy_pixel_color_span_funcs_c(); - init_copy_pixel_mask_span_funcs_c(); - init_copy_color_span_funcs_c(); - init_copy_mask_color_span_funcs_c(); - - init_copy_pixel_pt_funcs_c(); - init_copy_pixel_color_pt_funcs_c(); - init_copy_pixel_mask_pt_funcs_c(); - init_copy_color_pt_funcs_c(); - init_copy_mask_color_pt_funcs_c(); -#endif -} - -static void -op_copy_shutdown(void) -{ -} - -static RGBA_Gfx_Func -copy_gfx_span_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_copy_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_NEON - if (evas_common_cpu_has_feature(CPU_FEATURE_NEON)) - { - cpu = CPU_NEON; - func = op_copy_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_copy_span_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Func -op_copy_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - { - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return copy_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_copy_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return copy_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_copy_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return copy_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_copy_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - return copy_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_copy_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if (src && src->cache_entry.flags.alpha) - s = SP; - return copy_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -copy_gfx_pt_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Pt_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_copy_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_NEON - if (evas_common_cpu_has_feature(CPU_FEATURE_NEON)) - { - cpu = CPU_NEON; - func = op_copy_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_copy_pt_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Pt_Func -op_copy_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - { - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return copy_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_copy_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return copy_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_copy_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src_flags.alpha) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return copy_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_copy_mask_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - return copy_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_copy_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if (src_flags.alpha) - s = SP; - return copy_gfx_pt_func_cpu(s, m, c, d); -} - - -static void -op_copy_rel_init(void) -{ - memset(op_copy_rel_span_funcs, 0, sizeof(op_copy_rel_span_funcs)); - memset(op_copy_rel_pt_funcs, 0, sizeof(op_copy_rel_pt_funcs)); -#ifdef BUILD_MMX - init_copy_rel_pixel_span_funcs_mmx(); - init_copy_rel_pixel_color_span_funcs_mmx(); - init_copy_rel_pixel_mask_span_funcs_mmx(); - init_copy_rel_color_span_funcs_mmx(); - init_copy_rel_mask_color_span_funcs_mmx(); - - init_copy_rel_pixel_pt_funcs_mmx(); - init_copy_rel_pixel_color_pt_funcs_mmx(); - init_copy_rel_pixel_mask_pt_funcs_mmx(); - init_copy_rel_color_pt_funcs_mmx(); - init_copy_rel_mask_color_pt_funcs_mmx(); -#endif -#ifdef BUILD_NEON - init_copy_rel_pixel_span_funcs_neon(); - init_copy_rel_pixel_color_span_funcs_neon(); - init_copy_rel_pixel_mask_span_funcs_neon(); - init_copy_rel_color_span_funcs_neon(); - init_copy_rel_mask_color_span_funcs_neon(); - - init_copy_rel_pixel_pt_funcs_neon(); - init_copy_rel_pixel_color_pt_funcs_neon(); - init_copy_rel_pixel_mask_pt_funcs_neon(); - init_copy_rel_color_pt_funcs_neon(); - init_copy_rel_mask_color_pt_funcs_neon(); -#endif -#ifdef BUILD_C - init_copy_rel_pixel_span_funcs_c(); - init_copy_rel_pixel_color_span_funcs_c(); - init_copy_rel_pixel_mask_span_funcs_c(); - init_copy_rel_color_span_funcs_c(); - init_copy_rel_mask_color_span_funcs_c(); - - init_copy_rel_pixel_pt_funcs_c(); - init_copy_rel_pixel_color_pt_funcs_c(); - init_copy_rel_pixel_mask_pt_funcs_c(); - init_copy_rel_color_pt_funcs_c(); - init_copy_rel_mask_color_pt_funcs_c(); -#endif -} - -static void -op_copy_rel_shutdown(void) -{ -} - -static RGBA_Gfx_Func -copy_rel_gfx_span_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_copy_rel_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_NEON - if (evas_common_cpu_has_feature(CPU_FEATURE_NEON)) - { - cpu = CPU_NEON; - func = op_copy_rel_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_copy_rel_span_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Func -op_copy_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return copy_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_copy_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return copy_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_copy_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return copy_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_copy_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - return copy_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_copy_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if (src && src->cache_entry.flags.alpha) - s = SP; - return copy_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -copy_rel_gfx_pt_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Pt_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_copy_rel_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_NEON - if (evas_common_cpu_has_feature(CPU_FEATURE_NEON)) - { - cpu = CPU_NEON; - func = op_copy_rel_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_copy_rel_pt_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Pt_Func -op_copy_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return copy_rel_gfx_pt_func_cpu(s, m, c, d); -} - -/* XXX: not used -static RGBA_Gfx_Pt_Func -op_copy_rel_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return copy_rel_gfx_pt_func_cpu(s, m, c, d); -} -*/ - -static RGBA_Gfx_Pt_Func -op_copy_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src_flags.alpha) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return copy_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_copy_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if ((col >> 24) < 255) - c = SC; - if (col == ((col >> 24) * 0x01010101)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - return copy_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_copy_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if (src_flags.alpha) - s = SP; - return copy_rel_gfx_pt_func_cpu(s, m, c, d); -} diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.am b/libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.am deleted file mode 100644 index 47eefd2..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -EXTRA_DIST = \ -op_mask_color_.c \ -op_mask_color_i386.c \ -op_mask_mask_color_.c \ -op_mask_mask_color_i386.c \ -op_mask_pixel_.c \ -op_mask_pixel_color_.c \ -op_mask_pixel_color_i386.c \ -op_mask_pixel_i386.c \ -op_mask_pixel_mask_.c \ -op_mask_pixel_mask_i386.c diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.in b/libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.in deleted file mode 100644 index 00b536a..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.in +++ /dev/null @@ -1,547 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/lib/engines/common/evas_op_mask -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ - $(top_srcdir)/m4/efl_coverage.m4 \ - $(top_srcdir)/m4/efl_doxygen.m4 \ - $(top_srcdir)/m4/efl_fnmatch.m4 \ - $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ - $(top_srcdir)/m4/evas_check_engine.m4 \ - $(top_srcdir)/m4/evas_check_loader.m4 \ - $(top_srcdir)/m4/evas_converter.m4 \ - $(top_srcdir)/m4/evas_dither.m4 \ - $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CHECK_CFLAGS = @CHECK_CFLAGS@ -CHECK_LIBS = @CHECK_LIBS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ -ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ -EDB_CFLAGS = @EDB_CFLAGS@ -EDB_LIBS = @EDB_LIBS@ -EDJE_CFLAGS = @EDJE_CFLAGS@ -EDJE_LIBS = @EDJE_LIBS@ -EET_CFLAGS = @EET_CFLAGS@ -EET_LIBS = @EET_LIBS@ -EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ -EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ -EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ -EGREP = @EGREP@ -EINA_CFLAGS = @EINA_CFLAGS@ -EINA_LIBS = @EINA_LIBS@ -EVAS_CFLAGS = @EVAS_CFLAGS@ -EVAS_LIBS = @EVAS_LIBS@ -EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@ -EVIL_CFLAGS = @EVIL_CFLAGS@ -EVIL_LIBS = @EVIL_LIBS@ -EXEEXT = @EXEEXT@ -EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ -EXOTIC_LIBS = @EXOTIC_LIBS@ -FGREP = @FGREP@ -FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ -FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ -FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ -FREETYPE_LIBS = @FREETYPE_LIBS@ -FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@ -FRIBIDI_LIBS = @FRIBIDI_LIBS@ -GL_EET_CFLAGS = @GL_EET_CFLAGS@ -GL_EET_LIBS = @GL_EET_LIBS@ -GREP = @GREP@ -HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@ -HARFBUZZ_LIBS = @HARFBUZZ_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@ -LINEBREAK_LIBS = @LINEBREAK_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MODULE_ARCH = @MODULE_ARCH@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJC = @OBJC@ -OBJCDEPMODE = @OBJCDEPMODE@ -OBJCFLAGS = @OBJCFLAGS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ -PIXMAN_LIBS = @PIXMAN_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PNG_CFLAGS = @PNG_CFLAGS@ -PNG_LIBS = @PNG_LIBS@ -RANLIB = @RANLIB@ -SDL_CFLAGS = @SDL_CFLAGS@ -SDL_LIBS = @SDL_LIBS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SHM_OPEN_LINK = @SHM_OPEN_LINK@ -STRIP = @STRIP@ -SVG_CFLAGS = @SVG_CFLAGS@ -SVG_LIBS = @SVG_LIBS@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -VMAJ = @VMAJ@ -WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ -WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ -XCB_CFLAGS = @XCB_CFLAGS@ -XCB_GL_CFLAGS = @XCB_GL_CFLAGS@ -XCB_GL_LIBS = @XCB_GL_LIBS@ -XCB_LIBS = @XCB_LIBS@ -XEXT_CFLAGS = @XEXT_CFLAGS@ -XEXT_LIBS = @XEXT_LIBS@ -XMKMF = @XMKMF@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_OBJC = @ac_ct_OBJC@ -altivec_cflags = @altivec_cflags@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -dlopen_libs = @dlopen_libs@ -docdir = @docdir@ -dvidir = @dvidir@ -edje_cc = @edje_cc@ -efl_doxygen = @efl_doxygen@ -efl_have_doxygen = @efl_have_doxygen@ -evas_engine_buffer_cflags = @evas_engine_buffer_cflags@ -evas_engine_buffer_libs = @evas_engine_buffer_libs@ -evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@ -evas_engine_direct3d_libs = @evas_engine_direct3d_libs@ -evas_engine_directfb_cflags = @evas_engine_directfb_cflags@ -evas_engine_directfb_libs = @evas_engine_directfb_libs@ -evas_engine_fb_cflags = @evas_engine_fb_cflags@ -evas_engine_fb_libs = @evas_engine_fb_libs@ -evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@ -evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@ -evas_engine_gl_common_libs = @evas_engine_gl_common_libs@ -evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@ -evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@ -evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@ -evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@ -evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@ -evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@ -evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@ -evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@ -evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@ -evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@ -evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@ -evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@ -evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@ -evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@ -evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@ -evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@ -evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@ -evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@ -evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@ -evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@ -evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@ -evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@ -evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ -evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ -evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ -evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ -evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ -evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ -evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ -evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ -evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ -evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ -evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ -evas_image_loader_edb_libs = @evas_image_loader_edb_libs@ -evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@ -evas_image_loader_eet_libs = @evas_image_loader_eet_libs@ -evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@ -evas_image_loader_generic_libs = @evas_image_loader_generic_libs@ -evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@ -evas_image_loader_gif_libs = @evas_image_loader_gif_libs@ -evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@ -evas_image_loader_ico_libs = @evas_image_loader_ico_libs@ -evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@ -evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@ -evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@ -evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@ -evas_image_loader_png_cflags = @evas_image_loader_png_cflags@ -evas_image_loader_png_libs = @evas_image_loader_png_libs@ -evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@ -evas_image_loader_psd_libs = @evas_image_loader_psd_libs@ -evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@ -evas_image_loader_svg_libs = @evas_image_loader_svg_libs@ -evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@ -evas_image_loader_tga_libs = @evas_image_loader_tga_libs@ -evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@ -evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@ -evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@ -evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@ -evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@ -evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@ -exec_prefix = @exec_prefix@ -have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@ -have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@ -have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@ -have_evas_engine_software_x11 = @have_evas_engine_software_x11@ -have_evas_engine_software_xcb = @have_evas_engine_software_xcb@ -have_evas_engine_software_xlib = @have_evas_engine_software_xlib@ -have_lcov = @have_lcov@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -lt_enable_auto_import = @lt_enable_auto_import@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfig_requires_private = @pkgconfig_requires_private@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pthread_cflags = @pthread_cflags@ -pthread_libs = @pthread_libs@ -release_info = @release_info@ -requirement_evas = @requirement_evas@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -version_info = @version_info@ -MAINTAINERCLEANFILES = Makefile.in -EXTRA_DIST = \ -op_mask_color_.c \ -op_mask_color_i386.c \ -op_mask_mask_color_.c \ -op_mask_mask_color_i386.c \ -op_mask_pixel_.c \ -op_mask_pixel_color_.c \ -op_mask_pixel_color_i386.c \ -op_mask_pixel_i386.c \ -op_mask_pixel_mask_.c \ -op_mask_pixel_mask_i386.c - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_mask/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_mask/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_.c b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_.c deleted file mode 100644 index c95b125..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_.c +++ /dev/null @@ -1,49 +0,0 @@ -/* mask color --> dst */ - -#ifdef BUILD_C -static void -_op_mask_c_dp(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - c = 1 + (c >> 24); - for (; d < e; d++) { - *d = MUL_256(c, *d); - } -} - -#define _op_mask_caa_dp _op_mask_c_dp - -#define _op_mask_c_dpan _op_mask_c_dp -#define _op_mask_caa_dpan _op_mask_caa_dp - -static void -init_mask_color_span_funcs_c(void) -{ - op_mask_span_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_mask_c_dp; - op_mask_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_mask_caa_dp; - - op_mask_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_mask_c_dpan; - op_mask_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_mask_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_mask_pt_c_dp(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - *d = MUL_SYM(c >> 24, *d); -} - -#define _op_mask_pt_caa_dp _op_mask_pt_c_dp - -#define _op_mask_pt_c_dpan _op_mask_pt_c_dp -#define _op_mask_pt_caa_dpan _op_mask_pt_caa_dp - -static void -init_mask_color_pt_funcs_c(void) -{ - op_mask_pt_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_mask_pt_c_dp; - op_mask_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_mask_pt_caa_dp; - - op_mask_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_mask_pt_c_dpan; - op_mask_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_mask_pt_caa_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_i386.c deleted file mode 100644 index 9635eac..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_i386.c +++ /dev/null @@ -1,58 +0,0 @@ -/* mask color --> dst */ - -#ifdef BUILD_MMX -static void -_op_mask_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - c = 1 + (c >> 24); - MOV_A2R(c, mm2) - pxor_r2r(mm0, mm0); - for (; d < e; d++) { - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm2, mm1) - MOV_R2P(mm1, *d, mm0) - } -} - -#define _op_mask_caa_dp_mmx _op_mask_c_dp_mmx - -#define _op_mask_c_dpan_mmx _op_mask_c_dp_mmx -#define _op_mask_caa_dpan_mmx _op_mask_caa_dp_mmx - -static void -init_mask_color_span_funcs_mmx(void) -{ - op_mask_span_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_mask_c_dp_mmx; - op_mask_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_mask_caa_dp_mmx; - - op_mask_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_mask_c_dpan_mmx; - op_mask_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mask_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_mask_pt_c_dp_mmx(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - c = 1 + (c >> 24); - MOV_A2R(c, mm2) - pxor_r2r(mm0, mm0); - MOV_P2R(*d, mm1, mm0) - MUL4_256_R2R(mm2, mm1) - MOV_R2P(mm1, *d, mm0) -} - -#define _op_mask_pt_caa_dp_mmx _op_mask_pt_c_dp_mmx - -#define _op_mask_pt_c_dpan_mmx _op_mask_pt_c_dp_mmx -#define _op_mask_pt_caa_dpan_mmx _op_mask_pt_caa_dp_mmx - -static void -init_mask_color_pt_funcs_mmx(void) -{ - op_mask_pt_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_mask_pt_c_dp_mmx; - op_mask_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_mask_pt_caa_dp_mmx; - - op_mask_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_mask_pt_c_dpan_mmx; - op_mask_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mask_pt_caa_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_mask_color_.c b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_mask_color_.c deleted file mode 100644 index c75edb4..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_mask_color_.c +++ /dev/null @@ -1,63 +0,0 @@ -/* mask mask x color -> dst */ - -#ifdef BUILD_C -static void -_op_mask_mas_c_dp(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - c = 1 + (c >> 24); - while (d < e) { - l = *m; - switch(l) - { - case 0: - break; - case 255: - *d = MUL_256(c, *d); - break; - default: - l = 256 - (((257 - c) * l) >> 8); - *d = MUL_256(l, *d); - break; - } - m++; d++; - } -} - -#define _op_mask_mas_caa_dp _op_mask_mas_c_dp - -#define _op_mask_mas_c_dpan _op_mask_mas_c_dp -#define _op_mask_mas_caa_dpan _op_mask_mas_caa_dp - -static void -init_mask_mask_color_span_funcs_c(void) -{ - op_mask_span_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_mask_mas_c_dp; - op_mask_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_mask_mas_caa_dp; - - op_mask_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_mask_mas_c_dpan; - op_mask_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_mask_mas_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_mask_pt_mas_c_dp(DATA32 s __UNUSED__, DATA8 m, DATA32 c, DATA32 *d) { - c = 256 - (((256 - (c >> 24)) * m) >> 8); - *d = MUL_256(c, *d); -} - -#define _op_mask_pt_mas_caa_dp _op_mask_pt_mas_c_dp - -#define _op_mask_pt_mas_c_dpan _op_mask_pt_mas_c_dp -#define _op_mask_pt_mas_caa_dpan _op_mask_pt_mas_caa_dp - -static void -init_mask_mask_color_pt_funcs_c(void) -{ - op_mask_pt_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_mask_pt_mas_c_dp; - op_mask_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_mask_pt_mas_caa_dp; - - op_mask_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_mask_pt_mas_c_dpan; - op_mask_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_mask_pt_mas_caa_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_mask_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_mask_color_i386.c deleted file mode 100644 index 9427dbf..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_mask_color_i386.c +++ /dev/null @@ -1,13 +0,0 @@ -/* mask mask x color -> dst */ - -#ifdef BUILD_MMX -static void -init_mask_mask_color_span_funcs_mmx(void) -{} -#endif - -#ifdef BUILD_MMX -static void -init_mask_mask_color_pt_funcs_mmx(void) -{} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_.c b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_.c deleted file mode 100644 index ea7982b..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_.c +++ /dev/null @@ -1,48 +0,0 @@ -/* mask pixel --> dst */ - -#ifdef BUILD_C -static void -_op_mask_p_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = d + l; - for (; d < e; d++, s++) { - *d = MUL_SYM(*s >> 24, *d); - } -} - -#define _op_mask_pas_dp _op_mask_p_dp - -#define _op_mask_p_dpan _op_mask_p_dp -#define _op_mask_pas_dpan _op_mask_pas_dp - -static void -init_mask_pixel_span_funcs_c(void) -{ - op_mask_span_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_mask_p_dp; - op_mask_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_mask_pas_dp; - - op_mask_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_mask_p_dpan; - op_mask_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_mask_pas_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_mask_pt_p_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) { - *d = MUL_SYM(s >> 24, *d); -} - -#define _op_mask_pt_pas_dp _op_mask_pt_p_dp - -#define _op_mask_pt_p_dpan _op_mask_pt_p_dp -#define _op_mask_pt_pas_dpan _op_mask_pt_pas_dp - -static void -init_mask_pixel_pt_funcs_c(void) -{ - op_mask_pt_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_mask_pt_p_dp; - op_mask_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_mask_pt_pas_dp; - - op_mask_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_mask_pt_p_dpan; - op_mask_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_mask_pt_pas_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_color_.c b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_color_.c deleted file mode 100644 index 18d1cab..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_color_.c +++ /dev/null @@ -1,100 +0,0 @@ -/* mask pixel x color --> dst */ - -#ifdef BUILD_C -static void -_op_mask_p_c_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - l = 1 + (c >> 24); - while (d < e) { - c = 1 + ((l * (*s >> 24)) >> 8); - *d = MUL_256(c, *d); - s++; d++; - } -} - -#define _op_mask_pas_c_dp _op_mask_p_c_dp -#define _op_mask_pan_c_dp _op_mask_p_c_dp -#define _op_mask_p_can_dp _op_mask_p_c_dp -#define _op_mask_pas_can_dp _op_mask_p_c_dp -#define _op_mask_p_caa_dp _op_mask_p_c_dp -#define _op_mask_pas_caa_dp _op_mask_p_c_dp -#define _op_mask_pan_caa_dp _op_mask_p_c_dp - -#define _op_mask_p_c_dpan _op_mask_p_c_dp -#define _op_mask_pas_c_dpan _op_mask_p_c_dp -#define _op_mask_pan_c_dpan _op_mask_p_c_dp -#define _op_mask_p_can_dpan _op_mask_p_c_dp -#define _op_mask_pas_can_dpan _op_mask_p_c_dp -#define _op_mask_p_caa_dpan _op_mask_p_c_dp -#define _op_mask_pas_caa_dpan _op_mask_p_c_dp -#define _op_mask_pan_caa_dpan _op_mask_p_c_dp - -static void -init_mask_pixel_color_span_funcs_c(void) -{ - op_mask_span_funcs[SP][SM_N][SC][DP][CPU_C] = _op_mask_p_c_dp; - op_mask_span_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_mask_pas_c_dp; - op_mask_span_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_mask_pan_c_dp; - op_mask_span_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_mask_p_can_dp; - op_mask_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_mask_pas_can_dp; - op_mask_span_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_mask_p_caa_dp; - op_mask_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_mask_pas_caa_dp; - op_mask_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_mask_pan_caa_dp; - - op_mask_span_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_mask_p_c_dpan; - op_mask_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_mask_pas_c_dpan; - op_mask_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_mask_pan_c_dpan; - op_mask_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_mask_p_can_dpan; - op_mask_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_mask_pas_can_dpan; - op_mask_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_mask_p_caa_dpan; - op_mask_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_mask_pas_caa_dpan; - op_mask_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_mask_pan_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_mask_pt_p_c_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - c = 1 + ((((c >> 24) * (s >> 24)) + 255) >> 8); - *d = MUL_256(c, *d); -} - -#define _op_mask_pt_pas_c_dp _op_mask_pt_p_c_dp -#define _op_mask_pt_pan_c_dp _op_mask_pt_p_c_dp -#define _op_mask_pt_p_can_dp _op_mask_pt_p_c_dp -#define _op_mask_pt_pas_can_dp _op_mask_pt_p_c_dp -#define _op_mask_pt_p_caa_dp _op_mask_pt_p_c_dp -#define _op_mask_pt_pas_caa_dp _op_mask_pt_p_c_dp -#define _op_mask_pt_pan_caa_dp _op_mask_pt_p_c_dp - -#define _op_mask_pt_p_c_dpan _op_mask_pt_p_c_dp -#define _op_mask_pt_pas_c_dpan _op_mask_pt_p_c_dp -#define _op_mask_pt_pan_c_dpan _op_mask_pt_p_c_dp -#define _op_mask_pt_p_can_dpan _op_mask_pt_p_c_dp -#define _op_mask_pt_pas_can_dpan _op_mask_pt_p_c_dp -#define _op_mask_pt_p_caa_dpan _op_mask_pt_p_c_dp -#define _op_mask_pt_pas_caa_dpan _op_mask_pt_p_c_dp -#define _op_mask_pt_pan_caa_dpan _op_mask_pt_p_c_dp - -static void -init_mask_pixel_color_pt_funcs_c(void) -{ - op_mask_pt_funcs[SP][SM_N][SC][DP][CPU_C] = _op_mask_pt_p_c_dp; - op_mask_pt_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_mask_pt_pas_c_dp; - op_mask_pt_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_mask_pt_pan_c_dp; - op_mask_pt_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_mask_pt_p_can_dp; - op_mask_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_mask_pt_pas_can_dp; - op_mask_pt_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_mask_pt_p_caa_dp; - op_mask_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_mask_pt_pas_caa_dp; - op_mask_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_mask_pt_pan_caa_dp; - - op_mask_pt_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_mask_pt_p_c_dpan; - op_mask_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_mask_pt_pas_c_dpan; - op_mask_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_mask_pt_pan_c_dpan; - op_mask_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_mask_pt_p_can_dpan; - op_mask_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_mask_pt_pas_can_dpan; - op_mask_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_mask_pt_p_caa_dpan; - op_mask_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_mask_pt_pas_caa_dpan; - op_mask_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_mask_pt_pan_caa_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_color_i386.c deleted file mode 100644 index 0afcb71..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_color_i386.c +++ /dev/null @@ -1,13 +0,0 @@ -/* mask pixel x color --> dst */ - -#ifdef BUILD_MMX -static void -init_mask_pixel_color_span_funcs_mmx(void) -{ } -#endif - -#ifdef BUILD_MMX -static void -init_mask_pixel_color_pt_funcs_mmx(void) -{ } -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_i386.c deleted file mode 100644 index a1c09af..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_i386.c +++ /dev/null @@ -1,58 +0,0 @@ -/* mask pixel --> dst */ - -#ifdef BUILD_MMX -static void -_op_mask_p_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = d + l; - MOV_A2R(ALPHA_255, mm5) - pxor_r2r(mm0, mm0); - for (; d < e; d++) { - MOV_P2R(*d, mm1, mm0) - MOV_PA2R(*s, mm2) - MUL4_SYM_R2R(mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - } -} - -#define _op_mask_pas_dp_mmx _op_mask_p_dp_mmx - -#define _op_mask_p_dpan_mmx _op_mask_p_dp_mmx -#define _op_mask_pas_dpan_mmx _op_mask_pas_dp_mmx - -static void -init_mask_pixel_span_funcs_mmx(void) -{ - op_mask_span_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_mask_p_dp_mmx; - op_mask_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_mask_pas_dp_mmx; - - op_mask_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mask_p_dpan_mmx; - op_mask_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mask_pas_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_mask_pt_p_dp_mmx(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) { - MOV_A2R(ALPHA_255, mm5) - pxor_r2r(mm0, mm0); - MOV_P2R(*d, mm1, mm0) - MOV_PA2R(s, mm2) - MUL4_SYM_R2R(mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) -} - -#define _op_mask_pt_pas_dp_mmx _op_mask_pt_p_dp_mmx - -#define _op_mask_pt_p_dpan_mmx _op_mask_pt_p_dp_mmx -#define _op_mask_pt_pas_dpan_mmx _op_mask_pt_pas_dp_mmx - -static void -init_mask_pixel_pt_funcs_mmx(void) -{ - op_mask_pt_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_mask_pt_p_dp_mmx; - op_mask_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_mask_pt_pas_dp_mmx; - - op_mask_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mask_pt_p_dpan_mmx; - op_mask_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mask_pt_pas_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_mask_.c b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_mask_.c deleted file mode 100644 index b948aa6..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_mask_.c +++ /dev/null @@ -1,62 +0,0 @@ -/* mask pixel x mask --> dst */ - -#ifdef BUILD_C -static void -_op_mask_p_mas_dp(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = d + l; - while (d < e) { - l = *m; - switch(l) - { - case 0: - break; - case 255: - *d = MUL_SYM(*s >> 24, *d); - break; - default: - l = 256 - (((256 - (*s >> 24)) * l) >> 8); - *d = MUL_256(l, *d); - break; - } - m++; s++; d++; - } -} - -#define _op_mask_pas_mas_dp _op_mask_p_mas_dp - -#define _op_mask_p_mas_dpan _op_mask_p_mas_dp -#define _op_mask_pas_mas_dpan _op_mask_pas_mas_dp - -static void -init_mask_pixel_mask_span_funcs_c(void) -{ - op_mask_span_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_mask_p_mas_dp; - op_mask_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_mask_pas_mas_dp; - - op_mask_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_mask_p_mas_dpan; - op_mask_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_mask_pas_mas_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_mask_pt_p_mas_dp(DATA32 s, DATA8 m, DATA32 c __UNUSED__, DATA32 *d) { - s = 256 - (((256 - (s >> 24)) * m) >> 8); - *d = MUL_256(s, *d); -} - -#define _op_mask_pt_pas_mas_dp _op_mask_pt_p_mas_dp - -#define _op_mask_pt_p_mas_dpan _op_mask_pt_p_mas_dp -#define _op_mask_pt_pas_mas_dpan _op_mask_pt_pas_mas_dp - -static void -init_mask_pixel_mask_pt_funcs_c(void) -{ - op_mask_pt_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_mask_pt_p_mas_dp; - op_mask_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_mask_pt_pas_mas_dp; - - op_mask_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_mask_pt_p_mas_dpan; - op_mask_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_mask_pt_pas_mas_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_mask_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_mask_i386.c deleted file mode 100644 index c5dd8da..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_mask_i386.c +++ /dev/null @@ -1,13 +0,0 @@ -/* mask pixel x mask --> dst */ - -#ifdef BUILD_MMX -static void -init_mask_pixel_mask_span_funcs_mmx(void) -{ } -#endif - -#ifdef BUILD_MMX -static void -init_mask_pixel_mask_pt_funcs_mmx(void) -{ } -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask_main_.c b/libraries/evas/src/lib/engines/common/evas_op_mask_main_.c deleted file mode 100644 index bbe497a..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mask_main_.c +++ /dev/null @@ -1,309 +0,0 @@ -#include "evas_common.h" - -static RGBA_Gfx_Func op_mask_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; -static RGBA_Gfx_Pt_Func op_mask_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; - -static void op_mask_init(void); -static void op_mask_shutdown(void); - -static RGBA_Gfx_Func op_mask_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_mask_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_mask_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_mask_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); - -static RGBA_Gfx_Pt_Func op_mask_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_mask_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_mask_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_mask_mask_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_mask_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); - -static RGBA_Gfx_Compositor _composite_mask = { "mask", - op_mask_init, op_mask_shutdown, - op_mask_pixel_span_get, op_mask_color_span_get, - op_mask_pixel_color_span_get, op_mask_mask_color_span_get, - op_mask_pixel_mask_span_get, - op_mask_pixel_pt_get, op_mask_color_pt_get, - op_mask_pixel_color_pt_get, op_mask_mask_color_pt_get, - op_mask_pixel_mask_pt_get - }; - -RGBA_Gfx_Compositor * -evas_common_gfx_compositor_mask_get(void) -{ - return &(_composite_mask); -} - - -# include "./evas_op_mask/op_mask_pixel_.c" -# include "./evas_op_mask/op_mask_color_.c" -# include "./evas_op_mask/op_mask_pixel_color_.c" -# include "./evas_op_mask/op_mask_pixel_mask_.c" -# include "./evas_op_mask/op_mask_mask_color_.c" -//# include "./evas_op_mask/op_mask_pixel_mask_color_.c" - -# include "./evas_op_mask/op_mask_pixel_i386.c" -# include "./evas_op_mask/op_mask_color_i386.c" -# include "./evas_op_mask/op_mask_pixel_color_i386.c" -# include "./evas_op_mask/op_mask_pixel_mask_i386.c" -# include "./evas_op_mask/op_mask_mask_color_i386.c" -//# include "./evas_op_mask/op_mask_pixel_mask_color_i386.c" - - -static void -op_mask_init(void) -{ - memset(op_mask_span_funcs, 0, sizeof(op_mask_span_funcs)); - memset(op_mask_pt_funcs, 0, sizeof(op_mask_pt_funcs)); -#ifdef BUILD_MMX - init_mask_pixel_span_funcs_mmx(); - init_mask_pixel_color_span_funcs_mmx(); - init_mask_pixel_mask_span_funcs_mmx(); - init_mask_color_span_funcs_mmx(); - init_mask_mask_color_span_funcs_mmx(); - - init_mask_pixel_pt_funcs_mmx(); - init_mask_pixel_color_pt_funcs_mmx(); - init_mask_pixel_mask_pt_funcs_mmx(); - init_mask_color_pt_funcs_mmx(); - init_mask_mask_color_pt_funcs_mmx(); -#endif -#ifdef BUILD_C - init_mask_pixel_span_funcs_c(); - init_mask_pixel_color_span_funcs_c(); - init_mask_pixel_mask_span_funcs_c(); - init_mask_color_span_funcs_c(); - init_mask_mask_color_span_funcs_c(); - - init_mask_pixel_pt_funcs_c(); - init_mask_pixel_color_pt_funcs_c(); - init_mask_pixel_mask_pt_funcs_c(); - init_mask_color_pt_funcs_c(); - init_mask_mask_color_pt_funcs_c(); -#endif -} - -static void -op_mask_shutdown(void) -{ -} - -static RGBA_Gfx_Func -mask_gfx_span_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_mask_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_mask_span_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Func -op_mask_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - { - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return mask_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return mask_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_mask_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return mask_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_mask_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - return mask_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_mask_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if (src && src->cache_entry.flags.alpha) - s = SP; - return mask_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -mask_gfx_pt_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Pt_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_mask_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_mask_pt_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Pt_Func -op_mask_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - { - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return mask_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_mask_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return mask_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_mask_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src_flags.alpha) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return mask_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_mask_mask_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - return mask_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_mask_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if (src_flags.alpha) - s = SP; - return mask_gfx_pt_func_cpu(s, m, c, d); -} diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.am b/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.am deleted file mode 100644 index e3d0b82..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -EXTRA_DIST = \ -op_mul_color_.c \ -op_mul_color_i386.c \ -op_mul_mask_color_.c \ -op_mul_mask_color_i386.c \ -op_mul_pixel_.c \ -op_mul_pixel_color_.c \ -op_mul_pixel_color_i386.c \ -op_mul_pixel_i386.c \ -op_mul_pixel_mask_.c \ -op_mul_pixel_mask_i386.c diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in b/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in deleted file mode 100644 index 849983e..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in +++ /dev/null @@ -1,547 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/lib/engines/common/evas_op_mul -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ - $(top_srcdir)/m4/efl_coverage.m4 \ - $(top_srcdir)/m4/efl_doxygen.m4 \ - $(top_srcdir)/m4/efl_fnmatch.m4 \ - $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ - $(top_srcdir)/m4/evas_check_engine.m4 \ - $(top_srcdir)/m4/evas_check_loader.m4 \ - $(top_srcdir)/m4/evas_converter.m4 \ - $(top_srcdir)/m4/evas_dither.m4 \ - $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CHECK_CFLAGS = @CHECK_CFLAGS@ -CHECK_LIBS = @CHECK_LIBS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ -ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ -EDB_CFLAGS = @EDB_CFLAGS@ -EDB_LIBS = @EDB_LIBS@ -EDJE_CFLAGS = @EDJE_CFLAGS@ -EDJE_LIBS = @EDJE_LIBS@ -EET_CFLAGS = @EET_CFLAGS@ -EET_LIBS = @EET_LIBS@ -EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ -EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ -EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ -EGREP = @EGREP@ -EINA_CFLAGS = @EINA_CFLAGS@ -EINA_LIBS = @EINA_LIBS@ -EVAS_CFLAGS = @EVAS_CFLAGS@ -EVAS_LIBS = @EVAS_LIBS@ -EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@ -EVIL_CFLAGS = @EVIL_CFLAGS@ -EVIL_LIBS = @EVIL_LIBS@ -EXEEXT = @EXEEXT@ -EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ -EXOTIC_LIBS = @EXOTIC_LIBS@ -FGREP = @FGREP@ -FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ -FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ -FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ -FREETYPE_LIBS = @FREETYPE_LIBS@ -FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@ -FRIBIDI_LIBS = @FRIBIDI_LIBS@ -GL_EET_CFLAGS = @GL_EET_CFLAGS@ -GL_EET_LIBS = @GL_EET_LIBS@ -GREP = @GREP@ -HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@ -HARFBUZZ_LIBS = @HARFBUZZ_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@ -LINEBREAK_LIBS = @LINEBREAK_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MODULE_ARCH = @MODULE_ARCH@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJC = @OBJC@ -OBJCDEPMODE = @OBJCDEPMODE@ -OBJCFLAGS = @OBJCFLAGS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ -PIXMAN_LIBS = @PIXMAN_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PNG_CFLAGS = @PNG_CFLAGS@ -PNG_LIBS = @PNG_LIBS@ -RANLIB = @RANLIB@ -SDL_CFLAGS = @SDL_CFLAGS@ -SDL_LIBS = @SDL_LIBS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SHM_OPEN_LINK = @SHM_OPEN_LINK@ -STRIP = @STRIP@ -SVG_CFLAGS = @SVG_CFLAGS@ -SVG_LIBS = @SVG_LIBS@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -VMAJ = @VMAJ@ -WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ -WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ -XCB_CFLAGS = @XCB_CFLAGS@ -XCB_GL_CFLAGS = @XCB_GL_CFLAGS@ -XCB_GL_LIBS = @XCB_GL_LIBS@ -XCB_LIBS = @XCB_LIBS@ -XEXT_CFLAGS = @XEXT_CFLAGS@ -XEXT_LIBS = @XEXT_LIBS@ -XMKMF = @XMKMF@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_OBJC = @ac_ct_OBJC@ -altivec_cflags = @altivec_cflags@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -dlopen_libs = @dlopen_libs@ -docdir = @docdir@ -dvidir = @dvidir@ -edje_cc = @edje_cc@ -efl_doxygen = @efl_doxygen@ -efl_have_doxygen = @efl_have_doxygen@ -evas_engine_buffer_cflags = @evas_engine_buffer_cflags@ -evas_engine_buffer_libs = @evas_engine_buffer_libs@ -evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@ -evas_engine_direct3d_libs = @evas_engine_direct3d_libs@ -evas_engine_directfb_cflags = @evas_engine_directfb_cflags@ -evas_engine_directfb_libs = @evas_engine_directfb_libs@ -evas_engine_fb_cflags = @evas_engine_fb_cflags@ -evas_engine_fb_libs = @evas_engine_fb_libs@ -evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@ -evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@ -evas_engine_gl_common_libs = @evas_engine_gl_common_libs@ -evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@ -evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@ -evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@ -evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@ -evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@ -evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@ -evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@ -evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@ -evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@ -evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@ -evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@ -evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@ -evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@ -evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@ -evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@ -evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@ -evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@ -evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@ -evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@ -evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@ -evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@ -evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@ -evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ -evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ -evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ -evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ -evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ -evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ -evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ -evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ -evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ -evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ -evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ -evas_image_loader_edb_libs = @evas_image_loader_edb_libs@ -evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@ -evas_image_loader_eet_libs = @evas_image_loader_eet_libs@ -evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@ -evas_image_loader_generic_libs = @evas_image_loader_generic_libs@ -evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@ -evas_image_loader_gif_libs = @evas_image_loader_gif_libs@ -evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@ -evas_image_loader_ico_libs = @evas_image_loader_ico_libs@ -evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@ -evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@ -evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@ -evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@ -evas_image_loader_png_cflags = @evas_image_loader_png_cflags@ -evas_image_loader_png_libs = @evas_image_loader_png_libs@ -evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@ -evas_image_loader_psd_libs = @evas_image_loader_psd_libs@ -evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@ -evas_image_loader_svg_libs = @evas_image_loader_svg_libs@ -evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@ -evas_image_loader_tga_libs = @evas_image_loader_tga_libs@ -evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@ -evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@ -evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@ -evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@ -evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@ -evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@ -exec_prefix = @exec_prefix@ -have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@ -have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@ -have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@ -have_evas_engine_software_x11 = @have_evas_engine_software_x11@ -have_evas_engine_software_xcb = @have_evas_engine_software_xcb@ -have_evas_engine_software_xlib = @have_evas_engine_software_xlib@ -have_lcov = @have_lcov@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -lt_enable_auto_import = @lt_enable_auto_import@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfig_requires_private = @pkgconfig_requires_private@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pthread_cflags = @pthread_cflags@ -pthread_libs = @pthread_libs@ -release_info = @release_info@ -requirement_evas = @requirement_evas@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -version_info = @version_info@ -MAINTAINERCLEANFILES = Makefile.in -EXTRA_DIST = \ -op_mul_color_.c \ -op_mul_color_i386.c \ -op_mul_mask_color_.c \ -op_mul_mask_color_i386.c \ -op_mul_pixel_.c \ -op_mul_pixel_color_.c \ -op_mul_pixel_color_i386.c \ -op_mul_pixel_i386.c \ -op_mul_pixel_mask_.c \ -op_mul_pixel_mask_i386.c - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_mul/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_mul/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_.c deleted file mode 100644 index fb656b5..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_.c +++ /dev/null @@ -1,65 +0,0 @@ -/* mul color --> dst */ - -#ifdef BUILD_C -static void -_op_mul_c_dp(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - for (; d < e; d++) { - *d = MUL4_SYM(c, *d); - } -} - -static void -_op_mul_caa_dp(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - c = 1 + (c >> 24); - for (; d < e; d++) { - *d = MUL_256(c, *d); - } -} - -#define _op_mul_can_dp _op_mul_c_dp - -#define _op_mul_c_dpan _op_mul_c_dp -#define _op_mul_can_dpan _op_mul_can_dp -#define _op_mul_caa_dpan _op_mul_caa_dp - -static void -init_mul_color_span_funcs_c(void) -{ - op_mul_span_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_mul_c_dp; - op_mul_span_funcs[SP_N][SM_N][SC_AN][DP][CPU_C] = _op_mul_can_dp; - op_mul_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_mul_caa_dp; - - op_mul_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_mul_c_dpan; - op_mul_span_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_can_dpan; - op_mul_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_mul_pt_c_dp(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - *d = MUL4_SYM(c, *d); -} - -#define _op_mul_pt_can_dp _op_mul_pt_c_dp -#define _op_mul_pt_caa_dp _op_mul_pt_c_dp - -#define _op_mul_pt_c_dpan _op_mul_pt_c_dp -#define _op_mul_pt_can_dpan _op_mul_pt_can_dp -#define _op_mul_pt_caa_dpan _op_mul_pt_caa_dp - -static void -init_mul_color_pt_funcs_c(void) -{ - op_mul_pt_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_mul_pt_c_dp; - op_mul_pt_funcs[SP_N][SM_N][SC_AN][DP][CPU_C] = _op_mul_pt_can_dp; - op_mul_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_mul_pt_caa_dp; - - op_mul_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_mul_pt_c_dpan; - op_mul_pt_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_pt_can_dpan; - op_mul_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_pt_caa_dpan; -} -#endif - diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_i386.c deleted file mode 100644 index 95f43f6..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_i386.c +++ /dev/null @@ -1,66 +0,0 @@ -/* mul color --> dst */ - -#ifdef BUILD_MMX -static void -_op_mul_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - MOV_P2R(c, mm2, mm0) - for (; d < e; d++) { - MOV_P2R(*d, mm1, mm0) - MUL4_SYM_R2R(mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - } -} - -#define _op_mul_can_dp_mmx _op_mul_c_dp_mmx -#define _op_mul_caa_dp_mmx _op_mul_c_dp_mmx - -#define _op_mul_c_dpan_mmx _op_mul_c_dp_mmx -#define _op_mul_can_dpan_mmx _op_mul_can_dp_mmx -#define _op_mul_caa_dpan_mmx _op_mul_caa_dp_mmx - -static void -init_mul_color_span_funcs_mmx(void) -{ - op_mul_span_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_mul_c_dp_mmx; - op_mul_span_funcs[SP_N][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_can_dp_mmx; - op_mul_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_caa_dp_mmx; - - op_mul_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_c_dpan_mmx; - op_mul_span_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_can_dpan_mmx; - op_mul_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_mul_pt_c_dp_mmx(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - MOV_P2R(c, mm2, mm0) - MOV_P2R(*d, mm1, mm0) - MUL4_SYM_R2R(mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) -} - -#define _op_mul_pt_caa_dp_mmx _op_mul_pt_c_dp_mmx -#define _op_mul_pt_can_dp_mmx _op_mul_pt_c_dp_mmx - -#define _op_mul_pt_c_dpan_mmx _op_mul_pt_c_dp_mmx -#define _op_mul_pt_can_dpan_mmx _op_mul_pt_can_dp_mmx -#define _op_mul_pt_caa_dpan_mmx _op_mul_pt_caa_dp_mmx - -static void -init_mul_color_pt_funcs_mmx(void) -{ - op_mul_pt_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_mul_pt_c_dp_mmx; - op_mul_pt_funcs[SP_N][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pt_can_dp_mmx; - op_mul_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pt_caa_dp_mmx; - - op_mul_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pt_c_dpan_mmx; - op_mul_pt_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pt_can_dpan_mmx; - op_mul_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pt_caa_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_.c deleted file mode 100644 index 7a6e403..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_.c +++ /dev/null @@ -1,72 +0,0 @@ -/* mul mask x color -> dst */ - -#ifdef BUILD_C -static void -_op_mul_mas_c_dp(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l, nc = ~c; - while (d < e) - { - DATA32 a = *m; - switch(a) - { - case 0: - break; - case 255: - *d = MUL4_SYM(c, *d); - break; - default: - a = ~MUL_SYM(a, nc); - *d = MUL4_SYM(a, *d); - break; - } - m++; d++; - } -} - -#define _op_mul_mas_can_dp _op_mul_mas_c_dp -#define _op_mul_mas_caa_dp _op_mul_mas_c_dp - -#define _op_mul_mas_c_dpan _op_mul_mas_c_dp -#define _op_mul_mas_can_dpan _op_mul_mas_can_dp -#define _op_mul_mas_caa_dpan _op_mul_mas_caa_dp - -static void -init_mul_mask_color_span_funcs_c(void) -{ - op_mul_span_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_mul_mas_c_dp; - op_mul_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_mul_mas_can_dp; - op_mul_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_mul_mas_caa_dp; - - op_mul_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_mul_mas_c_dpan; - op_mul_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_mul_mas_can_dpan; - op_mul_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_mul_mas_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_mul_pt_mas_c_dp(DATA32 s __UNUSED__, DATA8 m, DATA32 c, DATA32 *d) { - c = ~c; - c = ~MUL_SYM(m, c); - *d = MUL4_SYM(c, *d); -} - -#define _op_mul_pt_mas_can_dp _op_mul_pt_mas_c_dp -#define _op_mul_pt_mas_caa_dp _op_mul_pt_mas_c_dp - -#define _op_mul_pt_mas_c_dpan _op_mul_pt_mas_c_dp -#define _op_mul_pt_mas_can_dpan _op_mul_pt_mas_can_dp -#define _op_mul_pt_mas_caa_dpan _op_mul_pt_mas_caa_dp - -static void -init_mul_mask_color_pt_funcs_c(void) -{ - op_mul_pt_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_mul_pt_mas_c_dp; - op_mul_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_mul_pt_mas_can_dp; - op_mul_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_mul_pt_mas_caa_dp; - - op_mul_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_mul_pt_mas_c_dpan; - op_mul_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_mul_pt_mas_can_dpan; - op_mul_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_mul_pt_mas_caa_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_i386.c deleted file mode 100644 index 1999503..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_i386.c +++ /dev/null @@ -1,92 +0,0 @@ -/* mul mask x color -> dst */ - -#ifdef BUILD_MMX -static void -_op_mul_mas_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - MOV_P2R(c, mm2, mm0) - c = ~c; - MOV_P2R(c, mm3, mm0) - MOV_A2R(ALPHA_255, mm5) - pxor_r2r(mm0, mm0); - while (d < e) { - DATA32 a = *m; - switch(a) - { - case 0: - break; - case 255: - MOV_P2R(*d, mm1, mm0) - MUL4_SYM_R2R(mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - break; - default: - a++; - MOV_A2R(a, mm1) - MUL4_256_R2R(mm3, mm1) - movq_r2r(mm5, mm4); - psubw_r2r(mm1, mm4); - MOV_P2R(*d, mm1, mm0) - MUL4_SYM_R2R(mm4, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - break; - } - m++; d++; - } -} - -#define _op_mul_mas_can_dp_mmx _op_mul_mas_c_dp_mmx -#define _op_mul_mas_caa_dp_mmx _op_mul_mas_c_dp_mmx - -#define _op_mul_mas_c_dpan_mmx _op_mul_mas_c_dp_mmx -#define _op_mul_mas_can_dpan_mmx _op_mul_mas_can_dp_mmx -#define _op_mul_mas_caa_dpan_mmx _op_mul_mas_caa_dp_mmx - -static void -init_mul_mask_color_span_funcs_mmx(void) -{ - op_mul_span_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_mul_mas_c_dp_mmx; - op_mul_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_mul_mas_can_dp_mmx; - op_mul_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_mul_mas_caa_dp_mmx; - - op_mul_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_mul_mas_c_dpan_mmx; - op_mul_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_mul_mas_can_dpan_mmx; - op_mul_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_mul_mas_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_mul_pt_mas_c_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { - s = m + 1; - c = ~c; - MOV_P2R(c, mm3, mm0) - MOV_A2R(ALPHA_255, mm4) - pxor_r2r(mm0, mm0); - MOV_A2R(s, mm1) - MUL4_256_R2R(mm3, mm1) - psubw_r2r(mm1, mm4); - MOV_P2R(*d, mm1, mm0) - MUL4_SYM_R2R(mm4, mm1, mm5) - MOV_R2P(mm1, *d, mm0) -} - -#define _op_mul_pt_mas_can_dp_mmx _op_mul_pt_mas_c_dp_mmx -#define _op_mul_pt_mas_caa_dp_mmx _op_mul_pt_mas_c_dp_mmx - -#define _op_mul_pt_mas_c_dpan_mmx _op_mul_pt_mas_c_dp_mmx -#define _op_mul_pt_mas_can_dpan_mmx _op_mul_pt_mas_can_dp_mmx -#define _op_mul_pt_mas_caa_dpan_mmx _op_mul_pt_mas_caa_dp_mmx - -static void -init_mul_mask_color_pt_funcs_mmx(void) -{ - op_mul_pt_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_mul_pt_mas_c_dp_mmx; - op_mul_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_mul_pt_mas_can_dp_mmx; - op_mul_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_mul_pt_mas_caa_dp_mmx; - - op_mul_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_mul_pt_mas_c_dpan_mmx; - op_mul_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_mul_pt_mas_can_dpan_mmx; - op_mul_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_mul_pt_mas_caa_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c deleted file mode 100644 index 2e034b9..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c +++ /dev/null @@ -1,56 +0,0 @@ -/* mul pixel --> dst */ - -#ifdef BUILD_C -static void -_op_mul_p_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = d + l; - for (; d < e; d++, s++) { - *d = MUL4_SYM(*s, *d); - } -} - -#define _op_mul_pas_dp _op_mul_p_dp -#define _op_mul_pan_dp _op_mul_p_dp - -#define _op_mul_p_dpan _op_mul_p_dp -#define _op_mul_pas_dpan _op_mul_pas_dp -#define _op_mul_pan_dpan _op_mul_pan_dp - -static void -init_mul_pixel_span_funcs_c(void) -{ - op_mul_span_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_mul_p_dp; - op_mul_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_mul_pas_dp; - op_mul_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_mul_pan_dp; - - op_mul_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_p_dpan; - op_mul_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pas_dpan; - op_mul_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pan_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_mul_pt_p_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) { - *d = MUL4_SYM(s, *d); -} - -#define _op_mul_pt_pas_dp _op_mul_pt_p_dp -#define _op_mul_pt_pan_dp _op_mul_pt_p_dp - -#define _op_mul_pt_p_dpan _op_mul_pt_p_dp -#define _op_mul_pt_pan_dpan _op_mul_pt_pan_dp -#define _op_mul_pt_pas_dpan _op_mul_pt_pas_dp - -static void -init_mul_pixel_pt_funcs_c(void) -{ - op_mul_pt_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_mul_pt_p_dp; - op_mul_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_mul_pt_pas_dp; - op_mul_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_mul_pt_pan_dp; - - op_mul_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pt_p_dpan; - op_mul_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pt_pas_dpan; - op_mul_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pt_pan_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_.c deleted file mode 100644 index 3ea6919..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_.c +++ /dev/null @@ -1,122 +0,0 @@ -/* mul pixel x color --> dst */ - -#ifdef BUILD_C -static void -_op_mul_p_c_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - while (d < e) { - DATA32 cs = MUL4_SYM(c, *s); - *d = MUL4_SYM(cs, *d); - s++; d++; - } -} - -static void -_op_mul_p_caa_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - c = 1 + (c >> 24); - while (d < e) - { - DATA32 cs = MUL_256(c, *s); - *d = MUL4_SYM(cs, *d); - s++; d++; - } -} - -#define _op_mul_pas_c_dp _op_mul_p_c_dp -#define _op_mul_pan_c_dp _op_mul_p_c_dp -#define _op_mul_p_can_dp _op_mul_p_c_dp -#define _op_mul_pas_can_dp _op_mul_p_c_dp -#define _op_mul_pan_can_dp _op_mul_p_c_dp -#define _op_mul_pas_caa_dp _op_mul_p_caa_dp -#define _op_mul_pan_caa_dp _op_mul_p_caa_dp - -#define _op_mul_p_c_dpan _op_mul_p_c_dp -#define _op_mul_pas_c_dpan _op_mul_pas_c_dp -#define _op_mul_pan_c_dpan _op_mul_pan_c_dp -#define _op_mul_p_can_dpan _op_mul_p_can_dp -#define _op_mul_pas_can_dpan _op_mul_pas_can_dp -#define _op_mul_pan_can_dpan _op_mul_pan_can_dp -#define _op_mul_p_caa_dpan _op_mul_p_caa_dp -#define _op_mul_pas_caa_dpan _op_mul_pas_caa_dp -#define _op_mul_pan_caa_dpan _op_mul_pan_caa_dp - -static void -init_mul_pixel_color_span_funcs_c(void) -{ - op_mul_span_funcs[SP][SM_N][SC][DP][CPU_C] = _op_mul_p_c_dp; - op_mul_span_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_mul_pas_c_dp; - op_mul_span_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_mul_pan_c_dp; - op_mul_span_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_mul_p_can_dp; - op_mul_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_mul_pas_can_dp; - op_mul_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_C] = _op_mul_pan_can_dp; - op_mul_span_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_mul_p_caa_dp; - op_mul_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_mul_pas_caa_dp; - op_mul_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_mul_pan_caa_dp; - - op_mul_span_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_mul_p_c_dpan; - op_mul_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_mul_pas_c_dpan; - op_mul_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_mul_pan_c_dpan; - op_mul_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_p_can_dpan; - op_mul_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_pas_can_dpan; - op_mul_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_pan_can_dpan; - op_mul_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_p_caa_dpan; - op_mul_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_pas_caa_dpan; - op_mul_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_pan_caa_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_mul_pt_p_c_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = MUL4_SYM(c, s); - *d = MUL4_SYM(s, *d); -} - -static void -_op_mul_pt_p_caa_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - s = MUL_SYM(c >> 24, s); - *d = MUL4_SYM(s, *d); -} - -#define _op_mul_pt_pas_c_dp _op_mul_pt_p_c_dp -#define _op_mul_pt_pan_c_dp _op_mul_pt_p_c_dp -#define _op_mul_pt_p_can_dp _op_mul_pt_p_c_dp -#define _op_mul_pt_pas_can_dp _op_mul_pt_p_c_dp -#define _op_mul_pt_pan_can_dp _op_mul_pt_p_c_dp -#define _op_mul_pt_pas_caa_dp _op_mul_pt_p_caa_dp -#define _op_mul_pt_pan_caa_dp _op_mul_pt_p_caa_dp - -#define _op_mul_pt_p_c_dpan _op_mul_pt_p_c_dp -#define _op_mul_pt_pan_c_dpan _op_mul_pt_pan_c_dp -#define _op_mul_pt_pas_c_dpan _op_mul_pt_pas_c_dp -#define _op_mul_pt_p_can_dpan _op_mul_pt_p_can_dp -#define _op_mul_pt_pan_can_dpan _op_mul_pt_pan_can_dp -#define _op_mul_pt_pas_can_dpan _op_mul_pt_pas_can_dp -#define _op_mul_pt_p_caa_dpan _op_mul_pt_p_caa_dp -#define _op_mul_pt_pan_caa_dpan _op_mul_pt_pan_caa_dp -#define _op_mul_pt_pas_caa_dpan _op_mul_pt_pas_caa_dp -static void -init_mul_pixel_color_pt_funcs_c(void) -{ - op_mul_pt_funcs[SP][SM_N][SC][DP][CPU_C] = _op_mul_pt_p_c_dp; - op_mul_pt_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_mul_pt_pas_c_dp; - op_mul_pt_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_mul_pt_pan_c_dp; - op_mul_pt_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_mul_pt_p_can_dp; - op_mul_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_mul_pt_pas_can_dp; - op_mul_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_C] = _op_mul_pt_pan_can_dp; - op_mul_pt_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_mul_pt_p_caa_dp; - op_mul_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_mul_pt_pas_caa_dp; - op_mul_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_mul_pt_pan_caa_dp; - - op_mul_pt_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_mul_pt_p_c_dpan; - op_mul_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_mul_pt_pas_c_dpan; - op_mul_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_mul_pt_pan_c_dpan; - op_mul_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_pt_p_can_dpan; - op_mul_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_pt_pas_can_dpan; - op_mul_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_pt_pan_can_dpan; - op_mul_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_pt_p_caa_dpan; - op_mul_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_pt_pas_caa_dpan; - op_mul_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_pt_pan_caa_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_i386.c deleted file mode 100644 index 24f5a80..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_i386.c +++ /dev/null @@ -1,120 +0,0 @@ -/* mul pixel x color --> dst */ - -#ifdef BUILD_MMX -static void -_op_mul_p_c_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - MOV_A2R(ALPHA_255, mm5) - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - while (d < e) - { - MOV_P2R(*s, mm3, mm0) - MUL4_SYM_R2R(mm2, mm3, mm5) - MOV_P2R(*d, mm1, mm0) - MUL4_SYM_R2R(mm3, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - s++; d++; - } -} - -#define _op_mul_pas_c_dp_mmx _op_mul_p_c_dp_mmx -#define _op_mul_pan_c_dp_mmx _op_mul_p_c_dp_mmx -#define _op_mul_p_can_dp_mmx _op_mul_p_c_dp_mmx -#define _op_mul_pas_can_dp_mmx _op_mul_p_c_dp_mmx -#define _op_mul_pan_can_dp_mmx _op_mul_p_c_dp_mmx -#define _op_mul_p_caa_dp_mmx _op_mul_p_c_dp_mmx -#define _op_mul_pas_caa_dp_mmx _op_mul_p_c_dp_mmx -#define _op_mul_pan_caa_dp_mmx _op_mul_p_c_dp_mmx - -#define _op_mul_p_c_dpan_mmx _op_mul_p_c_dp_mmx -#define _op_mul_pan_c_dpan_mmx _op_mul_pan_c_dp_mmx -#define _op_mul_pas_c_dpan_mmx _op_mul_pas_c_dp_mmx -#define _op_mul_p_can_dpan_mmx _op_mul_p_can_dp_mmx -#define _op_mul_pan_can_dpan_mmx _op_mul_pan_can_dp_mmx -#define _op_mul_pas_can_dpan_mmx _op_mul_pas_can_dp_mmx -#define _op_mul_p_caa_dpan_mmx _op_mul_p_caa_dp_mmx -#define _op_mul_pan_caa_dpan_mmx _op_mul_pan_caa_dp_mmx -#define _op_mul_pas_caa_dpan_mmx _op_mul_pas_caa_dp_mmx - -static void -init_mul_pixel_color_span_funcs_mmx(void) -{ - op_mul_span_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_mul_p_c_dp_mmx; - op_mul_span_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_mul_pas_c_dp_mmx; - op_mul_span_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_mul_pan_c_dp_mmx; - op_mul_span_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_p_can_dp_mmx; - op_mul_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pas_can_dp_mmx; - op_mul_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pan_can_dp_mmx; - op_mul_span_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_p_caa_dp_mmx; - op_mul_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pas_caa_dp_mmx; - op_mul_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pan_caa_dp_mmx; - - op_mul_span_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_p_c_dpan_mmx; - op_mul_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pas_c_dpan_mmx; - op_mul_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pan_c_dpan_mmx; - op_mul_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_p_can_dpan_mmx; - op_mul_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pas_can_dpan_mmx; - op_mul_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pan_can_dpan_mmx; - op_mul_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_p_caa_dpan_mmx; - op_mul_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pas_caa_dpan_mmx; - op_mul_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pan_caa_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_mul_pt_p_c_dp_mmx(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) { - MOV_A2R(ALPHA_255, mm5) - pxor_r2r(mm0, mm0); - MOV_P2R(c, mm2, mm0) - MOV_P2R(s, mm3, mm0) - MUL4_SYM_R2R(mm2, mm3, mm5) - MOV_P2R(*d, mm1, mm0) - MUL4_SYM_R2R(mm3, mm1, mm5) - MOV_R2P(mm1, *d, mm0) -} - -#define _op_mul_pt_pas_c_dp_mmx _op_mul_pt_p_c_dp_mmx -#define _op_mul_pt_pan_c_dp_mmx _op_mul_pt_p_c_dp_mmx -#define _op_mul_pt_p_can_dp_mmx _op_mul_pt_p_c_dp_mmx -#define _op_mul_pt_pas_can_dp_mmx _op_mul_pt_p_c_dp_mmx -#define _op_mul_pt_pan_can_dp_mmx _op_mul_pt_p_c_dp_mmx -#define _op_mul_pt_p_caa_dp_mmx _op_mul_pt_p_c_dp_mmx -#define _op_mul_pt_pas_caa_dp_mmx _op_mul_pt_p_c_dp_mmx -#define _op_mul_pt_pan_caa_dp_mmx _op_mul_pt_p_c_dp_mmx - -#define _op_mul_pt_p_c_dpan_mmx _op_mul_pt_p_c_dp_mmx -#define _op_mul_pt_pan_c_dpan_mmx _op_mul_pt_pan_c_dp_mmx -#define _op_mul_pt_pas_c_dpan_mmx _op_mul_pt_pas_c_dp_mmx -#define _op_mul_pt_p_can_dpan_mmx _op_mul_pt_p_can_dp_mmx -#define _op_mul_pt_pan_can_dpan_mmx _op_mul_pt_pan_can_dp_mmx -#define _op_mul_pt_pas_can_dpan_mmx _op_mul_pt_pas_can_dp_mmx -#define _op_mul_pt_p_caa_dpan_mmx _op_mul_pt_p_caa_dp_mmx -#define _op_mul_pt_pan_caa_dpan_mmx _op_mul_pt_pan_caa_dp_mmx -#define _op_mul_pt_pas_caa_dpan_mmx _op_mul_pt_pas_caa_dp_mmx - -static void -init_mul_pixel_color_pt_funcs_mmx(void) -{ - op_mul_pt_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_mul_pt_p_c_dp_mmx; - op_mul_pt_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_mul_pt_pas_c_dp_mmx; - op_mul_pt_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_mul_pt_pan_c_dp_mmx; - op_mul_pt_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pt_p_can_dp_mmx; - op_mul_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pt_pas_can_dp_mmx; - op_mul_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pt_pan_can_dp_mmx; - op_mul_pt_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pt_p_caa_dp_mmx; - op_mul_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pt_pas_caa_dp_mmx; - op_mul_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pt_pan_caa_dp_mmx; - - op_mul_pt_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pt_p_c_dpan_mmx; - op_mul_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pt_pas_c_dpan_mmx; - op_mul_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pt_pan_c_dpan_mmx; - op_mul_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pt_p_can_dpan_mmx; - op_mul_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pt_pas_can_dpan_mmx; - op_mul_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pt_pan_can_dpan_mmx; - op_mul_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pt_p_caa_dpan_mmx; - op_mul_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pt_pas_caa_dpan_mmx; - op_mul_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pt_pan_caa_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_i386.c deleted file mode 100644 index 0db6cd7..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_i386.c +++ /dev/null @@ -1,66 +0,0 @@ -/* mul pixel --> dst */ - -#ifdef BUILD_MMX -static void -_op_mul_p_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) { - DATA32 *e = s + l; - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - for (; s < e; s++, d++) { - MOV_P2R(*d, mm1, mm0) - MOV_P2R(*s, mm2, mm0) - MUL4_SYM_R2R(mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - } -} - -#define _op_mul_pas_dp_mmx _op_mul_p_dp_mmx -#define _op_mul_pan_dp_mmx _op_mul_p_dp_mmx - -#define _op_mul_p_dpan_mmx _op_mul_p_dp_mmx -#define _op_mul_pan_dpan_mmx _op_mul_pan_dp_mmx -#define _op_mul_pas_dpan_mmx _op_mul_pas_dp_mmx - -static void -init_mul_pixel_span_funcs_mmx(void) -{ - op_mul_span_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_mul_p_dp_mmx; - op_mul_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_MMX] = _op_mul_pan_dp_mmx; - op_mul_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_mul_pas_dp_mmx; - - op_mul_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mul_p_dpan_mmx; - op_mul_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mul_pan_dpan_mmx; - op_mul_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mul_pas_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -_op_mul_pt_p_dp_mmx(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) { - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - MOV_P2R(*d, mm1, mm0) - MOV_P2R(s, mm2, mm0) - MUL4_SYM_R2R(mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) -} - -#define _op_mul_pt_pan_dp_mmx _op_mul_pt_p_dp_mmx -#define _op_mul_pt_pas_dp_mmx _op_mul_pt_p_dp_mmx - -#define _op_mul_pt_p_dpan_mmx _op_mul_pt_p_dp_mmx -#define _op_mul_pt_pan_dpan_mmx _op_mul_pt_pan_dp_mmx -#define _op_mul_pt_pas_dpan_mmx _op_mul_pt_pas_dp_mmx - -static void -init_mul_pixel_pt_funcs_mmx(void) -{ - op_mul_pt_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_mul_pt_p_dp_mmx; - op_mul_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_MMX] = _op_mul_pt_pan_dp_mmx; - op_mul_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_mul_pt_pas_dp_mmx; - - op_mul_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mul_pt_p_dpan_mmx; - op_mul_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mul_pt_pan_dpan_mmx; - op_mul_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mul_pt_pas_dpan_mmx; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_.c deleted file mode 100644 index 37d0497..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_.c +++ /dev/null @@ -1,117 +0,0 @@ -/* mul pixel x mask --> dst */ - -#ifdef BUILD_C -static void -_op_mul_p_mas_dp(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - while (d < e) - { - c = *m; - switch(c) - { - case 0: - break; - case 255: - *d = MUL4_SYM(*s, *d); - break; - default: - c = ~(*s); - c = ~MUL_SYM(*m, c); - *d = MUL4_SYM(c, *d); - break; - } - m++; s++; d++; - } -} - -static void -_op_mul_pan_mas_dp(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - while (d < e) - { - c = *m; - switch(c) - { - case 0: - break; - case 255: - *d = (*d & 0xff000000) + MUL3_SYM(*s, *d); - break; - default: - c = ~(*s); - c = ~MUL_SYM(*m, c); - *d = (*d & 0xff000000) + MUL3_SYM(c, *d); - break; - } - m++; s++; d++; - } -} - -static void -_op_mul_p_mas_dpan(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - while (d < e) - { - c = *m; - switch(c) - { - case 0: - break; - case 255: - *d = (*s & 0xff000000) + MUL3_SYM(*s, *d); - break; - default: - c = ~(*s); - c = ~MUL_SYM(*m, c); - *d = (c & 0xff000000) + MUL3_SYM(c, *d); - break; - } - m++; d++; - } -} - -#define _op_mul_pas_mas_dp _op_mul_p_mas_dp - -#define _op_mul_pan_mas_dpan _op_mul_p_mas_dpan -#define _op_mul_pas_mas_dpan _op_mul_p_mas_dpan - -static void -init_mul_pixel_mask_span_funcs_c(void) -{ - op_mul_span_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_mul_p_mas_dp; - op_mul_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_mul_pas_mas_dp; - op_mul_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_C] = _op_mul_pan_mas_dp; - - op_mul_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_mul_p_mas_dpan; - op_mul_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_mul_pas_mas_dpan; - op_mul_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_C] = _op_mul_pan_mas_dpan; -} -#endif - -#ifdef BUILD_C -static void -_op_mul_pt_p_mas_dp(DATA32 s, DATA8 m, DATA32 c __UNUSED__, DATA32 *d) { - s = ~s; - s = ~MUL_SYM(m, s); - *d = MUL4_SYM(s, *d); -} - -#define _op_mul_pt_pas_mas_dp _op_mul_pt_p_mas_dp -#define _op_mul_pt_pan_mas_dp _op_mul_pt_p_mas_dp - -#define _op_mul_pt_p_mas_dpan _op_mul_pt_p_mas_dp -#define _op_mul_pt_pas_mas_dpan _op_mul_pt_p_mas_dp -#define _op_mul_pt_pan_mas_dpan _op_mul_pt_p_mas_dp - -static void -init_mul_pixel_mask_pt_funcs_c(void) -{ - op_mul_pt_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_mul_pt_p_mas_dp; - op_mul_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_mul_pt_pas_mas_dp; - op_mul_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_C] = _op_mul_pt_pan_mas_dp; - - op_mul_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_mul_pt_p_mas_dpan; - op_mul_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_mul_pt_pas_mas_dpan; - op_mul_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_C] = _op_mul_pt_pan_mas_dpan; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_i386.c deleted file mode 100644 index ebbac01..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_i386.c +++ /dev/null @@ -1,63 +0,0 @@ -/* mul pixel x mask --> dst */ - -#ifdef BUILD_MMX -static void -_op_mul_p_mas_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { - DATA32 *e = d + l; - MOV_A2R(ALPHA_255, mm5) - pxor_r2r(mm0, mm0); - while (d < e) { - c = *m; - switch(c) - { - case 0: - break; - case 255: - MOV_P2R(*d, mm1, mm0) - MOV_P2R(*s, mm2, mm0) - MUL4_SYM_R2R(mm2, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - break; - default: - c++; - MOV_A2R(c, mm1) - c = ~(*s); - MOV_P2R(c, mm3, mm0) - MUL4_256_R2R(mm3, mm1) - movq_r2r(mm5, mm4); - psubw_r2r(mm1, mm4); - MOV_P2R(*d, mm1, mm0) - MUL4_SYM_R2R(mm4, mm1, mm5) - MOV_R2P(mm1, *d, mm0) - break; - } - s++; m++; d++; - } -} - -#define _op_mul_pas_mas_dp_mmx _op_mul_p_mas_dp_mmx -#define _op_mul_pan_mas_dp_mmx _op_mul_p_mas_dp_mmx - -#define _op_mul_p_mas_dpan_mmx _op_mul_p_mas_dp_mmx -#define _op_mul_pas_mas_dpan_mmx _op_mul_pas_mas_dp_mmx -#define _op_mul_pan_mas_dpan_mmx _op_mul_pan_mas_dp_mmx - -static void -init_mul_pixel_mask_span_funcs_mmx(void) -{ - op_mul_span_funcs[SP][SM_AS][SC_N][DP][CPU_MMX] = _op_mul_p_mas_dp_mmx; - op_mul_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_MMX] = _op_mul_pas_mas_dp_mmx; - op_mul_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_MMX] = _op_mul_pan_mas_dp_mmx; - - op_mul_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_mul_p_mas_dpan_mmx; - op_mul_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_mul_pas_mas_dpan_mmx; - op_mul_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_mul_pan_mas_dpan_mmx; -} -#endif - -#ifdef BUILD_MMX -static void -init_mul_pixel_mask_pt_funcs_mmx(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul_main_.c b/libraries/evas/src/lib/engines/common/evas_op_mul_main_.c deleted file mode 100644 index 25fa932..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_mul_main_.c +++ /dev/null @@ -1,308 +0,0 @@ -#include "evas_common.h" - -static RGBA_Gfx_Func op_mul_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; -static RGBA_Gfx_Pt_Func op_mul_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; - -static void op_mul_init(void); -static void op_mul_shutdown(void); - -static RGBA_Gfx_Func op_mul_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_mul_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_mul_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_mul_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_mul_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); - -static RGBA_Gfx_Pt_Func op_mul_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_mul_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_mul_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_mul_mask_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_mul_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); - -static RGBA_Gfx_Compositor _composite_mul = { "mul", - op_mul_init, op_mul_shutdown, - op_mul_pixel_span_get, op_mul_color_span_get, - op_mul_pixel_color_span_get, op_mul_mask_color_span_get, - op_mul_pixel_mask_span_get, - op_mul_pixel_pt_get, op_mul_color_pt_get, - op_mul_pixel_color_pt_get, op_mul_mask_color_pt_get, - op_mul_pixel_mask_pt_get - }; - -RGBA_Gfx_Compositor * -evas_common_gfx_compositor_mul_get(void) -{ - return &(_composite_mul); -} - - -# include "./evas_op_mul/op_mul_pixel_.c" -# include "./evas_op_mul/op_mul_color_.c" -# include "./evas_op_mul/op_mul_pixel_color_.c" -# include "./evas_op_mul/op_mul_pixel_mask_.c" -# include "./evas_op_mul/op_mul_mask_color_.c" -//# include "./evas_op_mul/op_mul_pixel_mask_color_.c" - -# include "./evas_op_mul/op_mul_pixel_i386.c" -# include "./evas_op_mul/op_mul_color_i386.c" -# include "./evas_op_mul/op_mul_pixel_color_i386.c" -# include "./evas_op_mul/op_mul_pixel_mask_i386.c" -# include "./evas_op_mul/op_mul_mask_color_i386.c" -// # include "./evas_op_mul/op_mul_pixel_mask_color_i386.c" - -static void -op_mul_init(void) -{ - memset(op_mul_span_funcs, 0, sizeof(op_mul_span_funcs)); - memset(op_mul_pt_funcs, 0, sizeof(op_mul_pt_funcs)); -#ifdef BUILD_MMX - init_mul_pixel_span_funcs_mmx(); - init_mul_pixel_color_span_funcs_mmx(); - init_mul_pixel_mask_span_funcs_mmx(); - init_mul_color_span_funcs_mmx(); - init_mul_mask_color_span_funcs_mmx(); - - init_mul_pixel_pt_funcs_mmx(); - init_mul_pixel_color_pt_funcs_mmx(); - init_mul_pixel_mask_pt_funcs_mmx(); - init_mul_color_pt_funcs_mmx(); - init_mul_mask_color_pt_funcs_mmx(); -#endif -#ifdef BUILD_C - init_mul_pixel_span_funcs_c(); - init_mul_pixel_color_span_funcs_c(); - init_mul_pixel_mask_span_funcs_c(); - init_mul_color_span_funcs_c(); - init_mul_mask_color_span_funcs_c(); - - init_mul_pixel_pt_funcs_c(); - init_mul_pixel_color_pt_funcs_c(); - init_mul_pixel_mask_pt_funcs_c(); - init_mul_color_pt_funcs_c(); - init_mul_mask_color_pt_funcs_c(); -#endif -} - -static void -op_mul_shutdown(void) -{ -} - -static RGBA_Gfx_Func -mul_gfx_span_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_mul_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_mul_span_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Func -op_mul_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - { - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return mul_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_mul_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return mul_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_mul_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return mul_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_mul_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - return mul_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_mul_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if (src && src->cache_entry.flags.alpha) - s = SP; - return mul_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -mul_gfx_pt_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Pt_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_mul_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_mul_pt_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Pt_Func -op_mul_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - { - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return mul_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_mul_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return mul_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_mul_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src_flags.alpha) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - s = SP; - } - if ((col >> 24) < 255) - { - if (dst) - dst->cache_entry.flags.alpha = 1; - c = SC; - } - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return mul_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_mul_mask_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - return mul_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_mul_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP; - - if (dst) - dst->cache_entry.flags.alpha = 1; - if (src_flags.alpha) - s = SP; - return mul_gfx_pt_func_cpu(s, m, c, d); -} diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.am b/libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.am deleted file mode 100644 index a8eca14..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.am +++ /dev/null @@ -1,14 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -EXTRA_DIST = \ -op_sub_color_.c \ -op_sub_color_i386.c \ -op_sub_mask_color_.c \ -op_sub_mask_color_i386.c \ -op_sub_pixel_.c \ -op_sub_pixel_color_.c \ -op_sub_pixel_color_i386.c \ -op_sub_pixel_i386.c \ -op_sub_pixel_mask_.c \ -op_sub_pixel_mask_i386.c - diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.in b/libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.in deleted file mode 100644 index 885465a..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.in +++ /dev/null @@ -1,547 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/lib/engines/common/evas_op_sub -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ - $(top_srcdir)/m4/efl_coverage.m4 \ - $(top_srcdir)/m4/efl_doxygen.m4 \ - $(top_srcdir)/m4/efl_fnmatch.m4 \ - $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ - $(top_srcdir)/m4/evas_check_engine.m4 \ - $(top_srcdir)/m4/evas_check_loader.m4 \ - $(top_srcdir)/m4/evas_converter.m4 \ - $(top_srcdir)/m4/evas_dither.m4 \ - $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CHECK_CFLAGS = @CHECK_CFLAGS@ -CHECK_LIBS = @CHECK_LIBS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ -ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ -EDB_CFLAGS = @EDB_CFLAGS@ -EDB_LIBS = @EDB_LIBS@ -EDJE_CFLAGS = @EDJE_CFLAGS@ -EDJE_LIBS = @EDJE_LIBS@ -EET_CFLAGS = @EET_CFLAGS@ -EET_LIBS = @EET_LIBS@ -EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ -EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ -EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ -EGREP = @EGREP@ -EINA_CFLAGS = @EINA_CFLAGS@ -EINA_LIBS = @EINA_LIBS@ -EVAS_CFLAGS = @EVAS_CFLAGS@ -EVAS_LIBS = @EVAS_LIBS@ -EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@ -EVIL_CFLAGS = @EVIL_CFLAGS@ -EVIL_LIBS = @EVIL_LIBS@ -EXEEXT = @EXEEXT@ -EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ -EXOTIC_LIBS = @EXOTIC_LIBS@ -FGREP = @FGREP@ -FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ -FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ -FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ -FREETYPE_LIBS = @FREETYPE_LIBS@ -FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@ -FRIBIDI_LIBS = @FRIBIDI_LIBS@ -GL_EET_CFLAGS = @GL_EET_CFLAGS@ -GL_EET_LIBS = @GL_EET_LIBS@ -GREP = @GREP@ -HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@ -HARFBUZZ_LIBS = @HARFBUZZ_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@ -LINEBREAK_LIBS = @LINEBREAK_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MODULE_ARCH = @MODULE_ARCH@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJC = @OBJC@ -OBJCDEPMODE = @OBJCDEPMODE@ -OBJCFLAGS = @OBJCFLAGS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ -PIXMAN_LIBS = @PIXMAN_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PNG_CFLAGS = @PNG_CFLAGS@ -PNG_LIBS = @PNG_LIBS@ -RANLIB = @RANLIB@ -SDL_CFLAGS = @SDL_CFLAGS@ -SDL_LIBS = @SDL_LIBS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SHM_OPEN_LINK = @SHM_OPEN_LINK@ -STRIP = @STRIP@ -SVG_CFLAGS = @SVG_CFLAGS@ -SVG_LIBS = @SVG_LIBS@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -VMAJ = @VMAJ@ -WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ -WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ -XCB_CFLAGS = @XCB_CFLAGS@ -XCB_GL_CFLAGS = @XCB_GL_CFLAGS@ -XCB_GL_LIBS = @XCB_GL_LIBS@ -XCB_LIBS = @XCB_LIBS@ -XEXT_CFLAGS = @XEXT_CFLAGS@ -XEXT_LIBS = @XEXT_LIBS@ -XMKMF = @XMKMF@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_OBJC = @ac_ct_OBJC@ -altivec_cflags = @altivec_cflags@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -dlopen_libs = @dlopen_libs@ -docdir = @docdir@ -dvidir = @dvidir@ -edje_cc = @edje_cc@ -efl_doxygen = @efl_doxygen@ -efl_have_doxygen = @efl_have_doxygen@ -evas_engine_buffer_cflags = @evas_engine_buffer_cflags@ -evas_engine_buffer_libs = @evas_engine_buffer_libs@ -evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@ -evas_engine_direct3d_libs = @evas_engine_direct3d_libs@ -evas_engine_directfb_cflags = @evas_engine_directfb_cflags@ -evas_engine_directfb_libs = @evas_engine_directfb_libs@ -evas_engine_fb_cflags = @evas_engine_fb_cflags@ -evas_engine_fb_libs = @evas_engine_fb_libs@ -evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@ -evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@ -evas_engine_gl_common_libs = @evas_engine_gl_common_libs@ -evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@ -evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@ -evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@ -evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@ -evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@ -evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@ -evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@ -evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@ -evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@ -evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@ -evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@ -evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@ -evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@ -evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@ -evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@ -evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@ -evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@ -evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@ -evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@ -evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@ -evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@ -evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@ -evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ -evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ -evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ -evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ -evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ -evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ -evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ -evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ -evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ -evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ -evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ -evas_image_loader_edb_libs = @evas_image_loader_edb_libs@ -evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@ -evas_image_loader_eet_libs = @evas_image_loader_eet_libs@ -evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@ -evas_image_loader_generic_libs = @evas_image_loader_generic_libs@ -evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@ -evas_image_loader_gif_libs = @evas_image_loader_gif_libs@ -evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@ -evas_image_loader_ico_libs = @evas_image_loader_ico_libs@ -evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@ -evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@ -evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@ -evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@ -evas_image_loader_png_cflags = @evas_image_loader_png_cflags@ -evas_image_loader_png_libs = @evas_image_loader_png_libs@ -evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@ -evas_image_loader_psd_libs = @evas_image_loader_psd_libs@ -evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@ -evas_image_loader_svg_libs = @evas_image_loader_svg_libs@ -evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@ -evas_image_loader_tga_libs = @evas_image_loader_tga_libs@ -evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@ -evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@ -evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@ -evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@ -evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@ -evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@ -exec_prefix = @exec_prefix@ -have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@ -have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@ -have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@ -have_evas_engine_software_x11 = @have_evas_engine_software_x11@ -have_evas_engine_software_xcb = @have_evas_engine_software_xcb@ -have_evas_engine_software_xlib = @have_evas_engine_software_xlib@ -have_lcov = @have_lcov@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -lt_enable_auto_import = @lt_enable_auto_import@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfig_requires_private = @pkgconfig_requires_private@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pthread_cflags = @pthread_cflags@ -pthread_libs = @pthread_libs@ -release_info = @release_info@ -requirement_evas = @requirement_evas@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -version_info = @version_info@ -MAINTAINERCLEANFILES = Makefile.in -EXTRA_DIST = \ -op_sub_color_.c \ -op_sub_color_i386.c \ -op_sub_mask_color_.c \ -op_sub_mask_color_i386.c \ -op_sub_pixel_.c \ -op_sub_pixel_color_.c \ -op_sub_pixel_color_i386.c \ -op_sub_pixel_i386.c \ -op_sub_pixel_mask_.c \ -op_sub_pixel_mask_i386.c - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_sub/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_sub/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_color_.c b/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_color_.c deleted file mode 100644 index 8490b68..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_color_.c +++ /dev/null @@ -1,33 +0,0 @@ -/* sub color -> dst */ - -#ifdef BUILD_C -static void -init_sub_color_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_sub_color_pt_funcs_c(void) -{ -} -#endif - -/*-----*/ - -/* sub_rel color -> dst */ - -#ifdef BUILD_C -static void -init_sub_rel_color_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_sub_rel_color_pt_funcs_c(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_color_i386.c deleted file mode 100644 index d8fbbea..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_color_i386.c +++ /dev/null @@ -1,33 +0,0 @@ -/* sub color -> dst */ - -#ifdef BUILD_MMX -static void -init_sub_color_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_sub_color_pt_funcs_mmx(void) -{ -} -#endif - -/*-----*/ - -/* sub_rel color -> dst */ - -#ifdef BUILD_MMX -static void -init_sub_rel_color_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_sub_rel_color_pt_funcs_mmx(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_mask_color_.c b/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_mask_color_.c deleted file mode 100644 index 0584227..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_mask_color_.c +++ /dev/null @@ -1,33 +0,0 @@ -/* sub mask x color -> dst */ - -#ifdef BUILD_C -static void -init_sub_mask_color_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_sub_mask_color_pt_funcs_c(void) -{ -} -#endif - -/*-----*/ - -/* sub_rel mask x color -> dst */ - -#ifdef BUILD_C -static void -init_sub_rel_mask_color_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_sub_rel_mask_color_pt_funcs_c(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_mask_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_mask_color_i386.c deleted file mode 100644 index 972a2c9..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_mask_color_i386.c +++ /dev/null @@ -1,33 +0,0 @@ -/* sub mask x color -> dst */ - -#ifdef BUILD_MMX -static void -init_sub_mask_color_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_sub_mask_color_pt_funcs_mmx(void) -{ -} -#endif - -/*-----*/ - -/* sub_rel mask x color -> dst */ - -#ifdef BUILD_MMX -static void -init_sub_rel_mask_color_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_sub_rel_mask_color_pt_funcs_mmx(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_.c b/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_.c deleted file mode 100644 index 97001d4..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_.c +++ /dev/null @@ -1,33 +0,0 @@ -/* sub pixel --> dst */ - -#ifdef BUILD_C -static void -init_sub_pixel_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_sub_pixel_pt_funcs_c(void) -{ -} -#endif - -/*-----*/ - -/* sub_rel pixel --> dst */ - -#ifdef BUILD_C -static void -init_sub_rel_pixel_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_sub_rel_pixel_pt_funcs_c(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_color_.c b/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_color_.c deleted file mode 100644 index 13caa0b..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_color_.c +++ /dev/null @@ -1,33 +0,0 @@ -/* sub pixel x color --> dst */ - -#ifdef BUILD_C -static void -init_sub_pixel_color_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_sub_pixel_color_pt_funcs_c(void) -{ -} -#endif - -/*-----*/ - -/* sub_rel pixel x color --> dst */ - -#ifdef BUILD_C -static void -init_sub_rel_pixel_color_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_sub_rel_pixel_color_pt_funcs_c(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_color_i386.c deleted file mode 100644 index e3c1793..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_color_i386.c +++ /dev/null @@ -1,29 +0,0 @@ -/* sub pixel x color --> dst */ - -#ifdef BUILD_MMX -static void -init_sub_pixel_color_span_funcs_mmx(void) -{ } -#endif - -#ifdef BUILD_MMX -static void -init_sub_pixel_color_pt_funcs_mmx(void) -{ } -#endif - -/*-----*/ - -/* sub_rel pixel x color --> dst */ - -#ifdef BUILD_MMX -static void -init_sub_rel_pixel_color_span_funcs_mmx(void) -{ } -#endif - -#ifdef BUILD_MMX -static void -init_sub_rel_pixel_color_pt_funcs_mmx(void) -{ } -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_i386.c b/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_i386.c deleted file mode 100644 index 95e2ab6..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_i386.c +++ /dev/null @@ -1,33 +0,0 @@ -/* sub pixel --> dst */ - -#ifdef BUILD_MMX -static void -init_sub_pixel_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_sub_pixel_pt_funcs_mmx(void) -{ -} -#endif - -/*-----*/ - -/* sub_rel pixel --> dst */ - -#ifdef BUILD_MMX -static void -init_sub_rel_pixel_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_sub_rel_pixel_pt_funcs_mmx(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_mask_.c b/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_mask_.c deleted file mode 100644 index c0c67be..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_mask_.c +++ /dev/null @@ -1,37 +0,0 @@ -/* sub pixel x mask --> dst */ - -#ifdef BUILD_C -/* XXX: not used -static void -init_sub_pixel_mask_span_funcs_c(void) -{ -} -*/ -#endif - -#ifdef BUILD_C -/* XXX: not used -static void -init_sub_pixel_mask_pt_funcs_c(void) -{ -} -*/ -#endif - -/*-----*/ - -/* sub_rel pixel x mask --> dst */ - -#ifdef BUILD_C -static void -init_sub_rel_pixel_mask_span_funcs_c(void) -{ -} -#endif - -#ifdef BUILD_C -static void -init_sub_rel_pixel_mask_pt_funcs_c(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_mask_i386.c b/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_mask_i386.c deleted file mode 100644 index bfd145e..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_sub/op_sub_pixel_mask_i386.c +++ /dev/null @@ -1,33 +0,0 @@ -/* sub pixel x mask -> dst */ - -#ifdef BUILD_MMX -static void -init_sub_pixel_mask_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_sub_pixel_mask_pt_funcs_mmx(void) -{ -} -#endif - -/*-----*/ - -/* sub_rel pixel x mask -> dst */ - -#ifdef BUILD_MMX -static void -init_sub_rel_pixel_mask_span_funcs_mmx(void) -{ -} -#endif - -#ifdef BUILD_MMX -static void -init_sub_rel_pixel_mask_pt_funcs_mmx(void) -{ -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub_main_.c b/libraries/evas/src/lib/engines/common/evas_op_sub_main_.c deleted file mode 100644 index 329c2e4..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_sub_main_.c +++ /dev/null @@ -1,542 +0,0 @@ -#include "evas_common.h" - -static RGBA_Gfx_Func op_sub_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; -static RGBA_Gfx_Pt_Func op_sub_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; - -static void op_sub_init(void); -static void op_sub_shutdown(void); - -static RGBA_Gfx_Func op_sub_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_sub_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_sub_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_sub_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_sub_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); - -static RGBA_Gfx_Pt_Func op_sub_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_sub_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_sub_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_sub_mask_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_sub_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); - -static RGBA_Gfx_Compositor _composite_sub = { "sub", - op_sub_init, op_sub_shutdown, - op_sub_pixel_span_get, op_sub_color_span_get, - op_sub_pixel_color_span_get, op_sub_mask_color_span_get, - op_sub_pixel_mask_span_get, - op_sub_pixel_pt_get, op_sub_color_pt_get, - op_sub_pixel_color_pt_get, op_sub_mask_color_pt_get, - op_sub_pixel_mask_pt_get - }; - -RGBA_Gfx_Compositor * -evas_common_gfx_compositor_sub_get(void) -{ - return &(_composite_sub); -} - -static RGBA_Gfx_Func op_sub_rel_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; -static RGBA_Gfx_Pt_Func op_sub_rel_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST]; - -static void op_sub_rel_init(void); -static void op_sub_rel_shutdown(void); - -static RGBA_Gfx_Func op_sub_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_sub_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_sub_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_sub_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); -static RGBA_Gfx_Func op_sub_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); - -static RGBA_Gfx_Pt_Func op_sub_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_sub_rel_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_sub_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_sub_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst); -static RGBA_Gfx_Pt_Func op_sub_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); - -static RGBA_Gfx_Compositor _composite_sub_rel = { "sub_rel", - op_sub_rel_init, op_sub_rel_shutdown, - op_sub_rel_pixel_span_get, op_sub_rel_color_span_get, - op_sub_rel_pixel_color_span_get, op_sub_rel_mask_color_span_get, - op_sub_rel_pixel_mask_span_get, - op_sub_rel_pixel_pt_get, op_sub_rel_color_pt_get, - op_sub_rel_pixel_color_pt_get, op_sub_rel_mask_color_pt_get, - op_sub_rel_pixel_mask_pt_get - }; - -RGBA_Gfx_Compositor * -evas_common_gfx_compositor_sub_rel_get(void) -{ - return &(_composite_sub_rel); -} - - -# include "./evas_op_sub/op_sub_pixel_.c" -# include "./evas_op_sub/op_sub_color_.c" -# include "./evas_op_sub/op_sub_pixel_color_.c" -# include "./evas_op_sub/op_sub_pixel_mask_.c" -# include "./evas_op_sub/op_sub_mask_color_.c" -//# include "./evas_op_sub/op_sub_pixel_mask_color_.c" - -# include "./evas_op_sub/op_sub_pixel_i386.c" -# include "./evas_op_sub/op_sub_color_i386.c" -# include "./evas_op_sub/op_sub_pixel_color_i386.c" -# include "./evas_op_sub/op_sub_pixel_mask_i386.c" -# include "./evas_op_sub/op_sub_mask_color_i386.c" -//# include "./evas_op_sub/op_sub_pixel_mask_color_i386.c" - -static void -op_sub_init(void) -{ - memset(op_sub_span_funcs, 0, sizeof(op_sub_span_funcs)); - memset(op_sub_pt_funcs, 0, sizeof(op_sub_pt_funcs)); -#ifdef BUILD_MMX - init_sub_pixel_span_funcs_mmx(); - init_sub_pixel_color_span_funcs_mmx(); - init_sub_pixel_mask_span_funcs_mmx(); - init_sub_color_span_funcs_mmx(); - init_sub_mask_color_span_funcs_mmx(); - - init_sub_pixel_pt_funcs_mmx(); - init_sub_pixel_color_pt_funcs_mmx(); - init_sub_pixel_mask_pt_funcs_mmx(); - init_sub_color_pt_funcs_mmx(); - init_sub_mask_color_pt_funcs_mmx(); -#endif -#ifdef BUILD_C - init_sub_pixel_span_funcs_c(); - init_sub_pixel_color_span_funcs_c(); - init_sub_rel_pixel_mask_span_funcs_c(); - init_sub_color_span_funcs_c(); - init_sub_mask_color_span_funcs_c(); - - init_sub_pixel_pt_funcs_c(); - init_sub_pixel_color_pt_funcs_c(); - init_sub_rel_pixel_mask_pt_funcs_c(); - init_sub_color_pt_funcs_c(); - init_sub_mask_color_pt_funcs_c(); -#endif -} - -static void -op_sub_shutdown(void) -{ -} - -static RGBA_Gfx_Func -sub_gfx_span_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_sub_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_sub_span_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Func -op_sub_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_sub_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_sub_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - s = SP; - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_sub_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_sub_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -sub_gfx_pt_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Pt_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_sub_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_sub_pt_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Pt_Func -op_sub_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_sub_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_sub_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_sub_mask_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_sub_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_gfx_pt_func_cpu(s, m, c, d); -} - - - -static void -op_sub_rel_init(void) -{ - memset(op_sub_rel_span_funcs, 0, sizeof(op_sub_rel_span_funcs)); - memset(op_sub_rel_pt_funcs, 0, sizeof(op_sub_rel_pt_funcs)); -#ifdef BUILD_MMX - init_sub_rel_pixel_span_funcs_mmx(); - init_sub_rel_pixel_color_span_funcs_mmx(); - init_sub_rel_pixel_mask_span_funcs_mmx(); - init_sub_rel_color_span_funcs_mmx(); - init_sub_rel_mask_color_span_funcs_mmx(); - - init_sub_rel_pixel_pt_funcs_mmx(); - init_sub_rel_pixel_color_pt_funcs_mmx(); - init_sub_rel_pixel_mask_pt_funcs_mmx(); - init_sub_rel_color_pt_funcs_mmx(); - init_sub_rel_mask_color_pt_funcs_mmx(); -#endif -#ifdef BUILD_C - init_sub_rel_pixel_span_funcs_c(); - init_sub_rel_pixel_color_span_funcs_c(); - init_sub_rel_pixel_mask_span_funcs_c(); - init_sub_rel_color_span_funcs_c(); - init_sub_rel_mask_color_span_funcs_c(); - - init_sub_rel_pixel_pt_funcs_c(); - init_sub_rel_pixel_color_pt_funcs_c(); - init_sub_rel_pixel_mask_pt_funcs_c(); - init_sub_rel_color_pt_funcs_c(); - init_sub_rel_mask_color_pt_funcs_c(); -#endif -} - -static void -op_sub_rel_shutdown(void) -{ -} - -static RGBA_Gfx_Func -sub_rel_gfx_span_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_sub_rel_span_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_sub_rel_span_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Func -op_sub_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_sub_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_sub_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - s = SP; - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_sub_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Func -op_sub_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels __UNUSED__) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; - - if (src && src->cache_entry.flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_rel_gfx_span_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -sub_rel_gfx_pt_func_cpu(int s, int m, int c, int d) -{ - RGBA_Gfx_Pt_Func func = NULL; - int cpu = CPU_N; -#ifdef BUILD_MMX - if (evas_common_cpu_has_feature(CPU_FEATURE_MMX)) - { - cpu = CPU_MMX; - func = op_sub_rel_pt_funcs[s][m][c][d][cpu]; - if (func) return func; - } -#endif -#ifdef BUILD_C - cpu = CPU_C; - func = op_sub_rel_pt_funcs[s][m][c][d][cpu]; - if (func) return func; -#endif - return func; -} - -static RGBA_Gfx_Pt_Func -op_sub_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_sub_rel_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_sub_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_sub_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst) -{ - int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; - - if ((col >> 24) < 255) - c = SC; - if (col == (col | 0x00ffffff)) - c = SC_AA; - if (col == 0xffffffff) - c = SC_N; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_rel_gfx_pt_func_cpu(s, m, c, d); -} - -static RGBA_Gfx_Pt_Func -op_sub_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) -{ - int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; - - if (src_flags.alpha) - s = SP; - if (dst && dst->cache_entry.flags.alpha) - d = DP; - return sub_rel_gfx_pt_func_cpu(s, m, c, d); -} diff --git a/libraries/evas/src/lib/engines/common/evas_pipe.c b/libraries/evas/src/lib/engines/common/evas_pipe.c deleted file mode 100644 index 66085c8..0000000 --- a/libraries/evas/src/lib/engines/common/evas_pipe.c +++ /dev/null @@ -1,1733 +0,0 @@ -// THIS IS DEPRECATED. WILL GO EVENTUALLTY. NO NEED TO SUPPORT ANYMORE - -#include "evas_common.h" -#include - -#ifdef BUILD_PIPE_RENDER - -#ifdef EVAS_FRAME_QUEUING -#define SCALECACHE -static Evas_FrameQ gframeq; // global frameQ - -static Evas_Surface * -evas_common_surface_alloc(void *surface, int x, int y, int w, int h) -{ - Evas_Surface *e_surface; - - e_surface = calloc(1, sizeof(Evas_Surface)); - e_surface->im = surface; - LKL(e_surface->im->cache_entry.ref_fq_add); - e_surface->im->cache_entry.ref_fq[0]++; - LKU(e_surface->im->cache_entry.ref_fq_add); - e_surface->x = x; - e_surface->y = y; - e_surface->w = w; - e_surface->h = h; - - return e_surface; -} - -static void -evas_common_surface_dealloc(Evas_Surface *surface) -{ - Evas_Surface *d_surface; - - while (surface) - { - d_surface = surface; - surface = (Evas_Surface *)eina_inlist_remove(EINA_INLIST_GET(surface), EINA_INLIST_GET(d_surface)); - LKL(d_surface->im->cache_entry.ref_fq_del); - d_surface->im->cache_entry.ref_fq[1]++; - LKU(d_surface->im->cache_entry.ref_fq_del); - free(d_surface); - } -} - -static void -evas_common_surface_add(Evas_Frame *frame, Evas_Surface *surface) -{ - frame->surfaces = (Evas_Surface *)eina_inlist_append(EINA_INLIST_GET(frame->surfaces), EINA_INLIST_GET(surface)); -} - -static Evas_Frame * -evas_common_frame_alloc(void) -{ - Evas_Frame *frame; - - frame = calloc(1, sizeof(Evas_Frame)); - frame->surfaces = NULL; - return frame; -} - -static void -evas_common_frame_dealloc(Evas_Frame *frame) -{ - evas_common_surface_dealloc(frame->surfaces); - free(frame); -} - -static void -evas_common_frame_add(Evas_FrameQ *frameq, Evas_Frame *frame) -{ - Evas_Frame *temp_frame; - - LKL(frameq->mutex); - while ((int)eina_inlist_count(EINA_INLIST_GET(frameq->frames)) >= frameq->frameq_sz) - { - /* wait a worker thread finish previous frame */ - eina_condition_wait(&(frameq->cond_done)); - } - frameq->frames = (Evas_Frame *) eina_inlist_append(EINA_INLIST_GET(frameq->frames), EINA_INLIST_GET(frame)); - - // this frame need not to be scheduled for flushing time - EINA_INLIST_FOREACH(EINA_INLIST_GET(frameq->frames), temp_frame) - { - if (!temp_frame->ready) - { - break; - } - } - if (temp_frame && temp_frame == frame) - frame->dont_schedule = 1; - - LKU(frameq->mutex); - - eina_condition_signal(&(frameq->cond_new)); -} - -EAPI Evas_Surface * -evas_common_frameq_new_surface(void *surface, int x, int y, int w, int h) -{ - return evas_common_surface_alloc(surface, x, y, w, h); -} - -EAPI void -evas_common_frameq_add_surface(Evas_Surface *surface) -{ - evas_common_surface_add(gframeq.cur_frame, surface); -} - -EAPI void -evas_common_frameq_set_frame_data(void *data, - void (*fn_output_redraws_next_update_push) (void *data, void *surface, int x, int y, int w, int h), - void (*fn_output_flush) (void *data), - void (*fn_output_set_priv)(void *data, void *cur, void *prev)) -{ - if (gframeq.cur_frame) - { - gframeq.cur_frame->data = data; - gframeq.cur_frame->output_redraws_next_update_push = fn_output_redraws_next_update_push; - gframeq.cur_frame->output_flush = fn_output_flush; - gframeq.cur_frame->output_set_priv = fn_output_set_priv; - } -} - -EAPI void -evas_common_frameq_prepare_frame(void) -{ - if (!gframeq.cur_frame ) - { - gframeq.cur_frame = evas_common_frame_alloc(); - } -} - -EAPI void -evas_common_frameq_ready_frame(void) -{ - if (gframeq.cur_frame) - { - evas_common_frame_add(&gframeq, gframeq.cur_frame); - gframeq.cur_frame = NULL; // create a new frame for the next frame later - } -} - - -EAPI void -evas_common_frameq_init(void) -{ - gframeq.frames = NULL; - LKI(gframeq.mutex); - eina_condition_new(&(gframeq.cond_new), &(gframeq.mutex)); - eina_condition_new(&(gframeq.cond_ready), &(gframeq.mutex)); - eina_condition_new(&(gframeq.cond_done), &(gframeq.mutex)); - gframeq.initialised = 0; // worker thread are not created yet - gframeq.frameq_sz = 1; // this value ensures the first frame can be enqueued. -} - -EAPI void -evas_common_frameq_destroy(void) -{ -#if 0 // let them destroyed indirectly with program exit - LKL(gframeq.mutex); - eina_condition_free(&(gframeq.cond_new)); - eina_condition_free(&(gframeq.cond_ready)); - eina_condition_free(&(gframeq.cond_done)); - LKU(gframeq.mutex); -#endif - LKD(gframeq.mutex); - - gframeq.frames = NULL; - gframeq.initialised = 0; -} - -EAPI void -evas_common_frameq_flush(void) -{ - if (! evas_common_frameq_enabled()) - return; - - LKL(gframeq.mutex); - while(eina_inlist_count(EINA_INLIST_GET(gframeq.frames)) > 0) - { - /* wait a worker thread finish previous frame */ - eina_condition_wait(&(gframeq.cond_done)); - } - LKU(gframeq.mutex); -} - - -EAPI void -evas_common_frameq_flush_ready(void) -{ - return; -} - -EAPI int -evas_common_frameq_get_frameq_sz(void) -{ - return gframeq.frameq_sz; -} - -EAPI int -evas_common_frameq_enabled(void) -{ - return gframeq.initialised; -} -#endif - -static RGBA_Pipe *evas_common_pipe_add(RGBA_Pipe *pipe, RGBA_Pipe_Op **op); -static void evas_common_pipe_draw_context_copy(RGBA_Draw_Context *dc, RGBA_Pipe_Op *op); -static void evas_common_pipe_op_free(RGBA_Pipe_Op *op); - -/* utils */ -static RGBA_Pipe * -evas_common_pipe_add(RGBA_Pipe *rpipe, RGBA_Pipe_Op **op) -{ - RGBA_Pipe *p; - int first_pipe = 0; - - if (!rpipe) - { - first_pipe = 1; - p = calloc(1, sizeof(RGBA_Pipe)); - if (!p) return NULL; - rpipe = (RGBA_Pipe *)eina_inlist_append(EINA_INLIST_GET(rpipe), EINA_INLIST_GET(p)); - } - p = (RGBA_Pipe *)(EINA_INLIST_GET(rpipe))->last; - if (p->op_num == PIPE_LEN) - { - p = calloc(1, sizeof(RGBA_Pipe)); - if (!p) return NULL; - rpipe = (RGBA_Pipe *)eina_inlist_append(EINA_INLIST_GET(rpipe), EINA_INLIST_GET(p)); - } - p->op_num++; - *op = &(p->op[p->op_num - 1]); - if (first_pipe) - { - /* FIXME: PTHREAD init any thread locks etc */ - } - return rpipe; -} - -static void -evas_common_pipe_draw_context_copy(RGBA_Draw_Context *dc, RGBA_Pipe_Op *op) -{ - memcpy(&(op->context), dc, sizeof(RGBA_Draw_Context)); - if (op->context.cutout.active > 0) - { - op->context.cutout.rects = malloc(sizeof(Cutout_Rect) * op->context.cutout.active); - memcpy(op->context.cutout.rects, dc->cutout.rects, sizeof(Cutout_Rect) * op->context.cutout.active); - } - else - { - op->context.cutout.rects = NULL; - } -} - -static void -evas_common_pipe_op_free(RGBA_Pipe_Op *op) -{ - evas_common_draw_context_apply_clean_cutouts(&op->context.cutout); -} - -#ifdef BUILD_PTHREAD -/* main api calls */ -static void * -evas_common_pipe_thread(void *data) -{ - Thinfo *thinfo; - -// INF("TH [..........."); - thinfo = data; - for (;;) - { - RGBA_Pipe_Thread_Info *info; - RGBA_Pipe *p; - - /* wait for start signal */ -// INF(" TH %i START...", thinfo->thread_num); - pthread_barrier_wait(&(thinfo->barrier[0])); - info = thinfo->info; -// if (info) -// { -// thinfo->info = NULL; -// INF(" TH %i GO", thinfo->thread_num); - EINA_INLIST_FOREACH(EINA_INLIST_GET(info->im->cache_entry.pipe), p) - { - int i; - - for (i = 0; i < p->op_num; i++) - { - if (p->op[i].op_func) - p->op[i].op_func(info->im, &(p->op[i]), info); - } - } - free(info); -// } -// INF(" TH %i DONE", thinfo->thread_num); - /* send finished signal */ - pthread_barrier_wait(&(thinfo->barrier[1])); - } - return NULL; -} - -#ifdef EVAS_FRAME_QUEUING -static void -evas_common_frameq_release(void *data) -{ - Evas_FrameQ *frameq; - Evas_Frameq_Thread_Info *fq_info; - Thinfo *thinfo; - - thinfo = data; - fq_info = (Evas_Frameq_Thread_Info *)(thinfo->fq_info); - frameq = fq_info->frameq; - - /* This thread may or may not own the mutex. - * But there's no way to determine the ownership of the mutex, so release it anyway - */ - LKU(frameq->mutex); -} - -static void * -evas_common_frameq_thread(void *data) -{ - Evas_FrameQ *frameq; - Evas_Frame *frame; - Evas_Surface *surface; - RGBA_Pipe *p; - Thinfo *thinfo; - Evas_Frameq_Thread_Info *fq_info; - RGBA_Pipe_Thread_Info p_info; - - thinfo = data; - fq_info = (Evas_Frameq_Thread_Info *)(thinfo->fq_info); - frameq = fq_info->frameq; - - pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); - pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); - /* install thread cancelation cleanup handler */ - pthread_cleanup_push(evas_common_frameq_release, data); - - for (;;) - { - frame = NULL; - - /* 1. pick a frame to draw */ - LKL(frameq->mutex); - while(!frame) - { - EINA_INLIST_FOREACH(EINA_INLIST_GET(frameq->frames), frame) - { - if (!frame->in_process) - { - frame->in_process = 1; - break; - } - } - if (frame) - { - break; - } - pthread_testcancel(); - eina_condition_wait(&(frameq->cond_new)); - } - LKU(frameq->mutex); - - /* 2. draw selected frame */ - EINA_INLIST_FOREACH(EINA_INLIST_GET(frame->surfaces), surface) - { - p_info.im = surface->im; - p_info.x = 0; - p_info.y = 0; - p_info.w = surface->im->cache_entry.w; - p_info.h = surface->im->cache_entry.h; - - EINA_INLIST_FOREACH(EINA_INLIST_GET(p_info.im->cache_entry.pipe), p) - { - int i; - - for (i = 0; i < p->op_num; i++) - { - if (p->op[i].op_func) - { - p->op[i].op_func(p_info.im, &(p->op[i]), &p_info); - } - } - } - - /* push surface out */ - if (! surface->dontpush) - { - frame->output_redraws_next_update_push(frame->data, - surface->im, surface->x, surface->y, surface->w, surface->h); - } - } - - // record frame ready time, will be used in post worker thread, evas_common_frameq_thread_post() - gettimeofday(&frame->ready_time, NULL); - - LKL(frameq->mutex); - frame->ready = 1; - eina_condition_signal(&(frameq->cond_ready)); - LKU(frameq->mutex); - } - - // Remove cleanup handler - pthread_cleanup_pop(0); - return NULL; -} - - -#define INTERVAL_QSIZE 17 // Actual size is 'INTERVAL_QSIZE - 1' because of not using index -#define SATISFACTION_THRESHOLD 4 // 4 ms --> 250 FPS -#define RESET_RATIO 4 // RESET_RATIO * [Average Ready Gap | get_max_interval()] --> Reset Threshold -#define DOUBLE_RESET_TIME_INTERVAL_THRESHOLD 16000 // make it double in case of less 16ms -#define RESET_ABSOLUTE_INTERVAL 600000 // 600 msec - -struct iq_node -{ - long long rt; - long long ri; -}; - -static struct iq_node _IQ[INTERVAL_QSIZE]; -static int _IQ_head = 0, _IQ_tail = 0; -static int _IQ_length = 0; -static long long min_ready, max_ready; -static long long average_interval; - -static int -_IQ_next_index(int i) -{ - return (i + 1) % INTERVAL_QSIZE; -} - -static int -_IQ_previous_index(int i) -{ - if (--i < 0) i += INTERVAL_QSIZE; - return i; -} - -static void -_IQ_init(void) -{ - _IQ_length = _IQ_head = _IQ_tail = 0; - min_ready = LLONG_MAX, max_ready = LLONG_MIN; - average_interval = 0; -} - -static int -_IQ_empty(void) -{ - return (_IQ_head == _IQ_tail) ? 1 : 0; -} - -static int -_IQ_full(void) -{ - return (_IQ_head == ((_IQ_tail + 1) % INTERVAL_QSIZE)) ? 1 : 0; -} - -static void -_IQ_insert(long long ready_time, long long last_interval) -{ - if (_IQ_full()) return; - - if (_IQ_empty()) - { - if (last_interval < 0) - { - last_interval = -last_interval; - } - _IQ[_IQ_tail].rt = ready_time; - _IQ[_IQ_tail].ri = last_interval; - min_ready = ready_time - last_interval; - max_ready = ready_time; - _IQ_tail = _IQ_next_index(_IQ_tail); - _IQ_length++; - } - else - { - if (max_ready < ready_time) - { - _IQ[_IQ_tail].rt = ready_time; - _IQ[_IQ_tail].ri = ready_time - max_ready; - _IQ_tail = _IQ_next_index(_IQ_tail); - _IQ_length++; - max_ready = ready_time; - } - else if (ready_time < min_ready) - { - last_interval = _IQ[_IQ_head].ri; - _IQ[_IQ_head].ri = _IQ[_IQ_head].rt - ready_time; - _IQ_head = _IQ_previous_index(_IQ_head); - _IQ[_IQ_head].rt = ready_time; - _IQ[_IQ_head].ri = last_interval; - min_ready = ready_time; - _IQ_length++; - } - else - { - int i, j, k, l = 0; - for (i = _IQ_head; i != _IQ_tail; i = j) - { - j = _IQ_next_index(i); - if (_IQ[j].rt < ready_time) - { - continue; - } - break; - } - for (k = _IQ_tail; k != j; k = l) - { - l = _IQ_previous_index(k); - _IQ[k] = _IQ[l]; - } - i = _IQ_next_index(j); - _IQ[j].ri -= (_IQ[j].rt - ready_time); - _IQ[j].rt = ready_time; - _IQ[i].ri = _IQ[i].rt - ready_time; - _IQ_tail = _IQ_next_index(_IQ_tail); - _IQ_length++; - } - } - average_interval = (max_ready - min_ready) / _IQ_length; -} - -static long long -_IQ_delete(void) -{ - struct iq_node oldest; - - if (_IQ_empty()) return 0; - oldest = _IQ[_IQ_head]; - _IQ_head = (_IQ_head + 1) % INTERVAL_QSIZE; - if ((--_IQ_length) == 0) - { - _IQ_init(); - } - else - { - min_ready = _IQ[_IQ_head].rt; - average_interval = (max_ready - min_ready) / _IQ_length; - } - - return oldest.ri; -} - -static long long -get_max_interval(void) -{ - int i; - long long max = LLONG_MIN; - - for ( i= _IQ_head ; i != _IQ_tail ; i = _IQ_next_index(i)) - { - if (_IQ[i].ri > max) - { - max = _IQ[i].ri; - } - } - - return max; -} - -static long long -tv_to_long_long(struct timeval *tv) -{ - if (!tv) - { - return 0; - } - - return tv->tv_sec * 1000000LL + tv->tv_usec; -} - -static long long -evas_common_frameq_schedule_flush_time(int frameq_sz, int thread_no, - long long last_ready_time, long long current_ready_time, - long long last_flush_time, int ready_frames_num, - int dont_schedule) -{ - // to get each time and to do others - long long current_time = 0LL; - long long current_ready_interval = 0LL; - long long theshold_time = SATISFACTION_THRESHOLD * 1000LL; // ms -> usec - long long reset_time_interval = 0LL; - long long sleep_time = 0LL; - long long saved_ready_time, saved_ready_interval; - long long time_slept = 0LL; - static long long time_lag = 0; - struct timeval now; - int frameq_full_threshold =0; - int need_reset = 0; - int need_schedule = 0; - - frameq_full_threshold = frameq_sz -thread_no; // Qsize - threads# - - /* 1.5 defer flush time of current frame if need */ - // in case of the first time, just keep ready time only - if (last_ready_time == 0LL) - { - last_ready_time = current_ready_time; - } - else - { - /* 1.5.1 get current ready time & interval */ - saved_ready_time = current_ready_time; - saved_ready_interval = current_ready_interval = current_ready_time - last_ready_time; - // compensate a case which current ready time is older than previous one, - // doesn't work on the interval queue - if (current_ready_interval < 0) - { - current_ready_time = last_ready_time; - current_ready_interval = 0; - } - - /* 1.5.2 get the reset time interval before keeping a new one */ - if (!_IQ_empty()) - { - reset_time_interval = RESET_RATIO * average_interval; - if (average_interval < DOUBLE_RESET_TIME_INTERVAL_THRESHOLD) - { - reset_time_interval *= 2; - } - } - - /* 1.5.3 reset - if too late, discard all saved interval and start from here */ - if (current_ready_interval > RESET_ABSOLUTE_INTERVAL) - { - need_reset = 1; - } - else if (_IQ_length >= thread_no * 2 && current_ready_interval > reset_time_interval) - { - need_reset = 1; - } - else if (_IQ_length >= thread_no && _IQ_length < thread_no * 2 - && current_ready_interval > get_max_interval() * RESET_RATIO) - { - need_reset = 1; - } - - if (need_reset) - { - _IQ_init(); - } - else - { - /* 1.5.4 enqueue - keep a new interval for next average interval */ - if (_IQ_full()) - { - _IQ_delete(); - } - _IQ_insert(saved_ready_time, saved_ready_interval); - - /* 1.5.5 schedule - if faster than average interval, figure out sleep time to meet it */ - if (!dont_schedule) - { - need_schedule = 0; - sleep_time = 0; - if (_IQ_length >= thread_no * 2 && average_interval > theshold_time) - { - need_schedule = 1; - } - // compensate the case that postworker blocks the workers from getting a new fresh frame - // It's actually occurred when during the wait time of postworker, the frame queue is full - // Consequently check the number of currently ready frames and apply some time drop to average time according to the number - if (ready_frames_num >= frameq_full_threshold) - { - need_schedule = 0; - } - if (need_schedule) - { - gettimeofday(&now, NULL); - current_time = tv_to_long_long(&now); - time_lag += (current_time - last_flush_time); - sleep_time = (average_interval < time_lag) ? 0 : (average_interval - time_lag); - } - } - - /* 1.5.6 sleep - actually sleep and get over-slept time (time_lag) for next frame */ - if (sleep_time > 0) - { - sleep_time = sleep_time * 9 / 10; - usleep((unsigned int)sleep_time); - gettimeofday(&now, NULL); - time_slept = tv_to_long_long(&now) - current_time; - time_lag = time_slept - sleep_time; - } - else - { - time_lag = 0; - } - } - last_ready_time = current_ready_time; - } - - return last_ready_time; -} - -static void * -evas_common_frameq_thread_post(void *data) -{ - Evas_FrameQ *frameq; - Evas_Frame *frame; - Evas_Surface *surface; - Thinfo *thinfo; - Evas_Frameq_Thread_Info *fq_info; - Eina_List *pending_writes = NULL; - Eina_List *prev_pending_writes = NULL; - - long long last_ready_time = 0LL; - long long current_ready_time; - Evas_Frame *temp_frame = NULL; - int ready_frames_num; - long long last_flush_time = 0LL; - struct timeval now; - int dont_schedule = 0; - - thinfo = data; - fq_info = (Evas_Frameq_Thread_Info *)(thinfo->fq_info); - frameq = fq_info->frameq; - - pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); - pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL); - /* install thread cancelation cleanup handler */ - pthread_cleanup_push(evas_common_frameq_release, data); - - _IQ_init(); - - for (;;) - { - /* 1. wait the first frame being done */ - LKL(frameq->mutex); - while(!frameq->frames || !frameq->frames->ready) - { - eina_condition_wait(&(frameq->cond_ready)); - } - frame = frameq->frames; - - /* 1.5. prepare to schedule flush time */ - current_ready_time = tv_to_long_long(&frame->ready_time); - ready_frames_num = 0; - EINA_INLIST_FOREACH(EINA_INLIST_GET(frameq->frames), temp_frame) - { - if (temp_frame->ready == 1) - { - ready_frames_num++; - } - } - dont_schedule = (frame->dont_schedule)?1:0; - LKU(frameq->mutex); - - /* 2. generate pending_writes */ - EINA_INLIST_FOREACH(EINA_INLIST_GET(frame->surfaces), surface) - { - evas_common_pipe_flush(surface->im); - if (! surface->dontpush) - { - pending_writes = eina_list_append(pending_writes, surface->im); - } - } - - /* 2.5. schedule flush time */ - last_ready_time = evas_common_frameq_schedule_flush_time( - frameq->frameq_sz, frameq->thread_num, - last_ready_time, current_ready_time, - last_flush_time, ready_frames_num, dont_schedule); - - /* 3. flush redraws */ - frame->output_set_priv(frame->data, pending_writes, prev_pending_writes); - frame->output_flush(frame->data); - gettimeofday(&now, NULL); - // keep as the last flush time - last_flush_time = now.tv_sec * 1000000LL + now.tv_usec; - - prev_pending_writes = pending_writes; - pending_writes = NULL; - - /* 4. remove this frame from the frame queue */ - LKL(frameq->mutex); - frameq->frames = - (Evas_Frame *)eina_inlist_remove(EINA_INLIST_GET(frameq->frames), - EINA_INLIST_GET(frame)); - - LKU(frameq->mutex); - eina_condition_broadcast(&frameq->cond_done); - evas_common_frame_dealloc(frame); - } - - // Remove cleanup handler - pthread_cleanup_pop(0); - return NULL; -} - -#endif /* EVAS_FRAME_QUEUING */ -#endif - -#ifdef BUILD_PTHREAD -static int thread_num = 0; -static Thinfo thinfo[TH_MAX]; -static pthread_barrier_t thbarrier[2]; -#endif - -static void -evas_common_pipe_begin(RGBA_Image *im) -{ -#ifdef BUILD_PTHREAD - int i, y, h; - -#ifdef EVAS_FRAME_QUEUING - return; -#endif - - if (!im->cache_entry.pipe) return; - if (thread_num == 1) return; - y = 0; - h = im->cache_entry.h / thread_num; - if (h < 1) h = 1; - for (i = 0; i < thread_num; i++) - { - RGBA_Pipe_Thread_Info *info; - -// if (y >= im->cache_entry.h) break; - info = calloc(1, sizeof(RGBA_Pipe_Thread_Info)); - info->im = im; -#ifdef EVAS_SLI - info->x = 0; - info->w = im->cache_entry.w; - info->y = i; - info->h = thread_num; -#else - info->x = 0; - info->y = y; - info->w = im->cache_entry.w; - if (i == (thread_num - 1)) - { - info->h = im->cache_entry.h - y; - } - else - { - info->h = h; - } - y += info->h; -#endif - thinfo[i].info = info; - } - /* tell worker threads to start */ - pthread_barrier_wait(&(thbarrier[0])); -#endif -} - -#ifdef EVAS_FRAME_QUEUING -EAPI void -evas_common_frameq_begin(void) -{ -#ifdef BUILD_PTHREAD - int i; - Evas_Frameq_Thread_Info *fp_info; - pthread_attr_t attr; - cpu_set_t cpu; - - if (!gframeq.initialised) - { - int cpunum, set_cpu_affinity = 0; - - cpunum = eina_cpu_count(); - gframeq.thread_num = cpunum; - gframeq.frameq_sz = cpunum * FRAMEQ_SZ_PER_THREAD; - - eina_threads_init(); - - for (i = 0; i < gframeq.thread_num; i++) - { - - fp_info = calloc(1, sizeof(Evas_Frameq_Thread_Info)); - fp_info->frameq = &gframeq; - - gframeq.thinfo[i].thread_num = i; - gframeq.thinfo[i].fq_info = fp_info; - - pthread_attr_init(&attr); - if (set_cpu_affinity) - { - CPU_ZERO(&cpu); - CPU_SET((i+1) % cpunum, &cpu); - pthread_attr_setaffinity_np(&attr, sizeof(cpu), &cpu); - } - - pthread_create(&(gframeq.thinfo[i].thread_id), &attr, - evas_common_frameq_thread, &(gframeq.thinfo[i])); - - pthread_attr_destroy(&attr); - pthread_detach(gframeq.thinfo[i].thread_id); - } - - { - fp_info = calloc(1, sizeof(Evas_Frameq_Thread_Info)); - fp_info->frameq = &gframeq; - - gframeq.thinfo[i].thread_num = i; - gframeq.thinfo[i].fq_info = fp_info; - - pthread_attr_init(&attr); - if (set_cpu_affinity) - { - CPU_ZERO(&cpu); - CPU_SET((i+1) % cpunum, &cpu); - pthread_attr_setaffinity_np(&attr, sizeof(cpu), &cpu); - } - - pthread_create(&(gframeq.thinfo[i].thread_id), &attr, - evas_common_frameq_thread_post, &(gframeq.thinfo[i])); - pthread_attr_destroy(&attr); - pthread_detach(gframeq.thinfo[i].thread_id); - } - gframeq.initialised = 1; // now worker threads are created. - - INF("initialised"); - DBG("%d cpus, set_cpu_affinity=%d, frameq_sz=%d", - cpunum, set_cpu_affinity, gframeq.frameq_sz); - } -#endif /* BUILD_PTHREAD */ -} - -EAPI void -evas_common_frameq_finish(void) -{ - int i; - - /* 1. cancel all worker threads */ - for (i = 0; i < gframeq.thread_num; i++) - { - pthread_cancel(gframeq.thinfo[i].thread_id); - } - // cancel post-worker thread - pthread_cancel(gframeq.thinfo[i].thread_id); - - /* 2. send signal to worker threads so that they enter to the thread cancelation cleanup handler */ - for (i = 0; i < gframeq.thread_num; i++) - { - eina_condition_signal(&(gframeq.cond_new)); - } - // send signal to post-worker thread - eina_condition_signal(&(gframeq.cond_ready)); - - /* all the workers were created and detached before - * so don't need to join them here. - */ - -} - -#endif /* EVAS_FRAME_QUEUING */ - -EAPI void -evas_common_pipe_flush(RGBA_Image *im) -{ - if (!im->cache_entry.pipe) return; -#ifndef EVAS_FRAME_QUEUING -#ifdef BUILD_PTHREAD - if (thread_num > 1) - { - /* sync worker threads */ - pthread_barrier_wait(&(thbarrier[1])); - } - else -#endif - { - RGBA_Pipe *p; - int i; - - /* process pipe - 1 thead */ - for (p = im->cache_entry.pipe; p; p = (RGBA_Pipe *)(EINA_INLIST_GET(p))->next) - { - for (i = 0; i < p->op_num; i++) - { - if (p->op[i].op_func) - { - p->op[i].op_func(im, &(p->op[i]), NULL); - } - } - } - } -#endif /* !EVAS_FRAME_QUEUING */ - evas_common_cpu_end_opt(); - evas_common_pipe_free(im); -} - -EAPI void -evas_common_pipe_free(RGBA_Image *im) -{ - - RGBA_Pipe *p; - int i; - - if (!im->cache_entry.pipe) return; - /* FIXME: PTHREAD join all threads here (if not finished) */ - - /* free pipe */ - while (im->cache_entry.pipe) - { - p = im->cache_entry.pipe; - for (i = 0; i < p->op_num; i++) - { - if (p->op[i].free_func) - { - p->op[i].free_func(&(p->op[i])); - } - } - im->cache_entry.pipe = (RGBA_Pipe *)eina_inlist_remove(EINA_INLIST_GET(im->cache_entry.pipe), EINA_INLIST_GET(p)); - free(p); - } -} - - - -/* draw ops */ -/**************** RECT ******************/ -static void -evas_common_pipe_rectangle_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Thread_Info *info) -{ - if (info) - { - RGBA_Draw_Context context; - - memcpy(&(context), &(op->context), sizeof(RGBA_Draw_Context)); -#ifdef EVAS_SLI - evas_common_draw_context_set_sli(&(context), info->y, info->h); -#else - evas_common_draw_context_clip_clip(&(context), info->x, info->y, info->w, info->h); -#endif - evas_common_rectangle_draw(dst, &(context), - op->op.rect.x, op->op.rect.y, - op->op.rect.w, op->op.rect.h); - } - else - { - evas_common_rectangle_draw(dst, &(op->context), - op->op.rect.x, op->op.rect.y, - op->op.rect.w, op->op.rect.h); - } -} - -EAPI void -evas_common_pipe_rectangle_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h) -{ - RGBA_Pipe_Op *op; - - if ((w < 1) || (h < 1)) return; - dst->cache_entry.pipe = evas_common_pipe_add(dst->cache_entry.pipe, &op); - if (!dst->cache_entry.pipe) return; - op->op.rect.x = x; - op->op.rect.y = y; - op->op.rect.w = w; - op->op.rect.h = h; - op->op_func = evas_common_pipe_rectangle_draw_do; - op->free_func = evas_common_pipe_op_free; - evas_common_pipe_draw_context_copy(dc, op); -} - -/**************** LINE ******************/ -static void -evas_common_pipe_line_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Thread_Info *info) -{ - if (info) - { - RGBA_Draw_Context context; - - memcpy(&(context), &(op->context), sizeof(RGBA_Draw_Context)); -#ifdef EVAS_SLI - evas_common_draw_context_set_sli(&(context), info->y, info->h); -#else - evas_common_draw_context_clip_clip(&(context), info->x, info->y, info->w, info->h); -#endif - evas_common_line_draw(dst, &(context), - op->op.line.x0, op->op.line.y0, - op->op.line.x1, op->op.line.y1); - } - else - { - evas_common_line_draw(dst, &(op->context), - op->op.line.x0, op->op.line.y0, - op->op.line.x1, op->op.line.y1); - } -} - -EAPI void -evas_common_pipe_line_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, - int x0, int y0, int x1, int y1) -{ - RGBA_Pipe_Op *op; - - dst->cache_entry.pipe = evas_common_pipe_add(dst->cache_entry.pipe, &op); - if (!dst->cache_entry.pipe) return; - op->op.line.x0 = x0; - op->op.line.y0 = y0; - op->op.line.x1 = x1; - op->op.line.y1 = y1; - op->op_func = evas_common_pipe_line_draw_do; - op->free_func = evas_common_pipe_op_free; - evas_common_pipe_draw_context_copy(dc, op); -} - -/**************** POLY ******************/ -static void -evas_common_pipe_op_poly_free(RGBA_Pipe_Op *op) -{ - RGBA_Polygon_Point *p; - - while (op->op.poly.points) - { - p = op->op.poly.points; - op->op.poly.points = (RGBA_Polygon_Point *)eina_inlist_remove(EINA_INLIST_GET(op->op.poly.points), - EINA_INLIST_GET(p)); - free(p); - } - evas_common_pipe_op_free(op); -} - -static void -evas_common_pipe_poly_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Thread_Info *info) -{ - if (info) - { - RGBA_Draw_Context context; - - memcpy(&(context), &(op->context), sizeof(RGBA_Draw_Context)); -#ifdef EVAS_SLI - evas_common_draw_context_set_sli(&(context), info->y, info->h); -#else - evas_common_draw_context_clip_clip(&(context), info->x, info->y, info->w, info->h); -#endif - evas_common_polygon_draw(dst, &(context), - op->op.poly.points, 0, 0); - } - else - { - evas_common_polygon_draw(dst, &(op->context), - op->op.poly.points, 0, 0); - } -} - -EAPI void -evas_common_pipe_poly_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, - RGBA_Polygon_Point *points, int x, int y) -{ - RGBA_Pipe_Op *op; - RGBA_Polygon_Point *pts = NULL, *p, *pp; - - if (!points) return; - dst->cache_entry.pipe = evas_common_pipe_add(dst->cache_entry.pipe, &op); - if (!dst->cache_entry.pipe) return; - /* FIXME: copy points - maybe we should refcount? */ - for (p = points; p; p = (RGBA_Polygon_Point *)(EINA_INLIST_GET(p))->next) - { - pp = calloc(1, sizeof(RGBA_Polygon_Point)); - if (pp) - { - pp->x = p->x + x; - pp->y = p->y + y; - pts = (RGBA_Polygon_Point *)eina_inlist_append(EINA_INLIST_GET(pts), EINA_INLIST_GET(pp)); - } - } - op->op.poly.points = pts; - op->op_func = evas_common_pipe_poly_draw_do; - op->free_func = evas_common_pipe_op_poly_free; - evas_common_pipe_draw_context_copy(dc, op); -} - -/**************** TEXT ******************/ -static void -evas_common_pipe_op_text_free(RGBA_Pipe_Op *op) -{ -#ifdef EVAS_FRAME_QUEUING - LKL(op->op.text.font->ref_fq_del); - op->op.text.font->ref_fq[1]++; - LKU(op->op.text.font->ref_fq_del); - eina_condition_signal(&(op->op.text.font->cond_fq_del)); -#else - evas_common_font_free(op->op.text.font); -#endif - evas_common_text_props_content_unref(&(op->op.text.intl_props)); - evas_common_pipe_op_free(op); -} - -#ifdef EVAS_FRAME_QUEUING -/* flush all op using @fn */ -EAPI void -evas_common_pipe_op_text_flush(RGBA_Font *fn) -{ - if (! evas_common_frameq_enabled()) - return; - - LKL(fn->ref_fq_add); - LKL(fn->ref_fq_del); - - while (fn->ref_fq[0] != fn->ref_fq[1]) - eina_condition_wait(&(fn->cond_fq_del)); - - LKU(fn->ref_fq_del); - LKU(fn->ref_fq_add); -} -#endif - -static void -evas_common_pipe_text_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Thread_Info *info) -{ - if (info) - { - RGBA_Draw_Context context; - - memcpy(&(context), &(op->context), sizeof(RGBA_Draw_Context)); -#ifdef EVAS_SLI - evas_common_draw_context_set_sli(&(context), info->y, info->h); -#else - evas_common_draw_context_clip_clip(&(context), info->x, info->y, info->w, info->h); -#endif - evas_common_font_draw(dst, &(context), - op->op.text.font, op->op.text.x, op->op.text.y, - &op->op.text.intl_props); - } - else - { - evas_common_font_draw(dst, &(op->context), - op->op.text.font, op->op.text.x, op->op.text.y, - &op->op.text.intl_props); - } -} - -EAPI void -evas_common_pipe_text_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, - RGBA_Font *fn, int x, int y, const Evas_Text_Props *intl_props) -{ - RGBA_Pipe_Op *op; - - if (!fn) return; - dst->cache_entry.pipe = evas_common_pipe_add(dst->cache_entry.pipe, &op); - if (!dst->cache_entry.pipe) return; - op->op.text.x = x; - op->op.text.y = y; - evas_common_text_props_content_copy_and_ref(&(op->op.text.intl_props), - intl_props); -#ifdef EVAS_FRAME_QUEUING - LKL(fn->ref_fq_add); - fn->ref_fq[0]++; - LKU(fn->ref_fq_add); -#else - fn->references++; -#endif - op->op.text.font = fn; - op->op_func = evas_common_pipe_text_draw_do; - op->free_func = evas_common_pipe_op_text_free; - evas_common_pipe_draw_context_copy(dc, op); -} - -/**************** IMAGE *****************/ -static void -evas_common_pipe_op_image_free(RGBA_Pipe_Op *op) -{ -#ifdef EVAS_FRAME_QUEUING - LKL(op->op.image.src->cache_entry.ref_fq_del); - op->op.image.src->cache_entry.ref_fq[1]++; - LKU(op->op.image.src->cache_entry.ref_fq_del); - eina_condition_signal(&(op->op.image.src->cache_entry.cond_fq_del)); -#else - op->op.image.src->ref--; - if (op->op.image.src->ref == 0) - { - evas_cache_image_drop(&op->op.image.src->cache_entry); - } -#endif - evas_common_pipe_op_free(op); -} - -#ifdef EVAS_FRAME_QUEUING -EAPI void -evas_common_pipe_op_image_flush(RGBA_Image *im) -{ - if (! evas_common_frameq_enabled()) - return; - - LKL(im->cache_entry.ref_fq_add); - LKL(im->cache_entry.ref_fq_del); - - while (im->cache_entry.ref_fq[0] != im->cache_entry.ref_fq[1]) - eina_condition_wait(&(im->cache_entry.cond_fq_del)); - - LKU(im->cache_entry.ref_fq_del); - LKU(im->cache_entry.ref_fq_add); -} -#endif - -static void -evas_common_pipe_image_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Thread_Info *info) -{ - if (info) - { - RGBA_Draw_Context context; - - memcpy(&(context), &(op->context), sizeof(RGBA_Draw_Context)); -#ifdef EVAS_SLI - evas_common_draw_context_set_sli(&(context), info->y, info->h); -#else - evas_common_draw_context_clip_clip(&(context), info->x, info->y, info->w, info->h); -#endif - -#ifdef SCALECACHE - evas_common_rgba_image_scalecache_do((Image_Entry *)(op->op.image.src), - dst, &(context), - op->op.image.smooth, - op->op.image.sx, - op->op.image.sy, - op->op.image.sw, - op->op.image.sh, - op->op.image.dx, - op->op.image.dy, - op->op.image.dw, - op->op.image.dh); -#else - if (op->op.image.smooth) - { - evas_common_scale_rgba_in_to_out_clip_smooth(op->op.image.src, - dst, &(context), - op->op.image.sx, - op->op.image.sy, - op->op.image.sw, - op->op.image.sh, - op->op.image.dx, - op->op.image.dy, - op->op.image.dw, - op->op.image.dh); - } - else - { - evas_common_scale_rgba_in_to_out_clip_sample(op->op.image.src, - dst, &(context), - op->op.image.sx, - op->op.image.sy, - op->op.image.sw, - op->op.image.sh, - op->op.image.dx, - op->op.image.dy, - op->op.image.dw, - op->op.image.dh); - } -#endif - } - else - { -#ifdef SCALECACHE - evas_common_rgba_image_scalecache_do((Image_Entry *)(op->op.image.src), - dst, &(op->context), - op->op.image.smooth, - op->op.image.sx, - op->op.image.sy, - op->op.image.sw, - op->op.image.sh, - op->op.image.dx, - op->op.image.dy, - op->op.image.dw, - op->op.image.dh); -#else - if (op->op.image.smooth) - { - evas_common_scale_rgba_in_to_out_clip_smooth(op->op.image.src, - dst, &(op->context), - op->op.image.sx, - op->op.image.sy, - op->op.image.sw, - op->op.image.sh, - op->op.image.dx, - op->op.image.dy, - op->op.image.dw, - op->op.image.dh); - } - else - { - evas_common_scale_rgba_in_to_out_clip_sample(op->op.image.src, - dst, &(op->context), - op->op.image.sx, - op->op.image.sy, - op->op.image.sw, - op->op.image.sh, - op->op.image.dx, - op->op.image.dy, - op->op.image.dw, - op->op.image.dh); - } -#endif - } -} - -EAPI void -evas_common_pipe_image_draw(RGBA_Image *src, RGBA_Image *dst, - RGBA_Draw_Context *dc, int smooth, - int src_region_x, int src_region_y, - int src_region_w, int src_region_h, - int dst_region_x, int dst_region_y, - int dst_region_w, int dst_region_h) -{ - RGBA_Pipe_Op *op; - - if (!src) return; -// evas_common_pipe_flush(src); - dst->cache_entry.pipe = evas_common_pipe_add(dst->cache_entry.pipe, &op); - if (!dst->cache_entry.pipe) return; - op->op.image.smooth = smooth; - op->op.image.sx = src_region_x; - op->op.image.sy = src_region_y; - op->op.image.sw = src_region_w; - op->op.image.sh = src_region_h; - op->op.image.dx = dst_region_x; - op->op.image.dy = dst_region_y; - op->op.image.dw = dst_region_w; - op->op.image.dh = dst_region_h; -#ifdef EVAS_FRAME_QUEUING - LKL(src->cache_entry.ref_fq_add); - src->cache_entry.ref_fq[0]++; - LKU(src->cache_entry.ref_fq_add); -#else - src->ref++; -#endif - op->op.image.src = src; - op->op_func = evas_common_pipe_image_draw_do; - op->free_func = evas_common_pipe_op_image_free; - evas_common_pipe_draw_context_copy(dc, op); - -#ifdef EVAS_FRAME_QUEUING - /* laod every src image here. - * frameq utilize all cpu cores already by worker threads - * so another threads and barrier waiting can't be of any benefit. - * therefore, not instantiate loader threads. - */ - if (src->cache_entry.space == EVAS_COLORSPACE_ARGB8888) - evas_cache_image_load_data(&src->cache_entry); - evas_common_image_colorspace_normalize(src); -#else - evas_common_pipe_image_load(src); -#endif -} - -static void -evas_common_pipe_op_map_free(RGBA_Pipe_Op *op) -{ -#ifdef EVAS_FRAME_QUEUING - LKL(op->op.image.src->cache_entry.ref_fq_del); - op->op.image.src->cache_entry.ref_fq[1]++; - LKU(op->op.image.src->cache_entry.ref_fq_del); -#else - op->op.map.src->ref--; - if (op->op.map.src->ref == 0) - evas_cache_image_drop(&op->op.map.src->cache_entry); -#endif - free(op->op.map.p); - evas_common_pipe_op_free(op); -} - -static void -evas_common_pipe_map_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Thread_Info *info) -{ - if (info) - { - RGBA_Draw_Context context; - - memcpy(&(context), &(op->context), sizeof(RGBA_Draw_Context)); -#ifdef EVAS_SLI - evas_common_draw_context_set_sli(&(context), info->y, info->h); -#else - evas_common_draw_context_clip_clip(&(context), info->x, info->y, info->w, info->h); -#endif - - evas_common_map_rgba(op->op.map.src, dst, - &context, op->op.map.npoints, op->op.map.p, - op->op.map.smooth, op->op.map.level); - } - else - { - evas_common_map_rgba(op->op.map.src, dst, - &(op->context), op->op.map.npoints, op->op.map.p, - op->op.map.smooth, op->op.map.level); - } -} - -EAPI void -evas_common_pipe_map_draw(RGBA_Image *src, RGBA_Image *dst, - RGBA_Draw_Context *dc, int npoints, RGBA_Map_Point *p, - int smooth, int level) -{ - RGBA_Pipe_Op *op; - RGBA_Map_Point *pts_copy; - int i; - - if (!src) return; - pts_copy = malloc(sizeof (RGBA_Map_Point) * 4); - if (!pts_copy) return; - dst->cache_entry.pipe = evas_common_pipe_add(dst->cache_entry.pipe, &op); - if (!dst->cache_entry.pipe) - { - free(pts_copy); - return; - } - - for (i = 0; i < 4; ++i) - pts_copy[i] = p[i]; - - op->op.map.npoints = npoints; - op->op.map.smooth = smooth; - op->op.map.level = level; -#ifdef EVAS_FRAME_QUEUING - LKL(src->cache_entry.ref_fq_add); - src->cache_entry.ref_fq[0]++; - LKU(src->cache_entry.ref_fq_add); -#else - src->ref++; -#endif - op->op.map.src = src; - op->op.map.p = pts_copy; - op->op_func = evas_common_pipe_map_draw_do; - op->free_func = evas_common_pipe_op_map_free; - evas_common_pipe_draw_context_copy(dc, op); - -#ifdef EVAS_FRAME_QUEUING - /* laod every src image here. - * frameq utilize all cpu cores already by worker threads - * so another threads and barrier waiting can't be of any benefit. - * therefore, not instantiate loader threads. - */ - if (src->cache_entry.space == EVAS_COLORSPACE_ARGB8888) - evas_cache_image_load_data(&src->cache_entry); - evas_common_image_colorspace_normalize(src); -#else - evas_common_pipe_image_load(src); -#endif -} - -static void -evas_common_pipe_map_render(RGBA_Image *root) -{ - RGBA_Pipe *p; - int i; - - /* Map imply that we need to process them recursively first. */ - for (p = root->cache_entry.pipe; p; p = (RGBA_Pipe *)(EINA_INLIST_GET(p))->next) - { - for (i = 0; i < p->op_num; i++) - { - if (p->op[i].op_func == evas_common_pipe_map_draw_do) - { - if (p->op[i].op.map.src->cache_entry.pipe) - evas_common_pipe_map_render(p->op[i].op.map.src); - } - else if (p->op[i].op_func == evas_common_pipe_image_draw_do) - { - if (p->op[i].op.image.src->cache_entry.pipe) - evas_common_pipe_map_render(p->op[i].op.image.src); - } - } - } - - evas_common_pipe_begin(root); - evas_common_pipe_flush(root); -} - -#ifdef BUILD_PTHREAD -static Eina_List *task = NULL; -static Thinfo task_thinfo[TH_MAX]; -static pthread_barrier_t task_thbarrier[2]; -static LK(task_mutext); -#endif - -#ifdef BUILD_PTHREAD -static void* -evas_common_pipe_load(void *data) -{ - Thinfo *tinfo; - - tinfo = data; - for (;;) - { - /* wait for start signal */ - pthread_barrier_wait(&(tinfo->barrier[0])); - - while (task) - { - RGBA_Image *im = NULL; - - LKL(task_mutext); - im = eina_list_data_get(task); - task = eina_list_remove_list(task, task); - LKU(task_mutext); - - if (im) - { - if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888) - evas_cache_image_load_data(&im->cache_entry); - evas_common_image_colorspace_normalize(im); - - im->flags &= ~RGBA_IMAGE_TODO_LOAD; - } - } - - /* send finished signal */ - pthread_barrier_wait(&(tinfo->barrier[1])); - } - - return NULL; -} -#endif - -static volatile int bval = 0; - -static void -evas_common_pipe_image_load_do(void) -{ -#ifdef BUILD_PTHREAD - /* Notify worker thread. */ - pthread_barrier_wait(&(task_thbarrier[0])); - - /* sync worker threads */ - pthread_barrier_wait(&(task_thbarrier[1])); -#endif -} - -static Eina_Bool -evas_common_pipe_init(void) -{ -#ifdef BUILD_PTHREAD - if (thread_num == 0) - { - int cpunum; - int i; - - cpunum = eina_cpu_count(); - thread_num = cpunum; -// on single cpu we still want this initted.. otherwise we block forever -// waiting onm pthread barriers for async rendering on a single core! -// if (thread_num == 1) return EINA_FALSE; - - eina_threads_init(); - - LKI(task_mutext); - - pthread_barrier_init(&(thbarrier[0]), NULL, thread_num + 1); - pthread_barrier_init(&(thbarrier[1]), NULL, thread_num + 1); - for (i = 0; i < thread_num; i++) - { - pthread_attr_t attr; - cpu_set_t cpu; - - pthread_attr_init(&attr); - CPU_ZERO(&cpu); - CPU_SET(i % cpunum, &cpu); - pthread_attr_setaffinity_np(&attr, sizeof(cpu), &cpu); - thinfo[i].thread_num = i; - thinfo[i].info = NULL; - thinfo[i].barrier = thbarrier; - /* setup initial locks */ - pthread_create(&(thinfo[i].thread_id), &attr, - evas_common_pipe_thread, &(thinfo[i])); - pthread_attr_destroy(&attr); - } - - pthread_barrier_init(&(task_thbarrier[0]), NULL, thread_num + 1); - pthread_barrier_init(&(task_thbarrier[1]), NULL, thread_num + 1); - for (i = 0; i < thread_num; i++) - { - pthread_attr_t attr; - cpu_set_t cpu; - - pthread_attr_init(&attr); - CPU_ZERO(&cpu); - CPU_SET(i % cpunum, &cpu); - pthread_attr_setaffinity_np(&attr, sizeof(cpu), &cpu); - task_thinfo[i].thread_num = i; - task_thinfo[i].info = NULL; - task_thinfo[i].barrier = task_thbarrier; - /* setup initial locks */ - pthread_create(&(task_thinfo[i].thread_id), &attr, - evas_common_pipe_load, &(task_thinfo[i])); - pthread_attr_destroy(&attr); - } - } - - if (thread_num == 1) return EINA_FALSE; - return EINA_TRUE; -#endif - return EINA_FALSE; -} - -EAPI void -evas_common_pipe_image_load(RGBA_Image *im) -{ - if (im->flags & RGBA_IMAGE_TODO_LOAD) - return ; - - if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888 - && !evas_cache_image_is_loaded(&(im->cache_entry))) - goto add_task; - - if ((!im->cs.data) || ((!im->cs.dirty) && (!(im->flags & RGBA_IMAGE_IS_DIRTY)))) - goto add_task; - - return ; - - add_task: - task = eina_list_append(task, im); - im->flags |= RGBA_IMAGE_TODO_LOAD; -} - -EAPI void -evas_common_pipe_map_begin(RGBA_Image *root) -{ - if (!evas_common_pipe_init()) - { - RGBA_Image *im; - - EINA_LIST_FREE(task, im) - { - if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888) - evas_cache_image_load_data(&im->cache_entry); - evas_common_image_colorspace_normalize(im); - - im->flags &= ~RGBA_IMAGE_TODO_LOAD; - } - } - - evas_common_pipe_image_load_do(); - - evas_common_pipe_map_render(root); -} - -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_pipe.h b/libraries/evas/src/lib/engines/common/evas_pipe.h deleted file mode 100644 index 37b0136..0000000 --- a/libraries/evas/src/lib/engines/common/evas_pipe.h +++ /dev/null @@ -1,111 +0,0 @@ -#ifndef _EVAS_PIPE_H -#define _EVAS_PIPE_H - -#include -#include "language/evas_bidi_utils.h" - -#ifdef BUILD_PTHREAD -typedef struct _Thinfo -{ - int thread_num; - pthread_t thread_id; - pthread_barrier_t *barrier; - RGBA_Pipe_Thread_Info *info; -# ifdef EVAS_FRAME_QUEUING - void *fq_info; -#endif -} Thinfo; -#endif - -#ifdef EVAS_FRAME_QUEUING -struct _Evas_Surface -{ - EINA_INLIST; - RGBA_Image *im; - int x, y, w, h; - int dontpush; // dont push the surface out after drawing done -}; -typedef struct _Evas_Surface Evas_Surface; - -struct _Evas_Frame -{ - EINA_INLIST; - Evas_Surface *surfaces; - void *data; - int in_process; - int ready; - int dont_schedule; - struct timeval ready_time; - - void (*output_redraws_next_update_push) (void *data, void *surface, int x, int y, int w, int h); - void (*output_flush) (void *data); - void (*output_set_priv)(void *data, void *cur, void *prev); -}; -typedef struct _Evas_Frame Evas_Frame; - - -struct _Evas_FrameQ -{ - int initialised; - Evas_Frame *frames; - Eina_Condition cond_new; - Eina_Condition cond_ready; - Eina_Condition cond_done; - LK(mutex); - - int thread_num; - Thinfo thinfo[TH_MAX]; - int frameq_sz; - - Evas_Frame *cur_frame; -}; -typedef struct _Evas_FrameQ Evas_FrameQ; -#define FRAMEQ_SZ_PER_THREAD 2 - -struct _Evas_Frameq_Thread_Info -{ - Evas_FrameQ *frameq; -}; -typedef struct _Evas_Frameq_Thread_Info Evas_Frameq_Thread_Info; - -EAPI Evas_Surface *evas_common_frameq_new_surface(void *surface, int x, int y, int w, int h); -EAPI void evas_common_frameq_add_surface(Evas_Surface *surface); -EAPI void evas_common_frameq_set_frame_data(void *data, - void (*fn_output_redraws_next_update_push) (void *data, void *surface, int x, int y, int w, int h), - void (*fn_output_flush) (void *data), - void (*fn_output_set_priv)(void *data, void *cur, void *prev)); -EAPI void evas_common_frameq_prepare_frame(void); -EAPI void evas_common_frameq_ready_frame(void); -EAPI void evas_common_frameq_init(void); -EAPI void evas_common_frameq_destroy(void); -EAPI void evas_common_frameq_flush(void); -EAPI void evas_common_frameq_flush_ready(void); -EAPI int evas_common_frameq_get_frameq_sz(void); -EAPI int evas_common_frameq_enabled(void); -EAPI void evas_common_frameq_begin(void); -EAPI void evas_common_frameq_finish(void); -#endif - -/* image rendering pipelines... new optional system - non-immediate and - * threadable - */ - -EAPI void evas_common_pipe_free(RGBA_Image *im); -EAPI void evas_common_pipe_rectangle_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h); -EAPI void evas_common_pipe_line_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, int y1); -EAPI void evas_common_pipe_poly_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Polygon_Point *points, int x, int y); -EAPI void evas_common_pipe_text_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn, int x, int y, const Evas_Text_Props *intl_props); -EAPI void evas_common_pipe_image_load(RGBA_Image *im); -EAPI void evas_common_pipe_image_draw(RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int smooth, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h); -EAPI void evas_common_pipe_map_begin(RGBA_Image *root); -EAPI void evas_common_pipe_map_draw(RGBA_Image *src, RGBA_Image *dst, - RGBA_Draw_Context *dc, int npoints, RGBA_Map_Point *p, - int smooth, int level); -EAPI void evas_common_pipe_flush(RGBA_Image *im); - -#ifdef EVAS_FRAME_QUEUING -EAPI void evas_common_pipe_op_text_flush(RGBA_Font *fn); -EAPI void evas_common_pipe_op_image_flush(RGBA_Image *im); -#endif - -#endif /* _EVAS_PIPE_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_polygon.h b/libraries/evas/src/lib/engines/common/evas_polygon.h deleted file mode 100644 index 0695f54..0000000 --- a/libraries/evas/src/lib/engines/common/evas_polygon.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _EVAS_POLYGON_H -#define _EVAS_POLYGON_H - - -EAPI void evas_common_polygon_init (void); - -EAPI RGBA_Polygon_Point *evas_common_polygon_point_add (RGBA_Polygon_Point *points, int x, int y); -EAPI RGBA_Polygon_Point *evas_common_polygon_points_clear (RGBA_Polygon_Point *points); -EAPI void evas_common_polygon_draw (RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Polygon_Point *points, int x, int y); - - -#endif /* _EVAS_POLYGON_H */ - diff --git a/libraries/evas/src/lib/engines/common/evas_polygon_main.c b/libraries/evas/src/lib/engines/common/evas_polygon_main.c deleted file mode 100644 index 6840d60..0000000 --- a/libraries/evas/src/lib/engines/common/evas_polygon_main.c +++ /dev/null @@ -1,325 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -#include "evas_common.h" -#include "evas_blend_private.h" - -typedef struct _RGBA_Span RGBA_Span; -typedef struct _RGBA_Edge RGBA_Edge; -typedef struct _RGBA_Vertex RGBA_Vertex; - -struct _RGBA_Span -{ - EINA_INLIST; - int x, y, w; -}; - -struct _RGBA_Edge -{ - double x, dx; - int i; -}; - -struct _RGBA_Vertex -{ - double x, y; - int i; -}; - -#define POLY_EDGE_DEL(_i) \ -{ \ - int _j; \ - \ - for (_j = 0; (_j < num_active_edges) && (edges[_j].i != _i); _j++); \ - if (_j < num_active_edges) \ - { \ - num_active_edges--; \ - memmove(&(edges[_j]), &(edges[_j + 1]), \ - (num_active_edges - _j) * sizeof(RGBA_Edge)); \ - } \ -} - -#define POLY_EDGE_ADD(_i, _y) \ -{ \ - int _j; \ - float _dx; \ - RGBA_Vertex *_p, *_q; \ - if (_i < (n - 1)) _j = _i + 1; \ - else _j = 0; \ - if (point[_i].y < point[_j].y) \ - { \ - _p = &(point[_i]); \ - _q = &(point[_j]); \ - } \ - else \ - { \ - _p = &(point[_j]); \ - _q = &(point[_i]); \ - } \ - edges[num_active_edges].dx = _dx = (_q->x - _p->x) / (_q->y - _p->y); \ - edges[num_active_edges].x = (_dx * ((float)_y + 0.5 - _p->y)) + _p->x; \ - edges[num_active_edges].i = _i; \ - num_active_edges++; \ -} - -EAPI void -evas_common_polygon_init(void) -{ -} - -EAPI RGBA_Polygon_Point * -evas_common_polygon_point_add(RGBA_Polygon_Point *points, int x, int y) -{ - RGBA_Polygon_Point *pt; - - pt = malloc(sizeof(RGBA_Polygon_Point)); - if (!pt) return points; - pt->x = x; - pt->y = y; - points = (RGBA_Polygon_Point *)eina_inlist_append(EINA_INLIST_GET(points), EINA_INLIST_GET(pt)); - return points; -} - -EAPI RGBA_Polygon_Point * -evas_common_polygon_points_clear(RGBA_Polygon_Point *points) -{ - if (points) - { - while (points) - { - RGBA_Polygon_Point *old_p; - - old_p = points; - points = (RGBA_Polygon_Point *)eina_inlist_remove(EINA_INLIST_GET(points), EINA_INLIST_GET(points)); - free(old_p); - } - } - return NULL; -} - -static int -polygon_point_sorter(const void *a, const void *b) -{ - RGBA_Vertex *p, *q; - - p = (RGBA_Vertex *)a; - q = (RGBA_Vertex *)b; - if (p->y <= q->y) return -1; - return 1; -} - -static int -polygon_edge_sorter(const void *a, const void *b) -{ - RGBA_Edge *p, *q; - - p = (RGBA_Edge *)a; - q = (RGBA_Edge *)b; - if (p->x <= q->x) return -1; - return 1; -} - -EAPI void -evas_common_polygon_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Polygon_Point *points, int x, int y) -{ - RGBA_Gfx_Func func; - RGBA_Polygon_Point *pt; - RGBA_Vertex *point; - RGBA_Edge *edges; - Eina_Inlist *spans; - int num_active_edges; - int n; - int i, j, k; - int yy0, yy1, yi; - int ext_x, ext_y, ext_w, ext_h; - int *sorted_index; - -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_POLY - pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY - if (dc->render_op == _EVAS_RENDER_BLEND) - op = PIXMAN_OP_OVER; -# endif -#endif - - ext_x = 0; - ext_y = 0; - ext_w = dst->cache_entry.w; - ext_h = dst->cache_entry.h; - if (dc->clip.use) - { - if (dc->clip.x > ext_x) - { - ext_w += ext_x - dc->clip.x; - ext_x = dc->clip.x; - } - if ((ext_x + ext_w) > (dc->clip.x + dc->clip.w)) - { - ext_w = (dc->clip.x + dc->clip.w) - ext_x; - } - if (dc->clip.y > ext_y) - { - ext_h += ext_y - dc->clip.y; - ext_y = dc->clip.y; - } - if ((ext_y + ext_h) > (dc->clip.y + dc->clip.h)) - { - ext_h = (dc->clip.y + dc->clip.h) - ext_y; - } - } - if ((ext_w <= 0) || (ext_h <= 0)) return; - - evas_common_cpu_end_opt(); - - n = 0; EINA_INLIST_FOREACH(points, pt) n++; - if (n < 3) return; - edges = malloc(sizeof(RGBA_Edge) * n); - if (!edges) return; - point = malloc(sizeof(RGBA_Vertex) * n); - if (!point) - { - free(edges); - return; - } - sorted_index = malloc(sizeof(int) * n); - if (!sorted_index) - { - free(edges); - free(point); - return; - } - - k = 0; - EINA_INLIST_FOREACH(points, pt) - { - point[k].x = pt->x + x; - point[k].y = pt->y + y; - point[k].i = k; - k++; - } - qsort(point, n, sizeof(RGBA_Vertex), polygon_point_sorter); - for (k = 0; k < n; k++) sorted_index[k] = point[k].i; - k = 0; - EINA_INLIST_FOREACH(points, pt) - { - point[k].x = pt->x + x; - point[k].y = pt->y + y; - point[k].i = k; - k++; - } - - yy0 = MAX(ext_y, ceil(point[sorted_index[0]].y - 0.5)); - yy1 = MIN(ext_y + ext_h - 1, floor(point[sorted_index[n - 1]].y - 0.5)); - - k = 0; - num_active_edges = 0; - spans = NULL; - - for (yi = yy0; yi <= yy1; yi++) - { - for (; (k < n) && (point[sorted_index[k]].y <= ((double)yi + 0.5)); k++) - { - i = sorted_index[k]; - - if (i > 0) j = i - 1; - else j = n - 1; - if (point[j].y <= ((double)yi - 0.5)) - { - POLY_EDGE_DEL(j) - } - else if (point[j].y > ((double)yi + 0.5)) - { - POLY_EDGE_ADD(j, yi) - } - if (i < (n - 1)) j = i + 1; - else j = 0; - if (point[j].y <= ((double)yi - 0.5)) - { - POLY_EDGE_DEL(i) - } - else if (point[j].y > ((double)yi + 0.5)) - { - POLY_EDGE_ADD(i, yi) - } - } - - qsort(edges, num_active_edges, sizeof(RGBA_Edge), polygon_edge_sorter); - - for (j = 0; j < num_active_edges; j += 2) - { - int x0, x1; - - x0 = ceil(edges[j].x - 0.5); - if (j < (num_active_edges - 1)) - x1 = floor(edges[j + 1].x - 0.5); - else - x1 = x0; - if ((x1 >= ext_x) && (x0 < (ext_x + ext_w)) && (x0 <= x1)) - { - RGBA_Span *span; - - if (x0 < ext_x) x0 = ext_x; - if (x1 >= (ext_x + ext_w)) x1 = ext_x + ext_w - 1; - span = malloc(sizeof(RGBA_Span)); - spans = eina_inlist_append(spans, EINA_INLIST_GET(span)); - span->y = yi; - span->x = x0; - span->w = (x1 - x0) + 1; - } - edges[j].x += edges[j].dx; - edges[j + 1].x += edges[j + 1].dx; - } - } - - free(edges); - free(point); - free(sorted_index); - - func = evas_common_gfx_func_composite_color_span_get(dc->col.col, dst, 1, dc->render_op); - if (spans) - { - RGBA_Span *span; - - EINA_INLIST_FOREACH(spans, span) - { - DATA32 *ptr; - -#ifdef EVAS_SLI - if (((span->y) % dc->sli.h) == dc->sli.y) -#endif - { -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_POLY - if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (!dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - NULL, dst->pixman.im, - span->x, span->y, 0, 0, - span->x, span->y, span->w, 1); - else if ((dst->pixman.im) && (dc->col.pixman_color_image) && - (dc->mask.mask)) - pixman_image_composite(op, dc->col.pixman_color_image, - dc->mask.mask->pixman.im, - dst->pixman.im, - span->x, span->y, 0, 0, - span->x, span->y, span->w, 1); - else -# endif -#endif - { - ptr = dst->image.data + (span->y * (dst->cache_entry.w)) + span->x; - func(NULL, NULL, dc->col.col, ptr, span->w); - } - } - } - while (spans) - { - span = (RGBA_Span *)spans; - spans = eina_inlist_remove(spans, spans); - free(span); - } - } -} diff --git a/libraries/evas/src/lib/engines/common/evas_rectangle.h b/libraries/evas/src/lib/engines/common/evas_rectangle.h deleted file mode 100644 index a653b04..0000000 --- a/libraries/evas/src/lib/engines/common/evas_rectangle.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _EVAS_RECTANGLE_H -#define _EVAS_RECTANGLE_H - - -EAPI void evas_common_rectangle_init (void); - -EAPI void evas_common_rectangle_draw (RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h); - - -#endif /* _EVAS_RECTANGLE_H */ - diff --git a/libraries/evas/src/lib/engines/common/evas_rectangle_main.c b/libraries/evas/src/lib/engines/common/evas_rectangle_main.c deleted file mode 100644 index fc25fd0..0000000 --- a/libraries/evas/src/lib/engines/common/evas_rectangle_main.c +++ /dev/null @@ -1,91 +0,0 @@ -#include "evas_common.h" -#include "evas_blend_private.h" - -static void rectangle_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h); - -EAPI void -evas_common_rectangle_init(void) -{ -} - -EAPI void -evas_common_rectangle_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h) -{ - Cutout_Rects *rects; - Cutout_Rect *r; - int c, cx, cy, cw, ch; - int i; - /* handle cutouts here! */ - - if ((w <= 0) || (h <= 0)) return; - if (!(RECTS_INTERSECT(x, y, w, h, 0, 0, dst->cache_entry.w, dst->cache_entry.h))) - return; - /* save out clip info */ - c = dc->clip.use; cx = dc->clip.x; cy = dc->clip.y; cw = dc->clip.w; ch = dc->clip.h; - evas_common_draw_context_clip_clip(dc, 0, 0, dst->cache_entry.w, dst->cache_entry.h); - /* no cutouts - cut right to the chase */ - if (!dc->cutout.rects) - { - rectangle_draw_internal(dst, dc, x, y, w, h); - } - else - { - evas_common_draw_context_clip_clip(dc, x, y, w, h); - /* our clip is 0 size.. abort */ - if ((dc->clip.w > 0) && (dc->clip.h > 0)) - { - rects = evas_common_draw_context_apply_cutouts(dc); - for (i = 0; i < rects->active; ++i) - { - r = rects->rects + i; - evas_common_draw_context_set_clip(dc, r->x, r->y, r->w, r->h); - rectangle_draw_internal(dst, dc, x, y, w, h); - } - evas_common_draw_context_apply_clear_cutouts(rects); - } - } - /* restore clip info */ - dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; -} - -static void -rectangle_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h) -{ - RGBA_Gfx_Func func; - int yy; - DATA32 *ptr; - - RECTS_CLIP_TO_RECT(x, y, w, h, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); - if ((w <= 0) || (h <= 0)) return; - -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_RECT - pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY - - if (dc->render_op == _EVAS_RENDER_BLEND) - op = PIXMAN_OP_OVER; - - if ((dst->pixman.im) && (dc->col.pixman_color_image)) - { - pixman_image_composite(op, dc->col.pixman_color_image, NULL, - dst->pixman.im, x, y, 0, 0, - x, y, w, h); - } - else -# endif -#endif - { - func = evas_common_gfx_func_composite_color_span_get(dc->col.col, dst, w, dc->render_op); - ptr = dst->image.data + (y * dst->cache_entry.w) + x; - for (yy = 0; yy < h; yy++) - { -#ifdef EVAS_SLI - if (((yy + y) % dc->sli.h) == dc->sli.y) -#endif - { - func(NULL, NULL, dc->col.col, ptr, w); - } - ptr += dst->cache_entry.w; - } - } -} diff --git a/libraries/evas/src/lib/engines/common/evas_regionbuf.c b/libraries/evas/src/lib/engines/common/evas_regionbuf.c deleted file mode 100644 index f381da5..0000000 --- a/libraries/evas/src/lib/engines/common/evas_regionbuf.c +++ /dev/null @@ -1,357 +0,0 @@ -#include "evas_common.h" - -#if 0 -Regionbuf * -evas_common_regionbuf_new(int w, int h) -{ - Regionbuf *rb; - - rb = calloc(1, sizeof(Regionbuf) + (h * sizeof(Regionspan))); - if (!rb) return NULL; - rb->spans = (Regionspan **)(rb + sizeof(Regionbuf)); - rb->w = w; - rb->h = h; - return rb; -} - -void -evas_common_regionbuf_free(Regionbuf *rb) -{ - evas_common_regionbuf_clear(rb); - free(rb); -} - -void -evas_common_regionbuf_clear(Regionbuf *rb) -{ - int y; - - for (y = 0; y < rb->h; y++) - { - while (rb->spans[y]) - { - Regionspan *span; - - span = rb->spans[y]; - rb->spans[y] = eina_inlist_remove(rb->spans[y], rb->spans[y]); - free(span); - } - } -} - -void -evas_common_regionbuf_span_add(Regionbuf *rb, int x1, int x2, int y) -{ - Regionspan *span, *span2, *nspan, *sp_start, *sp_stop; - - /* abort if outside */ - if ((y < 0) || - (y >= rb->h) || - (x2 < 0) || - (x1 >= rb->w)) return; - /* clip to horiz bounds */ - if (x1 < 0) x1 = 0; - if (x2 < (rb->w - 1)) x2 = rb->w - 1; - sp_start = NULL; - sp_stop = NULL; - EINA_INLIST_FOREACH(rb->spans[y], span) - { - nspan = (Regionspan *)(EINA_INLIST_GET(span))->next; - /* we dont know what t do with the span yet */ - if (!sp_start) - { - /* if new span starts before or on this span or just after - * with no gap */ - if (x1 <= (span->x2 + 1)) - sp_start = span; - /* if there is no next span */ - if (!nspan) - { - sp_stop = span; - break; - } - /* if new span ends before the next span starts with a gap of - * 1 pixel (or more) */ - else if (x2 < (nspan->x1 - 1)) - { - sp_stop = span; - break; - } - } - /* we already know it already starts before or in sp_start */ - else - { - /* there is no span after this one, so this has to be the stop */ - if (!nspan) - { - sp_stop = span; - break; - } - /* if new span ends before the next span starts with a gap of - * 1 pixel (or more) */ - else if (x2 < (nspan->x1 - 1)) - { - sp_stop = span; - break; - } - } - } - /* sp_start is where the new span starts in or before */ - /* sp_stop is where the new span stops in or after */ - if ((sp_start) && (sp_stop)) - { - /* same start and stop */ - if (sp_start == sp_stop) - { - if (x2 < (sp_start->x1 - 1)) - { - span2 = calloc(1, sizeof(Regionspan)); - span2->x1 = x1; - span2->x2 = x2; - rb->spans[y] = eina_inlist_prepend_relative(rb->spans[y], span2, sp_start); - return; - } - if (x1 < sp_start->x1) - sp_start->x1 = x1; - if (x2 > sp_start->x2) - sp_start->x2 = x2; - return; - } - else - { - Eina_Inlist *l; - - /* remove all nodes after sp_start and before_sp_stop because - * the new */ - for (l = (EINA_INLIST_GET(sp_start))->next; l != EINA_INLIST_GET(sp_stop);) - { - span = (Regionspan *)l; - l = l->next; - rb->spans[y] = eina_inlist_remove(rb->spans[y], span); - free(span); - } - /* remove the end span */ - rb->spans[y] = eina_inlist_remove(rb->spans[y], sp_stop); - /* if the new span is before the start span - extend */ - if (x1 < sp_start->x1) - sp_start->x1 = x1; - /* if it goes beyond the stop span - extend stop span */ - if (x2 > sp_stop->x2) - sp_stop->x2 = x2; - /* extend start span to stop span */ - sp_start->x2 = sp_stop->x2; - /* don't need stop span anymore */ - free(sp_stop); - return; - } - } - /* no start AND stop... just append */ - span2 = calloc(1, sizeof(Regionspan)); - span2->x1 = x1; - span2->x2 = x2; - rb->spans[y] = eina_inlist_append(rb->spans[y], span2); -} - -void -evas_common_regionbuf_span_del(Regionbuf *rb, int x1, int x2, int y) -{ - /* FIXME: del span */ - Regionspan *span, *span2, *nspan, *sp_start, *sp_stop; - - /* abort if outside */ - if ((y < 0) || - (y >= rb->h) || - (x2 < 0) || - (x1 >= rb->w)) return; - /* clip to horiz bounds */ - if (x1 < 0) x1 = 0; - if (x2 < (rb->w - 1)) x2 = rb->w - 1; - sp_start = NULL; - sp_stop = NULL; - EINA_INLIST_FOREACH(rb->spans[y], span) - { - nspan = (Regionspan *)(EINA_INLIST_GET(l))->next; - /* we dont know what t do with the span yet */ - if (!sp_start) - { - /* if new span starts before or on this span or just after - * with no gap */ - if (x1 <= (span->x2)) - sp_start = span; - /* if there is no next span */ - if (!nspan) - { - sp_stop = span; - break; - } - /* if new span ends before the next span starts with a gap of - * 1 pixel (or more) */ - else if (x2 < nspan->x1) - { - sp_stop = span; - break; - } - } - /* we already know it already starts before or in sp_start */ - else - { - /* there is no span after this one, so this has to be the stop */ - if (!nspan) - { - sp_stop = span; - break; - } - /* if new span ends before the next span starts with a gap of - * 1 pixel (or more) */ - else if (x2 < nspan->x1) - { - sp_stop = span; - break; - } - } - } - /* sp_start is where the new span starts in or before */ - /* sp_stop is where the new span stops in or after */ - if ((sp_start) && (sp_stop)) - { - /* same start and stop */ - if (sp_start == sp_stop) - { - /* if it ends before this the span start starts... return */ - if (x2 < sp_start->x1) - return; - /* it starts on or before this span */ - else if (x1 <= sp_start->x1) - { - /* right edge is within the span */ - if (x2 < sp_start->x2) - { - sp_start->x2 = x2; - return; - } - else - { - rb->spans[y] = eina_inlist_remove(rb->spans[y], sp_start); - return; - } - } - /* it ends on or after the end of this span */ - else if (x2 >= sp_start->x2) - { - /* it starts after the start */ - if (x1 > sp_start->x1) - { - sp_start->x1 = x1; - return; - } - /* remove it all */ - else - { - rb->spans[y] = eina_inlist_remove(rb->spans[y], sp_start); - return; - } - return; - } - /* this breaks the span into 2 */ - else - { - span2 = calloc(1, sizeof(Regionspan)); - span2->x1 = sp_start->x1; - span2->x2 = x1 - 1; - rb->spans[y] = eina_inlist_prepend_relative(rb->spans[y], span2, sp_start); - sp_start->x1 = x2 + 1; - return; - } - } - else - { - Eina_Inlist *l; - - /* remove all nodes after sp_start and before_sp_stop because - * the new */ - for (l = (EINA_INLIST_GET(sp_start))->next; l != EINA_INLIST_GET(sp_stop);) - { - span = (Regionspan *)l; - l = l->next; - rb->spans[y] = eina_inlist_remove(rb->spans[y], span); - free(span); - } - /* all of the start span is cut out */ - if (x1 <= sp_start->x1) - { - rb->spans[y] = eina_inlist_remove(rb->spans[y], sp_start); - free(sp_start); - } - /* chup it off at the new span start */ - else - sp_start->x2 = x1 - 1; - /* all of the end span is cut out */ - if (x2 >= sp_stop->x2) - { - rb->spans[y] = eina_inlist_remove(rb->spans[y], sp_stop); - free(sp_stop); - } - /* chop it up at the end */ - else - sp_stop->x1 = x2 + 1; - return; - } - } -} - -Tilebuf_Rect * -evas_common_regionbuf_rects_get(Regionbuf *rb) -{ - Tilebuf_Rect *rects = NULL, *r; - int y; - - /* FIXME: take spans, make rects */ - for (y = 0; y < rb->h; y++) - { - Regionspan *sp_start; - Eina_Inlist *l, *ll; - - for (l = EINA_INLIST_GET(rb->spans[y]); l;) - { - Regionspan *span; - int yy; - - sp_start = (Regionspan *)l; - l = l->next; - rb->spans[y] = eina_inlist_remove(rb->spans[y], sp_start); - for (yy = y + 1; yy < rb->h; yy++) - { - int match = 0; - - for (ll = EINA_INLIST_GET(rb->spans[yy]); ll;) - { - span = (Regionspan *)ll; - ll = ll->next; - if (span->x1 == sp_start->x1) - { - if ((span->x1 != sp_start->x1) || - (span->x2 != sp_start->x2)) - { - goto coallate; - } - match = 1; - rb->spans[yy] = eina_inlist_remove(rb->spans[yy], span); - free(span); - } - } - if (!match) goto coallate; - } - coallate: - r = calloc(1, sizeof(Tilebuf_Rect)); - r->x = sp_start->x1; - r->y = y; - r->w = sp_start->x2 - sp_start->x1 + 1; - r->h = yy - y; - rects = eina_inlist_append(rects, r); - free(sp_start); - } - } - evas_common_regionbuf_clear(rb); - return rects; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_scale_main.c b/libraries/evas/src/lib/engines/common/evas_scale_main.c deleted file mode 100644 index 959336c..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_main.c +++ /dev/null @@ -1,6 +0,0 @@ -#include "evas_common.h" - -EAPI void -evas_common_scale_init(void) -{ -} diff --git a/libraries/evas/src/lib/engines/common/evas_scale_main.h b/libraries/evas/src/lib/engines/common/evas_scale_main.h deleted file mode 100644 index eafd9d2..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_main.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _EVAS_SCALE_MAIN_H -#define _EVAS_SCALE_MAIN_H - - -EAPI void evas_common_scale_init (void); - -EAPI void evas_common_scale_rgba_in_to_out_clip_smooth (RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h); - -EAPI void evas_common_scale_rgba_in_to_out_clip_sample (RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h); - -EAPI void evas_common_rgba_image_scalecache_dump(void); - -#endif /* _EVAS_SCALE_MAIN_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_scale_sample.c b/libraries/evas/src/lib/engines/common/evas_scale_sample.c deleted file mode 100644 index c721c5e..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_sample.c +++ /dev/null @@ -1,418 +0,0 @@ -#include "evas_common.h" -#include "evas_blend_private.h" - -void scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h); - -#ifndef BUILD_SCALE_SMOOTH -#ifdef BUILD_SCALE_SAMPLE -EAPI void -evas_common_scale_rgba_in_to_out_clip_smooth(RGBA_Image *src, RGBA_Image *dst, - RGBA_Draw_Context *dc, - int src_region_x, int src_region_y, - int src_region_w, int src_region_h, - int dst_region_x, int dst_region_y, - int dst_region_w, int dst_region_h) -{ - evas_common_scale_rgba_in_to_out_clip_sample(src, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); -} -#endif -#endif - -#ifdef BUILD_SCALE_SAMPLE -EAPI void -evas_common_scale_rgba_in_to_out_clip_sample(RGBA_Image *src, RGBA_Image *dst, - RGBA_Draw_Context *dc, - int src_region_x, int src_region_y, - int src_region_w, int src_region_h, - int dst_region_x, int dst_region_y, - int dst_region_w, int dst_region_h) -{ - Cutout_Rects *rects; - Cutout_Rect *r; - int c, cx, cy, cw, ch; - int i; - /* handle cutouts here! */ - - if ((dst_region_w <= 0) || (dst_region_h <= 0)) return; - if (!(RECTS_INTERSECT(dst_region_x, dst_region_y, dst_region_w, dst_region_h, 0, 0, dst->cache_entry.w, dst->cache_entry.h))) - return; - /* no cutouts - cut right to the chase */ - if (!dc->cutout.rects) - { - scale_rgba_in_to_out_clip_sample_internal(src, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); - return; - } - /* save out clip info */ - c = dc->clip.use; cx = dc->clip.x; cy = dc->clip.y; cw = dc->clip.w; ch = dc->clip.h; - evas_common_draw_context_clip_clip(dc, 0, 0, dst->cache_entry.w, dst->cache_entry.h); - evas_common_draw_context_clip_clip(dc, dst_region_x, dst_region_y, dst_region_w, dst_region_h); - /* our clip is 0 size.. abort */ - if ((dc->clip.w <= 0) || (dc->clip.h <= 0)) - { - dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; - return; - } - rects = evas_common_draw_context_apply_cutouts(dc); - for (i = 0; i < rects->active; ++i) - { - r = rects->rects + i; - evas_common_draw_context_set_clip(dc, r->x, r->y, r->w, r->h); - scale_rgba_in_to_out_clip_sample_internal(src, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); - - } - evas_common_draw_context_apply_clear_cutouts(rects); - /* restore clip info */ - dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; -} - -void -scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst, - RGBA_Draw_Context *dc, - int src_region_x, int src_region_y, - int src_region_w, int src_region_h, - int dst_region_x, int dst_region_y, - int dst_region_w, int dst_region_h) -{ - int x, y; - int *lin_ptr; - DATA32 *buf, *dptr; - DATA32 **row_ptr; - DATA32 *ptr, *dst_ptr, *src_data, *dst_data; - int dst_clip_x, dst_clip_y, dst_clip_w, dst_clip_h; - int m_clip_x = 0, m_clip_y = 0, m_clip_w = 0, m_clip_h = 0, mdx = 0, mdy = 0; - int src_w, src_h, dst_w, dst_h; - RGBA_Gfx_Func func; - RGBA_Image *maskobj = NULL; - DATA8 *mask = NULL; - - if (!(RECTS_INTERSECT(dst_region_x, dst_region_y, dst_region_w, dst_region_h, 0, 0, dst->cache_entry.w, dst->cache_entry.h))) - return; - if (!(RECTS_INTERSECT(src_region_x, src_region_y, src_region_w, src_region_h, 0, 0, src->cache_entry.w, src->cache_entry.h))) - return; - - src_w = src->cache_entry.w; - src_h = src->cache_entry.h; - dst_w = dst->cache_entry.w; - dst_h = dst->cache_entry.h; - - src_data = src->image.data; - dst_data = dst->image.data; - - if (dc->clip.use) - { - dst_clip_x = dc->clip.x; - dst_clip_y = dc->clip.y; - dst_clip_w = dc->clip.w; - dst_clip_h = dc->clip.h; - if (dst_clip_x < 0) - { - dst_clip_w += dst_clip_x; - dst_clip_x = 0; - } - if (dst_clip_y < 0) - { - dst_clip_h += dst_clip_y; - dst_clip_y = 0; - } - if ((dst_clip_x + dst_clip_w) > dst_w) - dst_clip_w = dst_w - dst_clip_x; - if ((dst_clip_y + dst_clip_h) > dst_h) - dst_clip_h = dst_h - dst_clip_y; - } - else - { - dst_clip_x = 0; - dst_clip_y = 0; - dst_clip_w = dst_w; - dst_clip_h = dst_h; - } - - if (dc->mask.mask) - { - m_clip_x = dc->mask.x; - m_clip_y = dc->mask.y; - m_clip_w = dc->mask.mask->cache_entry.w; - m_clip_h = dc->mask.mask->cache_entry.h; - RECTS_CLIP_TO_RECT(m_clip_x, m_clip_y, m_clip_w, m_clip_h, - dst_clip_x, dst_clip_y, dst_clip_w, dst_clip_h); - if ((m_clip_w <= 0) || (m_clip_h <= 0)) return; - dst_clip_x = m_clip_x; - dst_clip_y = m_clip_y; - dst_clip_w = m_clip_w; - dst_clip_h = m_clip_h; - } - - if (dst_clip_x < dst_region_x) - { - dst_clip_w += dst_clip_x - dst_region_x; - dst_clip_x = dst_region_x; - } - if ((dst_clip_x + dst_clip_w) > (dst_region_x + dst_region_w)) - dst_clip_w = dst_region_x + dst_region_w - dst_clip_x; - if (dst_clip_y < dst_region_y) - { - dst_clip_h += dst_clip_y - dst_region_y; - dst_clip_y = dst_region_y; - } - if ((dst_clip_y + dst_clip_h) > (dst_region_y + dst_region_h)) - dst_clip_h = dst_region_y + dst_region_h - dst_clip_y; - - if ((src_region_w <= 0) || (src_region_h <= 0) || - (dst_region_w <= 0) || (dst_region_h <= 0) || - (dst_clip_w <= 0) || (dst_clip_h <= 0)) - return; - - /* sanitise x */ - if (src_region_x < 0) - { - dst_region_x -= (src_region_x * dst_region_w) / src_region_w; - dst_region_w += (src_region_x * dst_region_w) / src_region_w; - src_region_w += src_region_x; - src_region_x = 0; - } - if (src_region_x >= src_w) return; - if ((src_region_x + src_region_w) > src_w) - { - dst_region_w = (dst_region_w * (src_w - src_region_x)) / (src_region_w); - src_region_w = src_w - src_region_x; - } - if (dst_region_w <= 0) return; - if (src_region_w <= 0) return; - if (dst_clip_x < 0) - { - dst_clip_w += dst_clip_x; - dst_clip_x = 0; - } - if (dst_clip_w <= 0) return; - if (dst_clip_x >= dst_w) return; - if (dst_clip_x < dst_region_x) - { - dst_clip_w += (dst_clip_x - dst_region_x); - dst_clip_x = dst_region_x; - } - if ((dst_clip_x + dst_clip_w) > dst_w) - { - dst_clip_w = dst_w - dst_clip_x; - } - if (dst_clip_w <= 0) return; - - /* sanitise y */ - if (src_region_y < 0) - { - dst_region_y -= (src_region_y * dst_region_h) / src_region_h; - dst_region_h += (src_region_y * dst_region_h) / src_region_h; - src_region_h += src_region_y; - src_region_y = 0; - } - if (src_region_y >= src_h) return; - if ((src_region_y + src_region_h) > src_h) - { - dst_region_h = (dst_region_h * (src_h - src_region_y)) / (src_region_h); - src_region_h = src_h - src_region_y; - } - if (dst_region_h <= 0) return; - if (src_region_h <= 0) return; - if (dst_clip_y < 0) - { - dst_clip_h += dst_clip_y; - dst_clip_y = 0; - } - if (dst_clip_h <= 0) return; - if (dst_clip_y >= dst_h) return; - if (dst_clip_y < dst_region_y) - { - dst_clip_h += (dst_clip_y - dst_region_y); - dst_clip_y = dst_region_y; - } - if ((dst_clip_y + dst_clip_h) > dst_h) - { - dst_clip_h = dst_h - dst_clip_y; - } - if (dst_clip_h <= 0) return; - - /* allocate scale lookup tables */ - lin_ptr = alloca(dst_clip_w * sizeof(int)); - row_ptr = alloca(dst_clip_h * sizeof(DATA32 *)); - - /* figure out dst jump */ - //dst_jump = dst_w - dst_clip_w; - - /* figure out dest start ptr */ - dst_ptr = dst_data + dst_clip_x + (dst_clip_y * dst_w); - - if (dc->mask.mask) - { - func = evas_common_gfx_func_composite_pixel_mask_span_get(src, dst, dst_clip_w, dc->render_op); - maskobj = dc->mask.mask; - mask = maskobj->mask.mask; -/* - if (1 || dst_region_w > src_region_w || dst_region_h > src_region_h){ - printf("Mask w/h: %d/%d\n",maskobj->cache_entry.w, - maskobj->cache_entry.h); - printf("Warning: Unscaled mask (%d/%d) // (%d/%d)\n", - dst_region_w,src_region_w, - dst_region_h,src_region_h); - } - */ - } - else if (dc->mul.use) - func = evas_common_gfx_func_composite_pixel_color_span_get(src, dc->mul.col, dst, dst_clip_w, dc->render_op); - else - func = evas_common_gfx_func_composite_pixel_span_get(src, dst, dst_clip_w, dc->render_op); - - if ((dst_region_w == src_region_w) && (dst_region_h == src_region_h)) - { -#ifdef HAVE_PIXMAN -# ifdef PIXMAN_IMAGE_SCALE_SAMPLE - if ((src->pixman.im) && (dst->pixman.im) && (!dc->mask.mask) && - ((!dc->mul.use) || - ((dc->mul.use) && (dc->mul.col == 0xffffffff))) && - ((dc->render_op == _EVAS_RENDER_COPY) || - (dc->render_op == _EVAS_RENDER_BLEND))) - { - pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY - if (dc->render_op == _EVAS_RENDER_BLEND) - op = PIXMAN_OP_OVER; - - pixman_image_composite(op, - src->pixman.im, NULL, - dst->pixman.im, - (dst_clip_x - dst_region_x) + src_region_x, - (dst_clip_y - dst_region_y) + src_region_y, - 0, 0, - dst_clip_x, dst_clip_y, - dst_clip_w, dst_clip_h); - } - else if ((src->pixman.im) && (dst->pixman.im) && - (dc->mask.mask) && (dc->mask.mask->pixman.im) && - ((dc->render_op == _EVAS_RENDER_COPY) || - (dc->render_op == _EVAS_RENDER_BLEND))) - { - // In case of pixel and color operation. - pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY - if (dc->render_op == _EVAS_RENDER_BLEND) - op = PIXMAN_OP_OVER; - - pixman_image_composite(op, - src->pixman.im, dc->mask.mask->pixman.im, - dst->pixman.im, - (dst_clip_x - dst_region_x) + src_region_x, - (dst_clip_y - dst_region_y) + src_region_y, - 0, 0, - dst_clip_x, dst_clip_y, - dst_clip_w, dst_clip_h); - } - else -# endif -#endif - { - ptr = src_data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x; - if (mask) - { - mdx = (m_clip_x - dc->mask.x) + (m_clip_x - dst_clip_x); - mdy = (m_clip_y - dc->mask.y) + (m_clip_y - dst_clip_y); - mask += mdx + (mdy * maskobj->cache_entry.w); - } - for (y = 0; y < dst_clip_h; y++) - { - /* * blend here [clip_w *] ptr -> dst_ptr * */ -#ifdef EVAS_SLI - if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y) -#endif - { - func(ptr, mask, dc->mul.col, dst_ptr, dst_clip_w); - } - ptr += src_w; - dst_ptr += dst_w; - if (mask) mask += maskobj->cache_entry.w; - } - } - } - else - { - /* fill scale tables */ - for (x = 0; x < dst_clip_w; x++) - lin_ptr[x] = (((x + dst_clip_x - dst_region_x) * src_region_w) / dst_region_w) + src_region_x; - for (y = 0; y < dst_clip_h; y++) - row_ptr[y] = src_data + (((((y + dst_clip_y - dst_region_y) * src_region_h) / dst_region_h) - + src_region_y) * src_w); - /* scale to dst */ - dptr = dst_ptr; -#ifdef DIRECT_SCALE - if ((!src->cache_entry.flags.alpha) && - (!dst->cache_entry.flags.alpha) && - (!dc->mul.use)) - { - for (y = 0; y < dst_clip_h; y++) - { -# ifdef EVAS_SLI - if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y) -# endif - { - dst_ptr = dptr; - for (x = 0; x < dst_clip_w; x++) - { - ptr = row_ptr[y] + lin_ptr[x]; - *dst_ptr = *ptr; - dst_ptr++; - } - } - dptr += dst_w; - } - } - else -#endif - { - /* a scanline buffer */ - buf = alloca(dst_clip_w * sizeof(DATA32)); - for (y = 0; y < dst_clip_h; y++) - { -#ifdef EVAS_SLI - if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y) -#endif - { - dst_ptr = buf; - for (x = 0; x < dst_clip_w; x++) - { - ptr = row_ptr[y] + lin_ptr[x]; - *dst_ptr = *ptr; - dst_ptr++; - } - /* * blend here [clip_w *] buf -> dptr * */ - func(buf, NULL, dc->mul.col, dptr, dst_clip_w); - } - dptr += dst_w; - } - } - } -} -#else -#ifdef BUILD_SCALE_SMOOTH -EAPI void -evas_common_scale_rgba_in_to_out_clip_sample(RGBA_Image *src, RGBA_Image *dst, - RGBA_Draw_Context *dc, - int src_region_x, int src_region_y, - int src_region_w, int src_region_h, - int dst_region_x, int dst_region_y, - int dst_region_w, int dst_region_h) -{ - evas_common_scale_rgba_in_to_out_clip_smooth(src, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); -} -#endif -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_scale_smooth.c b/libraries/evas/src/lib/engines/common/evas_scale_smooth.c deleted file mode 100644 index d3aada6..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_smooth.c +++ /dev/null @@ -1,532 +0,0 @@ -#include "evas_common.h" -#include "evas_scale_smooth.h" -#include "evas_blend_private.h" - -#define SCALE_CALC_X_POINTS(P, SW, DW, CX, CW) \ - P = alloca((CW + 1) * sizeof (int)); \ - scale_calc_x_points(P, SW, DW, CX, CW); - -#define SCALE_CALC_Y_POINTS(P, SRC, SW, SH, DH, CY, CH) \ - P = alloca((CH + 1) * sizeof (DATA32 *)); \ - scale_calc_y_points(P, SRC, SW, SH, DH, CY, CH); - -#define SCALE_CALC_A_POINTS(P, S, D, C, CC) \ - P = alloca(CC * sizeof (int)); \ - scale_calc_a_points(P, S, D, C, CC); - -static void scale_calc_y_points(DATA32 **p, DATA32 *src, int sw, int sh, int dh, int cy, int ch); -static void scale_calc_x_points(int *p, int sw, int dw, int cx, int cw); -static void scale_calc_a_points(int *p, int s, int d, int c, int cc); - -static void -scale_calc_y_points(DATA32** p, DATA32 *src, int sw, int sh, int dh, int cy, int ch) -{ - int i, val, inc; - if (sh > SCALE_SIZE_MAX) return; - val = 0; - inc = (sh << 16) / dh; - for (i = 0; i < dh; i++) - { - if ((i >= cy) && (i < (cy + ch))) - p[i - cy] = src + ((val >> 16) * sw); - val += inc; - } - if ((i >= cy) && (i < (cy + ch))) - p[i - cy] = p[i - cy - 1]; -} - -static void -scale_calc_x_points(int *p, int sw, int dw, int cx, int cw) -{ - int i, val, inc; - if (sw > SCALE_SIZE_MAX) return; - val = 0; - inc = (sw << 16) / dw; - for (i = 0; i < dw; i++) - { - if ((i >= cx) && (i < (cx + cw))) - p[i - cx] = val >> 16; - val += inc; - } - if ((i >= cx) && (i < (cx + cw))) - p[i - cx] = p[i - cx - 1]; -} - -static void -scale_calc_a_points(int *p, int s, int d, int c, int cc) -{ - int i, val, inc; - - if (s > SCALE_SIZE_MAX) return; - if (d >= s) - { - val = 0; - inc = (s << 16) / d; - for (i = 0; i < d; i++) - { - if ((i >= c) && (i < (c + cc))) - { - p[i - c] = (val >> 8) - ((val >> 8) & 0xffffff00); - if ((val >> 16) >= (s - 1)) p[i - c] = 0; - } - val += inc; - } - } - else - { - int ap, Cp; - - val = 0; - inc = (s << 16) / d; - Cp = ((d << 14) / s) + 1; - for (i = 0; i < d; i++) - { - ap = ((0x100 - ((val >> 8) & 0xff)) * Cp) >> 8; - if ((i >= c) && (i < (c + cc))) - p[i - c] = ap | (Cp << 16); - val += inc; - } - } -} - -#ifdef BUILD_SCALE_SMOOTH -#ifdef BUILD_C -EAPI void -evas_common_scale_rgba_mipmap_down_2x2_c(DATA32 *src, DATA32 *dst, int src_w, int src_h) -{ - int x, y, dst_w, dst_h; - DATA32 *src_ptr, *src_ptr2, *dst_ptr; - - dst_w = src_w >> 1; - dst_h = src_h >> 1; - - if (dst_w < 1) dst_w = 1; - if (dst_h < 1) dst_h = 1; - - src_ptr = src; - src_ptr2 = src + src_w; - dst_ptr = dst; - for (y = 0; y < dst_h; y++) - { - src_ptr = src + (y * src_w * 2); - src_ptr2 = src_ptr + src_w; - for (x = 0; x < dst_w; x++) - { - R_VAL(dst_ptr) = (R_VAL(src_ptr) + R_VAL(src_ptr + 1) + R_VAL(src_ptr2) + R_VAL(src_ptr2 + 1)) >> 2; - G_VAL(dst_ptr) = (G_VAL(src_ptr) + G_VAL(src_ptr + 1) + G_VAL(src_ptr2) + G_VAL(src_ptr2 + 1)) >> 2; - B_VAL(dst_ptr) = (B_VAL(src_ptr) + B_VAL(src_ptr + 1) + B_VAL(src_ptr2) + B_VAL(src_ptr2 + 1)) >> 2; - A_VAL(dst_ptr) = (A_VAL(src_ptr) + A_VAL(src_ptr + 1) + A_VAL(src_ptr2) + A_VAL(src_ptr2 + 1)) >> 2; - - src_ptr+=2; - src_ptr2+=2; - dst_ptr++; - } - } -} -#endif -#endif - -#ifdef BUILD_SCALE_SMOOTH -#ifdef BUILD_C -EAPI void -evas_common_scale_rgba_mipmap_down_2x1_c(DATA32 *src, DATA32 *dst, int src_w, int src_h) -{ - int x, y, dst_w, dst_h; - DATA32 *src_ptr, *dst_ptr; - - dst_w = src_w >> 1; - dst_h = src_h >> 1; - - if (dst_w < 1) dst_w = 1; - if (dst_h < 1) dst_h = 1; - - src_ptr = src; - dst_ptr = dst; - for (y = 0; y < dst_h; y++) - { - src_ptr = src + (y * src_w * 2); - for (x = 0; x < dst_w; x++) - { - R_VAL(dst_ptr) = (R_VAL(src_ptr) + R_VAL(src_ptr + 1)) >> 1; - G_VAL(dst_ptr) = (G_VAL(src_ptr) + G_VAL(src_ptr + 1)) >> 1; - B_VAL(dst_ptr) = (B_VAL(src_ptr) + B_VAL(src_ptr + 1)) >> 1; - A_VAL(dst_ptr) = (A_VAL(src_ptr) + A_VAL(src_ptr + 1)) >> 1; - - src_ptr+=2; - dst_ptr++; - } - } -} -#endif -#endif - -#ifdef BUILD_SCALE_SMOOTH -#ifdef BUILD_C -EAPI void -evas_common_scale_rgba_mipmap_down_1x2_c(DATA32 *src, DATA32 *dst, int src_w, int src_h) -{ - int x, y, dst_w, dst_h; - DATA32 *src_ptr, *src_ptr2, *dst_ptr; - - dst_w = src_w >> 1; - dst_h = src_h >> 1; - - if (dst_w < 1) dst_w = 1; - if (dst_h < 1) dst_h = 1; - - src_ptr = src; - dst_ptr = dst; - for (y = 0; y < dst_h; y++) - { - src_ptr = src + (y * src_w * 2); - src_ptr2 = src_ptr + src_w; - for (x = 0; x < dst_w; x++) - { - R_VAL(dst_ptr) = (R_VAL(src_ptr) + R_VAL(src_ptr2)) >> 1; - G_VAL(dst_ptr) = (G_VAL(src_ptr) + G_VAL(src_ptr2)) >> 1; - B_VAL(dst_ptr) = (B_VAL(src_ptr) + B_VAL(src_ptr2)) >> 1; - A_VAL(dst_ptr) = (A_VAL(src_ptr) + A_VAL(src_ptr2)) >> 1; - - src_ptr+=2; - src_ptr2+=2; - dst_ptr++; - } - } -} -#endif -#endif - -#ifdef BUILD_SCALE_SMOOTH -#ifdef BUILD_C -EAPI void -evas_common_scale_rgb_mipmap_down_2x2_c(DATA32 *src, DATA32 *dst, int src_w, int src_h) -{ - int x, y, dst_w, dst_h; - DATA32 *src_ptr, *src_ptr2, *dst_ptr; - - dst_w = src_w >> 1; - dst_h = src_h >> 1; - - if (dst_w < 1) dst_w = 1; - if (dst_h < 1) dst_h = 1; - - src_ptr = src; - src_ptr2 = src + src_w; - dst_ptr = dst; - for (y = 0; y < dst_h; y++) - { - for (x = 0; x < dst_w; x++) - { - R_VAL(dst_ptr) = (R_VAL(src_ptr) + R_VAL(src_ptr + 1) + R_VAL(src_ptr2) + R_VAL(src_ptr2 + 1)) >> 2; - G_VAL(dst_ptr) = (G_VAL(src_ptr) + G_VAL(src_ptr + 1) + G_VAL(src_ptr2) + G_VAL(src_ptr2 + 1)) >> 2; - B_VAL(dst_ptr) = (B_VAL(src_ptr) + B_VAL(src_ptr + 1) + B_VAL(src_ptr2) + B_VAL(src_ptr2 + 1)) >> 2; - A_VAL(dst_ptr) = 0xff; - - src_ptr+=2; - src_ptr2+=2; - dst_ptr++; - } - src_ptr += src_w; - src_ptr2 += src_w; - } -} -#endif -#endif - -#ifdef BUILD_SCALE_SMOOTH -#ifdef BUILD_C -EAPI void -evas_common_scale_rgb_mipmap_down_2x1_c(DATA32 *src, DATA32 *dst, int src_w, int src_h) -{ - int x, y, dst_w, dst_h; - DATA32 *src_ptr, *dst_ptr; - - dst_w = src_w >> 1; - dst_h = src_h >> 1; - - if (dst_w < 1) dst_w = 1; - if (dst_h < 1) dst_h = 1; - - src_ptr = src; - dst_ptr = dst; - for (y = 0; y < dst_h; y++) - { - for (x = 0; x < dst_w; x++) - { - R_VAL(dst_ptr) = (R_VAL(src_ptr) + R_VAL(src_ptr + 1)) >> 1; - G_VAL(dst_ptr) = (G_VAL(src_ptr) + G_VAL(src_ptr + 1)) >> 1; - B_VAL(dst_ptr) = (B_VAL(src_ptr) + B_VAL(src_ptr + 1)) >> 1; - A_VAL(dst_ptr) = 0xff; - - src_ptr+=2; - dst_ptr++; - } - src_ptr += src_w; - } -} -#endif -#endif - -#ifdef BUILD_SCALE_SMOOTH -#ifdef BUILD_C -EAPI void -evas_common_scale_rgb_mipmap_down_1x2_c(DATA32 *src, DATA32 *dst, int src_w, int src_h) -{ - int x, y, dst_w, dst_h; - DATA32 *src_ptr, *src_ptr2, *dst_ptr; - - dst_w = src_w >> 1; - dst_h = src_h >> 1; - - if (dst_w < 1) dst_w = 1; - if (dst_h < 1) dst_h = 1; - - src_ptr = src; - src_ptr2 = src + src_w; - dst_ptr = dst; - for (y = 0; y < dst_h; y++) - { - for (x = 0; x < dst_w; x++) - { - R_VAL(dst_ptr) = (R_VAL(src_ptr) + R_VAL(src_ptr2)) >> 1; - G_VAL(dst_ptr) = (G_VAL(src_ptr) + G_VAL(src_ptr2)) >> 1; - B_VAL(dst_ptr) = (B_VAL(src_ptr) + B_VAL(src_ptr2)) >> 1; - A_VAL(dst_ptr) = 0xff; - - src_ptr+=2; - src_ptr2+=2; - dst_ptr++; - } - src_ptr += src_w; - src_ptr2 += src_w; - } -} -#endif -#endif - -#ifdef BUILD_SCALE_SMOOTH -#ifdef BUILD_MMX -EAPI void -evas_common_scale_rgba_mipmap_down_2x2_mmx(DATA32 *src, DATA32 *dst, int src_w, int src_h) -{ - int x, y, dst_w, dst_h; - DATA32 *src_ptr, *src_ptr2, *dst_ptr; - - dst_w = src_w >> 1; - dst_h = src_h >> 1; - - if (dst_w < 1) dst_w = 1; - if (dst_h < 1) dst_h = 1; - - /* NB: Dead assignments (reassigned to different values below) - src_ptr = src; - src_ptr2 = src + src_w; - */ - - dst_ptr = dst; - for (y = 0; y < dst_h; y++) - { - src_ptr = src + (y * src_w * 2); - src_ptr2 = src_ptr + src_w; - for (x = 0; x < dst_w; x++) - { - punpcklbw_m2r(src_ptr[0], mm0); - punpcklbw_m2r(src_ptr[1], mm1); - punpcklbw_m2r(src_ptr2[0], mm2); - punpcklbw_m2r(src_ptr2[1], mm3); - psrlw_i2r(8, mm0); - psrlw_i2r(8, mm1); - psrlw_i2r(8, mm2); - psrlw_i2r(8, mm3); - paddw_r2r(mm1, mm0); - paddw_r2r(mm2, mm0); - paddw_r2r(mm3, mm0); - psrlw_i2r(2, mm0); - packuswb_r2r(mm0, mm0); - movd_r2m(mm0, dst_ptr[0]); - - src_ptr+=2; - src_ptr2+=2; - dst_ptr++; - } - } -} -#endif -#endif - -#ifdef BUILD_SCALE_SMOOTH -#ifdef BUILD_MMX -EAPI void -evas_common_scale_rgba_mipmap_down_2x1_mmx(DATA32 *src, DATA32 *dst, int src_w, int src_h) -{ - int x, y, dst_w, dst_h; - DATA32 *src_ptr, *dst_ptr; - - dst_w = src_w >> 1; - dst_h = src_h >> 1; - - if (dst_w < 1) dst_w = 1; - if (dst_h < 1) dst_h = 1; - - src_ptr = src; - dst_ptr = dst; - for (y = 0; y < dst_h; y++) - { - src_ptr = src + (y * src_w * 2); - for (x = 0; x < dst_w; x++) - { - punpcklbw_m2r(src_ptr[0], mm0); - punpcklbw_m2r(src_ptr[1], mm1); - psrlw_i2r(8, mm0); - psrlw_i2r(8, mm1); - paddw_r2r(mm1, mm0); - psrlw_i2r(1, mm0); - packuswb_r2r(mm0, mm0); - movd_r2m(mm0, dst_ptr[0]); - - src_ptr+=2; - dst_ptr++; - } - } -} -#endif -#endif - -#ifdef BUILD_SCALE_SMOOTH -#ifdef BUILD_MMX -EAPI void -evas_common_scale_rgba_mipmap_down_1x2_mmx(DATA32 *src, DATA32 *dst, int src_w, int src_h) -{ - int x, y, dst_w, dst_h; - DATA32 *src_ptr, *src_ptr2, *dst_ptr; - - dst_w = src_w >> 1; - dst_h = src_h >> 1; - - if (dst_w < 1) dst_w = 1; - if (dst_h < 1) dst_h = 1; - - /* NB: Dead assignment (gets reassigned later) */ -// src_ptr = src; - - src_ptr2 = src + src_w; - dst_ptr = dst; - for (y = 0; y < dst_h; y++) - { - src_ptr = src + (y * src_w * 2); - src_ptr2 = src_ptr + src_w; - for (x = 0; x < dst_w; x++) - { - punpcklbw_m2r(src_ptr[0], mm0); - punpcklbw_m2r(src_ptr2[0], mm1); - psrlw_i2r(8, mm0); - psrlw_i2r(8, mm1); - paddw_r2r(mm1, mm0); - psrlw_i2r(1, mm0); - packuswb_r2r(mm0, mm0); - movd_r2m(mm0, dst_ptr[0]); - - src_ptr+=2; - src_ptr2+=2; - dst_ptr++; - } - } -} -#endif -#endif - -#ifdef BUILD_SCALE_SMOOTH -# ifdef BUILD_MMX -# undef SCALE_FUNC -# define SCALE_FUNC evas_common_scale_rgba_in_to_out_clip_smooth_mmx -# undef SCALE_USING_MMX -# define SCALE_USING_MMX -# include "evas_scale_smooth_scaler.c" -# endif -# ifdef BUILD_C -# undef SCALE_FUNC -# define SCALE_FUNC evas_common_scale_rgba_in_to_out_clip_smooth_c -# undef SCALE_USING_MMX -# include "evas_scale_smooth_scaler.c" -# endif -EAPI void -evas_common_scale_rgba_in_to_out_clip_smooth(RGBA_Image *src, RGBA_Image *dst, - RGBA_Draw_Context *dc, - int src_region_x, int src_region_y, - int src_region_w, int src_region_h, - int dst_region_x, int dst_region_y, - int dst_region_w, int dst_region_h) -{ -# ifdef BUILD_MMX - int mmx, sse, sse2; -# endif - Cutout_Rects *rects; - Cutout_Rect *r; - int c, cx, cy, cw, ch; - int i; - /* handle cutouts here! */ - - if ((dst_region_w <= 0) || (dst_region_h <= 0)) return; - if (!(RECTS_INTERSECT(dst_region_x, dst_region_y, dst_region_w, dst_region_h, 0, 0, dst->cache_entry.w, dst->cache_entry.h))) - return; -# ifdef BUILD_MMX - evas_common_cpu_can_do(&mmx, &sse, &sse2); -# endif - /* no cutouts - cut right to the chase */ - if (!dc->cutout.rects) - { -# ifdef BUILD_MMX - if (mmx) - evas_common_scale_rgba_in_to_out_clip_smooth_mmx(src, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); - else -# endif -# ifdef BUILD_C - evas_common_scale_rgba_in_to_out_clip_smooth_c(src, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); -# endif - return; - } - /* save out clip info */ - c = dc->clip.use; cx = dc->clip.x; cy = dc->clip.y; cw = dc->clip.w; ch = dc->clip.h; - evas_common_draw_context_clip_clip(dc, 0, 0, dst->cache_entry.w, dst->cache_entry.h); - evas_common_draw_context_clip_clip(dc, dst_region_x, dst_region_y, dst_region_w, dst_region_h); - /* our clip is 0 size.. abort */ - if ((dc->clip.w <= 0) || (dc->clip.h <= 0)) - { - dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; - return; - } - rects = evas_common_draw_context_apply_cutouts(dc); - for (i = 0; i < rects->active; ++i) - { - r = rects->rects + i; - evas_common_draw_context_set_clip(dc, r->x, r->y, r->w, r->h); -# ifdef BUILD_MMX - if (mmx) - evas_common_scale_rgba_in_to_out_clip_smooth_mmx(src, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); - else -# endif -# ifdef BUILD_C - evas_common_scale_rgba_in_to_out_clip_smooth_c(src, dst, dc, - src_region_x, src_region_y, - src_region_w, src_region_h, - dst_region_x, dst_region_y, - dst_region_w, dst_region_h); -# endif - } - evas_common_draw_context_apply_clear_cutouts(rects); - /* restore clip info */ - dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; -} -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_scale_smooth.h b/libraries/evas/src/lib/engines/common/evas_scale_smooth.h deleted file mode 100644 index 63ced50..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_smooth.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _EVAS_SCALE_SMOOTH_H -#define _EVAS_SCALE_SMOOTH_H - -EAPI void evas_common_scale_rgba_mipmap_down_2x2_c (DATA32 *src, DATA32 *dst, int src_w, int src_h); -EAPI void evas_common_scale_rgba_mipmap_down_2x1_c (DATA32 *src, DATA32 *dst, int src_w, int src_h); -EAPI void evas_common_scale_rgba_mipmap_down_1x2_c (DATA32 *src, DATA32 *dst, int src_w, int src_h); -EAPI void evas_common_scale_rgb_mipmap_down_2x2_c (DATA32 *src, DATA32 *dst, int src_w, int src_h); -EAPI void evas_common_scale_rgb_mipmap_down_2x1_c (DATA32 *src, DATA32 *dst, int src_w, int src_h); -EAPI void evas_common_scale_rgb_mipmap_down_1x2_c (DATA32 *src, DATA32 *dst, int src_w, int src_h); - -EAPI void evas_common_scale_rgba_mipmap_down_2x2_mmx (DATA32 *src, DATA32 *dst, int src_w, int src_h); -EAPI void evas_common_scale_rgba_mipmap_down_2x1_mmx (DATA32 *src, DATA32 *dst, int src_w, int src_h); -EAPI void evas_common_scale_rgba_mipmap_down_1x2_mmx (DATA32 *src, DATA32 *dst, int src_w, int src_h); - -EAPI void evas_common_scale_rgba_in_to_out_clip_smooth_mmx (RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h); -EAPI void evas_common_scale_rgba_in_to_out_clip_smooth_c (RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h); - - -#endif /* _EVAS_SCALE_SMOOTH_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler.c b/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler.c deleted file mode 100644 index 599bfda..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler.c +++ /dev/null @@ -1,211 +0,0 @@ -void -SCALE_FUNC(RGBA_Image *src, RGBA_Image *dst, - RGBA_Draw_Context *dc, - int src_region_x, int src_region_y, - int src_region_w, int src_region_h, - int dst_region_x, int dst_region_y, - int dst_region_w, int dst_region_h) -{ - DATA32 *dst_ptr; - int dst_clip_x, dst_clip_y, dst_clip_w, dst_clip_h; - int src_w, src_h, dst_w, dst_h; - - if (!(RECTS_INTERSECT(dst_region_x, dst_region_y, dst_region_w, dst_region_h, 0, 0, dst->cache_entry.w, dst->cache_entry.h))) - return; - if (!(RECTS_INTERSECT(src_region_x, src_region_y, src_region_w, src_region_h, 0, 0, src->cache_entry.w, src->cache_entry.h))) - return; - - src_w = src->cache_entry.w; - src_h = src->cache_entry.h; - dst_w = dst->cache_entry.w; - dst_h = dst->cache_entry.h; - - if (dc->clip.use) - { - dst_clip_x = dc->clip.x; - dst_clip_y = dc->clip.y; - dst_clip_w = dc->clip.w; - dst_clip_h = dc->clip.h; - if (dst_clip_x < 0) - { - dst_clip_w += dst_clip_x; - dst_clip_x = 0; - } - if (dst_clip_y < 0) - { - dst_clip_h += dst_clip_y; - dst_clip_y = 0; - } - if ((dst_clip_w <= 0) || (dst_clip_h <= 0)) return; - if ((dst_clip_x + dst_clip_w) > dst_w) dst_clip_w = dst_w - dst_clip_x; - if ((dst_clip_y + dst_clip_h) > dst_h) dst_clip_h = dst_h - dst_clip_y; - } - else - { - dst_clip_x = 0; - dst_clip_y = 0; - dst_clip_w = dst_w; - dst_clip_h = dst_h; - } - - if (dst_clip_x < dst_region_x) - { - dst_clip_w += dst_clip_x - dst_region_x; - dst_clip_x = dst_region_x; - } - if ((dst_clip_x + dst_clip_w) > (dst_region_x + dst_region_w)) - dst_clip_w = dst_region_x + dst_region_w - dst_clip_x; - if (dst_clip_y < dst_region_y) - { - dst_clip_h += dst_clip_y - dst_region_y; - dst_clip_y = dst_region_y; - } - if ((dst_clip_y + dst_clip_h) > (dst_region_y + dst_region_h)) - dst_clip_h = dst_region_y + dst_region_h - dst_clip_y; - - if ((src_region_w <= 0) || (src_region_h <= 0) || - (dst_region_w <= 0) || (dst_region_h <= 0) || - (dst_clip_w <= 0) || (dst_clip_h <= 0)) - return; - - /* sanitise x */ - if (src_region_x < 0) - { - dst_region_x -= (src_region_x * dst_region_w) / src_region_w; - dst_region_w += (src_region_x * dst_region_w) / src_region_w; - src_region_w += src_region_x; - src_region_x = 0; - } - if (src_region_x >= src_w) return; - if ((src_region_x + src_region_w) > src_w) - { - dst_region_w = (dst_region_w * (src_w - src_region_x)) / (src_region_w); - src_region_w = src_w - src_region_x; - } - if (dst_region_w <= 0) return; - if (src_region_w <= 0) return; - if (dst_clip_x < 0) - { - dst_clip_w += dst_clip_x; - dst_clip_x = 0; - } - if (dst_clip_w <= 0) return; - if (dst_clip_x >= dst_w) return; - if (dst_clip_x < dst_region_x) - { - dst_clip_w += (dst_clip_x - dst_region_x); - dst_clip_x = dst_region_x; - } - if ((dst_clip_x + dst_clip_w) > dst_w) - { - dst_clip_w = dst_w - dst_clip_x; - } - if (dst_clip_w <= 0) return; - - /* sanitise y */ - if (src_region_y < 0) - { - dst_region_y -= (src_region_y * dst_region_h) / src_region_h; - dst_region_h += (src_region_y * dst_region_h) / src_region_h; - src_region_h += src_region_y; - src_region_y = 0; - } - if (src_region_y >= src_h) return; - if ((src_region_y + src_region_h) > src_h) - { - dst_region_h = (dst_region_h * (src_h - src_region_y)) / (src_region_h); - src_region_h = src_h - src_region_y; - } - if (dst_region_h <= 0) return; - if (src_region_h <= 0) return; - if (dst_clip_y < 0) - { - dst_clip_h += dst_clip_y; - dst_clip_y = 0; - } - if (dst_clip_h <= 0) return; - if (dst_clip_y >= dst_h) return; - if (dst_clip_y < dst_region_y) - { - dst_clip_h += (dst_clip_y - dst_region_y); - dst_clip_y = dst_region_y; - } - if ((dst_clip_y + dst_clip_h) > dst_h) - { - dst_clip_h = dst_h - dst_clip_y; - } - if (dst_clip_h <= 0) return; - - /* some maximum region sizes to avoid insane calc point tables */ - if (dst_clip_w > 65536) return; - if (dst_clip_h > 65536) return; - if (dst_region_w > (65536 * 1024)) return; - if (dst_region_h > (65536 * 1024)) return; - - /* figure out dst jump - * NB: Unused currently, so commented out */ -// dst_jump = dst_w - dst_clip_w; - - /* figure out dest start ptr */ - dst_ptr = dst->image.data + dst_clip_x + (dst_clip_y * dst_w); - -/* FIXME: - * - * things to do later for speedups: - * - * break upscale into 3 cases (as listed below - up:up, 1:up, up:1) - * - * break downscale into more cases (as listed below) - * - * roll func (blend/copy/cultiply/cmod) code into inner loop of scaler. - * (578 fps vs 550 in mmx upscale in evas demo - this means probably - * a good 10-15% speedup over the func call, but means massively larger - * code) - * - * anything involving downscaling has no mmx equivalent code and maybe the - * C could do with a little work. - * - * --------------------------------------------------------------------------- - * - * (1 = no scaling (1:1 ratio), + = scale up, - = scale down) - * (* == fully optimised mmx, # = fully optimised C) - * - * h:v mmx C - * - * 1:1 * # - * - * +:+ * # - * 1:+ * # - * +:1 * # - * - * 1:- - * -:1 - * +:- - * -:+ - * -:- - * - */ - - /* if 1:1 scale */ - if ((dst_region_w == src_region_w) && - (dst_region_h == src_region_h)) - { -#include "evas_scale_smooth_scaler_noscale.c" - } - else - { - /* scaling up only - dont need anything except original */ -// if ((!dc->anti_alias) || ((dst_region_w >= src_region_w) && (dst_region_h >= src_region_h))) - if (((dst_region_w >= src_region_w) && (dst_region_h >= src_region_h))) - { -#include "evas_scale_smooth_scaler_up.c" - return; - } - else - /* scaling down... funkiness */ - { -#include "evas_scale_smooth_scaler_down.c" - return; - } - } -} diff --git a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_down.c b/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_down.c deleted file mode 100644 index 357eb32..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_down.c +++ /dev/null @@ -1,43 +0,0 @@ -{ - DATA32 **ypoints; - int *xpoints; - int *xapoints, *xapp; - int *yapoints, *yapp; - DATA32 *buf, *src_data; - - RGBA_Gfx_Func func; - - src_data = src->image.data; - - /* some maximum region sizes to avoid insane calc point tables */ - SCALE_CALC_X_POINTS(xpoints, src_region_w, dst_region_w, dst_clip_x - dst_region_x, dst_clip_w); - SCALE_CALC_Y_POINTS(ypoints, src_data, src_w, src_region_h, dst_region_h, dst_clip_y - dst_region_y, dst_clip_h); - SCALE_CALC_A_POINTS(xapoints, src_region_w, dst_region_w, dst_clip_x - dst_region_x, dst_clip_w); - SCALE_CALC_A_POINTS(yapoints, src_region_h, dst_region_h, dst_clip_y - dst_region_y, dst_clip_h); - - /* a scanline buffer */ - buf = alloca(dst_clip_w * sizeof(DATA32)); - - if (dc->mul.use) - func = evas_common_gfx_func_composite_pixel_color_span_get(src, dc->mul.col, dst, dst_clip_w, dc->render_op); - else - func = evas_common_gfx_func_composite_pixel_span_get(src, dst, dst_clip_w, dc->render_op); - /* scaling down vertically */ - if ((dst_region_w >= src_region_w) && - (dst_region_h < src_region_h)) - { -#include "evas_scale_smooth_scaler_downy.c" - } - /* scaling down horizontally */ - else if ((dst_region_w < src_region_w) && - (dst_region_h >= src_region_h)) - { -#include "evas_scale_smooth_scaler_downx.c" - } - /* scaling down both vertically & horizontally */ - else if ((dst_region_w < src_region_w) && - (dst_region_h < src_region_h)) - { -#include "evas_scale_smooth_scaler_downx_downy.c" - } -} diff --git a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_downx.c b/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_downx.c deleted file mode 100644 index a443c85..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_downx.c +++ /dev/null @@ -1,259 +0,0 @@ -{ - int Cx, j; - DATA32 *pix, *dptr, *pbuf, **yp; - int r, g, b, a, rr, gg, bb, aa; - int *xp, xap, yap, pos; - //int dyy, dxx; - int w = dst_clip_w; -#ifdef EVAS_SLI - int ysli = dst_clip_y; -#endif - - dptr = dst_ptr; - pos = (src_region_y * src_w) + src_region_x; - //dyy = dst_clip_y - dst_region_y; - //dxx = dst_clip_x - dst_region_x; - - xp = xpoints;// + dxx; - yp = ypoints;// + dyy; - xapp = xapoints;// + dxx; - yapp = yapoints;// + dyy; - pbuf = buf; - - if (src->cache_entry.flags.alpha) - { - while (dst_clip_h--) - { -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - while (dst_clip_w--) - { - Cx = *xapp >> 16; - xap = *xapp & 0xffff; - pix = *yp + *xp + pos; - - a = (A_VAL(pix) * xap) >> 10; - r = (R_VAL(pix) * xap) >> 10; - g = (G_VAL(pix) * xap) >> 10; - b = (B_VAL(pix) * xap) >> 10; - for (j = (1 << 14) - xap; j > Cx; j -= Cx) - { - pix++; - a += (A_VAL(pix) * Cx) >> 10; - r += (R_VAL(pix) * Cx) >> 10; - g += (G_VAL(pix) * Cx) >> 10; - b += (B_VAL(pix) * Cx) >> 10; - } - if (j > 0) - { - pix++; - a += (A_VAL(pix) * j) >> 10; - r += (R_VAL(pix) * j) >> 10; - g += (G_VAL(pix) * j) >> 10; - b += (B_VAL(pix) * j) >> 10; - } - if ((yap = *yapp) > 0) - { - pix = *yp + *xp + src_w + pos; - aa = (A_VAL(pix) * xap) >> 10; - rr = (R_VAL(pix) * xap) >> 10; - gg = (G_VAL(pix) * xap) >> 10; - bb = (B_VAL(pix) * xap) >> 10; - for (j = (1 << 14) - xap; j > Cx; j -= Cx) - { - pix++; - aa += (A_VAL(pix) * Cx) >> 10; - rr += (R_VAL(pix) * Cx) >> 10; - gg += (G_VAL(pix) * Cx) >> 10; - bb += (B_VAL(pix) * Cx) >> 10; - } - if (j > 0) - { - pix++; - aa += (A_VAL(pix) * j) >> 10; - rr += (R_VAL(pix) * j) >> 10; - gg += (G_VAL(pix) * j) >> 10; - bb += (B_VAL(pix) * j) >> 10; - } - a += ((aa - a) * yap) >> 8; - r += ((rr - r) * yap) >> 8; - g += ((gg - g) * yap) >> 8; - b += ((bb - b) * yap) >> 8; - } - *pbuf++ = ARGB_JOIN(((a + (1 << 3)) >> 4), - ((r + (1 << 3)) >> 4), - ((g + (1 << 3)) >> 4), - ((b + (1 << 3)) >> 4)); - xp++; xapp++; - } - - func(buf, NULL, dc->mul.col, dptr, w); - } -#ifdef EVAS_SLI - ysli++; -#endif - pbuf = buf; - dptr += dst_w; dst_clip_w = w; - yp++; yapp++; - xp = xpoints;// + dxx; - xapp = xapoints;// + dxx; - } - } - else - { -#ifdef DIRECT_SCALE - if ((!src->cache_entry.flags.alpha) && - (!dst->cache_entry.flags.alpha) && - (!dc->mul.use)) - { - while (dst_clip_h--) - { - pbuf = dptr; -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - while (dst_clip_w--) - { - Cx = *xapp >> 16; - xap = *xapp & 0xffff; - pix = *yp + *xp + pos; - - r = (R_VAL(pix) * xap) >> 10; - g = (G_VAL(pix) * xap) >> 10; - b = (B_VAL(pix) * xap) >> 10; - for (j = (1 << 14) - xap; j > Cx; j -= Cx) - { - pix++; - r += (R_VAL(pix) * Cx) >> 10; - g += (G_VAL(pix) * Cx) >> 10; - b += (B_VAL(pix) * Cx) >> 10; - } - if (j > 0) - { - pix++; - r += (R_VAL(pix) * j) >> 10; - g += (G_VAL(pix) * j) >> 10; - b += (B_VAL(pix) * j) >> 10; - } - if ((yap = *yapp) > 0) - { - pix = *yp + *xp + src_w + pos; - rr = (R_VAL(pix) * xap) >> 10; - gg = (G_VAL(pix) * xap) >> 10; - bb = (B_VAL(pix) * xap) >> 10; - for (j = (1 << 14) - xap; j > Cx; j -= Cx) - { - pix++; - rr += (R_VAL(pix) * Cx) >> 10; - gg += (G_VAL(pix) * Cx) >> 10; - bb += (B_VAL(pix) * Cx) >> 10; - } - if (j > 0) - { - pix++; - rr += (R_VAL(pix) * j) >> 10; - gg += (G_VAL(pix) * j) >> 10; - bb += (B_VAL(pix) * j) >> 10; - } - r += ((rr - r) * yap) >> 8; - g += ((gg - g) * yap) >> 8; - b += ((bb - b) * yap) >> 8; - } - *pbuf++ = ARGB_JOIN(0xff, - ((r + (1 << 3)) >> 4), - ((g + (1 << 3)) >> 4), - ((b + (1 << 3)) >> 4)); - xp++; xapp++; - } - } -#ifdef EVAS_SLI - ysli++; -#endif - - dptr += dst_w; dst_clip_w = w; - yp++; yapp++; - xp = xpoints;// + dxx; - xapp = xapoints;// + dxx; - } - } - else -#endif - { - while (dst_clip_h--) - { -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - while (dst_clip_w--) - { - Cx = *xapp >> 16; - xap = *xapp & 0xffff; - pix = *yp + *xp + pos; - - r = (R_VAL(pix) * xap) >> 10; - g = (G_VAL(pix) * xap) >> 10; - b = (B_VAL(pix) * xap) >> 10; - for (j = (1 << 14) - xap; j > Cx; j -= Cx) - { - pix++; - r += (R_VAL(pix) * Cx) >> 10; - g += (G_VAL(pix) * Cx) >> 10; - b += (B_VAL(pix) * Cx) >> 10; - } - if (j > 0) - { - pix++; - r += (R_VAL(pix) * j) >> 10; - g += (G_VAL(pix) * j) >> 10; - b += (B_VAL(pix) * j) >> 10; - } - if ((yap = *yapp) > 0) - { - pix = *yp + *xp + src_w + pos; - rr = (R_VAL(pix) * xap) >> 10; - gg = (G_VAL(pix) * xap) >> 10; - bb = (B_VAL(pix) * xap) >> 10; - for (j = (1 << 14) - xap; j > Cx; j -= Cx) - { - pix++; - rr += (R_VAL(pix) * Cx) >> 10; - gg += (G_VAL(pix) * Cx) >> 10; - bb += (B_VAL(pix) * Cx) >> 10; - } - if (j > 0) - { - pix++; - rr += (R_VAL(pix) * j) >> 10; - gg += (G_VAL(pix) * j) >> 10; - bb += (B_VAL(pix) * j) >> 10; - } - r += ((rr - r) * yap) >> 8; - g += ((gg - g) * yap) >> 8; - b += ((bb - b) * yap) >> 8; - } - *pbuf++ = ARGB_JOIN(0xff, - ((r + (1 << 3)) >> 4), - ((g + (1 << 3)) >> 4), - ((b + (1 << 3)) >> 4)); - xp++; xapp++; - } - - func(buf, NULL, dc->mul.col, dptr, w); - } -#ifdef EVAS_SLI - ysli++; -#endif - - pbuf = buf; - dptr += dst_w; dst_clip_w = w; - yp++; yapp++; - xp = xpoints;// + dxx; - xapp = xapoints;// + dxx; - } - } - } -} diff --git a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_downx_downy.c b/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_downx_downy.c deleted file mode 100644 index 73da3a0..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_downx_downy.c +++ /dev/null @@ -1,387 +0,0 @@ -{ - int Cx, Cy, i, j; - DATA32 *dptr, *sptr, *pix, *pbuf; - int a, r, g, b, rx, gx, bx, ax; - int xap, yap, pos; - //int dyy, dxx; -#ifdef EVAS_SLI - int ysli = dst_clip_y; -#endif - - DATA32 **yp; - int *xp; - int w = dst_clip_w; - - dptr = dst_ptr; - pos = (src_region_y * src_w) + src_region_x; - //dyy = dst_clip_y - dst_region_y; - //dxx = dst_clip_x - dst_region_x; - - xp = xpoints;// + dxx; - yp = ypoints;// + dyy; - xapp = xapoints;// + dxx; - yapp = yapoints;// + dyy; - pbuf = buf; -/*#ifndef SCALE_USING_MMX */ -/* for now there's no mmx down scaling - so C only */ -#if 1 - if (src->cache_entry.flags.alpha) - { - while (dst_clip_h--) - { -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - Cy = *yapp >> 16; - yap = *yapp & 0xffff; - - while (dst_clip_w--) - { - Cx = *xapp >> 16; - xap = *xapp & 0xffff; - - sptr = *yp + *xp + pos; - pix = sptr; - sptr += src_w; - - ax = (A_VAL(pix) * xap) >> 9; - rx = (R_VAL(pix) * xap) >> 9; - gx = (G_VAL(pix) * xap) >> 9; - bx = (B_VAL(pix) * xap) >> 9; - pix++; - for (i = (1 << 14) - xap; i > Cx; i -= Cx) - { - ax += (A_VAL(pix) * Cx) >> 9; - rx += (R_VAL(pix) * Cx) >> 9; - gx += (G_VAL(pix) * Cx) >> 9; - bx += (B_VAL(pix) * Cx) >> 9; - pix++; - } - if (i > 0) - { - ax += (A_VAL(pix) * i) >> 9; - rx += (R_VAL(pix) * i) >> 9; - gx += (G_VAL(pix) * i) >> 9; - bx += (B_VAL(pix) * i) >> 9; - } - - a = (ax * yap) >> 14; - r = (rx * yap) >> 14; - g = (gx * yap) >> 14; - b = (bx * yap) >> 14; - - for (j = (1 << 14) - yap; j > Cy; j -= Cy) - { - pix = sptr; - sptr += src_w; - ax = (A_VAL(pix) * xap) >> 9; - rx = (R_VAL(pix) * xap) >> 9; - gx = (G_VAL(pix) * xap) >> 9; - bx = (B_VAL(pix) * xap) >> 9; - pix++; - for (i = (1 << 14) - xap; i > Cx; i -= Cx) - { - ax += (A_VAL(pix) * Cx) >> 9; - rx += (R_VAL(pix) * Cx) >> 9; - gx += (G_VAL(pix) * Cx) >> 9; - bx += (B_VAL(pix) * Cx) >> 9; - pix++; - } - if (i > 0) - { - ax += (A_VAL(pix) * i) >> 9; - rx += (R_VAL(pix) * i) >> 9; - gx += (G_VAL(pix) * i) >> 9; - bx += (B_VAL(pix) * i) >> 9; - } - - a += (ax * Cy) >> 14; - r += (rx * Cy) >> 14; - g += (gx * Cy) >> 14; - b += (bx * Cy) >> 14; - } - if (j > 0) - { - pix = sptr; - sptr += src_w; - ax = (A_VAL(pix) * xap) >> 9; - rx = (R_VAL(pix) * xap) >> 9; - gx = (G_VAL(pix) * xap) >> 9; - bx = (B_VAL(pix) * xap) >> 9; - pix++; - for (i = (1 << 14) - xap; i > Cx; i -= Cx) - { - ax += (A_VAL(pix) * Cx) >> 9; - rx += (R_VAL(pix) * Cx) >> 9; - gx += (G_VAL(pix) * Cx) >> 9; - bx += (B_VAL(pix) * Cx) >> 9; - pix++; - } - if (i > 0) - { - ax += (A_VAL(pix) * i) >> 9; - rx += (R_VAL(pix) * i) >> 9; - gx += (G_VAL(pix) * i) >> 9; - bx += (B_VAL(pix) * i) >> 9; - } - - a += (ax * j) >> 14; - r += (rx * j) >> 14; - g += (gx * j) >> 14; - b += (bx * j) >> 14; - } - *pbuf++ = ARGB_JOIN(((a + (1 << 4)) >> 5), - ((r + (1 << 4)) >> 5), - ((g + (1 << 4)) >> 5), - ((b + (1 << 4)) >> 5)); - xp++; xapp++; - } - - func(buf, NULL, dc->mul.col, dptr, w); - } -#ifdef EVAS_SLI - ysli++; -#endif - pbuf = buf; - dptr += dst_w; dst_clip_w = w; - xp = xpoints;// + dxx; - xapp = xapoints;// + dxx; - yp++; yapp++; - } - } - else - { -#ifdef DIRECT_SCALE - if ((!src->cache_entry.flags.alpha) && - (!dst->cache_entry.flags.alpha) && - (!dc->mul.use)) - { - while (dst_clip_h--) - { -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - Cy = *yapp >> 16; - yap = *yapp & 0xffff; - - pbuf = dptr; - while (dst_clip_w--) - { - Cx = *xapp >> 16; - xap = *xapp & 0xffff; - - sptr = *yp + *xp + pos; - pix = sptr; - sptr += src_w; - - rx = (R_VAL(pix) * xap) >> 9; - gx = (G_VAL(pix) * xap) >> 9; - bx = (B_VAL(pix) * xap) >> 9; - pix++; - for (i = (1 << 14) - xap; i > Cx; i -= Cx) - { - rx += (R_VAL(pix) * Cx) >> 9; - gx += (G_VAL(pix) * Cx) >> 9; - bx += (B_VAL(pix) * Cx) >> 9; - pix++; - } - if (i > 0) - { - rx += (R_VAL(pix) * i) >> 9; - gx += (G_VAL(pix) * i) >> 9; - bx += (B_VAL(pix) * i) >> 9; - } - - r = (rx * yap) >> 14; - g = (gx * yap) >> 14; - b = (bx * yap) >> 14; - - for (j = (1 << 14) - yap; j > Cy; j -= Cy) - { - pix = sptr; - sptr += src_w; - rx = (R_VAL(pix) * xap) >> 9; - gx = (G_VAL(pix) * xap) >> 9; - bx = (B_VAL(pix) * xap) >> 9; - pix++; - for (i = (1 << 14) - xap; i > Cx; i -= Cx) - { - rx += (R_VAL(pix) * Cx) >> 9; - gx += (G_VAL(pix) * Cx) >> 9; - bx += (B_VAL(pix) * Cx) >> 9; - pix++; - } - if (i > 0) - { - rx += (R_VAL(pix) * i) >> 9; - gx += (G_VAL(pix) * i) >> 9; - bx += (B_VAL(pix) * i) >> 9; - } - - r += (rx * Cy) >> 14; - g += (gx * Cy) >> 14; - b += (bx * Cy) >> 14; - } - if (j > 0) - { - pix = sptr; - sptr += src_w; - rx = (R_VAL(pix) * xap) >> 9; - gx = (G_VAL(pix) * xap) >> 9; - bx = (B_VAL(pix) * xap) >> 9; - pix++; - for (i = (1 << 14) - xap; i > Cx; i -= Cx) - { - rx += (R_VAL(pix) * Cx) >> 9; - gx += (G_VAL(pix) * Cx) >> 9; - bx += (B_VAL(pix) * Cx) >> 9; - pix++; - } - if (i > 0) - { - rx += (R_VAL(pix) * i) >> 9; - gx += (G_VAL(pix) * i) >> 9; - bx += (B_VAL(pix) * i) >> 9; - } - - r += (rx * j) >> 14; - g += (gx * j) >> 14; - b += (bx * j) >> 14; - } - *pbuf++ = ARGB_JOIN(0xff, - ((r + (1 << 4)) >> 5), - ((g + (1 << 4)) >> 5), - ((b + (1 << 4)) >> 5)); - xp++; xapp++; - } - } -#ifdef EVAS_SLI - ysli++; -#endif - dptr += dst_w; dst_clip_w = w; - xp = xpoints;// + dxx; - xapp = xapoints;// + dxx; - yp++; yapp++; - } - } - else -#endif - { - while (dst_clip_h--) - { -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - Cy = *yapp >> 16; - yap = *yapp & 0xffff; - - while (dst_clip_w--) - { - Cx = *xapp >> 16; - xap = *xapp & 0xffff; - - sptr = *yp + *xp + pos; - pix = sptr; - sptr += src_w; - - rx = (R_VAL(pix) * xap) >> 9; - gx = (G_VAL(pix) * xap) >> 9; - bx = (B_VAL(pix) * xap) >> 9; - pix++; - for (i = (1 << 14) - xap; i > Cx; i -= Cx) - { - rx += (R_VAL(pix) * Cx) >> 9; - gx += (G_VAL(pix) * Cx) >> 9; - bx += (B_VAL(pix) * Cx) >> 9; - pix++; - } - if (i > 0) - { - rx += (R_VAL(pix) * i) >> 9; - gx += (G_VAL(pix) * i) >> 9; - bx += (B_VAL(pix) * i) >> 9; - } - - r = (rx * yap) >> 14; - g = (gx * yap) >> 14; - b = (bx * yap) >> 14; - - for (j = (1 << 14) - yap; j > Cy; j -= Cy) - { - pix = sptr; - sptr += src_w; - rx = (R_VAL(pix) * xap) >> 9; - gx = (G_VAL(pix) * xap) >> 9; - bx = (B_VAL(pix) * xap) >> 9; - pix++; - for (i = (1 << 14) - xap; i > Cx; i -= Cx) - { - rx += (R_VAL(pix) * Cx) >> 9; - gx += (G_VAL(pix) * Cx) >> 9; - bx += (B_VAL(pix) * Cx) >> 9; - pix++; - } - if (i > 0) - { - rx += (R_VAL(pix) * i) >> 9; - gx += (G_VAL(pix) * i) >> 9; - bx += (B_VAL(pix) * i) >> 9; - } - - r += (rx * Cy) >> 14; - g += (gx * Cy) >> 14; - b += (bx * Cy) >> 14; - } - if (j > 0) - { - pix = sptr; - sptr += src_w; - rx = (R_VAL(pix) * xap) >> 9; - gx = (G_VAL(pix) * xap) >> 9; - bx = (B_VAL(pix) * xap) >> 9; - pix++; - for (i = (1 << 14) - xap; i > Cx; i -= Cx) - { - rx += (R_VAL(pix) * Cx) >> 9; - gx += (G_VAL(pix) * Cx) >> 9; - bx += (B_VAL(pix) * Cx) >> 9; - pix++; - } - if (i > 0) - { - rx += (R_VAL(pix) * i) >> 9; - gx += (G_VAL(pix) * i) >> 9; - bx += (B_VAL(pix) * i) >> 9; - } - - r += (rx * j) >> 14; - g += (gx * j) >> 14; - b += (bx * j) >> 14; - } - *pbuf++ = ARGB_JOIN(0xff, - ((r + (1 << 4)) >> 5), - ((g + (1 << 4)) >> 5), - ((b + (1 << 4)) >> 5)); - xp++; xapp++; - } - - func(buf, NULL, dc->mul.col, dptr, w); - } -#ifdef EVAS_SLI - ysli++; -#endif - pbuf = buf; - dptr += dst_w; dst_clip_w = w; - xp = xpoints;// + dxx; - xapp = xapoints;// + dxx; - yp++; yapp++; - } - } - } -#else - /* MMX scaling down would go here */ -#endif -} diff --git a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_downy.c b/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_downy.c deleted file mode 100644 index 3b7585d..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_downy.c +++ /dev/null @@ -1,260 +0,0 @@ -{ - int Cy, j; - DATA32 *dptr, *pix, *pbuf, **yp; - int r, g, b, a, rr, gg, bb, aa; - int *xp, xap, yap, pos; - //int dyy, dxx; - int w = dst_clip_w; -#ifdef EVAS_SLI - int ysli = dst_clip_y; -#endif - - dptr = dst_ptr; - pos = (src_region_y * src_w) + src_region_x; - //dyy = dst_clip_y - dst_region_y; - //dxx = dst_clip_x - dst_region_x; - - xp = xpoints;// + dxx; - yp = ypoints;// + dyy; - xapp = xapoints;// + dxx; - yapp = yapoints;// + dyy; - pbuf = buf; - - if (src->cache_entry.flags.alpha) - { - while (dst_clip_h--) - { -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - Cy = *yapp >> 16; - yap = *yapp & 0xffff; - - while (dst_clip_w--) - { - pix = *yp + *xp + pos; - - a = (A_VAL(pix) * yap) >> 10; - r = (R_VAL(pix) * yap) >> 10; - g = (G_VAL(pix) * yap) >> 10; - b = (B_VAL(pix) * yap) >> 10; - for (j = (1 << 14) - yap; j > Cy; j -= Cy) - { - pix += src_w; - a += (A_VAL(pix) * Cy) >> 10; - r += (R_VAL(pix) * Cy) >> 10; - g += (G_VAL(pix) * Cy) >> 10; - b += (B_VAL(pix) * Cy) >> 10; - } - if (j > 0) - { - pix += src_w; - a += (A_VAL(pix) * j) >> 10; - r += (R_VAL(pix) * j) >> 10; - g += (G_VAL(pix) * j) >> 10; - b += (B_VAL(pix) * j) >> 10; - } - if ((xap = *xapp) > 0) - { - pix = *yp + *xp + 1 + pos; - aa = (A_VAL(pix) * yap) >> 10; - rr = (R_VAL(pix) * yap) >> 10; - gg = (G_VAL(pix) * yap) >> 10; - bb = (B_VAL(pix) * yap) >> 10; - for (j = (1 << 14) - yap; j > Cy; j -= Cy) - { - pix += src_w; - aa += (A_VAL(pix) * Cy) >> 10; - rr += (R_VAL(pix) * Cy) >> 10; - gg += (G_VAL(pix) * Cy) >> 10; - bb += (B_VAL(pix) * Cy) >> 10; - } - if (j > 0) - { - pix += src_w; - aa += (A_VAL(pix) * j) >> 10; - rr += (R_VAL(pix) * j) >> 10; - gg += (G_VAL(pix) * j) >> 10; - bb += (B_VAL(pix) * j) >> 10; - } - a += ((aa - a) * xap) >> 8; - r += ((rr - r) * xap) >> 8; - g += ((gg - g) * xap) >> 8; - b += ((bb - b) * xap) >> 8; - } - *pbuf++ = ARGB_JOIN(((a + (1 << 3)) >> 4), - ((r + (1 << 3)) >> 4), - ((g + (1 << 3)) >> 4), - ((b + (1 << 3)) >> 4)); - xp++; xapp++; - } - - func(buf, NULL, dc->mul.col, dptr, w); - } -#ifdef EVAS_SLI - ysli++; -#endif - pbuf = buf; - dptr += dst_w; dst_clip_w = w; - yp++; yapp++; - xp = xpoints;// + dxx; - xapp = xapoints;// + dxx; - } - } - else - { -#ifdef DIRECT_SCALE - if ((!src->cache_entry.flags.alpha) && - (!dst->cache_entry.flags.alpha) && - (!dc->mul.use)) - { - while (dst_clip_h--) - { -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - Cy = *yapp >> 16; - yap = *yapp & 0xffff; - - pbuf = dptr; - while (dst_clip_w--) - { - pix = *yp + *xp + pos; - - r = (R_VAL(pix) * yap) >> 10; - g = (G_VAL(pix) * yap) >> 10; - b = (B_VAL(pix) * yap) >> 10; - for (j = (1 << 14) - yap; j > Cy; j -= Cy) - { - pix += src_w; - r += (R_VAL(pix) * Cy) >> 10; - g += (G_VAL(pix) * Cy) >> 10; - b += (B_VAL(pix) * Cy) >> 10; - } - if (j > 0) - { - pix += src_w; - r += (R_VAL(pix) * j) >> 10; - g += (G_VAL(pix) * j) >> 10; - b += (B_VAL(pix) * j) >> 10; - } - if ((xap = *xapp) > 0) - { - pix = *yp + *xp + 1 + pos; - rr = (R_VAL(pix) * yap) >> 10; - gg = (G_VAL(pix) * yap) >> 10; - bb = (B_VAL(pix) * yap) >> 10; - for (j = (1 << 14) - yap; j > Cy; j -= Cy) - { - pix += src_w; - rr += (R_VAL(pix) * Cy) >> 10; - gg += (G_VAL(pix) * Cy) >> 10; - bb += (B_VAL(pix) * Cy) >> 10; - } - if (j > 0) - { - pix += src_w; - rr += (R_VAL(pix) * j) >> 10; - gg += (G_VAL(pix) * j) >> 10; - bb += (B_VAL(pix) * j) >> 10; - } - r += ((rr - r) * xap) >> 8; - g += ((gg - g) * xap) >> 8; - b += ((bb - b) * xap) >> 8; - } - *pbuf++ = ARGB_JOIN(0xff, - ((r + (1 << 3)) >> 4), - ((g + (1 << 3)) >> 4), - ((b + (1 << 3)) >> 4)); - xp++; xapp++; - } - } -#ifdef EVAS_SLI - ysli++; -#endif - dptr += dst_w; dst_clip_w = w; - yp++; yapp++; - xp = xpoints;// + dxx; - xapp = xapoints;// + dxx; - } - } - else -#endif - { - while (dst_clip_h--) - { -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - Cy = *yapp >> 16; - yap = *yapp & 0xffff; - - while (dst_clip_w--) - { - pix = *yp + *xp + pos; - - r = (R_VAL(pix) * yap) >> 10; - g = (G_VAL(pix) * yap) >> 10; - b = (B_VAL(pix) * yap) >> 10; - for (j = (1 << 14) - yap; j > Cy; j -= Cy) - { - pix += src_w; - r += (R_VAL(pix) * Cy) >> 10; - g += (G_VAL(pix) * Cy) >> 10; - b += (B_VAL(pix) * Cy) >> 10; - } - if (j > 0) - { - pix += src_w; - r += (R_VAL(pix) * j) >> 10; - g += (G_VAL(pix) * j) >> 10; - b += (B_VAL(pix) * j) >> 10; - } - if ((xap = *xapp) > 0) - { - pix = *yp + *xp + 1 + pos; - rr = (R_VAL(pix) * yap) >> 10; - gg = (G_VAL(pix) * yap) >> 10; - bb = (B_VAL(pix) * yap) >> 10; - for (j = (1 << 14) - yap; j > Cy; j -= Cy) - { - pix += src_w; - rr += (R_VAL(pix) * Cy) >> 10; - gg += (G_VAL(pix) * Cy) >> 10; - bb += (B_VAL(pix) * Cy) >> 10; - } - if (j > 0) - { - pix += src_w; - rr += (R_VAL(pix) * j) >> 10; - gg += (G_VAL(pix) * j) >> 10; - bb += (B_VAL(pix) * j) >> 10; - } - r += ((rr - r) * xap) >> 8; - g += ((gg - g) * xap) >> 8; - b += ((bb - b) * xap) >> 8; - } - *pbuf++ = ARGB_JOIN(0xff, - ((r + (1 << 3)) >> 4), - ((g + (1 << 3)) >> 4), - ((b + (1 << 3)) >> 4)); - xp++; xapp++; - } - - func(buf, NULL, dc->mul.col, dptr, w); - } -#ifdef EVAS_SLI - ysli++; -#endif - pbuf = buf; - dptr += dst_w; dst_clip_w = w; - yp++; yapp++; - xp = xpoints;// + dxx; - xapp = xapoints;// + dxx; - } - } - } -} diff --git a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_noscale.c b/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_noscale.c deleted file mode 100644 index 24529e5..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_noscale.c +++ /dev/null @@ -1,62 +0,0 @@ -{ - DATA32 *ptr; - RGBA_Gfx_Func func; - RGBA_Image *maskobj; - DATA8 *mask = NULL; -#ifdef EVAS_SLI - int ysli = dst_clip_y; -#endif - - ptr = src->image.data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x; - if (dc->mask.mask) - { - func = evas_common_gfx_func_composite_pixel_mask_span_get(NULL, NULL, dst_clip_w, dc->render_op); - maskobj = dc->mask.mask; - mask = maskobj->mask.mask; - } - else if (dc->mul.use) - func = evas_common_gfx_func_composite_pixel_color_span_get(src, dc->mul.col, dst, dst_clip_w, dc->render_op); - else - func = evas_common_gfx_func_composite_pixel_span_get(src, dst, dst_clip_w, dc->render_op); - - if (mask) - { - // mask += dst_clip_x - dc->mask.x; - // mask += (dst_clip_y - dc->mask.y) * maskobj->cache_entry.w; - while (dst_clip_h--) - { - -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - func(ptr, mask, dc->mul.col, dst_ptr, dst_clip_w); - } -#ifdef EVAS_SLI - ysli++; -#endif - ptr += src_w; - dst_ptr += dst_w; - mask += maskobj->cache_entry.w; - } - } - else - { - while (dst_clip_h--) - { -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - func(ptr, NULL, dc->mul.col, dst_ptr, dst_clip_w); - } -#ifdef EVAS_SLI - ysli++; -#endif - ptr += src_w; - dst_ptr += dst_w; - } - } -} - -/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/ diff --git a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_up.c b/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_up.c deleted file mode 100644 index 7327ac5..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_smooth_scaler_up.c +++ /dev/null @@ -1,266 +0,0 @@ -{ - int srx = src_region_x, sry = src_region_y; - int srw = src_region_w, srh = src_region_h; - int drx = dst_region_x, dry = dst_region_y; - int drw = dst_region_w, drh = dst_region_h; - - int dsxx, dsyy, sxx, syy, sx, sy; - int cx, cy; - int direct_scale = 0, buf_step = 0; - - DATA32 *psrc, *pdst, *pdst_end; - DATA32 *buf, *pbuf, *pbuf_end; - RGBA_Gfx_Func func = NULL; - - /* check value to make overflow(only check value related with overflow) */ - if ((src_region_w > SCALE_SIZE_MAX) || - (src_region_h > SCALE_SIZE_MAX)) return; - - /* a scanline buffer */ - pdst = dst_ptr; // it's been set at (dst_clip_x, dst_clip_y) - pdst_end = pdst + (dst_clip_h * dst_w); - if (!dc->mul.use) - { - if ((dc->render_op == _EVAS_RENDER_BLEND) && !src->cache_entry.flags.alpha) - { direct_scale = 1; buf_step = dst->cache_entry.w; } - else if (dc->render_op == _EVAS_RENDER_COPY) - { - direct_scale = 1; buf_step = dst->cache_entry.w; - if (src->cache_entry.flags.alpha) - dst->cache_entry.flags.alpha = 1; - } - } - if (!direct_scale) - { - buf = alloca(dst_clip_w * sizeof(DATA32)); - if (dc->mul.use) - func = evas_common_gfx_func_composite_pixel_color_span_get(src, dc->mul.col, dst, dst_clip_w, dc->render_op); - else - func = evas_common_gfx_func_composite_pixel_span_get(src, dst, dst_clip_w, dc->render_op); - } - else - buf = pdst; - - if ((srw > 1) && (drw > 1)) - dsxx = ((srw - 1) << 16) / (drw - 1); - else - dsxx = (srw << 16) / drw; - if ((srh > 1) && (drh > 1)) - dsyy = ((srh - 1) << 16) / (drh - 1); - else - dsyy = (srh << 16) / drh; - - cx = dst_clip_x - drx; - cy = dst_clip_y - dry; - - sxx = (dsxx * cx); - syy = (dsyy * cy); - - sy = syy >> 16; - - if (drh == srh) - { - int sxx0 = sxx; -#ifdef EVAS_SLI - int ysli = dst_clip_y; -#endif - psrc = src->image.data + (src_w * (sry + cy)) + srx; - while (pdst < pdst_end) - { -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - pbuf = buf; pbuf_end = buf + dst_clip_w; - sxx = sxx0; -#ifdef SCALE_USING_MMX - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) -#endif - while (pbuf < pbuf_end) - { - DATA32 p0, p1; - int ax; - - sx = (sxx >> 16); - ax = 1 + ((sxx - (sx << 16)) >> 8); - p0 = p1 = *(psrc + sx); - if ((sx + 1) < srw) - p1 = *(psrc + sx + 1); -#ifdef SCALE_USING_MMX - MOV_P2R(p0, mm1, mm0) - if (p0 | p1) - { - MOV_A2R(ax, mm3) - MOV_P2R(p1, mm2, mm0) - INTERP_256_R2R(mm3, mm2, mm1, mm5) - } - MOV_R2P(mm1, *pbuf, mm0) - pbuf++; -#else - if (p0 | p1) - p0 = INTERP_256(ax, p1, p0); - *pbuf++ = p0; -#endif - sxx += dsxx; - } - /* * blend here [clip_w *] buf -> dptr * */ - if (!direct_scale) - func(buf, NULL, dc->mul.col, pdst, dst_clip_w); - } -#ifdef EVAS_SLI - ysli++; -#endif - pdst += dst_w; - psrc += src_w; - buf += buf_step; - } - - goto done_scale_up; - } - else if (drw == srw) - { - DATA32 *ps = src->image.data + (src_w * sry) + srx + cx; -#ifdef EVAS_SLI - int ysli = dst_clip_y; -#endif - - while (pdst < pdst_end) - { -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - int ay; - - sy = syy >> 16; - psrc = ps + (sy * src_w); - ay = 1 + ((syy - (sy << 16)) >> 8); -#ifdef SCALE_USING_MMX - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - MOV_A2R(ay, mm4) -#endif - pbuf = buf; pbuf_end = buf + dst_clip_w; - while (pbuf < pbuf_end) - { - DATA32 p0 = *psrc, p2 = p0; - - if ((sy + 1) < srh) - p2 = *(psrc + src_w); -#ifdef SCALE_USING_MMX - MOV_P2R(p0, mm1, mm0) - if (p0 | p2) - { - MOV_P2R(p2, mm2, mm0) - INTERP_256_R2R(mm4, mm2, mm1, mm5) - } - MOV_R2P(mm1, *pbuf, mm0) - pbuf++; -#else - if (p0 | p2) - p0 = INTERP_256(ay, p2, p0); - *pbuf++ = p0; -#endif - psrc++; - } - /* * blend here [clip_w *] buf -> dptr * */ - if (!direct_scale) - func(buf, NULL, dc->mul.col, pdst, dst_clip_w); - } -#ifdef EVAS_SLI - ysli++; -#endif - pdst += dst_w; - syy += dsyy; - buf += buf_step; - } - goto done_scale_up; - } - - { - DATA32 *ps = src->image.data + (src_w * sry) + srx; - int sxx0 = sxx; -#ifdef EVAS_SLI - int ysli = dst_clip_y; -#endif - - while (pdst < pdst_end) - { -#ifdef EVAS_SLI - if (((ysli) % dc->sli.h) == dc->sli.y) -#endif - { - int ay; - - sy = syy >> 16; - psrc = ps + (sy * src_w); - ay = 1 + ((syy - (sy << 16)) >> 8); -#ifdef SCALE_USING_MMX - MOV_A2R(ay, mm4) - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) -#endif - pbuf = buf; pbuf_end = buf + dst_clip_w; - sxx = sxx0; - while (pbuf < pbuf_end) - { - int ax; - DATA32 *p, *q; - DATA32 p0, p1, p2, p3; - - sx = sxx >> 16; - ax = 1 + ((sxx - (sx << 16)) >> 8); - p = psrc + sx; q = p + src_w; - p0 = p1 = p2 = p3 = *p; - if ((sx + 1) < srw) - p1 = *(p + 1); - if ((sy + 1) < srh) - { - p2 = *q; p3 = p2; - if ((sx + 1) < srw) - p3 = *(q + 1); - } -#ifdef SCALE_USING_MMX - MOV_A2R(ax, mm6) - MOV_P2R(p0, mm1, mm0) - if (p0 | p1) - { - MOV_P2R(p1, mm2, mm0) - INTERP_256_R2R(mm6, mm2, mm1, mm5) - } - MOV_P2R(p2, mm2, mm0) - if (p2 | p3) - { - MOV_P2R(p3, mm3, mm0) - INTERP_256_R2R(mm6, mm3, mm2, mm5) - } - INTERP_256_R2R(mm4, mm2, mm1, mm5) - MOV_R2P(mm1, *pbuf, mm0) - pbuf++; -#else - if (p0 | p1) - p0 = INTERP_256(ax, p1, p0); - if (p2 | p3) - p2 = INTERP_256(ax, p3, p2); - if (p0 | p2) - p0 = INTERP_256(ay, p2, p0); - *pbuf++ = p0; -#endif - sxx += dsxx; - } - /* * blend here [clip_w *] buf -> dptr * */ - if (!direct_scale) - func(buf, NULL, dc->mul.col, pdst, dst_clip_w); - } -#ifdef EVAS_SLI - ysli++; -#endif - pdst += dst_w; - syy += dsyy; - buf += buf_step; - } - } - done_scale_up: - return; -} diff --git a/libraries/evas/src/lib/engines/common/evas_scale_span.c b/libraries/evas/src/lib/engines/common/evas_scale_span.c deleted file mode 100644 index e0fefb2..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_span.c +++ /dev/null @@ -1,653 +0,0 @@ -#include "evas_common.h" -#include "evas_convert_color.h" -#include "evas_scale_span.h" - -static void -evas_common_scale_rgba_span_(DATA32 *src, DATA8 *mask __UNUSED__, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir) -{ - int mul = 0, step = 1; - DATA32 *pdst = dst; - - if (!src || !dst) return; - if ((src_len < 1) || (dst_len < 1)) return; - if ((src_len > SCALE_SIZE_MAX) || (dst_len > SCALE_SIZE_MAX)) return; - if (mul_col != 0xffffffff) - mul = 1; - if (dir < 0) - { - pdst += dst_len - 1; - step = -1; - } - - if ((src_len == 1) || (dst_len == 1)) - { - DATA32 c = *src; - - if (mul) c = MUL4_SYM(mul_col, c); - while (dst_len--) - *dst++ = c; - return; - } - - if (src_len == dst_len) - { - if (mul) - { -#ifdef BUILD_MMX - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - MOV_P2R(mul_col, mm7, mm0) -#endif - while (dst_len--) - { -#ifdef BUILD_MMX - MOV_P2R(*src, mm1, mm0) - MUL4_SYM_R2R(mm7, mm1, mm5) - MOV_R2P(mm1, *pdst, mm0) -#else - *pdst = MUL4_SYM(mul_col, *src); -#endif - src++; pdst += step; - } - return; - } - while (dst_len--) - { - *pdst = *src; - src++; pdst += step; - } - return; - } - - { - DATA32 dsxx = (((src_len - 1) << 16) / (dst_len - 1)); - DATA32 sxx = 0; - int sx = sxx >> 16; - -#ifdef BUILD_MMX - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - if (mul) - { - MOV_P2R(mul_col, mm7, mm0) - } -#endif - while (dst_len--) - { - DATA32 p2, p1 = 0; - int a; - - sx = (sxx >> 16); - if (sx < src_len) - p1 = *(src + sx); - p2 = p1; - if ((sx + 1) < src_len) - p2 = *(src + sx + 1); - a = 1 + ((sxx - (sx << 16)) >> 8); -#ifdef BUILD_MMX - MOV_A2R(a, mm3) - MOV_P2R(p1, mm1, mm0) - MOV_P2R(p2, mm2, mm0) - INTERP_256_R2R(mm3, mm2, mm1, mm5) - if (mul) - { - MUL4_SYM_R2R(mm7, mm1, mm5) - } - MOV_R2P(mm1, *pdst, mm0) -#else - p1 = INTERP_256(a, p2, p1); - if (mul) - p1 = MUL4_SYM(mul_col, p1); - *pdst = p1; -#endif - pdst += step; sxx += dsxx; - } - return; - } -} - -static void -evas_common_scale_rgba_a8_span_(DATA32 *src, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir) -{ - int mul = 0, step = 1; - DATA32 *pdst = dst; - - if (!src || !mask || !dst) return; - if ((src_len < 1) || (dst_len < 1)) return; - if ((src_len > SCALE_SIZE_MAX) || (dst_len > SCALE_SIZE_MAX)) return; - if (mul_col != 0xffffffff) - mul = 1; - if (dir < 0) - { - pdst += dst_len - 1; - step = -1; - } - - if ((src_len == 1) || (dst_len == 1)) - { - DATA32 c = MUL_SYM(*mask, *src); - - if (mul) c = MUL4_SYM(mul_col, c); - while (dst_len--) - *dst++ = c; - return; - } - - if (src_len == dst_len) - { -#ifdef BUILD_MMX - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) -#endif - if (mul) - { -#ifdef BUILD_MMX - MOV_P2R(mul_col, mm7, mm0) -#endif - while (dst_len--) - { -#ifdef BUILD_MMX - MOV_P2R(*src, mm1, mm0) - MOV_A2R(*mask, mm3) - MUL4_SYM_R2R(mm3, mm1, mm5) - MUL4_SYM_R2R(mm7, mm1, mm5) - MOV_R2P(mm1, *pdst, mm0) -#else - DATA32 c = MUL_SYM(*mask, *src); - *pdst = MUL4_SYM(mul_col, c); -#endif - src++; mask++; pdst += step; - } - return; - } - while (dst_len--) - { -#ifdef BUILD_MMX - MOV_P2R(*src, mm1, mm0) - MOV_A2R(*mask, mm3) - MUL4_SYM_R2R(mm3, mm1, mm5) - MOV_R2P(mm1, *pdst, mm0) -#else - *pdst = MUL_SYM(*mask, *src); -#endif - src++; mask++; pdst += step; - } - return; - } - - { - DATA32 dsxx = (((src_len - 1) << 16) / (dst_len - 1)); - DATA32 sxx = 0; - int sx = sxx >> 16; - -#ifdef BUILD_MMX - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - if (mul) - { - MOV_P2R(mul_col, mm7, mm0) - } -#endif - while (dst_len--) - { - DATA32 p2, p1 = 0; - int a, a2, a1 = 0; - - sx = (sxx >> 16); - if (sx < src_len) - { - p1 = *(src + sx); - a1 = *(mask + sx); - } - p2 = p1; a2 = a1; - if ((sx + 1) < src_len) - { - p2 = *(src + sx + 1); - a2 = *(mask + sx + 1); - } - a = 1 + ((sxx - (sx << 16)) >> 8); -#ifdef BUILD_MMX - MOV_A2R(a, mm3) - MOV_P2R(p1, mm1, mm0) - MOV_P2R(p2, mm2, mm0) - INTERP_256_R2R(mm3, mm2, mm1, mm5) - a1 += 1 + ((a * (a2 - a1)) >> 8); - MOV_A2R(a1, mm3) - MUL4_256_R2R(mm3, mm1) - if (mul) - { - MUL4_SYM_R2R(mm7, mm1, mm5) - } - MOV_R2P(mm1, *pdst, mm0) -#else - p1 = INTERP_256(a, p2, p1); - a1 += 1 + ((a * (a2 - a1)) >> 8); - p1 = MUL_256(a1, p1); - if (mul) - p1 = MUL4_SYM(mul_col, p1); - *pdst = p1; -#endif - pdst += step; sxx += dsxx; - } - return; - } -} - -static void -evas_common_scale_a8_span_(DATA32 *src __UNUSED__, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir) -{ - int step = 1; - DATA32 *pdst = dst; - - if (!mask || !dst) return; - if ((src_len < 1) || (dst_len < 1)) return; - if ((src_len > SCALE_SIZE_MAX) || (dst_len > SCALE_SIZE_MAX)) return; - if (dir < 0) - { - pdst += dst_len - 1; - step = -1; - } - - if ((src_len == 1) || (dst_len == 1)) - { - DATA32 c = MUL_SYM(*mask, mul_col); - - while (dst_len--) - *dst++ = c; - return; - } - -#ifdef BUILD_MMX - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - MOV_P2R(mul_col, mm7, mm0) -#endif - if (src_len == dst_len) - { - while (dst_len--) - { -#ifdef BUILD_MMX - MOV_A2R(*mask, mm3) - MUL4_SYM_R2R(mm7, mm3, mm5) - MOV_R2P(mm3, *pdst, mm0) -#else - *pdst = MUL_SYM(*mask, mul_col); -#endif - mask++; pdst += step; - } - return; - } - - { - DATA32 dsxx = (((src_len - 1) << 16) / (dst_len - 1)); - DATA32 sxx = 0; - int sx = sxx >> 16; - - while (dst_len--) - { - int a, a2, a1 = 0; - - sx = (sxx >> 16); - if (sx < src_len) - a1 = *(mask + sx); - a2 = a1; - if ((sx + 1) < src_len) - a2 = *(mask + sx + 1); - a = 1 + ((sxx - (sx << 16)) >> 8); - a1 += 1 + ((a * (a2 - a1)) >> 8); -#ifdef BUILD_MMX - MOV_A2R(a1, mm3) - MUL4_256_R2R(mm7, mm3) - MOV_R2P(mm3, *pdst, mm0) -#else - *pdst = MUL_256(a1, mul_col); -#endif - pdst += step; sxx += dsxx; - } - return; - } -} - -static void -evas_common_scale_clip_a8_span_(DATA32 *src __UNUSED__, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir) -{ - int mul = 0, step = 1; - DATA32 *pdst = dst; - - if (!mask || !dst) return; - if ((src_len < 1) || (dst_len < 1)) return; - if ((src_len > SCALE_SIZE_MAX) || (dst_len > SCALE_SIZE_MAX)) return; - if (mul_col != 0xffffffff) - mul = 1; - if (dir < 0) - { - pdst += dst_len - 1; - step = -1; - } - -#ifdef BUILD_MMX - pxor_r2r(mm0, mm0); - MOV_A2R(ALPHA_255, mm5) - if (mul) - { - MOV_P2R(mul_col, mm7, mm0) - } -#endif - if ((src_len == 1) || (dst_len == 1)) - { -#ifdef BUILD_MMX - MOV_A2R(*mask, mm3) -#else - DATA32 c = *mask; -#endif - if (mul) - { -#ifdef BUILD_MMX - MUL4_SYM_R2R(mm7, mm3, mm5) -#else - c = MUL_SYM(c, mul_col); -#endif - while (dst_len--) - { -#ifdef BUILD_MMX - MOV_P2R(*dst, mm1, mm0) - MUL4_SYM_R2R(mm3, mm1, mm5) - MOV_R2P(mm1, *dst, mm0) -#else - *dst = MUL4_SYM(c, *dst); -#endif - dst++; - } - return; - } - while (dst_len--) - { -#ifdef BUILD_MMX - MOV_P2R(*dst, mm1, mm0) - MUL4_SYM_R2R(mm3, mm1, mm5) - MOV_R2P(mm1, *dst, mm0) -#else - *dst = MUL_SYM(c, *dst); -#endif - dst++; - } - return; - } - - if (src_len == dst_len) - { - if (mul) - { - while (dst_len--) - { -#ifdef BUILD_MMX - MOV_A2R(*mask, mm3) - MUL4_SYM_R2R(mm7, mm3, mm5) - MOV_P2R(*pdst, mm1, mm0) - MUL4_SYM_R2R(mm3, mm1, mm5) - MOV_R2P(mm1, *pdst, mm0) -#else - DATA32 c = MUL_SYM(*mask, mul_col); - - *pdst = MUL4_SYM(c, *pdst); -#endif - mask++; pdst += step; - } - return; - } - while (dst_len--) - { -#ifdef BUILD_MMX - MOV_A2R(*mask, mm3) - MOV_P2R(*pdst, mm1, mm0) - MUL4_SYM_R2R(mm3, mm1, mm5) - MOV_R2P(mm1, *pdst, mm0) -#else - *pdst = MUL_SYM(*mask, *pdst); -#endif - mask++; pdst += step; - } - return; - } - - { - DATA32 dsxx = (((src_len - 1) << 16) / (dst_len - 1)); - DATA32 sxx = 0; - int sx = sxx >> 16; - - while (dst_len--) - { - int a, a2, a1 = 0; - - sx = (sxx >> 16); - if (sx < src_len) - a1 = *(mask + sx); - a2 = a1; - if ((sx + 1) < src_len) - a2 = *(mask + sx + 1); - a = 1 + ((sxx - (sx << 16)) >> 8); - a1 += 1 + ((a * (a2 - a1)) >> 8); -#ifdef BUILD_MMX - MOV_A2R(a1, mm3) - MOV_P2R(*pdst, mm1, mm0) - MUL4_256_R2R(mm3, mm1) - if (mul) - { - MUL4_SYM_R2R(mm7, mm1, mm5) - } - MOV_R2P(mm1, *pdst, mm0) -#else - *pdst = MUL_256(a1, *pdst); - if (mul) - *pdst = MUL4_SYM(mul_col, *pdst); -#endif - pdst += step; sxx += dsxx; - } - return; - } -} - -EAPI void -evas_common_scale_rgba_span(DATA32 *src, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir) -{ - evas_common_scale_rgba_span_(src, mask, src_len, mul_col, dst, dst_len, dir); - evas_common_cpu_end_opt(); -} - -EAPI void -evas_common_scale_rgba_a8_span(DATA32 *src, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir) -{ - evas_common_scale_rgba_a8_span_(src, mask, src_len, mul_col, dst, dst_len, dir); - evas_common_cpu_end_opt(); -} - -EAPI void -evas_common_scale_a8_span(DATA32 *src, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir) -{ - evas_common_scale_a8_span_(src, mask, src_len, mul_col, dst, dst_len, dir); - evas_common_cpu_end_opt(); -} - -EAPI void -evas_common_scale_clip_a8_span(DATA32 *src, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir) -{ - evas_common_scale_clip_a8_span_(src, mask, src_len, mul_col, dst, dst_len, dir); - evas_common_cpu_end_opt(); -} - -EAPI void -evas_common_scale_hsva_span(DATA32 *src, DATA8 *mask __UNUSED__, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir) -{ - int mul = 0, step = 1; - DATA32 *pdst = dst; - - if (!src || !dst) return; - if ((src_len < 1) || (dst_len < 1)) return; - if ((src_len > SCALE_SIZE_MAX) || (dst_len > SCALE_SIZE_MAX)) return; - if (mul_col != 0xffffffff) - mul = 1; - if (dir < 0) - { - pdst += dst_len - 1; - step = -1; - } - - if ((src_len == 1) || (dst_len == 1)) - { - DATA32 c = *src; - - if (mul) c = MUL4_SYM(mul_col, c); - while (dst_len--) - *dst++ = c; - return; - } - - if (src_len == dst_len) - { - if (mul) - { - while (dst_len--) - { - *pdst = MUL4_SYM(mul_col, *src); - src++; pdst += step; - } - return; - } - while (dst_len--) - { - *pdst = *src; - src++; pdst += step; - } - return; - } - - { - DATA32 dsxx = (((src_len - 1) << 16) / (dst_len - 1)); - DATA32 sxx = 0; - int sx = sxx >> 16; - - while (dst_len--) - { - DATA32 p2, p1 = 0; - int a, h1, s1, v1, h2, s2, v2; - - sx = (sxx >> 16); - if (sx < src_len) - p1 = *(src + sx); - evas_common_convert_color_rgb_to_hsv_int((p1 >> 16) & 0xff, (p1 >> 8) & 0xff, p1 & 0xff, - &h1, &s1, &v1); - p2 = p1; - if ((sx + 1) < src_len) - p2 = *(src + sx + 1); - evas_common_convert_color_rgb_to_hsv_int((p2 >> 16) & 0xff, (p2 >> 8) & 0xff, p2 & 0xff, - &h2, &s2, &v2); - a = 1 + ((sxx - (sx << 16)) >> 8); - h1 += (a * (h2 - h1)) >> 8; - s1 += (a * (s2 - s1)) >> 8; - v1 += (a * (v2 - v1)) >> 8; - a = (((((p2 >> 8) & 0xff0000) - ((p1 >> 8) & 0xff0000)) * a) + - (p1 & 0xff000000)) & 0xff000000; - evas_common_convert_color_hsv_to_rgb_int(h1, s1, v1, &h2, &s2, &v2); - p1 = a + RGB_JOIN(h2,s2,v2); - if (mul) - p1 = MUL4_SYM(mul_col, p1); - *pdst = p1; - pdst += step; sxx += dsxx; - } - return; - } -} - -EAPI void -evas_common_scale_hsva_a8_span(DATA32 *src, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir) -{ - int mul = 0, step = 1; - DATA32 *pdst = dst; - - if (!src || !mask || !dst) return; - if ((src_len < 1) || (dst_len < 1)) return; - if ((src_len > SCALE_SIZE_MAX) || (dst_len > SCALE_SIZE_MAX)) return; - if (mul_col != 0xffffffff) - mul = 1; - if (dir < 0) - { - pdst += dst_len - 1; - step = -1; - } - - if ((src_len == 1) || (dst_len == 1)) - { - DATA32 c = MUL_SYM(*mask, *src); - - if (mul) c = MUL4_SYM(mul_col, c); - while (dst_len--) - *dst++ = c; - return; - } - - if (src_len == dst_len) - { - if (mul) - { - while (dst_len--) - { - DATA32 c = MUL_SYM(*mask, *src); - *pdst = MUL4_SYM(mul_col, c); - src++; mask++; pdst += step; - } - return; - } - while (dst_len--) - { - *pdst = MUL_SYM(*mask, *src); - src++; mask++; pdst += step; - } - return; - } - - { - DATA32 dsxx = (((src_len - 1) << 16) / (dst_len - 1)); - DATA32 sxx = 0; - int sx = sxx >> 16; - - while (dst_len--) - { - DATA32 p2, p1 = 0; - int a, a2, a1 = 0; - int h1, s1, v1, h2, s2, v2; - - sx = (sxx >> 16); - if (sx < src_len) - { - p1 = *(src + sx); - a1 = *(mask + sx); - } - p2 = p1; a2 = a1; - if ((sx + 1) < src_len) - { - p2 = *(src + sx + 1); - a2 = *(mask + sx + 1); - } - evas_common_convert_color_rgb_to_hsv_int((p1 >> 16) & 0xff, (p1 >> 8) & 0xff, p1 & 0xff, - &h1, &s1, &v1); - evas_common_convert_color_rgb_to_hsv_int((p2 >> 16) & 0xff, (p2 >> 8) & 0xff, p2 & 0xff, - &h2, &s2, &v2); - a = 1 + ((sxx - (sx << 16)) >> 8); - a1 += (a * (a2 - a1)) >> 8; - h1 += (a * (h2 - h1)) >> 8; - s1 += (a * (s2 - s1)) >> 8; - v1 += (a * (v2 - v1)) >> 8; - a = (((((p2 >> 8) & 0xff0000) - ((p1 >> 8) & 0xff0000)) * a) + - (p1 & 0xff000000)) & 0xff000000; - - evas_common_convert_color_hsv_to_rgb_int(h1, s1, v1, &h2, &s2, &v2); - p1 = a + RGB_JOIN(h2,s2,v2); - p1 = MUL_SYM(a1, p1); - if (mul) - p1 = MUL4_SYM(mul_col, p1); - *pdst = p1; - pdst += step; sxx += dsxx; - } - return; - } -} diff --git a/libraries/evas/src/lib/engines/common/evas_scale_span.h b/libraries/evas/src/lib/engines/common/evas_scale_span.h deleted file mode 100644 index 874c594..0000000 --- a/libraries/evas/src/lib/engines/common/evas_scale_span.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _EVAS_SCALE_SPAN_H -#define _EVAS_SCALE_SPAN_H - - -EAPI void evas_common_scale_rgba_span (DATA32 *src, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir); -EAPI void evas_common_scale_rgba_a8_span (DATA32 *src, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir); -EAPI void evas_common_scale_a8_span (DATA32 *src, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir); -EAPI void evas_common_scale_clip_a8_span (DATA32 *src, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir); - -EAPI void evas_common_scale_hsva_span (DATA32 *src, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir); -EAPI void evas_common_scale_hsva_a8_span (DATA32 *src, DATA8 *mask, int src_len, DATA32 mul_col, DATA32 *dst, int dst_len, int dir); - - -#endif /* _EVAS_SCALE_SPAN_H */ diff --git a/libraries/evas/src/lib/engines/common/evas_text_utils.c b/libraries/evas/src/lib/engines/common/evas_text_utils.c deleted file mode 100644 index a00df91..0000000 --- a/libraries/evas/src/lib/engines/common/evas_text_utils.c +++ /dev/null @@ -1,472 +0,0 @@ -#include "evas_common.h" -#include "evas_font_private.h" -#include "evas_text_utils.h" -#include "language/evas_bidi_utils.h" -#include "language/evas_language_utils.h" -#include "evas_font_ot.h" - -void -evas_common_text_props_bidi_set(Evas_Text_Props *props, - Evas_BiDi_Paragraph_Props *bidi_par_props, size_t start) -{ -#ifdef BIDI_SUPPORT - props->bidi.dir = (evas_bidi_is_rtl_char( - bidi_par_props, - 0, - start)) ? EVAS_BIDI_DIRECTION_RTL : EVAS_BIDI_DIRECTION_LTR; -#else - (void) start; - (void) bidi_par_props; - props->bidi.dir = EVAS_BIDI_DIRECTION_LTR; -#endif -} - -void -evas_common_text_props_script_set(Evas_Text_Props *props, Evas_Script_Type scr) -{ - props->script = scr; -} - -void -evas_common_text_props_content_copy_and_ref(Evas_Text_Props *dst, - const Evas_Text_Props *src) -{ - memcpy(dst, src, sizeof(Evas_Text_Props)); - evas_common_text_props_content_ref(dst); -} - -void -evas_common_text_props_content_ref(Evas_Text_Props *props) -{ - /* No content in this case */ - if (!props->info) - return; - - props->info->refcount++; -} - -void -evas_common_text_props_content_unref(Evas_Text_Props *props) -{ - /* No content in this case */ - if (!props->info) - return; - - if (--(props->info->refcount) == 0) - { - if (props->info->glyph) - free(props->info->glyph); -#ifdef OT_SUPPORT - if (props->info->ot) - free(props->info->ot); -#endif - free(props->info); - props->info = NULL; - } -} - -static int -_evas_common_text_props_cluster_move(const Evas_Text_Props *props, int pos, - Eina_Bool right) -{ - int prop_pos = evas_common_text_props_index_find(props, pos); - if (!right && (prop_pos > 0)) - { -#ifdef OT_SUPPORT - return props->info->ot[props->start + prop_pos - 1].source_cluster - - props->text_offset; -#else - return props->start + prop_pos - 1 - props->text_offset; -#endif - } - else if (right && (prop_pos < (int) (props->len - 1))) - { -#ifdef OT_SUPPORT - return props->info->ot[props->start + prop_pos + 1].source_cluster - - props->text_offset; -#else - return props->start + prop_pos + 1 - props->text_offset; -#endif - } - - return pos; -} - -EAPI int -evas_common_text_props_cluster_next(const Evas_Text_Props *props, int pos) -{ - Eina_Bool right; - /* Move right if we are in a non-rtl text */ - right = (props->bidi.dir != EVAS_BIDI_DIRECTION_RTL); - return _evas_common_text_props_cluster_move(props, pos, right); -} - -EAPI int -evas_common_text_props_cluster_prev(const Evas_Text_Props *props, int pos) -{ - Eina_Bool right; - /* Move right if we are in an rtl text */ - right = (props->bidi.dir == EVAS_BIDI_DIRECTION_RTL); - return _evas_common_text_props_cluster_move(props, pos, right); -} - -/* Returns the index of the logical char in the props. */ -EAPI int -evas_common_text_props_index_find(const Evas_Text_Props *props, int _cutoff) -{ -#ifdef OT_SUPPORT - Evas_Font_OT_Info *ot_info; - int min = 0; - int max = props->len - 1; - int mid; - - _cutoff += props->text_offset; - ot_info = props->info->ot + props->start; - /* Should get us closer to the right place. */ - if ((min <= _cutoff) && (_cutoff <= max)) - mid = _cutoff; - else - mid = (min + max) / 2; - - if (props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) - { - /* Monotonic in a descending order */ - do - { - if (_cutoff > (int) ot_info[mid].source_cluster) - max = mid - 1; - else if (_cutoff < (int) ot_info[mid].source_cluster) - min = mid + 1; - else - break; - - mid = (min + max) / 2; - } - while (min <= max); - } - else - { - /* Monotonic in an ascending order */ - do - { - if (_cutoff < (int) ot_info[mid].source_cluster) - max = mid - 1; - else if (_cutoff > (int) ot_info[mid].source_cluster) - min = mid + 1; - else - break; - - mid = (min + max) / 2; - } - while (min <= max); - } - - /* If we didn't find, abort */ - if (min > max) - return -1; - - ot_info += mid; - if (props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) - { - /* Walk to the last one of the same cluster */ - for ( ; mid < (int) props->len ; mid++, ot_info++) - { - if (ot_info->source_cluster != (size_t) _cutoff) - break; - } - mid--; - } - else - { - /* Walk to the last one of the same cluster */ - for ( ; mid >= 0 ; mid--, ot_info--) - { - if (ot_info->source_cluster != (size_t) _cutoff) - break; - } - mid++; - } - - return mid; -#else - return _cutoff; - (void) props; -#endif -} - -/* Won't work in the middle of ligatures, assumes cutoff < len. - * Also won't work in the middle of indic words, should handle that in a - * smart way. */ -EAPI void -evas_common_text_props_split(Evas_Text_Props *base, - Evas_Text_Props *ext, int _cutoff) -{ - size_t cutoff; - - /* Translate text cutoff pos to string object cutoff point */ -#ifdef OT_SUPPORT - _cutoff = evas_common_text_props_index_find(base, _cutoff); - - if (_cutoff >= 0) - { - cutoff = (size_t) _cutoff; - } - else - { - ERR("Couldn't find the cutoff position. Is it inside a cluster?"); - return; - } -#else - cutoff = (size_t) _cutoff; -#endif - - evas_common_text_props_content_copy_and_ref(ext, base); - if (base->bidi.dir == EVAS_BIDI_DIRECTION_RTL) - { - ext->start = base->start; - ext->len = cutoff + 1; - base->start = base->start + ext->len; - base->len = base->len - ext->len; - -#ifdef OT_SUPPORT - ext->text_offset = - ext->info->ot[ext->start + ext->len - 1].source_cluster; -#else - ext->text_offset = base->text_offset + base->len; -#endif - } - else - { - ext->start = base->start + cutoff; - ext->len = base->len - cutoff; - base->len = cutoff; - -#ifdef OT_SUPPORT - ext->text_offset = ext->info->ot[ext->start].source_cluster; -#else - ext->text_offset = base->text_offset + base->len; -#endif - } - ext->text_len = base->text_len - (ext->text_offset - base->text_offset); - base->text_len = (ext->text_offset - base->text_offset); -} - -/* Won't work in the middle of ligatures */ -EAPI void -evas_common_text_props_merge(Evas_Text_Props *item1, - const Evas_Text_Props *item2) -{ - if (item1->info != item2->info) - { - ERR("tried merge back items that weren't together in the first place."); - return; - } - if (item1->bidi.dir == EVAS_BIDI_DIRECTION_RTL) - { - item1->start = item2->start; - } - - item1->len += item2->len; - item1->text_len += item2->text_len; -} - -EAPI Eina_Bool -evas_common_text_props_content_create(void *_fi, const Eina_Unicode *text, - Evas_Text_Props *text_props, const Evas_BiDi_Paragraph_Props *par_props, - size_t par_pos, int len) -{ - RGBA_Font_Int *fi = (RGBA_Font_Int *) _fi; - - if (text_props->info) - { - evas_common_text_props_content_unref(text_props); - } - if (len == 0) - { - text_props->info = NULL; - text_props->start = text_props->len = text_props->text_offset = 0; - } - text_props->info = calloc(1, sizeof(Evas_Text_Props_Info)); - - text_props->font_instance = fi; - - evas_common_font_int_reload(fi); - if (fi->src->current_size != fi->size) - { - FTLOCK(); - FT_Activate_Size(fi->ft.size); - FTUNLOCK(); - fi->src->current_size = fi->size; - } - -#ifdef OT_SUPPORT - size_t char_index; - Evas_Font_Glyph_Info *gl_itr; - Evas_Coord pen_x = 0, adjust_x = 0; - (void) par_props; - (void) par_pos; - - evas_common_font_ot_populate_text_props(text, text_props, len); - - gl_itr = text_props->info->glyph; - for (char_index = 0 ; char_index < text_props->len ; char_index++) - { - FT_UInt idx; - RGBA_Font_Glyph *fg; - Eina_Bool is_replacement = EINA_FALSE; - /* If we got a malformed index, show the replacement char instead */ - if (gl_itr->index == 0) - { - gl_itr->index = evas_common_get_char_index(fi, REPLACEMENT_CHAR); - is_replacement = EINA_TRUE; - } - idx = gl_itr->index; - LKL(fi->ft_mutex); - fg = evas_common_font_int_cache_glyph_get(fi, idx); - if (!fg) - { - LKU(fi->ft_mutex); - continue; - } - LKU(fi->ft_mutex); - - gl_itr->x_bear = fg->glyph_out->left; - gl_itr->width = fg->glyph_out->bitmap.width; - /* text_props->info->glyph[char_index].advance = - * text_props->info->glyph[char_index].index = - * already done by the ot function */ - if (EVAS_FONT_CHARACTER_IS_INVISIBLE( - text[text_props->info->ot[char_index].source_cluster])) - { - gl_itr->index = 0; - /* Reduce the current advance */ - if (gl_itr > text_props->info->glyph) - { - adjust_x -= gl_itr->pen_after - (gl_itr - 1)->pen_after; - } - else - { - adjust_x -= gl_itr->pen_after; - } - } - else - { - if (is_replacement) - { - /* Update the advance accordingly */ - adjust_x += (pen_x + (fg->glyph->advance.x >> 16)) - - gl_itr->pen_after; - } - pen_x = gl_itr->pen_after; - } - gl_itr->pen_after += adjust_x; - - fi = text_props->font_instance; - gl_itr++; - } -#else - /* We are walking the string in visual ordering */ - Evas_Font_Glyph_Info *gl_itr; - Eina_Bool use_kerning; - FT_UInt prev_index; - FT_Face pface = NULL; - Evas_Coord pen_x = 0; - int adv_d, i; -#if !defined(OT_SUPPORT) && defined(BIDI_SUPPORT) - Eina_Unicode *base_str = NULL; - if (text_props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) - { - text = base_str = eina_unicode_strndup(text, len); - evas_bidi_shape_string(base_str, par_props, par_pos, len); - } -#else - (void) par_props; - (void) par_pos; -#endif - - FTLOCK(); - use_kerning = FT_HAS_KERNING(fi->src->ft.face); - FTUNLOCK(); - prev_index = 0; - - i = len; - text_props->info->glyph = calloc(len, - sizeof(Evas_Font_Glyph_Info)); - - if (text_props->bidi.dir == EVAS_BIDI_DIRECTION_RTL) - { - text += len - 1; - adv_d = -1; - } - else - { - adv_d = 1; - } - - gl_itr = text_props->info->glyph; - for ( ; i > 0 ; gl_itr++, text += adv_d, i--) - { - FT_UInt idx; - RGBA_Font_Glyph *fg; - int _gl, kern; - Evas_Coord adv; - _gl = *text; - if (_gl == 0) break; - - idx = evas_common_get_char_index(fi, _gl); - if (idx == 0) - { - idx = evas_common_get_char_index(fi, REPLACEMENT_CHAR); - } - - LKL(fi->ft_mutex); - fg = evas_common_font_int_cache_glyph_get(fi, idx); - if (!fg) - { - LKU(fi->ft_mutex); - continue; - } - kern = 0; - - if ((use_kerning) && (prev_index) && (idx) && - (pface == fi->src->ft.face)) - { - if (evas_common_font_query_kerning(fi, prev_index, idx, &kern)) - { - pen_x += kern; - (gl_itr - 1)->pen_after += - EVAS_FONT_ROUND_26_6_TO_INT(kern); - } - } - - pface = fi->src->ft.face; - LKU(fi->ft_mutex); - - gl_itr->index = idx; - gl_itr->x_bear = fg->glyph_out->left; - adv = fg->glyph->advance.x >> 10; - gl_itr->width = fg->glyph_out->bitmap.width; - - if (EVAS_FONT_CHARACTER_IS_INVISIBLE(_gl)) - { - gl_itr->index = 0; - } - else - { - pen_x += adv; - } - - gl_itr->pen_after = EVAS_FONT_ROUND_26_6_TO_INT(pen_x); - - prev_index = idx; - } - text_props->len = len; -# if !defined(OT_SUPPORT) && defined(BIDI_SUPPORT) - if (base_str) - free(base_str); -# endif -#endif - text_props->text_len = len; - text_props->info->refcount = 1; - return EINA_TRUE; -} diff --git a/libraries/evas/src/lib/engines/common/evas_text_utils.h b/libraries/evas/src/lib/engines/common/evas_text_utils.h deleted file mode 100644 index 7f1c802..0000000 --- a/libraries/evas/src/lib/engines/common/evas_text_utils.h +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef _EVAS_TEXT_UTILS_H -# define _EVAS_TEXT_UTILS_H - -typedef struct _Evas_Text_Props Evas_Text_Props; -typedef struct _Evas_Text_Props_Info Evas_Text_Props_Info; -typedef struct _Evas_Font_Glyph_Info Evas_Font_Glyph_Info; - -# include "evas_font_ot.h" -# include "language/evas_bidi_utils.h" -# include "language/evas_language_utils.h" - -/* Used for showing "malformed" or missing chars */ -#define REPLACEMENT_CHAR 0xFFFD - -struct _Evas_Text_Props -{ - /* Start and len represent the start offset and the length in the - * glyphs_info and ot_data fields, they are both internal */ - size_t start; - size_t len; - size_t text_offset; /* The text offset from the start of the info */ - size_t text_len; /* The length of the original text */ - Evas_BiDi_Props bidi; - Evas_Script_Type script; - Evas_Text_Props_Info *info; - void *font_instance; -}; - -struct _Evas_Text_Props_Info -{ - unsigned int refcount; - Evas_Font_Glyph_Info *glyph; - Evas_Font_OT_Info *ot; -}; - -/* Sorted in visual order when created */ -struct _Evas_Font_Glyph_Info -{ - unsigned int index; /* Should conform to FT */ - Evas_Coord x_bear; -#if 0 - /* This one is rarely used, only in draw, in which we already get the glyph - * so it doesn't really save time. Leaving it here just so no one will - * add it thinking it was accidentally skipped */ - Evas_Coord y_bear; -#endif - Evas_Coord width; - Evas_Coord pen_after; -}; - - -void -evas_common_text_props_bidi_set(Evas_Text_Props *props, - Evas_BiDi_Paragraph_Props *bidi_par_props, size_t start); - -void -evas_common_text_props_script_set(Evas_Text_Props *props, Evas_Script_Type scr); - -EAPI Eina_Bool -evas_common_text_props_content_create(void *_fi, const Eina_Unicode *text, - Evas_Text_Props *text_props, const Evas_BiDi_Paragraph_Props *par_props, - size_t par_pos, int len); - -void -evas_common_text_props_content_copy_and_ref(Evas_Text_Props *dst, - const Evas_Text_Props *src); - -void -evas_common_text_props_content_ref(Evas_Text_Props *props); - -void -evas_common_text_props_content_unref(Evas_Text_Props *props); - -EAPI int -evas_common_text_props_cluster_next(const Evas_Text_Props *props, int pos); - -EAPI int -evas_common_text_props_cluster_prev(const Evas_Text_Props *props, int pos); - -EAPI int -evas_common_text_props_index_find(const Evas_Text_Props *props, int _cutoff); - -EAPI void -evas_common_text_props_split(Evas_Text_Props *base, Evas_Text_Props *ext, - int cutoff); -EAPI void -evas_common_text_props_merge(Evas_Text_Props *item1, const Evas_Text_Props *item2); - -#endif diff --git a/libraries/evas/src/lib/engines/common/evas_tiler.c b/libraries/evas/src/lib/engines/common/evas_tiler.c deleted file mode 100644 index bc5e99c..0000000 --- a/libraries/evas/src/lib/engines/common/evas_tiler.c +++ /dev/null @@ -1,1439 +0,0 @@ -#include "evas_common.h" -#ifdef EVAS_RECT_SPLIT - -static inline void rect_list_node_pool_set_max(int max); -static inline void rect_list_node_pool_flush(void); -static inline list_node_t *rect_list_node_pool_get(void); -static inline void rect_list_node_pool_put(list_node_t *node); -static inline void rect_init(rect_t *r, int x, int y, int w, int h); -static inline void rect_list_append_node(list_t *rects, list_node_t *node); -static inline void rect_list_append(list_t *rects, const rect_t r); -static inline void rect_list_append_xywh(list_t *rects, int x, int y, int w, int h); -static inline void rect_list_concat(list_t *rects, list_t *other); -static inline list_node_t *rect_list_unlink_next(list_t *rects, list_node_t *parent_node); -static inline void rect_list_del_next(list_t *rects, list_node_t *parent_node); -static inline void rect_list_clear(list_t *rects); -static inline void rect_list_del_split_strict(list_t *rects, const rect_t del_r); -static inline void rect_list_add_split_strict(list_t *rects, list_node_t *node); -static inline list_node_t *rect_list_add_split_fuzzy(list_t *rects, list_node_t *node, int accepted_error); -static inline void rect_list_merge_rects(list_t *rects, list_t *to_merge, int accepted_error); -static inline void rect_list_add_split_fuzzy_and_merge(list_t *rects, list_node_t *node, int split_accepted_error, int merge_accepted_error); -static inline void rect_print(const rect_t r); -#if 0 -static inline void rect_list_print(const list_t rects); -#endif - -static const list_node_t list_node_zeroed = { NULL }; -static const list_t list_zeroed = { NULL, NULL }; - -typedef struct list_node_pool -{ - list_node_t *node; - int len; - int max; -} list_node_pool_t; - -static list_node_pool_t list_node_pool = { NULL, 0, 1024 }; - -static inline void -rect_list_node_pool_set_max(int max) -{ - int diff; - - diff = list_node_pool.len - max; - for (; diff > 0 && list_node_pool.node; diff--) - { - list_node_t *node; - - node = list_node_pool.node; - list_node_pool.node = node->next; - list_node_pool.len--; - - free(node); - } - - list_node_pool.max = max; -} - -static inline void -rect_list_node_pool_flush(void) -{ - while (list_node_pool.node) - { - list_node_t *node; - - node = list_node_pool.node; - list_node_pool.node = node->next; - list_node_pool.len--; - - free(node); - } -} - -static inline list_node_t * -rect_list_node_pool_get(void) -{ - if (list_node_pool.node) - { - list_node_t *node; - - node = list_node_pool.node; - list_node_pool.node = node->next; - list_node_pool.len--; - - return node; - } - else return malloc(sizeof(rect_node_t)); -} - -static inline void -rect_list_node_pool_put(list_node_t *node) -{ - if (list_node_pool.len < list_node_pool.max) - { - node->next = list_node_pool.node; - list_node_pool.node = node; - list_node_pool.len++; - } - else free(node); -} - -static inline void -rect_init(rect_t *r, int x, int y, int w, int h) -{ - r->area = w * h; - - r->left = x; - r->top = y; - - r->right = x + w; - r->bottom = y + h; - - r->width = w; - r->height = h; -} - -static inline void -rect_print(const rect_t r) -{ - INF("", r.left, r.top, r.width, r.height); -} - -#if 0 -static inline void -rect_list_print(const list_t rects) -{ - list_node_t *node; - int len; - - len = 0; - for (node = rects.head; node; node = node->next) len++; - - putchar('['); - for (node = rects.head; node; node = node->next) - { - rect_print(((rect_node_t *)node)->rect); - if (node->next) - { - putchar(','); - if (len < 4) putchar(' '); - else - { - putchar('\n'); - putchar(' '); - } - } - } - putchar(']'); -} -#endif - -static inline void -rect_list_append_node(list_t *rects, list_node_t *node) -{ - if (rects->tail) - { - rects->tail->next = node; - rects->tail = node; - } - else - { - rects->head = node; - rects->tail = node; - } -} - -static inline void -rect_list_append(list_t *rects, const rect_t r) -{ - rect_node_t *rect_node; - - rect_node = (rect_node_t *)rect_list_node_pool_get(); - rect_node->rect = r; - rect_node->_lst = list_node_zeroed; - - rect_list_append_node(rects, (list_node_t *)rect_node); -} - -static inline void -rect_list_append_xywh(list_t *rects, int x, int y, int w, int h) -{ - rect_t r; - - rect_init(&r, x, y, w, h); - rect_list_append(rects, r); -} - -static inline void -rect_list_concat(list_t *rects, list_t *other) -{ - if (!other->head) - return; - - if (rects->tail) - { - rects->tail->next = other->head; - rects->tail = other->tail; - } - else - { - rects->head = other->head; - rects->tail = other->tail; - } - *other = list_zeroed; -} - -static inline list_node_t * -rect_list_unlink_next(list_t *rects, list_node_t *parent_node) -{ - list_node_t *node; - - if (parent_node) - { - node = parent_node->next; - parent_node->next = node->next; - } - else - { - node = rects->head; - rects->head = node->next; - } - - if (rects->tail == node) rects->tail = parent_node; - *node = list_node_zeroed; - return node; -} - -static inline void -rect_list_del_next(list_t *rects, list_node_t *parent_node) -{ - list_node_t *node; - - node = rect_list_unlink_next(rects, parent_node); - rect_list_node_pool_put(node); -} - -static inline void -rect_list_clear(list_t *rects) -{ - list_node_t *node; - - node = rects->head; - while (node) - { - list_node_t *aux; - - aux = node->next; - rect_list_node_pool_put(node); - node = aux; - } - *rects = list_zeroed; -} - -static inline void -_calc_intra_rect_area(const rect_t a, const rect_t b, int *width, int *height) -{ - int max_left, min_right, max_top, min_bottom; - - if (a.left < b.left) max_left = b.left; - else max_left = a.left; - - if (a.right < b.right) min_right = a.right; - else min_right = b.right; - - *width = min_right - max_left; - - if (a.top < b.top) max_top = b.top; - else max_top = a.top; - - if (a.bottom < b.bottom) min_bottom = a.bottom; - else min_bottom = b.bottom; - - *height = min_bottom - max_top; -} - -static inline void -_split_strict(list_t *dirty, const rect_t current, rect_t r) -{ - int h_1, h_2, w_1, w_2; - - h_1 = current.top - r.top; - h_2 = r.bottom - current.bottom; - w_1 = current.left - r.left; - w_2 = r.right - current.right; - - if (h_1 > 0) - { - /* .--.r (b) .---.r2 - * | | | | - * .-------.cur (a) .---.r '---' - * | | | | -> | | + - * | `--' | `---' - * `-------' - */ - rect_list_append_xywh(dirty, r.left, r.top, r.width, h_1); - r.height -= h_1; - r.top = current.top; - } - - if (h_2 > 0) - { - /* .-------.cur (a) - * | .---. | .---.r - * | | | | -> | | - * `-------' `---' + .---.r2 - * | | | | - * `---'r (b) `---' - */ - rect_list_append_xywh(dirty, r.left, current.bottom, r.width, h_2); - r.height -= h_2; - } - - if (w_1 > 0) - { - /* (b) r .----.cur (a) - * .--|-. | .--.r2 .-.r - * | | | | -> | | + | | - * `--|-' | `--' `-' - * `----' - */ - rect_list_append_xywh(dirty, r.left, r.top, w_1, r.height); - /* not necessary to keep these, r (b) will be destroyed */ - /* r.width -= w_1; */ - /* r.left = current.left; */ - } - - if (w_2 > 0) - { - /* .----.cur (a) - * | | - * | .-|--.r (b) .-.r .--.r2 - * | | | | -> | | + | | - * | `-|--' `-' `--' - * `----' - */ - rect_list_append_xywh(dirty, current.right, r.top, w_2, r.height); - /* not necessary to keep this, r (b) will be destroyed */ - /* r.width -= w_2; */ - } -} - -static inline void -rect_list_del_split_strict(list_t *rects, const rect_t del_r) -{ - list_t modified = list_zeroed; - list_node_t *cur_node, *prev_node; - - prev_node = NULL; - cur_node = rects->head; - while (cur_node) - { - int intra_width, intra_height; - rect_t current; - - current = ((rect_node_t*)cur_node)->rect; - - _calc_intra_rect_area(del_r, current, &intra_width, &intra_height); - if ((intra_width <= 0) || (intra_height <= 0)) - { - /* .---.current .---.del_r - * | | | | - * `---+---.del_r `---+---.current - * | | | | - * `---' `---' - * no interception, nothing to do - */ - prev_node = cur_node; - cur_node = cur_node->next; - } - else if ((intra_width == current.width) && - (intra_height == current.height)) - { - /* .-------.del_r - * | .---. | - * | | | | - * | `---'current - * `-------' - * current is contained, remove from rects - */ - cur_node = cur_node->next; - rect_list_del_next(rects, prev_node); - } - else - { - _split_strict(&modified, del_r, current); - cur_node = cur_node->next; - rect_list_del_next(rects, prev_node); - } - } - - rect_list_concat(rects, &modified); -} - -static inline void -rect_list_add_split_strict(list_t *rects, list_node_t *node) -{ - list_t dirty = list_zeroed; - list_t new_dirty = list_zeroed; - list_node_t *cur_node; - - if (!rects->head) - { - rect_list_append_node(rects, node); - return; - } - - rect_list_append_node(&dirty, node); - - cur_node = rects->head; - while (dirty.head) - { - rect_t current; - - if (!cur_node) - { - rect_list_concat(rects, &dirty); - break; - } - - current = ((rect_node_t*)cur_node)->rect; - - while (dirty.head) - { - int intra_width, intra_height; - rect_t r; - - r = ((rect_node_t *)dirty.head)->rect; - _calc_intra_rect_area(r, current, &intra_width, &intra_height); - if ((intra_width == r.width) && (intra_height == r.height)) - /* .-------.cur - * | .---.r| - * | | | | - * | `---' | - * `-------' - */ - rect_list_del_next(&dirty, NULL); - else if ((intra_width <= 0) || (intra_height <= 0)) - { - /* .---.cur .---.r - * | | | | - * `---+---.r `---+---.cur - * | | | | - * `---' `---' - */ - list_node_t *tmp; - tmp = rect_list_unlink_next(&dirty, NULL); - rect_list_append_node(&new_dirty, tmp); - } - else - { - _split_strict(&new_dirty, current, r); - rect_list_del_next(&dirty, NULL); - } - } - dirty = new_dirty; - new_dirty = list_zeroed; - - cur_node = cur_node->next; - } -} - -static inline void -_calc_intra_outer_rect_area(const rect_t a, const rect_t b, - rect_t *intra, rect_t *outer) -{ - int min_left, max_left, min_right, max_right; - int min_top, max_top, min_bottom, max_bottom; - - if (a.left < b.left) - { - max_left = b.left; - min_left = a.left; - } - else - { - max_left = a.left; - min_left = b.left; - } - - if (a.right < b.right) - { - min_right = a.right; - max_right = b.right; - } - else - { - min_right = b.right; - max_right = a.right; - } - - intra->left = max_left; - intra->right = min_right; - intra->width = min_right - max_left; - - outer->left = min_left; - outer->right = max_right; - outer->width = max_right - min_left; - - if (a.top < b.top) - { - max_top = b.top; - min_top = a.top; - } - else - { - max_top = a.top; - min_top = b.top; - } - - if (a.bottom < b.bottom) - { - min_bottom = a.bottom; - max_bottom = b.bottom; - } - else - { - min_bottom = b.bottom; - max_bottom = a.bottom; - } - - intra->top = max_top; - intra->bottom = min_bottom; - intra->height = min_bottom - max_top; - if ((intra->width > 0) && (intra->height > 0)) - intra->area = intra->width * intra->height; - else - intra->area = 0; - - outer->top = min_top; - outer->bottom = max_bottom; - outer->height = max_bottom - min_top; - outer->area = outer->width * outer->height; -} - -enum -{ - SPLIT_FUZZY_ACTION_NONE, - SPLIT_FUZZY_ACTION_SPLIT, - SPLIT_FUZZY_ACTION_MERGE -}; - -static inline int -_split_fuzzy(list_t *dirty, const rect_t a, rect_t *b) -{ - int h_1, h_2, w_1, w_2, action; - - h_1 = a.top - b->top; - h_2 = b->bottom - a.bottom; - w_1 = a.left - b->left; - w_2 = b->right - a.right; - - action = SPLIT_FUZZY_ACTION_NONE; - - if (h_1 > 0) - { - /* .--.r (b) .---.r2 - * | | | | - * .-------.cur (a) .---.r '---' - * | | | | -> | | + - * | `--' | `---' - * `-------' - */ - rect_list_append_xywh(dirty, b->left, b->top, b->width, h_1); - b->height -= h_1; - b->top = a.top; - action = SPLIT_FUZZY_ACTION_SPLIT; - } - - if (h_2 > 0) - { - /* .-------.cur (a) - * | .---. | .---.r - * | | | | -> | | - * `-------' `---' + .---.r2 - * | | | | - * `---'r (b) `---' - */ - rect_list_append_xywh(dirty, b->left, a.bottom, b->width, h_2); - b->height -= h_2; - action = SPLIT_FUZZY_ACTION_SPLIT; - } - - if (((w_1 > 0) || (w_2 > 0)) && (a.height == b->height)) - return SPLIT_FUZZY_ACTION_MERGE; - - if (w_1 > 0) - { - /* (b) r .----.cur (a) - * .--|-. | .--.r2 .-.r - * | | | | -> | | + | | - * `--|-' | `--' `-' - * `----' - */ - rect_list_append_xywh(dirty, b->left, b->top, w_1, b->height); - /* not necessary to keep these, r (b) will be destroyed */ - /* b->width -= w_1; */ - /* b->left = a.left; */ - action = SPLIT_FUZZY_ACTION_SPLIT; - } - - if (w_2 > 0) - { - /* .----.cur (a) - * | | - * | .-|--.r (b) .-.r .--.r2 - * | | | | -> | | + | | - * | `-|--' `-' `--' - * `----' - */ - rect_list_append_xywh(dirty, a.right, b->top, w_2, b->height); - /* not necessary to keep these, r (b) will be destroyed */ - /* b->width -= w_2; */ - action = SPLIT_FUZZY_ACTION_SPLIT; - } - - return action; -} - -static inline list_node_t * -rect_list_add_split_fuzzy(list_t *rects, list_node_t *node, int accepted_error) -{ - list_t dirty = list_zeroed; - list_node_t *old_last; - - old_last = rects->tail; - - if (!rects->head) - { - rect_list_append_node(rects, node); - return old_last; - } - - rect_list_append_node(&dirty, node); - while (dirty.head) - { - list_node_t *d_node, *cur_node, *prev_cur_node; - int keep_dirty; - rect_t r; - - d_node = rect_list_unlink_next(&dirty, NULL); - r = ((rect_node_t *)d_node)->rect; - - prev_cur_node = NULL; - cur_node = rects->head; - keep_dirty = 1; - while (cur_node) - { - int area, action; - rect_t current, intra, outer; - - current = ((rect_node_t *)cur_node)->rect; - - _calc_intra_outer_rect_area(r, current, &intra, &outer); - area = current.area + r.area - intra.area; - - if ((intra.width == r.width) && (intra.height == r.height)) - { - /* .-------.cur - * | .---.r| - * | | | | - * | `---' | - * `-------' - */ - keep_dirty = 0; - break; - } - else if ((intra.width == current.width) && - (intra.height == current.height)) - { - /* .-------.r - * | .---.cur - * | | | | - * | `---' | - * `-------' - */ - if (old_last == cur_node) - old_last = prev_cur_node; - cur_node = cur_node->next; - rect_list_del_next(rects, prev_cur_node); - } - else if ((outer.area - area) <= accepted_error) - { - /* .-----------. bounding box (outer) - * |.---. .---.| - * ||cur| |r || - * || | | || - * |`---' `---'| - * `-----------' - * merge them, remove both and add merged - */ - rect_node_t *n; - - if (old_last == cur_node) - old_last = prev_cur_node; - - n = (rect_node_t *)rect_list_unlink_next(rects, prev_cur_node); - n->rect = outer; - rect_list_append_node(&dirty, (list_node_t *)n); - - keep_dirty = 0; - break; - } - else if (intra.area <= accepted_error) - { - /* .---.cur .---.r - * | | | | - * `---+---.r `---+---.cur - * | | | | - * `---' `---' - * no split, no merge - */ - prev_cur_node = cur_node; - cur_node = cur_node->next; - } - else - { - /* split is required */ - action = _split_fuzzy(&dirty, current, &r); - if (action == SPLIT_FUZZY_ACTION_MERGE) - { - /* horizontal merge is possible: remove both, add merged */ - rect_node_t *n; - - if (old_last == cur_node) - old_last = prev_cur_node; - - n = (rect_node_t *) - rect_list_unlink_next(rects, prev_cur_node); - - n->rect.left = outer.left; - n->rect.width = outer.width; - n->rect.right = outer.right; - n->rect.area = outer.width * r.height; - rect_list_append_node(&dirty, (list_node_t *)n); - } - else if (action == SPLIT_FUZZY_ACTION_NONE) - { - /* - * this rect check was totally useless, - * should never happen - */ - /* prev_cur_node = cur_node; */ - /* cur_node = cur_node->next; */ - WRN("Should not get here!"); - abort(); - } - - keep_dirty = 0; - break; - } - } - - if (UNLIKELY(keep_dirty)) rect_list_append_node(rects, d_node); - else rect_list_node_pool_put(d_node); - } - - return old_last; -} - -static inline void -_calc_outer_rect_area(const rect_t a, const rect_t b, rect_t *outer) -{ - int min_left, max_right; - int min_top, max_bottom; - - if (a.left < b.left) min_left = a.left; - else min_left = b.left; - - if (a.right < b.right) max_right = b.right; - else max_right = a.right; - - outer->left = min_left; - outer->right = max_right; - outer->width = max_right - min_left; - - if (a.top < b.top) min_top = a.top; - else min_top = b.top; - - if (a.bottom < b.bottom) max_bottom = b.bottom; - else max_bottom = a.bottom; - - outer->top = min_top; - outer->bottom = max_bottom; - outer->height = max_bottom - min_top; - - outer->area = outer->width * outer->height; -} - -static inline void -rect_list_merge_rects(list_t *rects, list_t *to_merge, int accepted_error) -{ - while (to_merge->head) - { - list_node_t *node, *parent_node; - rect_t r1; - int merged; - - r1 = ((rect_node_t *)to_merge->head)->rect; - - merged = 0; - parent_node = NULL; - node = rects->head; - while (node) - { - rect_t r2, outer; - int area; - - r2 = ((rect_node_t *)node)->rect; - - _calc_outer_rect_area(r1, r2, &outer); - area = r1.area + r2.area; /* intra area is taken as 0 */ - if (outer.area - area <= accepted_error) - { - /* - * remove both r1 and r2, create r3 - * actually r3 uses r2 instance, saves memory - */ - rect_node_t *n; - - n = (rect_node_t *)rect_list_unlink_next(rects, parent_node); - n->rect = outer; - rect_list_append_node(to_merge, (list_node_t *)n); - merged = 1; - break; - } - - parent_node = node; - node = node->next; - } - - if (!merged) - { - list_node_t *n; - n = rect_list_unlink_next(to_merge, NULL); - rect_list_append_node(rects, n); - } - else - rect_list_del_next(to_merge, NULL); - } -} - -static inline void -rect_list_add_split_fuzzy_and_merge(list_t *rects, - list_node_t *node, - int split_accepted_error, - int merge_accepted_error) -{ - list_node_t *n; - - n = rect_list_add_split_fuzzy(rects, node, split_accepted_error); - if (n && n->next) - { - list_t to_merge; - - /* split list into 2 segments, already merged and to merge */ - to_merge.head = n->next; - to_merge.tail = rects->tail; - rects->tail = n; - n->next = NULL; - - rect_list_merge_rects(rects, &to_merge, merge_accepted_error); - } -} -#endif /* EVAS_RECT_SPLIT */ - -#define TILE(tb, x, y) ((tb)->tiles.tiles[((y) * (tb)->tiles.w) + (x)]) - -#ifdef RECTUPDATE -#elif defined(EVAS_RECT_SPLIT) -#else -/* -static int tilebuf_x_intersect(Tilebuf *tb, int x, int w, int *x1, int *x2, int *x1_fill, int *x2_fill); -static int tilebuf_y_intersect(Tilebuf *tb, int y, int h, int *y1, int *y2, int *y1_fill, int *y2_fill); -static int tilebuf_intersect(int tsize, int tlen, int tnum, int x, int w, int *x1, int *x2, int *x1_fill, int *x2_fill); - */ -#endif -/* -static void tilebuf_setup(Tilebuf *tb); - */ - -EAPI void -evas_common_tilebuf_init(void) -{ -} - -EAPI Tilebuf * -evas_common_tilebuf_new(int w, int h) -{ - Tilebuf *tb; - - tb = calloc(1, sizeof(Tilebuf)); - if (!tb) return NULL; - - tb->tile_size.w = 8; - tb->tile_size.h = 8; - tb->outbuf_w = w; - tb->outbuf_h = h; - - return tb; -} - -EAPI void -evas_common_tilebuf_free(Tilebuf *tb) -{ -#ifdef RECTUPDATE -/* - evas_common_regionbuf_free(tb->rb); - */ -#elif defined(EVAS_RECT_SPLIT) - rect_list_clear(&tb->rects); - rect_list_node_pool_flush(); -#else -/* - if (tb->tiles.tiles) free(tb->tiles.tiles); - */ -#endif - free(tb); -} - -EAPI void -evas_common_tilebuf_set_tile_size(Tilebuf *tb, int tw, int th) -{ - tb->tile_size.w = tw; - tb->tile_size.h = th; -/* - tilebuf_setup(tb); - */ -} - -EAPI void -evas_common_tilebuf_get_tile_size(Tilebuf *tb, int *tw, int *th) -{ - if (tw) *tw = tb->tile_size.w; - if (th) *th = tb->tile_size.h; -} - -#ifdef EVAS_RECT_SPLIT -static inline int -_add_redraw(list_t *rects, int x, int y, int w, int h) -{ - rect_node_t *rn; -/* we dont need to do this fuzz stuff - it actually creates overdraw bugs - * when evas shouldnt draw at all. - x >>= 1; - y >>= 1; - w += 2; - w >>= 1; - h += 2; - h >>= 1; - */ - rn = (rect_node_t *)rect_list_node_pool_get(); - rn->_lst = list_node_zeroed; - rect_init(&rn->rect, x, y, w, h); - //INF("ACCOUNTING: add_redraw: %4d,%4d %3dx%3d", x, y, w, h); - //testing on my core2 duo desktop - fuzz of 32 or 48 is best. -#define FUZZ 32 - rect_list_add_split_fuzzy_and_merge(rects, (list_node_t *)rn, - FUZZ * FUZZ, FUZZ * FUZZ); - return 1; -} -#endif - -EAPI int -evas_common_tilebuf_add_redraw(Tilebuf *tb, int x, int y, int w, int h) -{ -#ifdef RECTUPDATE -/* - int i; - - if ((w <= 0) || (h <= 0)) return 0; - RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, tb->outbuf_w, tb->outbuf_h); - if ((w <= 0) || (h <= 0)) return 0; - for (i = 0; i < h; i++) - evas_common_regionbuf_span_add(tb->rb, x, x + w - 1, y + i); - return 1; - */ -#elif defined(EVAS_RECT_SPLIT) - if ((w <= 0) || (h <= 0)) return 0; - RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, tb->outbuf_w, tb->outbuf_h); - if ((w <= 0) || (h <= 0)) return 0; - // optimize a common case -> adding the exact same rect 2x in a row - if ((tb->prev_add.x == x) && (tb->prev_add.y == y) && - (tb->prev_add.w == w) && (tb->prev_add.h == h)) return 1; - tb->prev_add.x = x; tb->prev_add.y = y; - tb->prev_add.w = w; tb->prev_add.h = h; - tb->prev_del.w = 0; tb->prev_del.h = 0; - return _add_redraw(&tb->rects, x, y, w, h); -#else -/* - int tx1, tx2, ty1, ty2, tfx1, tfx2, tfy1, tfy2, xx, yy; - int num; - - if ((w <= 0) || (h <= 0)) return 0; - RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, tb->outbuf_w, tb->outbuf_h); - if ((w <= 0) || (h <= 0)) return 0; - num = 0; - // wipes out any motion vectors in tiles it touches into redraws - if (tilebuf_x_intersect(tb, x, w, &tx1, &tx2, &tfx1, &tfx2) && - tilebuf_y_intersect(tb, y, h, &ty1, &ty2, &tfy1, &tfy2)) - { - Tilebuf_Tile *tbt; - int delta_x; - int delta_y; - - tbt = &(TILE(tb, tx1, ty1)); - delta_x = tx2 - tx1 + 1; - delta_y = ty2 - ty1 + 1; - for (yy = delta_y; yy > 0; yy--) - { - Tilebuf_Tile *tbti; - - tbti = tbt; - for (xx = delta_x; xx > 0; xx--) - { - tbti->redraw = 1; - tbti++; - } - tbt += tb->tiles.w; - } - num = (tx2 - tx1 + 1) * (ty2 - ty1 + 1); - } - return num; - */ -#endif -} - -EAPI int -evas_common_tilebuf_del_redraw(Tilebuf *tb, int x, int y, int w, int h) -{ -#ifdef RECTUPDATE -/* - int i; - - for (i = 0; i < h; i++) - evas_common_regionbuf_span_del(tb->rb, x, x + w - 1, y + i); - */ -#elif defined(EVAS_RECT_SPLIT) - rect_t r; - - if (!tb->rects.head) return 0; - if ((w <= 0) || (h <= 0)) return 0; - RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, tb->outbuf_w, tb->outbuf_h); - if ((w <= 0) || (h <= 0)) return 0; - -/* we dont need to do this fuzz stuff - it actually creates overdraw bugs - * when evas shouldnt draw at all. - x += 1; - y += 1; - x >>= 1; - y >>= 1; - w -= 1; - w >>= 1; - h -= 1; - h >>= 1; - - if ((w <= 0) || (h <= 0)) return 0; - */ - - // optimize a common case -> deleting the exact same rect 2x in a row - if ((tb->prev_del.x == x) && (tb->prev_del.y == y) && - (tb->prev_del.w == w) && (tb->prev_del.h == h)) return 1; - tb->prev_del.x = x; tb->prev_del.y = y; - tb->prev_del.w = w; tb->prev_del.h = h; - tb->prev_add.w = 0; tb->prev_add.h = 0; - rect_init(&r, x, y, w, h); - - rect_list_del_split_strict(&tb->rects, r); - tb->need_merge = 1; - return 0; -#else -/* - int tx1, tx2, ty1, ty2, tfx1, tfx2, tfy1, tfy2, xx, yy; - int num; - - num = 0; - // wipes out any motion vectors in tiles it touches into redraws - if (tilebuf_x_intersect(tb, x, w, &tx1, &tx2, &tfx1, &tfx2) && - tilebuf_y_intersect(tb, y, h, &ty1, &ty2, &tfy1, &tfy2)) - { - Tilebuf_Tile *tbt; - int delta_y; - int delta_x; - - if (!tfx1) tx1++; - if (!tfx2) tx2--; - if (!tfy1) ty1++; - if (!tfy2) ty2--; - - tbt = &(TILE(tb, tx1, ty1)); - delta_x = tx2 - tx1 + 1; - delta_y = ty2 - ty1 + 1; - for (yy = delta_y; yy > 0; yy--) - { - Tilebuf_Tile *tbti; - - tbti = tbt; - for (xx = delta_x; xx > 0; xx--) - { - tbti->redraw = 0; - tbti++; - } - tbt += tb->tiles.w; - } - num = (tx2 - tx1 + 1) * (ty2 - ty1 + 1); - } - return num; - */ -#endif -} - -EAPI int -evas_common_tilebuf_add_motion_vector(Tilebuf *tb __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__, int dx __UNUSED__, int dy __UNUSED__, int alpha __UNUSED__) -{ -#ifdef EVAS_RECT_SPLIT -/* motion vector handling never has been used -> disable it - list_t lr = list_zeroed; - int num; - - num = _add_redraw(&lr, x, y, w, h); - num += _add_redraw(&lr, x + dx, y + dy, w, h); - while (lr.head) - { - list_node_t *node = rect_list_unlink_next(&lr, NULL); - rect_list_add_split_fuzzy_and_merge(&tb->rects, node, - FUZZ * FUZZ, FUZZ * FUZZ); - } - return num; - */ - return 0; -#else -/* - int num; - - num = evas_common_tilebuf_add_redraw(tb, x, y, w, h); - num += evas_common_tilebuf_add_redraw(tb, x + dx, y + dy, w, h); - return num; - */ -#endif -} - -EAPI void -evas_common_tilebuf_clear(Tilebuf *tb) -{ -#ifdef RECTUPDATE -/* - evas_common_regionbuf_clear(tb->rb); - */ -#elif defined(EVAS_RECT_SPLIT) - tb->prev_add.x = tb->prev_add.y = tb->prev_add.w = tb->prev_add.h = 0; - tb->prev_del.x = tb->prev_del.y = tb->prev_del.w = tb->prev_del.h = 0; - rect_list_clear(&tb->rects); - tb->need_merge = 0; -#else -/* - if (!tb->tiles.tiles) return; - memset(tb->tiles.tiles, 0, tb->tiles.w * tb->tiles.h * sizeof(Tilebuf_Tile)); - */ -#endif -} - -EAPI Tilebuf_Rect * -evas_common_tilebuf_get_render_rects(Tilebuf *tb) -{ -#ifdef RECTUPDATE -/* - return evas_common_regionbuf_rects_get(tb->rb); - */ -#elif defined(EVAS_RECT_SPLIT) - list_node_t *n; - Tilebuf_Rect *rects = NULL; - int bx1 = 0, bx2 = 0, by1 = 0, by2 = 0, num = 0; - - if (tb->need_merge) - { - list_t to_merge; - to_merge = tb->rects; - tb->rects = list_zeroed; - rect_list_merge_rects(&tb->rects, &to_merge, FUZZ * FUZZ); - tb->need_merge = 0; - } - - n = tb->rects.head; - if (n) - { - bx1 = ((rect_node_t *)n)->rect.left; - bx2 = bx1 + ((rect_node_t *)n)->rect.width; - by1 = ((rect_node_t *)n)->rect.top; - by2 = by1 + ((rect_node_t *)n)->rect.height; - n = n->next; - for (; n; n = n->next) - { - - int x1, x2, y1, y2; - - x1 = ((rect_node_t *)n)->rect.left; - if (x1 < bx1) bx1 = x1; - x2 = x1 + ((rect_node_t *)n)->rect.width; - if (x2 > bx2) bx2 = x2; - - y1 = ((rect_node_t *)n)->rect.top; - if (y1 < by1) by1 = y1; - y2 = y1 + ((rect_node_t *)n)->rect.height; - if (y2 > by2) by2 = y2; - num++; - } - } -#define MAXREG 24 - /* magic number - but if we have > MAXREG regions to update, take bounding box */ - if (num > MAXREG) - { - Tilebuf_Rect *r; - - r = malloc(sizeof(Tilebuf_Rect)); - r->x = bx1; - r->y = by1; - r->w = bx2 - bx1; - r->h = by2 - by1; - - rects = (Tilebuf_Rect *)eina_inlist_append(EINA_INLIST_GET(rects), EINA_INLIST_GET(r)); - return rects; - } - - for (n = tb->rects.head; n; n = n->next) - { - rect_t cur; - - cur = ((rect_node_t *)n)->rect; -/* disable fuzz - created bugs. - cur.left <<= 1; - cur.top <<= 1; - cur.width <<= 1; - cur.height <<= 1; - */ - RECTS_CLIP_TO_RECT(cur.left, cur.top, cur.width, cur.height, - 0, 0, tb->outbuf_w, tb->outbuf_h); - if ((cur.width > 0) && (cur.height > 0)) - { - Tilebuf_Rect *r; - - r = malloc(sizeof(Tilebuf_Rect)); - r->x = cur.left; - r->y = cur.top; - r->w = cur.width; - r->h = cur.height; - - rects = (Tilebuf_Rect *)eina_inlist_append(EINA_INLIST_GET(rects), EINA_INLIST_GET(r)); - } - } - return rects; - -#else -/* - Tilebuf_Rect *rects = NULL; - Tilebuf_Tile *tbt; - int x, y; - - tbt = &(TILE(tb, 0, 0)); - for (y = 0; y < tb->tiles.h; y++) - { - for (x = 0; x < tb->tiles.w; x++, tbt++) - { - if (tbt->redraw) - { - Tilebuf_Tile *tbti; - int can_expand_x = 1, can_expand_y = 1; - Tilebuf_Rect *r = NULL; - int xx = 0, yy = 0; - r = malloc(sizeof(Tilebuf_Rect)); - r->_list_data.next = NULL; - r->_list_data.prev = NULL; - r->_list_data.last = NULL; - - // amalgamate tiles -#if 1 - tbti = tbt; - while (can_expand_x) - { - tbti++; - xx++; - if ((x + xx) >= tb->tiles.w) - can_expand_x = 0; - else if (!(tbti->redraw)) - can_expand_x = 0; - if (can_expand_x) - tbti->redraw = 0; - } - tbti = tbt; - while (can_expand_y) - { - int i; - - tbti += tb->tiles.w; - yy++; - if ((y + yy) >= tb->tiles.h) - can_expand_y = 0; - if (can_expand_y) - { - Tilebuf_Tile *tbtj; - - tbtj = tbti; - for (i = x; i < x + xx; i++, tbtj++) - { - if (!(tbtj->redraw)) - { - can_expand_y = 0; - break; - } - } - } - if (can_expand_y) - { - Tilebuf_Tile *tbtj; - - tbtj = tbti; - for (i = x; i < x + xx; i++, tbtj++) - tbtj->redraw = 0; - } - } - tbt->redraw = 0; -#else - xx = 1; - yy = 1; -#endif - r->x = x * tb->tile_size.w; - r->y = y * tb->tile_size.h; - r->w = (xx) * tb->tile_size.w; - r->h = (yy) * tb->tile_size.h; - rects = eina_inlist_append(rects, r); - x = x + (xx - 1); - tbt += xx - 1; - } - } - } - return rects; - */ -#endif -} - -EAPI void -evas_common_tilebuf_free_render_rects(Tilebuf_Rect *rects) -{ - while (rects) - { - Tilebuf_Rect *r; - - r = rects; - rects = (Tilebuf_Rect *)eina_inlist_remove(EINA_INLIST_GET(rects), EINA_INLIST_GET(r)); - free(r); - } -} - -/* need a way of getting rectangles to: blit, re-render */ - - - - - -/* internal usage */ -/* -static void -tilebuf_setup(Tilebuf *tb) -{ - if ((tb->outbuf_w <= 0) || (tb->outbuf_h <= 0)) return; -#ifdef RECTUPDATE - tb->rb = evas_common_regionbuf_new(tb->outbuf_w, tb->outbuf_h); -#elif defined(EVAS_RECT_SPLIT) - tb->rects = list_zeroed; -#else - if (tb->tiles.tiles) free(tb->tiles.tiles); - tb->tiles.tiles = NULL; - - tb->tiles.w = (tb->outbuf_w + (tb->tile_size.w - 1)) / tb->tile_size.w; - tb->tiles.h = (tb->outbuf_h + (tb->tile_size.h - 1)) / tb->tile_size.h; - - tb->tiles.tiles = malloc(tb->tiles.w * tb->tiles.h * sizeof(Tilebuf_Tile)); - - if (!tb->tiles.tiles) - { - tb->tiles.w = 0; - tb->tiles.h = 0; - return; - } - memset(tb->tiles.tiles, 0, tb->tiles.w * tb->tiles.h * sizeof(Tilebuf_Tile)); -#endif -} -*/ - -#ifdef RECTUPDATE -#elif defined(EVAS_RECT_SPLIT) -#else -/* -static int -tilebuf_x_intersect(Tilebuf *tb, int x, int w, int *x1, int *x2, int *x1_fill, int *x2_fill) -{ - return tilebuf_intersect(tb->tile_size.w, tb->outbuf_w, tb->tiles.w, - x, w, x1, x2, x1_fill, x2_fill); -} - -static int -tilebuf_y_intersect(Tilebuf *tb, int y, int h, int *y1, int *y2, int *y1_fill, int *y2_fill) -{ - return tilebuf_intersect(tb->tile_size.h, tb->outbuf_h, tb->tiles.h, - y, h, y1, y2, y1_fill, y2_fill); -} - -static int -tilebuf_intersect(int tsize, int tlen, int tnum, int x, int w, int *x1, int *x2, int *x1_fill, int *x2_fill) -{ - int p1, p2; - - // initial clip out of region - if ((x + w) <= 0) return 0; - if (x >= tlen) return 0; - - // adjust x & w so it all fits in region - if (x < 0) - { - w += x; - x = 0; - } - if (w < 0) return 0; - if ((x + w) > tlen) w = tlen - x; - - // now figure if the first edge is fully filling its tile - p1 = (x) / tsize; - if ((p1 * tsize) == (x)) *x1_fill = 1; - else *x1_fill = 0; - *x1 = p1; - - // now figure if the last edge is fully filling its tile - p2 = (x + w - 1) / tsize; - if (((p2 + 1) * tsize) == (x + w)) *x2_fill = 1; - else *x2_fill = 0; - *x2 = p2; - - return 1; - tnum = 0; -} -*/ -#endif diff --git a/libraries/evas/src/lib/engines/common/language/evas_bidi_utils.c b/libraries/evas/src/lib/engines/common/language/evas_bidi_utils.c deleted file mode 100644 index 002cfbe..0000000 --- a/libraries/evas/src/lib/engines/common/language/evas_bidi_utils.c +++ /dev/null @@ -1,645 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include - -#include "evas_common.h" -#include "evas_bidi_utils.h" - -#include "evas_font_private.h" - -#ifdef BIDI_SUPPORT -#include -/** - * @internal - * @addtogroup Evas_Utils - * - * @{ - */ -/** - * @internal - * @addtogroup Evas_BiDi - * - * @{ - */ - -/** - * @internal - * @def _SAFE_FREE(x) - * checks if x is not NULL, if it's not, it's freed and set to NULL. - */ -#define _SAFE_FREE(x) \ - do { \ - if (x) \ - { \ - free(x); \ - x = NULL; \ - } \ - } while(0) - -#if SIZEOF_FRIBIDICHAR != SIZEOF_EINA_UNICODE -# define EVAS_FRIBIDI_EINA_UNICODE_UNEQUAL -#endif - -#ifdef EVAS_FRIBIDI_EINA_UNICODE_UNEQUAL -/* Convert bidichar to eina_unicode assume both are valid pointers */ -static Eina_Unicode * -_evas_bidi_fribidichar_to_unicode(Eina_Unicode *dest, const FriBidiChar *src) -{ - Eina_Unicode *ret = dest; - - while (*src) - *dest++ = *src++; - *dest = 0; - return ret; -} - -/* Convert eina_unicode to bidi_char assume both are valid pointers */ -static FriBidiChar * -_evas_bidi_unicode_to_fribidichar(FriBidiChar *dest, const Eina_Unicode *src) -{ - FriBidiChar *ret = dest; - - while (*src) - *dest++ = *src++; - *dest = 0; - return ret; -} -#endif - -/** - * @internal - * Checks if the string has RTL characters. - * - * @param str The string to be checked - * @return #EINA_TRUE if true, #EINA_FALSE otherwise. - */ -Eina_Bool -evas_bidi_is_rtl_str(const Eina_Unicode *str) -{ - EvasBiDiCharType type; - - if (!str) - return EINA_FALSE; - - for ( ; *str ; str++) - { - type = fribidi_get_bidi_type((FriBidiChar) *str); - if (FRIBIDI_IS_LETTER(type) && FRIBIDI_IS_RTL(type)) - { - return EINA_TRUE; - } - } - return EINA_FALSE; -} - -/** - * @internal - * Shapes the string ustr according to the bidi properties. - * - * @param str The string to shape - * @param bidi_props the bidi props to shaped according. - * @param start the start of the string to shape (offset in bidi_props) - * @param len the length of th string. - * @return #EINA_TRUE on success, #EINA_FALSE otherwise. - */ -EAPI Eina_Bool -evas_bidi_shape_string(Eina_Unicode *eina_ustr, const Evas_BiDi_Paragraph_Props *bidi_props, size_t start, size_t len) -{ - FriBidiChar *ustr, *base_ustr = NULL; - - if (!bidi_props) - return EINA_FALSE; - - /* The size of fribidichar is different than eina_unicode, convert */ -#ifdef EVAS_FRIBIDI_EINA_UNICODE_UNEQUAL - base_ustr = ustr = calloc(len + 1, sizeof(FriBidiChar)); - ustr = _evas_bidi_unicode_to_fribidichar(ustr, eina_ustr); -#else - (void) base_ustr; - ustr = (FriBidiChar *) eina_ustr; -#endif - - - EvasBiDiJoiningType *join_types = NULL; - join_types = (EvasBiDiJoiningType *) malloc(sizeof(EvasBiDiJoiningType) * len); - if (!join_types) - { - return EINA_FALSE; - } - fribidi_get_joining_types(ustr, len, join_types); - - fribidi_join_arabic(bidi_props->char_types + start, len, - bidi_props->embedding_levels + start, join_types); - - - /* Actually modify the string */ - fribidi_shape(FRIBIDI_FLAGS_DEFAULT | FRIBIDI_FLAGS_ARABIC, - bidi_props->embedding_levels + start, len, join_types, ustr); - - if (join_types) free(join_types); - - /* Convert back */ -#ifdef EVAS_FRIBIDI_EINA_UNICODE_UNEQUAL - eina_ustr = _evas_bidi_fribidichar_to_unicode(eina_ustr, ustr); - if (base_ustr) free(base_ustr); -#endif - return EINA_TRUE; -} - -/** - * @internal - * Return a -1 terminated array of the indexes of the delimiters (passed in - * delim) found in the string. This result should be used with par_props_get. - * - * @param str The string to parse - * @param delim a list of delimiters to work with. - * @return returns a -1 terminated array of indexes according to positions of the delimiters found. NULL if there were none. - */ -int * -evas_bidi_segment_idxs_get(const Eina_Unicode *str, const char *delim) -{ - Eina_Unicode *udelim; - const Eina_Unicode *str_base = str; - int *ret, *tmp_ret; - int ret_idx = 0, ret_len = 10; /* arbitrary choice */ - udelim = eina_unicode_utf8_to_unicode(delim, NULL); - ret = malloc(ret_len * sizeof(int)); - for ( ; *str ; str++) - { - const Eina_Unicode *del; - for (del = udelim ; *del ; del++) - { - if (*str == *del) - { - if (ret_idx >= ret_len) - { - /* arbitrary choice */ - ret_len += 20; - tmp_ret = realloc(ret, ret_len * sizeof(int)); - if (!tmp_ret) - { - free(ret); - return NULL; - } - } - ret[ret_idx++] = str - str_base; - break; - } - } - } - free(udelim); - - /* If no indexes were found return NULL */ - if (ret_idx == 0) - { - free(ret); - return NULL; - } - - ret[ret_idx] = -1; - tmp_ret = realloc(ret, (ret_idx + 1) * sizeof(int)); - - return (tmp_ret) ? tmp_ret : ret; -} - -/** - * @internal - * Allocates bidi properties according to ustr. First checks to see if the - * passed has rtl chars, if not, it returns NULL. - * - * Assumes all the segment_idxs are either -1 or legal, and > 0 indexes. - * Also assumes that the characters at the override points are of weak/neutral - * bidi type, otherwise unexpected results may occur. - * - * @param ustr The string to update according to. - * @param len The length of the string - * @param segment_idxs A -1 terminated array of points to start a new bidi analysis at (used for section high level bidi overrides). - NULL means none. - * @return returns allocated paragraph props on success, NULL otherwise. - */ -Evas_BiDi_Paragraph_Props * -evas_bidi_paragraph_props_get(const Eina_Unicode *eina_ustr, size_t len, - int *segment_idxs) -{ - Evas_BiDi_Paragraph_Props *bidi_props = NULL; - EvasBiDiCharType *char_types = NULL; - EvasBiDiLevel *embedding_levels = NULL; - const FriBidiChar *ustr; - FriBidiChar *base_ustr = NULL; - - if (!eina_ustr) - return NULL; - - - if (!evas_bidi_is_rtl_str(eina_ustr)) /* No need to handle bidi */ - { - len = -1; - goto cleanup; - } - - len = eina_unicode_strlen(eina_ustr); - /* The size of fribidichar s different than eina_unicode, convert */ -#ifdef EVAS_FRIBIDI_EINA_UNICODE_UNEQUAL - base_ustr = calloc(len + 1, sizeof(FriBidiChar)); - base_ustr = _evas_bidi_unicode_to_fribidichar(base_ustr, eina_ustr); - ustr = base_ustr; -#else - ustr = (const FriBidiChar *) eina_ustr; -#endif - - bidi_props = evas_bidi_paragraph_props_new(); - - /* Prep work for reordering */ - char_types = (EvasBiDiCharType *) malloc(sizeof(EvasBiDiCharType) * len); - if (!char_types) - { - len = -2; - goto cleanup; - } - fribidi_get_bidi_types(ustr, len, char_types); - - embedding_levels = (EvasBiDiLevel *)malloc(sizeof(EvasBiDiLevel) * len); - if (!embedding_levels) - { - len = -2; - goto cleanup; - } - - if (segment_idxs) - { - size_t pos = 0; - int *itr; - EvasBiDiLevel base_level = 0; - EvasBiDiParType direction; - - for (itr = segment_idxs ; *itr > 0 ; itr++) - { - direction = EVAS_BIDI_PARAGRAPH_NEUTRAL; - if (!fribidi_get_par_embedding_levels(char_types + pos, - *itr - pos, - &direction, - embedding_levels + pos)) - { - len = -2; - goto cleanup; - } - - /* Only on the first run */ - if (itr == segment_idxs) - { - bidi_props->direction = direction; - /* adjust base_level to be 1 for rtl paragraphs, and 0 for - * ltr paragraphs. */ - base_level = - EVAS_BIDI_PARAGRAPH_DIRECTION_IS_RTL(bidi_props) ? 1 : 0; - } - - /* We want those chars at the override points to be on the base - * level and we also remove -2 cause we later increment them, - * just for simpler code paths */ - embedding_levels[*itr] = base_level - 2; - pos = *itr + 1; - } - - direction = EVAS_BIDI_PARAGRAPH_NEUTRAL; - if (!fribidi_get_par_embedding_levels(char_types + pos, - len - pos, - &direction, - embedding_levels + pos)) - { - len = -2; - goto cleanup; - } - - /* Increment all levels by 2 to emulate embedding. */ - { - EvasBiDiLevel *bitr = embedding_levels, *end; - end = bitr + len; - for ( ; bitr < end ; bitr++) - { - *bitr += 2; - } - } - } - else - { - if (!fribidi_get_par_embedding_levels(char_types, len, - &bidi_props->direction, embedding_levels)) - { - len = -2; - goto cleanup; - } - } - - - /* clean up */ - if (bidi_props->embedding_levels) - { - free(bidi_props->embedding_levels); - } - bidi_props->embedding_levels = embedding_levels; - - /* clean up */ - - if (bidi_props->char_types) - { - free(bidi_props->char_types); - } - bidi_props->char_types = char_types; - - if (base_ustr) free(base_ustr); - - - return bidi_props; - -/* Cleanup */ -cleanup: - if (char_types) free(char_types); - if (embedding_levels) free(embedding_levels); - if (base_ustr) free(base_ustr); - if (bidi_props) evas_bidi_paragraph_props_unref(bidi_props); /* Clean up the bidi props */ - return NULL; -} - -/** - * @internal - * Copies dst to src and refs (doesn't copy) the paragraph props. - * - * @param src the props to copy - * @param dst the props to copy to. - */ -void -evas_bidi_props_copy_and_ref(const Evas_BiDi_Props *src, Evas_BiDi_Props *dst) -{ - dst->dir = src->dir; -} - -/** - * @internal - * Reorders ustr according to the bidi props. - * - * @param ustr the string to reorder. - Null is ok, will just populate the map. - * @param start the start of the line - * @param len the length of the line - * @param props the paragraph props to reorder according to - * @param _v_to_l The visual to logical map to populate - if NULL it won't populate it. - * @return #EINA_FALSE on success, #EINA_TRUE on error. - */ -Eina_Bool -evas_bidi_props_reorder_line(Eina_Unicode *eina_ustr, size_t start, size_t len, const Evas_BiDi_Paragraph_Props *props, EvasBiDiStrIndex **_v_to_l) -{ - EvasBiDiStrIndex *v_to_l = NULL; - FriBidiChar *ustr = NULL, *base_ustr = NULL; - - if (!props) - return EINA_FALSE; - - if (eina_ustr) - { - /* The size of fribidichar is different than eina_unicode, convert */ -#ifdef EVAS_FRIBIDI_EINA_UNICODE_UNEQUAL - base_ustr = ustr = calloc(len + 1, sizeof(FriBidiChar)); - ustr = _evas_bidi_unicode_to_fribidichar(ustr, eina_ustr); -#else - ustr = (FriBidiChar *) eina_ustr; -#endif - } - - - if (_v_to_l) { - size_t i; - v_to_l = *_v_to_l = calloc(len, sizeof(EvasBiDiStrIndex)); - if (!v_to_l) - { - goto error; - } - /* init the array for fribidi */ - for (i = 0 ; i < len ; i++) - { - v_to_l[i] = i; - } - } - - { - EvasBiDiLevel *emb_lvl; - emb_lvl = malloc((start + len) * sizeof(EvasBiDiLevel)); - memcpy(emb_lvl, props->embedding_levels, - (start + len) * sizeof(EvasBiDiLevel)); - /* We pass v_to_l - start, because fribidi assumes start is the offset - * from the start of v_to_l as well, not just the props. */ - if (!fribidi_reorder_line (FRIBIDI_FLAGS_DEFAULT, props->char_types, - len, start, props->direction, emb_lvl, ustr, v_to_l - start)) - { - free(emb_lvl); - goto error; - } - free(emb_lvl); - } - - - /* The size of fribidichar is different than eina_unicode, convert */ -#ifdef EVAS_FRIBIDI_EINA_UNICODE_UNEQUAL - _evas_bidi_fribidichar_to_unicode(eina_ustr, base_ustr); - free(base_ustr); -#endif - return EINA_FALSE; -/* ERROR HANDLING */ -error: - if (base_ustr) free(base_ustr); - _SAFE_FREE(v_to_l); - return EINA_TRUE; -} - -/** - * @internal - * Returns the end of the current run of text - * - * @param bidi_props the paragraph properties - * @param start where to start looking from - * @param len the length of the string - * @return the position of the end of the run (offset from - * bidi_props->props->start), 0 when there is no end (i.e all the text) - */ -int -evas_bidi_end_of_run_get(const Evas_BiDi_Paragraph_Props *bidi_props, - size_t start, int len) -{ - EvasBiDiLevel *i; - EvasBiDiLevel base; - - if (!bidi_props || (len <= 0)) - return 0; - - i = bidi_props->embedding_levels + start; - base = *i; - for ( ; (len > 0) && (base == *i) ; len--, i++) - ; - - if (len == 0) - { - return 0; - } - return i - (bidi_props->embedding_levels + start); -} - -/** - * @internal - * Returns the visual string index from the logical string index. - * - * @param v_to_l the visual to logical map - * @param len the length of the map. - * @param position the position to convert. - * @return on success the visual position, on failure the same position. - */ -EvasBiDiStrIndex -evas_bidi_position_logical_to_visual(EvasBiDiStrIndex *v_to_l, int len, EvasBiDiStrIndex position) -{ - int i; - EvasBiDiStrIndex *ind; - if (position >= len || !v_to_l) - return position; - - for (i = 0, ind = v_to_l ; i < len ; i++, ind++) - { - if (*ind == position) - { - return i; - } - } - return position; -} - -/** - * @internal - * Returns the reversed pos of the index. - * - * @param dir the direction of the string - * @param len the length of the map. - * @param position the position to convert. - * @return on success the visual position, on failure the same position. - */ -EvasBiDiStrIndex -evas_bidi_position_reverse(const Evas_BiDi_Props *props, int len, EvasBiDiStrIndex position) -{ - if (!props || position >= len) - return position; - - return (props->dir == EVAS_BIDI_DIRECTION_RTL) ? (len - 1) - position : position; -} - -/** - * @internal - * Checks if the char is rtl oriented. I.e even a neutral char can become rtl - * if surrounded by rtl chars. - * - * @param bidi_props The bidi paragraph properties - * @param start the base position - * @param index the offset from the base position. - * @return #EINA_TRUE if true, #EINA_FALSE otherwise. - */ -Eina_Bool -evas_bidi_is_rtl_char(const Evas_BiDi_Paragraph_Props *bidi_props, size_t start, EvasBiDiStrIndex ind) -{ - if(!bidi_props || ind < 0) - return EINA_FALSE; - return (FRIBIDI_IS_RTL( - bidi_props->embedding_levels[ind + start])) - ? EINA_TRUE : EINA_FALSE; -} - -Evas_BiDi_Paragraph_Props * -evas_bidi_paragraph_props_new(void) -{ - Evas_BiDi_Paragraph_Props *ret; - ret = calloc(1, sizeof(Evas_BiDi_Paragraph_Props)); - ret->direction = EVAS_BIDI_PARAGRAPH_NEUTRAL; - ret->refcount = 1; - - return ret; -} - -/** - * @internal - * Refs the bidi props. - * - * @param bidi_props the props to ref. - */ -Evas_BiDi_Paragraph_Props * -evas_bidi_paragraph_props_ref(Evas_BiDi_Paragraph_Props *bidi_props) -{ - if (!bidi_props) return NULL; - BIDILOCK(); - - bidi_props->refcount++; - BIDIUNLOCK(); - return bidi_props; -} - -/** - * @internal - * Unrefs and potentially frees the props. - * - * @param bidi_props the properties to unref - */ -void -evas_bidi_paragraph_props_unref(Evas_BiDi_Paragraph_Props *bidi_props) -{ - if (!bidi_props) return; - BIDILOCK(); - - if (--bidi_props->refcount == 0) - { - evas_bidi_paragraph_props_clean(bidi_props); - free(bidi_props); - } - BIDIUNLOCK(); -} - - -/** - * @internal - * Cleans the paragraph properties. - * - * @param bidi_props the properties to clean. - */ -void -evas_bidi_paragraph_props_clean(Evas_BiDi_Paragraph_Props *bidi_props) -{ - _SAFE_FREE(bidi_props->embedding_levels); - _SAFE_FREE(bidi_props->char_types); -} - -/** - * @internal - * Cleans the bidi properties. - * - * @param bidi_props the properties to clean. - */ -void -evas_bidi_props_clean(Evas_BiDi_Props *bidi_props) -{ - if (!bidi_props) return; - bidi_props->dir = EVAS_BIDI_DIRECTION_NEUTRAL; -} -/** - * @} - */ -/** - * @} - */ -#endif - -#if 0 -/* Good for debugging */ -static void -dump_levels(Eina_Unicode *ustr, EvasBiDiLevel *emb) -{ - for ( ; *ustr ; ustr++, emb++) - { - printf("%lc %d\n", *ustr, *emb); - } -} -#endif - diff --git a/libraries/evas/src/lib/engines/common/language/evas_bidi_utils.h b/libraries/evas/src/lib/engines/common/language/evas_bidi_utils.h deleted file mode 100644 index f1a374b..0000000 --- a/libraries/evas/src/lib/engines/common/language/evas_bidi_utils.h +++ /dev/null @@ -1,157 +0,0 @@ -#ifndef _EVAS_BIDI_UTILS -#define _EVAS_BIDI_UTILS - -/** - * @internal - * @addtogroup Evas_Utils - * - * @{ - */ -/** - * @internal - * @defgroup Evas_BiDi Evas BiDi utility functions - * - * This set of functions and types helps evas handle BiDi strings correctly. - * @todo Document types, structures and macros. - * - * @{ - */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#ifdef HAVE_FRIBIDI -# define USE_FRIBIDI -# define BIDI_SUPPORT -#endif - -#include - -#ifdef USE_FRIBIDI -# include -#endif - -/* abstract fribidi - we statically define sizes here because otherwise we would - * have to ifdef everywhere (because function decorations may change with/without - * bidi support) - * These types should only be passed as pointers! i.e do not directely use any of - * these types in function declarations. Defining as void should help ensuring that. - */ - -/* Evas_BiDi_Direction is defined in evas.h */ - -#ifdef USE_FRIBIDI -# define _EVAS_BIDI_TYPEDEF(type) \ - typedef FriBidi ## type EvasBiDi ## type -#else -# define _EVAS_BIDI_TYPEDEF(type) \ - typedef void EvasBiDi ## type -#endif - -#if 0 /* We are using Eina_Unicode instead */ -_EVAS_BIDI_TYPEDEF(Char); -#endif -_EVAS_BIDI_TYPEDEF(CharType); -_EVAS_BIDI_TYPEDEF(ParType); -_EVAS_BIDI_TYPEDEF(StrIndex); -_EVAS_BIDI_TYPEDEF(Level); -_EVAS_BIDI_TYPEDEF(JoiningType); - -typedef struct _Evas_BiDi_Paragraph_Props Evas_BiDi_Paragraph_Props; -typedef struct _Evas_BiDi_Props Evas_BiDi_Props; - -/* This structure defines a set of properties of a BiDi string. In case of a - * non-bidi string, all values should be NULL. - * To check if a structure describes a bidi string or not, use the macro - * EVAS_BIDI_IS_BIDI_PROP. RTL-only strings are also treated as bidi ATM. - */ -struct _Evas_BiDi_Paragraph_Props { - EvasBiDiCharType *char_types; /* BiDi char types */ - EvasBiDiLevel *embedding_levels; /* BiDi embedding levels */ - int refcount; /* The number of references to this object */ -#ifdef USE_FRIBIDI - EvasBiDiParType direction; -#endif -}; - -#include "Evas.h" -struct _Evas_BiDi_Props -{ - Evas_BiDi_Direction dir; -}; - - - -#ifdef USE_FRIBIDI - -#define EVAS_BIDI_PARAGRAPH_NEUTRAL FRIBIDI_PAR_ON -#define EVAS_BIDI_PARAGRAPH_LTR FRIBIDI_PAR_LTR -#define EVAS_BIDI_PARAGRAPH_RTL FRIBIDI_PAR_RTL -#define EVAS_BIDI_PARAGRAPH_WLTR FRIBIDI_PAR_WLTR -#define EVAS_BIDI_PARAGRAPH_WRTL FRIBIDI_PAR_WRTL - -#define EVAS_BIDI_PARAGRAPH_DIRECTION_IS_RTL(x) \ - (((x) && \ - ((x->direction == EVAS_BIDI_PARAGRAPH_RTL) || \ - (x->direction == EVAS_BIDI_PARAGRAPH_WRTL))) ? \ - EINA_TRUE : EINA_FALSE) - - -# define evas_bidi_position_visual_to_logical(list, position) \ - (list) ? list[position] : position; - -EvasBiDiStrIndex -evas_bidi_position_logical_to_visual(EvasBiDiStrIndex *v_to_l, int len, EvasBiDiStrIndex position); - -EvasBiDiStrIndex -evas_bidi_position_reverse(const Evas_BiDi_Props *props, int len, EvasBiDiStrIndex position); - -Eina_Bool -evas_bidi_is_rtl_str(const Eina_Unicode *str); - -Eina_Bool -evas_bidi_is_rtl_char(const Evas_BiDi_Paragraph_Props *bidi_props, size_t start, EvasBiDiStrIndex index); - -int -evas_bidi_end_of_run_get(const Evas_BiDi_Paragraph_Props *bidi_props, size_t start, int len); - -Eina_Bool -evas_bidi_props_reorder_line(Eina_Unicode *eina_ustr, size_t start, size_t len, const Evas_BiDi_Paragraph_Props *props, EvasBiDiStrIndex **_v_to_l); - -Evas_BiDi_Paragraph_Props * -evas_bidi_paragraph_props_get(const Eina_Unicode *eina_ustr, size_t len, int *segment_idxs) EINA_ARG_NONNULL(1) EINA_MALLOC EINA_WARN_UNUSED_RESULT; - -void -evas_bidi_props_copy_and_ref(const Evas_BiDi_Props *src, Evas_BiDi_Props *dst); - -EAPI Eina_Bool -evas_bidi_shape_string(Eina_Unicode *eina_ustr, const Evas_BiDi_Paragraph_Props *bidi_props, size_t start, size_t len); - -void -evas_bidi_props_clean(Evas_BiDi_Props *intl_props) EINA_ARG_NONNULL(1); - -void -evas_bidi_paragraph_props_clean(Evas_BiDi_Paragraph_Props *bidi_props) EINA_ARG_NONNULL(1); - -Evas_BiDi_Paragraph_Props * -evas_bidi_paragraph_props_ref(Evas_BiDi_Paragraph_Props *bidi_props) EINA_ARG_NONNULL(1); - -void -evas_bidi_paragraph_props_unref(Evas_BiDi_Paragraph_Props *bidi_props) EINA_ARG_NONNULL(1); - -Evas_BiDi_Paragraph_Props * -evas_bidi_paragraph_props_new(void) EINA_MALLOC EINA_WARN_UNUSED_RESULT; - -int * -evas_bidi_segment_idxs_get(const Eina_Unicode *str, const char *delim) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT EINA_MALLOC; - -#endif -/** - * @} - */ -/** - * @} - */ - -#endif - diff --git a/libraries/evas/src/lib/engines/common/language/evas_language_utils.c b/libraries/evas/src/lib/engines/common/language/evas_language_utils.c deleted file mode 100644 index b362f10..0000000 --- a/libraries/evas/src/lib/engines/common/language/evas_language_utils.c +++ /dev/null @@ -1,152 +0,0 @@ -/** - * @internal - * @addtogroup Evas_Utils - * - * @{ - */ -/** - * @internal - * @defgroup Evas_Script Evas Script (language) utility functions - * - * This set of functions and types helps evas handle scripts correctly. - * @todo Document types, structures and macros. - * - * @{ - */ -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -#include - -#include "evas_language_utils.h" -#include "evas_bidi_utils.h" /* Used for splitting according to bidi */ -#include "../evas_font_ot.h" /* Used for harfbuzz info */ - -#ifdef USE_HARFBUZZ -# include -#endif - -#include "evas_script_table.h" - -static Evas_Script_Type -_evas_common_language_char_script_search(Eina_Unicode unicode) -{ - int min = 0; - int max = (sizeof(_evas_script_slow_table) / - sizeof(_evas_script_slow_table[0])) - 1; - int mid; - - do - { - mid = (min + max) / 2; - - if (unicode < _evas_script_slow_table[mid].start) - max = mid - 1; - else if (unicode >= _evas_script_slow_table[mid].start + - _evas_script_slow_table[mid].len) - min = mid + 1; - else - return _evas_script_slow_table[mid].script; - } - while (min <= max); - - return EVAS_SCRIPT_UNKNOWN; -} - -Evas_Script_Type -evas_common_language_char_script_get(Eina_Unicode unicode) -{ - if ((unicode >= 0) && (unicode < EVAS_SCRIPT_DIRECT_TABLE_LIMIT)) - return _evas_script_fast_table[unicode]; - else - return _evas_common_language_char_script_search(unicode); -} - -int -evas_common_language_script_end_of_run_get(const Eina_Unicode *str, - const Evas_BiDi_Paragraph_Props *bidi_props, size_t start, int len) -{ - /* FIXME: Use the standard segmentation instead */ - Evas_Script_Type first = EVAS_SCRIPT_UNKNOWN; - int i; - for (i = 0 ; i < len ; i++, str++) - { - Evas_Script_Type tmp; - tmp = evas_common_language_char_script_get(*str); - /* Arabic is the first script in the array that's not - * common/inherited. */ - if ((first == EVAS_SCRIPT_UNKNOWN) && (tmp >= EVAS_SCRIPT_ARABIC)) - { - first = tmp; - continue; - } - if ((first != tmp) && (tmp >= EVAS_SCRIPT_ARABIC)) - { - break; - } - } -#ifdef BIDI_SUPPORT - { - int bidi_end; - bidi_end = evas_bidi_end_of_run_get(bidi_props, start, len); - if (bidi_end > 0) - { - i = (i < bidi_end) ? i : bidi_end; - } - } -#else - (void) bidi_props; - (void) start; -#endif - return (i < len) ? i : 0; -} - -Evas_Script_Type -evas_common_language_script_type_get(const Eina_Unicode *str, size_t len) -{ - Evas_Script_Type script = EVAS_SCRIPT_COMMON; - const Eina_Unicode *end = str + len; - /* Arabic is the first script in the array that's not a common/inherited */ - for ( ; str < end && ((script = evas_common_language_char_script_get(*str)) < EVAS_SCRIPT_ARABIC) ; str++) - ; - return script; -} - -const char * -evas_common_language_from_locale_get(void) -{ - static char lang[6]; /* FIXME: Maximum length I know about */ - if (*lang) return lang; - - const char *locale; - locale = getenv("LANG"); - if (locale && *locale) - { - char *itr; - strncpy(lang, locale, 5); - lang[5] = '\0'; - itr = lang; - while (*itr) - { - if (*itr == '_') - { - *itr = '\0'; - } - itr++; - } - return lang; - } - - return ""; -} - -/* - * @} - */ -/* - * @} - */ - diff --git a/libraries/evas/src/lib/engines/common/language/evas_language_utils.h b/libraries/evas/src/lib/engines/common/language/evas_language_utils.h deleted file mode 100644 index fa795ec..0000000 --- a/libraries/evas/src/lib/engines/common/language/evas_language_utils.h +++ /dev/null @@ -1,132 +0,0 @@ -#ifndef _EVAS_LANGUAGE_UTILS -#define _EVAS_LANGUAGE_UTILS - -#include -#include "evas_bidi_utils.h" - -/* Unicode Script property */ -typedef enum -{ - EVAS_SCRIPT_COMMON = 0, /* Zyyy */ - EVAS_SCRIPT_INHERITED, /* Qaai */ - EVAS_SCRIPT_ARABIC, /* Arab */ - EVAS_SCRIPT_ARMENIAN, /* Armn */ - EVAS_SCRIPT_BENGALI, /* Beng */ - EVAS_SCRIPT_BOPOMOFO, /* Bopo */ - EVAS_SCRIPT_CHEROKEE, /* Cher */ - EVAS_SCRIPT_COPTIC, /* Qaac */ - EVAS_SCRIPT_CYRILLIC, /* Cyrl (Cyrs) */ - EVAS_SCRIPT_DESERET, /* Dsrt */ - EVAS_SCRIPT_DEVANAGARI, /* Deva */ - EVAS_SCRIPT_ETHIOPIC, /* Ethi */ - EVAS_SCRIPT_GEORGIAN, /* Geor (Geon, Geoa) */ - EVAS_SCRIPT_GOTHIC, /* Goth */ - EVAS_SCRIPT_GREEK, /* Grek */ - EVAS_SCRIPT_GUJARATI, /* Gujr */ - EVAS_SCRIPT_GURMUKHI, /* Guru */ - EVAS_SCRIPT_HAN, /* Hani */ - EVAS_SCRIPT_HANGUL, /* Hang */ - EVAS_SCRIPT_HEBREW, /* Hebr */ - EVAS_SCRIPT_HIRAGANA, /* Hira */ - EVAS_SCRIPT_KANNADA, /* Knda */ - EVAS_SCRIPT_KATAKANA, /* Kana */ - EVAS_SCRIPT_KHMER, /* Khmr */ - EVAS_SCRIPT_LAO, /* Laoo */ - EVAS_SCRIPT_LATIN, /* Latn (Latf, Latg) */ - EVAS_SCRIPT_MALAYALAM, /* Mlym */ - EVAS_SCRIPT_MONGOLIAN, /* Mong */ - EVAS_SCRIPT_MYANMAR, /* Mymr */ - EVAS_SCRIPT_OGHAM, /* Ogam */ - EVAS_SCRIPT_OLD_ITALIC, /* Ital */ - EVAS_SCRIPT_ORIYA, /* Orya */ - EVAS_SCRIPT_RUNIC, /* Runr */ - EVAS_SCRIPT_SINHALA, /* Sinh */ - EVAS_SCRIPT_SYRIAC, /* Syrc (Syrj, Syrn, Syre) */ - EVAS_SCRIPT_TAMIL, /* Taml */ - EVAS_SCRIPT_TELUGU, /* Telu */ - EVAS_SCRIPT_THAANA, /* Thaa */ - EVAS_SCRIPT_THAI, /* Thai */ - EVAS_SCRIPT_TIBETAN, /* Tibt */ - EVAS_SCRIPT_CANADIAN_ABORIGINAL, /* Cans */ - EVAS_SCRIPT_YI, /* Yiii */ - EVAS_SCRIPT_TAGALOG, /* Tglg */ - EVAS_SCRIPT_HANUNOO, /* Hano */ - EVAS_SCRIPT_BUHID, /* Buhd */ - EVAS_SCRIPT_TAGBANWA, /* Tagb */ - - /* Unicode-4.0 additions */ - EVAS_SCRIPT_BRAILLE, /* Brai */ - EVAS_SCRIPT_CYPRIOT, /* Cprt */ - EVAS_SCRIPT_LIMBU, /* Limb */ - EVAS_SCRIPT_OSMANYA, /* Osma */ - EVAS_SCRIPT_SHAVIAN, /* Shaw */ - EVAS_SCRIPT_LINEAR_B, /* Linb */ - EVAS_SCRIPT_TAI_LE, /* Tale */ - EVAS_SCRIPT_UGARITIC, /* Ugar */ - - /* Unicode-4.1 additions */ - EVAS_SCRIPT_NEW_TAI_LUE, /* Talu */ - EVAS_SCRIPT_BUGINESE, /* Bugi */ - EVAS_SCRIPT_GLAGOLITIC, /* Glag */ - EVAS_SCRIPT_TIFINAGH, /* Tfng */ - EVAS_SCRIPT_SYLOTI_NAGRI, /* Sylo */ - EVAS_SCRIPT_OLD_PERSIAN, /* Xpeo */ - EVAS_SCRIPT_KHAROSHTHI, /* Khar */ - - /* Unicode-5.0 additions */ - EVAS_SCRIPT_UNKNOWN, /* Zzzz */ - EVAS_SCRIPT_BALINESE, /* Bali */ - EVAS_SCRIPT_CUNEIFORM, /* Xsux */ - EVAS_SCRIPT_PHOENICIAN, /* Phnx */ - EVAS_SCRIPT_PHAGS_PA, /* Phag */ - EVAS_SCRIPT_NKO, /* Nkoo */ - - /* Unicode-5.1 additions */ - EVAS_SCRIPT_KAYAH_LI, /* Kali */ - EVAS_SCRIPT_LEPCHA, /* Lepc */ - EVAS_SCRIPT_REJANG, /* Rjng */ - EVAS_SCRIPT_SUNDANESE, /* Sund */ - EVAS_SCRIPT_SAURASHTRA, /* Saur */ - EVAS_SCRIPT_CHAM, /* Cham */ - EVAS_SCRIPT_OL_CHIKI, /* Olck */ - EVAS_SCRIPT_VAI, /* Vaii */ - EVAS_SCRIPT_CARIAN, /* Cari */ - EVAS_SCRIPT_LYCIAN, /* Lyci */ - EVAS_SCRIPT_LYDIAN, /* Lydi */ - - /* Unicode-5.2 additions */ - EVAS_SCRIPT_AVESTAN, /* Avst */ - EVAS_SCRIPT_BAMUM, /* Bamu */ - EVAS_SCRIPT_EGYPTIAN_HIEROGLYPHS, /* Egyp */ - EVAS_SCRIPT_IMPERIAL_ARAMAIC, /* Armi */ - EVAS_SCRIPT_INSCRIPTIONAL_PAHLAVI, /* Phli */ - EVAS_SCRIPT_INSCRIPTIONAL_PARTHIAN, /* Prti */ - EVAS_SCRIPT_JAVANESE, /* Java */ - EVAS_SCRIPT_KAITHI, /* Kthi */ - EVAS_SCRIPT_LISU, /* Lisu */ - EVAS_SCRIPT_MEETEI_MAYEK, /* Mtei */ - EVAS_SCRIPT_OLD_SOUTH_ARABIAN, /* Sarb */ - EVAS_SCRIPT_OLD_TURKIC, /* Orkh */ - EVAS_SCRIPT_SAMARITAN, /* Samr */ - EVAS_SCRIPT_TAI_THAM, /* Lana */ - EVAS_SCRIPT_TAI_VIET, /* Tavt */ - - /* Unicode-6.0 additions */ - EVAS_SCRIPT_BATAK, /* Batk */ - EVAS_SCRIPT_BRAHMI, /* Brah */ - EVAS_SCRIPT_MANDAIC, /* Mand */ -} Evas_Script_Type; - -int -evas_common_language_script_end_of_run_get(const Eina_Unicode *str, const Evas_BiDi_Paragraph_Props *bidi_props, size_t start, int len); - -Evas_Script_Type -evas_common_language_script_type_get(const Eina_Unicode *str, size_t len); - -Evas_Script_Type -evas_common_language_char_script_get(Eina_Unicode unicode); - -const char * -evas_common_language_from_locale_get(void); -#endif - diff --git a/libraries/evas/src/lib/engines/common/language/evas_script_table.h b/libraries/evas/src/lib/engines/common/language/evas_script_table.h deleted file mode 100644 index dd77db0..0000000 --- a/libraries/evas/src/lib/engines/common/language/evas_script_table.h +++ /dev/null @@ -1,3087 +0,0 @@ -/* evas_script_table.h: Mostly based on output by gen-script-table.pl - * which is available in glib's tools. - * - * NOTICE: This is temporary and will only stay here until there will be - * a nice "UNICODE DATA" library to use. From my understanding it's already - * being worked on. - * - * Date: Sun May 1 15:48:56 2011 - * Source: Scripts-6.0.0.txt - * - * Do not edit. - */ - -#define EVAS_SCRIPT_DIRECT_TABLE_LIMIT 8192 - -static const -Eina_Unicode _evas_script_fast_table[EVAS_SCRIPT_DIRECT_TABLE_LIMIT] = { - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_BOPOMOFO, - EVAS_SCRIPT_BOPOMOFO, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_COPTIC, EVAS_SCRIPT_COPTIC, - EVAS_SCRIPT_COPTIC, EVAS_SCRIPT_COPTIC, EVAS_SCRIPT_COPTIC, - EVAS_SCRIPT_COPTIC, EVAS_SCRIPT_COPTIC, EVAS_SCRIPT_COPTIC, - EVAS_SCRIPT_COPTIC, EVAS_SCRIPT_COPTIC, EVAS_SCRIPT_COPTIC, - EVAS_SCRIPT_COPTIC, EVAS_SCRIPT_COPTIC, EVAS_SCRIPT_COPTIC, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_ARMENIAN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_HEBREW, - EVAS_SCRIPT_HEBREW, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, EVAS_SCRIPT_SYRIAC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, EVAS_SCRIPT_ARABIC, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, - EVAS_SCRIPT_THAANA, EVAS_SCRIPT_THAANA, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, EVAS_SCRIPT_NKO, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, - EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_SAMARITAN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, - EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, - EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, - EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, - EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, - EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, - EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, - EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, - EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_MANDAIC, - EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_MANDAIC, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, - EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_DEVANAGARI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, EVAS_SCRIPT_BENGALI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, - EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_GURMUKHI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_GUJARATI, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GUJARATI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, - EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_ORIYA, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_TAMIL, - EVAS_SCRIPT_TAMIL, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, - EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_TELUGU, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KANNADA, EVAS_SCRIPT_KANNADA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, EVAS_SCRIPT_MALAYALAM, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, EVAS_SCRIPT_SINHALA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, EVAS_SCRIPT_THAI, - EVAS_SCRIPT_THAI, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_LAO, EVAS_SCRIPT_LAO, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_TIBETAN, EVAS_SCRIPT_TIBETAN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, - EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_MYANMAR, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_GEORGIAN, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_GEORGIAN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, EVAS_SCRIPT_HANGUL, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, - EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_ETHIOPIC, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, EVAS_SCRIPT_CHEROKEE, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, - EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, - EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, - EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, - EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, - EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, - EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, - EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, - EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, - EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_OGHAM, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_RUNIC, - EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_RUNIC, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAGALOG, - EVAS_SCRIPT_TAGALOG, EVAS_SCRIPT_TAGALOG, EVAS_SCRIPT_TAGALOG, - EVAS_SCRIPT_TAGALOG, EVAS_SCRIPT_TAGALOG, EVAS_SCRIPT_TAGALOG, - EVAS_SCRIPT_TAGALOG, EVAS_SCRIPT_TAGALOG, EVAS_SCRIPT_TAGALOG, - EVAS_SCRIPT_TAGALOG, EVAS_SCRIPT_TAGALOG, EVAS_SCRIPT_TAGALOG, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAGALOG, EVAS_SCRIPT_TAGALOG, - EVAS_SCRIPT_TAGALOG, EVAS_SCRIPT_TAGALOG, EVAS_SCRIPT_TAGALOG, - EVAS_SCRIPT_TAGALOG, EVAS_SCRIPT_TAGALOG, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_HANUNOO, - EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_HANUNOO, - EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_HANUNOO, - EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_HANUNOO, - EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_HANUNOO, - EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_HANUNOO, - EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_HANUNOO, - EVAS_SCRIPT_HANUNOO, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_BUHID, EVAS_SCRIPT_BUHID, EVAS_SCRIPT_BUHID, - EVAS_SCRIPT_BUHID, EVAS_SCRIPT_BUHID, EVAS_SCRIPT_BUHID, - EVAS_SCRIPT_BUHID, EVAS_SCRIPT_BUHID, EVAS_SCRIPT_BUHID, - EVAS_SCRIPT_BUHID, EVAS_SCRIPT_BUHID, EVAS_SCRIPT_BUHID, - EVAS_SCRIPT_BUHID, EVAS_SCRIPT_BUHID, EVAS_SCRIPT_BUHID, - EVAS_SCRIPT_BUHID, EVAS_SCRIPT_BUHID, EVAS_SCRIPT_BUHID, - EVAS_SCRIPT_BUHID, EVAS_SCRIPT_BUHID, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAGBANWA, - EVAS_SCRIPT_TAGBANWA, EVAS_SCRIPT_TAGBANWA, EVAS_SCRIPT_TAGBANWA, - EVAS_SCRIPT_TAGBANWA, EVAS_SCRIPT_TAGBANWA, EVAS_SCRIPT_TAGBANWA, - EVAS_SCRIPT_TAGBANWA, EVAS_SCRIPT_TAGBANWA, EVAS_SCRIPT_TAGBANWA, - EVAS_SCRIPT_TAGBANWA, EVAS_SCRIPT_TAGBANWA, EVAS_SCRIPT_TAGBANWA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAGBANWA, EVAS_SCRIPT_TAGBANWA, - EVAS_SCRIPT_TAGBANWA, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAGBANWA, - EVAS_SCRIPT_TAGBANWA, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, EVAS_SCRIPT_MONGOLIAN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, EVAS_SCRIPT_CANADIAN_ABORIGINAL, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, EVAS_SCRIPT_LIMBU, - EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, - EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, - EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, - EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, - EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, - EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, - EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, - EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, - EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, - EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAI_LE, - EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_TAI_LE, - EVAS_SCRIPT_TAI_LE, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_NEW_TAI_LUE, EVAS_SCRIPT_NEW_TAI_LUE, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, - EVAS_SCRIPT_KHMER, EVAS_SCRIPT_KHMER, EVAS_SCRIPT_BUGINESE, - EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, - EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, - EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, - EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, - EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, - EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, - EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, - EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, - EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_BUGINESE, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BUGINESE, - EVAS_SCRIPT_BUGINESE, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, - EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_TAI_THAM, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, - EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_BALINESE, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, EVAS_SCRIPT_SUNDANESE, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, EVAS_SCRIPT_BATAK, - EVAS_SCRIPT_BATAK, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, EVAS_SCRIPT_LEPCHA, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, EVAS_SCRIPT_OL_CHIKI, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, EVAS_SCRIPT_COMMON, - EVAS_SCRIPT_COMMON, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_CYRILLIC, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_CYRILLIC, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, EVAS_SCRIPT_INHERITED, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, EVAS_SCRIPT_LATIN, - EVAS_SCRIPT_LATIN, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_UNKNOWN, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_UNKNOWN, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, EVAS_SCRIPT_GREEK, - EVAS_SCRIPT_GREEK, EVAS_SCRIPT_UNKNOWN, -}; - -static const struct { - Eina_Unicode start; - short len; - Evas_Script_Type script; -} _evas_script_slow_table[] = { - { 0x2000, 12, EVAS_SCRIPT_COMMON }, - { 0x200c, 2, EVAS_SCRIPT_INHERITED }, - { 0x200e, 87, EVAS_SCRIPT_COMMON }, - { 0x206a, 7, EVAS_SCRIPT_COMMON }, - { 0x2071, 1, EVAS_SCRIPT_LATIN }, - { 0x2074, 11, EVAS_SCRIPT_COMMON }, - { 0x207f, 1, EVAS_SCRIPT_LATIN }, - { 0x2080, 15, EVAS_SCRIPT_COMMON }, - { 0x2090, 13, EVAS_SCRIPT_LATIN }, - { 0x20a0, 26, EVAS_SCRIPT_COMMON }, - { 0x20d0, 33, EVAS_SCRIPT_INHERITED }, - { 0x2100, 38, EVAS_SCRIPT_COMMON }, - { 0x2126, 1, EVAS_SCRIPT_GREEK }, - { 0x2127, 3, EVAS_SCRIPT_COMMON }, - { 0x212a, 2, EVAS_SCRIPT_LATIN }, - { 0x212c, 6, EVAS_SCRIPT_COMMON }, - { 0x2132, 1, EVAS_SCRIPT_LATIN }, - { 0x2133, 27, EVAS_SCRIPT_COMMON }, - { 0x214e, 1, EVAS_SCRIPT_LATIN }, - { 0x214f, 17, EVAS_SCRIPT_COMMON }, - { 0x2160, 41, EVAS_SCRIPT_LATIN }, - { 0x2189, 1, EVAS_SCRIPT_COMMON }, - { 0x2190, 612, EVAS_SCRIPT_COMMON }, - { 0x2400, 39, EVAS_SCRIPT_COMMON }, - { 0x2440, 11, EVAS_SCRIPT_COMMON }, - { 0x2460, 672, EVAS_SCRIPT_COMMON }, - { 0x2701, 202, EVAS_SCRIPT_COMMON }, - { 0x27cc, 1, EVAS_SCRIPT_COMMON }, - { 0x27ce, 50, EVAS_SCRIPT_COMMON }, - { 0x2800, 256, EVAS_SCRIPT_BRAILLE }, - { 0x2900, 589, EVAS_SCRIPT_COMMON }, - { 0x2b50, 10, EVAS_SCRIPT_COMMON }, - { 0x2c00, 47, EVAS_SCRIPT_GLAGOLITIC }, - { 0x2c30, 47, EVAS_SCRIPT_GLAGOLITIC }, - { 0x2c60, 32, EVAS_SCRIPT_LATIN }, - { 0x2c80, 114, EVAS_SCRIPT_COPTIC }, - { 0x2cf9, 7, EVAS_SCRIPT_COPTIC }, - { 0x2d00, 38, EVAS_SCRIPT_GEORGIAN }, - { 0x2d30, 54, EVAS_SCRIPT_TIFINAGH }, - { 0x2d6f, 2, EVAS_SCRIPT_TIFINAGH }, - { 0x2d7f, 1, EVAS_SCRIPT_TIFINAGH }, - { 0x2d80, 23, EVAS_SCRIPT_ETHIOPIC }, - { 0x2da0, 7, EVAS_SCRIPT_ETHIOPIC }, - { 0x2da8, 7, EVAS_SCRIPT_ETHIOPIC }, - { 0x2db0, 7, EVAS_SCRIPT_ETHIOPIC }, - { 0x2db8, 7, EVAS_SCRIPT_ETHIOPIC }, - { 0x2dc0, 7, EVAS_SCRIPT_ETHIOPIC }, - { 0x2dc8, 7, EVAS_SCRIPT_ETHIOPIC }, - { 0x2dd0, 7, EVAS_SCRIPT_ETHIOPIC }, - { 0x2dd8, 7, EVAS_SCRIPT_ETHIOPIC }, - { 0x2de0, 32, EVAS_SCRIPT_CYRILLIC }, - { 0x2e00, 50, EVAS_SCRIPT_COMMON }, - { 0x2e80, 26, EVAS_SCRIPT_HAN }, - { 0x2e9b, 89, EVAS_SCRIPT_HAN }, - { 0x2f00, 214, EVAS_SCRIPT_HAN }, - { 0x2ff0, 12, EVAS_SCRIPT_COMMON }, - { 0x3000, 5, EVAS_SCRIPT_COMMON }, - { 0x3005, 1, EVAS_SCRIPT_HAN }, - { 0x3006, 1, EVAS_SCRIPT_COMMON }, - { 0x3007, 1, EVAS_SCRIPT_HAN }, - { 0x3008, 25, EVAS_SCRIPT_COMMON }, - { 0x3021, 9, EVAS_SCRIPT_HAN }, - { 0x302a, 4, EVAS_SCRIPT_INHERITED }, - { 0x302e, 2, EVAS_SCRIPT_HANGUL }, - { 0x3030, 8, EVAS_SCRIPT_COMMON }, - { 0x3038, 4, EVAS_SCRIPT_HAN }, - { 0x303c, 4, EVAS_SCRIPT_COMMON }, - { 0x3041, 86, EVAS_SCRIPT_HIRAGANA }, - { 0x3099, 2, EVAS_SCRIPT_INHERITED }, - { 0x309b, 2, EVAS_SCRIPT_COMMON }, - { 0x309d, 3, EVAS_SCRIPT_HIRAGANA }, - { 0x30a0, 1, EVAS_SCRIPT_COMMON }, - { 0x30a1, 90, EVAS_SCRIPT_KATAKANA }, - { 0x30fb, 2, EVAS_SCRIPT_COMMON }, - { 0x30fd, 3, EVAS_SCRIPT_KATAKANA }, - { 0x3105, 41, EVAS_SCRIPT_BOPOMOFO }, - { 0x3131, 94, EVAS_SCRIPT_HANGUL }, - { 0x3190, 16, EVAS_SCRIPT_COMMON }, - { 0x31a0, 27, EVAS_SCRIPT_BOPOMOFO }, - { 0x31c0, 36, EVAS_SCRIPT_COMMON }, - { 0x31f0, 16, EVAS_SCRIPT_KATAKANA }, - { 0x3200, 31, EVAS_SCRIPT_HANGUL }, - { 0x3220, 64, EVAS_SCRIPT_COMMON }, - { 0x3260, 31, EVAS_SCRIPT_HANGUL }, - { 0x327f, 81, EVAS_SCRIPT_COMMON }, - { 0x32d0, 47, EVAS_SCRIPT_KATAKANA }, - { 0x3300, 88, EVAS_SCRIPT_KATAKANA }, - { 0x3358, 168, EVAS_SCRIPT_COMMON }, - { 0x3400, 6582, EVAS_SCRIPT_HAN }, - { 0x4dc0, 64, EVAS_SCRIPT_COMMON }, - { 0x4e00, 20940, EVAS_SCRIPT_HAN }, - { 0xa000, 1165, EVAS_SCRIPT_YI }, - { 0xa490, 55, EVAS_SCRIPT_YI }, - { 0xa4d0, 48, EVAS_SCRIPT_LISU }, - { 0xa500, 300, EVAS_SCRIPT_VAI }, - { 0xa640, 52, EVAS_SCRIPT_CYRILLIC }, - { 0xa67c, 28, EVAS_SCRIPT_CYRILLIC }, - { 0xa6a0, 88, EVAS_SCRIPT_BAMUM }, - { 0xa700, 34, EVAS_SCRIPT_COMMON }, - { 0xa722, 102, EVAS_SCRIPT_LATIN }, - { 0xa788, 3, EVAS_SCRIPT_COMMON }, - { 0xa78b, 4, EVAS_SCRIPT_LATIN }, - { 0xa790, 2, EVAS_SCRIPT_LATIN }, - { 0xa7a0, 10, EVAS_SCRIPT_LATIN }, - { 0xa7fa, 6, EVAS_SCRIPT_LATIN }, - { 0xa800, 44, EVAS_SCRIPT_SYLOTI_NAGRI }, - { 0xa830, 10, EVAS_SCRIPT_COMMON }, - { 0xa840, 56, EVAS_SCRIPT_PHAGS_PA }, - { 0xa880, 69, EVAS_SCRIPT_SAURASHTRA }, - { 0xa8ce, 12, EVAS_SCRIPT_SAURASHTRA }, - { 0xa8e0, 28, EVAS_SCRIPT_DEVANAGARI }, - { 0xa900, 48, EVAS_SCRIPT_KAYAH_LI }, - { 0xa930, 36, EVAS_SCRIPT_REJANG }, - { 0xa95f, 1, EVAS_SCRIPT_REJANG }, - { 0xa960, 29, EVAS_SCRIPT_HANGUL }, - { 0xa980, 78, EVAS_SCRIPT_JAVANESE }, - { 0xa9cf, 11, EVAS_SCRIPT_JAVANESE }, - { 0xa9de, 2, EVAS_SCRIPT_JAVANESE }, - { 0xaa00, 55, EVAS_SCRIPT_CHAM }, - { 0xaa40, 14, EVAS_SCRIPT_CHAM }, - { 0xaa50, 10, EVAS_SCRIPT_CHAM }, - { 0xaa5c, 4, EVAS_SCRIPT_CHAM }, - { 0xaa60, 28, EVAS_SCRIPT_MYANMAR }, - { 0xaa80, 67, EVAS_SCRIPT_TAI_VIET }, - { 0xaadb, 5, EVAS_SCRIPT_TAI_VIET }, - { 0xab01, 6, EVAS_SCRIPT_ETHIOPIC }, - { 0xab09, 6, EVAS_SCRIPT_ETHIOPIC }, - { 0xab11, 6, EVAS_SCRIPT_ETHIOPIC }, - { 0xab20, 7, EVAS_SCRIPT_ETHIOPIC }, - { 0xab28, 7, EVAS_SCRIPT_ETHIOPIC }, - { 0xabc0, 46, EVAS_SCRIPT_MEETEI_MAYEK }, - { 0xabf0, 10, EVAS_SCRIPT_MEETEI_MAYEK }, - { 0xac00, 11172, EVAS_SCRIPT_HANGUL }, - { 0xd7b0, 23, EVAS_SCRIPT_HANGUL }, - { 0xd7cb, 49, EVAS_SCRIPT_HANGUL }, - { 0xf900, 302, EVAS_SCRIPT_HAN }, - { 0xfa30, 62, EVAS_SCRIPT_HAN }, - { 0xfa70, 106, EVAS_SCRIPT_HAN }, - { 0xfb00, 7, EVAS_SCRIPT_LATIN }, - { 0xfb13, 5, EVAS_SCRIPT_ARMENIAN }, - { 0xfb1d, 26, EVAS_SCRIPT_HEBREW }, - { 0xfb38, 5, EVAS_SCRIPT_HEBREW }, - { 0xfb3e, 1, EVAS_SCRIPT_HEBREW }, - { 0xfb40, 2, EVAS_SCRIPT_HEBREW }, - { 0xfb43, 2, EVAS_SCRIPT_HEBREW }, - { 0xfb46, 10, EVAS_SCRIPT_HEBREW }, - { 0xfb50, 114, EVAS_SCRIPT_ARABIC }, - { 0xfbd3, 363, EVAS_SCRIPT_ARABIC }, - { 0xfd3e, 2, EVAS_SCRIPT_COMMON }, - { 0xfd50, 64, EVAS_SCRIPT_ARABIC }, - { 0xfd92, 54, EVAS_SCRIPT_ARABIC }, - { 0xfdf0, 13, EVAS_SCRIPT_ARABIC }, - { 0xfdfd, 1, EVAS_SCRIPT_COMMON }, - { 0xfe00, 16, EVAS_SCRIPT_INHERITED }, - { 0xfe10, 10, EVAS_SCRIPT_COMMON }, - { 0xfe20, 7, EVAS_SCRIPT_INHERITED }, - { 0xfe30, 35, EVAS_SCRIPT_COMMON }, - { 0xfe54, 19, EVAS_SCRIPT_COMMON }, - { 0xfe68, 4, EVAS_SCRIPT_COMMON }, - { 0xfe70, 5, EVAS_SCRIPT_ARABIC }, - { 0xfe76, 135, EVAS_SCRIPT_ARABIC }, - { 0xfeff, 1, EVAS_SCRIPT_COMMON }, - { 0xff01, 32, EVAS_SCRIPT_COMMON }, - { 0xff21, 26, EVAS_SCRIPT_LATIN }, - { 0xff3b, 6, EVAS_SCRIPT_COMMON }, - { 0xff41, 26, EVAS_SCRIPT_LATIN }, - { 0xff5b, 11, EVAS_SCRIPT_COMMON }, - { 0xff66, 10, EVAS_SCRIPT_KATAKANA }, - { 0xff70, 1, EVAS_SCRIPT_COMMON }, - { 0xff71, 45, EVAS_SCRIPT_KATAKANA }, - { 0xff9e, 2, EVAS_SCRIPT_COMMON }, - { 0xffa0, 31, EVAS_SCRIPT_HANGUL }, - { 0xffc2, 6, EVAS_SCRIPT_HANGUL }, - { 0xffca, 6, EVAS_SCRIPT_HANGUL }, - { 0xffd2, 6, EVAS_SCRIPT_HANGUL }, - { 0xffda, 3, EVAS_SCRIPT_HANGUL }, - { 0xffe0, 7, EVAS_SCRIPT_COMMON }, - { 0xffe8, 7, EVAS_SCRIPT_COMMON }, - { 0xfff9, 5, EVAS_SCRIPT_COMMON }, - { 0x10000, 12, EVAS_SCRIPT_LINEAR_B }, - { 0x1000d, 26, EVAS_SCRIPT_LINEAR_B }, - { 0x10028, 19, EVAS_SCRIPT_LINEAR_B }, - { 0x1003c, 2, EVAS_SCRIPT_LINEAR_B }, - { 0x1003f, 15, EVAS_SCRIPT_LINEAR_B }, - { 0x10050, 14, EVAS_SCRIPT_LINEAR_B }, - { 0x10080, 123, EVAS_SCRIPT_LINEAR_B }, - { 0x10100, 3, EVAS_SCRIPT_COMMON }, - { 0x10107, 45, EVAS_SCRIPT_COMMON }, - { 0x10137, 9, EVAS_SCRIPT_COMMON }, - { 0x10140, 75, EVAS_SCRIPT_GREEK }, - { 0x10190, 12, EVAS_SCRIPT_COMMON }, - { 0x101d0, 45, EVAS_SCRIPT_COMMON }, - { 0x101fd, 1, EVAS_SCRIPT_INHERITED }, - { 0x10280, 29, EVAS_SCRIPT_LYCIAN }, - { 0x102a0, 49, EVAS_SCRIPT_CARIAN }, - { 0x10300, 31, EVAS_SCRIPT_OLD_ITALIC }, - { 0x10320, 4, EVAS_SCRIPT_OLD_ITALIC }, - { 0x10330, 27, EVAS_SCRIPT_GOTHIC }, - { 0x10380, 30, EVAS_SCRIPT_UGARITIC }, - { 0x1039f, 1, EVAS_SCRIPT_UGARITIC }, - { 0x103a0, 36, EVAS_SCRIPT_OLD_PERSIAN }, - { 0x103c8, 14, EVAS_SCRIPT_OLD_PERSIAN }, - { 0x10400, 80, EVAS_SCRIPT_DESERET }, - { 0x10450, 48, EVAS_SCRIPT_SHAVIAN }, - { 0x10480, 30, EVAS_SCRIPT_OSMANYA }, - { 0x104a0, 10, EVAS_SCRIPT_OSMANYA }, - { 0x10800, 6, EVAS_SCRIPT_CYPRIOT }, - { 0x10808, 1, EVAS_SCRIPT_CYPRIOT }, - { 0x1080a, 44, EVAS_SCRIPT_CYPRIOT }, - { 0x10837, 2, EVAS_SCRIPT_CYPRIOT }, - { 0x1083c, 1, EVAS_SCRIPT_CYPRIOT }, - { 0x1083f, 1, EVAS_SCRIPT_CYPRIOT }, - { 0x10840, 22, EVAS_SCRIPT_IMPERIAL_ARAMAIC }, - { 0x10857, 9, EVAS_SCRIPT_IMPERIAL_ARAMAIC }, - { 0x10900, 28, EVAS_SCRIPT_PHOENICIAN }, - { 0x1091f, 1, EVAS_SCRIPT_PHOENICIAN }, - { 0x10920, 26, EVAS_SCRIPT_LYDIAN }, - { 0x1093f, 1, EVAS_SCRIPT_LYDIAN }, - { 0x10a00, 4, EVAS_SCRIPT_KHAROSHTHI }, - { 0x10a05, 2, EVAS_SCRIPT_KHAROSHTHI }, - { 0x10a0c, 8, EVAS_SCRIPT_KHAROSHTHI }, - { 0x10a15, 3, EVAS_SCRIPT_KHAROSHTHI }, - { 0x10a19, 27, EVAS_SCRIPT_KHAROSHTHI }, - { 0x10a38, 3, EVAS_SCRIPT_KHAROSHTHI }, - { 0x10a3f, 9, EVAS_SCRIPT_KHAROSHTHI }, - { 0x10a50, 9, EVAS_SCRIPT_KHAROSHTHI }, - { 0x10a60, 32, EVAS_SCRIPT_OLD_SOUTH_ARABIAN }, - { 0x10b00, 54, EVAS_SCRIPT_AVESTAN }, - { 0x10b39, 7, EVAS_SCRIPT_AVESTAN }, - { 0x10b40, 22, EVAS_SCRIPT_INSCRIPTIONAL_PARTHIAN }, - { 0x10b58, 8, EVAS_SCRIPT_INSCRIPTIONAL_PARTHIAN }, - { 0x10b60, 19, EVAS_SCRIPT_INSCRIPTIONAL_PAHLAVI }, - { 0x10b78, 8, EVAS_SCRIPT_INSCRIPTIONAL_PAHLAVI }, - { 0x10c00, 73, EVAS_SCRIPT_OLD_TURKIC }, - { 0x10e60, 31, EVAS_SCRIPT_ARABIC }, - { 0x11000, 78, EVAS_SCRIPT_BRAHMI }, - { 0x11052, 30, EVAS_SCRIPT_BRAHMI }, - { 0x11080, 66, EVAS_SCRIPT_KAITHI }, - { 0x12000, 879, EVAS_SCRIPT_CUNEIFORM }, - { 0x12400, 99, EVAS_SCRIPT_CUNEIFORM }, - { 0x12470, 4, EVAS_SCRIPT_CUNEIFORM }, - { 0x13000, 1071, EVAS_SCRIPT_EGYPTIAN_HIEROGLYPHS }, - { 0x16800, 569, EVAS_SCRIPT_BAMUM }, - { 0x1b000, 1, EVAS_SCRIPT_KATAKANA }, - { 0x1b001, 1, EVAS_SCRIPT_HIRAGANA }, - { 0x1d000, 246, EVAS_SCRIPT_COMMON }, - { 0x1d100, 39, EVAS_SCRIPT_COMMON }, - { 0x1d129, 62, EVAS_SCRIPT_COMMON }, - { 0x1d167, 3, EVAS_SCRIPT_INHERITED }, - { 0x1d16a, 17, EVAS_SCRIPT_COMMON }, - { 0x1d17b, 8, EVAS_SCRIPT_INHERITED }, - { 0x1d183, 2, EVAS_SCRIPT_COMMON }, - { 0x1d185, 7, EVAS_SCRIPT_INHERITED }, - { 0x1d18c, 30, EVAS_SCRIPT_COMMON }, - { 0x1d1aa, 4, EVAS_SCRIPT_INHERITED }, - { 0x1d1ae, 48, EVAS_SCRIPT_COMMON }, - { 0x1d200, 70, EVAS_SCRIPT_GREEK }, - { 0x1d300, 87, EVAS_SCRIPT_COMMON }, - { 0x1d360, 18, EVAS_SCRIPT_COMMON }, - { 0x1d400, 85, EVAS_SCRIPT_COMMON }, - { 0x1d456, 71, EVAS_SCRIPT_COMMON }, - { 0x1d49e, 2, EVAS_SCRIPT_COMMON }, - { 0x1d4a2, 1, EVAS_SCRIPT_COMMON }, - { 0x1d4a5, 2, EVAS_SCRIPT_COMMON }, - { 0x1d4a9, 4, EVAS_SCRIPT_COMMON }, - { 0x1d4ae, 12, EVAS_SCRIPT_COMMON }, - { 0x1d4bb, 1, EVAS_SCRIPT_COMMON }, - { 0x1d4bd, 7, EVAS_SCRIPT_COMMON }, - { 0x1d4c5, 65, EVAS_SCRIPT_COMMON }, - { 0x1d507, 4, EVAS_SCRIPT_COMMON }, - { 0x1d50d, 8, EVAS_SCRIPT_COMMON }, - { 0x1d516, 7, EVAS_SCRIPT_COMMON }, - { 0x1d51e, 28, EVAS_SCRIPT_COMMON }, - { 0x1d53b, 4, EVAS_SCRIPT_COMMON }, - { 0x1d540, 5, EVAS_SCRIPT_COMMON }, - { 0x1d546, 1, EVAS_SCRIPT_COMMON }, - { 0x1d54a, 7, EVAS_SCRIPT_COMMON }, - { 0x1d552, 340, EVAS_SCRIPT_COMMON }, - { 0x1d6a8, 292, EVAS_SCRIPT_COMMON }, - { 0x1d7ce, 50, EVAS_SCRIPT_COMMON }, - { 0x1f000, 44, EVAS_SCRIPT_COMMON }, - { 0x1f030, 100, EVAS_SCRIPT_COMMON }, - { 0x1f0a0, 15, EVAS_SCRIPT_COMMON }, - { 0x1f0b1, 14, EVAS_SCRIPT_COMMON }, - { 0x1f0c1, 15, EVAS_SCRIPT_COMMON }, - { 0x1f0d1, 15, EVAS_SCRIPT_COMMON }, - { 0x1f100, 11, EVAS_SCRIPT_COMMON }, - { 0x1f110, 31, EVAS_SCRIPT_COMMON }, - { 0x1f130, 58, EVAS_SCRIPT_COMMON }, - { 0x1f170, 43, EVAS_SCRIPT_COMMON }, - { 0x1f1e6, 26, EVAS_SCRIPT_COMMON }, - { 0x1f200, 1, EVAS_SCRIPT_HIRAGANA }, - { 0x1f201, 2, EVAS_SCRIPT_COMMON }, - { 0x1f210, 43, EVAS_SCRIPT_COMMON }, - { 0x1f240, 9, EVAS_SCRIPT_COMMON }, - { 0x1f250, 2, EVAS_SCRIPT_COMMON }, - { 0x1f300, 33, EVAS_SCRIPT_COMMON }, - { 0x1f330, 6, EVAS_SCRIPT_COMMON }, - { 0x1f337, 70, EVAS_SCRIPT_COMMON }, - { 0x1f380, 20, EVAS_SCRIPT_COMMON }, - { 0x1f3a0, 37, EVAS_SCRIPT_COMMON }, - { 0x1f3c6, 5, EVAS_SCRIPT_COMMON }, - { 0x1f3e0, 17, EVAS_SCRIPT_COMMON }, - { 0x1f400, 63, EVAS_SCRIPT_COMMON }, - { 0x1f440, 1, EVAS_SCRIPT_COMMON }, - { 0x1f442, 182, EVAS_SCRIPT_COMMON }, - { 0x1f4f9, 4, EVAS_SCRIPT_COMMON }, - { 0x1f500, 62, EVAS_SCRIPT_COMMON }, - { 0x1f550, 24, EVAS_SCRIPT_COMMON }, - { 0x1f5fb, 5, EVAS_SCRIPT_COMMON }, - { 0x1f601, 16, EVAS_SCRIPT_COMMON }, - { 0x1f612, 3, EVAS_SCRIPT_COMMON }, - { 0x1f616, 1, EVAS_SCRIPT_COMMON }, - { 0x1f618, 1, EVAS_SCRIPT_COMMON }, - { 0x1f61a, 1, EVAS_SCRIPT_COMMON }, - { 0x1f61c, 3, EVAS_SCRIPT_COMMON }, - { 0x1f620, 6, EVAS_SCRIPT_COMMON }, - { 0x1f628, 4, EVAS_SCRIPT_COMMON }, - { 0x1f62d, 1, EVAS_SCRIPT_COMMON }, - { 0x1f630, 4, EVAS_SCRIPT_COMMON }, - { 0x1f635, 12, EVAS_SCRIPT_COMMON }, - { 0x1f645, 11, EVAS_SCRIPT_COMMON }, - { 0x1f680, 70, EVAS_SCRIPT_COMMON }, - { 0x1f700, 116, EVAS_SCRIPT_COMMON }, - { 0x20000, 42711, EVAS_SCRIPT_HAN }, - { 0x2a700, 4149, EVAS_SCRIPT_HAN }, - { 0x2b740, 222, EVAS_SCRIPT_HAN }, - { 0x2f800, 542, EVAS_SCRIPT_HAN }, - { 0xe0001, 1, EVAS_SCRIPT_COMMON }, - { 0xe0020, 96, EVAS_SCRIPT_COMMON }, - { 0xe0100, 240, EVAS_SCRIPT_INHERITED }, -}; -- cgit v1.1