diff options
Diffstat (limited to '')
31 files changed, 1113 insertions, 362 deletions
diff --git a/libraries/evas/src/lib/engines/Makefile.in b/libraries/evas/src/lib/engines/Makefile.in index 12e28c1..4c3c1da 100644 --- a/libraries/evas/src/lib/engines/Makefile.in +++ b/libraries/evas/src/lib/engines/Makefile.in | |||
@@ -208,8 +208,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ | |||
208 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ | 208 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ |
209 | PIXMAN_LIBS = @PIXMAN_LIBS@ | 209 | PIXMAN_LIBS = @PIXMAN_LIBS@ |
210 | PKG_CONFIG = @PKG_CONFIG@ | 210 | PKG_CONFIG = @PKG_CONFIG@ |
211 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
212 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
213 | PNG_CFLAGS = @PNG_CFLAGS@ | 211 | PNG_CFLAGS = @PNG_CFLAGS@ |
214 | PNG_LIBS = @PNG_LIBS@ | 212 | PNG_LIBS = @PNG_LIBS@ |
215 | RANLIB = @RANLIB@ | 213 | RANLIB = @RANLIB@ |
@@ -226,6 +224,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ | |||
226 | VALGRIND_LIBS = @VALGRIND_LIBS@ | 224 | VALGRIND_LIBS = @VALGRIND_LIBS@ |
227 | VERSION = @VERSION@ | 225 | VERSION = @VERSION@ |
228 | VMAJ = @VMAJ@ | 226 | VMAJ = @VMAJ@ |
227 | WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ | ||
228 | WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ | ||
229 | WIN32_CFLAGS = @WIN32_CFLAGS@ | 229 | WIN32_CFLAGS = @WIN32_CFLAGS@ |
230 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ | 230 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ |
231 | XCB_CFLAGS = @XCB_CFLAGS@ | 231 | XCB_CFLAGS = @XCB_CFLAGS@ |
@@ -307,6 +307,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ | |||
307 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ | 307 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ |
308 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ | 308 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ |
309 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ | 309 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ |
310 | evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ | ||
311 | evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ | ||
312 | evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ | ||
313 | evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ | ||
310 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ | 314 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ |
311 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ | 315 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ |
312 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ | 316 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ |
diff --git a/libraries/evas/src/lib/engines/common/Makefile.in b/libraries/evas/src/lib/engines/common/Makefile.in index b0162df..7d1f20a 100644 --- a/libraries/evas/src/lib/engines/common/Makefile.in +++ b/libraries/evas/src/lib/engines/common/Makefile.in | |||
@@ -252,8 +252,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ | |||
252 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ | 252 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ |
253 | PIXMAN_LIBS = @PIXMAN_LIBS@ | 253 | PIXMAN_LIBS = @PIXMAN_LIBS@ |
254 | PKG_CONFIG = @PKG_CONFIG@ | 254 | PKG_CONFIG = @PKG_CONFIG@ |
255 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
256 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
257 | PNG_CFLAGS = @PNG_CFLAGS@ | 255 | PNG_CFLAGS = @PNG_CFLAGS@ |
258 | PNG_LIBS = @PNG_LIBS@ | 256 | PNG_LIBS = @PNG_LIBS@ |
259 | RANLIB = @RANLIB@ | 257 | RANLIB = @RANLIB@ |
@@ -270,6 +268,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ | |||
270 | VALGRIND_LIBS = @VALGRIND_LIBS@ | 268 | VALGRIND_LIBS = @VALGRIND_LIBS@ |
271 | VERSION = @VERSION@ | 269 | VERSION = @VERSION@ |
272 | VMAJ = @VMAJ@ | 270 | VMAJ = @VMAJ@ |
271 | WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ | ||
272 | WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ | ||
273 | WIN32_CFLAGS = @WIN32_CFLAGS@ | 273 | WIN32_CFLAGS = @WIN32_CFLAGS@ |
274 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ | 274 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ |
275 | XCB_CFLAGS = @XCB_CFLAGS@ | 275 | XCB_CFLAGS = @XCB_CFLAGS@ |
@@ -351,6 +351,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ | |||
351 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ | 351 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ |
352 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ | 352 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ |
353 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ | 353 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ |
354 | evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ | ||
355 | evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ | ||
356 | evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ | ||
357 | evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ | ||
354 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ | 358 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ |
355 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ | 359 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ |
356 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ | 360 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ |
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 index b30ec1e..796ff17 100644 --- a/libraries/evas/src/lib/engines/common/evas_convert_rgb_16.c +++ b/libraries/evas/src/lib/engines/common/evas_convert_rgb_16.c | |||
@@ -117,7 +117,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int sr | |||
117 | } | 117 | } |
118 | #endif | 118 | #endif |
119 | return; | 119 | return; |
120 | pal = 0; | 120 | (void)pal; |
121 | #else | 121 | #else |
122 | DATA16 *d = (DATA16 *)dst; | 122 | DATA16 *d = (DATA16 *)dst; |
123 | int w0 = w; | 123 | int w0 = w; |
@@ -144,7 +144,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int sr | |||
144 | d += dst_jump; | 144 | d += dst_jump; |
145 | } | 145 | } |
146 | return; | 146 | return; |
147 | pal = 0; | 147 | (void)pal; |
148 | #endif | 148 | #endif |
149 | } | 149 | } |
150 | #endif | 150 | #endif |
@@ -216,7 +216,7 @@ evas_common_convert_rgba_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int src | |||
216 | } | 216 | } |
217 | #endif | 217 | #endif |
218 | return; | 218 | return; |
219 | pal = 0; | 219 | (void)pal; |
220 | #else | 220 | #else |
221 | DATA16 *d = (DATA16 *)dst; | 221 | DATA16 *d = (DATA16 *)dst; |
222 | int w0 = w; | 222 | int w0 = w; |
@@ -233,7 +233,7 @@ evas_common_convert_rgba_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int src | |||
233 | d += dst_jump; | 233 | d += dst_jump; |
234 | } | 234 | } |
235 | return; | 235 | return; |
236 | pal = 0; | 236 | (void)pal; |
237 | #endif | 237 | #endif |
238 | } | 238 | } |
239 | #endif | 239 | #endif |
@@ -295,7 +295,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_180 (DATA32 *src, DATA8 *dst | |||
295 | 295 | ||
296 | CONVERT_LOOP2_END_ROT_180(); | 296 | CONVERT_LOOP2_END_ROT_180(); |
297 | return; | 297 | return; |
298 | pal = 0; | 298 | (void)pal; |
299 | } | 299 | } |
300 | #endif | 300 | #endif |
301 | #endif | 301 | #endif |
@@ -333,7 +333,7 @@ evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_180 (DATA32 *src, DATA8 *dst, | |||
333 | 333 | ||
334 | CONVERT_LOOP_END_ROT_180(); | 334 | CONVERT_LOOP_END_ROT_180(); |
335 | return; | 335 | return; |
336 | pal = 0; | 336 | (void)pal; |
337 | } | 337 | } |
338 | #endif | 338 | #endif |
339 | #endif | 339 | #endif |
@@ -394,7 +394,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_270 (DATA32 *src, DATA8 *dst | |||
394 | 394 | ||
395 | CONVERT_LOOP2_END_ROT_270(); | 395 | CONVERT_LOOP2_END_ROT_270(); |
396 | return; | 396 | return; |
397 | pal = 0; | 397 | (void)pal; |
398 | } | 398 | } |
399 | #endif | 399 | #endif |
400 | #endif | 400 | #endif |
@@ -432,7 +432,7 @@ evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_270 (DATA32 *src, DATA8 *dst, | |||
432 | 432 | ||
433 | CONVERT_LOOP_END_ROT_270(); | 433 | CONVERT_LOOP_END_ROT_270(); |
434 | return; | 434 | return; |
435 | pal = 0; | 435 | (void)pal; |
436 | } | 436 | } |
437 | #endif | 437 | #endif |
438 | #endif | 438 | #endif |
@@ -493,7 +493,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_90 (DATA32 *src, DATA8 *dst, | |||
493 | 493 | ||
494 | CONVERT_LOOP2_END_ROT_90(); | 494 | CONVERT_LOOP2_END_ROT_90(); |
495 | return; | 495 | return; |
496 | pal = 0; | 496 | (void)pal; |
497 | } | 497 | } |
498 | #endif | 498 | #endif |
499 | #endif | 499 | #endif |
@@ -531,7 +531,7 @@ evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_90 (DATA32 *src, DATA8 *dst, | |||
531 | 531 | ||
532 | CONVERT_LOOP_END_ROT_90(); | 532 | CONVERT_LOOP_END_ROT_90(); |
533 | return; | 533 | return; |
534 | pal = 0; | 534 | (void)pal; |
535 | } | 535 | } |
536 | #endif | 536 | #endif |
537 | #endif | 537 | #endif |
@@ -592,7 +592,7 @@ evas_common_convert_rgba2_to_16bpp_bgr_565_dith (DATA32 *src, DATA8 *dst, int sr | |||
592 | 592 | ||
593 | CONVERT_LOOP2_END_ROT_0(); | 593 | CONVERT_LOOP2_END_ROT_0(); |
594 | return; | 594 | return; |
595 | pal = 0; | 595 | (void)pal; |
596 | } | 596 | } |
597 | #endif | 597 | #endif |
598 | #endif | 598 | #endif |
@@ -630,7 +630,7 @@ evas_common_convert_rgba_to_16bpp_bgr_565_dith (DATA32 *src, DATA8 *dst, int src | |||
630 | 630 | ||
631 | CONVERT_LOOP_END_ROT_0(); | 631 | CONVERT_LOOP_END_ROT_0(); |
632 | return; | 632 | return; |
633 | pal = 0; | 633 | (void)pal; |
634 | } | 634 | } |
635 | #endif | 635 | #endif |
636 | #endif | 636 | #endif |
@@ -691,7 +691,7 @@ evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_180 (DATA32 *src, DATA8 *dst | |||
691 | 691 | ||
692 | CONVERT_LOOP2_END_ROT_180(); | 692 | CONVERT_LOOP2_END_ROT_180(); |
693 | return; | 693 | return; |
694 | pal = 0; | 694 | (void)pal; |
695 | } | 695 | } |
696 | #endif | 696 | #endif |
697 | #endif | 697 | #endif |
@@ -731,7 +731,7 @@ evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_180 (DATA32 *src, DATA8 *dst, | |||
731 | 731 | ||
732 | CONVERT_LOOP_END_ROT_180(); | 732 | CONVERT_LOOP_END_ROT_180(); |
733 | return; | 733 | return; |
734 | pal = 0; | 734 | (void)pal; |
735 | } | 735 | } |
736 | #endif | 736 | #endif |
737 | #endif | 737 | #endif |
@@ -792,7 +792,7 @@ evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_270 (DATA32 *src, DATA8 *dst | |||
792 | 792 | ||
793 | CONVERT_LOOP2_END_ROT_270(); | 793 | CONVERT_LOOP2_END_ROT_270(); |
794 | return; | 794 | return; |
795 | pal = 0; | 795 | (void)pal; |
796 | } | 796 | } |
797 | #endif | 797 | #endif |
798 | #endif | 798 | #endif |
@@ -830,7 +830,7 @@ evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_270 (DATA32 *src, DATA8 *dst, | |||
830 | 830 | ||
831 | CONVERT_LOOP_END_ROT_270(); | 831 | CONVERT_LOOP_END_ROT_270(); |
832 | return; | 832 | return; |
833 | pal = 0; | 833 | (void)pal; |
834 | } | 834 | } |
835 | #endif | 835 | #endif |
836 | #endif | 836 | #endif |
@@ -891,7 +891,7 @@ evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_90 (DATA32 *src, DATA8 *dst, | |||
891 | 891 | ||
892 | CONVERT_LOOP2_END_ROT_90(); | 892 | CONVERT_LOOP2_END_ROT_90(); |
893 | return; | 893 | return; |
894 | pal = 0; | 894 | (void)pal; |
895 | } | 895 | } |
896 | #endif | 896 | #endif |
897 | #endif | 897 | #endif |
@@ -929,7 +929,7 @@ evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_90 (DATA32 *src, DATA8 *dst, | |||
929 | 929 | ||
930 | CONVERT_LOOP_END_ROT_90(); | 930 | CONVERT_LOOP_END_ROT_90(); |
931 | return; | 931 | return; |
932 | pal = 0; | 932 | (void)pal; |
933 | } | 933 | } |
934 | #endif | 934 | #endif |
935 | #endif | 935 | #endif |
@@ -988,7 +988,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_444_dith (DATA32 *src, DATA8 *dst, int sr | |||
988 | 988 | ||
989 | CONVERT_LOOP2_END_ROT_0(); | 989 | CONVERT_LOOP2_END_ROT_0(); |
990 | return; | 990 | return; |
991 | pal = 0; | 991 | (void)pal; |
992 | } | 992 | } |
993 | #endif | 993 | #endif |
994 | #endif | 994 | #endif |
@@ -1025,7 +1025,7 @@ evas_common_convert_rgba_to_16bpp_rgb_444_dith (DATA32 *src, DATA8 *dst, int src | |||
1025 | 1025 | ||
1026 | CONVERT_LOOP_END_ROT_0(); | 1026 | CONVERT_LOOP_END_ROT_0(); |
1027 | return; | 1027 | return; |
1028 | pal = 0; | 1028 | (void)pal; |
1029 | } | 1029 | } |
1030 | #endif | 1030 | #endif |
1031 | #endif | 1031 | #endif |
@@ -1084,7 +1084,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_180 (DATA32 *src, DATA8 *dst | |||
1084 | 1084 | ||
1085 | CONVERT_LOOP2_END_ROT_180(); | 1085 | CONVERT_LOOP2_END_ROT_180(); |
1086 | return; | 1086 | return; |
1087 | pal = 0; | 1087 | (void)pal; |
1088 | } | 1088 | } |
1089 | #endif | 1089 | #endif |
1090 | #endif | 1090 | #endif |
@@ -1121,7 +1121,7 @@ evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_180 (DATA32 *src, DATA8 *dst, | |||
1121 | 1121 | ||
1122 | CONVERT_LOOP_END_ROT_180(); | 1122 | CONVERT_LOOP_END_ROT_180(); |
1123 | return; | 1123 | return; |
1124 | pal = 0; | 1124 | (void)pal; |
1125 | } | 1125 | } |
1126 | #endif | 1126 | #endif |
1127 | #endif | 1127 | #endif |
@@ -1180,7 +1180,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_270 (DATA32 *src, DATA8 *dst | |||
1180 | 1180 | ||
1181 | CONVERT_LOOP2_END_ROT_270(); | 1181 | CONVERT_LOOP2_END_ROT_270(); |
1182 | return; | 1182 | return; |
1183 | pal = 0; | 1183 | (void)pal; |
1184 | } | 1184 | } |
1185 | #endif | 1185 | #endif |
1186 | #endif | 1186 | #endif |
@@ -1217,7 +1217,7 @@ evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_270 (DATA32 *src, DATA8 *dst, | |||
1217 | 1217 | ||
1218 | CONVERT_LOOP_END_ROT_270(); | 1218 | CONVERT_LOOP_END_ROT_270(); |
1219 | return; | 1219 | return; |
1220 | pal = 0; | 1220 | (void)pal; |
1221 | } | 1221 | } |
1222 | #endif | 1222 | #endif |
1223 | #endif | 1223 | #endif |
@@ -1276,7 +1276,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_90 (DATA32 *src, DATA8 *dst, | |||
1276 | 1276 | ||
1277 | CONVERT_LOOP2_END_ROT_90(); | 1277 | CONVERT_LOOP2_END_ROT_90(); |
1278 | return; | 1278 | return; |
1279 | pal = 0; | 1279 | (void)pal; |
1280 | } | 1280 | } |
1281 | #endif | 1281 | #endif |
1282 | #endif | 1282 | #endif |
@@ -1313,7 +1313,7 @@ evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_90 (DATA32 *src, DATA8 *dst, | |||
1313 | 1313 | ||
1314 | CONVERT_LOOP_END_ROT_90(); | 1314 | CONVERT_LOOP_END_ROT_90(); |
1315 | return; | 1315 | return; |
1316 | pal = 0; | 1316 | (void)pal; |
1317 | } | 1317 | } |
1318 | #endif | 1318 | #endif |
1319 | #endif | 1319 | #endif |
@@ -1372,7 +1372,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_454645_dith (DATA32 *src, DATA8 *dst, int | |||
1372 | 1372 | ||
1373 | CONVERT_LOOP2_END_ROT_0(); | 1373 | CONVERT_LOOP2_END_ROT_0(); |
1374 | return; | 1374 | return; |
1375 | pal = 0; | 1375 | (void)pal; |
1376 | } | 1376 | } |
1377 | #endif | 1377 | #endif |
1378 | #endif | 1378 | #endif |
@@ -1409,7 +1409,7 @@ evas_common_convert_rgba_to_16bpp_rgb_454645_dith (DATA32 *src, DATA8 *dst, int | |||
1409 | 1409 | ||
1410 | CONVERT_LOOP_END_ROT_0(); | 1410 | CONVERT_LOOP_END_ROT_0(); |
1411 | return; | 1411 | return; |
1412 | pal = 0; | 1412 | (void)pal; |
1413 | } | 1413 | } |
1414 | #endif | 1414 | #endif |
1415 | #endif | 1415 | #endif |
@@ -1468,7 +1468,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_180 (DATA32 *src, DATA8 * | |||
1468 | 1468 | ||
1469 | CONVERT_LOOP2_END_ROT_180(); | 1469 | CONVERT_LOOP2_END_ROT_180(); |
1470 | return; | 1470 | return; |
1471 | pal = 0; | 1471 | (void)pal; |
1472 | } | 1472 | } |
1473 | #endif | 1473 | #endif |
1474 | #endif | 1474 | #endif |
@@ -1505,7 +1505,7 @@ evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_180 (DATA32 *src, DATA8 *d | |||
1505 | 1505 | ||
1506 | CONVERT_LOOP_END_ROT_180(); | 1506 | CONVERT_LOOP_END_ROT_180(); |
1507 | return; | 1507 | return; |
1508 | pal = 0; | 1508 | (void)pal; |
1509 | } | 1509 | } |
1510 | #endif | 1510 | #endif |
1511 | #endif | 1511 | #endif |
@@ -1565,7 +1565,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_270 (DATA32 *src, DATA8 * | |||
1565 | 1565 | ||
1566 | CONVERT_LOOP2_END_ROT_270(); | 1566 | CONVERT_LOOP2_END_ROT_270(); |
1567 | return; | 1567 | return; |
1568 | pal = 0; | 1568 | (void)pal; |
1569 | } | 1569 | } |
1570 | #endif | 1570 | #endif |
1571 | #endif | 1571 | #endif |
@@ -1602,7 +1602,7 @@ evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_270 (DATA32 *src, DATA8 *d | |||
1602 | 1602 | ||
1603 | CONVERT_LOOP_END_ROT_270(); | 1603 | CONVERT_LOOP_END_ROT_270(); |
1604 | return; | 1604 | return; |
1605 | pal = 0; | 1605 | (void)pal; |
1606 | } | 1606 | } |
1607 | #endif | 1607 | #endif |
1608 | #endif | 1608 | #endif |
@@ -1661,7 +1661,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_90 (DATA32 *src, DATA8 *d | |||
1661 | 1661 | ||
1662 | CONVERT_LOOP2_END_ROT_90(); | 1662 | CONVERT_LOOP2_END_ROT_90(); |
1663 | return; | 1663 | return; |
1664 | pal = 0; | 1664 | (void)pal; |
1665 | } | 1665 | } |
1666 | #endif | 1666 | #endif |
1667 | #endif | 1667 | #endif |
@@ -1698,7 +1698,7 @@ evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_90 (DATA32 *src, DATA8 *ds | |||
1698 | 1698 | ||
1699 | CONVERT_LOOP_END_ROT_90(); | 1699 | CONVERT_LOOP_END_ROT_90(); |
1700 | return; | 1700 | return; |
1701 | pal = 0; | 1701 | (void)pal; |
1702 | } | 1702 | } |
1703 | #endif | 1703 | #endif |
1704 | #endif | 1704 | #endif |
@@ -1757,7 +1757,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_555_dith (DATA32 *src, DATA8 *dst, int sr | |||
1757 | 1757 | ||
1758 | CONVERT_LOOP2_END_ROT_0(); | 1758 | CONVERT_LOOP2_END_ROT_0(); |
1759 | return; | 1759 | return; |
1760 | pal = 0; | 1760 | (void)pal; |
1761 | } | 1761 | } |
1762 | #endif | 1762 | #endif |
1763 | #endif | 1763 | #endif |
@@ -1794,7 +1794,7 @@ evas_common_convert_rgba_to_16bpp_rgb_555_dith (DATA32 *src, DATA8 *dst, int src | |||
1794 | 1794 | ||
1795 | CONVERT_LOOP_END_ROT_0(); | 1795 | CONVERT_LOOP_END_ROT_0(); |
1796 | return; | 1796 | return; |
1797 | pal = 0; | 1797 | (void)pal; |
1798 | } | 1798 | } |
1799 | #endif | 1799 | #endif |
1800 | #endif | 1800 | #endif |
@@ -1853,7 +1853,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_180 (DATA32 *src, DATA8 *dst | |||
1853 | 1853 | ||
1854 | CONVERT_LOOP2_END_ROT_180(); | 1854 | CONVERT_LOOP2_END_ROT_180(); |
1855 | return; | 1855 | return; |
1856 | pal = 0; | 1856 | (void)pal; |
1857 | } | 1857 | } |
1858 | #endif | 1858 | #endif |
1859 | #endif | 1859 | #endif |
@@ -1890,7 +1890,7 @@ evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_180 (DATA32 *src, DATA8 *dst, | |||
1890 | 1890 | ||
1891 | CONVERT_LOOP_END_ROT_180(); | 1891 | CONVERT_LOOP_END_ROT_180(); |
1892 | return; | 1892 | return; |
1893 | pal = 0; | 1893 | (void)pal; |
1894 | } | 1894 | } |
1895 | #endif | 1895 | #endif |
1896 | #endif | 1896 | #endif |
@@ -1949,7 +1949,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_270 (DATA32 *src, DATA8 *dst | |||
1949 | 1949 | ||
1950 | CONVERT_LOOP2_END_ROT_270(); | 1950 | CONVERT_LOOP2_END_ROT_270(); |
1951 | return; | 1951 | return; |
1952 | pal = 0; | 1952 | (void)pal; |
1953 | } | 1953 | } |
1954 | #endif | 1954 | #endif |
1955 | #endif | 1955 | #endif |
@@ -1986,7 +1986,7 @@ evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_270 (DATA32 *src, DATA8 *dst, | |||
1986 | 1986 | ||
1987 | CONVERT_LOOP_END_ROT_270(); | 1987 | CONVERT_LOOP_END_ROT_270(); |
1988 | return; | 1988 | return; |
1989 | pal = 0; | 1989 | (void)pal; |
1990 | } | 1990 | } |
1991 | #endif | 1991 | #endif |
1992 | #endif | 1992 | #endif |
@@ -2045,7 +2045,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_90 (DATA32 *src, DATA8 *dst, | |||
2045 | 2045 | ||
2046 | CONVERT_LOOP2_END_ROT_90(); | 2046 | CONVERT_LOOP2_END_ROT_90(); |
2047 | return; | 2047 | return; |
2048 | pal = 0; | 2048 | (void)pal; |
2049 | } | 2049 | } |
2050 | #endif | 2050 | #endif |
2051 | #endif | 2051 | #endif |
@@ -2082,7 +2082,7 @@ evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_90 (DATA32 *src, DATA8 *dst, | |||
2082 | 2082 | ||
2083 | CONVERT_LOOP_END_ROT_90(); | 2083 | CONVERT_LOOP_END_ROT_90(); |
2084 | return; | 2084 | return; |
2085 | pal = 0; | 2085 | (void)pal; |
2086 | } | 2086 | } |
2087 | #endif | 2087 | #endif |
2088 | #endif | 2088 | #endif |
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 index 41dac6f..0401a4a 100644 --- a/libraries/evas/src/lib/engines/common/evas_convert_rgb_32.c +++ b/libraries/evas/src/lib/engines/common/evas_convert_rgb_32.c | |||
@@ -48,15 +48,167 @@ evas_common_convert_rgba_to_32bpp_rgb_8888_rot_180 (DATA32 *src, DATA8 *dst, int | |||
48 | #endif | 48 | #endif |
49 | #endif | 49 | #endif |
50 | 50 | ||
51 | #ifdef TILE_ROTATE | ||
52 | #define FAST_SIMPLE_ROTATE(suffix, pix_type) \ | ||
53 | static void \ | ||
54 | blt_rotated_90_trivial_##suffix(pix_type *dst, \ | ||
55 | int dst_stride, \ | ||
56 | const pix_type *src, \ | ||
57 | int src_stride, \ | ||
58 | int w, \ | ||
59 | int h) \ | ||
60 | { \ | ||
61 | int x, y; \ | ||
62 | for (y = 0; y < h; y++) \ | ||
63 | { \ | ||
64 | const pix_type *s = src + (h - y - 1); \ | ||
65 | pix_type *d = dst + (dst_stride * y); \ | ||
66 | for (x = 0; x < w; x++) \ | ||
67 | { \ | ||
68 | *d++ = *s; \ | ||
69 | s += src_stride; \ | ||
70 | } \ | ||
71 | } \ | ||
72 | } \ | ||
73 | static void \ | ||
74 | blt_rotated_270_trivial_##suffix(pix_type *dst, \ | ||
75 | int dst_stride, \ | ||
76 | const pix_type *src, \ | ||
77 | int src_stride, \ | ||
78 | int w, \ | ||
79 | int h) \ | ||
80 | { \ | ||
81 | int x, y; \ | ||
82 | for (y = 0; y < h; y++) \ | ||
83 | { \ | ||
84 | const pix_type *s = src + (src_stride * (w - 1)) + y; \ | ||
85 | pix_type *d = dst + (dst_stride * y); \ | ||
86 | for (x = 0; x < w; x++) \ | ||
87 | { \ | ||
88 | *d++ = *s; \ | ||
89 | s -= src_stride; \ | ||
90 | } \ | ||
91 | } \ | ||
92 | } \ | ||
93 | static void \ | ||
94 | blt_rotated_90_##suffix(pix_type *dst, \ | ||
95 | int dst_stride, \ | ||
96 | const pix_type *src, \ | ||
97 | int src_stride, \ | ||
98 | int w, \ | ||
99 | int h) \ | ||
100 | { \ | ||
101 | int x, leading_pixels = 0, trailing_pixels = 0; \ | ||
102 | const int TILE_SIZE = TILE_CACHE_LINE_SIZE / sizeof(pix_type); \ | ||
103 | if ((uintptr_t)dst & (TILE_CACHE_LINE_SIZE - 1)) \ | ||
104 | { \ | ||
105 | leading_pixels = TILE_SIZE - \ | ||
106 | (((uintptr_t)dst & (TILE_CACHE_LINE_SIZE - 1)) / sizeof(pix_type)); \ | ||
107 | if (leading_pixels > w) \ | ||
108 | leading_pixels = w; \ | ||
109 | blt_rotated_90_trivial_##suffix(dst, \ | ||
110 | dst_stride, \ | ||
111 | src, \ | ||
112 | src_stride, \ | ||
113 | leading_pixels, \ | ||
114 | h); \ | ||
115 | dst += leading_pixels; \ | ||
116 | src += leading_pixels * src_stride; \ | ||
117 | w -= leading_pixels; \ | ||
118 | } \ | ||
119 | if ((uintptr_t)(dst + w) & (TILE_CACHE_LINE_SIZE - 1)) \ | ||
120 | { \ | ||
121 | trailing_pixels = (((uintptr_t)(dst + w) & \ | ||
122 | (TILE_CACHE_LINE_SIZE - 1)) / sizeof(pix_type)); \ | ||
123 | if (trailing_pixels > w) \ | ||
124 | trailing_pixels = w; \ | ||
125 | w -= trailing_pixels; \ | ||
126 | } \ | ||
127 | for (x = 0; x < w; x += TILE_SIZE) \ | ||
128 | { \ | ||
129 | blt_rotated_90_trivial_##suffix(dst + x, \ | ||
130 | dst_stride, \ | ||
131 | src + (src_stride * x), \ | ||
132 | src_stride, \ | ||
133 | TILE_SIZE, \ | ||
134 | h); \ | ||
135 | } \ | ||
136 | if (trailing_pixels) \ | ||
137 | blt_rotated_90_trivial_##suffix(dst + w, \ | ||
138 | dst_stride, \ | ||
139 | src + (w * src_stride), \ | ||
140 | src_stride, \ | ||
141 | trailing_pixels, \ | ||
142 | h); \ | ||
143 | } \ | ||
144 | static void \ | ||
145 | blt_rotated_270_##suffix(pix_type *dst, \ | ||
146 | int dst_stride, \ | ||
147 | const pix_type *src, \ | ||
148 | int src_stride, \ | ||
149 | int w, \ | ||
150 | int h) \ | ||
151 | { \ | ||
152 | int x, leading_pixels = 0, trailing_pixels = 0; \ | ||
153 | const int TILE_SIZE = TILE_CACHE_LINE_SIZE / sizeof(pix_type); \ | ||
154 | if ((uintptr_t)dst & (TILE_CACHE_LINE_SIZE - 1)) \ | ||
155 | { \ | ||
156 | leading_pixels = TILE_SIZE - \ | ||
157 | (((uintptr_t)dst & (TILE_CACHE_LINE_SIZE - 1)) / sizeof(pix_type)); \ | ||
158 | if (leading_pixels > w) \ | ||
159 | leading_pixels = w; \ | ||
160 | blt_rotated_270_trivial_##suffix(dst, \ | ||
161 | dst_stride, \ | ||
162 | src + (src_stride * (w - leading_pixels)), \ | ||
163 | src_stride, \ | ||
164 | leading_pixels, \ | ||
165 | h); \ | ||
166 | dst += leading_pixels; \ | ||
167 | w -= leading_pixels; \ | ||
168 | } \ | ||
169 | if ((uintptr_t)(dst + w) & (TILE_CACHE_LINE_SIZE - 1)) \ | ||
170 | { \ | ||
171 | trailing_pixels = (((uintptr_t)(dst + w) & \ | ||
172 | (TILE_CACHE_LINE_SIZE - 1)) / sizeof(pix_type)); \ | ||
173 | if (trailing_pixels > w) \ | ||
174 | trailing_pixels = w; \ | ||
175 | w -= trailing_pixels; \ | ||
176 | src += trailing_pixels * src_stride; \ | ||
177 | } \ | ||
178 | for (x = 0; x < w; x += TILE_SIZE) \ | ||
179 | { \ | ||
180 | blt_rotated_270_trivial_##suffix(dst + x, \ | ||
181 | dst_stride, \ | ||
182 | src + (src_stride * (w - x - TILE_SIZE)), \ | ||
183 | src_stride, \ | ||
184 | TILE_SIZE, \ | ||
185 | h); \ | ||
186 | } \ | ||
187 | if (trailing_pixels) \ | ||
188 | blt_rotated_270_trivial_##suffix(dst + w, \ | ||
189 | dst_stride, \ | ||
190 | src - (trailing_pixels * src_stride), \ | ||
191 | src_stride, \ | ||
192 | trailing_pixels, \ | ||
193 | h); \ | ||
194 | } | ||
195 | |||
196 | FAST_SIMPLE_ROTATE(8888, DATA8) | ||
197 | #endif | ||
198 | |||
199 | |||
51 | #ifdef BUILD_CONVERT_32_RGB_8888 | 200 | #ifdef BUILD_CONVERT_32_RGB_8888 |
52 | #ifdef BUILD_CONVERT_32_RGB_ROT270 | 201 | #ifdef BUILD_CONVERT_32_RGB_ROT270 |
53 | void | 202 | void |
54 | 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__) | 203 | 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__) |
55 | { | 204 | { |
205 | #ifdef TILE_ROTATE | ||
206 | blt_rotated_270_8888((DATA8 *)dst, dst_jump+w, (const DATA8 *)src, src_jump+h, w, h) ; | ||
207 | #else | ||
56 | DATA32 *src_ptr; | 208 | DATA32 *src_ptr; |
57 | DATA32 *dst_ptr; | 209 | DATA32 *dst_ptr; |
58 | int x, y; | 210 | int x, y; |
59 | 211 | ||
60 | dst_ptr = (DATA32 *)dst; | 212 | dst_ptr = (DATA32 *)dst; |
61 | 213 | ||
62 | CONVERT_LOOP_START_ROT_270(); | 214 | CONVERT_LOOP_START_ROT_270(); |
@@ -64,6 +216,7 @@ evas_common_convert_rgba_to_32bpp_rgb_8888_rot_270 (DATA32 *src, DATA8 *dst, int | |||
64 | *dst_ptr = *src_ptr; | 216 | *dst_ptr = *src_ptr; |
65 | 217 | ||
66 | CONVERT_LOOP_END_ROT_270(); | 218 | CONVERT_LOOP_END_ROT_270(); |
219 | #endif | ||
67 | return; | 220 | return; |
68 | } | 221 | } |
69 | #endif | 222 | #endif |
@@ -74,106 +227,118 @@ evas_common_convert_rgba_to_32bpp_rgb_8888_rot_270 (DATA32 *src, DATA8 *dst, int | |||
74 | void | 227 | void |
75 | 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__) | 228 | 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__) |
76 | { | 229 | { |
77 | #ifndef BUILD_NEON | 230 | # ifndef BUILD_NEON |
231 | # ifdef TILE_ROTATE | ||
232 | blt_rotated_90_8888((DATA8 *)dst, dst_jump+w, (const DATA8 *)src, src_jump+h, w, h) ; | ||
233 | # else | ||
78 | DATA32 *src_ptr; | 234 | DATA32 *src_ptr; |
79 | DATA32 *dst_ptr; | 235 | DATA32 *dst_ptr; |
80 | int x, y; | 236 | int x, y; |
81 | 237 | ||
82 | dst_ptr = (DATA32 *)dst; | 238 | dst_ptr = (DATA32 *)dst; |
83 | CONVERT_LOOP_START_ROT_90(); | 239 | CONVERT_LOOP_START_ROT_90(); |
84 | 240 | ||
85 | *dst_ptr = *src_ptr; | 241 | *dst_ptr = *src_ptr; |
86 | 242 | ||
87 | CONVERT_LOOP_END_ROT_90(); | 243 | CONVERT_LOOP_END_ROT_90(); |
88 | #else | 244 | # endif |
245 | |||
246 | # else | ||
247 | |||
248 | # ifdef TILE_ROTATE | ||
249 | blt_rotated_90_8888((DATA8 *)dst, dst_jump+w, (const DATA8 *)src, src_jump+h, w, h) ; | ||
250 | # else | ||
89 | if ((w & 1) || (h & 1)) | 251 | if ((w & 1) || (h & 1)) |
90 | { | 252 | { |
91 | /* Rarely (if ever) if ever: so slow path is fine */ | 253 | /* Rarely (if ever) if ever: so slow path is fine */ |
92 | DATA32 *src_ptr; | 254 | DATA32 *src_ptr; |
93 | DATA32 *dst_ptr; | 255 | DATA32 *dst_ptr; |
94 | int x, y; | 256 | int x, y; |
95 | 257 | ||
96 | dst_ptr = (DATA32 *)dst; | 258 | dst_ptr = (DATA32 *)dst; |
97 | CONVERT_LOOP_START_ROT_90(); | 259 | CONVERT_LOOP_START_ROT_90(); |
98 | 260 | ||
99 | *dst_ptr = *src_ptr; | 261 | *dst_ptr = *src_ptr; |
100 | 262 | ||
101 | CONVERT_LOOP_END_ROT_90(); | 263 | CONVERT_LOOP_END_ROT_90(); |
102 | } else { | 264 | } |
103 | #define AP "convert_rgba32_rot_90_" | 265 | else |
104 | asm volatile ( | 266 | { |
105 | ".fpu neon \n\t" | 267 | # define AP "convert_rgba32_rot_90_" |
106 | " mov %[s1], %[src] \n\t" | 268 | asm volatile ( |
107 | " add %[s1], %[h],lsl #2 \n\t" | 269 | ".fpu neon \n\t" |
108 | " sub %[s1], #8 \n\t" | 270 | " mov %[s1], %[src] \n\t" |
109 | 271 | " add %[s1], %[s1], %[h],lsl #2 \n\t" | |
110 | " mov %[s2], %[src] \n\t" | 272 | " sub %[s1], #8 \n\t" |
111 | " add %[s2], %[h], lsl #3 \n\t" | 273 | |
112 | " add %[s2], %[sjmp], lsr #1 \n\t" | 274 | " mov %[s2], %[src] \n\t" |
113 | " sub %[s2], #8 \n\t" | 275 | " add %[s2], %[s2], %[h], lsl #3 \n\t" |
114 | 276 | " add %[s2], %[s2], %[sjmp], lsr #1 \n\t" | |
115 | " mov %[d1], %[dst] \n\t" | 277 | " sub %[s2], #8 \n\t" |
116 | 278 | ||
117 | " add %[d2], %[d1], %[djmp] \n\t" | 279 | " mov %[d1], %[dst] \n\t" |
118 | " add %[d2], %[w], lsl #2 \n\t" | 280 | |
119 | 281 | " add %[d2], %[d1], %[djmp] \n\t" | |
120 | " mov %[sadv], %[h], lsl #3 \n\t" | 282 | " add %[d2], %[d2], %[w], lsl #2 \n\t" |
121 | " add %[sadv], %[sjmp], lsl #1 \n\t" | 283 | |
122 | 284 | " mov %[sadv], %[h], lsl #3 \n\t" | |
123 | " mov %[y], #0 \n\t" | 285 | " add %[sadv], %[sadv], %[sjmp], lsl #1\n\t" |
124 | " mov %[x], #0 \n\t" | 286 | |
125 | AP"loop: \n\t" | 287 | " mov %[y], #0 \n\t" |
126 | " vld1.u32 d0, [%[s1]] \n\t" | 288 | " mov %[x], #0 \n\t" |
127 | " vld1.u32 d1, [%[s2]] \n\t" | 289 | AP"loop: \n\t" |
128 | " add %[x], #2 \n\t" | 290 | " vld1.u32 d0, [%[s1]] \n\t" |
129 | " add %[s1], %[sadv] \n\t" | 291 | " vld1.u32 d1, [%[s2]] \n\t" |
130 | " add %[s2], %[sadv] \n\t" | 292 | " add %[x], #2 \n\t" |
131 | " vtrn.u32 d0, d1 \n\t" | 293 | " add %[s1], %[sadv] \n\t" |
132 | " cmp %[x], %[w] \n\t" | 294 | " add %[s2], %[sadv] \n\t" |
133 | " vst1.u32 d1, [%[d1]]! \n\t" | 295 | " vtrn.u32 d0, d1 \n\t" |
134 | " vst1.u32 d0, [%[d2]]! \n\t" | 296 | " cmp %[x], %[w] \n\t" |
135 | " blt "AP"loop \n\t" | 297 | " vst1.u32 d1, [%[d1]]! \n\t" |
136 | 298 | " vst1.u32 d0, [%[d2]]! \n\t" | |
137 | " mov %[x], #0 \n\t" | 299 | " blt "AP"loop \n\t" |
138 | " add %[d1], %[djmp] \n\t" | 300 | |
139 | " add %[d1], %[w], lsl #2 \n\t" | 301 | " mov %[x], #0 \n\t" |
140 | " add %[d2], %[djmp] \n\t" | 302 | " add %[d1], %[djmp] \n\t" |
141 | " add %[d2], %[w], lsl #2 \n\t" | 303 | " add %[d1], %[d1], %[w], lsl #2 \n\t" |
142 | 304 | " add %[d2], %[djmp] \n\t" | |
143 | " mov %[s1], %[src] \n\t" | 305 | " add %[d2], %[d2], %[w], lsl #2 \n\t" |
144 | " add %[s1], %[h], lsl #2 \n\t" | 306 | |
145 | " sub %[s1], %[y], lsl #2 \n\t" | 307 | " mov %[s1], %[src] \n\t" |
146 | " sub %[s1], #16 \n\t" | 308 | " add %[s1], %[s1], %[h], lsl #2 \n\t" |
147 | 309 | " sub %[s1], %[s1], %[y], lsl #2 \n\t" | |
148 | " add %[s2], %[s1], %[h], lsl #2 \n\t" | 310 | " sub %[s1], #16 \n\t" |
149 | " add %[s2], %[sjmp], lsl #2 \n\t" | 311 | |
150 | 312 | " add %[s2], %[s1], %[h], lsl #2 \n\t" | |
151 | " add %[y], #2 \n\t" | 313 | " add %[s2], %[s2], %[sjmp], lsl #2 \n\t" |
152 | 314 | ||
153 | " cmp %[y], %[h] \n\t" | 315 | " add %[y], #2 \n\t" |
154 | " blt "AP"loop \n\t" | 316 | |
155 | 317 | " cmp %[y], %[h] \n\t" | |
156 | : // Out | 318 | " blt "AP"loop \n\t" |
157 | : [s1] "r" (1), | 319 | |
158 | [s2] "r" (11), | 320 | : // Out |
159 | [d1] "r" (2), | 321 | : [s1] "r" (1), |
160 | [d2] "r" (12), | 322 | [s2] "r" (11), |
161 | [src] "r" (src), | 323 | [d1] "r" (2), |
162 | [dst] "r" (dst), | 324 | [d2] "r" (12), |
163 | [x] "r" (3), | 325 | [src] "r" (src), |
164 | [y] "r" (4), | 326 | [dst] "r" (dst), |
165 | [w] "r" (w), | 327 | [x] "r" (3), |
166 | [h] "r" (h), | 328 | [y] "r" (4), |
167 | [sadv] "r" (5), | 329 | [w] "r" (w), |
168 | [sjmp] "r" (src_jump * 4), | 330 | [h] "r" (h), |
169 | [djmp] "r" (dst_jump * 4 * 2) | 331 | [sadv] "r" (5), |
170 | : "d0", "d1", "memory", "cc"// Clober | 332 | [sjmp] "r" (src_jump * 4), |
171 | 333 | [djmp] "r" (dst_jump * 4 * 2) | |
172 | 334 | : "d0", "d1", "memory", "cc"// Clober | |
173 | ); | 335 | |
174 | } | 336 | |
175 | #undef AP | 337 | ); |
176 | #endif | 338 | } |
339 | # undef AP | ||
340 | # endif | ||
341 | # endif | ||
177 | return; | 342 | return; |
178 | } | 343 | } |
179 | #endif | 344 | #endif |
@@ -448,7 +613,7 @@ evas_common_convert_rgba_to_32bpp_rgb_666(DATA32 *src, DATA8 *dst, int src_jump, | |||
448 | 613 | ||
449 | CONVERT_LOOP_START_ROT_0(); | 614 | CONVERT_LOOP_START_ROT_0(); |
450 | 615 | ||
451 | *dst_ptr = | 616 | *dst_ptr = |
452 | (((R_VAL(src_ptr) << 12) | (B_VAL(src_ptr) >> 2)) & 0x03f03f) | | 617 | (((R_VAL(src_ptr) << 12) | (B_VAL(src_ptr) >> 2)) & 0x03f03f) | |
453 | ((G_VAL(src_ptr) << 4) & 0x000fc0); | 618 | ((G_VAL(src_ptr) << 4) & 0x000fc0); |
454 | 619 | ||
diff --git a/libraries/evas/src/lib/engines/common/evas_convert_yuv.c b/libraries/evas/src/lib/engines/common/evas_convert_yuv.c index a0d155c..000cb01 100644 --- a/libraries/evas/src/lib/engines/common/evas_convert_yuv.c +++ b/libraries/evas/src/lib/engines/common/evas_convert_yuv.c | |||
@@ -1091,7 +1091,7 @@ _evas_nv12tiledtorgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int | |||
1091 | const int offset_value[2] = { 0, 64 * 16 }; | 1091 | const int offset_value[2] = { 0, 64 * 16 }; |
1092 | int mb_x, mb_y, mb_w, mb_h; | 1092 | int mb_x, mb_y, mb_w, mb_h; |
1093 | int base_h; | 1093 | int base_h; |
1094 | int uv_x, uv_y, uv_step; | 1094 | int uv_x, uv_step; |
1095 | int stride; | 1095 | int stride; |
1096 | 1096 | ||
1097 | /* Idea iterate over each macroblock and convert each of them using _evas_nv12torgb_raster */ | 1097 | /* Idea iterate over each macroblock and convert each of them using _evas_nv12torgb_raster */ |
@@ -1128,7 +1128,7 @@ _evas_nv12tiledtorgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int | |||
1128 | base_h = (mb_h >> 1) + (mb_h & 0x1); | 1128 | base_h = (mb_h >> 1) + (mb_h & 0x1); |
1129 | stride = w * sizeof (int); | 1129 | stride = w * sizeof (int); |
1130 | 1130 | ||
1131 | uv_x = 0; uv_y = 0; | 1131 | uv_x = 0; |
1132 | 1132 | ||
1133 | /* In this format we linearize macroblock on two line to form a Z and it's invert */ | 1133 | /* In this format we linearize macroblock on two line to form a Z and it's invert */ |
1134 | for (mb_y = 0; mb_y < (mb_h >> 1); mb_y++) | 1134 | for (mb_y = 0; mb_y < (mb_h >> 1); mb_y++) |
diff --git a/libraries/evas/src/lib/engines/common/evas_cpu.c b/libraries/evas/src/lib/engines/common/evas_cpu.c index cff8b2b..fe90c5b 100644 --- a/libraries/evas/src/lib/engines/common/evas_cpu.c +++ b/libraries/evas/src/lib/engines/common/evas_cpu.c | |||
@@ -74,6 +74,7 @@ evas_common_cpu_sse3_test(void) | |||
74 | #endif | 74 | #endif |
75 | } | 75 | } |
76 | 76 | ||
77 | #ifdef BUILD_ALTIVEC | ||
77 | void | 78 | void |
78 | evas_common_cpu_altivec_test(void) | 79 | evas_common_cpu_altivec_test(void) |
79 | { | 80 | { |
@@ -85,6 +86,7 @@ evas_common_cpu_altivec_test(void) | |||
85 | #endif /* __VEC__ */ | 86 | #endif /* __VEC__ */ |
86 | #endif /* __POWERPC__ */ | 87 | #endif /* __POWERPC__ */ |
87 | } | 88 | } |
89 | #endif /* BUILD_ALTIVEC */ | ||
88 | 90 | ||
89 | void | 91 | void |
90 | evas_common_cpu_neon_test(void) | 92 | evas_common_cpu_neon_test(void) |
@@ -177,6 +179,7 @@ evas_common_cpu_init(void) | |||
177 | #endif /* BUILD_SSE3 */ | 179 | #endif /* BUILD_SSE3 */ |
178 | #endif /* BUILD_SSE */ | 180 | #endif /* BUILD_SSE */ |
179 | #endif /* BUILD_MMX */ | 181 | #endif /* BUILD_MMX */ |
182 | #ifdef BUILD_ALTIVEC | ||
180 | #ifdef __POWERPC__ | 183 | #ifdef __POWERPC__ |
181 | #ifdef __VEC__ | 184 | #ifdef __VEC__ |
182 | cpu_feature_mask |= CPU_FEATURE_ALTIVEC * | 185 | cpu_feature_mask |= CPU_FEATURE_ALTIVEC * |
@@ -186,6 +189,7 @@ evas_common_cpu_init(void) | |||
186 | cpu_feature_mask &= ~CPU_FEATURE_ALTIVEC; | 189 | cpu_feature_mask &= ~CPU_FEATURE_ALTIVEC; |
187 | #endif /* __VEC__ */ | 190 | #endif /* __VEC__ */ |
188 | #endif /* __POWERPC__ */ | 191 | #endif /* __POWERPC__ */ |
192 | #endif /* BUILD_ALTIVEC */ | ||
189 | #ifdef __SPARC__ | 193 | #ifdef __SPARC__ |
190 | cpu_feature_mask |= CPU_FEATURE_VIS * | 194 | cpu_feature_mask |= CPU_FEATURE_VIS * |
191 | evas_common_cpu_feature_test(evas_common_cpu_vis_test); | 195 | evas_common_cpu_feature_test(evas_common_cpu_vis_test); |
diff --git a/libraries/evas/src/lib/engines/common/evas_draw_main.c b/libraries/evas/src/lib/engines/common/evas_draw_main.c index 7652708..def19a8 100644 --- a/libraries/evas/src/lib/engines/common/evas_draw_main.c +++ b/libraries/evas/src/lib/engines/common/evas_draw_main.c | |||
@@ -75,6 +75,14 @@ evas_common_draw_context_free(RGBA_Draw_Context *dc) | |||
75 | { | 75 | { |
76 | if (!dc) return; | 76 | if (!dc) return; |
77 | 77 | ||
78 | #ifdef HAVE_PIXMAN | ||
79 | if (dc->col.pixman_color_image) | ||
80 | { | ||
81 | pixman_image_unref(dc->col.pixman_color_image); | ||
82 | dc->col.pixman_color_image = NULL; | ||
83 | } | ||
84 | #endif | ||
85 | |||
78 | evas_common_draw_context_apply_clean_cutouts(&dc->cutout); | 86 | evas_common_draw_context_apply_clean_cutouts(&dc->cutout); |
79 | free(dc); | 87 | free(dc); |
80 | } | 88 | } |
@@ -133,6 +141,20 @@ evas_common_draw_context_set_color(RGBA_Draw_Context *dc, int r, int g, int b, i | |||
133 | G_VAL(&(dc->col.col)) = (DATA8)g; | 141 | G_VAL(&(dc->col.col)) = (DATA8)g; |
134 | B_VAL(&(dc->col.col)) = (DATA8)b; | 142 | B_VAL(&(dc->col.col)) = (DATA8)b; |
135 | A_VAL(&(dc->col.col)) = (DATA8)a; | 143 | A_VAL(&(dc->col.col)) = (DATA8)a; |
144 | #ifdef HAVE_PIXMAN | ||
145 | if (dc && dc->col.pixman_color_image) | ||
146 | pixman_image_unref(dc->col.pixman_color_image); | ||
147 | |||
148 | pixman_color_t pixman_color; | ||
149 | |||
150 | pixman_color.alpha = (dc->col.col & 0xff000000) >> 16; | ||
151 | pixman_color.red = (dc->col.col & 0x00ff0000) >> 8; | ||
152 | pixman_color.green = (dc->col.col & 0x0000ff00); | ||
153 | pixman_color.blue = (dc->col.col & 0x000000ff) << 8; | ||
154 | |||
155 | dc->col.pixman_color_image = pixman_image_create_solid_fill(&pixman_color); | ||
156 | #endif | ||
157 | |||
136 | } | 158 | } |
137 | 159 | ||
138 | EAPI void | 160 | EAPI void |
@@ -159,12 +181,42 @@ evas_common_draw_context_set_mask(RGBA_Draw_Context *dc, RGBA_Image *mask, int x | |||
159 | dc->mask.y = y; | 181 | dc->mask.y = y; |
160 | dc->mask.w = w; | 182 | dc->mask.w = w; |
161 | dc->mask.h = h; | 183 | dc->mask.h = h; |
184 | |||
185 | #ifdef HAVE_PIXMAN | ||
186 | if (mask->pixman.im) | ||
187 | pixman_image_unref(mask->pixman.im); | ||
188 | |||
189 | if (mask->cache_entry.flags.alpha) | ||
190 | { | ||
191 | mask->pixman.im = pixman_image_create_bits(PIXMAN_a8r8g8b8, w, h, | ||
192 | (uint32_t *)mask->mask.mask, | ||
193 | w * 4); | ||
194 | } | ||
195 | else | ||
196 | { | ||
197 | mask->pixman.im = pixman_image_create_bits(PIXMAN_x8r8g8b8, w, h, | ||
198 | (uint32_t *)mask->mask.mask, | ||
199 | w * 4); | ||
200 | } | ||
201 | #endif | ||
202 | |||
162 | } | 203 | } |
163 | 204 | ||
164 | EAPI void | 205 | EAPI void |
165 | evas_common_draw_context_unset_mask(RGBA_Draw_Context *dc) | 206 | evas_common_draw_context_unset_mask(RGBA_Draw_Context *dc) |
166 | { | 207 | { |
167 | dc->mask.mask = NULL; | 208 | dc->mask.mask = NULL; |
209 | |||
210 | #ifdef HAVE_PIXMAN | ||
211 | RGBA_Image *mask; | ||
212 | mask = (RGBA_Image *)dc->mask.mask; | ||
213 | |||
214 | if (mask && mask->pixman.im) | ||
215 | { | ||
216 | pixman_image_unref(mask->pixman.im); | ||
217 | mask->pixman.im = NULL; | ||
218 | } | ||
219 | #endif | ||
168 | } | 220 | } |
169 | 221 | ||
170 | 222 | ||
@@ -179,32 +231,32 @@ evas_common_draw_context_add_cutout(RGBA_Draw_Context *dc, int x, int y, int w, | |||
179 | { | 231 | { |
180 | #if 1 // this is a bit faster | 232 | #if 1 // this is a bit faster |
181 | int xa1, xa2, xb1, xb2; | 233 | int xa1, xa2, xb1, xb2; |
182 | 234 | ||
183 | xa1 = x; | 235 | xa1 = x; |
184 | xa2 = xa1 + w - 1; | 236 | xa2 = xa1 + w - 1; |
185 | xb1 = dc->clip.x; | 237 | xb1 = dc->clip.x; |
186 | if (xa2 < xb1) return; | 238 | if (xa2 < xb1) return; |
187 | xb2 = xb1 + dc->clip.w - 1; | 239 | xb2 = xb1 + dc->clip.w - 1; |
188 | if (xa1 >= xb2) return; | 240 | if (xa1 >= xb2) return; |
189 | if (xa2 > xb2) xa2 = xb2; | 241 | if (xa2 > xb2) xa2 = xb2; |
190 | if (xb1 > xa1) xa1 = xb1; | 242 | if (xb1 > xa1) xa1 = xb1; |
191 | x = xa1; | 243 | x = xa1; |
192 | w = xa2 - xa1 + 1; | 244 | w = xa2 - xa1 + 1; |
193 | 245 | ||
194 | xa1 = y; | 246 | xa1 = y; |
195 | xa2 = xa1 + h - 1; | 247 | xa2 = xa1 + h - 1; |
196 | xb1 = dc->clip.y; | 248 | xb1 = dc->clip.y; |
197 | if (xa2 < xb1) return; | 249 | if (xa2 < xb1) return; |
198 | xb2 = xb1 + dc->clip.h - 1; | 250 | xb2 = xb1 + dc->clip.h - 1; |
199 | if (xa1 >= xb2) return; | 251 | if (xa1 >= xb2) return; |
200 | if (xa2 > xb2) xa2 = xb2; | 252 | if (xa2 > xb2) xa2 = xb2; |
201 | if (xb1 > xa1) xa1 = xb1; | 253 | if (xb1 > xa1) xa1 = xb1; |
202 | y = xa1; | 254 | y = xa1; |
203 | h = xa2 - xa1 + 1; | 255 | h = xa2 - xa1 + 1; |
204 | #else | 256 | #else |
205 | RECTS_CLIP_TO_RECT(x, y, w, h, | 257 | RECTS_CLIP_TO_RECT(x, y, w, h, |
206 | dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); | 258 | dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); |
207 | #endif | 259 | #endif |
208 | if ((w < 1) || (h < 1)) return; | 260 | if ((w < 1) || (h < 1)) return; |
209 | } | 261 | } |
210 | evas_common_draw_context_cutouts_add(&dc->cutout, x, y, w, h); | 262 | evas_common_draw_context_cutouts_add(&dc->cutout, x, y, w, h); |
@@ -513,7 +565,7 @@ evas_common_draw_context_apply_cutouts(RGBA_Draw_Context *dc) | |||
513 | 565 | ||
514 | if (!dc->clip.use) return NULL; | 566 | if (!dc->clip.use) return NULL; |
515 | if ((dc->clip.w <= 0) || (dc->clip.h <= 0)) return NULL; | 567 | if ((dc->clip.w <= 0) || (dc->clip.h <= 0)) return NULL; |
516 | 568 | ||
517 | 569 | ||
518 | res = evas_common_draw_context_cutouts_new(); | 570 | res = evas_common_draw_context_cutouts_new(); |
519 | evas_common_draw_context_cutouts_add(res, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); | 571 | evas_common_draw_context_cutouts_add(res, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); |
diff --git a/libraries/evas/src/lib/engines/common/evas_font_draw.c b/libraries/evas/src/lib/engines/common/evas_font_draw.c index 94aa085..638cdfe 100644 --- a/libraries/evas/src/lib/engines/common/evas_font_draw.c +++ b/libraries/evas/src/lib/engines/common/evas_font_draw.c | |||
@@ -22,7 +22,7 @@ | |||
22 | 22 | ||
23 | static int max_cached_words = WORD_CACHE_NWORDS; | 23 | static int max_cached_words = WORD_CACHE_NWORDS; |
24 | 24 | ||
25 | struct prword | 25 | struct prword |
26 | { | 26 | { |
27 | EINA_INLIST; | 27 | EINA_INLIST; |
28 | struct cinfo *cinfo; | 28 | struct cinfo *cinfo; |
@@ -34,16 +34,16 @@ struct prword | |||
34 | int baseline; | 34 | int baseline; |
35 | }; | 35 | }; |
36 | 36 | ||
37 | struct cinfo | 37 | struct cinfo |
38 | { | 38 | { |
39 | FT_UInt index; | 39 | FT_UInt index; |
40 | struct | 40 | struct |
41 | { | 41 | { |
42 | int x, y; | 42 | int x, y; |
43 | } pos; | 43 | } pos; |
44 | int posx; | 44 | int posx; |
45 | RGBA_Font_Glyph *fg; | 45 | RGBA_Font_Glyph *fg; |
46 | struct | 46 | struct |
47 | { | 47 | { |
48 | int w,h; | 48 | int w,h; |
49 | int rows; | 49 | int rows; |
@@ -77,11 +77,11 @@ evas_common_font_draw_init(void) | |||
77 | #ifdef EVAS_FRAME_QUEUING | 77 | #ifdef EVAS_FRAME_QUEUING |
78 | EAPI void | 78 | EAPI void |
79 | evas_common_font_draw_finish(void) | 79 | evas_common_font_draw_finish(void) |
80 | { | 80 | { |
81 | } | 81 | } |
82 | #endif | 82 | #endif |
83 | 83 | ||
84 | /* | 84 | /* |
85 | * BiDi handling: We receive the shaped string + other props from text_props, | 85 | * BiDi handling: We receive the shaped string + other props from text_props, |
86 | * we need to reorder it so we'll have the visual string (the way we draw) | 86 | * we need to reorder it so we'll have the visual string (the way we draw) |
87 | * and then for kerning we have to switch the order of the kerning query (as the prev | 87 | * and then for kerning we have to switch the order of the kerning query (as the prev |
@@ -89,7 +89,7 @@ evas_common_font_draw_finish(void) | |||
89 | */ | 89 | */ |
90 | static void | 90 | static void |
91 | evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn __UNUSED__, int x, int y, | 91 | evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn __UNUSED__, int x, int y, |
92 | const Evas_Text_Props *text_props, RGBA_Gfx_Func func, int ext_x, int ext_y, int ext_w, | 92 | const Evas_Text_Props *text_props, RGBA_Gfx_Func func, int ext_x, int ext_y, int ext_w, |
93 | int ext_h, int im_w, int im_h __UNUSED__) | 93 | int ext_h, int im_w, int im_h __UNUSED__) |
94 | { | 94 | { |
95 | DATA32 *im; | 95 | DATA32 *im; |
@@ -136,7 +136,7 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font | |||
136 | { | 136 | { |
137 | xrun -= x + xrun - ext_x - ext_w; | 137 | xrun -= x + xrun - ext_x - ext_w; |
138 | } | 138 | } |
139 | if (x < ext_x) | 139 | if (x < ext_x) |
140 | { | 140 | { |
141 | int excess = ext_x - x; | 141 | int excess = ext_x - x; |
142 | xstart = excess - 1; | 142 | xstart = excess - 1; |
@@ -244,10 +244,29 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font | |||
244 | if (j < w) j = w; | 244 | if (j < w) j = w; |
245 | h = fg->glyph_out->bitmap.rows; | 245 | h = fg->glyph_out->bitmap.rows; |
246 | /* | 246 | /* |
247 | if ((fg->glyph_out->bitmap.pixel_mode == ft_pixel_mode_grays) | 247 | if ((fg->glyph_out->bitmap.pixel_mode == ft_pixel_mode_grays) |
248 | && (fg->glyph_out->bitmap.num_grays == 256) | 248 | && (fg->glyph_out->bitmap.num_grays == 256) |
249 | ) | 249 | ) |
250 | */ | 250 | */ |
251 | |||
252 | #ifdef HAVE_PIXMAN | ||
253 | # ifdef PIXMAN_FONT | ||
254 | int index; | ||
255 | DATA32 *font_alpha_buffer; | ||
256 | pixman_image_t *font_mask_image; | ||
257 | |||
258 | font_alpha_buffer = alloca(w * h * sizeof(DATA32)); | ||
259 | for (index = 0; index < (w * h); index++) | ||
260 | font_alpha_buffer[index] = data[index] << 24; | ||
261 | |||
262 | font_mask_image = pixman_image_create_bits(PIXMAN_a8r8g8b8, w, h, | ||
263 | font_alpha_buffer, | ||
264 | w * sizeof(DATA32)); | ||
265 | |||
266 | if (!font_mask_image) return; | ||
267 | # endif | ||
268 | #endif | ||
269 | |||
251 | { | 270 | { |
252 | if ((j > 0) && (chr_x + w > ext_x)) | 271 | if ((j > 0) && (chr_x + w > ext_x)) |
253 | { | 272 | { |
@@ -255,44 +274,63 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font | |||
255 | { | 274 | { |
256 | /* ext glyph draw */ | 275 | /* ext glyph draw */ |
257 | dc->font_ext.func.gl_draw(dc->font_ext.data, | 276 | dc->font_ext.func.gl_draw(dc->font_ext.data, |
258 | (void *)dst, | 277 | (void *)dst, |
259 | dc, fg, chr_x, | 278 | dc, fg, chr_x, |
260 | y - (chr_y - y)); | 279 | y - (chr_y - y)); |
261 | } | 280 | } |
262 | else | 281 | else |
263 | { | 282 | { |
264 | if ((fg->glyph_out->bitmap.num_grays == 256) && | 283 | if ((fg->glyph_out->bitmap.num_grays == 256) && |
265 | (fg->glyph_out->bitmap.pixel_mode == FT_PIXEL_MODE_GRAY)) | 284 | (fg->glyph_out->bitmap.pixel_mode == FT_PIXEL_MODE_GRAY)) |
266 | { | 285 | { |
267 | for (i = 0; i < h; i++) | 286 | #ifdef HAVE_PIXMAN |
287 | # ifdef PIXMAN_FONT | ||
288 | if ((dst->pixman.im) && | ||
289 | (dc->col.pixman_color_image)) | ||
290 | pixman_image_composite(PIXMAN_OP_OVER, | ||
291 | dc->col.pixman_color_image, | ||
292 | font_mask_image, | ||
293 | dst->pixman.im, | ||
294 | chr_x, | ||
295 | y - (chr_y - y), | ||
296 | 0, 0, | ||
297 | chr_x, | ||
298 | y - (chr_y - y), | ||
299 | w, h); | ||
300 | else | ||
301 | # endif | ||
302 | #endif | ||
268 | { | 303 | { |
269 | int dx, dy; | 304 | for (i = 0; i < h; i++) |
270 | int in_x, in_w; | 305 | { |
271 | 306 | int dx, dy; | |
272 | in_x = 0; | 307 | int in_x, in_w; |
273 | in_w = 0; | 308 | |
274 | dx = chr_x; | 309 | in_x = 0; |
275 | dy = y - (chr_y - i - y); | 310 | in_w = 0; |
311 | dx = chr_x; | ||
312 | dy = y - (chr_y - i - y); | ||
276 | #ifdef EVAS_SLI | 313 | #ifdef EVAS_SLI |
277 | if (((dy) % dc->sli.h) == dc->sli.y) | 314 | if (((dy) % dc->sli.h) == dc->sli.y) |
278 | #endif | 315 | #endif |
279 | { | ||
280 | if ((dx < (ext_x + ext_w)) && | ||
281 | (dy >= (ext_y)) && | ||
282 | (dy < (ext_y + ext_h))) | ||
283 | { | 316 | { |
284 | if (dx + w > (ext_x + ext_w)) | 317 | if ((dx < (ext_x + ext_w)) && |
285 | in_w += (dx + w) - (ext_x + ext_w); | 318 | (dy >= (ext_y)) && |
286 | if (dx < ext_x) | 319 | (dy < (ext_y + ext_h))) |
287 | { | 320 | { |
288 | in_w += ext_x - dx; | 321 | if (dx + w > (ext_x + ext_w)) |
289 | in_x = ext_x - dx; | 322 | in_w += (dx + w) - (ext_x + ext_w); |
290 | dx = ext_x; | 323 | if (dx < ext_x) |
291 | } | 324 | { |
292 | if (in_w < w) | 325 | in_w += ext_x - dx; |
293 | { | 326 | in_x = ext_x - dx; |
294 | func(NULL, data + (i * j) + in_x, dc->col.col, | 327 | dx = ext_x; |
295 | im + (dy * im_w) + dx, w - in_w); | 328 | } |
329 | if (in_w < w) | ||
330 | { | ||
331 | func(NULL, data + (i * j) + in_x, dc->col.col, | ||
332 | im + (dy * im_w) + dx, w - in_w); | ||
333 | } | ||
296 | } | 334 | } |
297 | } | 335 | } |
298 | } | 336 | } |
@@ -309,7 +347,7 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font | |||
309 | { | 347 | { |
310 | int dx, dy; | 348 | int dx, dy; |
311 | int in_x, in_w, end; | 349 | int in_x, in_w, end; |
312 | 350 | ||
313 | in_x = 0; | 351 | in_x = 0; |
314 | in_w = 0; | 352 | in_w = 0; |
315 | dx = chr_x; | 353 | dx = chr_x; |
@@ -333,8 +371,8 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font | |||
333 | dp++; | 371 | dp++; |
334 | } | 372 | } |
335 | if ((dx < (ext_x + ext_w)) && | 373 | if ((dx < (ext_x + ext_w)) && |
336 | (dy >= (ext_y)) && | 374 | (dy >= (ext_y)) && |
337 | (dy < (ext_y + ext_h))) | 375 | (dy < (ext_y + ext_h))) |
338 | { | 376 | { |
339 | if (dx + w > (ext_x + ext_w)) | 377 | if (dx + w > (ext_x + ext_w)) |
340 | in_w += (dx + w) - (ext_x + ext_w); | 378 | in_w += (dx + w) - (ext_x + ext_w); |
@@ -347,7 +385,7 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font | |||
347 | if (in_w < w) | 385 | if (in_w < w) |
348 | { | 386 | { |
349 | func(NULL, tmpbuf + in_x, dc->col.col, | 387 | func(NULL, tmpbuf + in_x, dc->col.col, |
350 | im + (dy * im_w) + dx, w - in_w); | 388 | im + (dy * im_w) + dx, w - in_w); |
351 | } | 389 | } |
352 | } | 390 | } |
353 | } | 391 | } |
@@ -356,6 +394,11 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font | |||
356 | } | 394 | } |
357 | } | 395 | } |
358 | } | 396 | } |
397 | #ifdef HAVE_PIXMAN | ||
398 | # ifdef PIXMAN_FONT | ||
399 | pixman_image_unref(font_mask_image); | ||
400 | # endif | ||
401 | #endif | ||
359 | } | 402 | } |
360 | else | 403 | else |
361 | break; | 404 | break; |
@@ -573,7 +616,7 @@ evas_font_word_prerender(RGBA_Draw_Context *dc, const Evas_Text_Props *text_prop | |||
573 | } | 616 | } |
574 | } | 617 | } |
575 | } | 618 | } |
576 | else | 619 | else |
577 | { | 620 | { |
578 | im = NULL; | 621 | im = NULL; |
579 | } | 622 | } |
@@ -599,7 +642,7 @@ evas_font_word_prerender(RGBA_Draw_Context *dc, const Evas_Text_Props *text_prop | |||
599 | { | 642 | { |
600 | struct prword *last = (struct prword *)(words->last); | 643 | struct prword *last = (struct prword *)(words->last); |
601 | 644 | ||
602 | if (last) | 645 | if (last) |
603 | { | 646 | { |
604 | if (last->im) free(last->im); | 647 | if (last->im) free(last->im); |
605 | if (last->cinfo) free(last->cinfo); | 648 | if (last->cinfo) free(last->cinfo); |
diff --git a/libraries/evas/src/lib/engines/common/evas_font_main.c b/libraries/evas/src/lib/engines/common/evas_font_main.c index 64b1d5e..7b3dabe 100644 --- a/libraries/evas/src/lib/engines/common/evas_font_main.c +++ b/libraries/evas/src/lib/engines/common/evas_font_main.c | |||
@@ -39,8 +39,6 @@ evas_common_font_init(void) | |||
39 | EAPI void | 39 | EAPI void |
40 | evas_common_font_shutdown(void) | 40 | evas_common_font_shutdown(void) |
41 | { | 41 | { |
42 | int error; | ||
43 | |||
44 | if (initialised < 1) return; | 42 | if (initialised < 1) return; |
45 | initialised--; | 43 | initialised--; |
46 | if (initialised != 0) return; | 44 | if (initialised != 0) return; |
@@ -53,7 +51,7 @@ evas_common_font_shutdown(void) | |||
53 | evas_common_font_cache_set(0); | 51 | evas_common_font_cache_set(0); |
54 | evas_common_font_flush(); | 52 | evas_common_font_flush(); |
55 | 53 | ||
56 | error = FT_Done_FreeType(evas_ft_lib); | 54 | FT_Done_FreeType(evas_ft_lib); |
57 | #ifdef EVAS_FRAME_QUEUING | 55 | #ifdef EVAS_FRAME_QUEUING |
58 | evas_common_font_draw_finish(); | 56 | evas_common_font_draw_finish(); |
59 | #endif | 57 | #endif |
diff --git a/libraries/evas/src/lib/engines/common/evas_image_data.c b/libraries/evas/src/lib/engines/common/evas_image_data.c index 10b3988..2815ff8 100644 --- a/libraries/evas/src/lib/engines/common/evas_image_data.c +++ b/libraries/evas/src/lib/engines/common/evas_image_data.c | |||
@@ -1,3 +1,7 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif | ||
4 | |||
1 | #include <assert.h> | 5 | #include <assert.h> |
2 | 6 | ||
3 | #include "evas_common.h" | 7 | #include "evas_common.h" |
diff --git a/libraries/evas/src/lib/engines/common/evas_image_load.c b/libraries/evas/src/lib/engines/common/evas_image_load.c index c7eff3f..21ac5d4 100644 --- a/libraries/evas/src/lib/engines/common/evas_image_load.c +++ b/libraries/evas/src/lib/engines/common/evas_image_load.c | |||
@@ -1,3 +1,7 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif | ||
4 | |||
1 | #include <sys/types.h> | 5 | #include <sys/types.h> |
2 | #include <sys/stat.h> | 6 | #include <sys/stat.h> |
3 | #include <unistd.h> | 7 | #include <unistd.h> |
diff --git a/libraries/evas/src/lib/engines/common/evas_image_main.c b/libraries/evas/src/lib/engines/common/evas_image_main.c index d4d847c..d2f8c0b 100644 --- a/libraries/evas/src/lib/engines/common/evas_image_main.c +++ b/libraries/evas/src/lib/engines/common/evas_image_main.c | |||
@@ -145,7 +145,7 @@ _evas_common_rgba_image_new(void) | |||
145 | #endif | 145 | #endif |
146 | 146 | ||
147 | evas_common_rgba_image_scalecache_init(&im->cache_entry); | 147 | evas_common_rgba_image_scalecache_init(&im->cache_entry); |
148 | 148 | ||
149 | return &im->cache_entry; | 149 | return &im->cache_entry; |
150 | } | 150 | } |
151 | 151 | ||
@@ -161,7 +161,7 @@ _evas_common_rgba_image_delete(Image_Entry *ie) | |||
161 | LKD(im->cache_entry.ref_fq_del); | 161 | LKD(im->cache_entry.ref_fq_del); |
162 | eina_condition_free(&(im->cache_entry.cond_fq_del)); | 162 | eina_condition_free(&(im->cache_entry.cond_fq_del)); |
163 | # endif | 163 | # endif |
164 | #endif | 164 | #endif |
165 | evas_common_rgba_image_scalecache_shutdown(&im->cache_entry); | 165 | evas_common_rgba_image_scalecache_shutdown(&im->cache_entry); |
166 | if (ie->info.module) evas_module_unref((Evas_Module *)ie->info.module); | 166 | if (ie->info.module) evas_module_unref((Evas_Module *)ie->info.module); |
167 | /* memset the image to 0x99 because i recently saw a segv where an | 167 | /* memset the image to 0x99 because i recently saw a segv where an |
@@ -173,13 +173,13 @@ _evas_common_rgba_image_delete(Image_Entry *ie) | |||
173 | // memset(im, 0x99, sizeof(im)); | 173 | // memset(im, 0x99, sizeof(im)); |
174 | #ifdef EVAS_CSERVE | 174 | #ifdef EVAS_CSERVE |
175 | if (ie->data1) evas_cserve_image_free(ie); | 175 | if (ie->data1) evas_cserve_image_free(ie); |
176 | #endif | 176 | #endif |
177 | /* | 177 | /* |
178 | * FIXME: This doesn't seem to be needed... But I'm not sure why. | 178 | * FIXME: This doesn't seem to be needed... But I'm not sure why. |
179 | * -- nash | 179 | * -- nash |
180 | { | 180 | { |
181 | Filtered_Image *fi; | 181 | Filtered_Image *fi; |
182 | 182 | ||
183 | EINA_LIST_FREE(im->filtered, fi) | 183 | EINA_LIST_FREE(im->filtered, fi) |
184 | { | 184 | { |
185 | free(fi->key); | 185 | free(fi->key); |
@@ -249,8 +249,8 @@ evas_common_rgba_image_unload(Image_Entry *ie) | |||
249 | #endif | 249 | #endif |
250 | return; | 250 | return; |
251 | } | 251 | } |
252 | #endif | 252 | #endif |
253 | 253 | ||
254 | if (im->image.data && !im->image.no_free) | 254 | if (im->image.data && !im->image.no_free) |
255 | free(im->image.data); | 255 | free(im->image.data); |
256 | im->image.data = NULL; | 256 | im->image.data = NULL; |
@@ -266,18 +266,19 @@ void | |||
266 | _evas_common_rgba_image_post_surface(Image_Entry *ie) | 266 | _evas_common_rgba_image_post_surface(Image_Entry *ie) |
267 | { | 267 | { |
268 | #ifdef HAVE_PIXMAN | 268 | #ifdef HAVE_PIXMAN |
269 | RGBA_Image *im = (RGBA_Image *) ie; | 269 | # ifdef PIXMAN_IMAGE |
270 | 270 | RGBA_Image *im = (RGBA_Image *)ie; | |
271 | |||
271 | if (im->pixman.im) pixman_image_unref(im->pixman.im); | 272 | if (im->pixman.im) pixman_image_unref(im->pixman.im); |
272 | if (im->cache_entry.flags.alpha) | 273 | if (im->cache_entry.flags.alpha) |
273 | { | 274 | { |
274 | im->pixman.im = pixman_image_create_bits | 275 | im->pixman.im = pixman_image_create_bits |
275 | ( | 276 | ( |
276 | // FIXME: endianess determines this | 277 | // FIXME: endianess determines this |
277 | PIXMAN_a8r8g8b8, | 278 | PIXMAN_a8r8g8b8, |
278 | // PIXMAN_b8g8r8a8, | 279 | // PIXMAN_b8g8r8a8, |
279 | im->cache_entry.w, im->cache_entry.h, | 280 | im->cache_entry.w, im->cache_entry.h, |
280 | im->image.data, | 281 | im->image.data, |
281 | im->cache_entry.w * 4 | 282 | im->cache_entry.w * 4 |
282 | ); | 283 | ); |
283 | } | 284 | } |
@@ -285,16 +286,19 @@ _evas_common_rgba_image_post_surface(Image_Entry *ie) | |||
285 | { | 286 | { |
286 | im->pixman.im = pixman_image_create_bits | 287 | im->pixman.im = pixman_image_create_bits |
287 | ( | 288 | ( |
288 | // FIXME: endianess determines this | 289 | // FIXME: endianess determines this |
289 | PIXMAN_x8r8g8b8, | 290 | PIXMAN_x8r8g8b8, |
290 | // PIXMAN_b8g8r8x8, | 291 | // PIXMAN_b8g8r8x8, |
291 | im->cache_entry.w, im->cache_entry.h, | 292 | im->cache_entry.w, im->cache_entry.h, |
292 | im->image.data, | 293 | im->image.data, |
293 | im->cache_entry.w * 4 | 294 | im->cache_entry.w * 4 |
294 | ); | 295 | ); |
295 | } | 296 | } |
297 | # else | ||
298 | (void)ie; | ||
299 | # endif | ||
296 | #else | 300 | #else |
297 | ie = NULL; | 301 | (void)ie; |
298 | #endif | 302 | #endif |
299 | } | 303 | } |
300 | 304 | ||
@@ -306,7 +310,7 @@ _evas_common_rgba_image_surface_alloc(Image_Entry *ie, unsigned int w, unsigned | |||
306 | 310 | ||
307 | #ifdef EVAS_CSERVE | 311 | #ifdef EVAS_CSERVE |
308 | if (ie->data1) return 0; | 312 | if (ie->data1) return 0; |
309 | #endif | 313 | #endif |
310 | if (im->image.no_free) return 0; | 314 | if (im->image.no_free) return 0; |
311 | 315 | ||
312 | if (im->flags & RGBA_IMAGE_ALPHA_ONLY) | 316 | if (im->flags & RGBA_IMAGE_ALPHA_ONLY) |
@@ -328,7 +332,7 @@ _evas_common_rgba_image_surface_alloc(Image_Entry *ie, unsigned int w, unsigned | |||
328 | # endif | 332 | # endif |
329 | #endif | 333 | #endif |
330 | _evas_common_rgba_image_post_surface(ie); | 334 | _evas_common_rgba_image_post_surface(ie); |
331 | 335 | ||
332 | return 0; | 336 | return 0; |
333 | } | 337 | } |
334 | 338 | ||
@@ -338,12 +342,14 @@ _evas_common_rgba_image_surface_delete(Image_Entry *ie) | |||
338 | RGBA_Image *im = (RGBA_Image *) ie; | 342 | RGBA_Image *im = (RGBA_Image *) ie; |
339 | 343 | ||
340 | #ifdef HAVE_PIXMAN | 344 | #ifdef HAVE_PIXMAN |
345 | # ifdef PIXMAN_IMAGE | ||
341 | if (im->pixman.im) | 346 | if (im->pixman.im) |
342 | { | 347 | { |
343 | pixman_image_unref(im->pixman.im); | 348 | pixman_image_unref(im->pixman.im); |
344 | im->pixman.im = NULL; | 349 | im->pixman.im = NULL; |
345 | } | 350 | } |
346 | #endif | 351 | # endif |
352 | #endif | ||
347 | if (ie->file) | 353 | if (ie->file) |
348 | DBG("unload: [%p] %s %s", ie, ie->file, ie->key); | 354 | DBG("unload: [%p] %s %s", ie, ie->file, ie->key); |
349 | if ((im->cs.data) && (im->image.data)) | 355 | if ((im->cs.data) && (im->image.data)) |
@@ -364,7 +370,7 @@ _evas_common_rgba_image_surface_delete(Image_Entry *ie) | |||
364 | #ifdef EVAS_CSERVE | 370 | #ifdef EVAS_CSERVE |
365 | else if (ie->data1) | 371 | else if (ie->data1) |
366 | evas_cserve_image_free(ie); | 372 | evas_cserve_image_free(ie); |
367 | #endif | 373 | #endif |
368 | 374 | ||
369 | im->image.data = NULL; | 375 | im->image.data = NULL; |
370 | ie->allocated.w = 0; | 376 | ie->allocated.w = 0; |
@@ -391,7 +397,7 @@ _evas_common_rgba_image_dirty_region(Image_Entry* ie, unsigned int x __UNUSED__, | |||
391 | 397 | ||
392 | #ifdef EVAS_CSERVE | 398 | #ifdef EVAS_CSERVE |
393 | if (ie->data1) evas_cserve_image_free(ie); | 399 | if (ie->data1) evas_cserve_image_free(ie); |
394 | #endif | 400 | #endif |
395 | im->flags |= RGBA_IMAGE_IS_DIRTY; | 401 | im->flags |= RGBA_IMAGE_IS_DIRTY; |
396 | evas_common_rgba_image_scalecache_dirty(&im->cache_entry); | 402 | evas_common_rgba_image_scalecache_dirty(&im->cache_entry); |
397 | } | 403 | } |
@@ -411,13 +417,13 @@ _evas_common_rgba_image_dirty(Image_Entry *ie_dst, const Image_Entry *ie_src) | |||
411 | { | 417 | { |
412 | #ifdef EVAS_CSERVE | 418 | #ifdef EVAS_CSERVE |
413 | if (ie_src->data1) evas_cserve_image_free((Image_Entry*) ie_src); | 419 | if (ie_src->data1) evas_cserve_image_free((Image_Entry*) ie_src); |
414 | #endif | 420 | #endif |
415 | return 1; | 421 | return 1; |
416 | } | 422 | } |
417 | 423 | ||
418 | #ifdef EVAS_CSERVE | 424 | #ifdef EVAS_CSERVE |
419 | if (ie_src->data1) evas_cserve_image_free((Image_Entry*) ie_src); | 425 | if (ie_src->data1) evas_cserve_image_free((Image_Entry*) ie_src); |
420 | #endif | 426 | #endif |
421 | evas_common_image_colorspace_normalize(src); | 427 | evas_common_image_colorspace_normalize(src); |
422 | evas_common_image_colorspace_normalize(dst); | 428 | evas_common_image_colorspace_normalize(dst); |
423 | /* evas_common_blit_rectangle(src, dst, 0, 0, src->cache_entry.w, src->cache_entry.h, 0, 0); */ | 429 | /* evas_common_blit_rectangle(src, dst, 0, 0, src->cache_entry.w, src->cache_entry.h, 0, 0); */ |
@@ -431,18 +437,18 @@ _evas_common_rgba_image_ram_usage(Image_Entry *ie) | |||
431 | { | 437 | { |
432 | RGBA_Image *im = (RGBA_Image *)ie; | 438 | RGBA_Image *im = (RGBA_Image *)ie; |
433 | int size = sizeof(struct _RGBA_Image); | 439 | int size = sizeof(struct _RGBA_Image); |
434 | 440 | ||
435 | if (ie->cache_key) size += strlen(ie->cache_key); | 441 | if (ie->cache_key) size += strlen(ie->cache_key); |
436 | if (ie->file) size += strlen(ie->file); | 442 | if (ie->file) size += strlen(ie->file); |
437 | if (ie->key) size += strlen(ie->key); | 443 | if (ie->key) size += strlen(ie->key); |
438 | 444 | ||
439 | if (im->image.data) | 445 | if (im->image.data) |
440 | { | 446 | { |
441 | #ifdef EVAS_CSERVE | 447 | #ifdef EVAS_CSERVE |
442 | if ((!im->image.no_free) || (ie->data1)) | 448 | if ((!im->image.no_free) || (ie->data1)) |
443 | #else | 449 | #else |
444 | if ((!im->image.no_free)) | 450 | if ((!im->image.no_free)) |
445 | #endif | 451 | #endif |
446 | size += im->cache_entry.w * im->cache_entry.h * sizeof(DATA32); | 452 | size += im->cache_entry.w * im->cache_entry.h * sizeof(DATA32); |
447 | } | 453 | } |
448 | size += evas_common_rgba_image_scalecache_usage_get(&im->cache_entry); | 454 | size += evas_common_rgba_image_scalecache_usage_get(&im->cache_entry); |
@@ -590,7 +596,7 @@ evas_common_image_colorspace_normalize(RGBA_Image *im) | |||
590 | { | 596 | { |
591 | #ifdef EVAS_CSERVE | 597 | #ifdef EVAS_CSERVE |
592 | if (((Image_Entry *)im)->data1) evas_cserve_image_free(&im->cache_entry); | 598 | if (((Image_Entry *)im)->data1) evas_cserve_image_free(&im->cache_entry); |
593 | #endif | 599 | #endif |
594 | if (!im->image.no_free) free(im->image.data); | 600 | if (!im->image.no_free) free(im->image.data); |
595 | im->image.data = im->cs.data; | 601 | im->image.data = im->cs.data; |
596 | im->cs.no_free = im->image.no_free; | 602 | im->cs.no_free = im->image.no_free; |
diff --git a/libraries/evas/src/lib/engines/common/evas_image_scalecache.c b/libraries/evas/src/lib/engines/common/evas_image_scalecache.c index 24a4f2d..e4e4790 100644 --- a/libraries/evas/src/lib/engines/common/evas_image_scalecache.c +++ b/libraries/evas/src/lib/engines/common/evas_image_scalecache.c | |||
@@ -48,9 +48,7 @@ struct _Scaleitem | |||
48 | #ifdef SCALECACHE | 48 | #ifdef SCALECACHE |
49 | static unsigned long long use_counter = 0; | 49 | static unsigned long long use_counter = 0; |
50 | 50 | ||
51 | #ifdef BUILD_PTHREAD | ||
52 | static LK(cache_lock); | 51 | static LK(cache_lock); |
53 | #endif | ||
54 | static Eina_Inlist *cache_list = NULL; | 52 | static Eina_Inlist *cache_list = NULL; |
55 | static unsigned int cache_size = 0; | 53 | static unsigned int cache_size = 0; |
56 | static int init = 0; | 54 | static int init = 0; |
diff --git a/libraries/evas/src/lib/engines/common/evas_line_main.c b/libraries/evas/src/lib/engines/common/evas_line_main.c index 04401cb..aacf805 100644 --- a/libraries/evas/src/lib/engines/common/evas_line_main.c +++ b/libraries/evas/src/lib/engines/common/evas_line_main.c | |||
@@ -109,9 +109,24 @@ _evas_draw_point(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y) | |||
109 | return; | 109 | return; |
110 | if ((dc->clip.use) && (!IN_RECT(x, y, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h))) | 110 | if ((dc->clip.use) && (!IN_RECT(x, y, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h))) |
111 | return; | 111 | return; |
112 | pfunc = evas_common_gfx_func_composite_color_pt_get(dc->col.col, dst, dc->render_op); | 112 | #ifdef HAVE_PIXMAN |
113 | if (pfunc) | 113 | # ifdef PIXMAN_LINE |
114 | pfunc(0, 255, dc->col.col, dst->image.data + (dst->cache_entry.w * y) + x); | 114 | pixman_op_t op = PIXMAN_OP_SRC; |
115 | |||
116 | if (dc->render_op == _EVAS_RENDER_BLEND) | ||
117 | op = PIXMAN_OP_OVER; | ||
118 | |||
119 | if ((dst->pixman.im) && (dc->col.pixman_color_image)) | ||
120 | pixman_image_composite(op, dc->col.pixman_color_image, NULL, | ||
121 | dst->pixman.im, x, y, 0, 0, x, y, 1, 1); | ||
122 | else | ||
123 | # endif | ||
124 | #endif | ||
125 | { | ||
126 | pfunc = evas_common_gfx_func_composite_color_pt_get(dc->col.col, dst, dc->render_op); | ||
127 | if (pfunc) | ||
128 | pfunc(0, 255, dc->col.col, dst->image.data + (dst->cache_entry.w * y) + x); | ||
129 | } | ||
115 | } | 130 | } |
116 | 131 | ||
117 | /* | 132 | /* |
@@ -130,6 +145,14 @@ _evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, i | |||
130 | RGBA_Gfx_Pt_Func pfunc; | 145 | RGBA_Gfx_Pt_Func pfunc; |
131 | RGBA_Gfx_Func sfunc; | 146 | RGBA_Gfx_Func sfunc; |
132 | 147 | ||
148 | #ifdef HAVE_PIXMAN | ||
149 | # ifdef PIXMAN_LINE | ||
150 | pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY | ||
151 | if (dc->render_op == _EVAS_RENDER_BLEND) | ||
152 | op = PIXMAN_OP_OVER; | ||
153 | # endif | ||
154 | #endif | ||
155 | |||
133 | dstw = dst->cache_entry.w; | 156 | dstw = dst->cache_entry.w; |
134 | color = dc->col.col; | 157 | color = dc->col.col; |
135 | 158 | ||
@@ -172,12 +195,30 @@ _evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, i | |||
172 | 195 | ||
173 | len = x1 - x0 + 1; | 196 | len = x1 - x0 + 1; |
174 | p = dst->image.data + (dstw * y0) + x0; | 197 | p = dst->image.data + (dstw * y0) + x0; |
175 | sfunc = evas_common_gfx_func_composite_color_span_get(color, dst, len, dc->render_op); | 198 | #ifdef HAVE_PIXMAN |
176 | if (sfunc) | 199 | # ifdef PIXMAN_LINE |
177 | sfunc(NULL, NULL, color, p, len); | 200 | if ((dst->pixman.im) && (dc->col.pixman_color_image) && |
178 | } | 201 | (!dc->mask.mask)) |
179 | } | 202 | pixman_image_composite(op, dc->col.pixman_color_image, |
180 | return; | 203 | NULL, dst->pixman.im, |
204 | x0, y0, 0, 0, x0, y0, len, 1); | ||
205 | else if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
206 | (dc->mask.mask)) | ||
207 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
208 | dc->mask.mask->pixman.im, | ||
209 | dst->pixman.im, | ||
210 | x0, y0, 0, 0, x0, y0, len, 1); | ||
211 | else | ||
212 | # endif | ||
213 | #endif | ||
214 | { | ||
215 | sfunc = evas_common_gfx_func_composite_color_span_get(color, dst, len, dc->render_op); | ||
216 | if (sfunc) | ||
217 | sfunc(NULL, NULL, color, p, len); | ||
218 | } | ||
219 | } | ||
220 | } | ||
221 | return; | ||
181 | } | 222 | } |
182 | 223 | ||
183 | pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst, dc->render_op); | 224 | pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst, dc->render_op); |
@@ -192,17 +233,34 @@ _evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, i | |||
192 | 233 | ||
193 | len = y1 - y0 + 1; | 234 | len = y1 - y0 + 1; |
194 | p = dst->image.data + (dstw * y0) + x0; | 235 | p = dst->image.data + (dstw * y0) + x0; |
195 | while (len--) | 236 | #ifdef HAVE_PIXMAN |
196 | { | 237 | # ifdef PIXMAN_LINE |
238 | if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
239 | (!dc->mask.mask)) | ||
240 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
241 | NULL, dst->pixman.im, | ||
242 | x0, y0, 0, 0, x0, y0, 1, len); | ||
243 | else if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
244 | (dc->mask.mask)) | ||
245 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
246 | dc->mask.mask->pixman.im, dst->pixman.im, | ||
247 | x0, y0, 0, 0, x0, y0, 1, len); | ||
248 | else | ||
249 | # endif | ||
250 | #endif | ||
251 | { | ||
252 | while (len--) | ||
253 | { | ||
197 | #ifdef EVAS_SLI | 254 | #ifdef EVAS_SLI |
198 | if (((y1 + 1 - len) % dc->sli.h) == dc->sli.y) | 255 | if (((y1 + 1 - len) % dc->sli.h) == dc->sli.y) |
199 | #endif | 256 | #endif |
200 | { | 257 | { |
201 | pfunc(0, 255, color, p); | 258 | pfunc(0, 255, color, p); |
202 | } | 259 | } |
203 | p += dstw; | 260 | p += dstw; |
204 | } | 261 | } |
205 | } | 262 | } |
263 | } | ||
206 | return; | 264 | return; |
207 | } | 265 | } |
208 | 266 | ||
@@ -281,16 +339,52 @@ _evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, i | |||
281 | if (dx > 0) dstw--; | 339 | if (dx > 0) dstw--; |
282 | else dstw++; | 340 | else dstw++; |
283 | } | 341 | } |
284 | 342 | #ifdef HAVE_PIXMAN | |
343 | # ifdef PIXMAN_LINE | ||
344 | int pixman_x_position = x0; | ||
345 | int pixman_y_position = y0; | ||
346 | int x_unit = dstw - dst->cache_entry.w; | ||
347 | # endif | ||
348 | #endif | ||
349 | |||
350 | |||
285 | while (len--) | 351 | while (len--) |
286 | { | 352 | { |
287 | #ifdef EVAS_SLI | 353 | #ifdef EVAS_SLI |
288 | if (((y1 + 1 - len) % dc->sli.h) == dc->sli.y) | 354 | if (((y1 + 1 - len) % dc->sli.h) == dc->sli.y) |
289 | #endif | 355 | #endif |
290 | { | 356 | { |
291 | pfunc(0, 255, color, p); | 357 | #ifdef HAVE_PIXMAN |
292 | } | 358 | # ifdef PIXMAN_LINE |
293 | p += dstw; | 359 | if ((dst->pixman.im) && (dc->col.pixman_color_image) && |
360 | (!dc->mask.mask)) | ||
361 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
362 | NULL, dst->pixman.im, | ||
363 | pixman_x_position, | ||
364 | pixman_y_position, | ||
365 | 0, 0, pixman_x_position, | ||
366 | pixman_y_position, 1, 1); | ||
367 | else if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
368 | (dc->mask.mask)) | ||
369 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
370 | dc->mask.mask->pixman.im, | ||
371 | dst->pixman.im, | ||
372 | pixman_x_position, | ||
373 | pixman_y_position, 0, 0, | ||
374 | pixman_x_position, | ||
375 | pixman_y_position, 1, 1); | ||
376 | else | ||
377 | # endif | ||
378 | #endif | ||
379 | pfunc(0, 255, color, p); | ||
380 | } | ||
381 | #ifdef HAVE_PIXMAN | ||
382 | # ifdef PIXMAN_LINE | ||
383 | pixman_x_position += x_unit; | ||
384 | pixman_y_position += 1; | ||
385 | # endif | ||
386 | #endif | ||
387 | p += dstw; | ||
294 | } | 388 | } |
295 | } | 389 | } |
296 | } | 390 | } |
@@ -456,6 +550,31 @@ _evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, | |||
456 | dx = x1 - x0; | 550 | dx = x1 - x0; |
457 | dy = y1 - y0; | 551 | dy = y1 - y0; |
458 | 552 | ||
553 | #ifdef HAVE_PIXMAN | ||
554 | # ifdef PIXMAN_LINE | ||
555 | int pix_x; | ||
556 | int pix_y; | ||
557 | int pix_x_unit; | ||
558 | int pix_y_unit; | ||
559 | |||
560 | pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY | ||
561 | if (dc->render_op == _EVAS_RENDER_BLEND) | ||
562 | op = PIXMAN_OP_OVER; | ||
563 | pix_x = x0; | ||
564 | pix_y = y0; | ||
565 | |||
566 | if (dx < 0) | ||
567 | pix_x_unit = -1; | ||
568 | else | ||
569 | pix_x_unit = 1; | ||
570 | |||
571 | if (dy < 0) | ||
572 | pix_y_unit = -1; | ||
573 | else | ||
574 | pix_y_unit = 1; | ||
575 | # endif | ||
576 | #endif | ||
577 | |||
459 | if ( (dx == 0) || (dy == 0) || (dx == dy) || (dx == -dy) ) | 578 | if ( (dx == 0) || (dy == 0) || (dx == dy) || (dx == -dy) ) |
460 | { | 579 | { |
461 | _evas_draw_simple_line(dst, dc, x0, y0, x1, y1); | 580 | _evas_draw_simple_line(dst, dc, x0, y0, x1, y1); |
@@ -494,6 +613,11 @@ _evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, | |||
494 | prev_y = y; | 613 | prev_y = y; |
495 | p += dh; | 614 | p += dh; |
496 | py += dely; | 615 | py += dely; |
616 | #ifdef HAVE_PIXMAN | ||
617 | # ifdef PIXMAN_LINE | ||
618 | pix_y += pix_y_unit; | ||
619 | # endif | ||
620 | #endif | ||
497 | } | 621 | } |
498 | if (!p1_in) | 622 | if (!p1_in) |
499 | { | 623 | { |
@@ -509,12 +633,37 @@ _evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, | |||
509 | #endif | 633 | #endif |
510 | { | 634 | { |
511 | if (IN_RANGE(px, py, clw, clh)) | 635 | if (IN_RANGE(px, py, clw, clh)) |
512 | pfunc(0, 255, color, p); | 636 | { |
513 | } | 637 | #ifdef HAVE_PIXMAN |
514 | next_x: | 638 | # ifdef PIXMAN_LINE |
515 | yy += dyy; | 639 | if ((dst->pixman.im) && (dc->col.pixman_color_image) && |
516 | px++; | 640 | (!dc->mask.mask)) |
517 | p++; | 641 | pixman_image_composite(op, dc->col.pixman_color_image, |
642 | NULL, dst->pixman.im, | ||
643 | pix_x, pix_y, 0, 0, | ||
644 | pix_x, pix_y, 1, 1); | ||
645 | else if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
646 | (dc->mask.mask)) | ||
647 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
648 | dc->mask.mask->pixman.im, | ||
649 | dst->pixman.im, | ||
650 | pix_x, pix_y, 0, 0, | ||
651 | pix_x, pix_y, 1, 1); | ||
652 | else | ||
653 | # endif | ||
654 | #endif | ||
655 | pfunc(0, 255, color, p); | ||
656 | } | ||
657 | } | ||
658 | next_x: | ||
659 | yy += dyy; | ||
660 | px++; | ||
661 | p++; | ||
662 | #ifdef HAVE_PIXMAN | ||
663 | # ifdef PIXMAN_LINE | ||
664 | pix_x += pix_x_unit; | ||
665 | # endif | ||
666 | #endif | ||
518 | } | 667 | } |
519 | return; | 668 | return; |
520 | } | 669 | } |
@@ -529,9 +678,14 @@ _evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, | |||
529 | x += ((xx - (x << 16)) >> 15); | 678 | x += ((xx - (x << 16)) >> 15); |
530 | if (prev_x != x) | 679 | if (prev_x != x) |
531 | { | 680 | { |
532 | prev_x = x; | 681 | prev_x = x; |
533 | px += delx; | 682 | px += delx; |
534 | p += delx; | 683 | p += delx; |
684 | #ifdef HAVE_PIXMAN | ||
685 | # ifdef PIXMAN_LINE | ||
686 | pix_x += pix_x_unit; | ||
687 | # endif | ||
688 | #endif | ||
535 | } | 689 | } |
536 | if (!p1_in) | 690 | if (!p1_in) |
537 | { | 691 | { |
@@ -547,12 +701,38 @@ _evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, | |||
547 | #endif | 701 | #endif |
548 | { | 702 | { |
549 | if (IN_RANGE(px, py, clw, clh)) | 703 | if (IN_RANGE(px, py, clw, clh)) |
550 | pfunc(0, 255, color, p); | 704 | { |
551 | } | 705 | #ifdef HAVE_PIXMAN |
552 | next_y: | 706 | # ifdef PIXMAN_LINE |
707 | if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
708 | (!dc->mask.mask)) | ||
709 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
710 | NULL, dst->pixman.im, | ||
711 | pix_x, pix_y, 0, 0, | ||
712 | pix_x, pix_y, 1, 1); | ||
713 | else if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
714 | (dc->mask.mask)) | ||
715 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
716 | dc->mask.mask->pixman.im, | ||
717 | dst->pixman.im, | ||
718 | pix_x, pix_y, 0, 0, | ||
719 | pix_x, pix_y, 1, 1); | ||
720 | else | ||
721 | # endif | ||
722 | #endif | ||
723 | pfunc(0, 255, color, p); | ||
724 | } | ||
725 | } | ||
726 | next_y: | ||
553 | xx += dxx; | 727 | xx += dxx; |
554 | py++; | 728 | py++; |
555 | p += dstw; | 729 | p += dstw; |
730 | #ifdef HAVE_PIXMAN | ||
731 | # ifdef PIXMAN_LINE | ||
732 | pix_y += pix_y_unit; | ||
733 | # endif | ||
734 | #endif | ||
735 | |||
556 | } | 736 | } |
557 | } | 737 | } |
558 | 738 | ||
@@ -568,12 +748,43 @@ _evas_draw_line_aa(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x | |||
568 | DATA32 *p, *data, color; | 748 | DATA32 *p, *data, color; |
569 | RGBA_Gfx_Pt_Func pfunc; | 749 | RGBA_Gfx_Pt_Func pfunc; |
570 | 750 | ||
751 | dx = x1 - x0; | ||
752 | dy = y1 - y0; | ||
753 | |||
754 | #ifdef HAVE_PIXMAN | ||
755 | # ifdef PIXMAN_LINE | ||
756 | int pix_x; | ||
757 | int pix_y; | ||
758 | int pix_x_unit; | ||
759 | int pix_y_unit; | ||
760 | |||
761 | pixman_image_t *aa_mask_image; | ||
762 | int alpha_data_buffer; | ||
763 | |||
764 | pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY | ||
765 | if (dc->render_op == _EVAS_RENDER_BLEND) | ||
766 | op = PIXMAN_OP_OVER; | ||
767 | pix_x = x0; | ||
768 | pix_y = y0; | ||
769 | |||
770 | if (dx < 0) | ||
771 | pix_x_unit = -1; | ||
772 | else | ||
773 | pix_x_unit = 1; | ||
774 | |||
775 | if (dy < 0) | ||
776 | pix_y_unit = -1; | ||
777 | else | ||
778 | pix_y_unit = 1; | ||
779 | # endif | ||
780 | #endif | ||
571 | if (y0 > y1) | 781 | if (y0 > y1) |
572 | EXCHANGE_POINTS(x0, y0, x1, y1); | 782 | EXCHANGE_POINTS(x0, y0, x1, y1); |
783 | |||
573 | dx = x1 - x0; | 784 | dx = x1 - x0; |
574 | dy = y1 - y0; | 785 | dy = y1 - y0; |
575 | 786 | ||
576 | if ( (dx == 0) || (dy == 0) || (dx == dy) || (dx == -dy) ) | 787 | if ((dx == 0) || (dy == 0) || (dx == dy) || (dx == -dy)) |
577 | { | 788 | { |
578 | _evas_draw_simple_line(dst, dc, x0, y0, x1, y1); | 789 | _evas_draw_simple_line(dst, dc, x0, y0, x1, y1); |
579 | return; | 790 | return; |
@@ -609,9 +820,14 @@ _evas_draw_line_aa(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x | |||
609 | y = (yy >> 16); | 820 | y = (yy >> 16); |
610 | if (prev_y != y) | 821 | if (prev_y != y) |
611 | { | 822 | { |
612 | prev_y = y; | 823 | prev_y = y; |
613 | p += dh; | 824 | p += dh; |
614 | py += dely; | 825 | py += dely; |
826 | #ifdef HAVE_PIXMAN | ||
827 | # ifdef PIXMAN_LINE | ||
828 | pix_y += pix_y_unit; | ||
829 | # endif | ||
830 | #endif | ||
615 | } | 831 | } |
616 | if (!p1_in) | 832 | if (!p1_in) |
617 | { | 833 | { |
@@ -624,39 +840,109 @@ _evas_draw_line_aa(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x | |||
624 | } | 840 | } |
625 | if (px < clw) | 841 | if (px < clw) |
626 | { | 842 | { |
627 | aa = ((yy - (y << 16)) >> 8); | 843 | aa = ((yy - (y << 16)) >> 8); |
628 | if ((py) < clh) | 844 | if ((py) < clh) |
629 | pfunc(0, 255 - aa, color, p); | 845 | { |
630 | if ((py + 1) < clh) | 846 | #ifdef HAVE_PIXMAN |
631 | pfunc(0, aa, color, p + dstw); | 847 | # ifdef PIXMAN_LINE |
632 | } | 848 | alpha_data_buffer = 255 - aa; |
633 | 849 | aa_mask_image = pixman_image_create_bits(PIXMAN_a8, 1, 1, | |
634 | next_x: | 850 | (uint32_t *)&alpha_data_buffer, 4); |
635 | yy += dyy; | 851 | |
636 | px++; | 852 | if ((dst->pixman.im) && (dc->col.pixman_color_image ) && |
637 | p++; | 853 | (!dc->mask.mask)) |
854 | pixman_image_composite(PIXMAN_OP_OVER, | ||
855 | dc->col.pixman_color_image, | ||
856 | aa_mask_image, dst->pixman.im, | ||
857 | pix_x, pix_y, 0, 0, | ||
858 | pix_x, pix_y, 1, 1); | ||
859 | else if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
860 | (dc->mask.mask) ) | ||
861 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
862 | dc->mask.mask->pixman.im, | ||
863 | dst->pixman.im, | ||
864 | pix_x, pix_y, 0, 0, | ||
865 | pix_x, pix_y, 1, 1); | ||
866 | else | ||
867 | # endif | ||
868 | #endif | ||
869 | pfunc(0, 255 - aa, color, p); | ||
870 | #ifdef HAVE_PIXMAN | ||
871 | # ifdef PIXMAN_LINE | ||
872 | pixman_image_unref(aa_mask_image); | ||
873 | # endif | ||
874 | #endif | ||
875 | } | ||
876 | if ((py + 1) < clh) | ||
877 | { | ||
878 | #ifdef HAVE_PIXMAN | ||
879 | # ifdef PIXMAN_LINE | ||
880 | alpha_data_buffer = aa; | ||
881 | aa_mask_image = pixman_image_create_bits(PIXMAN_a8, 1, 1, | ||
882 | (uint32_t *)&alpha_data_buffer, 4); | ||
883 | |||
884 | if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
885 | (!dc->mask.mask)) | ||
886 | pixman_image_composite(PIXMAN_OP_OVER, | ||
887 | dc->col.pixman_color_image, | ||
888 | aa_mask_image, dst->pixman.im, | ||
889 | pix_x, pix_y + 1, 0, 0, | ||
890 | pix_x, pix_y + 1, 1, 1); | ||
891 | else if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
892 | (dc->mask.mask)) | ||
893 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
894 | dc->mask.mask->pixman.im, | ||
895 | dst->pixman.im, | ||
896 | pix_x, pix_y + 1, 0, 0, | ||
897 | pix_x, pix_y + 1, 1, 1); | ||
898 | else | ||
899 | # endif | ||
900 | #endif | ||
901 | pfunc(0, aa, color, p + dstw); | ||
902 | #ifdef HAVE_PIXMAN | ||
903 | # ifdef PIXMAN_LINE | ||
904 | pixman_image_unref(aa_mask_image); | ||
905 | # endif | ||
906 | #endif | ||
907 | } | ||
908 | } | ||
909 | |||
910 | next_x: | ||
911 | yy += dyy; | ||
912 | px++; | ||
913 | p++; | ||
914 | #ifdef HAVE_PIXMAN | ||
915 | # ifdef PIXMAN_LINE | ||
916 | pix_x += pix_x_unit; | ||
917 | # endif | ||
918 | #endif | ||
638 | } | 919 | } |
639 | return; | 920 | return; |
640 | } | 921 | } |
641 | 922 | ||
642 | /* steep: y-parametric */ | 923 | /* steep: y-parametric */ |
643 | SETUP_LINE_STEEP; | 924 | SETUP_LINE_STEEP; |
644 | 925 | ||
645 | while (py < by) | 926 | while (py < by) |
646 | { | 927 | { |
647 | DATA8 aa; | 928 | DATA8 aa; |
648 | 929 | ||
649 | x = (xx >> 16); | 930 | x = (xx >> 16); |
650 | if (prev_x != x) | 931 | if (prev_x != x) |
651 | { | 932 | { |
652 | prev_x = x; | 933 | prev_x = x; |
653 | px += delx; | 934 | px += delx; |
654 | p += delx; | 935 | p += delx; |
936 | #ifdef HAVE_PIXMAN | ||
937 | # ifdef PIXMAN_LINE | ||
938 | pix_x += pix_x_unit; | ||
939 | # endif | ||
940 | #endif | ||
655 | } | 941 | } |
656 | if (!p1_in) | 942 | if (!p1_in) |
657 | { | 943 | { |
658 | if ((px < 0) && (delx < 0)) return; | 944 | if ((px < 0) && (delx < 0)) return; |
659 | if ((px > rx) && (delx > 0)) return; | 945 | if ((px > rx) && (delx > 0)) return; |
660 | } | 946 | } |
661 | if (!p0_in) | 947 | if (!p0_in) |
662 | { | 948 | { |
@@ -664,15 +950,80 @@ _evas_draw_line_aa(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x | |||
664 | } | 950 | } |
665 | if (py < clh) | 951 | if (py < clh) |
666 | { | 952 | { |
667 | aa = ((xx - (x << 16)) >> 8); | 953 | aa = ((xx - (x << 16)) >> 8); |
668 | if ((px) < clw) | 954 | if ((px) < clw) |
669 | pfunc(0, 255 - aa, color, p); | 955 | { |
670 | if ((px + 1) < clw) | 956 | #ifdef HAVE_PIXMAN |
671 | pfunc(0, aa, color, p + 1); | 957 | # ifdef PIXMAN_LINE |
672 | } | 958 | alpha_data_buffer = 255 - aa; |
959 | aa_mask_image = pixman_image_create_bits(PIXMAN_a8, 1, 1, (uint32_t *)&alpha_data_buffer, 4); | ||
960 | |||
961 | if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
962 | (!dc->mask.mask)) | ||
963 | pixman_image_composite(PIXMAN_OP_OVER, | ||
964 | dc->col.pixman_color_image, | ||
965 | aa_mask_image, dst->pixman.im, | ||
966 | pix_x, pix_y, 0, 0, | ||
967 | pix_x, pix_y, 1, 1); | ||
968 | else if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
969 | (dc->mask.mask)) | ||
970 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
971 | dc->mask.mask->pixman.im, | ||
972 | dst->pixman.im, | ||
973 | pix_x, pix_y, 0, 0, | ||
974 | pix_x, pix_y, 1, 1); | ||
975 | else | ||
976 | # endif | ||
977 | #endif | ||
978 | pfunc(0, 255 - aa, color, p); | ||
979 | #ifdef HAVE_PIXMAN | ||
980 | # ifdef PIXMAN_LINE | ||
981 | pixman_image_unref(aa_mask_image); | ||
982 | # endif | ||
983 | #endif | ||
984 | |||
985 | } | ||
986 | if ((px + 1) < clw) | ||
987 | { | ||
988 | #ifdef HAVE_PIXMAN | ||
989 | # ifdef PIXMAN_LINE | ||
990 | alpha_data_buffer = aa; | ||
991 | aa_mask_image = pixman_image_create_bits(PIXMAN_a8, 1, 1, | ||
992 | (uint32_t *)&alpha_data_buffer, 4); | ||
993 | |||
994 | if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
995 | (!dc->mask.mask)) | ||
996 | pixman_image_composite(PIXMAN_OP_OVER, | ||
997 | dc->col.pixman_color_image, | ||
998 | aa_mask_image, dst->pixman.im, | ||
999 | pix_x + 1, pix_y, 0, 0, | ||
1000 | pix_x + 1, pix_y, 1, 1); | ||
1001 | else if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
1002 | (dc->mask.mask)) | ||
1003 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
1004 | dc->mask.mask->pixman.im, | ||
1005 | dst->pixman.im, | ||
1006 | pix_x + 1, pix_y, 0, 0, | ||
1007 | pix_x + 1, pix_y, 1, 1); | ||
1008 | else | ||
1009 | # endif | ||
1010 | #endif | ||
1011 | pfunc(0, aa, color, p + 1); | ||
1012 | #ifdef HAVE_PIXMAN | ||
1013 | # ifdef PIXMAN_LINE | ||
1014 | pixman_image_unref(aa_mask_image); | ||
1015 | # endif | ||
1016 | #endif | ||
1017 | } | ||
1018 | } | ||
673 | next_y: | 1019 | next_y: |
674 | xx += dxx; | 1020 | xx += dxx; |
675 | py++; | 1021 | py++; |
676 | p += dstw; | 1022 | p += dstw; |
1023 | #ifdef HAVE_PIXMAN | ||
1024 | # ifdef PIXMAN_LINE | ||
1025 | pix_y += pix_y_unit; | ||
1026 | # endif | ||
1027 | #endif | ||
677 | } | 1028 | } |
678 | } | 1029 | } |
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 index 4c721f9..78e893d 100644 --- a/libraries/evas/src/lib/engines/common/evas_op_add/Makefile.in +++ b/libraries/evas/src/lib/engines/common/evas_op_add/Makefile.in | |||
@@ -166,8 +166,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ | |||
166 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ | 166 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ |
167 | PIXMAN_LIBS = @PIXMAN_LIBS@ | 167 | PIXMAN_LIBS = @PIXMAN_LIBS@ |
168 | PKG_CONFIG = @PKG_CONFIG@ | 168 | PKG_CONFIG = @PKG_CONFIG@ |
169 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
170 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
171 | PNG_CFLAGS = @PNG_CFLAGS@ | 169 | PNG_CFLAGS = @PNG_CFLAGS@ |
172 | PNG_LIBS = @PNG_LIBS@ | 170 | PNG_LIBS = @PNG_LIBS@ |
173 | RANLIB = @RANLIB@ | 171 | RANLIB = @RANLIB@ |
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ | |||
184 | VALGRIND_LIBS = @VALGRIND_LIBS@ | 182 | VALGRIND_LIBS = @VALGRIND_LIBS@ |
185 | VERSION = @VERSION@ | 183 | VERSION = @VERSION@ |
186 | VMAJ = @VMAJ@ | 184 | VMAJ = @VMAJ@ |
185 | WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ | ||
186 | WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ | ||
187 | WIN32_CFLAGS = @WIN32_CFLAGS@ | 187 | WIN32_CFLAGS = @WIN32_CFLAGS@ |
188 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ | 188 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ |
189 | XCB_CFLAGS = @XCB_CFLAGS@ | 189 | XCB_CFLAGS = @XCB_CFLAGS@ |
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ | |||
265 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ | 265 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ |
266 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ | 266 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ |
267 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ | 267 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ |
268 | evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ | ||
269 | evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ | ||
270 | evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ | ||
271 | evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ | ||
268 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ | 272 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ |
269 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ | 273 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ |
270 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ | 274 | evas_image_loader_edb_cflags = @evas_image_loader_edb_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 index e796ef2..e00dac8 100644 --- a/libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.in +++ b/libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.in | |||
@@ -203,8 +203,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ | |||
203 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ | 203 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ |
204 | PIXMAN_LIBS = @PIXMAN_LIBS@ | 204 | PIXMAN_LIBS = @PIXMAN_LIBS@ |
205 | PKG_CONFIG = @PKG_CONFIG@ | 205 | PKG_CONFIG = @PKG_CONFIG@ |
206 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
207 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
208 | PNG_CFLAGS = @PNG_CFLAGS@ | 206 | PNG_CFLAGS = @PNG_CFLAGS@ |
209 | PNG_LIBS = @PNG_LIBS@ | 207 | PNG_LIBS = @PNG_LIBS@ |
210 | RANLIB = @RANLIB@ | 208 | RANLIB = @RANLIB@ |
@@ -221,6 +219,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ | |||
221 | VALGRIND_LIBS = @VALGRIND_LIBS@ | 219 | VALGRIND_LIBS = @VALGRIND_LIBS@ |
222 | VERSION = @VERSION@ | 220 | VERSION = @VERSION@ |
223 | VMAJ = @VMAJ@ | 221 | VMAJ = @VMAJ@ |
222 | WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ | ||
223 | WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ | ||
224 | WIN32_CFLAGS = @WIN32_CFLAGS@ | 224 | WIN32_CFLAGS = @WIN32_CFLAGS@ |
225 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ | 225 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ |
226 | XCB_CFLAGS = @XCB_CFLAGS@ | 226 | XCB_CFLAGS = @XCB_CFLAGS@ |
@@ -302,6 +302,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ | |||
302 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ | 302 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ |
303 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ | 303 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ |
304 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ | 304 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ |
305 | evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ | ||
306 | evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ | ||
307 | evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ | ||
308 | evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ | ||
305 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ | 309 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ |
306 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ | 310 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ |
307 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ | 311 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ |
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 index 64d5a86..1843265 100644 --- 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 | |||
@@ -53,7 +53,8 @@ _op_blend_c_dp_sse3(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 | |||
53 | static void | 53 | static void |
54 | init_blend_color_span_funcs_sse3(void) | 54 | init_blend_color_span_funcs_sse3(void) |
55 | { | 55 | { |
56 | op_blend_span_funcs[SP_N][SM_N][SC][DP][CPU_SSE3] = _op_blend_c_dp_sse3; | 56 | // FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle) |
57 | // op_blend_span_funcs[SP_N][SM_N][SC][DP][CPU_SSE3] = _op_blend_c_dp_sse3; | ||
57 | op_blend_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_caa_dp_sse3; | 58 | op_blend_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_caa_dp_sse3; |
58 | 59 | ||
59 | // FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle) | 60 | // FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle) |
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 index 83230e5..5883d15 100644 --- 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 | |||
@@ -168,7 +168,8 @@ _op_blend_mas_can_dp_sse3(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, i | |||
168 | static void | 168 | static void |
169 | init_blend_mask_color_span_funcs_sse3(void) | 169 | init_blend_mask_color_span_funcs_sse3(void) |
170 | { | 170 | { |
171 | op_blend_span_funcs[SP_N][SM_AS][SC][DP][CPU_SSE3] = _op_blend_mas_c_dp_sse3; | 171 | // FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle) |
172 | // op_blend_span_funcs[SP_N][SM_AS][SC][DP][CPU_SSE3] = _op_blend_mas_c_dp_sse3; | ||
172 | op_blend_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_mas_cn_dp_sse3; | 173 | op_blend_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_mas_cn_dp_sse3; |
173 | op_blend_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_SSE3] = _op_blend_mas_can_dp_sse3; | 174 | op_blend_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_SSE3] = _op_blend_mas_can_dp_sse3; |
174 | op_blend_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_SSE3] = _op_blend_mas_caa_dp_sse3; | 175 | op_blend_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_SSE3] = _op_blend_mas_caa_dp_sse3; |
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 index 2e72fec..69c597c 100644 --- 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 | |||
@@ -146,7 +146,6 @@ init_blend_pixel_span_funcs_sse3(void) | |||
146 | op_blend_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_pas_dp_sse3; | 146 | op_blend_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_pas_dp_sse3; |
147 | op_blend_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_pan_dp_sse3; | 147 | op_blend_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_pan_dp_sse3; |
148 | 148 | ||
149 | |||
150 | // FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle) | 149 | // FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle) |
151 | // op_blend_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_p_dpan_sse3; | 150 | // op_blend_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_p_dpan_sse3; |
152 | op_blend_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_pas_dpan_sse3; | 151 | op_blend_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_pas_dpan_sse3; |
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 index 52658a4..40536c0 100644 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.in +++ b/libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.in | |||
@@ -166,8 +166,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ | |||
166 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ | 166 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ |
167 | PIXMAN_LIBS = @PIXMAN_LIBS@ | 167 | PIXMAN_LIBS = @PIXMAN_LIBS@ |
168 | PKG_CONFIG = @PKG_CONFIG@ | 168 | PKG_CONFIG = @PKG_CONFIG@ |
169 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
170 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
171 | PNG_CFLAGS = @PNG_CFLAGS@ | 169 | PNG_CFLAGS = @PNG_CFLAGS@ |
172 | PNG_LIBS = @PNG_LIBS@ | 170 | PNG_LIBS = @PNG_LIBS@ |
173 | RANLIB = @RANLIB@ | 171 | RANLIB = @RANLIB@ |
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ | |||
184 | VALGRIND_LIBS = @VALGRIND_LIBS@ | 182 | VALGRIND_LIBS = @VALGRIND_LIBS@ |
185 | VERSION = @VERSION@ | 183 | VERSION = @VERSION@ |
186 | VMAJ = @VMAJ@ | 184 | VMAJ = @VMAJ@ |
185 | WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ | ||
186 | WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ | ||
187 | WIN32_CFLAGS = @WIN32_CFLAGS@ | 187 | WIN32_CFLAGS = @WIN32_CFLAGS@ |
188 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ | 188 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ |
189 | XCB_CFLAGS = @XCB_CFLAGS@ | 189 | XCB_CFLAGS = @XCB_CFLAGS@ |
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ | |||
265 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ | 265 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ |
266 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ | 266 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ |
267 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ | 267 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ |
268 | evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ | ||
269 | evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ | ||
270 | evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ | ||
271 | evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ | ||
268 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ | 272 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ |
269 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ | 273 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ |
270 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ | 274 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ |
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 index 0ccd7f3..d5764b1 100644 --- a/libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.in +++ b/libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.in | |||
@@ -166,8 +166,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ | |||
166 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ | 166 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ |
167 | PIXMAN_LIBS = @PIXMAN_LIBS@ | 167 | PIXMAN_LIBS = @PIXMAN_LIBS@ |
168 | PKG_CONFIG = @PKG_CONFIG@ | 168 | PKG_CONFIG = @PKG_CONFIG@ |
169 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
170 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
171 | PNG_CFLAGS = @PNG_CFLAGS@ | 169 | PNG_CFLAGS = @PNG_CFLAGS@ |
172 | PNG_LIBS = @PNG_LIBS@ | 170 | PNG_LIBS = @PNG_LIBS@ |
173 | RANLIB = @RANLIB@ | 171 | RANLIB = @RANLIB@ |
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ | |||
184 | VALGRIND_LIBS = @VALGRIND_LIBS@ | 182 | VALGRIND_LIBS = @VALGRIND_LIBS@ |
185 | VERSION = @VERSION@ | 183 | VERSION = @VERSION@ |
186 | VMAJ = @VMAJ@ | 184 | VMAJ = @VMAJ@ |
185 | WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ | ||
186 | WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ | ||
187 | WIN32_CFLAGS = @WIN32_CFLAGS@ | 187 | WIN32_CFLAGS = @WIN32_CFLAGS@ |
188 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ | 188 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ |
189 | XCB_CFLAGS = @XCB_CFLAGS@ | 189 | XCB_CFLAGS = @XCB_CFLAGS@ |
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ | |||
265 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ | 265 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ |
266 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ | 266 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ |
267 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ | 267 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ |
268 | evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ | ||
269 | evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ | ||
270 | evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ | ||
271 | evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ | ||
268 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ | 272 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ |
269 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ | 273 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ |
270 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ | 274 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ |
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 index f239cf7..d5452fe 100644 --- a/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in +++ b/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in | |||
@@ -166,8 +166,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ | |||
166 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ | 166 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ |
167 | PIXMAN_LIBS = @PIXMAN_LIBS@ | 167 | PIXMAN_LIBS = @PIXMAN_LIBS@ |
168 | PKG_CONFIG = @PKG_CONFIG@ | 168 | PKG_CONFIG = @PKG_CONFIG@ |
169 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
170 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
171 | PNG_CFLAGS = @PNG_CFLAGS@ | 169 | PNG_CFLAGS = @PNG_CFLAGS@ |
172 | PNG_LIBS = @PNG_LIBS@ | 170 | PNG_LIBS = @PNG_LIBS@ |
173 | RANLIB = @RANLIB@ | 171 | RANLIB = @RANLIB@ |
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ | |||
184 | VALGRIND_LIBS = @VALGRIND_LIBS@ | 182 | VALGRIND_LIBS = @VALGRIND_LIBS@ |
185 | VERSION = @VERSION@ | 183 | VERSION = @VERSION@ |
186 | VMAJ = @VMAJ@ | 184 | VMAJ = @VMAJ@ |
185 | WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ | ||
186 | WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ | ||
187 | WIN32_CFLAGS = @WIN32_CFLAGS@ | 187 | WIN32_CFLAGS = @WIN32_CFLAGS@ |
188 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ | 188 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ |
189 | XCB_CFLAGS = @XCB_CFLAGS@ | 189 | XCB_CFLAGS = @XCB_CFLAGS@ |
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ | |||
265 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ | 265 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ |
266 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ | 266 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ |
267 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ | 267 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ |
268 | evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ | ||
269 | evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ | ||
270 | evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ | ||
271 | evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ | ||
268 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ | 272 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ |
269 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ | 273 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ |
270 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ | 274 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ |
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 index b68ed3b..4b93b1b 100644 --- a/libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.in +++ b/libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.in | |||
@@ -166,8 +166,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ | |||
166 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ | 166 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ |
167 | PIXMAN_LIBS = @PIXMAN_LIBS@ | 167 | PIXMAN_LIBS = @PIXMAN_LIBS@ |
168 | PKG_CONFIG = @PKG_CONFIG@ | 168 | PKG_CONFIG = @PKG_CONFIG@ |
169 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
170 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
171 | PNG_CFLAGS = @PNG_CFLAGS@ | 169 | PNG_CFLAGS = @PNG_CFLAGS@ |
172 | PNG_LIBS = @PNG_LIBS@ | 170 | PNG_LIBS = @PNG_LIBS@ |
173 | RANLIB = @RANLIB@ | 171 | RANLIB = @RANLIB@ |
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ | |||
184 | VALGRIND_LIBS = @VALGRIND_LIBS@ | 182 | VALGRIND_LIBS = @VALGRIND_LIBS@ |
185 | VERSION = @VERSION@ | 183 | VERSION = @VERSION@ |
186 | VMAJ = @VMAJ@ | 184 | VMAJ = @VMAJ@ |
185 | WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ | ||
186 | WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ | ||
187 | WIN32_CFLAGS = @WIN32_CFLAGS@ | 187 | WIN32_CFLAGS = @WIN32_CFLAGS@ |
188 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ | 188 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ |
189 | XCB_CFLAGS = @XCB_CFLAGS@ | 189 | XCB_CFLAGS = @XCB_CFLAGS@ |
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ | |||
265 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ | 265 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ |
266 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ | 266 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ |
267 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ | 267 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ |
268 | evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ | ||
269 | evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ | ||
270 | evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ | ||
271 | evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ | ||
268 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ | 272 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ |
269 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ | 273 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ |
270 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ | 274 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ |
diff --git a/libraries/evas/src/lib/engines/common/evas_polygon_main.c b/libraries/evas/src/lib/engines/common/evas_polygon_main.c index bca3f83..ea0bf13 100644 --- a/libraries/evas/src/lib/engines/common/evas_polygon_main.c +++ b/libraries/evas/src/lib/engines/common/evas_polygon_main.c | |||
@@ -1,3 +1,7 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif | ||
4 | |||
1 | #include <math.h> | 5 | #include <math.h> |
2 | 6 | ||
3 | #include "evas_common.h" | 7 | #include "evas_common.h" |
@@ -133,6 +137,14 @@ evas_common_polygon_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Polygon_Po | |||
133 | int ext_x, ext_y, ext_w, ext_h; | 137 | int ext_x, ext_y, ext_w, ext_h; |
134 | int *sorted_index; | 138 | int *sorted_index; |
135 | 139 | ||
140 | #ifdef HAVE_PIXMAN | ||
141 | # ifdef PIXMAN_POLY | ||
142 | pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY | ||
143 | if (dc->render_op == _EVAS_RENDER_BLEND) | ||
144 | op = PIXMAN_OP_OVER; | ||
145 | # endif | ||
146 | #endif | ||
147 | |||
136 | ext_x = 0; | 148 | ext_x = 0; |
137 | ext_y = 0; | 149 | ext_y = 0; |
138 | ext_w = dst->cache_entry.w; | 150 | ext_w = dst->cache_entry.w; |
@@ -279,10 +291,30 @@ evas_common_polygon_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Polygon_Po | |||
279 | if (((span->y) % dc->sli.h) == dc->sli.y) | 291 | if (((span->y) % dc->sli.h) == dc->sli.y) |
280 | #endif | 292 | #endif |
281 | { | 293 | { |
282 | ptr = dst->image.data + (span->y * (dst->cache_entry.w)) + span->x; | 294 | #ifdef HAVE_PIXMAN |
283 | func(NULL, NULL, dc->col.col, ptr, span->w); | 295 | # ifdef PIXMAN_POLY |
284 | } | 296 | if ((dst->pixman.im) && (dc->col.pixman_color_image) && |
285 | } | 297 | (!dc->mask.mask)) |
298 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
299 | NULL, dst->pixman.im, | ||
300 | span->x, span->y, 0, 0, | ||
301 | span->x, span->y, span->w, 1); | ||
302 | else if ((dst->pixman.im) && (dc->col.pixman_color_image) && | ||
303 | (dc->mask.mask)) | ||
304 | pixman_image_composite(op, dc->col.pixman_color_image, | ||
305 | dc->mask.mask->pixman.im, | ||
306 | dst->pixman.im, | ||
307 | span->x, span->y, 0, 0, | ||
308 | span->x, span->y, span->w, 1); | ||
309 | else | ||
310 | # endif | ||
311 | #endif | ||
312 | { | ||
313 | ptr = dst->image.data + (span->y * (dst->cache_entry.w)) + span->x; | ||
314 | func(NULL, NULL, dc->col.col, ptr, span->w); | ||
315 | } | ||
316 | } | ||
317 | } | ||
286 | while (spans) | 318 | while (spans) |
287 | { | 319 | { |
288 | span = (RGBA_Span *)spans; | 320 | span = (RGBA_Span *)spans; |
diff --git a/libraries/evas/src/lib/engines/common/evas_rectangle_main.c b/libraries/evas/src/lib/engines/common/evas_rectangle_main.c index 28aaf16..fc25fd0 100644 --- a/libraries/evas/src/lib/engines/common/evas_rectangle_main.c +++ b/libraries/evas/src/lib/engines/common/evas_rectangle_main.c | |||
@@ -58,16 +58,34 @@ rectangle_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, in | |||
58 | RECTS_CLIP_TO_RECT(x, y, w, h, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); | 58 | RECTS_CLIP_TO_RECT(x, y, w, h, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); |
59 | if ((w <= 0) || (h <= 0)) return; | 59 | if ((w <= 0) || (h <= 0)) return; |
60 | 60 | ||
61 | func = evas_common_gfx_func_composite_color_span_get(dc->col.col, dst, w, dc->render_op); | 61 | #ifdef HAVE_PIXMAN |
62 | ptr = dst->image.data + (y * dst->cache_entry.w) + x; | 62 | # ifdef PIXMAN_RECT |
63 | for (yy = 0; yy < h; yy++) | 63 | pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY |
64 | |||
65 | if (dc->render_op == _EVAS_RENDER_BLEND) | ||
66 | op = PIXMAN_OP_OVER; | ||
67 | |||
68 | if ((dst->pixman.im) && (dc->col.pixman_color_image)) | ||
64 | { | 69 | { |
70 | pixman_image_composite(op, dc->col.pixman_color_image, NULL, | ||
71 | dst->pixman.im, x, y, 0, 0, | ||
72 | x, y, w, h); | ||
73 | } | ||
74 | else | ||
75 | # endif | ||
76 | #endif | ||
77 | { | ||
78 | func = evas_common_gfx_func_composite_color_span_get(dc->col.col, dst, w, dc->render_op); | ||
79 | ptr = dst->image.data + (y * dst->cache_entry.w) + x; | ||
80 | for (yy = 0; yy < h; yy++) | ||
81 | { | ||
65 | #ifdef EVAS_SLI | 82 | #ifdef EVAS_SLI |
66 | if (((yy + y) % dc->sli.h) == dc->sli.y) | 83 | if (((yy + y) % dc->sli.h) == dc->sli.y) |
67 | #endif | 84 | #endif |
68 | { | 85 | { |
69 | func(NULL, NULL, dc->col.col, ptr, w); | 86 | func(NULL, NULL, dc->col.col, ptr, w); |
70 | } | 87 | } |
71 | ptr += dst->cache_entry.w; | 88 | ptr += dst->cache_entry.w; |
89 | } | ||
72 | } | 90 | } |
73 | } | 91 | } |
diff --git a/libraries/evas/src/lib/engines/common/evas_scale_sample.c b/libraries/evas/src/lib/engines/common/evas_scale_sample.c index 54b8e92..a8951b8 100644 --- a/libraries/evas/src/lib/engines/common/evas_scale_sample.c +++ b/libraries/evas/src/lib/engines/common/evas_scale_sample.c | |||
@@ -154,7 +154,7 @@ scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst, | |||
154 | dst_clip_w = m_clip_w; | 154 | dst_clip_w = m_clip_w; |
155 | dst_clip_h = m_clip_h; | 155 | dst_clip_h = m_clip_h; |
156 | } | 156 | } |
157 | 157 | ||
158 | if (dst_clip_x < dst_region_x) | 158 | if (dst_clip_x < dst_region_x) |
159 | { | 159 | { |
160 | dst_clip_w += dst_clip_x - dst_region_x; | 160 | dst_clip_w += dst_clip_x - dst_region_x; |
@@ -258,7 +258,7 @@ scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst, | |||
258 | func = evas_common_gfx_func_composite_pixel_mask_span_get(src, dst, dst_clip_w, dc->render_op); | 258 | func = evas_common_gfx_func_composite_pixel_mask_span_get(src, dst, dst_clip_w, dc->render_op); |
259 | maskobj = dc->mask.mask; | 259 | maskobj = dc->mask.mask; |
260 | mask = maskobj->mask.mask; | 260 | mask = maskobj->mask.mask; |
261 | /* | 261 | /* |
262 | if (1 || dst_region_w > src_region_w || dst_region_h > src_region_h){ | 262 | if (1 || dst_region_w > src_region_w || dst_region_h > src_region_h){ |
263 | printf("Mask w/h: %d/%d\n",maskobj->cache_entry.w, | 263 | printf("Mask w/h: %d/%d\n",maskobj->cache_entry.w, |
264 | maskobj->cache_entry.h); | 264 | maskobj->cache_entry.h); |
@@ -276,26 +276,47 @@ scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst, | |||
276 | if ((dst_region_w == src_region_w) && (dst_region_h == src_region_h)) | 276 | if ((dst_region_w == src_region_w) && (dst_region_h == src_region_h)) |
277 | { | 277 | { |
278 | #ifdef HAVE_PIXMAN | 278 | #ifdef HAVE_PIXMAN |
279 | if ((1) && | 279 | # ifdef PIXMAN_IMAGE_SCALE_SAMPLE |
280 | (src->pixman.im) && (dst->pixman.im) && | 280 | if ((src->pixman.im) && (dst->pixman.im) && (!dc->mask.mask) && |
281 | ((!dc->mul.use) || | 281 | ((!dc->mul.use) || |
282 | ((dc->mul.use) && (dc->mul.col == 0xffffffff))) && | 282 | ((dc->mul.use) && (dc->mul.col == 0xffffffff))) && |
283 | ((dc->render_op == _EVAS_RENDER_COPY) || | 283 | ((dc->render_op == _EVAS_RENDER_COPY) || |
284 | (dc->render_op == _EVAS_RENDER_BLEND)) | 284 | (dc->render_op == _EVAS_RENDER_BLEND))) |
285 | ) | ||
286 | { | 285 | { |
287 | pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY | 286 | pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY |
288 | if (dc->render_op == _EVAS_RENDER_BLEND) op = PIXMAN_OP_OVER; | 287 | if (dc->render_op == _EVAS_RENDER_BLEND) |
288 | op = PIXMAN_OP_OVER; | ||
289 | |||
289 | pixman_image_composite(op, | 290 | pixman_image_composite(op, |
290 | src->pixman.im, NULL, | 291 | src->pixman.im, NULL, |
291 | dst->pixman.im, | 292 | dst->pixman.im, |
292 | (dst_clip_x - dst_region_x) + src_region_x, | 293 | (dst_clip_x - dst_region_x) + src_region_x, |
293 | (dst_clip_y - dst_region_y) + src_region_y, | 294 | (dst_clip_y - dst_region_y) + src_region_y, |
294 | 0, 0, | 295 | 0, 0, |
295 | dst_clip_x, dst_clip_y, | 296 | dst_clip_x, dst_clip_y, |
297 | dst_clip_w, dst_clip_h); | ||
298 | } | ||
299 | else if ((src->pixman.im) && (dst->pixman.im) && | ||
300 | (dc->mask.mask) && (dc->mask.mask->pixman.im) && | ||
301 | ((dc->render_op == _EVAS_RENDER_COPY) || | ||
302 | (dc->render_op == _EVAS_RENDER_BLEND))) | ||
303 | { | ||
304 | // In case of pixel and color operation. | ||
305 | pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY | ||
306 | if (dc->render_op == _EVAS_RENDER_BLEND) | ||
307 | op = PIXMAN_OP_OVER; | ||
308 | |||
309 | pixman_image_composite(op, | ||
310 | src->pixman.im, dc->mask.mask->pixman.im, | ||
311 | dst->pixman.im, | ||
312 | (dst_clip_x - dst_region_x) + src_region_x, | ||
313 | (dst_clip_y - dst_region_y) + src_region_y, | ||
314 | 0, 0, | ||
315 | dst_clip_x, dst_clip_y, | ||
296 | dst_clip_w, dst_clip_h); | 316 | dst_clip_w, dst_clip_h); |
297 | } | 317 | } |
298 | else | 318 | else |
319 | # endif | ||
299 | #endif | 320 | #endif |
300 | { | 321 | { |
301 | ptr = src_data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x; | 322 | ptr = src_data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x; |
@@ -322,59 +343,59 @@ scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst, | |||
322 | } | 343 | } |
323 | else | 344 | else |
324 | { | 345 | { |
325 | /* fill scale tables */ | 346 | /* fill scale tables */ |
326 | for (x = 0; x < dst_clip_w; x++) | 347 | for (x = 0; x < dst_clip_w; x++) |
327 | lin_ptr[x] = (((x + dst_clip_x - dst_region_x) * src_region_w) / dst_region_w) + src_region_x; | 348 | lin_ptr[x] = (((x + dst_clip_x - dst_region_x) * src_region_w) / dst_region_w) + src_region_x; |
328 | for (y = 0; y < dst_clip_h; y++) | 349 | for (y = 0; y < dst_clip_h; y++) |
329 | row_ptr[y] = src_data + (((((y + dst_clip_y - dst_region_y) * src_region_h) / dst_region_h) | 350 | row_ptr[y] = src_data + (((((y + dst_clip_y - dst_region_y) * src_region_h) / dst_region_h) |
330 | + src_region_y) * src_w); | 351 | + src_region_y) * src_w); |
331 | /* scale to dst */ | 352 | /* scale to dst */ |
332 | dptr = dst_ptr; | 353 | dptr = dst_ptr; |
333 | #ifdef DIRECT_SCALE | 354 | #ifdef DIRECT_SCALE |
334 | if ((!src->cache_entry.flags.alpha) && | 355 | if ((!src->cache_entry.flags.alpha) && |
335 | (!dst->cache_entry.flags.alpha) && | 356 | (!dst->cache_entry.flags.alpha) && |
336 | (!dc->mul.use)) | 357 | (!dc->mul.use)) |
337 | { | 358 | { |
338 | for (y = 0; y < dst_clip_h; y++) | 359 | for (y = 0; y < dst_clip_h; y++) |
339 | { | 360 | { |
340 | #ifdef EVAS_SLI | 361 | # ifdef EVAS_SLI |
341 | if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y) | 362 | if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y) |
342 | #endif | 363 | # endif |
343 | { | 364 | { |
344 | dst_ptr = dptr; | 365 | dst_ptr = dptr; |
345 | for (x = 0; x < dst_clip_w; x++) | 366 | for (x = 0; x < dst_clip_w; x++) |
346 | { | 367 | { |
347 | ptr = row_ptr[y] + lin_ptr[x]; | 368 | ptr = row_ptr[y] + lin_ptr[x]; |
348 | *dst_ptr = *ptr; | 369 | *dst_ptr = *ptr; |
349 | dst_ptr++; | 370 | dst_ptr++; |
350 | } | 371 | } |
351 | } | 372 | } |
352 | dptr += dst_w; | 373 | dptr += dst_w; |
353 | } | 374 | } |
354 | } | 375 | } |
355 | else | 376 | else |
356 | #endif | 377 | #endif |
357 | { | 378 | { |
358 | /* a scanline buffer */ | 379 | /* a scanline buffer */ |
359 | buf = alloca(dst_clip_w * sizeof(DATA32)); | 380 | buf = alloca(dst_clip_w * sizeof(DATA32)); |
360 | for (y = 0; y < dst_clip_h; y++) | 381 | for (y = 0; y < dst_clip_h; y++) |
361 | { | 382 | { |
362 | #ifdef EVAS_SLI | 383 | #ifdef EVAS_SLI |
363 | if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y) | 384 | if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y) |
364 | #endif | 385 | #endif |
365 | { | 386 | { |
366 | dst_ptr = buf; | 387 | dst_ptr = buf; |
367 | for (x = 0; x < dst_clip_w; x++) | 388 | for (x = 0; x < dst_clip_w; x++) |
368 | { | 389 | { |
369 | ptr = row_ptr[y] + lin_ptr[x]; | 390 | ptr = row_ptr[y] + lin_ptr[x]; |
370 | *dst_ptr = *ptr; | 391 | *dst_ptr = *ptr; |
371 | dst_ptr++; | 392 | dst_ptr++; |
372 | } | 393 | } |
373 | /* * blend here [clip_w *] buf -> dptr * */ | 394 | /* * blend here [clip_w *] buf -> dptr * */ |
374 | func(buf, NULL, dc->mul.col, dptr, dst_clip_w); | 395 | func(buf, NULL, dc->mul.col, dptr, dst_clip_w); |
375 | } | 396 | } |
376 | dptr += dst_w; | 397 | dptr += dst_w; |
377 | } | 398 | } |
378 | } | 399 | } |
379 | } | 400 | } |
380 | } | 401 | } |
diff --git a/libraries/evas/src/lib/engines/common/evas_tiler.c b/libraries/evas/src/lib/engines/common/evas_tiler.c index 0bbe811..ff359a4 100644 --- a/libraries/evas/src/lib/engines/common/evas_tiler.c +++ b/libraries/evas/src/lib/engines/common/evas_tiler.c | |||
@@ -19,7 +19,9 @@ static inline list_node_t *rect_list_add_split_fuzzy(list_t *rects, list_node_t | |||
19 | static inline void rect_list_merge_rects(list_t *rects, list_t *to_merge, int accepted_error); | 19 | static inline void rect_list_merge_rects(list_t *rects, list_t *to_merge, int accepted_error); |
20 | 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); | 20 | 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); |
21 | static inline void rect_print(const rect_t r); | 21 | static inline void rect_print(const rect_t r); |
22 | #if 0 | ||
22 | static inline void rect_list_print(const list_t rects); | 23 | static inline void rect_list_print(const list_t rects); |
24 | #endif | ||
23 | 25 | ||
24 | static const list_node_t list_node_zeroed = { NULL }; | 26 | static const list_node_t list_node_zeroed = { NULL }; |
25 | static const list_t list_zeroed = { NULL, NULL }; | 27 | static const list_t list_zeroed = { NULL, NULL }; |
@@ -117,6 +119,7 @@ rect_print(const rect_t r) | |||
117 | INF("<rect(%d, %d, %d, %d)>", r.left, r.top, r.width, r.height); | 119 | INF("<rect(%d, %d, %d, %d)>", r.left, r.top, r.width, r.height); |
118 | } | 120 | } |
119 | 121 | ||
122 | #if 0 | ||
120 | static inline void | 123 | static inline void |
121 | rect_list_print(const list_t rects) | 124 | rect_list_print(const list_t rects) |
122 | { | 125 | { |
@@ -143,6 +146,7 @@ rect_list_print(const list_t rects) | |||
143 | } | 146 | } |
144 | putchar(']'); | 147 | putchar(']'); |
145 | } | 148 | } |
149 | #endif | ||
146 | 150 | ||
147 | static inline void | 151 | static inline void |
148 | rect_list_append_node(list_t *rects, list_node_t *node) | 152 | rect_list_append_node(list_t *rects, list_node_t *node) |
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 index 9f7859b..002cfbe 100644 --- a/libraries/evas/src/lib/engines/common/language/evas_bidi_utils.c +++ b/libraries/evas/src/lib/engines/common/language/evas_bidi_utils.c | |||
@@ -1,3 +1,7 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif | ||
4 | |||
1 | #include <string.h> | 5 | #include <string.h> |
2 | #include <stdlib.h> | 6 | #include <stdlib.h> |
3 | 7 | ||
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 index 9c9b3e3..b362f10 100644 --- a/libraries/evas/src/lib/engines/common/language/evas_language_utils.c +++ b/libraries/evas/src/lib/engines/common/language/evas_language_utils.c | |||
@@ -13,6 +13,12 @@ | |||
13 | * | 13 | * |
14 | * @{ | 14 | * @{ |
15 | */ | 15 | */ |
16 | #ifdef HAVE_CONFIG_H | ||
17 | # include <config.h> | ||
18 | #endif | ||
19 | |||
20 | #include <stdlib.h> | ||
21 | |||
16 | #include <Eina.h> | 22 | #include <Eina.h> |
17 | 23 | ||
18 | #include "evas_language_utils.h" | 24 | #include "evas_language_utils.h" |
diff --git a/libraries/evas/src/lib/engines/common_16/Makefile.in b/libraries/evas/src/lib/engines/common_16/Makefile.in index 9097a8d..313cbda 100644 --- a/libraries/evas/src/lib/engines/common_16/Makefile.in +++ b/libraries/evas/src/lib/engines/common_16/Makefile.in | |||
@@ -201,8 +201,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ | |||
201 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ | 201 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ |
202 | PIXMAN_LIBS = @PIXMAN_LIBS@ | 202 | PIXMAN_LIBS = @PIXMAN_LIBS@ |
203 | PKG_CONFIG = @PKG_CONFIG@ | 203 | PKG_CONFIG = @PKG_CONFIG@ |
204 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
205 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
206 | PNG_CFLAGS = @PNG_CFLAGS@ | 204 | PNG_CFLAGS = @PNG_CFLAGS@ |
207 | PNG_LIBS = @PNG_LIBS@ | 205 | PNG_LIBS = @PNG_LIBS@ |
208 | RANLIB = @RANLIB@ | 206 | RANLIB = @RANLIB@ |
@@ -219,6 +217,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ | |||
219 | VALGRIND_LIBS = @VALGRIND_LIBS@ | 217 | VALGRIND_LIBS = @VALGRIND_LIBS@ |
220 | VERSION = @VERSION@ | 218 | VERSION = @VERSION@ |
221 | VMAJ = @VMAJ@ | 219 | VMAJ = @VMAJ@ |
220 | WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ | ||
221 | WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ | ||
222 | WIN32_CFLAGS = @WIN32_CFLAGS@ | 222 | WIN32_CFLAGS = @WIN32_CFLAGS@ |
223 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ | 223 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ |
224 | XCB_CFLAGS = @XCB_CFLAGS@ | 224 | XCB_CFLAGS = @XCB_CFLAGS@ |
@@ -300,6 +300,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ | |||
300 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ | 300 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ |
301 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ | 301 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ |
302 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ | 302 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ |
303 | evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ | ||
304 | evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ | ||
305 | evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ | ||
306 | evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ | ||
303 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ | 307 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ |
304 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ | 308 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ |
305 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ | 309 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ |
diff --git a/libraries/evas/src/lib/engines/common_8/Makefile.in b/libraries/evas/src/lib/engines/common_8/Makefile.in index 06c13de..7fa4fbb 100644 --- a/libraries/evas/src/lib/engines/common_8/Makefile.in +++ b/libraries/evas/src/lib/engines/common_8/Makefile.in | |||
@@ -200,8 +200,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ | |||
200 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ | 200 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ |
201 | PIXMAN_LIBS = @PIXMAN_LIBS@ | 201 | PIXMAN_LIBS = @PIXMAN_LIBS@ |
202 | PKG_CONFIG = @PKG_CONFIG@ | 202 | PKG_CONFIG = @PKG_CONFIG@ |
203 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
204 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
205 | PNG_CFLAGS = @PNG_CFLAGS@ | 203 | PNG_CFLAGS = @PNG_CFLAGS@ |
206 | PNG_LIBS = @PNG_LIBS@ | 204 | PNG_LIBS = @PNG_LIBS@ |
207 | RANLIB = @RANLIB@ | 205 | RANLIB = @RANLIB@ |
@@ -218,6 +216,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ | |||
218 | VALGRIND_LIBS = @VALGRIND_LIBS@ | 216 | VALGRIND_LIBS = @VALGRIND_LIBS@ |
219 | VERSION = @VERSION@ | 217 | VERSION = @VERSION@ |
220 | VMAJ = @VMAJ@ | 218 | VMAJ = @VMAJ@ |
219 | WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ | ||
220 | WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ | ||
221 | WIN32_CFLAGS = @WIN32_CFLAGS@ | 221 | WIN32_CFLAGS = @WIN32_CFLAGS@ |
222 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ | 222 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ |
223 | XCB_CFLAGS = @XCB_CFLAGS@ | 223 | XCB_CFLAGS = @XCB_CFLAGS@ |
@@ -299,6 +299,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ | |||
299 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ | 299 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ |
300 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ | 300 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ |
301 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ | 301 | evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ |
302 | evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ | ||
303 | evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ | ||
304 | evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ | ||
305 | evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ | ||
302 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ | 306 | evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ |
303 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ | 307 | evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ |
304 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ | 308 | evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ |