aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-23 23:30:42 +1000
committerDavid Walter Seikel2012-01-23 23:30:42 +1000
commit825a3d837a33f226c879cd02ad15c3fba57e8b2c (patch)
tree75f57bd9c4253508d338dc79ba8e57a7abc42255 /libraries/evas
parentAdd ability to disable the test harness, or the Lua compile test. (diff)
downloadSledjHamr-825a3d837a33f226c879cd02ad15c3fba57e8b2c.zip
SledjHamr-825a3d837a33f226c879cd02ad15c3fba57e8b2c.tar.gz
SledjHamr-825a3d837a33f226c879cd02ad15c3fba57e8b2c.tar.bz2
SledjHamr-825a3d837a33f226c879cd02ad15c3fba57e8b2c.tar.xz
Update the EFL to what I'm actually using, coz I'm using some stuff not yet released.
Diffstat (limited to 'libraries/evas')
-rw-r--r--libraries/evas/AUTHORS1
-rw-r--r--libraries/evas/ChangeLog131
-rw-r--r--libraries/evas/Makefile.am10
-rw-r--r--libraries/evas/Makefile.in29
-rw-r--r--libraries/evas/NEWS15
-rw-r--r--libraries/evas/aclocal.m462
-rwxr-xr-xlibraries/evas/compile142
-rw-r--r--libraries/evas/config.h.in36
-rwxr-xr-xlibraries/evas/configure2718
-rw-r--r--libraries/evas/configure.ac130
-rw-r--r--libraries/evas/doc/Makefile.in8
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/e_big.pngbin30052 -> 30052 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/foot_bg.pngbin173 -> 173 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/head_bg.pngbin214 -> 214 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/menu_bg.pngbin192 -> 192 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/menu_bg_current.pngbin1200 -> 1200 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/menu_bg_hover.pngbin3278 -> 3278 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/menu_bg_last.pngbin637 -> 637 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/menu_bg_unsel.pngbin1596 -> 1596 bytes
-rw-r--r--libraries/evas/evas-wayland-egl.pc.in3
-rw-r--r--libraries/evas/evas-wayland-shm.pc.in3
-rw-r--r--libraries/evas/evas.spec2
-rwxr-xr-xlibraries/evas/ltmain.sh4
-rw-r--r--libraries/evas/m4/evas_check_engine.m473
-rw-r--r--libraries/evas/sha1-for-source.txt1
-rw-r--r--libraries/evas/src/Makefile.in8
-rw-r--r--libraries/evas/src/bin/Makefile.in8
-rw-r--r--libraries/evas/src/examples/Makefile.am30
-rw-r--r--libraries/evas/src/examples/Makefile.in70
-rw-r--r--libraries/evas/src/lib/Evas.h433
-rw-r--r--libraries/evas/src/lib/Evas_GL.h52
-rw-r--r--libraries/evas/src/lib/Makefile.am9
-rw-r--r--libraries/evas/src/lib/Makefile.in139
-rw-r--r--libraries/evas/src/lib/cache/Makefile.in8
-rw-r--r--libraries/evas/src/lib/cache/evas_cache_engine_image.c4
-rw-r--r--libraries/evas/src/lib/cache/evas_cache_image.c17
-rw-r--r--libraries/evas/src/lib/cache/evas_preload.c4
-rw-r--r--libraries/evas/src/lib/canvas/Makefile.in8
-rw-r--r--libraries/evas/src/lib/canvas/evas_callbacks.c274
-rw-r--r--libraries/evas/src/lib/canvas/evas_events.c520
-rw-r--r--libraries/evas/src/lib/canvas/evas_focus.c22
-rw-r--r--libraries/evas/src/lib/canvas/evas_gl.c27
-rw-r--r--libraries/evas/src/lib/canvas/evas_main.c41
-rw-r--r--libraries/evas/src/lib/canvas/evas_map.c18
-rw-r--r--libraries/evas/src/lib/canvas/evas_name.c32
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_box.c3
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_grid.c2
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_image.c46
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_inform.c16
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_intercept.c112
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_main.c112
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_smart.c31
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_table.c2
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_text.c4
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_textblock.c909
-rw-r--r--libraries/evas/src/lib/canvas/evas_render.c31
-rw-r--r--libraries/evas/src/lib/cserve/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_convert_rgb_16.c84
-rw-r--r--libraries/evas/src/lib/engines/common/evas_convert_rgb_32.c347
-rw-r--r--libraries/evas/src/lib/engines/common/evas_convert_yuv.c4
-rw-r--r--libraries/evas/src/lib/engines/common/evas_cpu.c4
-rw-r--r--libraries/evas/src/lib/engines/common/evas_draw_main.c68
-rw-r--r--libraries/evas/src/lib/engines/common/evas_font_draw.c135
-rw-r--r--libraries/evas/src/lib/engines/common/evas_font_main.c4
-rw-r--r--libraries/evas/src/lib/engines/common/evas_image_data.c4
-rw-r--r--libraries/evas/src/lib/engines/common/evas_image_load.c4
-rw-r--r--libraries/evas/src/lib/engines/common/evas_image_main.c56
-rw-r--r--libraries/evas/src/lib/engines/common/evas_image_scalecache.c2
-rw-r--r--libraries/evas/src/lib/engines/common/evas_line_main.c475
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_add/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_sse3.c3
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_sse3.c3
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_sse3.c1
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_polygon_main.c40
-rw-r--r--libraries/evas/src/lib/engines/common/evas_rectangle_main.c34
-rw-r--r--libraries/evas/src/lib/engines/common/evas_scale_sample.c113
-rw-r--r--libraries/evas/src/lib/engines/common/evas_tiler.c4
-rw-r--r--libraries/evas/src/lib/engines/common/language/evas_bidi_utils.c4
-rw-r--r--libraries/evas/src/lib/engines/common/language/evas_language_utils.c6
-rw-r--r--libraries/evas/src/lib/engines/common_16/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common_8/Makefile.in8
-rw-r--r--libraries/evas/src/lib/file/Makefile.in8
-rw-r--r--libraries/evas/src/lib/file/evas_module.c4
-rw-r--r--libraries/evas/src/lib/file/evas_path.c2
-rw-r--r--libraries/evas/src/lib/include/Makefile.in8
-rw-r--r--libraries/evas/src/lib/include/evas_common.h64
-rw-r--r--libraries/evas/src/lib/include/evas_private.h18
-rw-r--r--libraries/evas/src/modules/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/Makefile.am7
-rw-r--r--libraries/evas/src/modules/engines/Makefile.in15
-rw-r--r--libraries/evas/src/modules/engines/buffer/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/direct3d/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/directfb/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/fb/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/gl_cocoa/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/gl_common/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_common.h2
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c7
-rw-r--r--libraries/evas/src/modules/engines/gl_sdl/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/gl_x11/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/gl_x11/evas_engine.c104
-rw-r--r--libraries/evas/src/modules/engines/gl_x11/evas_x_main.c2
-rw-r--r--libraries/evas/src/modules/engines/psl1ght/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_16/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_16_sdl/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_16_wince/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_8/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_ddraw/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_gdi/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_generic/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_generic/evas_engine.c1612
-rw-r--r--libraries/evas/src/modules/engines/software_sdl/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_x11/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c2
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/Evas_Engine_Wayland_Egl.h42
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/Makefile.am47
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/Makefile.in816
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/evas_engine.c3174
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/evas_engine.h82
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/evas_wl_main.c323
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h20
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/Makefile.am45
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/Makefile.in816
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/evas_engine.c370
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/evas_engine.h60
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c100
-rw-r--r--libraries/evas/src/modules/loaders/Makefile.in10
-rw-r--r--libraries/evas/src/modules/loaders/TODO5
-rw-r--r--libraries/evas/src/modules/loaders/bmp/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/bmp/evas_image_load_bmp.c485
-rw-r--r--libraries/evas/src/modules/loaders/edb/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/edb/evas_image_load_edb.c3
-rw-r--r--libraries/evas/src/modules/loaders/eet/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/eet/evas_image_load_eet.c3
-rw-r--r--libraries/evas/src/modules/loaders/generic/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/generic/evas_image_load_generic.c8
-rw-r--r--libraries/evas/src/modules/loaders/gif/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c3
-rw-r--r--libraries/evas/src/modules/loaders/ico/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/ico/evas_image_load_ico.c216
-rw-r--r--libraries/evas/src/modules/loaders/jpeg/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c3
-rw-r--r--libraries/evas/src/modules/loaders/pmaps/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c54
-rw-r--r--libraries/evas/src/modules/loaders/png/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/png/evas_image_load_png.c3
-rw-r--r--libraries/evas/src/modules/loaders/psd/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/psd/evas_image_load_psd.c264
-rw-r--r--libraries/evas/src/modules/loaders/svg/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/svg/evas_image_load_svg.c3
-rw-r--r--libraries/evas/src/modules/loaders/tga/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/tga/evas_image_load_tga.c3
-rw-r--r--libraries/evas/src/modules/loaders/tiff/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/tiff/evas_image_load_tiff.c3
-rw-r--r--libraries/evas/src/modules/loaders/wbmp/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/wbmp/evas_image_load_wbmp.c113
-rw-r--r--libraries/evas/src/modules/loaders/xpm/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/xpm/evas_image_load_xpm.c162
-rw-r--r--libraries/evas/src/modules/savers/Makefile.in8
-rw-r--r--libraries/evas/src/modules/savers/edb/Makefile.in8
-rw-r--r--libraries/evas/src/modules/savers/eet/Makefile.in8
-rw-r--r--libraries/evas/src/modules/savers/jpeg/Makefile.in8
-rw-r--r--libraries/evas/src/modules/savers/png/Makefile.in8
-rw-r--r--libraries/evas/src/modules/savers/tiff/Makefile.in8
-rw-r--r--libraries/evas/src/static_deps/Makefile.in8
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/AUTHORS2
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/Makefile.am6
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/Makefile.in17
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/wordbreak.c435
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/wordbreak.h72
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/wordbreakdata.x858
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/wordbreakdef.h80
-rw-r--r--libraries/evas/src/tests/Makefile.in8
-rw-r--r--libraries/evas/src/tests/evas_test_callbacks.c6
-rw-r--r--libraries/evas/src/tests/evas_test_textblock.c319
185 files changed, 15672 insertions, 3417 deletions
diff --git a/libraries/evas/AUTHORS b/libraries/evas/AUTHORS
index 52f8f93..470dd6a 100644
--- a/libraries/evas/AUTHORS
+++ b/libraries/evas/AUTHORS
@@ -31,3 +31,4 @@ Seungsoo Woo <om101.woo@samsung.com>
31Youness Alaoui <kakaroto@kakaroto.homelinux.net> 31Youness Alaoui <kakaroto@kakaroto.homelinux.net>
32Jim Kukunas <james.t.kukunas@linux.intel.com> 32Jim Kukunas <james.t.kukunas@linux.intel.com>
33Nicolas Aguirre <aguirre.nicolas@gmail.com> 33Nicolas Aguirre <aguirre.nicolas@gmail.com>
34Rafal Krypa <r.krypa@samsung.com>
diff --git a/libraries/evas/ChangeLog b/libraries/evas/ChangeLog
index ac0f3d2..fa77400 100644
--- a/libraries/evas/ChangeLog
+++ b/libraries/evas/ChangeLog
@@ -503,7 +503,7 @@
503 503
504 * JPEG encode and decode in eet now uses ISLOW (not IFAST) due to 504 * JPEG encode and decode in eet now uses ISLOW (not IFAST) due to
505 noticable quality losses in the chase for speed. It will use 505 noticable quality losses in the chase for speed. It will use
506 IFAST for quality less than 60 when encoding 506 IFAST for quality less than 60 when encoding
507 507
5082011-11-20 Carsten Haitzler (The Rasterman) 5082011-11-20 Carsten Haitzler (The Rasterman)
509 509
@@ -515,3 +515,132 @@
515 515
516 * Fix repeat event inheritance from parent smart just like 516 * Fix repeat event inheritance from parent smart just like
517 pass events are inherited. This was inconsistent. 517 pass events are inherited. This was inconsistent.
518
5192011-12-02 Carsten Haitzler (The Rasterman)
520
521 1.1.0 release
522
5232011-12-07 Carsten Haitzler (The Rasterman)
524
525 * Fix build if gcc too old - if immintrin.h doesn't exist,
526 don't enable SSE3.
527
5282011-12-08 Tom Hacohen (TAsn)
529
530 * Textblock markup: Support self closing format tags, i.e <br/>.
531 You should use <br/> and not <br>. The latter still works but it's use
532 is discouraged.
533 * Textblock: Added evas_textblock_text_markup_to_utf8.
534 This lets you convert textblock markup to plain text.
535 This converts formats and everything correctly.
536
5372011-12-12 Carsten Haitzler (The Rasterman)
538
539 * Fix rounding error in map clip bounds calculation
540
5412011-12-12 Tom Hacohen (TAsn)
542
543 * Textblock: Added evas_textblock_cursor_word_start/end.
544 Those functions let you jump to the start/end of the word under the
545 cursor.
546
5472011-12-13 Carsten Haitzler (The Rasterman)
548
549 * Fix grab count negative values if you do weird combinations of
550 press and release with multiple fingers or multiple mouse
551 buttons.
552
5532011-12-14 Cedric BAIL
554
555 * Use Eina_File when loading bmp, ico, pmaps and wbmp files.
556 * Fix potential race condition in wbmp loader code.
557
5582011-12-14 Tom Hacohen (TAsn)
559
560 * Textblock: Made "br" and "tab" default tags for newline and tab.
561 * Textblock: Added "b" and "i" as default tags that can be overridden
562 by style, and added the infra to support this.
563 * Textblock: Added evas_textblock_text_utf8_to_markup
564
5652011-12-16 Carsten Haitzler (The Rasterman)
566
567 * Fix clip bug that shows up in buffer engine
568 * Fix SSE3 routines with buggy output - disable
569 * Add new api to set and get default event flags.
570
5712011-12-19 Carsten Haitzler (The Rasterman)
572
573 * Add new canvas events called just before and after evas rendering
574 starts and stops.
575
5762011-12-21 ChunEon Park (Hermet)
577
578 * Events: repeat events should not be affected by children.
579 Fixed to object passes events to the next object in the same layer
580 if the repeat_events is enabled.
581
5822011-12-23 Sanghee Park
583
584 * Extend pixman support to allow other operations to use
585 pixman when doing software rendering. On x86 this isn't useful
586 but on ARMv7 with NEON pixman happens to do better with image
587 blending and nearest scale blending.
588 * Add tiled rotator for 32bit display as an option.
589
5902011-12-26 Christopher Michael (devilhorns)
591
592 * Add functions to get/set if an object is a 'frame_object'
593
5942011-12-27 Carsten Haitzler (The Rasterman)
595
596 * Add feature to get number of pressed devices (help fix
597 ecore-evas bug).
598
5992011-12-28 Carsten Haitzler (The Rasterman)
600
601 * Add recursive name find function - evas_object_name_child_find()
602
6032012-01-01 Carsten Haitzler (The Rasterman)
604
605 * Improve CPU use on nvidia drivers when vsyncing. It was
606 actually glXWaitGL() spinning, not glXSwapBuffers(), so this
607 points to a bug in the nvidia drivers where the sleep logic
608 in glXSwapBuffers() hasn't been transferred to glXWaitGL().
609 Avoid use of glXWaitGL() to avoid the nvidia bug.
610
6112012-01-02 Cedric Bail
612
613 * Fix unitialized value when running generic loader without any
614 application found to open the file.
615 * Use Eina_File when openning XPM file.
616
6172012-01-03 Cedric Bail
618
619 * Use Eina_File for PSD file to.
620
6212012-01-06 Sung W. Park (sung_)
622
623 * Add EvasGL support to software backend using OSMesa. Requires OSMesa
624 library. Due to caveats in OSMesa, surface config stays with a
625 context rather than with a surface. So for now, the config of a
626 surface remains with the first context that it binds to. May need
627 to come up with a different solution in the near future.
628
6292012-01-12 Sung W. Park (sung_)
630
631 * Add new api evas_gl_config_new/free() to ensure backward compatibility.
632 Previously, the user simply declared a Evas_GL_Config object but this
633 can cause issues if new configs are added. Now we have evas allocate it
634 for you.
635
6362012-01-16 Raphael Kubo da Costa (rakuco)
637
638 * Add evas_object_smart_callback_del_full() to allow users to
639 unregister a specific smart event callback instead of all
640 callbacks matching a given type and function pointer.
641
6422012-01-17 Carsten Haitzler (The Rasterman)
643
644 * Add EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN pointer mode
645 for some very specific behavior needed for accessibility.
646
diff --git a/libraries/evas/Makefile.am b/libraries/evas/Makefile.am
index 665f988..b42e7f9 100644
--- a/libraries/evas/Makefile.am
+++ b/libraries/evas/Makefile.am
@@ -45,6 +45,8 @@ evas-direct3d.pc.in \
45evas-software-16-wince.pc.in \ 45evas-software-16-wince.pc.in \
46evas-software-sdl.pc.in \ 46evas-software-sdl.pc.in \
47evas-psl1ght.pc.in \ 47evas-psl1ght.pc.in \
48evas-wayland-shm.pc.in \
49evas-wayland-egl.pc.in \
48evas.spec.in \ 50evas.spec.in \
49evas.spec \ 51evas.spec \
50m4/efl_attribute.m4 \ 52m4/efl_attribute.m4 \
@@ -127,6 +129,14 @@ if BUILD_ENGINE_PSL1GHT
127pkgconfig_DATA += evas-psl1ght.pc 129pkgconfig_DATA += evas-psl1ght.pc
128endif 130endif
129 131
132if BUILD_ENGINE_WAYLAND_SHM
133pkgconfig_DATA += evas-wayland-shm.pc
134endif
135
136if BUILD_ENGINE_WAYLAND_EGL
137pkgconfig_DATA += evas-wayland-egl.pc
138endif
139
130.PHONY: doc coverage 140.PHONY: doc coverage
131 141
132doc: 142doc:
diff --git a/libraries/evas/Makefile.in b/libraries/evas/Makefile.in
index 6fb0d12..8fe20cb 100644
--- a/libraries/evas/Makefile.in
+++ b/libraries/evas/Makefile.in
@@ -51,6 +51,8 @@ host_triplet = @host@
51@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@am__append_14 = evas-software-16-wince.pc 51@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@am__append_14 = evas-software-16-wince.pc
52@BUILD_ENGINE_SOFTWARE_SDL_TRUE@am__append_15 = evas-software-sdl.pc 52@BUILD_ENGINE_SOFTWARE_SDL_TRUE@am__append_15 = evas-software-sdl.pc
53@BUILD_ENGINE_PSL1GHT_TRUE@am__append_16 = evas-psl1ght.pc 53@BUILD_ENGINE_PSL1GHT_TRUE@am__append_16 = evas-psl1ght.pc
54@BUILD_ENGINE_WAYLAND_SHM_TRUE@am__append_17 = evas-wayland-shm.pc
55@BUILD_ENGINE_WAYLAND_EGL_TRUE@am__append_18 = evas-wayland-egl.pc
54subdir = . 56subdir = .
55DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ 57DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
56 $(srcdir)/Makefile.in $(srcdir)/config.h.in \ 58 $(srcdir)/Makefile.in $(srcdir)/config.h.in \
@@ -66,10 +68,12 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
66 $(srcdir)/evas-software-ddraw.pc.in \ 68 $(srcdir)/evas-software-ddraw.pc.in \
67 $(srcdir)/evas-software-gdi.pc.in \ 69 $(srcdir)/evas-software-gdi.pc.in \
68 $(srcdir)/evas-software-sdl.pc.in \ 70 $(srcdir)/evas-software-sdl.pc.in \
69 $(srcdir)/evas-software-x11.pc.in $(srcdir)/evas.pc.in \ 71 $(srcdir)/evas-software-x11.pc.in \
72 $(srcdir)/evas-wayland-egl.pc.in \
73 $(srcdir)/evas-wayland-shm.pc.in $(srcdir)/evas.pc.in \
70 $(srcdir)/evas.spec.in $(top_srcdir)/configure ABOUT-NLS \ 74 $(srcdir)/evas.spec.in $(top_srcdir)/configure ABOUT-NLS \
71 AUTHORS COPYING ChangeLog INSTALL NEWS compile config.guess \ 75 AUTHORS COPYING ChangeLog INSTALL NEWS config.guess config.sub \
72 config.sub depcomp install-sh ltmain.sh missing 76 depcomp install-sh ltmain.sh missing
73ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 77ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
74am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 78am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
75 $(top_srcdir)/m4/efl_coverage.m4 \ 79 $(top_srcdir)/m4/efl_coverage.m4 \
@@ -97,7 +101,7 @@ CONFIG_CLEAN_FILES = evas-directfb.pc evas-fb.pc evas-opengl-x11.pc \
97 evas-software-gdi.pc evas-software-ddraw.pc \ 101 evas-software-gdi.pc evas-software-ddraw.pc \
98 evas-software-16-ddraw.pc evas-direct3d.pc \ 102 evas-software-16-ddraw.pc evas-direct3d.pc \
99 evas-software-16-wince.pc evas-software-sdl.pc evas-psl1ght.pc \ 103 evas-software-16-wince.pc evas-software-sdl.pc evas-psl1ght.pc \
100 evas.pc evas.spec 104 evas-wayland-shm.pc evas-wayland-egl.pc evas.pc evas.spec
101CONFIG_CLEAN_VPATH_FILES = 105CONFIG_CLEAN_VPATH_FILES =
102am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 106am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
103am__vpath_adj = case $$p in \ 107am__vpath_adj = case $$p in \
@@ -284,8 +288,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
284PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 288PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
285PIXMAN_LIBS = @PIXMAN_LIBS@ 289PIXMAN_LIBS = @PIXMAN_LIBS@
286PKG_CONFIG = @PKG_CONFIG@ 290PKG_CONFIG = @PKG_CONFIG@
287PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
288PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
289PNG_CFLAGS = @PNG_CFLAGS@ 291PNG_CFLAGS = @PNG_CFLAGS@
290PNG_LIBS = @PNG_LIBS@ 292PNG_LIBS = @PNG_LIBS@
291RANLIB = @RANLIB@ 293RANLIB = @RANLIB@
@@ -302,6 +304,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
302VALGRIND_LIBS = @VALGRIND_LIBS@ 304VALGRIND_LIBS = @VALGRIND_LIBS@
303VERSION = @VERSION@ 305VERSION = @VERSION@
304VMAJ = @VMAJ@ 306VMAJ = @VMAJ@
307WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
308WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
305WIN32_CFLAGS = @WIN32_CFLAGS@ 309WIN32_CFLAGS = @WIN32_CFLAGS@
306WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 310WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
307XCB_CFLAGS = @XCB_CFLAGS@ 311XCB_CFLAGS = @XCB_CFLAGS@
@@ -383,6 +387,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
383evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 387evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
384evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 388evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
385evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 389evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
390evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
391evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
392evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
393evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
386evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 394evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
387evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 395evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
388evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 396evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
@@ -501,6 +509,8 @@ evas-direct3d.pc.in \
501evas-software-16-wince.pc.in \ 509evas-software-16-wince.pc.in \
502evas-software-sdl.pc.in \ 510evas-software-sdl.pc.in \
503evas-psl1ght.pc.in \ 511evas-psl1ght.pc.in \
512evas-wayland-shm.pc.in \
513evas-wayland-egl.pc.in \
504evas.spec.in \ 514evas.spec.in \
505evas.spec \ 515evas.spec \
506m4/efl_attribute.m4 \ 516m4/efl_attribute.m4 \
@@ -522,7 +532,8 @@ pkgconfig_DATA = evas.pc $(am__append_1) $(am__append_2) \
522 $(am__append_6) $(am__append_7) $(am__append_8) \ 532 $(am__append_6) $(am__append_7) $(am__append_8) \
523 $(am__append_9) $(am__append_10) $(am__append_11) \ 533 $(am__append_9) $(am__append_10) $(am__append_11) \
524 $(am__append_12) $(am__append_13) $(am__append_14) \ 534 $(am__append_12) $(am__append_13) $(am__append_14) \
525 $(am__append_15) $(am__append_16) 535 $(am__append_15) $(am__append_16) $(am__append_17) \
536 $(am__append_18)
526all: config.h 537all: config.h
527 $(MAKE) $(AM_MAKEFLAGS) all-recursive 538 $(MAKE) $(AM_MAKEFLAGS) all-recursive
528 539
@@ -610,6 +621,10 @@ evas-software-sdl.pc: $(top_builddir)/config.status $(srcdir)/evas-software-sdl.
610 cd $(top_builddir) && $(SHELL) ./config.status $@ 621 cd $(top_builddir) && $(SHELL) ./config.status $@
611evas-psl1ght.pc: $(top_builddir)/config.status $(srcdir)/evas-psl1ght.pc.in 622evas-psl1ght.pc: $(top_builddir)/config.status $(srcdir)/evas-psl1ght.pc.in
612 cd $(top_builddir) && $(SHELL) ./config.status $@ 623 cd $(top_builddir) && $(SHELL) ./config.status $@
624evas-wayland-shm.pc: $(top_builddir)/config.status $(srcdir)/evas-wayland-shm.pc.in
625 cd $(top_builddir) && $(SHELL) ./config.status $@
626evas-wayland-egl.pc: $(top_builddir)/config.status $(srcdir)/evas-wayland-egl.pc.in
627 cd $(top_builddir) && $(SHELL) ./config.status $@
613evas.pc: $(top_builddir)/config.status $(srcdir)/evas.pc.in 628evas.pc: $(top_builddir)/config.status $(srcdir)/evas.pc.in
614 cd $(top_builddir) && $(SHELL) ./config.status $@ 629 cd $(top_builddir) && $(SHELL) ./config.status $@
615evas.spec: $(top_builddir)/config.status $(srcdir)/evas.spec.in 630evas.spec: $(top_builddir)/config.status $(srcdir)/evas.spec.in
diff --git a/libraries/evas/NEWS b/libraries/evas/NEWS
index afddb46..945fd96 100644
--- a/libraries/evas/NEWS
+++ b/libraries/evas/NEWS
@@ -1,3 +1,18 @@
1Evas 1.2.0
2
3Changes since Evas 1.1.0:
4-------------------------
5
6Additions:
7
8 * Textblock now supports self-closing tags, i.e <br/>. Those should be used instead of the old <br> way.
9 * Shm engine for drawing in Wayland.
10 * evas_object_smart_callback_del_full API.
11
12Improvements:
13
14 * Use Eina_File mmap infrastructure for bmp, ico, pmaps, psd, wbmp and xpm file access.
15
1Evas 1.1.0 16Evas 1.1.0
2 17
3Changes since Evas 1.0.0: 18Changes since Evas 1.0.0:
diff --git a/libraries/evas/aclocal.m4 b/libraries/evas/aclocal.m4
index f74cf11..a816a9b 100644
--- a/libraries/evas/aclocal.m4
+++ b/libraries/evas/aclocal.m4
@@ -13,14 +13,13 @@
13 13
14m4_ifndef([AC_AUTOCONF_VERSION], 14m4_ifndef([AC_AUTOCONF_VERSION],
15 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl 15 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, 16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
17[m4_warning([this file was generated for autoconf 2.67. 17[m4_warning([this file was generated for autoconf 2.65.
18You have another version of autoconf. It may work, but is not guaranteed to. 18You have another version of autoconf. It may work, but is not guaranteed to.
19If you have problems, you may need to regenerate the build system entirely. 19If you have problems, you may need to regenerate the build system entirely.
20To do so, use the procedure documented by the package, typically `autoreconf'.])]) 20To do so, use the procedure documented by the package, typically `autoreconf'.])])
21 21
22# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- 22# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
23# serial 1 (pkg-config-0.24)
24# 23#
25# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. 24# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
26# 25#
@@ -48,10 +47,7 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
48AC_DEFUN([PKG_PROG_PKG_CONFIG], 47AC_DEFUN([PKG_PROG_PKG_CONFIG],
49[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) 48[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
50m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) 49m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
51AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) 50AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
52AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
53AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
54
55if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 51if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
56 AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) 52 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
57fi 53fi
@@ -64,6 +60,7 @@ if test -n "$PKG_CONFIG"; then
64 AC_MSG_RESULT([no]) 60 AC_MSG_RESULT([no])
65 PKG_CONFIG="" 61 PKG_CONFIG=""
66 fi 62 fi
63
67fi[]dnl 64fi[]dnl
68])# PKG_PROG_PKG_CONFIG 65])# PKG_PROG_PKG_CONFIG
69 66
@@ -72,31 +69,34 @@ fi[]dnl
72# Check to see whether a particular set of modules exists. Similar 69# Check to see whether a particular set of modules exists. Similar
73# to PKG_CHECK_MODULES(), but does not set variables or print errors. 70# to PKG_CHECK_MODULES(), but does not set variables or print errors.
74# 71#
75# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 72#
76# only at the first occurence in configure.ac, so if the first place 73# Similar to PKG_CHECK_MODULES, make sure that the first instance of
77# it's called might be skipped (such as if it is within an "if", you 74# this or PKG_CHECK_MODULES is called, or make sure to call
78# have to call PKG_CHECK_EXISTS manually 75# PKG_CHECK_EXISTS manually
79# -------------------------------------------------------------- 76# --------------------------------------------------------------
80AC_DEFUN([PKG_CHECK_EXISTS], 77AC_DEFUN([PKG_CHECK_EXISTS],
81[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 78[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
82if test -n "$PKG_CONFIG" && \ 79if test -n "$PKG_CONFIG" && \
83 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then 80 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
84 m4_default([$2], [:]) 81 m4_ifval([$2], [$2], [:])
85m4_ifvaln([$3], [else 82m4_ifvaln([$3], [else
86 $3])dnl 83 $3])dnl
87fi]) 84fi])
88 85
86
89# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) 87# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
90# --------------------------------------------- 88# ---------------------------------------------
91m4_define([_PKG_CONFIG], 89m4_define([_PKG_CONFIG],
92[if test -n "$$1"; then 90[if test -n "$PKG_CONFIG"; then
93 pkg_cv_[]$1="$$1" 91 if test -n "$$1"; then
94 elif test -n "$PKG_CONFIG"; then 92 pkg_cv_[]$1="$$1"
95 PKG_CHECK_EXISTS([$3], 93 else
96 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], 94 PKG_CHECK_EXISTS([$3],
97 [pkg_failed=yes]) 95 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
98 else 96 [pkg_failed=yes])
99 pkg_failed=untried 97 fi
98else
99 pkg_failed=untried
100fi[]dnl 100fi[]dnl
101])# _PKG_CONFIG 101])# _PKG_CONFIG
102 102
@@ -138,17 +138,16 @@ and $1[]_LIBS to avoid the need to call pkg-config.
138See the pkg-config man page for more details.]) 138See the pkg-config man page for more details.])
139 139
140if test $pkg_failed = yes; then 140if test $pkg_failed = yes; then
141 AC_MSG_RESULT([no])
142 _PKG_SHORT_ERRORS_SUPPORTED 141 _PKG_SHORT_ERRORS_SUPPORTED
143 if test $_pkg_short_errors_supported = yes; then 142 if test $_pkg_short_errors_supported = yes; then
144 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` 143 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
145 else 144 else
146 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` 145 $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
147 fi 146 fi
148 # Put the nasty error message in config.log where it belongs 147 # Put the nasty error message in config.log where it belongs
149 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD 148 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
150 149
151 m4_default([$4], [AC_MSG_ERROR( 150 ifelse([$4], , [AC_MSG_ERROR(dnl
152[Package requirements ($2) were not met: 151[Package requirements ($2) were not met:
153 152
154$$1_PKG_ERRORS 153$$1_PKG_ERRORS
@@ -156,24 +155,25 @@ $$1_PKG_ERRORS
156Consider adjusting the PKG_CONFIG_PATH environment variable if you 155Consider adjusting the PKG_CONFIG_PATH environment variable if you
157installed software in a non-standard prefix. 156installed software in a non-standard prefix.
158 157
159_PKG_TEXT])[]dnl 158_PKG_TEXT
160 ]) 159])],
160 [AC_MSG_RESULT([no])
161 $4])
161elif test $pkg_failed = untried; then 162elif test $pkg_failed = untried; then
162 AC_MSG_RESULT([no]) 163 ifelse([$4], , [AC_MSG_FAILURE(dnl
163 m4_default([$4], [AC_MSG_FAILURE(
164[The pkg-config script could not be found or is too old. Make sure it 164[The pkg-config script could not be found or is too old. Make sure it
165is in your PATH or set the PKG_CONFIG environment variable to the full 165is in your PATH or set the PKG_CONFIG environment variable to the full
166path to pkg-config. 166path to pkg-config.
167 167
168_PKG_TEXT 168_PKG_TEXT
169 169
170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl 170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
171 ]) 171 [$4])
172else 172else
173 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS 173 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
174 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS 174 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
175 AC_MSG_RESULT([yes]) 175 AC_MSG_RESULT([yes])
176 $3 176 ifelse([$3], , :, [$3])
177fi[]dnl 177fi[]dnl
178])# PKG_CHECK_MODULES 178])# PKG_CHECK_MODULES
179 179
diff --git a/libraries/evas/compile b/libraries/evas/compile
deleted file mode 100755
index 1b1d232..0000000
--- a/libraries/evas/compile
+++ /dev/null
@@ -1,142 +0,0 @@
1#! /bin/sh
2# Wrapper for compilers which do not understand `-c -o'.
3
4scriptversion=2005-05-14.22
5
6# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
7# Written by Tom Tromey <tromey@cygnus.com>.
8#
9# This program is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2, or (at your option)
12# any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, write to the Free Software
21# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22
23# As a special exception to the GNU General Public License, if you
24# distribute this file as part of a program that contains a
25# configuration script generated by Autoconf, you may include it under
26# the same distribution terms that you use for the rest of that program.
27
28# This file is maintained in Automake, please report
29# bugs to <bug-automake@gnu.org> or send patches to
30# <automake-patches@gnu.org>.
31
32case $1 in
33 '')
34 echo "$0: No command. Try \`$0 --help' for more information." 1>&2
35 exit 1;
36 ;;
37 -h | --h*)
38 cat <<\EOF
39Usage: compile [--help] [--version] PROGRAM [ARGS]
40
41Wrapper for compilers which do not understand `-c -o'.
42Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
43arguments, and rename the output as expected.
44
45If you are trying to build a whole package this is not the
46right script to run: please start by reading the file `INSTALL'.
47
48Report bugs to <bug-automake@gnu.org>.
49EOF
50 exit $?
51 ;;
52 -v | --v*)
53 echo "compile $scriptversion"
54 exit $?
55 ;;
56esac
57
58ofile=
59cfile=
60eat=
61
62for arg
63do
64 if test -n "$eat"; then
65 eat=
66 else
67 case $1 in
68 -o)
69 # configure might choose to run compile as `compile cc -o foo foo.c'.
70 # So we strip `-o arg' only if arg is an object.
71 eat=1
72 case $2 in
73 *.o | *.obj)
74 ofile=$2
75 ;;
76 *)
77 set x "$@" -o "$2"
78 shift
79 ;;
80 esac
81 ;;
82 *.c)
83 cfile=$1
84 set x "$@" "$1"
85 shift
86 ;;
87 *)
88 set x "$@" "$1"
89 shift
90 ;;
91 esac
92 fi
93 shift
94done
95
96if test -z "$ofile" || test -z "$cfile"; then
97 # If no `-o' option was seen then we might have been invoked from a
98 # pattern rule where we don't need one. That is ok -- this is a
99 # normal compilation that the losing compiler can handle. If no
100 # `.c' file was seen then we are probably linking. That is also
101 # ok.
102 exec "$@"
103fi
104
105# Name of file we expect compiler to create.
106cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
107
108# Create the lock directory.
109# Note: use `[/.-]' here to ensure that we don't use the same name
110# that we are using for the .o file. Also, base the name on the expected
111# object file name, since that is what matters with a parallel build.
112lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
113while true; do
114 if mkdir "$lockdir" >/dev/null 2>&1; then
115 break
116 fi
117 sleep 1
118done
119# FIXME: race condition here if user kills between mkdir and trap.
120trap "rmdir '$lockdir'; exit 1" 1 2 15
121
122# Run the compile.
123"$@"
124ret=$?
125
126if test -f "$cofile"; then
127 mv "$cofile" "$ofile"
128elif test -f "${cofile}bj"; then
129 mv "${cofile}bj" "$ofile"
130fi
131
132rmdir "$lockdir"
133exit $ret
134
135# Local Variables:
136# mode: shell-script
137# sh-indentation: 2
138# eval: (add-hook 'write-file-hooks 'time-stamp)
139# time-stamp-start: "scriptversion="
140# time-stamp-format: "%:y-%02m-%02d.%02H"
141# time-stamp-end: "$"
142# End:
diff --git a/libraries/evas/config.h.in b/libraries/evas/config.h.in
index 95bb668..84f6c88 100644
--- a/libraries/evas/config.h.in
+++ b/libraries/evas/config.h.in
@@ -182,6 +182,12 @@
182/* Build software Xlib backend */ 182/* Build software Xlib backend */
183#undef BUILD_ENGINE_SOFTWARE_XLIB 183#undef BUILD_ENGINE_SOFTWARE_XLIB
184 184
185/* Wayland Egl rendering backend */
186#undef BUILD_ENGINE_WAYLAND_EGL
187
188/* Wayland Shm rendering backend */
189#undef BUILD_ENGINE_WAYLAND_SHM
190
185/* EET Font Loader Support */ 191/* EET Font Loader Support */
186#undef BUILD_FONT_LOADER_EET 192#undef BUILD_FONT_LOADER_EET
187 193
@@ -410,6 +416,12 @@
410/* Build Tiff image loader inside libevas */ 416/* Build Tiff image loader inside libevas */
411#undef EVAS_STATIC_BUILD_TIFF 417#undef EVAS_STATIC_BUILD_TIFF
412 418
419/* Build wayland-egl engine inside libevas */
420#undef EVAS_STATIC_BUILD_WAYLAND_EGL
421
422/* Build wayland-shm engine inside libevas */
423#undef EVAS_STATIC_BUILD_WAYLAND_SHM
424
413/* Build WBMP image loader inside libevas */ 425/* Build WBMP image loader inside libevas */
414#undef EVAS_STATIC_BUILD_WBMP 426#undef EVAS_STATIC_BUILD_WBMP
415 427
@@ -510,6 +522,9 @@
510/* Define to 1 if the system has the type `struct sigaction'. */ 522/* Define to 1 if the system has the type `struct sigaction'. */
511#undef HAVE_STRUCT_SIGACTION 523#undef HAVE_STRUCT_SIGACTION
512 524
525/* Define to 1 if you have the <sys/mman.h> header file. */
526#undef HAVE_SYS_MMAN_H
527
513/* Define to 1 if you have the <sys/param.h> header file. */ 528/* Define to 1 if you have the <sys/param.h> header file. */
514#undef HAVE_SYS_PARAM_H 529#undef HAVE_SYS_PARAM_H
515 530
@@ -565,6 +580,24 @@
565/* default value since PATH_MAX is not defined */ 580/* default value since PATH_MAX is not defined */
566#undef PATH_MAX 581#undef PATH_MAX
567 582
583/* Allow pixman to render fonts */
584#undef PIXMAN_FONT
585
586/* Allow pixman to render images */
587#undef PIXMAN_IMAGE
588
589/* Allow pixman to render image sampled scaling */
590#undef PIXMAN_IMAGE_SCALE_SAMPLE
591
592/* Allow pixman to render lines */
593#undef PIXMAN_LINE
594
595/* Allow pixman to render polys */
596#undef PIXMAN_POLY
597
598/* Allow pixman to render rects */
599#undef PIXMAN_RECT
600
568/* The size of `Eina_Unicode', as computed by sizeof. */ 601/* The size of `Eina_Unicode', as computed by sizeof. */
569#undef SIZEOF_EINA_UNICODE 602#undef SIZEOF_EINA_UNICODE
570 603
@@ -582,6 +615,9 @@
582/* Define to 1 if you have the ANSI C header files. */ 615/* Define to 1 if you have the ANSI C header files. */
583#undef STDC_HEADERS 616#undef STDC_HEADERS
584 617
618/* Enable tiled rotate algorithm */
619#undef TILE_ROTATE
620
585/* Enable extensions on AIX 3, Interix. */ 621/* Enable extensions on AIX 3, Interix. */
586#ifndef _ALL_SOURCE 622#ifndef _ALL_SOURCE
587# undef _ALL_SOURCE 623# undef _ALL_SOURCE
diff --git a/libraries/evas/configure b/libraries/evas/configure
index df1fca7..8ab6964 100755
--- a/libraries/evas/configure
+++ b/libraries/evas/configure
@@ -1,13 +1,13 @@
1#! /bin/sh 1#! /bin/sh
2# Guess values for system-dependent variables and create Makefiles. 2# Guess values for system-dependent variables and create Makefiles.
3# Generated by GNU Autoconf 2.67 for evas 1.1.0. 3# Generated by GNU Autoconf 2.65 for evas 1.1.99.67344.
4# 4#
5# Report bugs to <enlightenment-devel@lists.sourceforge.net>. 5# Report bugs to <enlightenment-devel@lists.sourceforge.net>.
6# 6#
7# 7#
8# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 8# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
9# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software 9# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
10# Foundation, Inc. 10# Inc.
11# 11#
12# 12#
13# This configure script is free software; the Free Software Foundation 13# This configure script is free software; the Free Software Foundation
@@ -319,7 +319,7 @@ $as_echo X"$as_dir" |
319 test -d "$as_dir" && break 319 test -d "$as_dir" && break
320 done 320 done
321 test -z "$as_dirs" || eval "mkdir $as_dirs" 321 test -z "$as_dirs" || eval "mkdir $as_dirs"
322 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" 322 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
323 323
324 324
325} # as_fn_mkdir_p 325} # as_fn_mkdir_p
@@ -359,19 +359,19 @@ else
359fi # as_fn_arith 359fi # as_fn_arith
360 360
361 361
362# as_fn_error STATUS ERROR [LINENO LOG_FD] 362# as_fn_error ERROR [LINENO LOG_FD]
363# ---------------------------------------- 363# ---------------------------------
364# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 364# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
365# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 365# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
366# script with STATUS, using 1 if that was 0. 366# script with status $?, using 1 if that was 0.
367as_fn_error () 367as_fn_error ()
368{ 368{
369 as_status=$1; test $as_status -eq 0 && as_status=1 369 as_status=$?; test $as_status -eq 0 && as_status=1
370 if test "$4"; then 370 if test "$3"; then
371 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 371 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
373 fi 373 fi
374 $as_echo "$as_me: error: $2" >&2 374 $as_echo "$as_me: error: $1" >&2
375 as_fn_exit $as_status 375 as_fn_exit $as_status
376} # as_fn_error 376} # as_fn_error
377 377
@@ -682,7 +682,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null
682exec 6>&1 682exec 6>&1
683 683
684# Name of the host. 684# Name of the host.
685# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, 685# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
686# so uname gets run too. 686# so uname gets run too.
687ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` 687ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
688 688
@@ -701,8 +701,8 @@ MAKEFLAGS=
701# Identity of this package. 701# Identity of this package.
702PACKAGE_NAME='evas' 702PACKAGE_NAME='evas'
703PACKAGE_TARNAME='evas' 703PACKAGE_TARNAME='evas'
704PACKAGE_VERSION='1.1.0' 704PACKAGE_VERSION='1.1.99.67344'
705PACKAGE_STRING='evas 1.1.0' 705PACKAGE_STRING='evas 1.1.99.67344'
706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net' 706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net'
707PACKAGE_URL='' 707PACKAGE_URL=''
708 708
@@ -937,6 +937,20 @@ evas_engine_software_xcb_libs
937evas_engine_software_xcb_cflags 937evas_engine_software_xcb_cflags
938EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE 938EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE
939EVAS_STATIC_BUILD_SOFTWARE_GENERIC_TRUE 939EVAS_STATIC_BUILD_SOFTWARE_GENERIC_TRUE
940EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE
941EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE
942BUILD_ENGINE_WAYLAND_EGL_FALSE
943BUILD_ENGINE_WAYLAND_EGL_TRUE
944evas_engine_wayland_egl_libs
945evas_engine_wayland_egl_cflags
946WAYLAND_EGL_LIBS
947WAYLAND_EGL_CFLAGS
948EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE
949EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE
950BUILD_ENGINE_WAYLAND_SHM_FALSE
951BUILD_ENGINE_WAYLAND_SHM_TRUE
952evas_engine_wayland_shm_libs
953evas_engine_wayland_shm_cflags
940EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE 954EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE
941EVAS_STATIC_BUILD_SOFTWARE_16_SDL_TRUE 955EVAS_STATIC_BUILD_SOFTWARE_16_SDL_TRUE
942BUILD_ENGINE_SOFTWARE_16_SDL_FALSE 956BUILD_ENGINE_SOFTWARE_16_SDL_FALSE
@@ -1072,8 +1086,6 @@ EFL_BUILD_DOC_TRUE
1072efl_doxygen 1086efl_doxygen
1073efl_have_doxygen 1087efl_have_doxygen
1074pkgconfig_requires_private 1088pkgconfig_requires_private
1075PKG_CONFIG_LIBDIR
1076PKG_CONFIG_PATH
1077PKG_CONFIG 1089PKG_CONFIG
1078CXXCPP 1090CXXCPP
1079am__fastdepCXX_FALSE 1091am__fastdepCXX_FALSE
@@ -1221,6 +1233,13 @@ enable_liblinebreak
1221enable_fribidi 1233enable_fribidi
1222enable_harfbuzz 1234enable_harfbuzz
1223enable_pixman 1235enable_pixman
1236enable_pixman_font
1237enable_pixman_rect
1238enable_pixman_line
1239enable_pixman_poly
1240enable_pixman_image
1241enable_pixman_image_scale_sample
1242enable_tile_rotate
1224enable_evas_cserve 1243enable_evas_cserve
1225enable_gl_flavor_gles 1244enable_gl_flavor_gles
1226enable_gles_variety_sgx 1245enable_gles_variety_sgx
@@ -1241,6 +1260,8 @@ with_x
1241enable_software_16_ddraw 1260enable_software_16_ddraw
1242enable_software_16_wince 1261enable_software_16_wince
1243enable_software_16_sdl 1262enable_software_16_sdl
1263enable_wayland_shm
1264enable_wayland_egl
1244enable_sdl_primitive 1265enable_sdl_primitive
1245enable_static_software_generic 1266enable_static_software_generic
1246enable_software_xcb 1267enable_software_xcb
@@ -1338,8 +1359,6 @@ CXXFLAGS
1338CCC 1359CCC
1339CXXCPP 1360CXXCPP
1340PKG_CONFIG 1361PKG_CONFIG
1341PKG_CONFIG_PATH
1342PKG_CONFIG_LIBDIR
1343EVIL_CFLAGS 1362EVIL_CFLAGS
1344EVIL_LIBS 1363EVIL_LIBS
1345EINA_CFLAGS 1364EINA_CFLAGS
@@ -1363,6 +1382,8 @@ DIRECTFB_LIBS
1363XCB_CFLAGS 1382XCB_CFLAGS
1364XCB_LIBS 1383XCB_LIBS
1365XMKMF 1384XMKMF
1385WAYLAND_EGL_CFLAGS
1386WAYLAND_EGL_LIBS
1366XCB_GL_CFLAGS 1387XCB_GL_CFLAGS
1367XCB_GL_LIBS 1388XCB_GL_LIBS
1368EDB_CFLAGS 1389EDB_CFLAGS
@@ -1445,9 +1466,8 @@ do
1445 fi 1466 fi
1446 1467
1447 case $ac_option in 1468 case $ac_option in
1448 *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; 1469 *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
1449 *=) ac_optarg= ;; 1470 *) ac_optarg=yes ;;
1450 *) ac_optarg=yes ;;
1451 esac 1471 esac
1452 1472
1453 # Accept the important Cygnus configure options, so we can diagnose typos. 1473 # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1492,7 +1512,7 @@ do
1492 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` 1512 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1493 # Reject names that are not valid shell variable names. 1513 # Reject names that are not valid shell variable names.
1494 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1514 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1495 as_fn_error $? "invalid feature name: $ac_useropt" 1515 as_fn_error "invalid feature name: $ac_useropt"
1496 ac_useropt_orig=$ac_useropt 1516 ac_useropt_orig=$ac_useropt
1497 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1517 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1498 case $ac_user_opts in 1518 case $ac_user_opts in
@@ -1518,7 +1538,7 @@ do
1518 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` 1538 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1519 # Reject names that are not valid shell variable names. 1539 # Reject names that are not valid shell variable names.
1520 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1540 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1521 as_fn_error $? "invalid feature name: $ac_useropt" 1541 as_fn_error "invalid feature name: $ac_useropt"
1522 ac_useropt_orig=$ac_useropt 1542 ac_useropt_orig=$ac_useropt
1523 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1543 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1524 case $ac_user_opts in 1544 case $ac_user_opts in
@@ -1722,7 +1742,7 @@ do
1722 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` 1742 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1723 # Reject names that are not valid shell variable names. 1743 # Reject names that are not valid shell variable names.
1724 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1744 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1725 as_fn_error $? "invalid package name: $ac_useropt" 1745 as_fn_error "invalid package name: $ac_useropt"
1726 ac_useropt_orig=$ac_useropt 1746 ac_useropt_orig=$ac_useropt
1727 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1747 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1728 case $ac_user_opts in 1748 case $ac_user_opts in
@@ -1738,7 +1758,7 @@ do
1738 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` 1758 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1739 # Reject names that are not valid shell variable names. 1759 # Reject names that are not valid shell variable names.
1740 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1760 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1741 as_fn_error $? "invalid package name: $ac_useropt" 1761 as_fn_error "invalid package name: $ac_useropt"
1742 ac_useropt_orig=$ac_useropt 1762 ac_useropt_orig=$ac_useropt
1743 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1763 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1744 case $ac_user_opts in 1764 case $ac_user_opts in
@@ -1768,8 +1788,8 @@ do
1768 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) 1788 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1769 x_libraries=$ac_optarg ;; 1789 x_libraries=$ac_optarg ;;
1770 1790
1771 -*) as_fn_error $? "unrecognized option: \`$ac_option' 1791 -*) as_fn_error "unrecognized option: \`$ac_option'
1772Try \`$0 --help' for more information" 1792Try \`$0 --help' for more information."
1773 ;; 1793 ;;
1774 1794
1775 *=*) 1795 *=*)
@@ -1777,7 +1797,7 @@ Try \`$0 --help' for more information"
1777 # Reject names that are not valid shell variable names. 1797 # Reject names that are not valid shell variable names.
1778 case $ac_envvar in #( 1798 case $ac_envvar in #(
1779 '' | [0-9]* | *[!_$as_cr_alnum]* ) 1799 '' | [0-9]* | *[!_$as_cr_alnum]* )
1780 as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; 1800 as_fn_error "invalid variable name: \`$ac_envvar'" ;;
1781 esac 1801 esac
1782 eval $ac_envvar=\$ac_optarg 1802 eval $ac_envvar=\$ac_optarg
1783 export $ac_envvar ;; 1803 export $ac_envvar ;;
@@ -1795,13 +1815,13 @@ done
1795 1815
1796if test -n "$ac_prev"; then 1816if test -n "$ac_prev"; then
1797 ac_option=--`echo $ac_prev | sed 's/_/-/g'` 1817 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1798 as_fn_error $? "missing argument to $ac_option" 1818 as_fn_error "missing argument to $ac_option"
1799fi 1819fi
1800 1820
1801if test -n "$ac_unrecognized_opts"; then 1821if test -n "$ac_unrecognized_opts"; then
1802 case $enable_option_checking in 1822 case $enable_option_checking in
1803 no) ;; 1823 no) ;;
1804 fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; 1824 fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
1805 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; 1825 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1806 esac 1826 esac
1807fi 1827fi
@@ -1824,7 +1844,7 @@ do
1824 [\\/$]* | ?:[\\/]* ) continue;; 1844 [\\/$]* | ?:[\\/]* ) continue;;
1825 NONE | '' ) case $ac_var in *prefix ) continue;; esac;; 1845 NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
1826 esac 1846 esac
1827 as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" 1847 as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
1828done 1848done
1829 1849
1830# There might be people who depend on the old broken behavior: `$host' 1850# There might be people who depend on the old broken behavior: `$host'
@@ -1838,8 +1858,8 @@ target=$target_alias
1838if test "x$host_alias" != x; then 1858if test "x$host_alias" != x; then
1839 if test "x$build_alias" = x; then 1859 if test "x$build_alias" = x; then
1840 cross_compiling=maybe 1860 cross_compiling=maybe
1841 $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. 1861 $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
1842 If a cross compiler is detected then cross compile mode will be used" >&2 1862 If a cross compiler is detected then cross compile mode will be used." >&2
1843 elif test "x$build_alias" != "x$host_alias"; then 1863 elif test "x$build_alias" != "x$host_alias"; then
1844 cross_compiling=yes 1864 cross_compiling=yes
1845 fi 1865 fi
@@ -1854,9 +1874,9 @@ test "$silent" = yes && exec 6>/dev/null
1854ac_pwd=`pwd` && test -n "$ac_pwd" && 1874ac_pwd=`pwd` && test -n "$ac_pwd" &&
1855ac_ls_di=`ls -di .` && 1875ac_ls_di=`ls -di .` &&
1856ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || 1876ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1857 as_fn_error $? "working directory cannot be determined" 1877 as_fn_error "working directory cannot be determined"
1858test "X$ac_ls_di" = "X$ac_pwd_ls_di" || 1878test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
1859 as_fn_error $? "pwd does not report name of working directory" 1879 as_fn_error "pwd does not report name of working directory"
1860 1880
1861 1881
1862# Find the source files, if location was not specified. 1882# Find the source files, if location was not specified.
@@ -1895,11 +1915,11 @@ else
1895fi 1915fi
1896if test ! -r "$srcdir/$ac_unique_file"; then 1916if test ! -r "$srcdir/$ac_unique_file"; then
1897 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." 1917 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
1898 as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" 1918 as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
1899fi 1919fi
1900ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" 1920ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
1901ac_abs_confdir=`( 1921ac_abs_confdir=`(
1902 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" 1922 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
1903 pwd)` 1923 pwd)`
1904# When building in place, set srcdir=. 1924# When building in place, set srcdir=.
1905if test "$ac_abs_confdir" = "$ac_pwd"; then 1925if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1925,7 +1945,7 @@ if test "$ac_init_help" = "long"; then
1925 # Omit some internal or obsolete options to make the list less imposing. 1945 # Omit some internal or obsolete options to make the list less imposing.
1926 # This message is too long to be a string in the A/UX 3.1 sh. 1946 # This message is too long to be a string in the A/UX 3.1 sh.
1927 cat <<_ACEOF 1947 cat <<_ACEOF
1928\`configure' configures evas 1.1.0 to adapt to many kinds of systems. 1948\`configure' configures evas 1.1.99.67344 to adapt to many kinds of systems.
1929 1949
1930Usage: $0 [OPTION]... [VAR=VALUE]... 1950Usage: $0 [OPTION]... [VAR=VALUE]...
1931 1951
@@ -1939,7 +1959,7 @@ Configuration:
1939 --help=short display options specific to this package 1959 --help=short display options specific to this package
1940 --help=recursive display the short help of all the included packages 1960 --help=recursive display the short help of all the included packages
1941 -V, --version display version information and exit 1961 -V, --version display version information and exit
1942 -q, --quiet, --silent do not print \`checking ...' messages 1962 -q, --quiet, --silent do not print \`checking...' messages
1943 --cache-file=FILE cache test results in FILE [disabled] 1963 --cache-file=FILE cache test results in FILE [disabled]
1944 -C, --config-cache alias for \`--cache-file=config.cache' 1964 -C, --config-cache alias for \`--cache-file=config.cache'
1945 -n, --no-create do not create output files 1965 -n, --no-create do not create output files
@@ -1999,7 +2019,7 @@ fi
1999 2019
2000if test -n "$ac_init_help"; then 2020if test -n "$ac_init_help"; then
2001 case $ac_init_help in 2021 case $ac_init_help in
2002 short | recursive ) echo "Configuration of evas 1.1.0:";; 2022 short | recursive ) echo "Configuration of evas 1.1.99.67344:";;
2003 esac 2023 esac
2004 cat <<\_ACEOF 2024 cat <<\_ACEOF
2005 2025
@@ -2027,8 +2047,16 @@ Optional Features:
2027 [default=enabled] 2047 [default=enabled]
2028 --disable-harfbuzz disable complex text shaping and layouting support. 2048 --disable-harfbuzz disable complex text shaping and layouting support.
2029 [default=enabled] 2049 [default=enabled]
2030 --disable-pixman disable pixman for software rendering. 2050 --enable-pixman enable pixman for software rendering.
2031 [default=enabled] 2051 [default=enabled]
2052 --enable-pixman-font Allow pixman to render fonts
2053 --enable-pixman-rect Allow pixman to render rects
2054 --enable-pixman-line Allow pixman to render lines
2055 --enable-pixman-poly Allow pixman to render polys
2056 --enable-pixman-image Allow pixman to render images
2057 --enable-pixman-image-scale-sample
2058 Allow pixman to render sampled scaled images
2059 --enable-tile-rotate Enable tiled rotate algorithm
2032 --disable-evas-cserve disable shared cache server support. 2060 --disable-evas-cserve disable shared cache server support.
2033 [default=enabled] 2061 [default=enabled]
2034 --enable-gl-flavor-gles enable gles falvor of gl instead of standard 2062 --enable-gl-flavor-gles enable gles falvor of gl instead of standard
@@ -2056,6 +2084,8 @@ Optional Features:
2056 enable Software Windows CE 16 bits rendering backend 2084 enable Software Windows CE 16 bits rendering backend
2057 --enable-software-16-sdl 2085 --enable-software-16-sdl
2058 enable Software SDL 16 bits rendering backend 2086 enable Software SDL 16 bits rendering backend
2087 --enable-wayland-shm enable Wayland Shm rendering backend
2088 --enable-wayland-egl enable Wayland Egl rendering backend
2059 --enable-sdl-primitive 2089 --enable-sdl-primitive
2060 --enable-static-software-generic 2090 --enable-static-software-generic
2061 Build software generic engine as part of libevas 2091 Build software generic engine as part of libevas
@@ -2229,10 +2259,6 @@ Some influential environment variables:
2229 CXXFLAGS C++ compiler flags 2259 CXXFLAGS C++ compiler flags
2230 CXXCPP C++ preprocessor 2260 CXXCPP C++ preprocessor
2231 PKG_CONFIG path to pkg-config utility 2261 PKG_CONFIG path to pkg-config utility
2232 PKG_CONFIG_PATH
2233 directories to add to pkg-config's search path
2234 PKG_CONFIG_LIBDIR
2235 path overriding pkg-config's built-in search path
2236 EVIL_CFLAGS C compiler flags for EVIL, overriding pkg-config 2262 EVIL_CFLAGS C compiler flags for EVIL, overriding pkg-config
2237 EVIL_LIBS linker flags for EVIL, overriding pkg-config 2263 EVIL_LIBS linker flags for EVIL, overriding pkg-config
2238 EINA_CFLAGS C compiler flags for EINA, overriding pkg-config 2264 EINA_CFLAGS C compiler flags for EINA, overriding pkg-config
@@ -2268,6 +2294,10 @@ Some influential environment variables:
2268 XCB_CFLAGS C compiler flags for XCB, overriding pkg-config 2294 XCB_CFLAGS C compiler flags for XCB, overriding pkg-config
2269 XCB_LIBS linker flags for XCB, overriding pkg-config 2295 XCB_LIBS linker flags for XCB, overriding pkg-config
2270 XMKMF Path to xmkmf, Makefile generator for X Window System 2296 XMKMF Path to xmkmf, Makefile generator for X Window System
2297 WAYLAND_EGL_CFLAGS
2298 C compiler flags for WAYLAND_EGL, overriding pkg-config
2299 WAYLAND_EGL_LIBS
2300 linker flags for WAYLAND_EGL, overriding pkg-config
2271 XCB_GL_CFLAGS 2301 XCB_GL_CFLAGS
2272 C compiler flags for XCB_GL, overriding pkg-config 2302 C compiler flags for XCB_GL, overriding pkg-config
2273 XCB_GL_LIBS linker flags for XCB_GL, overriding pkg-config 2303 XCB_GL_LIBS linker flags for XCB_GL, overriding pkg-config
@@ -2361,10 +2391,10 @@ fi
2361test -n "$ac_init_help" && exit $ac_status 2391test -n "$ac_init_help" && exit $ac_status
2362if $ac_init_version; then 2392if $ac_init_version; then
2363 cat <<\_ACEOF 2393 cat <<\_ACEOF
2364evas configure 1.1.0 2394evas configure 1.1.99.67344
2365generated by GNU Autoconf 2.67 2395generated by GNU Autoconf 2.65
2366 2396
2367Copyright (C) 2010 Free Software Foundation, Inc. 2397Copyright (C) 2009 Free Software Foundation, Inc.
2368This configure script is free software; the Free Software Foundation 2398This configure script is free software; the Free Software Foundation
2369gives unlimited permission to copy, distribute and modify it. 2399gives unlimited permission to copy, distribute and modify it.
2370_ACEOF 2400_ACEOF
@@ -2434,7 +2464,7 @@ $as_echo "$ac_try_echo"; } >&5
2434 mv -f conftest.er1 conftest.err 2464 mv -f conftest.er1 conftest.err
2435 fi 2465 fi
2436 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 2466 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2437 test $ac_status = 0; } > conftest.i && { 2467 test $ac_status = 0; } >/dev/null && {
2438 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || 2468 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
2439 test ! -s conftest.err 2469 test ! -s conftest.err
2440 }; then : 2470 }; then :
@@ -2458,10 +2488,10 @@ fi
2458ac_fn_c_check_header_mongrel () 2488ac_fn_c_check_header_mongrel ()
2459{ 2489{
2460 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2490 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2461 if eval "test \"\${$3+set}\"" = set; then : 2491 if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2462 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2492 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2463$as_echo_n "checking for $2... " >&6; } 2493$as_echo_n "checking for $2... " >&6; }
2464if eval "test \"\${$3+set}\"" = set; then : 2494if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2465 $as_echo_n "(cached) " >&6 2495 $as_echo_n "(cached) " >&6
2466fi 2496fi
2467eval ac_res=\$$3 2497eval ac_res=\$$3
@@ -2497,7 +2527,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
2497else 2527else
2498 ac_header_preproc=no 2528 ac_header_preproc=no
2499fi 2529fi
2500rm -f conftest.err conftest.i conftest.$ac_ext 2530rm -f conftest.err conftest.$ac_ext
2501{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 2531{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
2502$as_echo "$ac_header_preproc" >&6; } 2532$as_echo "$ac_header_preproc" >&6; }
2503 2533
@@ -2520,15 +2550,17 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
2520$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} 2550$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
2521 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 2551 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
2522$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} 2552$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
2523( $as_echo "## -------------------------------------------------------- ## 2553( cat <<\_ASBOX
2554## -------------------------------------------------------- ##
2524## Report this to enlightenment-devel@lists.sourceforge.net ## 2555## Report this to enlightenment-devel@lists.sourceforge.net ##
2525## -------------------------------------------------------- ##" 2556## -------------------------------------------------------- ##
2557_ASBOX
2526 ) | sed "s/^/$as_me: WARNING: /" >&2 2558 ) | sed "s/^/$as_me: WARNING: /" >&2
2527 ;; 2559 ;;
2528esac 2560esac
2529 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2561 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2530$as_echo_n "checking for $2... " >&6; } 2562$as_echo_n "checking for $2... " >&6; }
2531if eval "test \"\${$3+set}\"" = set; then : 2563if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2532 $as_echo_n "(cached) " >&6 2564 $as_echo_n "(cached) " >&6
2533else 2565else
2534 eval "$3=\$ac_header_compiler" 2566 eval "$3=\$ac_header_compiler"
@@ -2592,7 +2624,7 @@ ac_fn_c_check_header_compile ()
2592 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2624 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2593 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2625 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2594$as_echo_n "checking for $2... " >&6; } 2626$as_echo_n "checking for $2... " >&6; }
2595if eval "test \"\${$3+set}\"" = set; then : 2627if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2596 $as_echo_n "(cached) " >&6 2628 $as_echo_n "(cached) " >&6
2597else 2629else
2598 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2630 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2668,7 +2700,7 @@ ac_fn_c_check_func ()
2668 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2700 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2669 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2701 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2670$as_echo_n "checking for $2... " >&6; } 2702$as_echo_n "checking for $2... " >&6; }
2671if eval "test \"\${$3+set}\"" = set; then : 2703if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2672 $as_echo_n "(cached) " >&6 2704 $as_echo_n "(cached) " >&6
2673else 2705else
2674 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2706 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2870,7 +2902,7 @@ $as_echo "$ac_try_echo"; } >&5
2870 mv -f conftest.er1 conftest.err 2902 mv -f conftest.er1 conftest.err
2871 fi 2903 fi
2872 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 2904 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2873 test $ac_status = 0; } > conftest.i && { 2905 test $ac_status = 0; } >/dev/null && {
2874 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || 2906 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
2875 test ! -s conftest.err 2907 test ! -s conftest.err
2876 }; then : 2908 }; then :
@@ -3119,7 +3151,7 @@ ac_fn_c_check_type ()
3119 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 3151 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
3120 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 3152 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
3121$as_echo_n "checking for $2... " >&6; } 3153$as_echo_n "checking for $2... " >&6; }
3122if eval "test \"\${$3+set}\"" = set; then : 3154if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
3123 $as_echo_n "(cached) " >&6 3155 $as_echo_n "(cached) " >&6
3124else 3156else
3125 eval "$3=no" 3157 eval "$3=no"
@@ -3164,18 +3196,15 @@ $as_echo "$ac_res" >&6; }
3164 3196
3165} # ac_fn_c_check_type 3197} # ac_fn_c_check_type
3166 3198
3167# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES 3199# ac_fn_c_check_decl LINENO SYMBOL VAR
3168# --------------------------------------------- 3200# ------------------------------------
3169# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR 3201# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
3170# accordingly.
3171ac_fn_c_check_decl () 3202ac_fn_c_check_decl ()
3172{ 3203{
3173 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 3204 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
3174 as_decl_name=`echo $2|sed 's/ *(.*//'` 3205 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5
3175 as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` 3206$as_echo_n "checking whether $2 is declared... " >&6; }
3176 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 3207if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
3177$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
3178if eval "test \"\${$3+set}\"" = set; then :
3179 $as_echo_n "(cached) " >&6 3208 $as_echo_n "(cached) " >&6
3180else 3209else
3181 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 3210 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3184,12 +3213,8 @@ $4
3184int 3213int
3185main () 3214main ()
3186{ 3215{
3187#ifndef $as_decl_name 3216#ifndef $2
3188#ifdef __cplusplus 3217 (void) $2;
3189 (void) $as_decl_use;
3190#else
3191 (void) $as_decl_name;
3192#endif
3193#endif 3218#endif
3194 3219
3195 ; 3220 ;
@@ -3213,8 +3238,8 @@ cat >config.log <<_ACEOF
3213This file contains any messages produced by compilers while 3238This file contains any messages produced by compilers while
3214running configure, to aid debugging if configure makes a mistake. 3239running configure, to aid debugging if configure makes a mistake.
3215 3240
3216It was created by evas $as_me 1.1.0, which was 3241It was created by evas $as_me 1.1.99.67344, which was
3217generated by GNU Autoconf 2.67. Invocation command line was 3242generated by GNU Autoconf 2.65. Invocation command line was
3218 3243
3219 $ $0 $@ 3244 $ $0 $@
3220 3245
@@ -3324,9 +3349,11 @@ trap 'exit_status=$?
3324 { 3349 {
3325 echo 3350 echo
3326 3351
3327 $as_echo "## ---------------- ## 3352 cat <<\_ASBOX
3353## ---------------- ##
3328## Cache variables. ## 3354## Cache variables. ##
3329## ---------------- ##" 3355## ---------------- ##
3356_ASBOX
3330 echo 3357 echo
3331 # The following way of writing the cache mishandles newlines in values, 3358 # The following way of writing the cache mishandles newlines in values,
3332( 3359(
@@ -3360,9 +3387,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
3360) 3387)
3361 echo 3388 echo
3362 3389
3363 $as_echo "## ----------------- ## 3390 cat <<\_ASBOX
3391## ----------------- ##
3364## Output variables. ## 3392## Output variables. ##
3365## ----------------- ##" 3393## ----------------- ##
3394_ASBOX
3366 echo 3395 echo
3367 for ac_var in $ac_subst_vars 3396 for ac_var in $ac_subst_vars
3368 do 3397 do
@@ -3375,9 +3404,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
3375 echo 3404 echo
3376 3405
3377 if test -n "$ac_subst_files"; then 3406 if test -n "$ac_subst_files"; then
3378 $as_echo "## ------------------- ## 3407 cat <<\_ASBOX
3408## ------------------- ##
3379## File substitutions. ## 3409## File substitutions. ##
3380## ------------------- ##" 3410## ------------------- ##
3411_ASBOX
3381 echo 3412 echo
3382 for ac_var in $ac_subst_files 3413 for ac_var in $ac_subst_files
3383 do 3414 do
@@ -3391,9 +3422,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
3391 fi 3422 fi
3392 3423
3393 if test -s confdefs.h; then 3424 if test -s confdefs.h; then
3394 $as_echo "## ----------- ## 3425 cat <<\_ASBOX
3426## ----------- ##
3395## confdefs.h. ## 3427## confdefs.h. ##
3396## ----------- ##" 3428## ----------- ##
3429_ASBOX
3397 echo 3430 echo
3398 cat confdefs.h 3431 cat confdefs.h
3399 echo 3432 echo
@@ -3448,12 +3481,7 @@ _ACEOF
3448ac_site_file1=NONE 3481ac_site_file1=NONE
3449ac_site_file2=NONE 3482ac_site_file2=NONE
3450if test -n "$CONFIG_SITE"; then 3483if test -n "$CONFIG_SITE"; then
3451 # We do not want a PATH search for config.site. 3484 ac_site_file1=$CONFIG_SITE
3452 case $CONFIG_SITE in #((
3453 -*) ac_site_file1=./$CONFIG_SITE;;
3454 */*) ac_site_file1=$CONFIG_SITE;;
3455 *) ac_site_file1=./$CONFIG_SITE;;
3456 esac
3457elif test "x$prefix" != xNONE; then 3485elif test "x$prefix" != xNONE; then
3458 ac_site_file1=$prefix/share/config.site 3486 ac_site_file1=$prefix/share/config.site
3459 ac_site_file2=$prefix/etc/config.site 3487 ac_site_file2=$prefix/etc/config.site
@@ -3468,11 +3496,7 @@ do
3468 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 3496 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
3469$as_echo "$as_me: loading site script $ac_site_file" >&6;} 3497$as_echo "$as_me: loading site script $ac_site_file" >&6;}
3470 sed 's/^/| /' "$ac_site_file" >&5 3498 sed 's/^/| /' "$ac_site_file" >&5
3471 . "$ac_site_file" \ 3499 . "$ac_site_file"
3472 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3473$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3474as_fn_error $? "failed to load site script $ac_site_file
3475See \`config.log' for more details" "$LINENO" 5 ; }
3476 fi 3500 fi
3477done 3501done
3478 3502
@@ -3548,7 +3572,7 @@ if $ac_cache_corrupted; then
3548$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3572$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3549 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 3573 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
3550$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} 3574$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
3551 as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 3575 as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
3552fi 3576fi
3553## -------------------- ## 3577## -------------------- ##
3554## Main body of script. ## 3578## Main body of script. ##
@@ -3574,22 +3598,16 @@ am__api_version='1.11'
3574 3598
3575ac_aux_dir= 3599ac_aux_dir=
3576for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do 3600for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
3577 if test -f "$ac_dir/install-sh"; then 3601 for ac_t in install-sh install.sh shtool; do
3578 ac_aux_dir=$ac_dir 3602 if test -f "$ac_dir/$ac_t"; then
3579 ac_install_sh="$ac_aux_dir/install-sh -c" 3603 ac_aux_dir=$ac_dir
3580 break 3604 ac_install_sh="$ac_aux_dir/$ac_t -c"
3581 elif test -f "$ac_dir/install.sh"; then 3605 break 2
3582 ac_aux_dir=$ac_dir 3606 fi
3583 ac_install_sh="$ac_aux_dir/install.sh -c" 3607 done
3584 break
3585 elif test -f "$ac_dir/shtool"; then
3586 ac_aux_dir=$ac_dir
3587 ac_install_sh="$ac_aux_dir/shtool install -c"
3588 break
3589 fi
3590done 3608done
3591if test -z "$ac_aux_dir"; then 3609if test -z "$ac_aux_dir"; then
3592 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 3610 as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
3593fi 3611fi
3594 3612
3595# These three variables are undocumented and unsupported, 3613# These three variables are undocumented and unsupported,
@@ -3705,11 +3723,11 @@ am_lf='
3705' 3723'
3706case `pwd` in 3724case `pwd` in
3707 *[\\\"\#\$\&\'\`$am_lf]*) 3725 *[\\\"\#\$\&\'\`$am_lf]*)
3708 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; 3726 as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
3709esac 3727esac
3710case $srcdir in 3728case $srcdir in
3711 *[\\\"\#\$\&\'\`$am_lf\ \ ]*) 3729 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
3712 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; 3730 as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
3713esac 3731esac
3714 3732
3715# Do `set' in a subshell so we don't clobber the current shell's 3733# Do `set' in a subshell so we don't clobber the current shell's
@@ -3731,7 +3749,7 @@ if (
3731 # if, for instance, CONFIG_SHELL is bash and it inherits a 3749 # if, for instance, CONFIG_SHELL is bash and it inherits a
3732 # broken ls alias from the environment. This has actually 3750 # broken ls alias from the environment. This has actually
3733 # happened. Such a system could not be considered "sane". 3751 # happened. Such a system could not be considered "sane".
3734 as_fn_error $? "ls -t appears to fail. Make sure there is not a broken 3752 as_fn_error "ls -t appears to fail. Make sure there is not a broken
3735alias in your environment" "$LINENO" 5 3753alias in your environment" "$LINENO" 5
3736 fi 3754 fi
3737 3755
@@ -3741,7 +3759,7 @@ then
3741 # Ok. 3759 # Ok.
3742 : 3760 :
3743else 3761else
3744 as_fn_error $? "newly created file is older than distributed files! 3762 as_fn_error "newly created file is older than distributed files!
3745Check your system clock" "$LINENO" 5 3763Check your system clock" "$LINENO" 5
3746fi 3764fi
3747{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3765{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -3979,7 +3997,7 @@ done
3979$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } 3997$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
3980set x ${MAKE-make} 3998set x ${MAKE-make}
3981ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` 3999ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
3982if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : 4000if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
3983 $as_echo_n "(cached) " >&6 4001 $as_echo_n "(cached) " >&6
3984else 4002else
3985 cat >conftest.make <<\_ACEOF 4003 cat >conftest.make <<\_ACEOF
@@ -3987,7 +4005,7 @@ SHELL = /bin/sh
3987all: 4005all:
3988 @echo '@@@%%%=$(MAKE)=@@@%%%' 4006 @echo '@@@%%%=$(MAKE)=@@@%%%'
3989_ACEOF 4007_ACEOF
3990# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 4008# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
3991case `${MAKE-make} -f conftest.make 2>/dev/null` in 4009case `${MAKE-make} -f conftest.make 2>/dev/null` in
3992 *@@@%%%=?*=@@@%%%*) 4010 *@@@%%%=?*=@@@%%%*)
3993 eval ac_cv_prog_make_${ac_make}_set=yes;; 4011 eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -4021,7 +4039,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
4021 am__isrc=' -I$(srcdir)' 4039 am__isrc=' -I$(srcdir)'
4022 # test to see if srcdir already configured 4040 # test to see if srcdir already configured
4023 if test -f $srcdir/config.status; then 4041 if test -f $srcdir/config.status; then
4024 as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 4042 as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
4025 fi 4043 fi
4026fi 4044fi
4027 4045
@@ -4037,7 +4055,7 @@ fi
4037 4055
4038# Define the identity of the package. 4056# Define the identity of the package.
4039 PACKAGE='evas' 4057 PACKAGE='evas'
4040 VERSION='1.1.0' 4058 VERSION='1.1.99.67344'
4041 4059
4042 4060
4043cat >>confdefs.h <<_ACEOF 4061cat >>confdefs.h <<_ACEOF
@@ -4452,8 +4470,8 @@ fi
4452 4470
4453test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4471test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4454$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4472$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4455as_fn_error $? "no acceptable C compiler found in \$PATH 4473as_fn_error "no acceptable C compiler found in \$PATH
4456See \`config.log' for more details" "$LINENO" 5 ; } 4474See \`config.log' for more details." "$LINENO" 5; }
4457 4475
4458# Provide some information about the compiler. 4476# Provide some information about the compiler.
4459$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 4477$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -4567,8 +4585,9 @@ sed 's/^/| /' conftest.$ac_ext >&5
4567 4585
4568{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4586{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4569$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4587$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4570as_fn_error 77 "C compiler cannot create executables 4588{ as_fn_set_status 77
4571See \`config.log' for more details" "$LINENO" 5 ; } 4589as_fn_error "C compiler cannot create executables
4590See \`config.log' for more details." "$LINENO" 5; }; }
4572else 4591else
4573 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 4592 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4574$as_echo "yes" >&6; } 4593$as_echo "yes" >&6; }
@@ -4610,8 +4629,8 @@ done
4610else 4629else
4611 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4630 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4612$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4631$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4613as_fn_error $? "cannot compute suffix of executables: cannot compile and link 4632as_fn_error "cannot compute suffix of executables: cannot compile and link
4614See \`config.log' for more details" "$LINENO" 5 ; } 4633See \`config.log' for more details." "$LINENO" 5; }
4615fi 4634fi
4616rm -f conftest conftest$ac_cv_exeext 4635rm -f conftest conftest$ac_cv_exeext
4617{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 4636{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -4668,9 +4687,9 @@ $as_echo "$ac_try_echo"; } >&5
4668 else 4687 else
4669 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4688 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4670$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4689$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4671as_fn_error $? "cannot run C compiled programs. 4690as_fn_error "cannot run C compiled programs.
4672If you meant to cross compile, use \`--host'. 4691If you meant to cross compile, use \`--host'.
4673See \`config.log' for more details" "$LINENO" 5 ; } 4692See \`config.log' for more details." "$LINENO" 5; }
4674 fi 4693 fi
4675 fi 4694 fi
4676fi 4695fi
@@ -4721,8 +4740,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
4721 4740
4722{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4741{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4723$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4742$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4724as_fn_error $? "cannot compute suffix of object files: cannot compile 4743as_fn_error "cannot compute suffix of object files: cannot compile
4725See \`config.log' for more details" "$LINENO" 5 ; } 4744See \`config.log' for more details." "$LINENO" 5; }
4726fi 4745fi
4727rm -f conftest.$ac_cv_objext conftest.$ac_ext 4746rm -f conftest.$ac_cv_objext conftest.$ac_ext
4728fi 4747fi
@@ -5112,7 +5131,7 @@ else
5112 # Broken: fails on valid input. 5131 # Broken: fails on valid input.
5113continue 5132continue
5114fi 5133fi
5115rm -f conftest.err conftest.i conftest.$ac_ext 5134rm -f conftest.err conftest.$ac_ext
5116 5135
5117 # OK, works on sane cases. Now check whether nonexistent headers 5136 # OK, works on sane cases. Now check whether nonexistent headers
5118 # can be detected and how. 5137 # can be detected and how.
@@ -5128,11 +5147,11 @@ else
5128ac_preproc_ok=: 5147ac_preproc_ok=:
5129break 5148break
5130fi 5149fi
5131rm -f conftest.err conftest.i conftest.$ac_ext 5150rm -f conftest.err conftest.$ac_ext
5132 5151
5133done 5152done
5134# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 5153# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
5135rm -f conftest.i conftest.err conftest.$ac_ext 5154rm -f conftest.err conftest.$ac_ext
5136if $ac_preproc_ok; then : 5155if $ac_preproc_ok; then :
5137 break 5156 break
5138fi 5157fi
@@ -5171,7 +5190,7 @@ else
5171 # Broken: fails on valid input. 5190 # Broken: fails on valid input.
5172continue 5191continue
5173fi 5192fi
5174rm -f conftest.err conftest.i conftest.$ac_ext 5193rm -f conftest.err conftest.$ac_ext
5175 5194
5176 # OK, works on sane cases. Now check whether nonexistent headers 5195 # OK, works on sane cases. Now check whether nonexistent headers
5177 # can be detected and how. 5196 # can be detected and how.
@@ -5187,18 +5206,18 @@ else
5187ac_preproc_ok=: 5206ac_preproc_ok=:
5188break 5207break
5189fi 5208fi
5190rm -f conftest.err conftest.i conftest.$ac_ext 5209rm -f conftest.err conftest.$ac_ext
5191 5210
5192done 5211done
5193# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 5212# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
5194rm -f conftest.i conftest.err conftest.$ac_ext 5213rm -f conftest.err conftest.$ac_ext
5195if $ac_preproc_ok; then : 5214if $ac_preproc_ok; then :
5196 5215
5197else 5216else
5198 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 5217 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
5199$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 5218$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
5200as_fn_error $? "C preprocessor \"$CPP\" fails sanity check 5219as_fn_error "C preprocessor \"$CPP\" fails sanity check
5201See \`config.log' for more details" "$LINENO" 5 ; } 5220See \`config.log' for more details." "$LINENO" 5; }
5202fi 5221fi
5203 5222
5204ac_ext=c 5223ac_ext=c
@@ -5259,7 +5278,7 @@ esac
5259 done 5278 done
5260IFS=$as_save_IFS 5279IFS=$as_save_IFS
5261 if test -z "$ac_cv_path_GREP"; then 5280 if test -z "$ac_cv_path_GREP"; then
5262 as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 5281 as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
5263 fi 5282 fi
5264else 5283else
5265 ac_cv_path_GREP=$GREP 5284 ac_cv_path_GREP=$GREP
@@ -5325,7 +5344,7 @@ esac
5325 done 5344 done
5326IFS=$as_save_IFS 5345IFS=$as_save_IFS
5327 if test -z "$ac_cv_path_EGREP"; then 5346 if test -z "$ac_cv_path_EGREP"; then
5328 as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 5347 as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
5329 fi 5348 fi
5330else 5349else
5331 ac_cv_path_EGREP=$EGREP 5350 ac_cv_path_EGREP=$EGREP
@@ -5457,7 +5476,8 @@ do :
5457 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 5476 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
5458ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default 5477ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
5459" 5478"
5460if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 5479eval as_val=\$$as_ac_Header
5480 if test "x$as_val" = x""yes; then :
5461 cat >>confdefs.h <<_ACEOF 5481 cat >>confdefs.h <<_ACEOF
5462#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 5482#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
5463_ACEOF 5483_ACEOF
@@ -5532,7 +5552,7 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
5532 5552
5533# Make sure we can run config.sub. 5553# Make sure we can run config.sub.
5534$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || 5554$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
5535 as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 5555 as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
5536 5556
5537{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 5557{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
5538$as_echo_n "checking build system type... " >&6; } 5558$as_echo_n "checking build system type... " >&6; }
@@ -5543,16 +5563,16 @@ else
5543test "x$ac_build_alias" = x && 5563test "x$ac_build_alias" = x &&
5544 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` 5564 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
5545test "x$ac_build_alias" = x && 5565test "x$ac_build_alias" = x &&
5546 as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 5566 as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
5547ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || 5567ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
5548 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 5568 as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
5549 5569
5550fi 5570fi
5551{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 5571{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
5552$as_echo "$ac_cv_build" >&6; } 5572$as_echo "$ac_cv_build" >&6; }
5553case $ac_cv_build in 5573case $ac_cv_build in
5554*-*-*) ;; 5574*-*-*) ;;
5555*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; 5575*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
5556esac 5576esac
5557build=$ac_cv_build 5577build=$ac_cv_build
5558ac_save_IFS=$IFS; IFS='-' 5578ac_save_IFS=$IFS; IFS='-'
@@ -5577,7 +5597,7 @@ else
5577 ac_cv_host=$ac_cv_build 5597 ac_cv_host=$ac_cv_build
5578else 5598else
5579 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || 5599 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
5580 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 5600 as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
5581fi 5601fi
5582 5602
5583fi 5603fi
@@ -5585,7 +5605,7 @@ fi
5585$as_echo "$ac_cv_host" >&6; } 5605$as_echo "$ac_cv_host" >&6; }
5586case $ac_cv_host in 5606case $ac_cv_host in
5587*-*-*) ;; 5607*-*-*) ;;
5588*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; 5608*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
5589esac 5609esac
5590host=$ac_cv_host 5610host=$ac_cv_host
5591ac_save_IFS=$IFS; IFS='-' 5611ac_save_IFS=$IFS; IFS='-'
@@ -5986,7 +6006,7 @@ esac
5986 done 6006 done
5987IFS=$as_save_IFS 6007IFS=$as_save_IFS
5988 if test -z "$ac_cv_path_SED"; then 6008 if test -z "$ac_cv_path_SED"; then
5989 as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 6009 as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
5990 fi 6010 fi
5991else 6011else
5992 ac_cv_path_SED=$SED 6012 ac_cv_path_SED=$SED
@@ -6065,7 +6085,7 @@ esac
6065 done 6085 done
6066IFS=$as_save_IFS 6086IFS=$as_save_IFS
6067 if test -z "$ac_cv_path_FGREP"; then 6087 if test -z "$ac_cv_path_FGREP"; then
6068 as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 6088 as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
6069 fi 6089 fi
6070else 6090else
6071 ac_cv_path_FGREP=$FGREP 6091 ac_cv_path_FGREP=$FGREP
@@ -6181,7 +6201,7 @@ else
6181 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6201 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6182$as_echo "no" >&6; } 6202$as_echo "no" >&6; }
6183fi 6203fi
6184test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 6204test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
6185{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 6205{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
6186$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 6206$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
6187if test "${lt_cv_prog_gnu_ld+set}" = set; then : 6207if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -6383,13 +6403,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
6383else 6403else
6384 lt_cv_nm_interface="BSD nm" 6404 lt_cv_nm_interface="BSD nm"
6385 echo "int some_variable = 0;" > conftest.$ac_ext 6405 echo "int some_variable = 0;" > conftest.$ac_ext
6386 (eval echo "\"\$as_me:6386: $ac_compile\"" >&5) 6406 (eval echo "\"\$as_me:6406: $ac_compile\"" >&5)
6387 (eval "$ac_compile" 2>conftest.err) 6407 (eval "$ac_compile" 2>conftest.err)
6388 cat conftest.err >&5 6408 cat conftest.err >&5
6389 (eval echo "\"\$as_me:6389: $NM \\\"conftest.$ac_objext\\\"\"" >&5) 6409 (eval echo "\"\$as_me:6409: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
6390 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) 6410 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
6391 cat conftest.err >&5 6411 cat conftest.err >&5
6392 (eval echo "\"\$as_me:6392: output\"" >&5) 6412 (eval echo "\"\$as_me:6412: output\"" >&5)
6393 cat conftest.out >&5 6413 cat conftest.out >&5
6394 if $GREP 'External.*some_variable' conftest.out > /dev/null; then 6414 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
6395 lt_cv_nm_interface="MS dumpbin" 6415 lt_cv_nm_interface="MS dumpbin"
@@ -7591,7 +7611,7 @@ ia64-*-hpux*)
7591 ;; 7611 ;;
7592*-*-irix6*) 7612*-*-irix6*)
7593 # Find out which ABI we are using. 7613 # Find out which ABI we are using.
7594 echo '#line 7594 "configure"' > conftest.$ac_ext 7614 echo '#line 7614 "configure"' > conftest.$ac_ext
7595 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 7615 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
7596 (eval $ac_compile) 2>&5 7616 (eval $ac_compile) 2>&5
7597 ac_status=$? 7617 ac_status=$?
@@ -8851,11 +8871,11 @@ else
8851 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8871 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8852 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8872 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8853 -e 's:$: $lt_compiler_flag:'` 8873 -e 's:$: $lt_compiler_flag:'`
8854 (eval echo "\"\$as_me:8854: $lt_compile\"" >&5) 8874 (eval echo "\"\$as_me:8874: $lt_compile\"" >&5)
8855 (eval "$lt_compile" 2>conftest.err) 8875 (eval "$lt_compile" 2>conftest.err)
8856 ac_status=$? 8876 ac_status=$?
8857 cat conftest.err >&5 8877 cat conftest.err >&5
8858 echo "$as_me:8858: \$? = $ac_status" >&5 8878 echo "$as_me:8878: \$? = $ac_status" >&5
8859 if (exit $ac_status) && test -s "$ac_outfile"; then 8879 if (exit $ac_status) && test -s "$ac_outfile"; then
8860 # The compiler can only warn and ignore the option if not recognized 8880 # The compiler can only warn and ignore the option if not recognized
8861 # So say no if there are warnings other than the usual output. 8881 # So say no if there are warnings other than the usual output.
@@ -9190,11 +9210,11 @@ else
9190 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 9210 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
9191 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 9211 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
9192 -e 's:$: $lt_compiler_flag:'` 9212 -e 's:$: $lt_compiler_flag:'`
9193 (eval echo "\"\$as_me:9193: $lt_compile\"" >&5) 9213 (eval echo "\"\$as_me:9213: $lt_compile\"" >&5)
9194 (eval "$lt_compile" 2>conftest.err) 9214 (eval "$lt_compile" 2>conftest.err)
9195 ac_status=$? 9215 ac_status=$?
9196 cat conftest.err >&5 9216 cat conftest.err >&5
9197 echo "$as_me:9197: \$? = $ac_status" >&5 9217 echo "$as_me:9217: \$? = $ac_status" >&5
9198 if (exit $ac_status) && test -s "$ac_outfile"; then 9218 if (exit $ac_status) && test -s "$ac_outfile"; then
9199 # The compiler can only warn and ignore the option if not recognized 9219 # The compiler can only warn and ignore the option if not recognized
9200 # So say no if there are warnings other than the usual output. 9220 # So say no if there are warnings other than the usual output.
@@ -9295,11 +9315,11 @@ else
9295 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 9315 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
9296 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 9316 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
9297 -e 's:$: $lt_compiler_flag:'` 9317 -e 's:$: $lt_compiler_flag:'`
9298 (eval echo "\"\$as_me:9298: $lt_compile\"" >&5) 9318 (eval echo "\"\$as_me:9318: $lt_compile\"" >&5)
9299 (eval "$lt_compile" 2>out/conftest.err) 9319 (eval "$lt_compile" 2>out/conftest.err)
9300 ac_status=$? 9320 ac_status=$?
9301 cat out/conftest.err >&5 9321 cat out/conftest.err >&5
9302 echo "$as_me:9302: \$? = $ac_status" >&5 9322 echo "$as_me:9322: \$? = $ac_status" >&5
9303 if (exit $ac_status) && test -s out/conftest2.$ac_objext 9323 if (exit $ac_status) && test -s out/conftest2.$ac_objext
9304 then 9324 then
9305 # The compiler can only warn and ignore the option if not recognized 9325 # The compiler can only warn and ignore the option if not recognized
@@ -9350,11 +9370,11 @@ else
9350 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 9370 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
9351 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 9371 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
9352 -e 's:$: $lt_compiler_flag:'` 9372 -e 's:$: $lt_compiler_flag:'`
9353 (eval echo "\"\$as_me:9353: $lt_compile\"" >&5) 9373 (eval echo "\"\$as_me:9373: $lt_compile\"" >&5)
9354 (eval "$lt_compile" 2>out/conftest.err) 9374 (eval "$lt_compile" 2>out/conftest.err)
9355 ac_status=$? 9375 ac_status=$?
9356 cat out/conftest.err >&5 9376 cat out/conftest.err >&5
9357 echo "$as_me:9357: \$? = $ac_status" >&5 9377 echo "$as_me:9377: \$? = $ac_status" >&5
9358 if (exit $ac_status) && test -s out/conftest2.$ac_objext 9378 if (exit $ac_status) && test -s out/conftest2.$ac_objext
9359 then 9379 then
9360 # The compiler can only warn and ignore the option if not recognized 9380 # The compiler can only warn and ignore the option if not recognized
@@ -11734,7 +11754,7 @@ else
11734 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 11754 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
11735 lt_status=$lt_dlunknown 11755 lt_status=$lt_dlunknown
11736 cat > conftest.$ac_ext <<_LT_EOF 11756 cat > conftest.$ac_ext <<_LT_EOF
11737#line 11737 "configure" 11757#line 11757 "configure"
11738#include "confdefs.h" 11758#include "confdefs.h"
11739 11759
11740#if HAVE_DLFCN_H 11760#if HAVE_DLFCN_H
@@ -11830,7 +11850,7 @@ else
11830 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 11850 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
11831 lt_status=$lt_dlunknown 11851 lt_status=$lt_dlunknown
11832 cat > conftest.$ac_ext <<_LT_EOF 11852 cat > conftest.$ac_ext <<_LT_EOF
11833#line 11833 "configure" 11853#line 11853 "configure"
11834#include "confdefs.h" 11854#include "confdefs.h"
11835 11855
11836#if HAVE_DLFCN_H 11856#if HAVE_DLFCN_H
@@ -12074,15 +12094,15 @@ _ACEOF
12074 12094
12075 12095
12076cat >>confdefs.h <<_ACEOF 12096cat >>confdefs.h <<_ACEOF
12077#define VMIC 0 12097#define VMIC 99
12078_ACEOF 12098_ACEOF
12079 12099
12080 12100
12081cat >>confdefs.h <<_ACEOF 12101cat >>confdefs.h <<_ACEOF
12082#define VREV 0 12102#define VREV 67344
12083_ACEOF 12103_ACEOF
12084 12104
12085version_info="2:0:1" 12105version_info="2:99:1"
12086release_info="" 12106release_info=""
12087 12107
12088 12108
@@ -12101,7 +12121,7 @@ case "$host_os" in
12101 MODULE_ARCH="$host_os-$host_cpu" 12121 MODULE_ARCH="$host_os-$host_cpu"
12102 ;; 12122 ;;
12103 *) 12123 *)
12104 MODULE_ARCH="$host_os-$host_cpu-1.1.0" 12124 MODULE_ARCH="$host_os-$host_cpu-1.1.99"
12105 ;; 12125 ;;
12106esac 12126esac
12107 12127
@@ -12136,6 +12156,8 @@ want_evas_engine_direct3d="no"
12136want_evas_engine_fb="no" 12156want_evas_engine_fb="no"
12137want_evas_engine_directfb="no" 12157want_evas_engine_directfb="no"
12138want_evas_engine_psl1ght="no" 12158want_evas_engine_psl1ght="no"
12159want_evas_engine_wayland_shm="no"
12160want_evas_engine_wayland_egl="no"
12139 12161
12140want_evas_image_loader_edb="yes" 12162want_evas_image_loader_edb="yes"
12141want_evas_image_loader_eet="yes" 12163want_evas_image_loader_eet="yes"
@@ -12182,6 +12204,8 @@ case "$host_os" in
12182 want_evas_engine_software_xcb="no" 12204 want_evas_engine_software_xcb="no"
12183 want_evas_engine_gl_xcb="no" 12205 want_evas_engine_gl_xcb="no"
12184 want_evas_engine_fb="auto" 12206 want_evas_engine_fb="auto"
12207 want_evas_engine_wayland_shm="auto"
12208 want_evas_engine_wayland_egl="auto"
12185### no - not ready/usable/complete 12209### no - not ready/usable/complete
12186# want_evas_engine_software_8_x11="auto" 12210# want_evas_engine_software_8_x11="auto"
12187# want_evas_engine_software_16_x11="auto" 12211# want_evas_engine_software_16_x11="auto"
@@ -13582,7 +13606,7 @@ else
13582 # Broken: fails on valid input. 13606 # Broken: fails on valid input.
13583continue 13607continue
13584fi 13608fi
13585rm -f conftest.err conftest.i conftest.$ac_ext 13609rm -f conftest.err conftest.$ac_ext
13586 13610
13587 # OK, works on sane cases. Now check whether nonexistent headers 13611 # OK, works on sane cases. Now check whether nonexistent headers
13588 # can be detected and how. 13612 # can be detected and how.
@@ -13598,11 +13622,11 @@ else
13598ac_preproc_ok=: 13622ac_preproc_ok=:
13599break 13623break
13600fi 13624fi
13601rm -f conftest.err conftest.i conftest.$ac_ext 13625rm -f conftest.err conftest.$ac_ext
13602 13626
13603done 13627done
13604# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 13628# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
13605rm -f conftest.i conftest.err conftest.$ac_ext 13629rm -f conftest.err conftest.$ac_ext
13606if $ac_preproc_ok; then : 13630if $ac_preproc_ok; then :
13607 break 13631 break
13608fi 13632fi
@@ -13641,7 +13665,7 @@ else
13641 # Broken: fails on valid input. 13665 # Broken: fails on valid input.
13642continue 13666continue
13643fi 13667fi
13644rm -f conftest.err conftest.i conftest.$ac_ext 13668rm -f conftest.err conftest.$ac_ext
13645 13669
13646 # OK, works on sane cases. Now check whether nonexistent headers 13670 # OK, works on sane cases. Now check whether nonexistent headers
13647 # can be detected and how. 13671 # can be detected and how.
@@ -13657,11 +13681,11 @@ else
13657ac_preproc_ok=: 13681ac_preproc_ok=:
13658break 13682break
13659fi 13683fi
13660rm -f conftest.err conftest.i conftest.$ac_ext 13684rm -f conftest.err conftest.$ac_ext
13661 13685
13662done 13686done
13663# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 13687# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
13664rm -f conftest.i conftest.err conftest.$ac_ext 13688rm -f conftest.err conftest.$ac_ext
13665if $ac_preproc_ok; then : 13689if $ac_preproc_ok; then :
13666 13690
13667else 13691else
@@ -13890,7 +13914,7 @@ else
13890 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 13914 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13891$as_echo "no" >&6; } 13915$as_echo "no" >&6; }
13892fi 13916fi
13893test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 13917test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
13894{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 13918{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
13895$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 13919$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
13896if test "${lt_cv_prog_gnu_ld+set}" = set; then : 13920if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -15431,11 +15455,11 @@ else
15431 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 15455 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
15432 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 15456 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
15433 -e 's:$: $lt_compiler_flag:'` 15457 -e 's:$: $lt_compiler_flag:'`
15434 (eval echo "\"\$as_me:15434: $lt_compile\"" >&5) 15458 (eval echo "\"\$as_me:15458: $lt_compile\"" >&5)
15435 (eval "$lt_compile" 2>conftest.err) 15459 (eval "$lt_compile" 2>conftest.err)
15436 ac_status=$? 15460 ac_status=$?
15437 cat conftest.err >&5 15461 cat conftest.err >&5
15438 echo "$as_me:15438: \$? = $ac_status" >&5 15462 echo "$as_me:15462: \$? = $ac_status" >&5
15439 if (exit $ac_status) && test -s "$ac_outfile"; then 15463 if (exit $ac_status) && test -s "$ac_outfile"; then
15440 # The compiler can only warn and ignore the option if not recognized 15464 # The compiler can only warn and ignore the option if not recognized
15441 # So say no if there are warnings other than the usual output. 15465 # So say no if there are warnings other than the usual output.
@@ -15530,11 +15554,11 @@ else
15530 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 15554 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
15531 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 15555 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
15532 -e 's:$: $lt_compiler_flag:'` 15556 -e 's:$: $lt_compiler_flag:'`
15533 (eval echo "\"\$as_me:15533: $lt_compile\"" >&5) 15557 (eval echo "\"\$as_me:15557: $lt_compile\"" >&5)
15534 (eval "$lt_compile" 2>out/conftest.err) 15558 (eval "$lt_compile" 2>out/conftest.err)
15535 ac_status=$? 15559 ac_status=$?
15536 cat out/conftest.err >&5 15560 cat out/conftest.err >&5
15537 echo "$as_me:15537: \$? = $ac_status" >&5 15561 echo "$as_me:15561: \$? = $ac_status" >&5
15538 if (exit $ac_status) && test -s out/conftest2.$ac_objext 15562 if (exit $ac_status) && test -s out/conftest2.$ac_objext
15539 then 15563 then
15540 # The compiler can only warn and ignore the option if not recognized 15564 # The compiler can only warn and ignore the option if not recognized
@@ -15582,11 +15606,11 @@ else
15582 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 15606 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
15583 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 15607 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
15584 -e 's:$: $lt_compiler_flag:'` 15608 -e 's:$: $lt_compiler_flag:'`
15585 (eval echo "\"\$as_me:15585: $lt_compile\"" >&5) 15609 (eval echo "\"\$as_me:15609: $lt_compile\"" >&5)
15586 (eval "$lt_compile" 2>out/conftest.err) 15610 (eval "$lt_compile" 2>out/conftest.err)
15587 ac_status=$? 15611 ac_status=$?
15588 cat out/conftest.err >&5 15612 cat out/conftest.err >&5
15589 echo "$as_me:15589: \$? = $ac_status" >&5 15613 echo "$as_me:15613: \$? = $ac_status" >&5
15590 if (exit $ac_status) && test -s out/conftest2.$ac_objext 15614 if (exit $ac_status) && test -s out/conftest2.$ac_objext
15591 then 15615 then
15592 # The compiler can only warn and ignore the option if not recognized 15616 # The compiler can only warn and ignore the option if not recognized
@@ -16830,8 +16854,8 @@ fi
16830 16854
16831test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 16855test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
16832$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 16856$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
16833as_fn_error $? "no acceptable C compiler found in \$PATH 16857as_fn_error "no acceptable C compiler found in \$PATH
16834See \`config.log' for more details" "$LINENO" 5 ; } 16858See \`config.log' for more details." "$LINENO" 5; }
16835 16859
16836# Provide some information about the compiler. 16860# Provide some information about the compiler.
16837$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 16861$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -17201,10 +17225,6 @@ fi
17201# pkg-config 17225# pkg-config
17202 17226
17203 17227
17204
17205
17206
17207
17208if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 17228if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
17209 if test -n "$ac_tool_prefix"; then 17229 if test -n "$ac_tool_prefix"; then
17210 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. 17230 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -17317,6 +17337,7 @@ $as_echo "yes" >&6; }
17317$as_echo "no" >&6; } 17337$as_echo "no" >&6; }
17318 PKG_CONFIG="" 17338 PKG_CONFIG=""
17319 fi 17339 fi
17340
17320fi 17341fi
17321 17342
17322# Check whether pkg-config supports Requires.private 17343# Check whether pkg-config supports Requires.private
@@ -17498,10 +17519,11 @@ pkg_failed=no
17498{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5 17519{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5
17499$as_echo_n "checking for EVIL... " >&6; } 17520$as_echo_n "checking for EVIL... " >&6; }
17500 17521
17501if test -n "$EVIL_CFLAGS"; then 17522if test -n "$PKG_CONFIG"; then
17502 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS" 17523 if test -n "$EVIL_CFLAGS"; then
17503 elif test -n "$PKG_CONFIG"; then 17524 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS"
17504 if test -n "$PKG_CONFIG" && \ 17525 else
17526 if test -n "$PKG_CONFIG" && \
17505 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 17527 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
17506 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 17528 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
17507 ac_status=$? 17529 ac_status=$?
@@ -17511,13 +17533,15 @@ if test -n "$EVIL_CFLAGS"; then
17511else 17533else
17512 pkg_failed=yes 17534 pkg_failed=yes
17513fi 17535fi
17514 else 17536 fi
17515 pkg_failed=untried 17537else
17538 pkg_failed=untried
17516fi 17539fi
17517if test -n "$EVIL_LIBS"; then 17540if test -n "$PKG_CONFIG"; then
17518 pkg_cv_EVIL_LIBS="$EVIL_LIBS" 17541 if test -n "$EVIL_LIBS"; then
17519 elif test -n "$PKG_CONFIG"; then 17542 pkg_cv_EVIL_LIBS="$EVIL_LIBS"
17520 if test -n "$PKG_CONFIG" && \ 17543 else
17544 if test -n "$PKG_CONFIG" && \
17521 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 17545 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
17522 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 17546 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
17523 ac_status=$? 17547 ac_status=$?
@@ -17527,15 +17551,14 @@ if test -n "$EVIL_LIBS"; then
17527else 17551else
17528 pkg_failed=yes 17552 pkg_failed=yes
17529fi 17553fi
17530 else 17554 fi
17531 pkg_failed=untried 17555else
17556 pkg_failed=untried
17532fi 17557fi
17533 17558
17534 17559
17535 17560
17536if test $pkg_failed = yes; then 17561if test $pkg_failed = yes; then
17537 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17538$as_echo "no" >&6; }
17539 17562
17540if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17563if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17541 _pkg_short_errors_supported=yes 17564 _pkg_short_errors_supported=yes
@@ -17543,14 +17566,14 @@ else
17543 _pkg_short_errors_supported=no 17566 _pkg_short_errors_supported=no
17544fi 17567fi
17545 if test $_pkg_short_errors_supported = yes; then 17568 if test $_pkg_short_errors_supported = yes; then
17546 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "evil >= 1.0.0" 2>&1` 17569 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evil >= 1.0.0"`
17547 else 17570 else
17548 EVIL_PKG_ERRORS=`$PKG_CONFIG --print-errors "evil >= 1.0.0" 2>&1` 17571 EVIL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evil >= 1.0.0"`
17549 fi 17572 fi
17550 # Put the nasty error message in config.log where it belongs 17573 # Put the nasty error message in config.log where it belongs
17551 echo "$EVIL_PKG_ERRORS" >&5 17574 echo "$EVIL_PKG_ERRORS" >&5
17552 17575
17553 as_fn_error $? "Package requirements (evil >= 1.0.0) were not met: 17576 as_fn_error "Package requirements (evil >= 1.0.0) were not met:
17554 17577
17555$EVIL_PKG_ERRORS 17578$EVIL_PKG_ERRORS
17556 17579
@@ -17559,13 +17582,12 @@ installed software in a non-standard prefix.
17559 17582
17560Alternatively, you may set the environment variables EVIL_CFLAGS 17583Alternatively, you may set the environment variables EVIL_CFLAGS
17561and EVIL_LIBS to avoid the need to call pkg-config. 17584and EVIL_LIBS to avoid the need to call pkg-config.
17562See the pkg-config man page for more details." "$LINENO" 5 17585See the pkg-config man page for more details.
17586" "$LINENO" 5
17563elif test $pkg_failed = untried; then 17587elif test $pkg_failed = untried; then
17564 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17565$as_echo "no" >&6; }
17566 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 17588 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
17567$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 17589$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
17568as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 17590as_fn_error "The pkg-config script could not be found or is too old. Make sure it
17569is in your PATH or set the PKG_CONFIG environment variable to the full 17591is in your PATH or set the PKG_CONFIG environment variable to the full
17570path to pkg-config. 17592path to pkg-config.
17571 17593
@@ -17574,13 +17596,13 @@ and EVIL_LIBS to avoid the need to call pkg-config.
17574See the pkg-config man page for more details. 17596See the pkg-config man page for more details.
17575 17597
17576To get pkg-config, see <http://pkg-config.freedesktop.org/>. 17598To get pkg-config, see <http://pkg-config.freedesktop.org/>.
17577See \`config.log' for more details" "$LINENO" 5 ; } 17599See \`config.log' for more details." "$LINENO" 5; }
17578else 17600else
17579 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS 17601 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS
17580 EVIL_LIBS=$pkg_cv_EVIL_LIBS 17602 EVIL_LIBS=$pkg_cv_EVIL_LIBS
17581 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 17603 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
17582$as_echo "yes" >&6; } 17604$as_echo "yes" >&6; }
17583 17605 :
17584fi 17606fi
17585 17607
17586$as_echo "#define HAVE_EVIL 1" >>confdefs.h 17608$as_echo "#define HAVE_EVIL 1" >>confdefs.h
@@ -17597,10 +17619,11 @@ pkg_failed=no
17597{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5 17619{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5
17598$as_echo_n "checking for EINA... " >&6; } 17620$as_echo_n "checking for EINA... " >&6; }
17599 17621
17600if test -n "$EINA_CFLAGS"; then 17622if test -n "$PKG_CONFIG"; then
17601 pkg_cv_EINA_CFLAGS="$EINA_CFLAGS" 17623 if test -n "$EINA_CFLAGS"; then
17602 elif test -n "$PKG_CONFIG"; then 17624 pkg_cv_EINA_CFLAGS="$EINA_CFLAGS"
17603 if test -n "$PKG_CONFIG" && \ 17625 else
17626 if test -n "$PKG_CONFIG" && \
17604 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5 17627 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5
17605 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5 17628 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5
17606 ac_status=$? 17629 ac_status=$?
@@ -17610,13 +17633,15 @@ if test -n "$EINA_CFLAGS"; then
17610else 17633else
17611 pkg_failed=yes 17634 pkg_failed=yes
17612fi 17635fi
17613 else 17636 fi
17614 pkg_failed=untried 17637else
17638 pkg_failed=untried
17615fi 17639fi
17616if test -n "$EINA_LIBS"; then 17640if test -n "$PKG_CONFIG"; then
17617 pkg_cv_EINA_LIBS="$EINA_LIBS" 17641 if test -n "$EINA_LIBS"; then
17618 elif test -n "$PKG_CONFIG"; then 17642 pkg_cv_EINA_LIBS="$EINA_LIBS"
17619 if test -n "$PKG_CONFIG" && \ 17643 else
17644 if test -n "$PKG_CONFIG" && \
17620 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5 17645 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5
17621 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5 17646 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5
17622 ac_status=$? 17647 ac_status=$?
@@ -17626,15 +17651,14 @@ if test -n "$EINA_LIBS"; then
17626else 17651else
17627 pkg_failed=yes 17652 pkg_failed=yes
17628fi 17653fi
17629 else 17654 fi
17630 pkg_failed=untried 17655else
17656 pkg_failed=untried
17631fi 17657fi
17632 17658
17633 17659
17634 17660
17635if test $pkg_failed = yes; then 17661if test $pkg_failed = yes; then
17636 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17637$as_echo "no" >&6; }
17638 17662
17639if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17663if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17640 _pkg_short_errors_supported=yes 17664 _pkg_short_errors_supported=yes
@@ -17642,14 +17666,14 @@ else
17642 _pkg_short_errors_supported=no 17666 _pkg_short_errors_supported=no
17643fi 17667fi
17644 if test $_pkg_short_errors_supported = yes; then 17668 if test $_pkg_short_errors_supported = yes; then
17645 EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eina >= 1.1.0" 2>&1` 17669 EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eina >= 1.1.0"`
17646 else 17670 else
17647 EINA_PKG_ERRORS=`$PKG_CONFIG --print-errors "eina >= 1.1.0" 2>&1` 17671 EINA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eina >= 1.1.0"`
17648 fi 17672 fi
17649 # Put the nasty error message in config.log where it belongs 17673 # Put the nasty error message in config.log where it belongs
17650 echo "$EINA_PKG_ERRORS" >&5 17674 echo "$EINA_PKG_ERRORS" >&5
17651 17675
17652 as_fn_error $? "Package requirements (eina >= 1.1.0) were not met: 17676 as_fn_error "Package requirements (eina >= 1.1.0) were not met:
17653 17677
17654$EINA_PKG_ERRORS 17678$EINA_PKG_ERRORS
17655 17679
@@ -17658,13 +17682,12 @@ installed software in a non-standard prefix.
17658 17682
17659Alternatively, you may set the environment variables EINA_CFLAGS 17683Alternatively, you may set the environment variables EINA_CFLAGS
17660and EINA_LIBS to avoid the need to call pkg-config. 17684and EINA_LIBS to avoid the need to call pkg-config.
17661See the pkg-config man page for more details." "$LINENO" 5 17685See the pkg-config man page for more details.
17686" "$LINENO" 5
17662elif test $pkg_failed = untried; then 17687elif test $pkg_failed = untried; then
17663 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17664$as_echo "no" >&6; }
17665 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 17688 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
17666$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 17689$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
17667as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 17690as_fn_error "The pkg-config script could not be found or is too old. Make sure it
17668is in your PATH or set the PKG_CONFIG environment variable to the full 17691is in your PATH or set the PKG_CONFIG environment variable to the full
17669path to pkg-config. 17692path to pkg-config.
17670 17693
@@ -17673,13 +17696,13 @@ and EINA_LIBS to avoid the need to call pkg-config.
17673See the pkg-config man page for more details. 17696See the pkg-config man page for more details.
17674 17697
17675To get pkg-config, see <http://pkg-config.freedesktop.org/>. 17698To get pkg-config, see <http://pkg-config.freedesktop.org/>.
17676See \`config.log' for more details" "$LINENO" 5 ; } 17699See \`config.log' for more details." "$LINENO" 5; }
17677else 17700else
17678 EINA_CFLAGS=$pkg_cv_EINA_CFLAGS 17701 EINA_CFLAGS=$pkg_cv_EINA_CFLAGS
17679 EINA_LIBS=$pkg_cv_EINA_LIBS 17702 EINA_LIBS=$pkg_cv_EINA_LIBS
17680 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 17703 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
17681$as_echo "yes" >&6; } 17704$as_echo "yes" >&6; }
17682 17705 :
17683fi 17706fi
17684CPPFLAGS_SAVE="$CPPFLAGS" 17707CPPFLAGS_SAVE="$CPPFLAGS"
17685CPPFLAGS="$CPPFLAGS $EINA_CFLAGS" 17708CPPFLAGS="$CPPFLAGS $EINA_CFLAGS"
@@ -17699,8 +17722,9 @@ else
17699 if test "$ac_cv_type_Eina_Unicode" = yes; then 17722 if test "$ac_cv_type_Eina_Unicode" = yes; then
17700 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 17723 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
17701$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 17724$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
17702as_fn_error 77 "cannot compute sizeof (Eina_Unicode) 17725{ as_fn_set_status 77
17703See \`config.log' for more details" "$LINENO" 5 ; } 17726as_fn_error "cannot compute sizeof (Eina_Unicode)
17727See \`config.log' for more details." "$LINENO" 5; }; }
17704 else 17728 else
17705 ac_cv_sizeof_Eina_Unicode=0 17729 ac_cv_sizeof_Eina_Unicode=0
17706 fi 17730 fi
@@ -17725,10 +17749,11 @@ pkg_failed=no
17725{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FREETYPE" >&5 17749{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FREETYPE" >&5
17726$as_echo_n "checking for FREETYPE... " >&6; } 17750$as_echo_n "checking for FREETYPE... " >&6; }
17727 17751
17728if test -n "$FREETYPE_CFLAGS"; then 17752if test -n "$PKG_CONFIG"; then
17729 pkg_cv_FREETYPE_CFLAGS="$FREETYPE_CFLAGS" 17753 if test -n "$FREETYPE_CFLAGS"; then
17730 elif test -n "$PKG_CONFIG"; then 17754 pkg_cv_FREETYPE_CFLAGS="$FREETYPE_CFLAGS"
17731 if test -n "$PKG_CONFIG" && \ 17755 else
17756 if test -n "$PKG_CONFIG" && \
17732 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= 9.3.0\""; } >&5 17757 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= 9.3.0\""; } >&5
17733 ($PKG_CONFIG --exists --print-errors "freetype2 >= 9.3.0") 2>&5 17758 ($PKG_CONFIG --exists --print-errors "freetype2 >= 9.3.0") 2>&5
17734 ac_status=$? 17759 ac_status=$?
@@ -17738,13 +17763,15 @@ if test -n "$FREETYPE_CFLAGS"; then
17738else 17763else
17739 pkg_failed=yes 17764 pkg_failed=yes
17740fi 17765fi
17741 else 17766 fi
17742 pkg_failed=untried 17767else
17768 pkg_failed=untried
17743fi 17769fi
17744if test -n "$FREETYPE_LIBS"; then 17770if test -n "$PKG_CONFIG"; then
17745 pkg_cv_FREETYPE_LIBS="$FREETYPE_LIBS" 17771 if test -n "$FREETYPE_LIBS"; then
17746 elif test -n "$PKG_CONFIG"; then 17772 pkg_cv_FREETYPE_LIBS="$FREETYPE_LIBS"
17747 if test -n "$PKG_CONFIG" && \ 17773 else
17774 if test -n "$PKG_CONFIG" && \
17748 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= 9.3.0\""; } >&5 17775 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= 9.3.0\""; } >&5
17749 ($PKG_CONFIG --exists --print-errors "freetype2 >= 9.3.0") 2>&5 17776 ($PKG_CONFIG --exists --print-errors "freetype2 >= 9.3.0") 2>&5
17750 ac_status=$? 17777 ac_status=$?
@@ -17754,15 +17781,14 @@ if test -n "$FREETYPE_LIBS"; then
17754else 17781else
17755 pkg_failed=yes 17782 pkg_failed=yes
17756fi 17783fi
17757 else 17784 fi
17758 pkg_failed=untried 17785else
17786 pkg_failed=untried
17759fi 17787fi
17760 17788
17761 17789
17762 17790
17763if test $pkg_failed = yes; then 17791if test $pkg_failed = yes; then
17764 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17765$as_echo "no" >&6; }
17766 17792
17767if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17793if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17768 _pkg_short_errors_supported=yes 17794 _pkg_short_errors_supported=yes
@@ -17770,14 +17796,14 @@ else
17770 _pkg_short_errors_supported=no 17796 _pkg_short_errors_supported=no
17771fi 17797fi
17772 if test $_pkg_short_errors_supported = yes; then 17798 if test $_pkg_short_errors_supported = yes; then
17773 FREETYPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "freetype2 >= 9.3.0" 2>&1` 17799 FREETYPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "freetype2 >= 9.3.0"`
17774 else 17800 else
17775 FREETYPE_PKG_ERRORS=`$PKG_CONFIG --print-errors "freetype2 >= 9.3.0" 2>&1` 17801 FREETYPE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "freetype2 >= 9.3.0"`
17776 fi 17802 fi
17777 # Put the nasty error message in config.log where it belongs 17803 # Put the nasty error message in config.log where it belongs
17778 echo "$FREETYPE_PKG_ERRORS" >&5 17804 echo "$FREETYPE_PKG_ERRORS" >&5
17779 17805
17780 as_fn_error $? "Package requirements (freetype2 >= 9.3.0) were not met: 17806 as_fn_error "Package requirements (freetype2 >= 9.3.0) were not met:
17781 17807
17782$FREETYPE_PKG_ERRORS 17808$FREETYPE_PKG_ERRORS
17783 17809
@@ -17786,13 +17812,12 @@ installed software in a non-standard prefix.
17786 17812
17787Alternatively, you may set the environment variables FREETYPE_CFLAGS 17813Alternatively, you may set the environment variables FREETYPE_CFLAGS
17788and FREETYPE_LIBS to avoid the need to call pkg-config. 17814and FREETYPE_LIBS to avoid the need to call pkg-config.
17789See the pkg-config man page for more details." "$LINENO" 5 17815See the pkg-config man page for more details.
17816" "$LINENO" 5
17790elif test $pkg_failed = untried; then 17817elif test $pkg_failed = untried; then
17791 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17792$as_echo "no" >&6; }
17793 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 17818 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
17794$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 17819$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
17795as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 17820as_fn_error "The pkg-config script could not be found or is too old. Make sure it
17796is in your PATH or set the PKG_CONFIG environment variable to the full 17821is in your PATH or set the PKG_CONFIG environment variable to the full
17797path to pkg-config. 17822path to pkg-config.
17798 17823
@@ -17801,13 +17826,13 @@ and FREETYPE_LIBS to avoid the need to call pkg-config.
17801See the pkg-config man page for more details. 17826See the pkg-config man page for more details.
17802 17827
17803To get pkg-config, see <http://pkg-config.freedesktop.org/>. 17828To get pkg-config, see <http://pkg-config.freedesktop.org/>.
17804See \`config.log' for more details" "$LINENO" 5 ; } 17829See \`config.log' for more details." "$LINENO" 5; }
17805else 17830else
17806 FREETYPE_CFLAGS=$pkg_cv_FREETYPE_CFLAGS 17831 FREETYPE_CFLAGS=$pkg_cv_FREETYPE_CFLAGS
17807 FREETYPE_LIBS=$pkg_cv_FREETYPE_LIBS 17832 FREETYPE_LIBS=$pkg_cv_FREETYPE_LIBS
17808 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 17833 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
17809$as_echo "yes" >&6; } 17834$as_echo "yes" >&6; }
17810 17835 :
17811fi 17836fi
17812 17837
17813requirement_evas="freetype2 eina >= 1.1.0 ${requirement_evas}" 17838requirement_evas="freetype2 eina >= 1.1.0 ${requirement_evas}"
@@ -17835,10 +17860,11 @@ pkg_failed=no
17835{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FONTCONFIG" >&5 17860{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FONTCONFIG" >&5
17836$as_echo_n "checking for FONTCONFIG... " >&6; } 17861$as_echo_n "checking for FONTCONFIG... " >&6; }
17837 17862
17838if test -n "$FONTCONFIG_CFLAGS"; then 17863if test -n "$PKG_CONFIG"; then
17839 pkg_cv_FONTCONFIG_CFLAGS="$FONTCONFIG_CFLAGS" 17864 if test -n "$FONTCONFIG_CFLAGS"; then
17840 elif test -n "$PKG_CONFIG"; then 17865 pkg_cv_FONTCONFIG_CFLAGS="$FONTCONFIG_CFLAGS"
17841 if test -n "$PKG_CONFIG" && \ 17866 else
17867 if test -n "$PKG_CONFIG" && \
17842 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fontconfig >= 2.5.0\""; } >&5 17868 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fontconfig >= 2.5.0\""; } >&5
17843 ($PKG_CONFIG --exists --print-errors "fontconfig >= 2.5.0") 2>&5 17869 ($PKG_CONFIG --exists --print-errors "fontconfig >= 2.5.0") 2>&5
17844 ac_status=$? 17870 ac_status=$?
@@ -17848,13 +17874,15 @@ if test -n "$FONTCONFIG_CFLAGS"; then
17848else 17874else
17849 pkg_failed=yes 17875 pkg_failed=yes
17850fi 17876fi
17851 else 17877 fi
17852 pkg_failed=untried 17878else
17879 pkg_failed=untried
17853fi 17880fi
17854if test -n "$FONTCONFIG_LIBS"; then 17881if test -n "$PKG_CONFIG"; then
17855 pkg_cv_FONTCONFIG_LIBS="$FONTCONFIG_LIBS" 17882 if test -n "$FONTCONFIG_LIBS"; then
17856 elif test -n "$PKG_CONFIG"; then 17883 pkg_cv_FONTCONFIG_LIBS="$FONTCONFIG_LIBS"
17857 if test -n "$PKG_CONFIG" && \ 17884 else
17885 if test -n "$PKG_CONFIG" && \
17858 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fontconfig >= 2.5.0\""; } >&5 17886 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fontconfig >= 2.5.0\""; } >&5
17859 ($PKG_CONFIG --exists --print-errors "fontconfig >= 2.5.0") 2>&5 17887 ($PKG_CONFIG --exists --print-errors "fontconfig >= 2.5.0") 2>&5
17860 ac_status=$? 17888 ac_status=$?
@@ -17864,15 +17892,14 @@ if test -n "$FONTCONFIG_LIBS"; then
17864else 17892else
17865 pkg_failed=yes 17893 pkg_failed=yes
17866fi 17894fi
17867 else 17895 fi
17868 pkg_failed=untried 17896else
17897 pkg_failed=untried
17869fi 17898fi
17870 17899
17871 17900
17872 17901
17873if test $pkg_failed = yes; then 17902if test $pkg_failed = yes; then
17874 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17875$as_echo "no" >&6; }
17876 17903
17877if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17904if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17878 _pkg_short_errors_supported=yes 17905 _pkg_short_errors_supported=yes
@@ -17880,24 +17907,24 @@ else
17880 _pkg_short_errors_supported=no 17907 _pkg_short_errors_supported=no
17881fi 17908fi
17882 if test $_pkg_short_errors_supported = yes; then 17909 if test $_pkg_short_errors_supported = yes; then
17883 FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "fontconfig >= 2.5.0" 2>&1` 17910 FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "fontconfig >= 2.5.0"`
17884 else 17911 else
17885 FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --print-errors "fontconfig >= 2.5.0" 2>&1` 17912 FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "fontconfig >= 2.5.0"`
17886 fi 17913 fi
17887 # Put the nasty error message in config.log where it belongs 17914 # Put the nasty error message in config.log where it belongs
17888 echo "$FONTCONFIG_PKG_ERRORS" >&5 17915 echo "$FONTCONFIG_PKG_ERRORS" >&5
17889 17916
17917 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17918$as_echo "no" >&6; }
17890 17919
17891 if test "x${want_fontconfig}" = "xyes" -a "x${use_strict}" = "xyes" ; then 17920 if test "x${want_fontconfig}" = "xyes" -a "x${use_strict}" = "xyes" ; then
17892 as_fn_error $? "Fontconfig not found (strict dependencies checking)" "$LINENO" 5 17921 as_fn_error "Fontconfig not found (strict dependencies checking)" "$LINENO" 5
17893 fi 17922 fi
17894 17923
17895elif test $pkg_failed = untried; then 17924elif test $pkg_failed = untried; then
17896 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17897$as_echo "no" >&6; }
17898 17925
17899 if test "x${want_fontconfig}" = "xyes" -a "x${use_strict}" = "xyes" ; then 17926 if test "x${want_fontconfig}" = "xyes" -a "x${use_strict}" = "xyes" ; then
17900 as_fn_error $? "Fontconfig not found (strict dependencies checking)" "$LINENO" 5 17927 as_fn_error "Fontconfig not found (strict dependencies checking)" "$LINENO" 5
17901 fi 17928 fi
17902 17929
17903else 17930else
@@ -17972,10 +17999,11 @@ pkg_failed=no
17972{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FRIBIDI" >&5 17999{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FRIBIDI" >&5
17973$as_echo_n "checking for FRIBIDI... " >&6; } 18000$as_echo_n "checking for FRIBIDI... " >&6; }
17974 18001
17975if test -n "$FRIBIDI_CFLAGS"; then 18002if test -n "$PKG_CONFIG"; then
17976 pkg_cv_FRIBIDI_CFLAGS="$FRIBIDI_CFLAGS" 18003 if test -n "$FRIBIDI_CFLAGS"; then
17977 elif test -n "$PKG_CONFIG"; then 18004 pkg_cv_FRIBIDI_CFLAGS="$FRIBIDI_CFLAGS"
17978 if test -n "$PKG_CONFIG" && \ 18005 else
18006 if test -n "$PKG_CONFIG" && \
17979 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fribidi >= 0.19.2\""; } >&5 18007 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fribidi >= 0.19.2\""; } >&5
17980 ($PKG_CONFIG --exists --print-errors "fribidi >= 0.19.2") 2>&5 18008 ($PKG_CONFIG --exists --print-errors "fribidi >= 0.19.2") 2>&5
17981 ac_status=$? 18009 ac_status=$?
@@ -17985,13 +18013,15 @@ if test -n "$FRIBIDI_CFLAGS"; then
17985else 18013else
17986 pkg_failed=yes 18014 pkg_failed=yes
17987fi 18015fi
17988 else 18016 fi
17989 pkg_failed=untried 18017else
18018 pkg_failed=untried
17990fi 18019fi
17991if test -n "$FRIBIDI_LIBS"; then 18020if test -n "$PKG_CONFIG"; then
17992 pkg_cv_FRIBIDI_LIBS="$FRIBIDI_LIBS" 18021 if test -n "$FRIBIDI_LIBS"; then
17993 elif test -n "$PKG_CONFIG"; then 18022 pkg_cv_FRIBIDI_LIBS="$FRIBIDI_LIBS"
17994 if test -n "$PKG_CONFIG" && \ 18023 else
18024 if test -n "$PKG_CONFIG" && \
17995 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fribidi >= 0.19.2\""; } >&5 18025 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fribidi >= 0.19.2\""; } >&5
17996 ($PKG_CONFIG --exists --print-errors "fribidi >= 0.19.2") 2>&5 18026 ($PKG_CONFIG --exists --print-errors "fribidi >= 0.19.2") 2>&5
17997 ac_status=$? 18027 ac_status=$?
@@ -18001,15 +18031,14 @@ if test -n "$FRIBIDI_LIBS"; then
18001else 18031else
18002 pkg_failed=yes 18032 pkg_failed=yes
18003fi 18033fi
18004 else 18034 fi
18005 pkg_failed=untried 18035else
18036 pkg_failed=untried
18006fi 18037fi
18007 18038
18008 18039
18009 18040
18010if test $pkg_failed = yes; then 18041if test $pkg_failed = yes; then
18011 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18012$as_echo "no" >&6; }
18013 18042
18014if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 18043if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
18015 _pkg_short_errors_supported=yes 18044 _pkg_short_errors_supported=yes
@@ -18017,24 +18046,24 @@ else
18017 _pkg_short_errors_supported=no 18046 _pkg_short_errors_supported=no
18018fi 18047fi
18019 if test $_pkg_short_errors_supported = yes; then 18048 if test $_pkg_short_errors_supported = yes; then
18020 FRIBIDI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "fribidi >= 0.19.2" 2>&1` 18049 FRIBIDI_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "fribidi >= 0.19.2"`
18021 else 18050 else
18022 FRIBIDI_PKG_ERRORS=`$PKG_CONFIG --print-errors "fribidi >= 0.19.2" 2>&1` 18051 FRIBIDI_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "fribidi >= 0.19.2"`
18023 fi 18052 fi
18024 # Put the nasty error message in config.log where it belongs 18053 # Put the nasty error message in config.log where it belongs
18025 echo "$FRIBIDI_PKG_ERRORS" >&5 18054 echo "$FRIBIDI_PKG_ERRORS" >&5
18026 18055
18056 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18057$as_echo "no" >&6; }
18027 18058
18028 if test "x$want_fribidi" = "xyes" -a "x$use_strict" = "xyes" ; then 18059 if test "x$want_fribidi" = "xyes" -a "x$use_strict" = "xyes" ; then
18029 as_fn_error $? "Fribidi not found (strict dependencies checking)" "$LINENO" 5 18060 as_fn_error "Fribidi not found (strict dependencies checking)" "$LINENO" 5
18030 fi 18061 fi
18031 18062
18032elif test $pkg_failed = untried; then 18063elif test $pkg_failed = untried; then
18033 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18034$as_echo "no" >&6; }
18035 18064
18036 if test "x$want_fribidi" = "xyes" -a "x$use_strict" = "xyes" ; then 18065 if test "x$want_fribidi" = "xyes" -a "x$use_strict" = "xyes" ; then
18037 as_fn_error $? "Fribidi not found (strict dependencies checking)" "$LINENO" 5 18066 as_fn_error "Fribidi not found (strict dependencies checking)" "$LINENO" 5
18038 fi 18067 fi
18039 18068
18040else 18069else
@@ -18066,8 +18095,9 @@ else
18066 if test "$ac_cv_type_FriBidiChar" = yes; then 18095 if test "$ac_cv_type_FriBidiChar" = yes; then
18067 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 18096 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
18068$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 18097$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
18069as_fn_error 77 "cannot compute sizeof (FriBidiChar) 18098{ as_fn_set_status 77
18070See \`config.log' for more details" "$LINENO" 5 ; } 18099as_fn_error "cannot compute sizeof (FriBidiChar)
18100See \`config.log' for more details." "$LINENO" 5; }; }
18071 else 18101 else
18072 ac_cv_sizeof_FriBidiChar=0 18102 ac_cv_sizeof_FriBidiChar=0
18073 fi 18103 fi
@@ -18114,10 +18144,11 @@ pkg_failed=no
18114{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for HARFBUZZ" >&5 18144{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for HARFBUZZ" >&5
18115$as_echo_n "checking for HARFBUZZ... " >&6; } 18145$as_echo_n "checking for HARFBUZZ... " >&6; }
18116 18146
18117if test -n "$HARFBUZZ_CFLAGS"; then 18147if test -n "$PKG_CONFIG"; then
18118 pkg_cv_HARFBUZZ_CFLAGS="$HARFBUZZ_CFLAGS" 18148 if test -n "$HARFBUZZ_CFLAGS"; then
18119 elif test -n "$PKG_CONFIG"; then 18149 pkg_cv_HARFBUZZ_CFLAGS="$HARFBUZZ_CFLAGS"
18120 if test -n "$PKG_CONFIG" && \ 18150 else
18151 if test -n "$PKG_CONFIG" && \
18121 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"harfbuzz >= 0.6.0\""; } >&5 18152 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"harfbuzz >= 0.6.0\""; } >&5
18122 ($PKG_CONFIG --exists --print-errors "harfbuzz >= 0.6.0") 2>&5 18153 ($PKG_CONFIG --exists --print-errors "harfbuzz >= 0.6.0") 2>&5
18123 ac_status=$? 18154 ac_status=$?
@@ -18127,13 +18158,15 @@ if test -n "$HARFBUZZ_CFLAGS"; then
18127else 18158else
18128 pkg_failed=yes 18159 pkg_failed=yes
18129fi 18160fi
18130 else 18161 fi
18131 pkg_failed=untried 18162else
18163 pkg_failed=untried
18132fi 18164fi
18133if test -n "$HARFBUZZ_LIBS"; then 18165if test -n "$PKG_CONFIG"; then
18134 pkg_cv_HARFBUZZ_LIBS="$HARFBUZZ_LIBS" 18166 if test -n "$HARFBUZZ_LIBS"; then
18135 elif test -n "$PKG_CONFIG"; then 18167 pkg_cv_HARFBUZZ_LIBS="$HARFBUZZ_LIBS"
18136 if test -n "$PKG_CONFIG" && \ 18168 else
18169 if test -n "$PKG_CONFIG" && \
18137 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"harfbuzz >= 0.6.0\""; } >&5 18170 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"harfbuzz >= 0.6.0\""; } >&5
18138 ($PKG_CONFIG --exists --print-errors "harfbuzz >= 0.6.0") 2>&5 18171 ($PKG_CONFIG --exists --print-errors "harfbuzz >= 0.6.0") 2>&5
18139 ac_status=$? 18172 ac_status=$?
@@ -18143,15 +18176,14 @@ if test -n "$HARFBUZZ_LIBS"; then
18143else 18176else
18144 pkg_failed=yes 18177 pkg_failed=yes
18145fi 18178fi
18146 else 18179 fi
18147 pkg_failed=untried 18180else
18181 pkg_failed=untried
18148fi 18182fi
18149 18183
18150 18184
18151 18185
18152if test $pkg_failed = yes; then 18186if test $pkg_failed = yes; then
18153 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18154$as_echo "no" >&6; }
18155 18187
18156if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 18188if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
18157 _pkg_short_errors_supported=yes 18189 _pkg_short_errors_supported=yes
@@ -18159,24 +18191,24 @@ else
18159 _pkg_short_errors_supported=no 18191 _pkg_short_errors_supported=no
18160fi 18192fi
18161 if test $_pkg_short_errors_supported = yes; then 18193 if test $_pkg_short_errors_supported = yes; then
18162 HARFBUZZ_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "harfbuzz >= 0.6.0" 2>&1` 18194 HARFBUZZ_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "harfbuzz >= 0.6.0"`
18163 else 18195 else
18164 HARFBUZZ_PKG_ERRORS=`$PKG_CONFIG --print-errors "harfbuzz >= 0.6.0" 2>&1` 18196 HARFBUZZ_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "harfbuzz >= 0.6.0"`
18165 fi 18197 fi
18166 # Put the nasty error message in config.log where it belongs 18198 # Put the nasty error message in config.log where it belongs
18167 echo "$HARFBUZZ_PKG_ERRORS" >&5 18199 echo "$HARFBUZZ_PKG_ERRORS" >&5
18168 18200
18201 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18202$as_echo "no" >&6; }
18169 18203
18170 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then 18204 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then
18171 as_fn_error $? "Harfbuzz not found (strict dependencies checking)" "$LINENO" 5 18205 as_fn_error "Harfbuzz not found (strict dependencies checking)" "$LINENO" 5
18172 fi 18206 fi
18173 18207
18174elif test $pkg_failed = untried; then 18208elif test $pkg_failed = untried; then
18175 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18176$as_echo "no" >&6; }
18177 18209
18178 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then 18210 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then
18179 as_fn_error $? "Harfbuzz not found (strict dependencies checking)" "$LINENO" 5 18211 as_fn_error "Harfbuzz not found (strict dependencies checking)" "$LINENO" 5
18180 fi 18212 fi
18181 18213
18182else 18214else
@@ -18207,7 +18239,7 @@ $as_echo "#define HAVE_HARFBUZZ 1" >>confdefs.h
18207else 18239else
18208 18240
18209 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then 18241 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then
18210 as_fn_error $? "Harfbuzz-ft not found (strict dependencies checking)" "$LINENO" 5 18242 as_fn_error "Harfbuzz-ft not found (strict dependencies checking)" "$LINENO" 5
18211 fi 18243 fi
18212 have_harfbuzz="no" 18244 have_harfbuzz="no"
18213 18245
@@ -18243,10 +18275,11 @@ pkg_failed=no
18243{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PIXMAN" >&5 18275{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PIXMAN" >&5
18244$as_echo_n "checking for PIXMAN... " >&6; } 18276$as_echo_n "checking for PIXMAN... " >&6; }
18245 18277
18246if test -n "$PIXMAN_CFLAGS"; then 18278if test -n "$PKG_CONFIG"; then
18247 pkg_cv_PIXMAN_CFLAGS="$PIXMAN_CFLAGS" 18279 if test -n "$PIXMAN_CFLAGS"; then
18248 elif test -n "$PKG_CONFIG"; then 18280 pkg_cv_PIXMAN_CFLAGS="$PIXMAN_CFLAGS"
18249 if test -n "$PKG_CONFIG" && \ 18281 else
18282 if test -n "$PKG_CONFIG" && \
18250 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5 18283 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5
18251 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5 18284 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5
18252 ac_status=$? 18285 ac_status=$?
@@ -18256,13 +18289,15 @@ if test -n "$PIXMAN_CFLAGS"; then
18256else 18289else
18257 pkg_failed=yes 18290 pkg_failed=yes
18258fi 18291fi
18259 else 18292 fi
18260 pkg_failed=untried 18293else
18294 pkg_failed=untried
18261fi 18295fi
18262if test -n "$PIXMAN_LIBS"; then 18296if test -n "$PKG_CONFIG"; then
18263 pkg_cv_PIXMAN_LIBS="$PIXMAN_LIBS" 18297 if test -n "$PIXMAN_LIBS"; then
18264 elif test -n "$PKG_CONFIG"; then 18298 pkg_cv_PIXMAN_LIBS="$PIXMAN_LIBS"
18265 if test -n "$PKG_CONFIG" && \ 18299 else
18300 if test -n "$PKG_CONFIG" && \
18266 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5 18301 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5
18267 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5 18302 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5
18268 ac_status=$? 18303 ac_status=$?
@@ -18272,15 +18307,14 @@ if test -n "$PIXMAN_LIBS"; then
18272else 18307else
18273 pkg_failed=yes 18308 pkg_failed=yes
18274fi 18309fi
18275 else 18310 fi
18276 pkg_failed=untried 18311else
18312 pkg_failed=untried
18277fi 18313fi
18278 18314
18279 18315
18280 18316
18281if test $pkg_failed = yes; then 18317if test $pkg_failed = yes; then
18282 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18283$as_echo "no" >&6; }
18284 18318
18285if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 18319if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
18286 _pkg_short_errors_supported=yes 18320 _pkg_short_errors_supported=yes
@@ -18288,24 +18322,24 @@ else
18288 _pkg_short_errors_supported=no 18322 _pkg_short_errors_supported=no
18289fi 18323fi
18290 if test $_pkg_short_errors_supported = yes; then 18324 if test $_pkg_short_errors_supported = yes; then
18291 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "pixman-1" 2>&1` 18325 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "pixman-1"`
18292 else 18326 else
18293 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --print-errors "pixman-1" 2>&1` 18327 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "pixman-1"`
18294 fi 18328 fi
18295 # Put the nasty error message in config.log where it belongs 18329 # Put the nasty error message in config.log where it belongs
18296 echo "$PIXMAN_PKG_ERRORS" >&5 18330 echo "$PIXMAN_PKG_ERRORS" >&5
18297 18331
18332 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18333$as_echo "no" >&6; }
18298 18334
18299 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then 18335 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then
18300 as_fn_error $? "Pixman not found (strict dependencies checking)" "$LINENO" 5 18336 as_fn_error "Pixman not found (strict dependencies checking)" "$LINENO" 5
18301 fi 18337 fi
18302 18338
18303elif test $pkg_failed = untried; then 18339elif test $pkg_failed = untried; then
18304 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18305$as_echo "no" >&6; }
18306 18340
18307 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then 18341 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then
18308 as_fn_error $? "Pixman not found (strict dependencies checking)" "$LINENO" 5 18342 as_fn_error "Pixman not found (strict dependencies checking)" "$LINENO" 5
18309 fi 18343 fi
18310 18344
18311else 18345else
@@ -18323,6 +18357,97 @@ $as_echo "#define HAVE_PIXMAN 1" >>confdefs.h
18323fi 18357fi
18324fi 18358fi
18325 18359
18360have_pixman_font="no"
18361# Check whether --enable-pixman-font was given.
18362if test "${enable_pixman_font+set}" = set; then :
18363 enableval=$enable_pixman_font;
18364 have_pixman_font="yes"
18365
18366$as_echo "#define PIXMAN_FONT 1" >>confdefs.h
18367
18368
18369
18370fi
18371
18372
18373have_pixman_rect="no"
18374# Check whether --enable-pixman-rect was given.
18375if test "${enable_pixman_rect+set}" = set; then :
18376 enableval=$enable_pixman_rect;
18377 have_pixman_rect="yes"
18378
18379$as_echo "#define PIXMAN_RECT 1" >>confdefs.h
18380
18381
18382
18383fi
18384
18385
18386have_pixman_line="no"
18387# Check whether --enable-pixman-line was given.
18388if test "${enable_pixman_line+set}" = set; then :
18389 enableval=$enable_pixman_line;
18390 have_pixman_line="yes"
18391
18392$as_echo "#define PIXMAN_LINE 1" >>confdefs.h
18393
18394
18395
18396fi
18397
18398
18399have_pixman_poly="no"
18400# Check whether --enable-pixman-poly was given.
18401if test "${enable_pixman_poly+set}" = set; then :
18402 enableval=$enable_pixman_poly;
18403 have_pixman_poly="yes"
18404
18405$as_echo "#define PIXMAN_POLY 1" >>confdefs.h
18406
18407
18408
18409fi
18410
18411
18412have_pixman_image="no"
18413# Check whether --enable-pixman-image was given.
18414if test "${enable_pixman_image+set}" = set; then :
18415 enableval=$enable_pixman_image;
18416 have_pixman_image="yes"
18417
18418$as_echo "#define PIXMAN_IMAGE 1" >>confdefs.h
18419
18420
18421
18422fi
18423
18424
18425have_pixman_image_scale_sample="no"
18426# Check whether --enable-pixman-image-scale-sample was given.
18427if test "${enable_pixman_image_scale_sample+set}" = set; then :
18428 enableval=$enable_pixman_image_scale_sample;
18429 have_pixman_image_scale_sample="yes"
18430
18431$as_echo "#define PIXMAN_IMAGE_SCALE_SAMPLE 1" >>confdefs.h
18432
18433
18434
18435fi
18436
18437
18438have_tile_rotate="no"
18439# Check whether --enable-tile-rotate was given.
18440if test "${enable_tile_rotate+set}" = set; then :
18441 enableval=$enable_tile_rotate;
18442 have_tile_rotate="yes"
18443
18444$as_echo "#define TILE_ROTATE 1" >>confdefs.h
18445
18446
18447
18448fi
18449
18450
18326### Checks for header files 18451### Checks for header files
18327{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 18452{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
18328$as_echo_n "checking for ANSI C header files... " >&6; } 18453$as_echo_n "checking for ANSI C header files... " >&6; }
@@ -18436,11 +18561,12 @@ $as_echo "#define STDC_HEADERS 1" >>confdefs.h
18436 18561
18437fi 18562fi
18438 18563
18439for ac_header in unistd.h stdint.h sys/param.h netinet/in.h 18564for ac_header in unistd.h stdint.h sys/param.h netinet/in.h sys/mman.h
18440do : 18565do :
18441 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 18566 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
18442ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 18567ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
18443if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 18568eval as_val=\$$as_ac_Header
18569 if test "x$as_val" = x""yes; then :
18444 cat >>confdefs.h <<_ACEOF 18570 cat >>confdefs.h <<_ACEOF
18445#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 18571#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
18446_ACEOF 18572_ACEOF
@@ -18501,7 +18627,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
18501 18627
18502 18628
18503 18629
18504
18505### Checks for types 18630### Checks for types
18506ac_fn_c_check_type "$LINENO" "struct sigaction" "ac_cv_type_struct_sigaction" "#include <signal.h> 18631ac_fn_c_check_type "$LINENO" "struct sigaction" "ac_cv_type_struct_sigaction" "#include <signal.h>
18507" 18632"
@@ -18820,8 +18945,8 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
18820 18945
18821 ;; #( 18946 ;; #(
18822 *) 18947 *)
18823 as_fn_error $? "unknown endianness 18948 as_fn_error "unknown endianness
18824 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; 18949 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
18825 esac 18950 esac
18826 18951
18827 case $ac_cv_prog_cc_stdc in #( 18952 case $ac_cv_prog_cc_stdc in #(
@@ -19494,7 +19619,8 @@ if test $ac_cv_os_cray = yes; then
19494 for ac_func in _getb67 GETB67 getb67; do 19619 for ac_func in _getb67 GETB67 getb67; do
19495 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 19620 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
19496ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 19621ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
19497if eval test \"x\$"$as_ac_var"\" = x"yes"; then : 19622eval as_val=\$$as_ac_var
19623 if test "x$as_val" = x""yes; then :
19498 19624
19499cat >>confdefs.h <<_ACEOF 19625cat >>confdefs.h <<_ACEOF
19500#define CRAY_STACKSEG_END $ac_func 19626#define CRAY_STACKSEG_END $ac_func
@@ -19641,7 +19767,7 @@ fi
19641if test "x$_efl_have_fnmatch" = "xyes"; then : 19767if test "x$_efl_have_fnmatch" = "xyes"; then :
19642 19768
19643else 19769else
19644 as_fn_error $? "Cannot find fnmatch()" "$LINENO" 5 19770 as_fn_error "Cannot find fnmatch()" "$LINENO" 5
19645fi 19771fi
19646 19772
19647 19773
@@ -19988,7 +20114,7 @@ if test "x$gl_flavor_gles" = "xyes"; then
19988 if test "x$eng" = "xx"; then 20114 if test "x$eng" = "xx"; then
19989 eng="" 20115 eng=""
19990 else 20116 else
19991 as_fn_error $? "Please enable just 1 OpenGL-ES flavor. Choices are: 20117 as_fn_error "Please enable just 1 OpenGL-ES flavor. Choices are:
19992 --enable-gles-variety-sgx (Most GL-ES2 GPUs with shader compiler) 20118 --enable-gles-variety-sgx (Most GL-ES2 GPUs with shader compiler)
19993 --enable-gles-variety-s3c6410 (s3c6410 with offline shader compiler) 20119 --enable-gles-variety-s3c6410 (s3c6410 with offline shader compiler)
19994 You will also need to enable the OpenGL engine for X11 with: 20120 You will also need to enable the OpenGL engine for X11 with:
@@ -20049,7 +20175,7 @@ fi
20049fi 20175fi
20050 20176
20051if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 20177if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
20052 as_fn_error $? "Buffer dependencies not found (strict dependencies checking)" "$LINENO" 5 20178 as_fn_error "Buffer dependencies not found (strict dependencies checking)" "$LINENO" 5
20053fi 20179fi
20054 20180
20055{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Buffer rendering backend will be built" >&5 20181{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Buffer rendering backend will be built" >&5
@@ -20162,7 +20288,7 @@ fi
20162fi 20288fi
20163 20289
20164if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 20290if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
20165 as_fn_error $? "Software GDI dependencies not found (strict dependencies checking)" "$LINENO" 5 20291 as_fn_error "Software GDI dependencies not found (strict dependencies checking)" "$LINENO" 5
20166fi 20292fi
20167 20293
20168{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software GDI rendering backend will be built" >&5 20294{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software GDI rendering backend will be built" >&5
@@ -20275,7 +20401,7 @@ fi
20275fi 20401fi
20276 20402
20277if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 20403if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
20278 as_fn_error $? "Software DirectDraw dependencies not found (strict dependencies checking)" "$LINENO" 5 20404 as_fn_error "Software DirectDraw dependencies not found (strict dependencies checking)" "$LINENO" 5
20279fi 20405fi
20280 20406
20281{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software DirectDraw rendering backend will be built" >&5 20407{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software DirectDraw rendering backend will be built" >&5
@@ -20367,7 +20493,8 @@ for ac_header in d3d9.h d3dx9.h
20367do : 20493do :
20368 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 20494 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
20369ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 20495ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
20370if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 20496eval as_val=\$$as_ac_Header
20497 if test "x$as_val" = x""yes; then :
20371 cat >>confdefs.h <<_ACEOF 20498 cat >>confdefs.h <<_ACEOF
20372#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 20499#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
20373_ACEOF 20500_ACEOF
@@ -20396,7 +20523,7 @@ fi
20396fi 20523fi
20397 20524
20398if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 20525if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
20399 as_fn_error $? "Direct3D dependencies not found (strict dependencies checking)" "$LINENO" 5 20526 as_fn_error "Direct3D dependencies not found (strict dependencies checking)" "$LINENO" 5
20400fi 20527fi
20401 20528
20402{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Direct3D rendering backend will be built" >&5 20529{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Direct3D rendering backend will be built" >&5
@@ -20491,10 +20618,11 @@ pkg_failed=no
20491{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5 20618{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5
20492$as_echo_n "checking for SDL... " >&6; } 20619$as_echo_n "checking for SDL... " >&6; }
20493 20620
20494if test -n "$SDL_CFLAGS"; then 20621if test -n "$PKG_CONFIG"; then
20495 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS" 20622 if test -n "$SDL_CFLAGS"; then
20496 elif test -n "$PKG_CONFIG"; then 20623 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS"
20497 if test -n "$PKG_CONFIG" && \ 20624 else
20625 if test -n "$PKG_CONFIG" && \
20498 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 20626 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
20499 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 20627 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
20500 ac_status=$? 20628 ac_status=$?
@@ -20504,13 +20632,15 @@ if test -n "$SDL_CFLAGS"; then
20504else 20632else
20505 pkg_failed=yes 20633 pkg_failed=yes
20506fi 20634fi
20507 else 20635 fi
20508 pkg_failed=untried 20636else
20637 pkg_failed=untried
20509fi 20638fi
20510if test -n "$SDL_LIBS"; then 20639if test -n "$PKG_CONFIG"; then
20511 pkg_cv_SDL_LIBS="$SDL_LIBS" 20640 if test -n "$SDL_LIBS"; then
20512 elif test -n "$PKG_CONFIG"; then 20641 pkg_cv_SDL_LIBS="$SDL_LIBS"
20513 if test -n "$PKG_CONFIG" && \ 20642 else
20643 if test -n "$PKG_CONFIG" && \
20514 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 20644 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
20515 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 20645 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
20516 ac_status=$? 20646 ac_status=$?
@@ -20520,15 +20650,14 @@ if test -n "$SDL_LIBS"; then
20520else 20650else
20521 pkg_failed=yes 20651 pkg_failed=yes
20522fi 20652fi
20523 else 20653 fi
20524 pkg_failed=untried 20654else
20655 pkg_failed=untried
20525fi 20656fi
20526 20657
20527 20658
20528 20659
20529if test $pkg_failed = yes; then 20660if test $pkg_failed = yes; then
20530 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20531$as_echo "no" >&6; }
20532 20661
20533if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20662if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20534 _pkg_short_errors_supported=yes 20663 _pkg_short_errors_supported=yes
@@ -20536,14 +20665,14 @@ else
20536 _pkg_short_errors_supported=no 20665 _pkg_short_errors_supported=no
20537fi 20666fi
20538 if test $_pkg_short_errors_supported = yes; then 20667 if test $_pkg_short_errors_supported = yes; then
20539 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "sdl >= 1.2.0" 2>&1` 20668 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sdl >= 1.2.0"`
20540 else 20669 else
20541 SDL_PKG_ERRORS=`$PKG_CONFIG --print-errors "sdl >= 1.2.0" 2>&1` 20670 SDL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sdl >= 1.2.0"`
20542 fi 20671 fi
20543 # Put the nasty error message in config.log where it belongs 20672 # Put the nasty error message in config.log where it belongs
20544 echo "$SDL_PKG_ERRORS" >&5 20673 echo "$SDL_PKG_ERRORS" >&5
20545 20674
20546 as_fn_error $? "Package requirements (sdl >= 1.2.0) were not met: 20675 as_fn_error "Package requirements (sdl >= 1.2.0) were not met:
20547 20676
20548$SDL_PKG_ERRORS 20677$SDL_PKG_ERRORS
20549 20678
@@ -20552,13 +20681,12 @@ installed software in a non-standard prefix.
20552 20681
20553Alternatively, you may set the environment variables SDL_CFLAGS 20682Alternatively, you may set the environment variables SDL_CFLAGS
20554and SDL_LIBS to avoid the need to call pkg-config. 20683and SDL_LIBS to avoid the need to call pkg-config.
20555See the pkg-config man page for more details." "$LINENO" 5 20684See the pkg-config man page for more details.
20685" "$LINENO" 5
20556elif test $pkg_failed = untried; then 20686elif test $pkg_failed = untried; then
20557 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20558$as_echo "no" >&6; }
20559 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 20687 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
20560$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 20688$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
20561as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 20689as_fn_error "The pkg-config script could not be found or is too old. Make sure it
20562is in your PATH or set the PKG_CONFIG environment variable to the full 20690is in your PATH or set the PKG_CONFIG environment variable to the full
20563path to pkg-config. 20691path to pkg-config.
20564 20692
@@ -20567,7 +20695,7 @@ and SDL_LIBS to avoid the need to call pkg-config.
20567See the pkg-config man page for more details. 20695See the pkg-config man page for more details.
20568 20696
20569To get pkg-config, see <http://pkg-config.freedesktop.org/>. 20697To get pkg-config, see <http://pkg-config.freedesktop.org/>.
20570See \`config.log' for more details" "$LINENO" 5 ; } 20698See \`config.log' for more details." "$LINENO" 5; }
20571else 20699else
20572 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS 20700 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS
20573 SDL_LIBS=$pkg_cv_SDL_LIBS 20701 SDL_LIBS=$pkg_cv_SDL_LIBS
@@ -20599,7 +20727,7 @@ fi
20599fi 20727fi
20600 20728
20601if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 20729if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
20602 as_fn_error $? "Software SDL dependencies not found (strict dependencies checking)" "$LINENO" 5 20730 as_fn_error "Software SDL dependencies not found (strict dependencies checking)" "$LINENO" 5
20603fi 20731fi
20604 20732
20605{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software SDL rendering backend will be built" >&5 20733{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software SDL rendering backend will be built" >&5
@@ -20708,7 +20836,7 @@ fi
20708fi 20836fi
20709 20837
20710if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 20838if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
20711 as_fn_error $? "PSL1GHT dependencies not found (strict dependencies checking)" "$LINENO" 5 20839 as_fn_error "PSL1GHT dependencies not found (strict dependencies checking)" "$LINENO" 5
20712fi 20840fi
20713 20841
20714{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PSL1GHT rendering backend will be built" >&5 20842{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PSL1GHT rendering backend will be built" >&5
@@ -20803,10 +20931,11 @@ pkg_failed=no
20803{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5 20931{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5
20804$as_echo_n "checking for SDL... " >&6; } 20932$as_echo_n "checking for SDL... " >&6; }
20805 20933
20806if test -n "$SDL_CFLAGS"; then 20934if test -n "$PKG_CONFIG"; then
20807 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS" 20935 if test -n "$SDL_CFLAGS"; then
20808 elif test -n "$PKG_CONFIG"; then 20936 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS"
20809 if test -n "$PKG_CONFIG" && \ 20937 else
20938 if test -n "$PKG_CONFIG" && \
20810 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 20939 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
20811 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 20940 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
20812 ac_status=$? 20941 ac_status=$?
@@ -20816,13 +20945,15 @@ if test -n "$SDL_CFLAGS"; then
20816else 20945else
20817 pkg_failed=yes 20946 pkg_failed=yes
20818fi 20947fi
20819 else 20948 fi
20820 pkg_failed=untried 20949else
20950 pkg_failed=untried
20821fi 20951fi
20822if test -n "$SDL_LIBS"; then 20952if test -n "$PKG_CONFIG"; then
20823 pkg_cv_SDL_LIBS="$SDL_LIBS" 20953 if test -n "$SDL_LIBS"; then
20824 elif test -n "$PKG_CONFIG"; then 20954 pkg_cv_SDL_LIBS="$SDL_LIBS"
20825 if test -n "$PKG_CONFIG" && \ 20955 else
20956 if test -n "$PKG_CONFIG" && \
20826 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 20957 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
20827 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 20958 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
20828 ac_status=$? 20959 ac_status=$?
@@ -20832,15 +20963,14 @@ if test -n "$SDL_LIBS"; then
20832else 20963else
20833 pkg_failed=yes 20964 pkg_failed=yes
20834fi 20965fi
20835 else 20966 fi
20836 pkg_failed=untried 20967else
20968 pkg_failed=untried
20837fi 20969fi
20838 20970
20839 20971
20840 20972
20841if test $pkg_failed = yes; then 20973if test $pkg_failed = yes; then
20842 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20843$as_echo "no" >&6; }
20844 20974
20845if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20975if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20846 _pkg_short_errors_supported=yes 20976 _pkg_short_errors_supported=yes
@@ -20848,14 +20978,14 @@ else
20848 _pkg_short_errors_supported=no 20978 _pkg_short_errors_supported=no
20849fi 20979fi
20850 if test $_pkg_short_errors_supported = yes; then 20980 if test $_pkg_short_errors_supported = yes; then
20851 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "sdl >= 1.2.0" 2>&1` 20981 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sdl >= 1.2.0"`
20852 else 20982 else
20853 SDL_PKG_ERRORS=`$PKG_CONFIG --print-errors "sdl >= 1.2.0" 2>&1` 20983 SDL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sdl >= 1.2.0"`
20854 fi 20984 fi
20855 # Put the nasty error message in config.log where it belongs 20985 # Put the nasty error message in config.log where it belongs
20856 echo "$SDL_PKG_ERRORS" >&5 20986 echo "$SDL_PKG_ERRORS" >&5
20857 20987
20858 as_fn_error $? "Package requirements (sdl >= 1.2.0) were not met: 20988 as_fn_error "Package requirements (sdl >= 1.2.0) were not met:
20859 20989
20860$SDL_PKG_ERRORS 20990$SDL_PKG_ERRORS
20861 20991
@@ -20864,13 +20994,12 @@ installed software in a non-standard prefix.
20864 20994
20865Alternatively, you may set the environment variables SDL_CFLAGS 20995Alternatively, you may set the environment variables SDL_CFLAGS
20866and SDL_LIBS to avoid the need to call pkg-config. 20996and SDL_LIBS to avoid the need to call pkg-config.
20867See the pkg-config man page for more details." "$LINENO" 5 20997See the pkg-config man page for more details.
20998" "$LINENO" 5
20868elif test $pkg_failed = untried; then 20999elif test $pkg_failed = untried; then
20869 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20870$as_echo "no" >&6; }
20871 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 21000 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
20872$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 21001$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
20873as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 21002as_fn_error "The pkg-config script could not be found or is too old. Make sure it
20874is in your PATH or set the PKG_CONFIG environment variable to the full 21003is in your PATH or set the PKG_CONFIG environment variable to the full
20875path to pkg-config. 21004path to pkg-config.
20876 21005
@@ -20879,7 +21008,7 @@ and SDL_LIBS to avoid the need to call pkg-config.
20879See the pkg-config man page for more details. 21008See the pkg-config man page for more details.
20880 21009
20881To get pkg-config, see <http://pkg-config.freedesktop.org/>. 21010To get pkg-config, see <http://pkg-config.freedesktop.org/>.
20882See \`config.log' for more details" "$LINENO" 5 ; } 21011See \`config.log' for more details." "$LINENO" 5; }
20883else 21012else
20884 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS 21013 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS
20885 SDL_LIBS=$pkg_cv_SDL_LIBS 21014 SDL_LIBS=$pkg_cv_SDL_LIBS
@@ -21040,7 +21169,7 @@ fi
21040fi 21169fi
21041 21170
21042if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21171if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21043 as_fn_error $? "OpenGL SDL dependencies not found (strict dependencies checking)" "$LINENO" 5 21172 as_fn_error "OpenGL SDL dependencies not found (strict dependencies checking)" "$LINENO" 5
21044fi 21173fi
21045 21174
21046{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL SDL rendering backend will be built" >&5 21175{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL SDL rendering backend will be built" >&5
@@ -21184,10 +21313,11 @@ pkg_failed=no
21184{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5 21313{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5
21185$as_echo_n "checking for GL_EET... " >&6; } 21314$as_echo_n "checking for GL_EET... " >&6; }
21186 21315
21187if test -n "$GL_EET_CFLAGS"; then 21316if test -n "$PKG_CONFIG"; then
21188 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS" 21317 if test -n "$GL_EET_CFLAGS"; then
21189 elif test -n "$PKG_CONFIG"; then 21318 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS"
21190 if test -n "$PKG_CONFIG" && \ 21319 else
21320 if test -n "$PKG_CONFIG" && \
21191 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 21321 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
21192 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 21322 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
21193 ac_status=$? 21323 ac_status=$?
@@ -21197,13 +21327,15 @@ if test -n "$GL_EET_CFLAGS"; then
21197else 21327else
21198 pkg_failed=yes 21328 pkg_failed=yes
21199fi 21329fi
21200 else 21330 fi
21201 pkg_failed=untried 21331else
21332 pkg_failed=untried
21202fi 21333fi
21203if test -n "$GL_EET_LIBS"; then 21334if test -n "$PKG_CONFIG"; then
21204 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS" 21335 if test -n "$GL_EET_LIBS"; then
21205 elif test -n "$PKG_CONFIG"; then 21336 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS"
21206 if test -n "$PKG_CONFIG" && \ 21337 else
21338 if test -n "$PKG_CONFIG" && \
21207 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 21339 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
21208 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 21340 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
21209 ac_status=$? 21341 ac_status=$?
@@ -21213,15 +21345,14 @@ if test -n "$GL_EET_LIBS"; then
21213else 21345else
21214 pkg_failed=yes 21346 pkg_failed=yes
21215fi 21347fi
21216 else 21348 fi
21217 pkg_failed=untried 21349else
21350 pkg_failed=untried
21218fi 21351fi
21219 21352
21220 21353
21221 21354
21222if test $pkg_failed = yes; then 21355if test $pkg_failed = yes; then
21223 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21224$as_echo "no" >&6; }
21225 21356
21226if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21357if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21227 _pkg_short_errors_supported=yes 21358 _pkg_short_errors_supported=yes
@@ -21229,17 +21360,17 @@ else
21229 _pkg_short_errors_supported=no 21360 _pkg_short_errors_supported=no
21230fi 21361fi
21231 if test $_pkg_short_errors_supported = yes; then 21362 if test $_pkg_short_errors_supported = yes; then
21232 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 21363 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
21233 else 21364 else
21234 GL_EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 21365 GL_EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
21235 fi 21366 fi
21236 # Put the nasty error message in config.log where it belongs 21367 # Put the nasty error message in config.log where it belongs
21237 echo "$GL_EET_PKG_ERRORS" >&5 21368 echo "$GL_EET_PKG_ERRORS" >&5
21238 21369
21239 have_dep="no" 21370 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21240elif test $pkg_failed = untried; then
21241 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21242$as_echo "no" >&6; } 21371$as_echo "no" >&6; }
21372 have_dep="no"
21373elif test $pkg_failed = untried; then
21243 have_dep="no" 21374 have_dep="no"
21244else 21375else
21245 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS 21376 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS
@@ -21263,7 +21394,7 @@ fi
21263fi 21394fi
21264 21395
21265if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21396if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21266 as_fn_error $? "OpenGL Cocoa dependencies not found (strict dependencies checking)" "$LINENO" 5 21397 as_fn_error "OpenGL Cocoa dependencies not found (strict dependencies checking)" "$LINENO" 5
21267fi 21398fi
21268 21399
21269{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL Cocoa rendering backend will be built" >&5 21400{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL Cocoa rendering backend will be built" >&5
@@ -21372,7 +21503,7 @@ fi
21372fi 21503fi
21373 21504
21374if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21505if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21375 as_fn_error $? "Framebuffer dependencies not found (strict dependencies checking)" "$LINENO" 5 21506 as_fn_error "Framebuffer dependencies not found (strict dependencies checking)" "$LINENO" 5
21376fi 21507fi
21377 21508
21378{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Framebuffer rendering backend will be built" >&5 21509{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Framebuffer rendering backend will be built" >&5
@@ -21467,10 +21598,11 @@ pkg_failed=no
21467{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DIRECTFB" >&5 21598{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DIRECTFB" >&5
21468$as_echo_n "checking for DIRECTFB... " >&6; } 21599$as_echo_n "checking for DIRECTFB... " >&6; }
21469 21600
21470if test -n "$DIRECTFB_CFLAGS"; then 21601if test -n "$PKG_CONFIG"; then
21471 pkg_cv_DIRECTFB_CFLAGS="$DIRECTFB_CFLAGS" 21602 if test -n "$DIRECTFB_CFLAGS"; then
21472 elif test -n "$PKG_CONFIG"; then 21603 pkg_cv_DIRECTFB_CFLAGS="$DIRECTFB_CFLAGS"
21473 if test -n "$PKG_CONFIG" && \ 21604 else
21605 if test -n "$PKG_CONFIG" && \
21474 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5 21606 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5
21475 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5 21607 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5
21476 ac_status=$? 21608 ac_status=$?
@@ -21480,13 +21612,15 @@ if test -n "$DIRECTFB_CFLAGS"; then
21480else 21612else
21481 pkg_failed=yes 21613 pkg_failed=yes
21482fi 21614fi
21483 else 21615 fi
21484 pkg_failed=untried 21616else
21617 pkg_failed=untried
21485fi 21618fi
21486if test -n "$DIRECTFB_LIBS"; then 21619if test -n "$PKG_CONFIG"; then
21487 pkg_cv_DIRECTFB_LIBS="$DIRECTFB_LIBS" 21620 if test -n "$DIRECTFB_LIBS"; then
21488 elif test -n "$PKG_CONFIG"; then 21621 pkg_cv_DIRECTFB_LIBS="$DIRECTFB_LIBS"
21489 if test -n "$PKG_CONFIG" && \ 21622 else
21623 if test -n "$PKG_CONFIG" && \
21490 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5 21624 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5
21491 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5 21625 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5
21492 ac_status=$? 21626 ac_status=$?
@@ -21496,15 +21630,14 @@ if test -n "$DIRECTFB_LIBS"; then
21496else 21630else
21497 pkg_failed=yes 21631 pkg_failed=yes
21498fi 21632fi
21499 else 21633 fi
21500 pkg_failed=untried 21634else
21635 pkg_failed=untried
21501fi 21636fi
21502 21637
21503 21638
21504 21639
21505if test $pkg_failed = yes; then 21640if test $pkg_failed = yes; then
21506 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21507$as_echo "no" >&6; }
21508 21641
21509if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21642if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21510 _pkg_short_errors_supported=yes 21643 _pkg_short_errors_supported=yes
@@ -21512,14 +21645,14 @@ else
21512 _pkg_short_errors_supported=no 21645 _pkg_short_errors_supported=no
21513fi 21646fi
21514 if test $_pkg_short_errors_supported = yes; then 21647 if test $_pkg_short_errors_supported = yes; then
21515 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "directfb >= 0.9.16" 2>&1` 21648 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "directfb >= 0.9.16"`
21516 else 21649 else
21517 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --print-errors "directfb >= 0.9.16" 2>&1` 21650 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "directfb >= 0.9.16"`
21518 fi 21651 fi
21519 # Put the nasty error message in config.log where it belongs 21652 # Put the nasty error message in config.log where it belongs
21520 echo "$DIRECTFB_PKG_ERRORS" >&5 21653 echo "$DIRECTFB_PKG_ERRORS" >&5
21521 21654
21522 as_fn_error $? "Package requirements (directfb >= 0.9.16) were not met: 21655 as_fn_error "Package requirements (directfb >= 0.9.16) were not met:
21523 21656
21524$DIRECTFB_PKG_ERRORS 21657$DIRECTFB_PKG_ERRORS
21525 21658
@@ -21528,13 +21661,12 @@ installed software in a non-standard prefix.
21528 21661
21529Alternatively, you may set the environment variables DIRECTFB_CFLAGS 21662Alternatively, you may set the environment variables DIRECTFB_CFLAGS
21530and DIRECTFB_LIBS to avoid the need to call pkg-config. 21663and DIRECTFB_LIBS to avoid the need to call pkg-config.
21531See the pkg-config man page for more details." "$LINENO" 5 21664See the pkg-config man page for more details.
21665" "$LINENO" 5
21532elif test $pkg_failed = untried; then 21666elif test $pkg_failed = untried; then
21533 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21534$as_echo "no" >&6; }
21535 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 21667 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
21536$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 21668$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
21537as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 21669as_fn_error "The pkg-config script could not be found or is too old. Make sure it
21538is in your PATH or set the PKG_CONFIG environment variable to the full 21670is in your PATH or set the PKG_CONFIG environment variable to the full
21539path to pkg-config. 21671path to pkg-config.
21540 21672
@@ -21543,7 +21675,7 @@ and DIRECTFB_LIBS to avoid the need to call pkg-config.
21543See the pkg-config man page for more details. 21675See the pkg-config man page for more details.
21544 21676
21545To get pkg-config, see <http://pkg-config.freedesktop.org/>. 21677To get pkg-config, see <http://pkg-config.freedesktop.org/>.
21546See \`config.log' for more details" "$LINENO" 5 ; } 21678See \`config.log' for more details." "$LINENO" 5; }
21547else 21679else
21548 DIRECTFB_CFLAGS=$pkg_cv_DIRECTFB_CFLAGS 21680 DIRECTFB_CFLAGS=$pkg_cv_DIRECTFB_CFLAGS
21549 DIRECTFB_LIBS=$pkg_cv_DIRECTFB_LIBS 21681 DIRECTFB_LIBS=$pkg_cv_DIRECTFB_LIBS
@@ -21575,7 +21707,7 @@ fi
21575fi 21707fi
21576 21708
21577if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21709if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21578 as_fn_error $? "DirectFB dependencies not found (strict dependencies checking)" "$LINENO" 5 21710 as_fn_error "DirectFB dependencies not found (strict dependencies checking)" "$LINENO" 5
21579fi 21711fi
21580 21712
21581{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether DirectFB rendering backend will be built" >&5 21713{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether DirectFB rendering backend will be built" >&5
@@ -21669,10 +21801,11 @@ pkg_failed=no
21669{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB" >&5 21801{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB" >&5
21670$as_echo_n "checking for XCB... " >&6; } 21802$as_echo_n "checking for XCB... " >&6; }
21671 21803
21672if test -n "$XCB_CFLAGS"; then 21804if test -n "$PKG_CONFIG"; then
21673 pkg_cv_XCB_CFLAGS="$XCB_CFLAGS" 21805 if test -n "$XCB_CFLAGS"; then
21674 elif test -n "$PKG_CONFIG"; then 21806 pkg_cv_XCB_CFLAGS="$XCB_CFLAGS"
21675 if test -n "$PKG_CONFIG" && \ 21807 else
21808 if test -n "$PKG_CONFIG" && \
21676 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5 21809 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5
21677 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5 21810 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5
21678 ac_status=$? 21811 ac_status=$?
@@ -21682,13 +21815,15 @@ if test -n "$XCB_CFLAGS"; then
21682else 21815else
21683 pkg_failed=yes 21816 pkg_failed=yes
21684fi 21817fi
21685 else 21818 fi
21686 pkg_failed=untried 21819else
21820 pkg_failed=untried
21687fi 21821fi
21688if test -n "$XCB_LIBS"; then 21822if test -n "$PKG_CONFIG"; then
21689 pkg_cv_XCB_LIBS="$XCB_LIBS" 21823 if test -n "$XCB_LIBS"; then
21690 elif test -n "$PKG_CONFIG"; then 21824 pkg_cv_XCB_LIBS="$XCB_LIBS"
21691 if test -n "$PKG_CONFIG" && \ 21825 else
21826 if test -n "$PKG_CONFIG" && \
21692 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5 21827 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5
21693 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5 21828 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5
21694 ac_status=$? 21829 ac_status=$?
@@ -21698,15 +21833,14 @@ if test -n "$XCB_LIBS"; then
21698else 21833else
21699 pkg_failed=yes 21834 pkg_failed=yes
21700fi 21835fi
21701 else 21836 fi
21702 pkg_failed=untried 21837else
21838 pkg_failed=untried
21703fi 21839fi
21704 21840
21705 21841
21706 21842
21707if test $pkg_failed = yes; then 21843if test $pkg_failed = yes; then
21708 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21709$as_echo "no" >&6; }
21710 21844
21711if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21845if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21712 _pkg_short_errors_supported=yes 21846 _pkg_short_errors_supported=yes
@@ -21714,20 +21848,20 @@ else
21714 _pkg_short_errors_supported=no 21848 _pkg_short_errors_supported=no
21715fi 21849fi
21716 if test $_pkg_short_errors_supported = yes; then 21850 if test $_pkg_short_errors_supported = yes; then
21717 XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1" 2>&1` 21851 XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1"`
21718 else 21852 else
21719 XCB_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1" 2>&1` 21853 XCB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1"`
21720 fi 21854 fi
21721 # Put the nasty error message in config.log where it belongs 21855 # Put the nasty error message in config.log where it belongs
21722 echo "$XCB_PKG_ERRORS" >&5 21856 echo "$XCB_PKG_ERRORS" >&5
21723 21857
21858 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21859$as_echo "no" >&6; }
21724 21860
21725 have_dep="no" 21861 have_dep="no"
21726 21862
21727 21863
21728elif test $pkg_failed = untried; then 21864elif test $pkg_failed = untried; then
21729 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21730$as_echo "no" >&6; }
21731 21865
21732 have_dep="no" 21866 have_dep="no"
21733 21867
@@ -21762,7 +21896,7 @@ fi
21762fi 21896fi
21763 21897
21764if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21898if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21765 as_fn_error $? "Software X11 8 bits grayscale dependencies not found (strict dependencies checking)" "$LINENO" 5 21899 as_fn_error "Software X11 8 bits grayscale dependencies not found (strict dependencies checking)" "$LINENO" 5
21766fi 21900fi
21767 21901
21768{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software X11 8 bits grayscale rendering backend will be built" >&5 21902{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software X11 8 bits grayscale rendering backend will be built" >&5
@@ -21866,7 +22000,7 @@ if test "x$with_x" = xno; then
21866 have_x=disabled 22000 have_x=disabled
21867else 22001else
21868 case $x_includes,$x_libraries in #( 22002 case $x_includes,$x_libraries in #(
21869 *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( 22003 *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
21870 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 22004 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
21871 $as_echo_n "(cached) " >&6 22005 $as_echo_n "(cached) " >&6
21872else 22006else
@@ -21884,7 +22018,7 @@ libdir:
21884 @echo libdir='${LIBDIR}' 22018 @echo libdir='${LIBDIR}'
21885_ACEOF 22019_ACEOF
21886 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then 22020 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
21887 # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 22021 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
21888 for ac_var in incroot usrlibdir libdir; do 22022 for ac_var in incroot usrlibdir libdir; do
21889 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" 22023 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
21890 done 22024 done
@@ -21970,7 +22104,7 @@ else
21970 fi 22104 fi
21971done 22105done
21972fi 22106fi
21973rm -f conftest.err conftest.i conftest.$ac_ext 22107rm -f conftest.err conftest.$ac_ext
21974fi # $ac_x_includes = no 22108fi # $ac_x_includes = no
21975 22109
21976if test "$ac_x_libraries" = no; then 22110if test "$ac_x_libraries" = no; then
@@ -22657,7 +22791,7 @@ fi
22657fi 22791fi
22658 22792
22659if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 22793if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
22660 as_fn_error $? "Software X11 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5 22794 as_fn_error "Software X11 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5
22661fi 22795fi
22662 22796
22663{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software X11 16 bits rendering backend will be built" >&5 22797{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software X11 16 bits rendering backend will be built" >&5
@@ -22770,7 +22904,7 @@ fi
22770fi 22904fi
22771 22905
22772if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 22906if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
22773 as_fn_error $? "Software DirectDraw 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5 22907 as_fn_error "Software DirectDraw 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5
22774fi 22908fi
22775 22909
22776{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software DirectDraw 16 bits rendering backend will be built" >&5 22910{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software DirectDraw 16 bits rendering backend will be built" >&5
@@ -22872,7 +23006,7 @@ fi
22872fi 23006fi
22873 23007
22874if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 23008if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
22875 as_fn_error $? "Software Windows CE 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5 23009 as_fn_error "Software Windows CE 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5
22876fi 23010fi
22877 23011
22878{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software Windows CE 16 bits rendering backend will be built" >&5 23012{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software Windows CE 16 bits rendering backend will be built" >&5
@@ -22967,10 +23101,11 @@ pkg_failed=no
22967{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5 23101{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5
22968$as_echo_n "checking for SDL... " >&6; } 23102$as_echo_n "checking for SDL... " >&6; }
22969 23103
22970if test -n "$SDL_CFLAGS"; then 23104if test -n "$PKG_CONFIG"; then
22971 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS" 23105 if test -n "$SDL_CFLAGS"; then
22972 elif test -n "$PKG_CONFIG"; then 23106 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS"
22973 if test -n "$PKG_CONFIG" && \ 23107 else
23108 if test -n "$PKG_CONFIG" && \
22974 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 23109 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
22975 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 23110 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
22976 ac_status=$? 23111 ac_status=$?
@@ -22980,13 +23115,15 @@ if test -n "$SDL_CFLAGS"; then
22980else 23115else
22981 pkg_failed=yes 23116 pkg_failed=yes
22982fi 23117fi
22983 else 23118 fi
22984 pkg_failed=untried 23119else
23120 pkg_failed=untried
22985fi 23121fi
22986if test -n "$SDL_LIBS"; then 23122if test -n "$PKG_CONFIG"; then
22987 pkg_cv_SDL_LIBS="$SDL_LIBS" 23123 if test -n "$SDL_LIBS"; then
22988 elif test -n "$PKG_CONFIG"; then 23124 pkg_cv_SDL_LIBS="$SDL_LIBS"
22989 if test -n "$PKG_CONFIG" && \ 23125 else
23126 if test -n "$PKG_CONFIG" && \
22990 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 23127 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
22991 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 23128 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
22992 ac_status=$? 23129 ac_status=$?
@@ -22996,15 +23133,14 @@ if test -n "$SDL_LIBS"; then
22996else 23133else
22997 pkg_failed=yes 23134 pkg_failed=yes
22998fi 23135fi
22999 else 23136 fi
23000 pkg_failed=untried 23137else
23138 pkg_failed=untried
23001fi 23139fi
23002 23140
23003 23141
23004 23142
23005if test $pkg_failed = yes; then 23143if test $pkg_failed = yes; then
23006 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23007$as_echo "no" >&6; }
23008 23144
23009if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 23145if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
23010 _pkg_short_errors_supported=yes 23146 _pkg_short_errors_supported=yes
@@ -23012,14 +23148,14 @@ else
23012 _pkg_short_errors_supported=no 23148 _pkg_short_errors_supported=no
23013fi 23149fi
23014 if test $_pkg_short_errors_supported = yes; then 23150 if test $_pkg_short_errors_supported = yes; then
23015 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "sdl >= 1.2.0" 2>&1` 23151 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sdl >= 1.2.0"`
23016 else 23152 else
23017 SDL_PKG_ERRORS=`$PKG_CONFIG --print-errors "sdl >= 1.2.0" 2>&1` 23153 SDL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sdl >= 1.2.0"`
23018 fi 23154 fi
23019 # Put the nasty error message in config.log where it belongs 23155 # Put the nasty error message in config.log where it belongs
23020 echo "$SDL_PKG_ERRORS" >&5 23156 echo "$SDL_PKG_ERRORS" >&5
23021 23157
23022 as_fn_error $? "Package requirements (sdl >= 1.2.0) were not met: 23158 as_fn_error "Package requirements (sdl >= 1.2.0) were not met:
23023 23159
23024$SDL_PKG_ERRORS 23160$SDL_PKG_ERRORS
23025 23161
@@ -23028,13 +23164,12 @@ installed software in a non-standard prefix.
23028 23164
23029Alternatively, you may set the environment variables SDL_CFLAGS 23165Alternatively, you may set the environment variables SDL_CFLAGS
23030and SDL_LIBS to avoid the need to call pkg-config. 23166and SDL_LIBS to avoid the need to call pkg-config.
23031See the pkg-config man page for more details." "$LINENO" 5 23167See the pkg-config man page for more details.
23168" "$LINENO" 5
23032elif test $pkg_failed = untried; then 23169elif test $pkg_failed = untried; then
23033 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23034$as_echo "no" >&6; }
23035 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 23170 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
23036$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 23171$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
23037as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 23172as_fn_error "The pkg-config script could not be found or is too old. Make sure it
23038is in your PATH or set the PKG_CONFIG environment variable to the full 23173is in your PATH or set the PKG_CONFIG environment variable to the full
23039path to pkg-config. 23174path to pkg-config.
23040 23175
@@ -23043,7 +23178,7 @@ and SDL_LIBS to avoid the need to call pkg-config.
23043See the pkg-config man page for more details. 23178See the pkg-config man page for more details.
23044 23179
23045To get pkg-config, see <http://pkg-config.freedesktop.org/>. 23180To get pkg-config, see <http://pkg-config.freedesktop.org/>.
23046See \`config.log' for more details" "$LINENO" 5 ; } 23181See \`config.log' for more details." "$LINENO" 5; }
23047else 23182else
23048 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS 23183 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS
23049 SDL_LIBS=$pkg_cv_SDL_LIBS 23184 SDL_LIBS=$pkg_cv_SDL_LIBS
@@ -23075,7 +23210,7 @@ fi
23075fi 23210fi
23076 23211
23077if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 23212if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
23078 as_fn_error $? "Software SDL 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5 23213 as_fn_error "Software SDL 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5
23079fi 23214fi
23080 23215
23081{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software SDL 16 bits rendering backend will be built" >&5 23216{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software SDL 16 bits rendering backend will be built" >&5
@@ -23128,6 +23263,386 @@ fi
23128 23263
23129 23264
23130 23265
23266
23267
23268
23269want_engine="${want_evas_engine_wayland_shm}"
23270want_static_engine="no"
23271have_engine="no"
23272have_evas_engine_wayland_shm="no"
23273
23274# Check whether --enable-wayland-shm was given.
23275if test "${enable_wayland_shm+set}" = set; then :
23276 enableval=$enable_wayland_shm;
23277 if test "x${enableval}" = "xyes" ; then
23278 want_engine="yes"
23279 else
23280 if test "x${enableval}" = "xstatic" ; then
23281 want_engine="static"
23282 else
23283 want_engine="no"
23284 fi
23285 fi
23286
23287fi
23288
23289
23290{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable Wayland Shm rendering backend" >&5
23291$as_echo_n "checking whether to enable Wayland Shm rendering backend... " >&6; }
23292{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_engine}" >&5
23293$as_echo "${want_engine}" >&6; }
23294
23295if test "x${want_engine}" = "xyes" -o "x${want_engine}" = "xstatic" -o "x${want_engine}" = "xauto" ; then
23296
23297
23298have_dep="yes"
23299evas_engine_wayland_shm_cflags=""
23300evas_engine_wayland_shm_libs=""
23301
23302
23303
23304
23305if test "x${have_dep}" = "xyes" ; then
23306 have_engine="yes"
23307else
23308 have_engine="no"
23309fi
23310
23311
23312fi
23313
23314if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
23315 as_fn_error "Wayland Shm dependencies not found (strict dependencies checking)" "$LINENO" 5
23316fi
23317
23318{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Wayland Shm rendering backend will be built" >&5
23319$as_echo_n "checking whether Wayland Shm rendering backend will be built... " >&6; }
23320{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_engine}" >&5
23321$as_echo "${have_engine}" >&6; }
23322
23323if test "x${have_engine}" = "xyes" ; then
23324 if test "x${want_engine}" = "xstatic" ; then
23325 have_evas_engine_wayland_shm="static"
23326 want_static_engine="yes"
23327 else
23328 have_evas_engine_wayland_shm="yes"
23329 fi
23330fi
23331
23332if test "x${have_engine}" = "xyes" ; then
23333
23334$as_echo "#define BUILD_ENGINE_WAYLAND_SHM 1" >>confdefs.h
23335
23336fi
23337
23338 if test "x${have_engine}" = "xyes"; then
23339 BUILD_ENGINE_WAYLAND_SHM_TRUE=
23340 BUILD_ENGINE_WAYLAND_SHM_FALSE='#'
23341else
23342 BUILD_ENGINE_WAYLAND_SHM_TRUE='#'
23343 BUILD_ENGINE_WAYLAND_SHM_FALSE=
23344fi
23345
23346
23347if test "x${want_static_engine}" = "xyes" ; then
23348
23349$as_echo "#define EVAS_STATIC_BUILD_WAYLAND_SHM 1" >>confdefs.h
23350
23351 have_static_module="yes"
23352fi
23353
23354 if test "x${want_static_engine}" = "xyes"; then
23355 EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE=
23356 EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE='#'
23357else
23358 EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE='#'
23359 EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE=
23360fi
23361
23362
23363
23364
23365
23366
23367
23368
23369
23370
23371want_engine="${want_evas_engine_wayland_egl}"
23372want_static_engine="no"
23373have_engine="no"
23374have_evas_engine_wayland_egl="no"
23375
23376# Check whether --enable-wayland-egl was given.
23377if test "${enable_wayland_egl+set}" = set; then :
23378 enableval=$enable_wayland_egl;
23379 if test "x${enableval}" = "xyes" ; then
23380 want_engine="yes"
23381 else
23382 if test "x${enableval}" = "xstatic" ; then
23383 want_engine="static"
23384 else
23385 want_engine="no"
23386 fi
23387 fi
23388
23389fi
23390
23391
23392{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable Wayland Egl rendering backend" >&5
23393$as_echo_n "checking whether to enable Wayland Egl rendering backend... " >&6; }
23394{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_engine}" >&5
23395$as_echo "${want_engine}" >&6; }
23396
23397if test "x${want_engine}" = "xyes" -o "x${want_engine}" = "xstatic" -o "x${want_engine}" = "xauto" ; then
23398
23399
23400requirement=""
23401have_dep="no"
23402evas_engine_wayland_egl_cflags=""
23403evas_engine_wayland_egl_libs=""
23404
23405
23406pkg_failed=no
23407{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WAYLAND_EGL" >&5
23408$as_echo_n "checking for WAYLAND_EGL... " >&6; }
23409
23410if test -n "$PKG_CONFIG"; then
23411 if test -n "$WAYLAND_EGL_CFLAGS"; then
23412 pkg_cv_WAYLAND_EGL_CFLAGS="$WAYLAND_EGL_CFLAGS"
23413 else
23414 if test -n "$PKG_CONFIG" && \
23415 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"egl >= 7.10 glesv2 gl wayland-client wayland-egl\""; } >&5
23416 ($PKG_CONFIG --exists --print-errors "egl >= 7.10 glesv2 gl wayland-client wayland-egl") 2>&5
23417 ac_status=$?
23418 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
23419 test $ac_status = 0; }; then
23420 pkg_cv_WAYLAND_EGL_CFLAGS=`$PKG_CONFIG --cflags "egl >= 7.10 glesv2 gl wayland-client wayland-egl" 2>/dev/null`
23421else
23422 pkg_failed=yes
23423fi
23424 fi
23425else
23426 pkg_failed=untried
23427fi
23428if test -n "$PKG_CONFIG"; then
23429 if test -n "$WAYLAND_EGL_LIBS"; then
23430 pkg_cv_WAYLAND_EGL_LIBS="$WAYLAND_EGL_LIBS"
23431 else
23432 if test -n "$PKG_CONFIG" && \
23433 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"egl >= 7.10 glesv2 gl wayland-client wayland-egl\""; } >&5
23434 ($PKG_CONFIG --exists --print-errors "egl >= 7.10 glesv2 gl wayland-client wayland-egl") 2>&5
23435 ac_status=$?
23436 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
23437 test $ac_status = 0; }; then
23438 pkg_cv_WAYLAND_EGL_LIBS=`$PKG_CONFIG --libs "egl >= 7.10 glesv2 gl wayland-client wayland-egl" 2>/dev/null`
23439else
23440 pkg_failed=yes
23441fi
23442 fi
23443else
23444 pkg_failed=untried
23445fi
23446
23447
23448
23449if test $pkg_failed = yes; then
23450
23451if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
23452 _pkg_short_errors_supported=yes
23453else
23454 _pkg_short_errors_supported=no
23455fi
23456 if test $_pkg_short_errors_supported = yes; then
23457 WAYLAND_EGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "egl >= 7.10 glesv2 gl wayland-client wayland-egl"`
23458 else
23459 WAYLAND_EGL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "egl >= 7.10 glesv2 gl wayland-client wayland-egl"`
23460 fi
23461 # Put the nasty error message in config.log where it belongs
23462 echo "$WAYLAND_EGL_PKG_ERRORS" >&5
23463
23464 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23465$as_echo "no" >&6; }
23466
23467 have_dep="no"
23468
23469
23470elif test $pkg_failed = untried; then
23471
23472 have_dep="no"
23473
23474
23475else
23476 WAYLAND_EGL_CFLAGS=$pkg_cv_WAYLAND_EGL_CFLAGS
23477 WAYLAND_EGL_LIBS=$pkg_cv_WAYLAND_EGL_LIBS
23478 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
23479$as_echo "yes" >&6; }
23480
23481 have_dep="yes"
23482 requirement="egl >= 7.10 glesv2 gl wayland-client wayland-egl"
23483 evas_engine_wayland_egl_cflags="${WAYLAND_EGL_CFLAGS}"
23484 evas_engine_wayland_egl_libs="${WAYLAND_EGL_LIBS}"
23485
23486fi
23487
23488if test "x${have_dep}" = "xyes" ; then
23489
23490pkg_failed=no
23491{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5
23492$as_echo_n "checking for GL_EET... " >&6; }
23493
23494if test -n "$PKG_CONFIG"; then
23495 if test -n "$GL_EET_CFLAGS"; then
23496 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS"
23497 else
23498 if test -n "$PKG_CONFIG" && \
23499 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
23500 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
23501 ac_status=$?
23502 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
23503 test $ac_status = 0; }; then
23504 pkg_cv_GL_EET_CFLAGS=`$PKG_CONFIG --cflags "eet >= 1.5.0" 2>/dev/null`
23505else
23506 pkg_failed=yes
23507fi
23508 fi
23509else
23510 pkg_failed=untried
23511fi
23512if test -n "$PKG_CONFIG"; then
23513 if test -n "$GL_EET_LIBS"; then
23514 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS"
23515 else
23516 if test -n "$PKG_CONFIG" && \
23517 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
23518 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
23519 ac_status=$?
23520 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
23521 test $ac_status = 0; }; then
23522 pkg_cv_GL_EET_LIBS=`$PKG_CONFIG --libs "eet >= 1.5.0" 2>/dev/null`
23523else
23524 pkg_failed=yes
23525fi
23526 fi
23527else
23528 pkg_failed=untried
23529fi
23530
23531
23532
23533if test $pkg_failed = yes; then
23534
23535if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
23536 _pkg_short_errors_supported=yes
23537else
23538 _pkg_short_errors_supported=no
23539fi
23540 if test $_pkg_short_errors_supported = yes; then
23541 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
23542 else
23543 GL_EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
23544 fi
23545 # Put the nasty error message in config.log where it belongs
23546 echo "$GL_EET_PKG_ERRORS" >&5
23547
23548 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23549$as_echo "no" >&6; }
23550 have_dep="no"
23551elif test $pkg_failed = untried; then
23552 have_dep="no"
23553else
23554 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS
23555 GL_EET_LIBS=$pkg_cv_GL_EET_LIBS
23556 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
23557$as_echo "yes" >&6; }
23558 have_dep="yes"
23559fi
23560 ac_fn_c_check_header_compile "$LINENO" "GLES2/gl2.h" "ac_cv_header_GLES2_gl2_h" "
23561
23562"
23563if test "x$ac_cv_header_GLES2_gl2_h" = x""yes; then :
23564 have_egl="yes"
23565else
23566 have_egl="no"
23567fi
23568
23569
23570 if test "x${have_egl}" = "xyes" ; then
23571 evas_engine_wayland_egl_cflags="${WAYLAND_EGL_CFLAGS}"
23572 evas_engine_wayland_egl_libs="${WAYLAND_EGL_LIBS} -lGL -lGLESv2 -lEGL"
23573 fi
23574fi
23575
23576
23577
23578
23579if test "x${want_engine}" = "xstatic" ; then
23580 requirement_evas="${requirement} ${requirement_evas}"
23581fi
23582
23583if test "x${have_dep}" = "xyes" ; then
23584 have_engine="yes"
23585else
23586 have_engine="no"
23587fi
23588
23589
23590fi
23591
23592if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
23593 as_fn_error "Wayland Egl dependencies not found (strict dependencies checking)" "$LINENO" 5
23594fi
23595
23596{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Wayland Egl rendering backend will be built" >&5
23597$as_echo_n "checking whether Wayland Egl rendering backend will be built... " >&6; }
23598{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_engine}" >&5
23599$as_echo "${have_engine}" >&6; }
23600
23601if test "x${have_engine}" = "xyes" ; then
23602 if test "x${want_engine}" = "xstatic" ; then
23603 have_evas_engine_wayland_egl="static"
23604 want_static_engine="yes"
23605 else
23606 have_evas_engine_wayland_egl="yes"
23607 fi
23608fi
23609
23610if test "x${have_engine}" = "xyes" ; then
23611
23612$as_echo "#define BUILD_ENGINE_WAYLAND_EGL 1" >>confdefs.h
23613
23614fi
23615
23616 if test "x${have_engine}" = "xyes"; then
23617 BUILD_ENGINE_WAYLAND_EGL_TRUE=
23618 BUILD_ENGINE_WAYLAND_EGL_FALSE='#'
23619else
23620 BUILD_ENGINE_WAYLAND_EGL_TRUE='#'
23621 BUILD_ENGINE_WAYLAND_EGL_FALSE=
23622fi
23623
23624
23625if test "x${want_static_engine}" = "xyes" ; then
23626
23627$as_echo "#define EVAS_STATIC_BUILD_WAYLAND_EGL 1" >>confdefs.h
23628
23629 have_static_module="yes"
23630fi
23631
23632 if test "x${want_static_engine}" = "xyes"; then
23633 EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE=
23634 EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE='#'
23635else
23636 EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE='#'
23637 EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE=
23638fi
23639
23640
23641
23642
23643
23644
23645
23131# SDL primitive 23646# SDL primitive
23132sdl_primitive="no" 23647sdl_primitive="no"
23133 23648
@@ -23241,10 +23756,11 @@ pkg_failed=no
23241{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB" >&5 23756{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB" >&5
23242$as_echo_n "checking for XCB... " >&6; } 23757$as_echo_n "checking for XCB... " >&6; }
23243 23758
23244if test -n "$XCB_CFLAGS"; then 23759if test -n "$PKG_CONFIG"; then
23245 pkg_cv_XCB_CFLAGS="$XCB_CFLAGS" 23760 if test -n "$XCB_CFLAGS"; then
23246 elif test -n "$PKG_CONFIG"; then 23761 pkg_cv_XCB_CFLAGS="$XCB_CFLAGS"
23247 if test -n "$PKG_CONFIG" && \ 23762 else
23763 if test -n "$PKG_CONFIG" && \
23248 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5 23764 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5
23249 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5 23765 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5
23250 ac_status=$? 23766 ac_status=$?
@@ -23254,13 +23770,15 @@ if test -n "$XCB_CFLAGS"; then
23254else 23770else
23255 pkg_failed=yes 23771 pkg_failed=yes
23256fi 23772fi
23257 else 23773 fi
23258 pkg_failed=untried 23774else
23775 pkg_failed=untried
23259fi 23776fi
23260if test -n "$XCB_LIBS"; then 23777if test -n "$PKG_CONFIG"; then
23261 pkg_cv_XCB_LIBS="$XCB_LIBS" 23778 if test -n "$XCB_LIBS"; then
23262 elif test -n "$PKG_CONFIG"; then 23779 pkg_cv_XCB_LIBS="$XCB_LIBS"
23263 if test -n "$PKG_CONFIG" && \ 23780 else
23781 if test -n "$PKG_CONFIG" && \
23264 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5 23782 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5
23265 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5 23783 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5
23266 ac_status=$? 23784 ac_status=$?
@@ -23270,15 +23788,14 @@ if test -n "$XCB_LIBS"; then
23270else 23788else
23271 pkg_failed=yes 23789 pkg_failed=yes
23272fi 23790fi
23273 else 23791 fi
23274 pkg_failed=untried 23792else
23793 pkg_failed=untried
23275fi 23794fi
23276 23795
23277 23796
23278 23797
23279if test $pkg_failed = yes; then 23798if test $pkg_failed = yes; then
23280 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23281$as_echo "no" >&6; }
23282 23799
23283if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 23800if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
23284 _pkg_short_errors_supported=yes 23801 _pkg_short_errors_supported=yes
@@ -23286,20 +23803,20 @@ else
23286 _pkg_short_errors_supported=no 23803 _pkg_short_errors_supported=no
23287fi 23804fi
23288 if test $_pkg_short_errors_supported = yes; then 23805 if test $_pkg_short_errors_supported = yes; then
23289 XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1" 2>&1` 23806 XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1"`
23290 else 23807 else
23291 XCB_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1" 2>&1` 23808 XCB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1"`
23292 fi 23809 fi
23293 # Put the nasty error message in config.log where it belongs 23810 # Put the nasty error message in config.log where it belongs
23294 echo "$XCB_PKG_ERRORS" >&5 23811 echo "$XCB_PKG_ERRORS" >&5
23295 23812
23813 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23814$as_echo "no" >&6; }
23296 23815
23297 have_dep="no" 23816 have_dep="no"
23298 23817
23299 23818
23300elif test $pkg_failed = untried; then 23819elif test $pkg_failed = untried; then
23301 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23302$as_echo "no" >&6; }
23303 23820
23304 have_dep="no" 23821 have_dep="no"
23305 23822
@@ -23334,7 +23851,7 @@ fi
23334fi 23851fi
23335 23852
23336if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 23853if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
23337 as_fn_error $? "Software XCB dependencies not found (strict dependencies checking)" "$LINENO" 5 23854 as_fn_error "Software XCB dependencies not found (strict dependencies checking)" "$LINENO" 5
23338fi 23855fi
23339 23856
23340{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software XCB rendering backend will be built" >&5 23857{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software XCB rendering backend will be built" >&5
@@ -23460,7 +23977,7 @@ if test "x$with_x" = xno; then
23460 have_x=disabled 23977 have_x=disabled
23461else 23978else
23462 case $x_includes,$x_libraries in #( 23979 case $x_includes,$x_libraries in #(
23463 *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( 23980 *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
23464 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 23981 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
23465 $as_echo_n "(cached) " >&6 23982 $as_echo_n "(cached) " >&6
23466else 23983else
@@ -23478,7 +23995,7 @@ libdir:
23478 @echo libdir='${LIBDIR}' 23995 @echo libdir='${LIBDIR}'
23479_ACEOF 23996_ACEOF
23480 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then 23997 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
23481 # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 23998 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
23482 for ac_var in incroot usrlibdir libdir; do 23999 for ac_var in incroot usrlibdir libdir; do
23483 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" 24000 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
23484 done 24001 done
@@ -23564,7 +24081,7 @@ else
23564 fi 24081 fi
23565done 24082done
23566fi 24083fi
23567rm -f conftest.err conftest.i conftest.$ac_ext 24084rm -f conftest.err conftest.$ac_ext
23568fi # $ac_x_includes = no 24085fi # $ac_x_includes = no
23569 24086
23570if test "$ac_x_libraries" = no; then 24087if test "$ac_x_libraries" = no; then
@@ -24251,7 +24768,7 @@ fi
24251fi 24768fi
24252 24769
24253if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 24770if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
24254 as_fn_error $? "Software Xlib dependencies not found (strict dependencies checking)" "$LINENO" 5 24771 as_fn_error "Software Xlib dependencies not found (strict dependencies checking)" "$LINENO" 5
24255fi 24772fi
24256 24773
24257{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software Xlib rendering backend will be built" >&5 24774{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software Xlib rendering backend will be built" >&5
@@ -24451,7 +24968,7 @@ if test "x$with_x" = xno; then
24451 have_x=disabled 24968 have_x=disabled
24452else 24969else
24453 case $x_includes,$x_libraries in #( 24970 case $x_includes,$x_libraries in #(
24454 *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( 24971 *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
24455 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 24972 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
24456 $as_echo_n "(cached) " >&6 24973 $as_echo_n "(cached) " >&6
24457else 24974else
@@ -24469,7 +24986,7 @@ libdir:
24469 @echo libdir='${LIBDIR}' 24986 @echo libdir='${LIBDIR}'
24470_ACEOF 24987_ACEOF
24471 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then 24988 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
24472 # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 24989 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
24473 for ac_var in incroot usrlibdir libdir; do 24990 for ac_var in incroot usrlibdir libdir; do
24474 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" 24991 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
24475 done 24992 done
@@ -24555,7 +25072,7 @@ else
24555 fi 25072 fi
24556done 25073done
24557fi 25074fi
24558rm -f conftest.err conftest.i conftest.$ac_ext 25075rm -f conftest.err conftest.$ac_ext
24559fi # $ac_x_includes = no 25076fi # $ac_x_includes = no
24560 25077
24561if test "$ac_x_libraries" = no; then 25078if test "$ac_x_libraries" = no; then
@@ -25314,10 +25831,11 @@ pkg_failed=no
25314{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_GL" >&5 25831{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_GL" >&5
25315$as_echo_n "checking for XCB_GL... " >&6; } 25832$as_echo_n "checking for XCB_GL... " >&6; }
25316 25833
25317if test -n "$XCB_GL_CFLAGS"; then 25834if test -n "$PKG_CONFIG"; then
25318 pkg_cv_XCB_GL_CFLAGS="$XCB_GL_CFLAGS" 25835 if test -n "$XCB_GL_CFLAGS"; then
25319 elif test -n "$PKG_CONFIG"; then 25836 pkg_cv_XCB_GL_CFLAGS="$XCB_GL_CFLAGS"
25320 if test -n "$PKG_CONFIG" && \ 25837 else
25838 if test -n "$PKG_CONFIG" && \
25321 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-glx xcb-render xcb-renderutil\""; } >&5 25839 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-glx xcb-render xcb-renderutil\""; } >&5
25322 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil") 2>&5 25840 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil") 2>&5
25323 ac_status=$? 25841 ac_status=$?
@@ -25327,13 +25845,15 @@ if test -n "$XCB_GL_CFLAGS"; then
25327else 25845else
25328 pkg_failed=yes 25846 pkg_failed=yes
25329fi 25847fi
25330 else 25848 fi
25331 pkg_failed=untried 25849else
25850 pkg_failed=untried
25332fi 25851fi
25333if test -n "$XCB_GL_LIBS"; then 25852if test -n "$PKG_CONFIG"; then
25334 pkg_cv_XCB_GL_LIBS="$XCB_GL_LIBS" 25853 if test -n "$XCB_GL_LIBS"; then
25335 elif test -n "$PKG_CONFIG"; then 25854 pkg_cv_XCB_GL_LIBS="$XCB_GL_LIBS"
25336 if test -n "$PKG_CONFIG" && \ 25855 else
25856 if test -n "$PKG_CONFIG" && \
25337 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-glx xcb-render xcb-renderutil\""; } >&5 25857 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-glx xcb-render xcb-renderutil\""; } >&5
25338 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil") 2>&5 25858 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil") 2>&5
25339 ac_status=$? 25859 ac_status=$?
@@ -25343,15 +25863,14 @@ if test -n "$XCB_GL_LIBS"; then
25343else 25863else
25344 pkg_failed=yes 25864 pkg_failed=yes
25345fi 25865fi
25346 else 25866 fi
25347 pkg_failed=untried 25867else
25868 pkg_failed=untried
25348fi 25869fi
25349 25870
25350 25871
25351 25872
25352if test $pkg_failed = yes; then 25873if test $pkg_failed = yes; then
25353 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25354$as_echo "no" >&6; }
25355 25874
25356if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 25875if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
25357 _pkg_short_errors_supported=yes 25876 _pkg_short_errors_supported=yes
@@ -25359,20 +25878,20 @@ else
25359 _pkg_short_errors_supported=no 25878 _pkg_short_errors_supported=no
25360fi 25879fi
25361 if test $_pkg_short_errors_supported = yes; then 25880 if test $_pkg_short_errors_supported = yes; then
25362 XCB_GL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil" 2>&1` 25881 XCB_GL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil"`
25363 else 25882 else
25364 XCB_GL_PKG_ERRORS=`$PKG_CONFIG --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil" 2>&1` 25883 XCB_GL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil"`
25365 fi 25884 fi
25366 # Put the nasty error message in config.log where it belongs 25885 # Put the nasty error message in config.log where it belongs
25367 echo "$XCB_GL_PKG_ERRORS" >&5 25886 echo "$XCB_GL_PKG_ERRORS" >&5
25368 25887
25888 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25889$as_echo "no" >&6; }
25369 25890
25370 have_dep="no" 25891 have_dep="no"
25371 25892
25372 25893
25373elif test $pkg_failed = untried; then 25894elif test $pkg_failed = untried; then
25374 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25375$as_echo "no" >&6; }
25376 25895
25377 have_dep="no" 25896 have_dep="no"
25378 25897
@@ -25400,10 +25919,11 @@ pkg_failed=no
25400{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5 25919{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5
25401$as_echo_n "checking for GL_EET... " >&6; } 25920$as_echo_n "checking for GL_EET... " >&6; }
25402 25921
25403if test -n "$GL_EET_CFLAGS"; then 25922if test -n "$PKG_CONFIG"; then
25404 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS" 25923 if test -n "$GL_EET_CFLAGS"; then
25405 elif test -n "$PKG_CONFIG"; then 25924 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS"
25406 if test -n "$PKG_CONFIG" && \ 25925 else
25926 if test -n "$PKG_CONFIG" && \
25407 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 25927 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
25408 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 25928 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
25409 ac_status=$? 25929 ac_status=$?
@@ -25413,13 +25933,15 @@ if test -n "$GL_EET_CFLAGS"; then
25413else 25933else
25414 pkg_failed=yes 25934 pkg_failed=yes
25415fi 25935fi
25416 else 25936 fi
25417 pkg_failed=untried 25937else
25938 pkg_failed=untried
25418fi 25939fi
25419if test -n "$GL_EET_LIBS"; then 25940if test -n "$PKG_CONFIG"; then
25420 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS" 25941 if test -n "$GL_EET_LIBS"; then
25421 elif test -n "$PKG_CONFIG"; then 25942 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS"
25422 if test -n "$PKG_CONFIG" && \ 25943 else
25944 if test -n "$PKG_CONFIG" && \
25423 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 25945 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
25424 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 25946 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
25425 ac_status=$? 25947 ac_status=$?
@@ -25429,15 +25951,14 @@ if test -n "$GL_EET_LIBS"; then
25429else 25951else
25430 pkg_failed=yes 25952 pkg_failed=yes
25431fi 25953fi
25432 else 25954 fi
25433 pkg_failed=untried 25955else
25956 pkg_failed=untried
25434fi 25957fi
25435 25958
25436 25959
25437 25960
25438if test $pkg_failed = yes; then 25961if test $pkg_failed = yes; then
25439 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25440$as_echo "no" >&6; }
25441 25962
25442if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 25963if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
25443 _pkg_short_errors_supported=yes 25964 _pkg_short_errors_supported=yes
@@ -25445,17 +25966,17 @@ else
25445 _pkg_short_errors_supported=no 25966 _pkg_short_errors_supported=no
25446fi 25967fi
25447 if test $_pkg_short_errors_supported = yes; then 25968 if test $_pkg_short_errors_supported = yes; then
25448 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 25969 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
25449 else 25970 else
25450 GL_EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 25971 GL_EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
25451 fi 25972 fi
25452 # Put the nasty error message in config.log where it belongs 25973 # Put the nasty error message in config.log where it belongs
25453 echo "$GL_EET_PKG_ERRORS" >&5 25974 echo "$GL_EET_PKG_ERRORS" >&5
25454 25975
25455 have_dep="no" 25976 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25456elif test $pkg_failed = untried; then
25457 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25458$as_echo "no" >&6; } 25977$as_echo "no" >&6; }
25978 have_dep="no"
25979elif test $pkg_failed = untried; then
25459 have_dep="no" 25980 have_dep="no"
25460else 25981else
25461 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS 25982 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS
@@ -25544,10 +26065,11 @@ pkg_failed=no
25544{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5 26065{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5
25545$as_echo_n "checking for GL_EET... " >&6; } 26066$as_echo_n "checking for GL_EET... " >&6; }
25546 26067
25547if test -n "$GL_EET_CFLAGS"; then 26068if test -n "$PKG_CONFIG"; then
25548 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS" 26069 if test -n "$GL_EET_CFLAGS"; then
25549 elif test -n "$PKG_CONFIG"; then 26070 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS"
25550 if test -n "$PKG_CONFIG" && \ 26071 else
26072 if test -n "$PKG_CONFIG" && \
25551 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 26073 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
25552 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 26074 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
25553 ac_status=$? 26075 ac_status=$?
@@ -25557,13 +26079,15 @@ if test -n "$GL_EET_CFLAGS"; then
25557else 26079else
25558 pkg_failed=yes 26080 pkg_failed=yes
25559fi 26081fi
25560 else 26082 fi
25561 pkg_failed=untried 26083else
26084 pkg_failed=untried
25562fi 26085fi
25563if test -n "$GL_EET_LIBS"; then 26086if test -n "$PKG_CONFIG"; then
25564 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS" 26087 if test -n "$GL_EET_LIBS"; then
25565 elif test -n "$PKG_CONFIG"; then 26088 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS"
25566 if test -n "$PKG_CONFIG" && \ 26089 else
26090 if test -n "$PKG_CONFIG" && \
25567 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 26091 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
25568 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 26092 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
25569 ac_status=$? 26093 ac_status=$?
@@ -25573,15 +26097,14 @@ if test -n "$GL_EET_LIBS"; then
25573else 26097else
25574 pkg_failed=yes 26098 pkg_failed=yes
25575fi 26099fi
25576 else 26100 fi
25577 pkg_failed=untried 26101else
26102 pkg_failed=untried
25578fi 26103fi
25579 26104
25580 26105
25581 26106
25582if test $pkg_failed = yes; then 26107if test $pkg_failed = yes; then
25583 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25584$as_echo "no" >&6; }
25585 26108
25586if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 26109if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
25587 _pkg_short_errors_supported=yes 26110 _pkg_short_errors_supported=yes
@@ -25589,17 +26112,17 @@ else
25589 _pkg_short_errors_supported=no 26112 _pkg_short_errors_supported=no
25590fi 26113fi
25591 if test $_pkg_short_errors_supported = yes; then 26114 if test $_pkg_short_errors_supported = yes; then
25592 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 26115 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
25593 else 26116 else
25594 GL_EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 26117 GL_EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
25595 fi 26118 fi
25596 # Put the nasty error message in config.log where it belongs 26119 # Put the nasty error message in config.log where it belongs
25597 echo "$GL_EET_PKG_ERRORS" >&5 26120 echo "$GL_EET_PKG_ERRORS" >&5
25598 26121
25599 have_dep="no" 26122 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25600elif test $pkg_failed = untried; then
25601 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25602$as_echo "no" >&6; } 26123$as_echo "no" >&6; }
26124 have_dep="no"
26125elif test $pkg_failed = untried; then
25603 have_dep="no" 26126 have_dep="no"
25604else 26127else
25605 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS 26128 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS
@@ -25636,7 +26159,7 @@ fi
25636fi 26159fi
25637 26160
25638if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 26161if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
25639 as_fn_error $? "OpenGL XCB dependencies not found (strict dependencies checking)" "$LINENO" 5 26162 as_fn_error "OpenGL XCB dependencies not found (strict dependencies checking)" "$LINENO" 5
25640fi 26163fi
25641 26164
25642{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL XCB rendering backend will be built" >&5 26165{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL XCB rendering backend will be built" >&5
@@ -25763,7 +26286,7 @@ if test "x$with_x" = xno; then
25763 have_x=disabled 26286 have_x=disabled
25764else 26287else
25765 case $x_includes,$x_libraries in #( 26288 case $x_includes,$x_libraries in #(
25766 *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( 26289 *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
25767 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 26290 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
25768 $as_echo_n "(cached) " >&6 26291 $as_echo_n "(cached) " >&6
25769else 26292else
@@ -25781,7 +26304,7 @@ libdir:
25781 @echo libdir='${LIBDIR}' 26304 @echo libdir='${LIBDIR}'
25782_ACEOF 26305_ACEOF
25783 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then 26306 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
25784 # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 26307 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
25785 for ac_var in incroot usrlibdir libdir; do 26308 for ac_var in incroot usrlibdir libdir; do
25786 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" 26309 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
25787 done 26310 done
@@ -25867,7 +26390,7 @@ else
25867 fi 26390 fi
25868done 26391done
25869fi 26392fi
25870rm -f conftest.err conftest.i conftest.$ac_ext 26393rm -f conftest.err conftest.$ac_ext
25871fi # $ac_x_includes = no 26394fi # $ac_x_includes = no
25872 26395
25873if test "$ac_x_libraries" = no; then 26396if test "$ac_x_libraries" = no; then
@@ -26636,10 +27159,11 @@ pkg_failed=no
26636{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5 27159{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5
26637$as_echo_n "checking for GL_EET... " >&6; } 27160$as_echo_n "checking for GL_EET... " >&6; }
26638 27161
26639if test -n "$GL_EET_CFLAGS"; then 27162if test -n "$PKG_CONFIG"; then
26640 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS" 27163 if test -n "$GL_EET_CFLAGS"; then
26641 elif test -n "$PKG_CONFIG"; then 27164 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS"
26642 if test -n "$PKG_CONFIG" && \ 27165 else
27166 if test -n "$PKG_CONFIG" && \
26643 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 27167 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
26644 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 27168 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
26645 ac_status=$? 27169 ac_status=$?
@@ -26649,13 +27173,15 @@ if test -n "$GL_EET_CFLAGS"; then
26649else 27173else
26650 pkg_failed=yes 27174 pkg_failed=yes
26651fi 27175fi
26652 else 27176 fi
26653 pkg_failed=untried 27177else
27178 pkg_failed=untried
26654fi 27179fi
26655if test -n "$GL_EET_LIBS"; then 27180if test -n "$PKG_CONFIG"; then
26656 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS" 27181 if test -n "$GL_EET_LIBS"; then
26657 elif test -n "$PKG_CONFIG"; then 27182 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS"
26658 if test -n "$PKG_CONFIG" && \ 27183 else
27184 if test -n "$PKG_CONFIG" && \
26659 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 27185 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
26660 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 27186 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
26661 ac_status=$? 27187 ac_status=$?
@@ -26665,15 +27191,14 @@ if test -n "$GL_EET_LIBS"; then
26665else 27191else
26666 pkg_failed=yes 27192 pkg_failed=yes
26667fi 27193fi
26668 else 27194 fi
26669 pkg_failed=untried 27195else
27196 pkg_failed=untried
26670fi 27197fi
26671 27198
26672 27199
26673 27200
26674if test $pkg_failed = yes; then 27201if test $pkg_failed = yes; then
26675 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26676$as_echo "no" >&6; }
26677 27202
26678if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27203if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
26679 _pkg_short_errors_supported=yes 27204 _pkg_short_errors_supported=yes
@@ -26681,17 +27206,17 @@ else
26681 _pkg_short_errors_supported=no 27206 _pkg_short_errors_supported=no
26682fi 27207fi
26683 if test $_pkg_short_errors_supported = yes; then 27208 if test $_pkg_short_errors_supported = yes; then
26684 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 27209 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
26685 else 27210 else
26686 GL_EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 27211 GL_EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
26687 fi 27212 fi
26688 # Put the nasty error message in config.log where it belongs 27213 # Put the nasty error message in config.log where it belongs
26689 echo "$GL_EET_PKG_ERRORS" >&5 27214 echo "$GL_EET_PKG_ERRORS" >&5
26690 27215
26691 have_dep="no" 27216 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26692elif test $pkg_failed = untried; then
26693 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26694$as_echo "no" >&6; } 27217$as_echo "no" >&6; }
27218 have_dep="no"
27219elif test $pkg_failed = untried; then
26695 have_dep="no" 27220 have_dep="no"
26696else 27221else
26697 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS 27222 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS
@@ -26785,10 +27310,11 @@ pkg_failed=no
26785{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5 27310{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5
26786$as_echo_n "checking for GL_EET... " >&6; } 27311$as_echo_n "checking for GL_EET... " >&6; }
26787 27312
26788if test -n "$GL_EET_CFLAGS"; then 27313if test -n "$PKG_CONFIG"; then
26789 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS" 27314 if test -n "$GL_EET_CFLAGS"; then
26790 elif test -n "$PKG_CONFIG"; then 27315 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS"
26791 if test -n "$PKG_CONFIG" && \ 27316 else
27317 if test -n "$PKG_CONFIG" && \
26792 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 27318 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
26793 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 27319 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
26794 ac_status=$? 27320 ac_status=$?
@@ -26798,13 +27324,15 @@ if test -n "$GL_EET_CFLAGS"; then
26798else 27324else
26799 pkg_failed=yes 27325 pkg_failed=yes
26800fi 27326fi
26801 else 27327 fi
26802 pkg_failed=untried 27328else
27329 pkg_failed=untried
26803fi 27330fi
26804if test -n "$GL_EET_LIBS"; then 27331if test -n "$PKG_CONFIG"; then
26805 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS" 27332 if test -n "$GL_EET_LIBS"; then
26806 elif test -n "$PKG_CONFIG"; then 27333 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS"
26807 if test -n "$PKG_CONFIG" && \ 27334 else
27335 if test -n "$PKG_CONFIG" && \
26808 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 27336 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
26809 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 27337 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
26810 ac_status=$? 27338 ac_status=$?
@@ -26814,15 +27342,14 @@ if test -n "$GL_EET_LIBS"; then
26814else 27342else
26815 pkg_failed=yes 27343 pkg_failed=yes
26816fi 27344fi
26817 else 27345 fi
26818 pkg_failed=untried 27346else
27347 pkg_failed=untried
26819fi 27348fi
26820 27349
26821 27350
26822 27351
26823if test $pkg_failed = yes; then 27352if test $pkg_failed = yes; then
26824 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26825$as_echo "no" >&6; }
26826 27353
26827if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27354if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
26828 _pkg_short_errors_supported=yes 27355 _pkg_short_errors_supported=yes
@@ -26830,17 +27357,17 @@ else
26830 _pkg_short_errors_supported=no 27357 _pkg_short_errors_supported=no
26831fi 27358fi
26832 if test $_pkg_short_errors_supported = yes; then 27359 if test $_pkg_short_errors_supported = yes; then
26833 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 27360 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
26834 else 27361 else
26835 GL_EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 27362 GL_EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
26836 fi 27363 fi
26837 # Put the nasty error message in config.log where it belongs 27364 # Put the nasty error message in config.log where it belongs
26838 echo "$GL_EET_PKG_ERRORS" >&5 27365 echo "$GL_EET_PKG_ERRORS" >&5
26839 27366
26840 have_dep="no" 27367 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26841elif test $pkg_failed = untried; then
26842 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26843$as_echo "no" >&6; } 27368$as_echo "no" >&6; }
27369 have_dep="no"
27370elif test $pkg_failed = untried; then
26844 have_dep="no" 27371 have_dep="no"
26845else 27372else
26846 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS 27373 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS
@@ -26878,7 +27405,7 @@ fi
26878fi 27405fi
26879 27406
26880if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 27407if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
26881 as_fn_error $? "OpenGL XLib dependencies not found (strict dependencies checking)" "$LINENO" 5 27408 as_fn_error "OpenGL XLib dependencies not found (strict dependencies checking)" "$LINENO" 5
26882fi 27409fi
26883 27410
26884{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL XLib rendering backend will be built" >&5 27411{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL XLib rendering backend will be built" >&5
@@ -27013,13 +27540,15 @@ have_static_evas_engine_gl_common="no"
27013if test "x$have_evas_engine_gl_xlib" = "xyes" \ 27540if test "x$have_evas_engine_gl_xlib" = "xyes" \
27014 || test "x$have_evas_engine_gl_xcb" = "xyes" \ 27541 || test "x$have_evas_engine_gl_xcb" = "xyes" \
27015 || test "x$have_evas_engine_gl_sdl" = "xyes" \ 27542 || test "x$have_evas_engine_gl_sdl" = "xyes" \
27016 || test "x$have_evas_engine_gl_cocoa" = "xyes"; then 27543 || test "x$have_evas_engine_gl_cocoa" = "xyes" \
27544 || test "x$have_evas_engine_wayland_egl" = "xyes"; then
27017 have_evas_engine_gl_common="yes" 27545 have_evas_engine_gl_common="yes"
27018fi 27546fi
27019if test "x$have_evas_engine_gl_xlib" = "xstatic" \ 27547if test "x$have_evas_engine_gl_xlib" = "xstatic" \
27020 || test "x$have_evas_engine_gl_xcb" = "xstatic" \ 27548 || test "x$have_evas_engine_gl_xcb" = "xstatic" \
27021 || test "x$have_evas_engine_gl_sdl" = "xstatic" \ 27549 || test "x$have_evas_engine_gl_sdl" = "xstatic" \
27022 || test "x$have_evas_engine_gl_cocoa" = "xstatic"; then 27550 || test "x$have_evas_engine_gl_cocoa" = "xstatic" \
27551 || test "x$have_evas_engine_wayland_egl" = "xstatic"; then
27023 have_evas_engine_gl_common="yes" 27552 have_evas_engine_gl_common="yes"
27024 have_static_evas_engine_gl_common="yes" 27553 have_static_evas_engine_gl_common="yes"
27025fi 27554fi
@@ -27220,10 +27749,11 @@ pkg_failed=no
27220{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDB" >&5 27749{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDB" >&5
27221$as_echo_n "checking for EDB... " >&6; } 27750$as_echo_n "checking for EDB... " >&6; }
27222 27751
27223if test -n "$EDB_CFLAGS"; then 27752if test -n "$PKG_CONFIG"; then
27224 pkg_cv_EDB_CFLAGS="$EDB_CFLAGS" 27753 if test -n "$EDB_CFLAGS"; then
27225 elif test -n "$PKG_CONFIG"; then 27754 pkg_cv_EDB_CFLAGS="$EDB_CFLAGS"
27226 if test -n "$PKG_CONFIG" && \ 27755 else
27756 if test -n "$PKG_CONFIG" && \
27227 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edb\""; } >&5 27757 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edb\""; } >&5
27228 ($PKG_CONFIG --exists --print-errors "edb") 2>&5 27758 ($PKG_CONFIG --exists --print-errors "edb") 2>&5
27229 ac_status=$? 27759 ac_status=$?
@@ -27233,13 +27763,15 @@ if test -n "$EDB_CFLAGS"; then
27233else 27763else
27234 pkg_failed=yes 27764 pkg_failed=yes
27235fi 27765fi
27236 else 27766 fi
27237 pkg_failed=untried 27767else
27768 pkg_failed=untried
27238fi 27769fi
27239if test -n "$EDB_LIBS"; then 27770if test -n "$PKG_CONFIG"; then
27240 pkg_cv_EDB_LIBS="$EDB_LIBS" 27771 if test -n "$EDB_LIBS"; then
27241 elif test -n "$PKG_CONFIG"; then 27772 pkg_cv_EDB_LIBS="$EDB_LIBS"
27242 if test -n "$PKG_CONFIG" && \ 27773 else
27774 if test -n "$PKG_CONFIG" && \
27243 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edb\""; } >&5 27775 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edb\""; } >&5
27244 ($PKG_CONFIG --exists --print-errors "edb") 2>&5 27776 ($PKG_CONFIG --exists --print-errors "edb") 2>&5
27245 ac_status=$? 27777 ac_status=$?
@@ -27249,15 +27781,14 @@ if test -n "$EDB_LIBS"; then
27249else 27781else
27250 pkg_failed=yes 27782 pkg_failed=yes
27251fi 27783fi
27252 else 27784 fi
27253 pkg_failed=untried 27785else
27786 pkg_failed=untried
27254fi 27787fi
27255 27788
27256 27789
27257 27790
27258if test $pkg_failed = yes; then 27791if test $pkg_failed = yes; then
27259 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27260$as_echo "no" >&6; }
27261 27792
27262if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27793if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
27263 _pkg_short_errors_supported=yes 27794 _pkg_short_errors_supported=yes
@@ -27265,17 +27796,17 @@ else
27265 _pkg_short_errors_supported=no 27796 _pkg_short_errors_supported=no
27266fi 27797fi
27267 if test $_pkg_short_errors_supported = yes; then 27798 if test $_pkg_short_errors_supported = yes; then
27268 EDB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "edb" 2>&1` 27799 EDB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "edb"`
27269 else 27800 else
27270 EDB_PKG_ERRORS=`$PKG_CONFIG --print-errors "edb" 2>&1` 27801 EDB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "edb"`
27271 fi 27802 fi
27272 # Put the nasty error message in config.log where it belongs 27803 # Put the nasty error message in config.log where it belongs
27273 echo "$EDB_PKG_ERRORS" >&5 27804 echo "$EDB_PKG_ERRORS" >&5
27274 27805
27275 have_dep="no" 27806 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27276elif test $pkg_failed = untried; then
27277 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27278$as_echo "no" >&6; } 27807$as_echo "no" >&6; }
27808 have_dep="no"
27809elif test $pkg_failed = untried; then
27279 have_dep="no" 27810 have_dep="no"
27280else 27811else
27281 EDB_CFLAGS=$pkg_cv_EDB_CFLAGS 27812 EDB_CFLAGS=$pkg_cv_EDB_CFLAGS
@@ -27304,7 +27835,7 @@ fi
27304fi 27835fi
27305 27836
27306if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 27837if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
27307 as_fn_error $? "Edb dependencies not found (strict dependencies checking)" "$LINENO" 5 27838 as_fn_error "Edb dependencies not found (strict dependencies checking)" "$LINENO" 5
27308fi 27839fi
27309 27840
27310{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Edb image loader will be built" >&5 27841{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Edb image loader will be built" >&5
@@ -27402,10 +27933,11 @@ pkg_failed=no
27402{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EET" >&5 27933{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EET" >&5
27403$as_echo_n "checking for EET... " >&6; } 27934$as_echo_n "checking for EET... " >&6; }
27404 27935
27405if test -n "$EET_CFLAGS"; then 27936if test -n "$PKG_CONFIG"; then
27406 pkg_cv_EET_CFLAGS="$EET_CFLAGS" 27937 if test -n "$EET_CFLAGS"; then
27407 elif test -n "$PKG_CONFIG"; then 27938 pkg_cv_EET_CFLAGS="$EET_CFLAGS"
27408 if test -n "$PKG_CONFIG" && \ 27939 else
27940 if test -n "$PKG_CONFIG" && \
27409 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 27941 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
27410 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 27942 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
27411 ac_status=$? 27943 ac_status=$?
@@ -27415,13 +27947,15 @@ if test -n "$EET_CFLAGS"; then
27415else 27947else
27416 pkg_failed=yes 27948 pkg_failed=yes
27417fi 27949fi
27418 else 27950 fi
27419 pkg_failed=untried 27951else
27952 pkg_failed=untried
27420fi 27953fi
27421if test -n "$EET_LIBS"; then 27954if test -n "$PKG_CONFIG"; then
27422 pkg_cv_EET_LIBS="$EET_LIBS" 27955 if test -n "$EET_LIBS"; then
27423 elif test -n "$PKG_CONFIG"; then 27956 pkg_cv_EET_LIBS="$EET_LIBS"
27424 if test -n "$PKG_CONFIG" && \ 27957 else
27958 if test -n "$PKG_CONFIG" && \
27425 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 27959 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
27426 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 27960 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
27427 ac_status=$? 27961 ac_status=$?
@@ -27431,15 +27965,14 @@ if test -n "$EET_LIBS"; then
27431else 27965else
27432 pkg_failed=yes 27966 pkg_failed=yes
27433fi 27967fi
27434 else 27968 fi
27435 pkg_failed=untried 27969else
27970 pkg_failed=untried
27436fi 27971fi
27437 27972
27438 27973
27439 27974
27440if test $pkg_failed = yes; then 27975if test $pkg_failed = yes; then
27441 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27442$as_echo "no" >&6; }
27443 27976
27444if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27977if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
27445 _pkg_short_errors_supported=yes 27978 _pkg_short_errors_supported=yes
@@ -27447,17 +27980,17 @@ else
27447 _pkg_short_errors_supported=no 27980 _pkg_short_errors_supported=no
27448fi 27981fi
27449 if test $_pkg_short_errors_supported = yes; then 27982 if test $_pkg_short_errors_supported = yes; then
27450 EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 27983 EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
27451 else 27984 else
27452 EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 27985 EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
27453 fi 27986 fi
27454 # Put the nasty error message in config.log where it belongs 27987 # Put the nasty error message in config.log where it belongs
27455 echo "$EET_PKG_ERRORS" >&5 27988 echo "$EET_PKG_ERRORS" >&5
27456 27989
27457 have_dep="no" 27990 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27458elif test $pkg_failed = untried; then
27459 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27460$as_echo "no" >&6; } 27991$as_echo "no" >&6; }
27992 have_dep="no"
27993elif test $pkg_failed = untried; then
27461 have_dep="no" 27994 have_dep="no"
27462else 27995else
27463 EET_CFLAGS=$pkg_cv_EET_CFLAGS 27996 EET_CFLAGS=$pkg_cv_EET_CFLAGS
@@ -27486,7 +28019,7 @@ fi
27486fi 28019fi
27487 28020
27488if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 28021if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
27489 as_fn_error $? "Eet dependencies not found (strict dependencies checking)" "$LINENO" 5 28022 as_fn_error "Eet dependencies not found (strict dependencies checking)" "$LINENO" 5
27490fi 28023fi
27491 28024
27492{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Eet image loader will be built" >&5 28025{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Eet image loader will be built" >&5
@@ -27562,10 +28095,11 @@ pkg_failed=no
27562{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EET" >&5 28095{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EET" >&5
27563$as_echo_n "checking for EET... " >&6; } 28096$as_echo_n "checking for EET... " >&6; }
27564 28097
27565if test -n "$EET_CFLAGS"; then 28098if test -n "$PKG_CONFIG"; then
27566 pkg_cv_EET_CFLAGS="$EET_CFLAGS" 28099 if test -n "$EET_CFLAGS"; then
27567 elif test -n "$PKG_CONFIG"; then 28100 pkg_cv_EET_CFLAGS="$EET_CFLAGS"
27568 if test -n "$PKG_CONFIG" && \ 28101 else
28102 if test -n "$PKG_CONFIG" && \
27569 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 28103 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
27570 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 28104 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
27571 ac_status=$? 28105 ac_status=$?
@@ -27575,13 +28109,15 @@ if test -n "$EET_CFLAGS"; then
27575else 28109else
27576 pkg_failed=yes 28110 pkg_failed=yes
27577fi 28111fi
27578 else 28112 fi
27579 pkg_failed=untried 28113else
28114 pkg_failed=untried
27580fi 28115fi
27581if test -n "$EET_LIBS"; then 28116if test -n "$PKG_CONFIG"; then
27582 pkg_cv_EET_LIBS="$EET_LIBS" 28117 if test -n "$EET_LIBS"; then
27583 elif test -n "$PKG_CONFIG"; then 28118 pkg_cv_EET_LIBS="$EET_LIBS"
27584 if test -n "$PKG_CONFIG" && \ 28119 else
28120 if test -n "$PKG_CONFIG" && \
27585 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 28121 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
27586 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 28122 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
27587 ac_status=$? 28123 ac_status=$?
@@ -27591,15 +28127,14 @@ if test -n "$EET_LIBS"; then
27591else 28127else
27592 pkg_failed=yes 28128 pkg_failed=yes
27593fi 28129fi
27594 else 28130 fi
27595 pkg_failed=untried 28131else
28132 pkg_failed=untried
27596fi 28133fi
27597 28134
27598 28135
27599 28136
27600if test $pkg_failed = yes; then 28137if test $pkg_failed = yes; then
27601 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27602$as_echo "no" >&6; }
27603 28138
27604if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 28139if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
27605 _pkg_short_errors_supported=yes 28140 _pkg_short_errors_supported=yes
@@ -27607,17 +28142,17 @@ else
27607 _pkg_short_errors_supported=no 28142 _pkg_short_errors_supported=no
27608fi 28143fi
27609 if test $_pkg_short_errors_supported = yes; then 28144 if test $_pkg_short_errors_supported = yes; then
27610 EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 28145 EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
27611 else 28146 else
27612 EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 28147 EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
27613 fi 28148 fi
27614 # Put the nasty error message in config.log where it belongs 28149 # Put the nasty error message in config.log where it belongs
27615 echo "$EET_PKG_ERRORS" >&5 28150 echo "$EET_PKG_ERRORS" >&5
27616 28151
27617 have_evas_font_loader_eet="no" 28152 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27618elif test $pkg_failed = untried; then
27619 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27620$as_echo "no" >&6; } 28153$as_echo "no" >&6; }
28154 have_evas_font_loader_eet="no"
28155elif test $pkg_failed = untried; then
27621 have_evas_font_loader_eet="no" 28156 have_evas_font_loader_eet="no"
27622else 28157else
27623 EET_CFLAGS=$pkg_cv_EET_CFLAGS 28158 EET_CFLAGS=$pkg_cv_EET_CFLAGS
@@ -27629,7 +28164,7 @@ fi
27629fi 28164fi
27630 28165
27631if test "x${have_evas_font_loader_eet}" = "xno" -a "x$want_loader" = "xyes" -a "x$use_strict" = "xyes" ; then 28166if test "x${have_evas_font_loader_eet}" = "xno" -a "x$want_loader" = "xyes" -a "x$use_strict" = "xyes" ; then
27632 as_fn_error $? "Eet dependencies not found (strict dependencies checking)" "$LINENO" 5 28167 as_fn_error "Eet dependencies not found (strict dependencies checking)" "$LINENO" 5
27633fi 28168fi
27634 28169
27635if test "x$have_evas_font_loader_eet" = "xyes" ; then 28170if test "x$have_evas_font_loader_eet" = "xyes" ; then
@@ -27798,7 +28333,7 @@ fi
27798fi 28333fi
27799 28334
27800if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 28335if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
27801 as_fn_error $? "Gif dependencies not found (strict dependencies checking)" "$LINENO" 5 28336 as_fn_error "Gif dependencies not found (strict dependencies checking)" "$LINENO" 5
27802fi 28337fi
27803 28338
27804{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Gif image loader will be built" >&5 28339{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Gif image loader will be built" >&5
@@ -27988,7 +28523,7 @@ fi
27988fi 28523fi
27989 28524
27990if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 28525if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
27991 as_fn_error $? "Jpeg dependencies not found (strict dependencies checking)" "$LINENO" 5 28526 as_fn_error "Jpeg dependencies not found (strict dependencies checking)" "$LINENO" 5
27992fi 28527fi
27993 28528
27994{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Jpeg image loader will be built" >&5 28529{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Jpeg image loader will be built" >&5
@@ -28114,7 +28649,7 @@ fi
28114fi 28649fi
28115 28650
28116if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 28651if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
28117 as_fn_error $? "PMAPS dependencies not found (strict dependencies checking)" "$LINENO" 5 28652 as_fn_error "PMAPS dependencies not found (strict dependencies checking)" "$LINENO" 5
28118fi 28653fi
28119 28654
28120{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PMAPS image loader will be built" >&5 28655{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PMAPS image loader will be built" >&5
@@ -28212,10 +28747,11 @@ pkg_failed=no
28212{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5 28747{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5
28213$as_echo_n "checking for PNG... " >&6; } 28748$as_echo_n "checking for PNG... " >&6; }
28214 28749
28215if test -n "$PNG_CFLAGS"; then 28750if test -n "$PKG_CONFIG"; then
28216 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS" 28751 if test -n "$PNG_CFLAGS"; then
28217 elif test -n "$PKG_CONFIG"; then 28752 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS"
28218 if test -n "$PKG_CONFIG" && \ 28753 else
28754 if test -n "$PKG_CONFIG" && \
28219 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng >= 1.2.10\""; } >&5 28755 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng >= 1.2.10\""; } >&5
28220 ($PKG_CONFIG --exists --print-errors "libpng >= 1.2.10") 2>&5 28756 ($PKG_CONFIG --exists --print-errors "libpng >= 1.2.10") 2>&5
28221 ac_status=$? 28757 ac_status=$?
@@ -28225,13 +28761,15 @@ if test -n "$PNG_CFLAGS"; then
28225else 28761else
28226 pkg_failed=yes 28762 pkg_failed=yes
28227fi 28763fi
28228 else 28764 fi
28229 pkg_failed=untried 28765else
28766 pkg_failed=untried
28230fi 28767fi
28231if test -n "$PNG_LIBS"; then 28768if test -n "$PKG_CONFIG"; then
28232 pkg_cv_PNG_LIBS="$PNG_LIBS" 28769 if test -n "$PNG_LIBS"; then
28233 elif test -n "$PKG_CONFIG"; then 28770 pkg_cv_PNG_LIBS="$PNG_LIBS"
28234 if test -n "$PKG_CONFIG" && \ 28771 else
28772 if test -n "$PKG_CONFIG" && \
28235 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng >= 1.2.10\""; } >&5 28773 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng >= 1.2.10\""; } >&5
28236 ($PKG_CONFIG --exists --print-errors "libpng >= 1.2.10") 2>&5 28774 ($PKG_CONFIG --exists --print-errors "libpng >= 1.2.10") 2>&5
28237 ac_status=$? 28775 ac_status=$?
@@ -28241,15 +28779,14 @@ if test -n "$PNG_LIBS"; then
28241else 28779else
28242 pkg_failed=yes 28780 pkg_failed=yes
28243fi 28781fi
28244 else 28782 fi
28245 pkg_failed=untried 28783else
28784 pkg_failed=untried
28246fi 28785fi
28247 28786
28248 28787
28249 28788
28250if test $pkg_failed = yes; then 28789if test $pkg_failed = yes; then
28251 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28252$as_echo "no" >&6; }
28253 28790
28254if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 28791if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28255 _pkg_short_errors_supported=yes 28792 _pkg_short_errors_supported=yes
@@ -28257,17 +28794,17 @@ else
28257 _pkg_short_errors_supported=no 28794 _pkg_short_errors_supported=no
28258fi 28795fi
28259 if test $_pkg_short_errors_supported = yes; then 28796 if test $_pkg_short_errors_supported = yes; then
28260 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpng >= 1.2.10" 2>&1` 28797 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpng >= 1.2.10"`
28261 else 28798 else
28262 PNG_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpng >= 1.2.10" 2>&1` 28799 PNG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpng >= 1.2.10"`
28263 fi 28800 fi
28264 # Put the nasty error message in config.log where it belongs 28801 # Put the nasty error message in config.log where it belongs
28265 echo "$PNG_PKG_ERRORS" >&5 28802 echo "$PNG_PKG_ERRORS" >&5
28266 28803
28267 have_dep="no" 28804 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28268elif test $pkg_failed = untried; then
28269 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28270$as_echo "no" >&6; } 28805$as_echo "no" >&6; }
28806 have_dep="no"
28807elif test $pkg_failed = untried; then
28271 have_dep="no" 28808 have_dep="no"
28272else 28809else
28273 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS 28810 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS
@@ -28283,10 +28820,11 @@ pkg_failed=no
28283{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5 28820{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5
28284$as_echo_n "checking for PNG... " >&6; } 28821$as_echo_n "checking for PNG... " >&6; }
28285 28822
28286if test -n "$PNG_CFLAGS"; then 28823if test -n "$PKG_CONFIG"; then
28287 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS" 28824 if test -n "$PNG_CFLAGS"; then
28288 elif test -n "$PKG_CONFIG"; then 28825 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS"
28289 if test -n "$PKG_CONFIG" && \ 28826 else
28827 if test -n "$PKG_CONFIG" && \
28290 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng15\""; } >&5 28828 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng15\""; } >&5
28291 ($PKG_CONFIG --exists --print-errors "libpng15") 2>&5 28829 ($PKG_CONFIG --exists --print-errors "libpng15") 2>&5
28292 ac_status=$? 28830 ac_status=$?
@@ -28296,13 +28834,15 @@ if test -n "$PNG_CFLAGS"; then
28296else 28834else
28297 pkg_failed=yes 28835 pkg_failed=yes
28298fi 28836fi
28299 else 28837 fi
28300 pkg_failed=untried 28838else
28839 pkg_failed=untried
28301fi 28840fi
28302if test -n "$PNG_LIBS"; then 28841if test -n "$PKG_CONFIG"; then
28303 pkg_cv_PNG_LIBS="$PNG_LIBS" 28842 if test -n "$PNG_LIBS"; then
28304 elif test -n "$PKG_CONFIG"; then 28843 pkg_cv_PNG_LIBS="$PNG_LIBS"
28305 if test -n "$PKG_CONFIG" && \ 28844 else
28845 if test -n "$PKG_CONFIG" && \
28306 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng15\""; } >&5 28846 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng15\""; } >&5
28307 ($PKG_CONFIG --exists --print-errors "libpng15") 2>&5 28847 ($PKG_CONFIG --exists --print-errors "libpng15") 2>&5
28308 ac_status=$? 28848 ac_status=$?
@@ -28312,15 +28852,14 @@ if test -n "$PNG_LIBS"; then
28312else 28852else
28313 pkg_failed=yes 28853 pkg_failed=yes
28314fi 28854fi
28315 else 28855 fi
28316 pkg_failed=untried 28856else
28857 pkg_failed=untried
28317fi 28858fi
28318 28859
28319 28860
28320 28861
28321if test $pkg_failed = yes; then 28862if test $pkg_failed = yes; then
28322 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28323$as_echo "no" >&6; }
28324 28863
28325if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 28864if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28326 _pkg_short_errors_supported=yes 28865 _pkg_short_errors_supported=yes
@@ -28328,17 +28867,17 @@ else
28328 _pkg_short_errors_supported=no 28867 _pkg_short_errors_supported=no
28329fi 28868fi
28330 if test $_pkg_short_errors_supported = yes; then 28869 if test $_pkg_short_errors_supported = yes; then
28331 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpng15" 2>&1` 28870 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpng15"`
28332 else 28871 else
28333 PNG_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpng15" 2>&1` 28872 PNG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpng15"`
28334 fi 28873 fi
28335 # Put the nasty error message in config.log where it belongs 28874 # Put the nasty error message in config.log where it belongs
28336 echo "$PNG_PKG_ERRORS" >&5 28875 echo "$PNG_PKG_ERRORS" >&5
28337 28876
28338 have_dep="no" 28877 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28339elif test $pkg_failed = untried; then
28340 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28341$as_echo "no" >&6; } 28878$as_echo "no" >&6; }
28879 have_dep="no"
28880elif test $pkg_failed = untried; then
28342 have_dep="no" 28881 have_dep="no"
28343else 28882else
28344 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS 28883 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS
@@ -28355,10 +28894,11 @@ pkg_failed=no
28355{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5 28894{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5
28356$as_echo_n "checking for PNG... " >&6; } 28895$as_echo_n "checking for PNG... " >&6; }
28357 28896
28358if test -n "$PNG_CFLAGS"; then 28897if test -n "$PKG_CONFIG"; then
28359 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS" 28898 if test -n "$PNG_CFLAGS"; then
28360 elif test -n "$PKG_CONFIG"; then 28899 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS"
28361 if test -n "$PKG_CONFIG" && \ 28900 else
28901 if test -n "$PKG_CONFIG" && \
28362 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng14\""; } >&5 28902 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng14\""; } >&5
28363 ($PKG_CONFIG --exists --print-errors "libpng14") 2>&5 28903 ($PKG_CONFIG --exists --print-errors "libpng14") 2>&5
28364 ac_status=$? 28904 ac_status=$?
@@ -28368,13 +28908,15 @@ if test -n "$PNG_CFLAGS"; then
28368else 28908else
28369 pkg_failed=yes 28909 pkg_failed=yes
28370fi 28910fi
28371 else 28911 fi
28372 pkg_failed=untried 28912else
28913 pkg_failed=untried
28373fi 28914fi
28374if test -n "$PNG_LIBS"; then 28915if test -n "$PKG_CONFIG"; then
28375 pkg_cv_PNG_LIBS="$PNG_LIBS" 28916 if test -n "$PNG_LIBS"; then
28376 elif test -n "$PKG_CONFIG"; then 28917 pkg_cv_PNG_LIBS="$PNG_LIBS"
28377 if test -n "$PKG_CONFIG" && \ 28918 else
28919 if test -n "$PKG_CONFIG" && \
28378 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng14\""; } >&5 28920 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng14\""; } >&5
28379 ($PKG_CONFIG --exists --print-errors "libpng14") 2>&5 28921 ($PKG_CONFIG --exists --print-errors "libpng14") 2>&5
28380 ac_status=$? 28922 ac_status=$?
@@ -28384,15 +28926,14 @@ if test -n "$PNG_LIBS"; then
28384else 28926else
28385 pkg_failed=yes 28927 pkg_failed=yes
28386fi 28928fi
28387 else 28929 fi
28388 pkg_failed=untried 28930else
28931 pkg_failed=untried
28389fi 28932fi
28390 28933
28391 28934
28392 28935
28393if test $pkg_failed = yes; then 28936if test $pkg_failed = yes; then
28394 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28395$as_echo "no" >&6; }
28396 28937
28397if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 28938if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28398 _pkg_short_errors_supported=yes 28939 _pkg_short_errors_supported=yes
@@ -28400,17 +28941,17 @@ else
28400 _pkg_short_errors_supported=no 28941 _pkg_short_errors_supported=no
28401fi 28942fi
28402 if test $_pkg_short_errors_supported = yes; then 28943 if test $_pkg_short_errors_supported = yes; then
28403 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpng14" 2>&1` 28944 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpng14"`
28404 else 28945 else
28405 PNG_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpng14" 2>&1` 28946 PNG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpng14"`
28406 fi 28947 fi
28407 # Put the nasty error message in config.log where it belongs 28948 # Put the nasty error message in config.log where it belongs
28408 echo "$PNG_PKG_ERRORS" >&5 28949 echo "$PNG_PKG_ERRORS" >&5
28409 28950
28410 have_dep="no" 28951 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28411elif test $pkg_failed = untried; then
28412 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28413$as_echo "no" >&6; } 28952$as_echo "no" >&6; }
28953 have_dep="no"
28954elif test $pkg_failed = untried; then
28414 have_dep="no" 28955 have_dep="no"
28415else 28956else
28416 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS 28957 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS
@@ -28427,10 +28968,11 @@ pkg_failed=no
28427{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5 28968{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5
28428$as_echo_n "checking for PNG... " >&6; } 28969$as_echo_n "checking for PNG... " >&6; }
28429 28970
28430if test -n "$PNG_CFLAGS"; then 28971if test -n "$PKG_CONFIG"; then
28431 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS" 28972 if test -n "$PNG_CFLAGS"; then
28432 elif test -n "$PKG_CONFIG"; then 28973 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS"
28433 if test -n "$PKG_CONFIG" && \ 28974 else
28975 if test -n "$PKG_CONFIG" && \
28434 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng12 >= 1.2.10\""; } >&5 28976 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng12 >= 1.2.10\""; } >&5
28435 ($PKG_CONFIG --exists --print-errors "libpng12 >= 1.2.10") 2>&5 28977 ($PKG_CONFIG --exists --print-errors "libpng12 >= 1.2.10") 2>&5
28436 ac_status=$? 28978 ac_status=$?
@@ -28440,13 +28982,15 @@ if test -n "$PNG_CFLAGS"; then
28440else 28982else
28441 pkg_failed=yes 28983 pkg_failed=yes
28442fi 28984fi
28443 else 28985 fi
28444 pkg_failed=untried 28986else
28987 pkg_failed=untried
28445fi 28988fi
28446if test -n "$PNG_LIBS"; then 28989if test -n "$PKG_CONFIG"; then
28447 pkg_cv_PNG_LIBS="$PNG_LIBS" 28990 if test -n "$PNG_LIBS"; then
28448 elif test -n "$PKG_CONFIG"; then 28991 pkg_cv_PNG_LIBS="$PNG_LIBS"
28449 if test -n "$PKG_CONFIG" && \ 28992 else
28993 if test -n "$PKG_CONFIG" && \
28450 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng12 >= 1.2.10\""; } >&5 28994 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng12 >= 1.2.10\""; } >&5
28451 ($PKG_CONFIG --exists --print-errors "libpng12 >= 1.2.10") 2>&5 28995 ($PKG_CONFIG --exists --print-errors "libpng12 >= 1.2.10") 2>&5
28452 ac_status=$? 28996 ac_status=$?
@@ -28456,15 +29000,14 @@ if test -n "$PNG_LIBS"; then
28456else 29000else
28457 pkg_failed=yes 29001 pkg_failed=yes
28458fi 29002fi
28459 else 29003 fi
28460 pkg_failed=untried 29004else
29005 pkg_failed=untried
28461fi 29006fi
28462 29007
28463 29008
28464 29009
28465if test $pkg_failed = yes; then 29010if test $pkg_failed = yes; then
28466 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28467$as_echo "no" >&6; }
28468 29011
28469if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 29012if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28470 _pkg_short_errors_supported=yes 29013 _pkg_short_errors_supported=yes
@@ -28472,17 +29015,17 @@ else
28472 _pkg_short_errors_supported=no 29015 _pkg_short_errors_supported=no
28473fi 29016fi
28474 if test $_pkg_short_errors_supported = yes; then 29017 if test $_pkg_short_errors_supported = yes; then
28475 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpng12 >= 1.2.10" 2>&1` 29018 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpng12 >= 1.2.10"`
28476 else 29019 else
28477 PNG_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpng12 >= 1.2.10" 2>&1` 29020 PNG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpng12 >= 1.2.10"`
28478 fi 29021 fi
28479 # Put the nasty error message in config.log where it belongs 29022 # Put the nasty error message in config.log where it belongs
28480 echo "$PNG_PKG_ERRORS" >&5 29023 echo "$PNG_PKG_ERRORS" >&5
28481 29024
28482 have_dep="no" 29025 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28483elif test $pkg_failed = untried; then
28484 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28485$as_echo "no" >&6; } 29026$as_echo "no" >&6; }
29027 have_dep="no"
29028elif test $pkg_failed = untried; then
28486 have_dep="no" 29029 have_dep="no"
28487else 29030else
28488 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS 29031 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS
@@ -28513,7 +29056,7 @@ fi
28513fi 29056fi
28514 29057
28515if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29058if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
28516 as_fn_error $? "PNG dependencies not found (strict dependencies checking)" "$LINENO" 5 29059 as_fn_error "PNG dependencies not found (strict dependencies checking)" "$LINENO" 5
28517fi 29060fi
28518 29061
28519{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PNG image loader will be built" >&5 29062{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PNG image loader will be built" >&5
@@ -28611,10 +29154,11 @@ pkg_failed=no
28611{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SVG" >&5 29154{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SVG" >&5
28612$as_echo_n "checking for SVG... " >&6; } 29155$as_echo_n "checking for SVG... " >&6; }
28613 29156
28614if test -n "$SVG_CFLAGS"; then 29157if test -n "$PKG_CONFIG"; then
28615 pkg_cv_SVG_CFLAGS="$SVG_CFLAGS" 29158 if test -n "$SVG_CFLAGS"; then
28616 elif test -n "$PKG_CONFIG"; then 29159 pkg_cv_SVG_CFLAGS="$SVG_CFLAGS"
28617 if test -n "$PKG_CONFIG" && \ 29160 else
29161 if test -n "$PKG_CONFIG" && \
28618 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"librsvg-2.0 >= 2.14.0 29162 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"librsvg-2.0 >= 2.14.0
28619 cairo >= 1.0.0\""; } >&5 29163 cairo >= 1.0.0\""; } >&5
28620 ($PKG_CONFIG --exists --print-errors "librsvg-2.0 >= 2.14.0 29164 ($PKG_CONFIG --exists --print-errors "librsvg-2.0 >= 2.14.0
@@ -28627,13 +29171,15 @@ if test -n "$SVG_CFLAGS"; then
28627else 29171else
28628 pkg_failed=yes 29172 pkg_failed=yes
28629fi 29173fi
28630 else 29174 fi
28631 pkg_failed=untried 29175else
29176 pkg_failed=untried
28632fi 29177fi
28633if test -n "$SVG_LIBS"; then 29178if test -n "$PKG_CONFIG"; then
28634 pkg_cv_SVG_LIBS="$SVG_LIBS" 29179 if test -n "$SVG_LIBS"; then
28635 elif test -n "$PKG_CONFIG"; then 29180 pkg_cv_SVG_LIBS="$SVG_LIBS"
28636 if test -n "$PKG_CONFIG" && \ 29181 else
29182 if test -n "$PKG_CONFIG" && \
28637 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"librsvg-2.0 >= 2.14.0 29183 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"librsvg-2.0 >= 2.14.0
28638 cairo >= 1.0.0\""; } >&5 29184 cairo >= 1.0.0\""; } >&5
28639 ($PKG_CONFIG --exists --print-errors "librsvg-2.0 >= 2.14.0 29185 ($PKG_CONFIG --exists --print-errors "librsvg-2.0 >= 2.14.0
@@ -28646,15 +29192,14 @@ if test -n "$SVG_LIBS"; then
28646else 29192else
28647 pkg_failed=yes 29193 pkg_failed=yes
28648fi 29194fi
28649 else 29195 fi
28650 pkg_failed=untried 29196else
29197 pkg_failed=untried
28651fi 29198fi
28652 29199
28653 29200
28654 29201
28655if test $pkg_failed = yes; then 29202if test $pkg_failed = yes; then
28656 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28657$as_echo "no" >&6; }
28658 29203
28659if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 29204if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28660 _pkg_short_errors_supported=yes 29205 _pkg_short_errors_supported=yes
@@ -28662,20 +29207,20 @@ else
28662 _pkg_short_errors_supported=no 29207 _pkg_short_errors_supported=no
28663fi 29208fi
28664 if test $_pkg_short_errors_supported = yes; then 29209 if test $_pkg_short_errors_supported = yes; then
28665 SVG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "librsvg-2.0 >= 2.14.0 29210 SVG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "librsvg-2.0 >= 2.14.0
28666 cairo >= 1.0.0" 2>&1` 29211 cairo >= 1.0.0"`
28667 else 29212 else
28668 SVG_PKG_ERRORS=`$PKG_CONFIG --print-errors "librsvg-2.0 >= 2.14.0 29213 SVG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "librsvg-2.0 >= 2.14.0
28669 cairo >= 1.0.0" 2>&1` 29214 cairo >= 1.0.0"`
28670 fi 29215 fi
28671 # Put the nasty error message in config.log where it belongs 29216 # Put the nasty error message in config.log where it belongs
28672 echo "$SVG_PKG_ERRORS" >&5 29217 echo "$SVG_PKG_ERRORS" >&5
28673 29218
28674 have_svg="no" 29219 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29220$as_echo "no" >&6; }
29221 have_svg="no"
28675 29222
28676elif test $pkg_failed = untried; then 29223elif test $pkg_failed = untried; then
28677 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28678$as_echo "no" >&6; }
28679 have_svg="no" 29224 have_svg="no"
28680 29225
28681else 29226else
@@ -28708,7 +29253,7 @@ fi
28708fi 29253fi
28709 29254
28710if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29255if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
28711 as_fn_error $? "SVG dependencies not found (strict dependencies checking)" "$LINENO" 5 29256 as_fn_error "SVG dependencies not found (strict dependencies checking)" "$LINENO" 5
28712fi 29257fi
28713 29258
28714{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether SVG image loader will be built" >&5 29259{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether SVG image loader will be built" >&5
@@ -28962,7 +29507,7 @@ fi
28962fi 29507fi
28963 29508
28964if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29509if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
28965 as_fn_error $? "Tiff dependencies not found (strict dependencies checking)" "$LINENO" 5 29510 as_fn_error "Tiff dependencies not found (strict dependencies checking)" "$LINENO" 5
28966fi 29511fi
28967 29512
28968{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Tiff image loader will be built" >&5 29513{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Tiff image loader will be built" >&5
@@ -29067,7 +29612,7 @@ fi
29067fi 29612fi
29068 29613
29069if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29614if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29070 as_fn_error $? "XPM dependencies not found (strict dependencies checking)" "$LINENO" 5 29615 as_fn_error "XPM dependencies not found (strict dependencies checking)" "$LINENO" 5
29071fi 29616fi
29072 29617
29073{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether XPM image loader will be built" >&5 29618{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether XPM image loader will be built" >&5
@@ -29172,7 +29717,7 @@ fi
29172fi 29717fi
29173 29718
29174if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29719if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29175 as_fn_error $? "BMP dependencies not found (strict dependencies checking)" "$LINENO" 5 29720 as_fn_error "BMP dependencies not found (strict dependencies checking)" "$LINENO" 5
29176fi 29721fi
29177 29722
29178{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BMP image loader will be built" >&5 29723{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BMP image loader will be built" >&5
@@ -29277,7 +29822,7 @@ fi
29277fi 29822fi
29278 29823
29279if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29824if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29280 as_fn_error $? "TGA dependencies not found (strict dependencies checking)" "$LINENO" 5 29825 as_fn_error "TGA dependencies not found (strict dependencies checking)" "$LINENO" 5
29281fi 29826fi
29282 29827
29283{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether TGA image loader will be built" >&5 29828{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether TGA image loader will be built" >&5
@@ -29382,7 +29927,7 @@ fi
29382fi 29927fi
29383 29928
29384if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29929if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29385 as_fn_error $? "WBMP dependencies not found (strict dependencies checking)" "$LINENO" 5 29930 as_fn_error "WBMP dependencies not found (strict dependencies checking)" "$LINENO" 5
29386fi 29931fi
29387 29932
29388{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether WBMP image loader will be built" >&5 29933{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether WBMP image loader will be built" >&5
@@ -29487,7 +30032,7 @@ fi
29487fi 30032fi
29488 30033
29489if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 30034if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29490 as_fn_error $? "ICO dependencies not found (strict dependencies checking)" "$LINENO" 5 30035 as_fn_error "ICO dependencies not found (strict dependencies checking)" "$LINENO" 5
29491fi 30036fi
29492 30037
29493{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ICO image loader will be built" >&5 30038{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ICO image loader will be built" >&5
@@ -29592,7 +30137,7 @@ fi
29592fi 30137fi
29593 30138
29594if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 30139if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29595 as_fn_error $? "PSD dependencies not found (strict dependencies checking)" "$LINENO" 5 30140 as_fn_error "PSD dependencies not found (strict dependencies checking)" "$LINENO" 5
29596fi 30141fi
29597 30142
29598{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PSD image loader will be built" >&5 30143{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PSD image loader will be built" >&5
@@ -29697,7 +30242,7 @@ fi
29697fi 30242fi
29698 30243
29699if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 30244if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29700 as_fn_error $? "GENERIC dependencies not found (strict dependencies checking)" "$LINENO" 5 30245 as_fn_error "GENERIC dependencies not found (strict dependencies checking)" "$LINENO" 5
29701fi 30246fi
29702 30247
29703{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GENERIC image loader will be built" >&5 30248{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GENERIC image loader will be built" >&5
@@ -29780,7 +30325,8 @@ for ac_header in pthread.h sched.h
29780do : 30325do :
29781 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 30326 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
29782ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 30327ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
29783if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 30328eval as_val=\$$as_ac_Header
30329 if test "x$as_val" = x""yes; then :
29784 cat >>confdefs.h <<_ACEOF 30330 cat >>confdefs.h <<_ACEOF
29785#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 30331#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
29786_ACEOF 30332_ACEOF
@@ -29846,7 +30392,7 @@ $as_echo "#define BUILD_PTHREAD 1" >>confdefs.h
29846 need_pthreads="yes" 30392 need_pthreads="yes"
29847 else 30393 else
29848 if "x$use_strict" = "xyes"; then 30394 if "x$use_strict" = "xyes"; then
29849 as_fn_error $? "pthreads headers or functions not found (strict dependencies checking)" "$LINENO" 5 30395 as_fn_error "pthreads headers or functions not found (strict dependencies checking)" "$LINENO" 5
29850 else 30396 else
29851 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no: pthread headers or functions not found" >&5 30397 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no: pthread headers or functions not found" >&5
29852$as_echo "no: pthread headers or functions not found" >&6; } 30398$as_echo "no: pthread headers or functions not found" >&6; }
@@ -29939,10 +30485,11 @@ pkg_failed=no
29939{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XEXT" >&5 30485{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XEXT" >&5
29940$as_echo_n "checking for XEXT... " >&6; } 30486$as_echo_n "checking for XEXT... " >&6; }
29941 30487
29942if test -n "$XEXT_CFLAGS"; then 30488if test -n "$PKG_CONFIG"; then
29943 pkg_cv_XEXT_CFLAGS="$XEXT_CFLAGS" 30489 if test -n "$XEXT_CFLAGS"; then
29944 elif test -n "$PKG_CONFIG"; then 30490 pkg_cv_XEXT_CFLAGS="$XEXT_CFLAGS"
29945 if test -n "$PKG_CONFIG" && \ 30491 else
30492 if test -n "$PKG_CONFIG" && \
29946 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xext < 1.1.1\""; } >&5 30493 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xext < 1.1.1\""; } >&5
29947 ($PKG_CONFIG --exists --print-errors "xext < 1.1.1") 2>&5 30494 ($PKG_CONFIG --exists --print-errors "xext < 1.1.1") 2>&5
29948 ac_status=$? 30495 ac_status=$?
@@ -29952,13 +30499,15 @@ if test -n "$XEXT_CFLAGS"; then
29952else 30499else
29953 pkg_failed=yes 30500 pkg_failed=yes
29954fi 30501fi
29955 else 30502 fi
29956 pkg_failed=untried 30503else
30504 pkg_failed=untried
29957fi 30505fi
29958if test -n "$XEXT_LIBS"; then 30506if test -n "$PKG_CONFIG"; then
29959 pkg_cv_XEXT_LIBS="$XEXT_LIBS" 30507 if test -n "$XEXT_LIBS"; then
29960 elif test -n "$PKG_CONFIG"; then 30508 pkg_cv_XEXT_LIBS="$XEXT_LIBS"
29961 if test -n "$PKG_CONFIG" && \ 30509 else
30510 if test -n "$PKG_CONFIG" && \
29962 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xext < 1.1.1\""; } >&5 30511 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xext < 1.1.1\""; } >&5
29963 ($PKG_CONFIG --exists --print-errors "xext < 1.1.1") 2>&5 30512 ($PKG_CONFIG --exists --print-errors "xext < 1.1.1") 2>&5
29964 ac_status=$? 30513 ac_status=$?
@@ -29968,15 +30517,14 @@ if test -n "$XEXT_LIBS"; then
29968else 30517else
29969 pkg_failed=yes 30518 pkg_failed=yes
29970fi 30519fi
29971 else 30520 fi
29972 pkg_failed=untried 30521else
30522 pkg_failed=untried
29973fi 30523fi
29974 30524
29975 30525
29976 30526
29977if test $pkg_failed = yes; then 30527if test $pkg_failed = yes; then
29978 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29979$as_echo "no" >&6; }
29980 30528
29981if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 30529if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
29982 _pkg_short_errors_supported=yes 30530 _pkg_short_errors_supported=yes
@@ -29984,18 +30532,18 @@ else
29984 _pkg_short_errors_supported=no 30532 _pkg_short_errors_supported=no
29985fi 30533fi
29986 if test $_pkg_short_errors_supported = yes; then 30534 if test $_pkg_short_errors_supported = yes; then
29987 XEXT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xext < 1.1.1" 2>&1` 30535 XEXT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xext < 1.1.1"`
29988 else 30536 else
29989 XEXT_PKG_ERRORS=`$PKG_CONFIG --print-errors "xext < 1.1.1" 2>&1` 30537 XEXT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xext < 1.1.1"`
29990 fi 30538 fi
29991 # Put the nasty error message in config.log where it belongs 30539 # Put the nasty error message in config.log where it belongs
29992 echo "$XEXT_PKG_ERRORS" >&5 30540 echo "$XEXT_PKG_ERRORS" >&5
29993 30541
29994 build_avoid_libXext_bug=no 30542 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
30543$as_echo "no" >&6; }
30544 build_avoid_libXext_bug=no
29995 30545
29996elif test $pkg_failed = untried; then 30546elif test $pkg_failed = untried; then
29997 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29998$as_echo "no" >&6; }
29999 build_avoid_libXext_bug=no 30547 build_avoid_libXext_bug=no
30000 30548
30001else 30549else
@@ -30201,12 +30749,25 @@ $as_echo_n "checking whether to build sse3 code... " >&6; }
30201if test "${enable_cpu_sse3+set}" = set; then : 30749if test "${enable_cpu_sse3+set}" = set; then :
30202 enableval=$enable_cpu_sse3; 30750 enableval=$enable_cpu_sse3;
30203 if test "x$enableval" = "xyes" ; then 30751 if test "x$enableval" = "xyes" ; then
30204 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 30752 ac_fn_c_check_header_mongrel "$LINENO" "immintrin.h" "ac_cv_header_immintrin_h" "$ac_includes_default"
30753if test "x$ac_cv_header_immintrin_h" = x""yes; then :
30754
30755 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
30205$as_echo "yes" >&6; } 30756$as_echo "yes" >&6; }
30206 30757
30207$as_echo "#define BUILD_SSE3 1" >>confdefs.h 30758$as_echo "#define BUILD_SSE3 1" >>confdefs.h
30208 30759
30209 build_cpu_sse3="yes" 30760 build_cpu_sse3="yes"
30761
30762else
30763
30764 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
30765$as_echo "no" >&6; }
30766 build_cpu_sse3="no"
30767
30768fi
30769
30770
30210 else 30771 else
30211 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 30772 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
30212$as_echo "no" >&6; } 30773$as_echo "no" >&6; }
@@ -30218,9 +30779,25 @@ else
30218 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $build_cpu_sse3" >&5 30779 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $build_cpu_sse3" >&5
30219$as_echo "$build_cpu_sse3" >&6; } 30780$as_echo "$build_cpu_sse3" >&6; }
30220 if test "x$build_cpu_sse3" = "xyes" ; then 30781 if test "x$build_cpu_sse3" = "xyes" ; then
30782 ac_fn_c_check_header_mongrel "$LINENO" "immintrin.h" "ac_cv_header_immintrin_h" "$ac_includes_default"
30783if test "x$ac_cv_header_immintrin_h" = x""yes; then :
30784
30785 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
30786$as_echo "yes" >&6; }
30221 30787
30222$as_echo "#define BUILD_SSE3 1" >>confdefs.h 30788$as_echo "#define BUILD_SSE3 1" >>confdefs.h
30223 30789
30790 build_cpu_sse3="yes"
30791
30792else
30793
30794 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
30795$as_echo "no" >&6; }
30796 build_cpu_sse3="no"
30797
30798fi
30799
30800
30224 fi 30801 fi
30225 30802
30226 30803
@@ -30309,7 +30886,7 @@ $as_echo "#define HAVE_ALTIVEC_H 1" >>confdefs.h
30309else 30886else
30310 30887
30311 if test "x$build_cpu_altivec" = "xyes" -a "x$use_strict" = "xyes" ; then 30888 if test "x$build_cpu_altivec" = "xyes" -a "x$use_strict" = "xyes" ; then
30312 as_fn_error $? "Altivec not found (strict dependencies checking)" "$LINENO" 5 30889 as_fn_error "Altivec not found (strict dependencies checking)" "$LINENO" 5
30313 fi 30890 fi
30314 build_cpu_altivec="no" 30891 build_cpu_altivec="no"
30315 30892
@@ -31777,10 +32354,11 @@ pkg_failed=no
31777{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5 32354{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5
31778$as_echo_n "checking for VALGRIND... " >&6; } 32355$as_echo_n "checking for VALGRIND... " >&6; }
31779 32356
31780if test -n "$VALGRIND_CFLAGS"; then 32357if test -n "$PKG_CONFIG"; then
31781 pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS" 32358 if test -n "$VALGRIND_CFLAGS"; then
31782 elif test -n "$PKG_CONFIG"; then 32359 pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS"
31783 if test -n "$PKG_CONFIG" && \ 32360 else
32361 if test -n "$PKG_CONFIG" && \
31784 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5 32362 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5
31785 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5 32363 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5
31786 ac_status=$? 32364 ac_status=$?
@@ -31790,13 +32368,15 @@ if test -n "$VALGRIND_CFLAGS"; then
31790else 32368else
31791 pkg_failed=yes 32369 pkg_failed=yes
31792fi 32370fi
31793 else 32371 fi
31794 pkg_failed=untried 32372else
32373 pkg_failed=untried
31795fi 32374fi
31796if test -n "$VALGRIND_LIBS"; then 32375if test -n "$PKG_CONFIG"; then
31797 pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS" 32376 if test -n "$VALGRIND_LIBS"; then
31798 elif test -n "$PKG_CONFIG"; then 32377 pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS"
31799 if test -n "$PKG_CONFIG" && \ 32378 else
32379 if test -n "$PKG_CONFIG" && \
31800 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5 32380 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5
31801 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5 32381 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5
31802 ac_status=$? 32382 ac_status=$?
@@ -31806,15 +32386,14 @@ if test -n "$VALGRIND_LIBS"; then
31806else 32386else
31807 pkg_failed=yes 32387 pkg_failed=yes
31808fi 32388fi
31809 else 32389 fi
31810 pkg_failed=untried 32390else
32391 pkg_failed=untried
31811fi 32392fi
31812 32393
31813 32394
31814 32395
31815if test $pkg_failed = yes; then 32396if test $pkg_failed = yes; then
31816 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31817$as_echo "no" >&6; }
31818 32397
31819if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 32398if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
31820 _pkg_short_errors_supported=yes 32399 _pkg_short_errors_supported=yes
@@ -31822,25 +32401,25 @@ else
31822 _pkg_short_errors_supported=no 32401 _pkg_short_errors_supported=no
31823fi 32402fi
31824 if test $_pkg_short_errors_supported = yes; then 32403 if test $_pkg_short_errors_supported = yes; then
31825 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "valgrind >= 2.4.0" 2>&1` 32404 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "valgrind >= 2.4.0"`
31826 else 32405 else
31827 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --print-errors "valgrind >= 2.4.0" 2>&1` 32406 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "valgrind >= 2.4.0"`
31828 fi 32407 fi
31829 # Put the nasty error message in config.log where it belongs 32408 # Put the nasty error message in config.log where it belongs
31830 echo "$VALGRIND_PKG_ERRORS" >&5 32409 echo "$VALGRIND_PKG_ERRORS" >&5
31831 32410
32411 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32412$as_echo "no" >&6; }
31832 32413
31833 if test "x$want_valgrind" = "xyes" -a "x$use_strict" = "xyes" ; then 32414 if test "x$want_valgrind" = "xyes" -a "x$use_strict" = "xyes" ; then
31834 as_fn_error $? "Valgrind not found (strict dependencies checking)" "$LINENO" 5 32415 as_fn_error "Valgrind not found (strict dependencies checking)" "$LINENO" 5
31835 fi 32416 fi
31836 32417
31837 32418
31838elif test $pkg_failed = untried; then 32419elif test $pkg_failed = untried; then
31839 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31840$as_echo "no" >&6; }
31841 32420
31842 if test "x$want_valgrind" = "xyes" -a "x$use_strict" = "xyes" ; then 32421 if test "x$want_valgrind" = "xyes" -a "x$use_strict" = "xyes" ; then
31843 as_fn_error $? "Valgrind not found (strict dependencies checking)" "$LINENO" 5 32422 as_fn_error "Valgrind not found (strict dependencies checking)" "$LINENO" 5
31844 fi 32423 fi
31845 32424
31846 32425
@@ -31898,10 +32477,11 @@ pkg_failed=no
31898{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_EVAS" >&5 32477{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_EVAS" >&5
31899$as_echo_n "checking for ECORE_EVAS... " >&6; } 32478$as_echo_n "checking for ECORE_EVAS... " >&6; }
31900 32479
31901if test -n "$ECORE_EVAS_CFLAGS"; then 32480if test -n "$PKG_CONFIG"; then
31902 pkg_cv_ECORE_EVAS_CFLAGS="$ECORE_EVAS_CFLAGS" 32481 if test -n "$ECORE_EVAS_CFLAGS"; then
31903 elif test -n "$PKG_CONFIG"; then 32482 pkg_cv_ECORE_EVAS_CFLAGS="$ECORE_EVAS_CFLAGS"
31904 if test -n "$PKG_CONFIG" && \ 32483 else
32484 if test -n "$PKG_CONFIG" && \
31905 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore\""; } >&5 32485 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore\""; } >&5
31906 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore") 2>&5 32486 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore") 2>&5
31907 ac_status=$? 32487 ac_status=$?
@@ -31911,13 +32491,15 @@ if test -n "$ECORE_EVAS_CFLAGS"; then
31911else 32491else
31912 pkg_failed=yes 32492 pkg_failed=yes
31913fi 32493fi
31914 else 32494 fi
31915 pkg_failed=untried 32495else
32496 pkg_failed=untried
31916fi 32497fi
31917if test -n "$ECORE_EVAS_LIBS"; then 32498if test -n "$PKG_CONFIG"; then
31918 pkg_cv_ECORE_EVAS_LIBS="$ECORE_EVAS_LIBS" 32499 if test -n "$ECORE_EVAS_LIBS"; then
31919 elif test -n "$PKG_CONFIG"; then 32500 pkg_cv_ECORE_EVAS_LIBS="$ECORE_EVAS_LIBS"
31920 if test -n "$PKG_CONFIG" && \ 32501 else
32502 if test -n "$PKG_CONFIG" && \
31921 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore\""; } >&5 32503 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore\""; } >&5
31922 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore") 2>&5 32504 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore") 2>&5
31923 ac_status=$? 32505 ac_status=$?
@@ -31927,15 +32509,14 @@ if test -n "$ECORE_EVAS_LIBS"; then
31927else 32509else
31928 pkg_failed=yes 32510 pkg_failed=yes
31929fi 32511fi
31930 else 32512 fi
31931 pkg_failed=untried 32513else
32514 pkg_failed=untried
31932fi 32515fi
31933 32516
31934 32517
31935 32518
31936if test $pkg_failed = yes; then 32519if test $pkg_failed = yes; then
31937 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31938$as_echo "no" >&6; }
31939 32520
31940if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 32521if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
31941 _pkg_short_errors_supported=yes 32522 _pkg_short_errors_supported=yes
@@ -31943,34 +32524,35 @@ else
31943 _pkg_short_errors_supported=no 32524 _pkg_short_errors_supported=no
31944fi 32525fi
31945 if test $_pkg_short_errors_supported = yes; then 32526 if test $_pkg_short_errors_supported = yes; then
31946 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ecore-evas ecore" 2>&1` 32527 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "ecore-evas ecore"`
31947 else 32528 else
31948 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --print-errors "ecore-evas ecore" 2>&1` 32529 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "ecore-evas ecore"`
31949 fi 32530 fi
31950 # Put the nasty error message in config.log where it belongs 32531 # Put the nasty error message in config.log where it belongs
31951 echo "$ECORE_EVAS_PKG_ERRORS" >&5 32532 echo "$ECORE_EVAS_PKG_ERRORS" >&5
31952 32533
31953 build_examples="no" 32534 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31954elif test $pkg_failed = untried; then
31955 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31956$as_echo "no" >&6; } 32535$as_echo "no" >&6; }
32536 build_examples="no"
32537elif test $pkg_failed = untried; then
31957 build_examples="no" 32538 build_examples="no"
31958else 32539else
31959 ECORE_EVAS_CFLAGS=$pkg_cv_ECORE_EVAS_CFLAGS 32540 ECORE_EVAS_CFLAGS=$pkg_cv_ECORE_EVAS_CFLAGS
31960 ECORE_EVAS_LIBS=$pkg_cv_ECORE_EVAS_LIBS 32541 ECORE_EVAS_LIBS=$pkg_cv_ECORE_EVAS_LIBS
31961 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 32542 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
31962$as_echo "yes" >&6; } 32543$as_echo "yes" >&6; }
31963 32544 :
31964fi 32545fi
31965 32546
31966pkg_failed=no 32547pkg_failed=no
31967{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE" >&5 32548{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE" >&5
31968$as_echo_n "checking for EDJE... " >&6; } 32549$as_echo_n "checking for EDJE... " >&6; }
31969 32550
31970if test -n "$EDJE_CFLAGS"; then 32551if test -n "$PKG_CONFIG"; then
31971 pkg_cv_EDJE_CFLAGS="$EDJE_CFLAGS" 32552 if test -n "$EDJE_CFLAGS"; then
31972 elif test -n "$PKG_CONFIG"; then 32553 pkg_cv_EDJE_CFLAGS="$EDJE_CFLAGS"
31973 if test -n "$PKG_CONFIG" && \ 32554 else
32555 if test -n "$PKG_CONFIG" && \
31974 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edje\""; } >&5 32556 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edje\""; } >&5
31975 ($PKG_CONFIG --exists --print-errors "edje") 2>&5 32557 ($PKG_CONFIG --exists --print-errors "edje") 2>&5
31976 ac_status=$? 32558 ac_status=$?
@@ -31980,13 +32562,15 @@ if test -n "$EDJE_CFLAGS"; then
31980else 32562else
31981 pkg_failed=yes 32563 pkg_failed=yes
31982fi 32564fi
31983 else 32565 fi
31984 pkg_failed=untried 32566else
32567 pkg_failed=untried
31985fi 32568fi
31986if test -n "$EDJE_LIBS"; then 32569if test -n "$PKG_CONFIG"; then
31987 pkg_cv_EDJE_LIBS="$EDJE_LIBS" 32570 if test -n "$EDJE_LIBS"; then
31988 elif test -n "$PKG_CONFIG"; then 32571 pkg_cv_EDJE_LIBS="$EDJE_LIBS"
31989 if test -n "$PKG_CONFIG" && \ 32572 else
32573 if test -n "$PKG_CONFIG" && \
31990 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edje\""; } >&5 32574 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edje\""; } >&5
31991 ($PKG_CONFIG --exists --print-errors "edje") 2>&5 32575 ($PKG_CONFIG --exists --print-errors "edje") 2>&5
31992 ac_status=$? 32576 ac_status=$?
@@ -31996,15 +32580,14 @@ if test -n "$EDJE_LIBS"; then
31996else 32580else
31997 pkg_failed=yes 32581 pkg_failed=yes
31998fi 32582fi
31999 else 32583 fi
32000 pkg_failed=untried 32584else
32585 pkg_failed=untried
32001fi 32586fi
32002 32587
32003 32588
32004 32589
32005if test $pkg_failed = yes; then 32590if test $pkg_failed = yes; then
32006 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32007$as_echo "no" >&6; }
32008 32591
32009if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 32592if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
32010 _pkg_short_errors_supported=yes 32593 _pkg_short_errors_supported=yes
@@ -32012,17 +32595,17 @@ else
32012 _pkg_short_errors_supported=no 32595 _pkg_short_errors_supported=no
32013fi 32596fi
32014 if test $_pkg_short_errors_supported = yes; then 32597 if test $_pkg_short_errors_supported = yes; then
32015 EDJE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "edje" 2>&1` 32598 EDJE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "edje"`
32016 else 32599 else
32017 EDJE_PKG_ERRORS=`$PKG_CONFIG --print-errors "edje" 2>&1` 32600 EDJE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "edje"`
32018 fi 32601 fi
32019 # Put the nasty error message in config.log where it belongs 32602 # Put the nasty error message in config.log where it belongs
32020 echo "$EDJE_PKG_ERRORS" >&5 32603 echo "$EDJE_PKG_ERRORS" >&5
32021 32604
32022 build_examples="no" 32605 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32023elif test $pkg_failed = untried; then
32024 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32025$as_echo "no" >&6; } 32606$as_echo "no" >&6; }
32607 build_examples="no"
32608elif test $pkg_failed = untried; then
32026 build_examples="no" 32609 build_examples="no"
32027else 32610else
32028 EDJE_CFLAGS=$pkg_cv_EDJE_CFLAGS 32611 EDJE_CFLAGS=$pkg_cv_EDJE_CFLAGS
@@ -32081,10 +32664,11 @@ pkg_failed=no
32081{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5 32664{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5
32082$as_echo_n "checking for CHECK... " >&6; } 32665$as_echo_n "checking for CHECK... " >&6; }
32083 32666
32084if test -n "$CHECK_CFLAGS"; then 32667if test -n "$PKG_CONFIG"; then
32085 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS" 32668 if test -n "$CHECK_CFLAGS"; then
32086 elif test -n "$PKG_CONFIG"; then 32669 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS"
32087 if test -n "$PKG_CONFIG" && \ 32670 else
32671 if test -n "$PKG_CONFIG" && \
32088 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 32672 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
32089 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 32673 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
32090 ac_status=$? 32674 ac_status=$?
@@ -32094,13 +32678,15 @@ if test -n "$CHECK_CFLAGS"; then
32094else 32678else
32095 pkg_failed=yes 32679 pkg_failed=yes
32096fi 32680fi
32097 else 32681 fi
32098 pkg_failed=untried 32682else
32683 pkg_failed=untried
32099fi 32684fi
32100if test -n "$CHECK_LIBS"; then 32685if test -n "$PKG_CONFIG"; then
32101 pkg_cv_CHECK_LIBS="$CHECK_LIBS" 32686 if test -n "$CHECK_LIBS"; then
32102 elif test -n "$PKG_CONFIG"; then 32687 pkg_cv_CHECK_LIBS="$CHECK_LIBS"
32103 if test -n "$PKG_CONFIG" && \ 32688 else
32689 if test -n "$PKG_CONFIG" && \
32104 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 32690 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
32105 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 32691 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
32106 ac_status=$? 32692 ac_status=$?
@@ -32110,15 +32696,14 @@ if test -n "$CHECK_LIBS"; then
32110else 32696else
32111 pkg_failed=yes 32697 pkg_failed=yes
32112fi 32698fi
32113 else 32699 fi
32114 pkg_failed=untried 32700else
32701 pkg_failed=untried
32115fi 32702fi
32116 32703
32117 32704
32118 32705
32119if test $pkg_failed = yes; then 32706if test $pkg_failed = yes; then
32120 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32121$as_echo "no" >&6; }
32122 32707
32123if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 32708if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
32124 _pkg_short_errors_supported=yes 32709 _pkg_short_errors_supported=yes
@@ -32126,17 +32711,17 @@ else
32126 _pkg_short_errors_supported=no 32711 _pkg_short_errors_supported=no
32127fi 32712fi
32128 if test $_pkg_short_errors_supported = yes; then 32713 if test $_pkg_short_errors_supported = yes; then
32129 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "check >= 0.9.5" 2>&1` 32714 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "check >= 0.9.5"`
32130 else 32715 else
32131 CHECK_PKG_ERRORS=`$PKG_CONFIG --print-errors "check >= 0.9.5" 2>&1` 32716 CHECK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "check >= 0.9.5"`
32132 fi 32717 fi
32133 # Put the nasty error message in config.log where it belongs 32718 # Put the nasty error message in config.log where it belongs
32134 echo "$CHECK_PKG_ERRORS" >&5 32719 echo "$CHECK_PKG_ERRORS" >&5
32135 32720
32136 _efl_enable_tests="no" 32721 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32137elif test $pkg_failed = untried; then
32138 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32139$as_echo "no" >&6; } 32722$as_echo "no" >&6; }
32723 _efl_enable_tests="no"
32724elif test $pkg_failed = untried; then
32140 _efl_enable_tests="no" 32725 _efl_enable_tests="no"
32141else 32726else
32142 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS 32727 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS
@@ -32289,7 +32874,7 @@ fi
32289##################################################################### 32874#####################################################################
32290## Output 32875## Output
32291 32876
32292ac_config_files="$ac_config_files Makefile evas-directfb.pc evas-fb.pc evas-opengl-x11.pc evas-opengl-sdl.pc evas-opengl-cocoa.pc evas-software-buffer.pc evas-software-x11.pc evas-software-8-x11.pc evas-software-16-x11.pc evas-software-gdi.pc evas-software-ddraw.pc evas-software-16-ddraw.pc evas-direct3d.pc evas-software-16-wince.pc evas-software-sdl.pc evas-psl1ght.pc evas.pc doc/evas.dox doc/Makefile doc/Doxyfile src/Makefile src/bin/Makefile src/lib/Makefile src/lib/canvas/Makefile src/lib/file/Makefile src/lib/cache/Makefile src/lib/cserve/Makefile src/lib/engines/Makefile src/lib/engines/common/Makefile src/lib/engines/common/evas_op_add/Makefile src/lib/engines/common/evas_op_blend/Makefile src/lib/engines/common/evas_op_copy/Makefile src/lib/engines/common/evas_op_mask/Makefile src/lib/engines/common/evas_op_mul/Makefile src/lib/engines/common/evas_op_sub/Makefile src/lib/engines/common_8/Makefile src/lib/engines/common_16/Makefile src/modules/Makefile src/modules/engines/Makefile src/modules/engines/software_generic/Makefile src/modules/engines/software_gdi/Makefile src/modules/engines/software_ddraw/Makefile src/modules/engines/direct3d/Makefile src/modules/engines/software_16_wince/Makefile src/modules/engines/software_x11/Makefile src/modules/engines/fb/Makefile src/modules/engines/buffer/Makefile src/modules/engines/directfb/Makefile src/modules/engines/gl_common/Makefile src/modules/engines/gl_x11/Makefile src/modules/engines/gl_sdl/Makefile src/modules/engines/gl_cocoa/Makefile src/modules/engines/psl1ght/Makefile src/modules/engines/software_sdl/Makefile src/modules/engines/software_8/Makefile src/modules/engines/software_8_x11/Makefile src/modules/engines/software_16/Makefile src/modules/engines/software_16_x11/Makefile src/modules/engines/software_16_ddraw/Makefile src/modules/engines/software_16_sdl/Makefile src/modules/loaders/Makefile src/modules/loaders/edb/Makefile src/modules/loaders/eet/Makefile src/modules/loaders/gif/Makefile src/modules/loaders/jpeg/Makefile src/modules/loaders/png/Makefile src/modules/loaders/tiff/Makefile src/modules/loaders/xpm/Makefile src/modules/loaders/bmp/Makefile src/modules/loaders/ico/Makefile src/modules/loaders/tga/Makefile src/modules/loaders/svg/Makefile src/modules/loaders/pmaps/Makefile src/modules/loaders/wbmp/Makefile src/modules/loaders/psd/Makefile src/modules/loaders/generic/Makefile src/modules/savers/Makefile src/modules/savers/edb/Makefile src/modules/savers/eet/Makefile src/modules/savers/jpeg/Makefile src/modules/savers/png/Makefile src/modules/savers/tiff/Makefile src/static_deps/Makefile src/static_deps/liblinebreak/Makefile src/lib/include/Makefile src/examples/Makefile src/tests/Makefile evas.spec" 32877ac_config_files="$ac_config_files Makefile evas-directfb.pc evas-fb.pc evas-opengl-x11.pc evas-opengl-sdl.pc evas-opengl-cocoa.pc evas-software-buffer.pc evas-software-x11.pc evas-software-8-x11.pc evas-software-16-x11.pc evas-software-gdi.pc evas-software-ddraw.pc evas-software-16-ddraw.pc evas-direct3d.pc evas-software-16-wince.pc evas-software-sdl.pc evas-psl1ght.pc evas-wayland-shm.pc evas-wayland-egl.pc evas.pc doc/evas.dox doc/Makefile doc/Doxyfile src/Makefile src/bin/Makefile src/lib/Makefile src/lib/canvas/Makefile src/lib/file/Makefile src/lib/cache/Makefile src/lib/cserve/Makefile src/lib/engines/Makefile src/lib/engines/common/Makefile src/lib/engines/common/evas_op_add/Makefile src/lib/engines/common/evas_op_blend/Makefile src/lib/engines/common/evas_op_copy/Makefile src/lib/engines/common/evas_op_mask/Makefile src/lib/engines/common/evas_op_mul/Makefile src/lib/engines/common/evas_op_sub/Makefile src/lib/engines/common_8/Makefile src/lib/engines/common_16/Makefile src/modules/Makefile src/modules/engines/Makefile src/modules/engines/software_generic/Makefile src/modules/engines/software_gdi/Makefile src/modules/engines/software_ddraw/Makefile src/modules/engines/direct3d/Makefile src/modules/engines/software_16_wince/Makefile src/modules/engines/software_x11/Makefile src/modules/engines/fb/Makefile src/modules/engines/buffer/Makefile src/modules/engines/directfb/Makefile src/modules/engines/gl_common/Makefile src/modules/engines/gl_x11/Makefile src/modules/engines/gl_sdl/Makefile src/modules/engines/gl_cocoa/Makefile src/modules/engines/psl1ght/Makefile src/modules/engines/software_sdl/Makefile src/modules/engines/software_8/Makefile src/modules/engines/software_8_x11/Makefile src/modules/engines/software_16/Makefile src/modules/engines/software_16_x11/Makefile src/modules/engines/software_16_ddraw/Makefile src/modules/engines/software_16_sdl/Makefile src/modules/engines/wayland_shm/Makefile src/modules/engines/wayland_egl/Makefile src/modules/loaders/Makefile src/modules/loaders/edb/Makefile src/modules/loaders/eet/Makefile src/modules/loaders/gif/Makefile src/modules/loaders/jpeg/Makefile src/modules/loaders/png/Makefile src/modules/loaders/tiff/Makefile src/modules/loaders/xpm/Makefile src/modules/loaders/bmp/Makefile src/modules/loaders/ico/Makefile src/modules/loaders/tga/Makefile src/modules/loaders/svg/Makefile src/modules/loaders/pmaps/Makefile src/modules/loaders/wbmp/Makefile src/modules/loaders/psd/Makefile src/modules/loaders/generic/Makefile src/modules/savers/Makefile src/modules/savers/edb/Makefile src/modules/savers/eet/Makefile src/modules/savers/jpeg/Makefile src/modules/savers/png/Makefile src/modules/savers/tiff/Makefile src/static_deps/Makefile src/static_deps/liblinebreak/Makefile src/lib/include/Makefile src/examples/Makefile src/tests/Makefile evas.spec"
32293 32878
32294cat >confcache <<\_ACEOF 32879cat >confcache <<\_ACEOF
32295# This file is a shell script that caches the results of configure 32880# This file is a shell script that caches the results of configure
@@ -32374,7 +32959,6 @@ DEFS=-DHAVE_CONFIG_H
32374 32959
32375ac_libobjs= 32960ac_libobjs=
32376ac_ltlibobjs= 32961ac_ltlibobjs=
32377U=
32378for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue 32962for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
32379 # 1. Remove the extension, and $U if already installed. 32963 # 1. Remove the extension, and $U if already installed.
32380 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' 32964 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -32398,424 +32982,440 @@ else
32398fi 32982fi
32399 32983
32400if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then 32984if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
32401 as_fn_error $? "conditional \"AMDEP\" was never defined. 32985 as_fn_error "conditional \"AMDEP\" was never defined.
32402Usually this means the macro was only invoked conditionally." "$LINENO" 5 32986Usually this means the macro was only invoked conditionally." "$LINENO" 5
32403fi 32987fi
32404if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 32988if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
32405 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 32989 as_fn_error "conditional \"am__fastdepCC\" was never defined.
32406Usually this means the macro was only invoked conditionally." "$LINENO" 5 32990Usually this means the macro was only invoked conditionally." "$LINENO" 5
32407fi 32991fi
32408if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then 32992if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then
32409 as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined. 32993 as_fn_error "conditional \"am__fastdepOBJC\" was never defined.
32410Usually this means the macro was only invoked conditionally." "$LINENO" 5 32994Usually this means the macro was only invoked conditionally." "$LINENO" 5
32411fi 32995fi
32412if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then 32996if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then
32413 as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined. 32997 as_fn_error "conditional \"am__fastdepOBJC\" was never defined.
32414Usually this means the macro was only invoked conditionally." "$LINENO" 5 32998Usually this means the macro was only invoked conditionally." "$LINENO" 5
32415fi 32999fi
32416if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then 33000if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
32417 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. 33001 as_fn_error "conditional \"am__fastdepCXX\" was never defined.
32418Usually this means the macro was only invoked conditionally." "$LINENO" 5 33002Usually this means the macro was only invoked conditionally." "$LINENO" 5
32419fi 33003fi
32420if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then 33004if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
32421 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. 33005 as_fn_error "conditional \"am__fastdepCXX\" was never defined.
32422Usually this means the macro was only invoked conditionally." "$LINENO" 5 33006Usually this means the macro was only invoked conditionally." "$LINENO" 5
32423fi 33007fi
32424if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 33008if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
32425 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 33009 as_fn_error "conditional \"am__fastdepCC\" was never defined.
32426Usually this means the macro was only invoked conditionally." "$LINENO" 5 33010Usually this means the macro was only invoked conditionally." "$LINENO" 5
32427fi 33011fi
32428if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then 33012if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then
32429 as_fn_error $? "conditional \"EFL_BUILD_DOC\" was never defined. 33013 as_fn_error "conditional \"EFL_BUILD_DOC\" was never defined.
32430Usually this means the macro was only invoked conditionally." "$LINENO" 5 33014Usually this means the macro was only invoked conditionally." "$LINENO" 5
32431fi 33015fi
32432if test -z "${EVAS_USE_LINEBREAK_TRUE}" && test -z "${EVAS_USE_LINEBREAK_FALSE}"; then 33016if test -z "${EVAS_USE_LINEBREAK_TRUE}" && test -z "${EVAS_USE_LINEBREAK_FALSE}"; then
32433 as_fn_error $? "conditional \"EVAS_USE_LINEBREAK\" was never defined. 33017 as_fn_error "conditional \"EVAS_USE_LINEBREAK\" was never defined.
32434Usually this means the macro was only invoked conditionally." "$LINENO" 5 33018Usually this means the macro was only invoked conditionally." "$LINENO" 5
32435fi 33019fi
32436 33020
32437if test -z "${EVAS_CSERVE_TRUE}" && test -z "${EVAS_CSERVE_FALSE}"; then 33021if test -z "${EVAS_CSERVE_TRUE}" && test -z "${EVAS_CSERVE_FALSE}"; then
32438 as_fn_error $? "conditional \"EVAS_CSERVE\" was never defined. 33022 as_fn_error "conditional \"EVAS_CSERVE\" was never defined.
32439Usually this means the macro was only invoked conditionally." "$LINENO" 5 33023Usually this means the macro was only invoked conditionally." "$LINENO" 5
32440fi 33024fi
32441if test -z "${BUILD_ENGINE_BUFFER_TRUE}" && test -z "${BUILD_ENGINE_BUFFER_FALSE}"; then 33025if test -z "${BUILD_ENGINE_BUFFER_TRUE}" && test -z "${BUILD_ENGINE_BUFFER_FALSE}"; then
32442 as_fn_error $? "conditional \"BUILD_ENGINE_BUFFER\" was never defined. 33026 as_fn_error "conditional \"BUILD_ENGINE_BUFFER\" was never defined.
32443Usually this means the macro was only invoked conditionally." "$LINENO" 5 33027Usually this means the macro was only invoked conditionally." "$LINENO" 5
32444fi 33028fi
32445if test -z "${EVAS_STATIC_BUILD_BUFFER_TRUE}" && test -z "${EVAS_STATIC_BUILD_BUFFER_FALSE}"; then 33029if test -z "${EVAS_STATIC_BUILD_BUFFER_TRUE}" && test -z "${EVAS_STATIC_BUILD_BUFFER_FALSE}"; then
32446 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_BUFFER\" was never defined. 33030 as_fn_error "conditional \"EVAS_STATIC_BUILD_BUFFER\" was never defined.
32447Usually this means the macro was only invoked conditionally." "$LINENO" 5 33031Usually this means the macro was only invoked conditionally." "$LINENO" 5
32448fi 33032fi
32449if test -z "${BUILD_ENGINE_SOFTWARE_GDI_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_GDI_FALSE}"; then 33033if test -z "${BUILD_ENGINE_SOFTWARE_GDI_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_GDI_FALSE}"; then
32450 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_GDI\" was never defined. 33034 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_GDI\" was never defined.
32451Usually this means the macro was only invoked conditionally." "$LINENO" 5 33035Usually this means the macro was only invoked conditionally." "$LINENO" 5
32452fi 33036fi
32453if test -z "${EVAS_STATIC_BUILD_SOFTWARE_GDI_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE}"; then 33037if test -z "${EVAS_STATIC_BUILD_SOFTWARE_GDI_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE}"; then
32454 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_GDI\" was never defined. 33038 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_GDI\" was never defined.
32455Usually this means the macro was only invoked conditionally." "$LINENO" 5 33039Usually this means the macro was only invoked conditionally." "$LINENO" 5
32456fi 33040fi
32457if test -z "${BUILD_ENGINE_SOFTWARE_DDRAW_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_DDRAW_FALSE}"; then 33041if test -z "${BUILD_ENGINE_SOFTWARE_DDRAW_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_DDRAW_FALSE}"; then
32458 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_DDRAW\" was never defined. 33042 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_DDRAW\" was never defined.
32459Usually this means the macro was only invoked conditionally." "$LINENO" 5 33043Usually this means the macro was only invoked conditionally." "$LINENO" 5
32460fi 33044fi
32461if test -z "${EVAS_STATIC_BUILD_SOFTWARE_DDRAW_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE}"; then 33045if test -z "${EVAS_STATIC_BUILD_SOFTWARE_DDRAW_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE}"; then
32462 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_DDRAW\" was never defined. 33046 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_DDRAW\" was never defined.
32463Usually this means the macro was only invoked conditionally." "$LINENO" 5 33047Usually this means the macro was only invoked conditionally." "$LINENO" 5
32464fi 33048fi
32465if test -z "${BUILD_ENGINE_DIRECT3D_TRUE}" && test -z "${BUILD_ENGINE_DIRECT3D_FALSE}"; then 33049if test -z "${BUILD_ENGINE_DIRECT3D_TRUE}" && test -z "${BUILD_ENGINE_DIRECT3D_FALSE}"; then
32466 as_fn_error $? "conditional \"BUILD_ENGINE_DIRECT3D\" was never defined. 33050 as_fn_error "conditional \"BUILD_ENGINE_DIRECT3D\" was never defined.
32467Usually this means the macro was only invoked conditionally." "$LINENO" 5 33051Usually this means the macro was only invoked conditionally." "$LINENO" 5
32468fi 33052fi
32469if test -z "${EVAS_STATIC_BUILD_DIRECT3D_TRUE}" && test -z "${EVAS_STATIC_BUILD_DIRECT3D_FALSE}"; then 33053if test -z "${EVAS_STATIC_BUILD_DIRECT3D_TRUE}" && test -z "${EVAS_STATIC_BUILD_DIRECT3D_FALSE}"; then
32470 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_DIRECT3D\" was never defined. 33054 as_fn_error "conditional \"EVAS_STATIC_BUILD_DIRECT3D\" was never defined.
32471Usually this means the macro was only invoked conditionally." "$LINENO" 5 33055Usually this means the macro was only invoked conditionally." "$LINENO" 5
32472fi 33056fi
32473if test -z "${BUILD_ENGINE_SOFTWARE_SDL_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_SDL_FALSE}"; then 33057if test -z "${BUILD_ENGINE_SOFTWARE_SDL_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_SDL_FALSE}"; then
32474 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_SDL\" was never defined. 33058 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_SDL\" was never defined.
32475Usually this means the macro was only invoked conditionally." "$LINENO" 5 33059Usually this means the macro was only invoked conditionally." "$LINENO" 5
32476fi 33060fi
32477if test -z "${EVAS_STATIC_BUILD_SOFTWARE_SDL_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE}"; then 33061if test -z "${EVAS_STATIC_BUILD_SOFTWARE_SDL_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE}"; then
32478 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_SDL\" was never defined. 33062 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_SDL\" was never defined.
32479Usually this means the macro was only invoked conditionally." "$LINENO" 5 33063Usually this means the macro was only invoked conditionally." "$LINENO" 5
32480fi 33064fi
32481if test -z "${BUILD_ENGINE_PSL1GHT_TRUE}" && test -z "${BUILD_ENGINE_PSL1GHT_FALSE}"; then 33065if test -z "${BUILD_ENGINE_PSL1GHT_TRUE}" && test -z "${BUILD_ENGINE_PSL1GHT_FALSE}"; then
32482 as_fn_error $? "conditional \"BUILD_ENGINE_PSL1GHT\" was never defined. 33066 as_fn_error "conditional \"BUILD_ENGINE_PSL1GHT\" was never defined.
32483Usually this means the macro was only invoked conditionally." "$LINENO" 5 33067Usually this means the macro was only invoked conditionally." "$LINENO" 5
32484fi 33068fi
32485if test -z "${EVAS_STATIC_BUILD_PSL1GHT_TRUE}" && test -z "${EVAS_STATIC_BUILD_PSL1GHT_FALSE}"; then 33069if test -z "${EVAS_STATIC_BUILD_PSL1GHT_TRUE}" && test -z "${EVAS_STATIC_BUILD_PSL1GHT_FALSE}"; then
32486 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_PSL1GHT\" was never defined. 33070 as_fn_error "conditional \"EVAS_STATIC_BUILD_PSL1GHT\" was never defined.
32487Usually this means the macro was only invoked conditionally." "$LINENO" 5 33071Usually this means the macro was only invoked conditionally." "$LINENO" 5
32488fi 33072fi
32489if test -z "${BUILD_ENGINE_GL_SDL_TRUE}" && test -z "${BUILD_ENGINE_GL_SDL_FALSE}"; then 33073if test -z "${BUILD_ENGINE_GL_SDL_TRUE}" && test -z "${BUILD_ENGINE_GL_SDL_FALSE}"; then
32490 as_fn_error $? "conditional \"BUILD_ENGINE_GL_SDL\" was never defined. 33074 as_fn_error "conditional \"BUILD_ENGINE_GL_SDL\" was never defined.
32491Usually this means the macro was only invoked conditionally." "$LINENO" 5 33075Usually this means the macro was only invoked conditionally." "$LINENO" 5
32492fi 33076fi
32493if test -z "${EVAS_STATIC_BUILD_GL_SDL_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_SDL_FALSE}"; then 33077if test -z "${EVAS_STATIC_BUILD_GL_SDL_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_SDL_FALSE}"; then
32494 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_SDL\" was never defined. 33078 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_SDL\" was never defined.
32495Usually this means the macro was only invoked conditionally." "$LINENO" 5 33079Usually this means the macro was only invoked conditionally." "$LINENO" 5
32496fi 33080fi
32497if test -z "${BUILD_ENGINE_GL_COCOA_TRUE}" && test -z "${BUILD_ENGINE_GL_COCOA_FALSE}"; then 33081if test -z "${BUILD_ENGINE_GL_COCOA_TRUE}" && test -z "${BUILD_ENGINE_GL_COCOA_FALSE}"; then
32498 as_fn_error $? "conditional \"BUILD_ENGINE_GL_COCOA\" was never defined. 33082 as_fn_error "conditional \"BUILD_ENGINE_GL_COCOA\" was never defined.
32499Usually this means the macro was only invoked conditionally." "$LINENO" 5 33083Usually this means the macro was only invoked conditionally." "$LINENO" 5
32500fi 33084fi
32501if test -z "${EVAS_STATIC_BUILD_GL_COCOA_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_COCOA_FALSE}"; then 33085if test -z "${EVAS_STATIC_BUILD_GL_COCOA_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_COCOA_FALSE}"; then
32502 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_COCOA\" was never defined. 33086 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_COCOA\" was never defined.
32503Usually this means the macro was only invoked conditionally." "$LINENO" 5 33087Usually this means the macro was only invoked conditionally." "$LINENO" 5
32504fi 33088fi
32505if test -z "${BUILD_ENGINE_FB_TRUE}" && test -z "${BUILD_ENGINE_FB_FALSE}"; then 33089if test -z "${BUILD_ENGINE_FB_TRUE}" && test -z "${BUILD_ENGINE_FB_FALSE}"; then
32506 as_fn_error $? "conditional \"BUILD_ENGINE_FB\" was never defined. 33090 as_fn_error "conditional \"BUILD_ENGINE_FB\" was never defined.
32507Usually this means the macro was only invoked conditionally." "$LINENO" 5 33091Usually this means the macro was only invoked conditionally." "$LINENO" 5
32508fi 33092fi
32509if test -z "${EVAS_STATIC_BUILD_FB_TRUE}" && test -z "${EVAS_STATIC_BUILD_FB_FALSE}"; then 33093if test -z "${EVAS_STATIC_BUILD_FB_TRUE}" && test -z "${EVAS_STATIC_BUILD_FB_FALSE}"; then
32510 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_FB\" was never defined. 33094 as_fn_error "conditional \"EVAS_STATIC_BUILD_FB\" was never defined.
32511Usually this means the macro was only invoked conditionally." "$LINENO" 5 33095Usually this means the macro was only invoked conditionally." "$LINENO" 5
32512fi 33096fi
32513if test -z "${BUILD_ENGINE_DIRECTFB_TRUE}" && test -z "${BUILD_ENGINE_DIRECTFB_FALSE}"; then 33097if test -z "${BUILD_ENGINE_DIRECTFB_TRUE}" && test -z "${BUILD_ENGINE_DIRECTFB_FALSE}"; then
32514 as_fn_error $? "conditional \"BUILD_ENGINE_DIRECTFB\" was never defined. 33098 as_fn_error "conditional \"BUILD_ENGINE_DIRECTFB\" was never defined.
32515Usually this means the macro was only invoked conditionally." "$LINENO" 5 33099Usually this means the macro was only invoked conditionally." "$LINENO" 5
32516fi 33100fi
32517if test -z "${EVAS_STATIC_BUILD_DIRECTFB_TRUE}" && test -z "${EVAS_STATIC_BUILD_DIRECTFB_FALSE}"; then 33101if test -z "${EVAS_STATIC_BUILD_DIRECTFB_TRUE}" && test -z "${EVAS_STATIC_BUILD_DIRECTFB_FALSE}"; then
32518 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_DIRECTFB\" was never defined. 33102 as_fn_error "conditional \"EVAS_STATIC_BUILD_DIRECTFB\" was never defined.
32519Usually this means the macro was only invoked conditionally." "$LINENO" 5 33103Usually this means the macro was only invoked conditionally." "$LINENO" 5
32520fi 33104fi
32521if test -z "${BUILD_ENGINE_SOFTWARE_8_X11_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_8_X11_FALSE}"; then 33105if test -z "${BUILD_ENGINE_SOFTWARE_8_X11_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_8_X11_FALSE}"; then
32522 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_8_X11\" was never defined. 33106 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_8_X11\" was never defined.
32523Usually this means the macro was only invoked conditionally." "$LINENO" 5 33107Usually this means the macro was only invoked conditionally." "$LINENO" 5
32524fi 33108fi
32525if test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE}"; then 33109if test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE}"; then
32526 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_8_X11\" was never defined. 33110 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_8_X11\" was never defined.
32527Usually this means the macro was only invoked conditionally." "$LINENO" 5 33111Usually this means the macro was only invoked conditionally." "$LINENO" 5
32528fi 33112fi
32529if test -z "${BUILD_ENGINE_SOFTWARE_16_X11_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_X11_FALSE}"; then 33113if test -z "${BUILD_ENGINE_SOFTWARE_16_X11_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_X11_FALSE}"; then
32530 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_16_X11\" was never defined. 33114 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_16_X11\" was never defined.
32531Usually this means the macro was only invoked conditionally." "$LINENO" 5 33115Usually this means the macro was only invoked conditionally." "$LINENO" 5
32532fi 33116fi
32533if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE}"; then 33117if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE}"; then
32534 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_X11\" was never defined. 33118 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_X11\" was never defined.
32535Usually this means the macro was only invoked conditionally." "$LINENO" 5 33119Usually this means the macro was only invoked conditionally." "$LINENO" 5
32536fi 33120fi
32537if test -z "${BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_DDRAW_FALSE}"; then 33121if test -z "${BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_DDRAW_FALSE}"; then
32538 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_16_DDRAW\" was never defined. 33122 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_16_DDRAW\" was never defined.
32539Usually this means the macro was only invoked conditionally." "$LINENO" 5 33123Usually this means the macro was only invoked conditionally." "$LINENO" 5
32540fi 33124fi
32541if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE}"; then 33125if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE}"; then
32542 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW\" was never defined. 33126 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW\" was never defined.
32543Usually this means the macro was only invoked conditionally." "$LINENO" 5 33127Usually this means the macro was only invoked conditionally." "$LINENO" 5
32544fi 33128fi
32545if test -z "${BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_WINCE_FALSE}"; then 33129if test -z "${BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_WINCE_FALSE}"; then
32546 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_16_WINCE\" was never defined. 33130 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_16_WINCE\" was never defined.
32547Usually this means the macro was only invoked conditionally." "$LINENO" 5 33131Usually this means the macro was only invoked conditionally." "$LINENO" 5
32548fi 33132fi
32549if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE}"; then 33133if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE}"; then
32550 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_WINCE\" was never defined. 33134 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_WINCE\" was never defined.
32551Usually this means the macro was only invoked conditionally." "$LINENO" 5 33135Usually this means the macro was only invoked conditionally." "$LINENO" 5
32552fi 33136fi
32553if test -z "${BUILD_ENGINE_SOFTWARE_16_SDL_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_SDL_FALSE}"; then 33137if test -z "${BUILD_ENGINE_SOFTWARE_16_SDL_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_SDL_FALSE}"; then
32554 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_16_SDL\" was never defined. 33138 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_16_SDL\" was never defined.
32555Usually this means the macro was only invoked conditionally." "$LINENO" 5 33139Usually this means the macro was only invoked conditionally." "$LINENO" 5
32556fi 33140fi
32557if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_SDL_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE}"; then 33141if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_SDL_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE}"; then
32558 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_SDL\" was never defined. 33142 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_SDL\" was never defined.
33143Usually this means the macro was only invoked conditionally." "$LINENO" 5
33144fi
33145if test -z "${BUILD_ENGINE_WAYLAND_SHM_TRUE}" && test -z "${BUILD_ENGINE_WAYLAND_SHM_FALSE}"; then
33146 as_fn_error "conditional \"BUILD_ENGINE_WAYLAND_SHM\" was never defined.
33147Usually this means the macro was only invoked conditionally." "$LINENO" 5
33148fi
33149if test -z "${EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE}" && test -z "${EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE}"; then
33150 as_fn_error "conditional \"EVAS_STATIC_BUILD_WAYLAND_SHM\" was never defined.
33151Usually this means the macro was only invoked conditionally." "$LINENO" 5
33152fi
33153if test -z "${BUILD_ENGINE_WAYLAND_EGL_TRUE}" && test -z "${BUILD_ENGINE_WAYLAND_EGL_FALSE}"; then
33154 as_fn_error "conditional \"BUILD_ENGINE_WAYLAND_EGL\" was never defined.
33155Usually this means the macro was only invoked conditionally." "$LINENO" 5
33156fi
33157if test -z "${EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE}" && test -z "${EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE}"; then
33158 as_fn_error "conditional \"EVAS_STATIC_BUILD_WAYLAND_EGL\" was never defined.
32559Usually this means the macro was only invoked conditionally." "$LINENO" 5 33159Usually this means the macro was only invoked conditionally." "$LINENO" 5
32560fi 33160fi
32561if test -z "${EVAS_STATIC_BUILD_SOFTWARE_GENERIC_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE}"; then 33161if test -z "${EVAS_STATIC_BUILD_SOFTWARE_GENERIC_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE}"; then
32562 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_GENERIC\" was never defined. 33162 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_GENERIC\" was never defined.
32563Usually this means the macro was only invoked conditionally." "$LINENO" 5 33163Usually this means the macro was only invoked conditionally." "$LINENO" 5
32564fi 33164fi
32565if test -z "${BUILD_ENGINE_SOFTWARE_XCB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XCB_FALSE}"; then 33165if test -z "${BUILD_ENGINE_SOFTWARE_XCB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XCB_FALSE}"; then
32566 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_XCB\" was never defined. 33166 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_XCB\" was never defined.
32567Usually this means the macro was only invoked conditionally." "$LINENO" 5 33167Usually this means the macro was only invoked conditionally." "$LINENO" 5
32568fi 33168fi
32569if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_FALSE}"; then 33169if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_FALSE}"; then
32570 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XCB\" was never defined. 33170 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XCB\" was never defined.
32571Usually this means the macro was only invoked conditionally." "$LINENO" 5 33171Usually this means the macro was only invoked conditionally." "$LINENO" 5
32572fi 33172fi
32573if test -z "${BUILD_ENGINE_SOFTWARE_XLIB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XLIB_FALSE}"; then 33173if test -z "${BUILD_ENGINE_SOFTWARE_XLIB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XLIB_FALSE}"; then
32574 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_XLIB\" was never defined. 33174 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_XLIB\" was never defined.
32575Usually this means the macro was only invoked conditionally." "$LINENO" 5 33175Usually this means the macro was only invoked conditionally." "$LINENO" 5
32576fi 33176fi
32577if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_FALSE}"; then 33177if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_FALSE}"; then
32578 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XLIB\" was never defined. 33178 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XLIB\" was never defined.
32579Usually this means the macro was only invoked conditionally." "$LINENO" 5 33179Usually this means the macro was only invoked conditionally." "$LINENO" 5
32580fi 33180fi
32581if test -z "${BUILD_ENGINE_SOFTWARE_XLIB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XLIB_FALSE}"; then 33181if test -z "${BUILD_ENGINE_SOFTWARE_XLIB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XLIB_FALSE}"; then
32582 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_XLIB\" was never defined. 33182 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_XLIB\" was never defined.
32583Usually this means the macro was only invoked conditionally." "$LINENO" 5 33183Usually this means the macro was only invoked conditionally." "$LINENO" 5
32584fi 33184fi
32585if test -z "${BUILD_ENGINE_SOFTWARE_XCB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XCB_FALSE}"; then 33185if test -z "${BUILD_ENGINE_SOFTWARE_XCB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XCB_FALSE}"; then
32586 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_XCB\" was never defined. 33186 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_XCB\" was never defined.
32587Usually this means the macro was only invoked conditionally." "$LINENO" 5 33187Usually this means the macro was only invoked conditionally." "$LINENO" 5
32588fi 33188fi
32589if test -z "${BUILD_ENGINE_SOFTWARE_X11_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_X11_FALSE}"; then 33189if test -z "${BUILD_ENGINE_SOFTWARE_X11_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_X11_FALSE}"; then
32590 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_X11\" was never defined. 33190 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_X11\" was never defined.
32591Usually this means the macro was only invoked conditionally." "$LINENO" 5 33191Usually this means the macro was only invoked conditionally." "$LINENO" 5
32592fi 33192fi
32593if test -z "${EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE}"; then 33193if test -z "${EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE}"; then
32594 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_X11\" was never defined. 33194 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_X11\" was never defined.
32595Usually this means the macro was only invoked conditionally." "$LINENO" 5 33195Usually this means the macro was only invoked conditionally." "$LINENO" 5
32596fi 33196fi
32597if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_FALSE}"; then 33197if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_FALSE}"; then
32598 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XLIB\" was never defined. 33198 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XLIB\" was never defined.
32599Usually this means the macro was only invoked conditionally." "$LINENO" 5 33199Usually this means the macro was only invoked conditionally." "$LINENO" 5
32600fi 33200fi
32601if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_FALSE}"; then 33201if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_FALSE}"; then
32602 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XCB\" was never defined. 33202 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XCB\" was never defined.
32603Usually this means the macro was only invoked conditionally." "$LINENO" 5 33203Usually this means the macro was only invoked conditionally." "$LINENO" 5
32604fi 33204fi
32605if test -z "${BUILD_ENGINE_GL_XCB_TRUE}" && test -z "${BUILD_ENGINE_GL_XCB_FALSE}"; then 33205if test -z "${BUILD_ENGINE_GL_XCB_TRUE}" && test -z "${BUILD_ENGINE_GL_XCB_FALSE}"; then
32606 as_fn_error $? "conditional \"BUILD_ENGINE_GL_XCB\" was never defined. 33206 as_fn_error "conditional \"BUILD_ENGINE_GL_XCB\" was never defined.
32607Usually this means the macro was only invoked conditionally." "$LINENO" 5 33207Usually this means the macro was only invoked conditionally." "$LINENO" 5
32608fi 33208fi
32609if test -z "${EVAS_STATIC_BUILD_GL_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XCB_FALSE}"; then 33209if test -z "${EVAS_STATIC_BUILD_GL_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XCB_FALSE}"; then
32610 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_XCB\" was never defined. 33210 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_XCB\" was never defined.
32611Usually this means the macro was only invoked conditionally." "$LINENO" 5 33211Usually this means the macro was only invoked conditionally." "$LINENO" 5
32612fi 33212fi
32613if test -z "${BUILD_ENGINE_GL_XLIB_TRUE}" && test -z "${BUILD_ENGINE_GL_XLIB_FALSE}"; then 33213if test -z "${BUILD_ENGINE_GL_XLIB_TRUE}" && test -z "${BUILD_ENGINE_GL_XLIB_FALSE}"; then
32614 as_fn_error $? "conditional \"BUILD_ENGINE_GL_XLIB\" was never defined. 33214 as_fn_error "conditional \"BUILD_ENGINE_GL_XLIB\" was never defined.
32615Usually this means the macro was only invoked conditionally." "$LINENO" 5 33215Usually this means the macro was only invoked conditionally." "$LINENO" 5
32616fi 33216fi
32617if test -z "${EVAS_STATIC_BUILD_GL_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XLIB_FALSE}"; then 33217if test -z "${EVAS_STATIC_BUILD_GL_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XLIB_FALSE}"; then
32618 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_XLIB\" was never defined. 33218 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_XLIB\" was never defined.
32619Usually this means the macro was only invoked conditionally." "$LINENO" 5 33219Usually this means the macro was only invoked conditionally." "$LINENO" 5
32620fi 33220fi
32621if test -z "${BUILD_ENGINE_GL_XLIB_TRUE}" && test -z "${BUILD_ENGINE_GL_XLIB_FALSE}"; then 33221if test -z "${BUILD_ENGINE_GL_XLIB_TRUE}" && test -z "${BUILD_ENGINE_GL_XLIB_FALSE}"; then
32622 as_fn_error $? "conditional \"BUILD_ENGINE_GL_XLIB\" was never defined. 33222 as_fn_error "conditional \"BUILD_ENGINE_GL_XLIB\" was never defined.
32623Usually this means the macro was only invoked conditionally." "$LINENO" 5 33223Usually this means the macro was only invoked conditionally." "$LINENO" 5
32624fi 33224fi
32625if test -z "${BUILD_ENGINE_GL_XCB_TRUE}" && test -z "${BUILD_ENGINE_GL_XCB_FALSE}"; then 33225if test -z "${BUILD_ENGINE_GL_XCB_TRUE}" && test -z "${BUILD_ENGINE_GL_XCB_FALSE}"; then
32626 as_fn_error $? "conditional \"BUILD_ENGINE_GL_XCB\" was never defined. 33226 as_fn_error "conditional \"BUILD_ENGINE_GL_XCB\" was never defined.
32627Usually this means the macro was only invoked conditionally." "$LINENO" 5 33227Usually this means the macro was only invoked conditionally." "$LINENO" 5
32628fi 33228fi
32629if test -z "${BUILD_ENGINE_GL_X11_TRUE}" && test -z "${BUILD_ENGINE_GL_X11_FALSE}"; then 33229if test -z "${BUILD_ENGINE_GL_X11_TRUE}" && test -z "${BUILD_ENGINE_GL_X11_FALSE}"; then
32630 as_fn_error $? "conditional \"BUILD_ENGINE_GL_X11\" was never defined. 33230 as_fn_error "conditional \"BUILD_ENGINE_GL_X11\" was never defined.
32631Usually this means the macro was only invoked conditionally." "$LINENO" 5 33231Usually this means the macro was only invoked conditionally." "$LINENO" 5
32632fi 33232fi
32633if test -z "${EVAS_STATIC_BUILD_GL_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_X11_FALSE}"; then 33233if test -z "${EVAS_STATIC_BUILD_GL_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_X11_FALSE}"; then
32634 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_X11\" was never defined. 33234 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_X11\" was never defined.
32635Usually this means the macro was only invoked conditionally." "$LINENO" 5 33235Usually this means the macro was only invoked conditionally." "$LINENO" 5
32636fi 33236fi
32637if test -z "${EVAS_STATIC_BUILD_GL_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XLIB_FALSE}"; then 33237if test -z "${EVAS_STATIC_BUILD_GL_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XLIB_FALSE}"; then
32638 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_XLIB\" was never defined. 33238 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_XLIB\" was never defined.
32639Usually this means the macro was only invoked conditionally." "$LINENO" 5 33239Usually this means the macro was only invoked conditionally." "$LINENO" 5
32640fi 33240fi
32641if test -z "${EVAS_STATIC_BUILD_GL_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XCB_FALSE}"; then 33241if test -z "${EVAS_STATIC_BUILD_GL_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XCB_FALSE}"; then
32642 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_XCB\" was never defined. 33242 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_XCB\" was never defined.
32643Usually this means the macro was only invoked conditionally." "$LINENO" 5 33243Usually this means the macro was only invoked conditionally." "$LINENO" 5
32644fi 33244fi
32645if test -z "${BUILD_ENGINE_GL_COMMON_TRUE}" && test -z "${BUILD_ENGINE_GL_COMMON_FALSE}"; then 33245if test -z "${BUILD_ENGINE_GL_COMMON_TRUE}" && test -z "${BUILD_ENGINE_GL_COMMON_FALSE}"; then
32646 as_fn_error $? "conditional \"BUILD_ENGINE_GL_COMMON\" was never defined. 33246 as_fn_error "conditional \"BUILD_ENGINE_GL_COMMON\" was never defined.
32647Usually this means the macro was only invoked conditionally." "$LINENO" 5 33247Usually this means the macro was only invoked conditionally." "$LINENO" 5
32648fi 33248fi
32649if test -z "${EVAS_STATIC_BUILD_GL_COMMON_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_COMMON_FALSE}"; then 33249if test -z "${EVAS_STATIC_BUILD_GL_COMMON_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_COMMON_FALSE}"; then
32650 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_COMMON\" was never defined. 33250 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_COMMON\" was never defined.
32651Usually this means the macro was only invoked conditionally." "$LINENO" 5 33251Usually this means the macro was only invoked conditionally." "$LINENO" 5
32652fi 33252fi
32653if test -z "${BUILD_ENGINE_SOFTWARE_16_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_FALSE}"; then 33253if test -z "${BUILD_ENGINE_SOFTWARE_16_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_FALSE}"; then
32654 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_16\" was never defined. 33254 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_16\" was never defined.
32655Usually this means the macro was only invoked conditionally." "$LINENO" 5 33255Usually this means the macro was only invoked conditionally." "$LINENO" 5
32656fi 33256fi
32657if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_FALSE}"; then 33257if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_FALSE}"; then
32658 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16\" was never defined. 33258 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16\" was never defined.
32659Usually this means the macro was only invoked conditionally." "$LINENO" 5 33259Usually this means the macro was only invoked conditionally." "$LINENO" 5
32660fi 33260fi
32661if test -z "${BUILD_ENGINE_SOFTWARE_8_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_8_FALSE}"; then 33261if test -z "${BUILD_ENGINE_SOFTWARE_8_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_8_FALSE}"; then
32662 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_8\" was never defined. 33262 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_8\" was never defined.
32663Usually this means the macro was only invoked conditionally." "$LINENO" 5 33263Usually this means the macro was only invoked conditionally." "$LINENO" 5
32664fi 33264fi
32665if test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_FALSE}"; then 33265if test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_FALSE}"; then
32666 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_8\" was never defined. 33266 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_8\" was never defined.
32667Usually this means the macro was only invoked conditionally." "$LINENO" 5 33267Usually this means the macro was only invoked conditionally." "$LINENO" 5
32668fi 33268fi
32669if test -z "${BUILD_LOADER_EDB_TRUE}" && test -z "${BUILD_LOADER_EDB_FALSE}"; then 33269if test -z "${BUILD_LOADER_EDB_TRUE}" && test -z "${BUILD_LOADER_EDB_FALSE}"; then
32670 as_fn_error $? "conditional \"BUILD_LOADER_EDB\" was never defined. 33270 as_fn_error "conditional \"BUILD_LOADER_EDB\" was never defined.
32671Usually this means the macro was only invoked conditionally." "$LINENO" 5 33271Usually this means the macro was only invoked conditionally." "$LINENO" 5
32672fi 33272fi
32673if test -z "${EVAS_STATIC_BUILD_EDB_TRUE}" && test -z "${EVAS_STATIC_BUILD_EDB_FALSE}"; then 33273if test -z "${EVAS_STATIC_BUILD_EDB_TRUE}" && test -z "${EVAS_STATIC_BUILD_EDB_FALSE}"; then
32674 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_EDB\" was never defined. 33274 as_fn_error "conditional \"EVAS_STATIC_BUILD_EDB\" was never defined.
32675Usually this means the macro was only invoked conditionally." "$LINENO" 5 33275Usually this means the macro was only invoked conditionally." "$LINENO" 5
32676fi 33276fi
32677if test -z "${BUILD_LOADER_EET_TRUE}" && test -z "${BUILD_LOADER_EET_FALSE}"; then 33277if test -z "${BUILD_LOADER_EET_TRUE}" && test -z "${BUILD_LOADER_EET_FALSE}"; then
32678 as_fn_error $? "conditional \"BUILD_LOADER_EET\" was never defined. 33278 as_fn_error "conditional \"BUILD_LOADER_EET\" was never defined.
32679Usually this means the macro was only invoked conditionally." "$LINENO" 5 33279Usually this means the macro was only invoked conditionally." "$LINENO" 5
32680fi 33280fi
32681if test -z "${EVAS_STATIC_BUILD_EET_TRUE}" && test -z "${EVAS_STATIC_BUILD_EET_FALSE}"; then 33281if test -z "${EVAS_STATIC_BUILD_EET_TRUE}" && test -z "${EVAS_STATIC_BUILD_EET_FALSE}"; then
32682 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_EET\" was never defined. 33282 as_fn_error "conditional \"EVAS_STATIC_BUILD_EET\" was never defined.
32683Usually this means the macro was only invoked conditionally." "$LINENO" 5 33283Usually this means the macro was only invoked conditionally." "$LINENO" 5
32684fi 33284fi
32685if test -z "${BUILD_LOADER_GIF_TRUE}" && test -z "${BUILD_LOADER_GIF_FALSE}"; then 33285if test -z "${BUILD_LOADER_GIF_TRUE}" && test -z "${BUILD_LOADER_GIF_FALSE}"; then
32686 as_fn_error $? "conditional \"BUILD_LOADER_GIF\" was never defined. 33286 as_fn_error "conditional \"BUILD_LOADER_GIF\" was never defined.
32687Usually this means the macro was only invoked conditionally." "$LINENO" 5 33287Usually this means the macro was only invoked conditionally." "$LINENO" 5
32688fi 33288fi
32689if test -z "${EVAS_STATIC_BUILD_GIF_TRUE}" && test -z "${EVAS_STATIC_BUILD_GIF_FALSE}"; then 33289if test -z "${EVAS_STATIC_BUILD_GIF_TRUE}" && test -z "${EVAS_STATIC_BUILD_GIF_FALSE}"; then
32690 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GIF\" was never defined. 33290 as_fn_error "conditional \"EVAS_STATIC_BUILD_GIF\" was never defined.
32691Usually this means the macro was only invoked conditionally." "$LINENO" 5 33291Usually this means the macro was only invoked conditionally." "$LINENO" 5
32692fi 33292fi
32693if test -z "${BUILD_LOADER_JPEG_TRUE}" && test -z "${BUILD_LOADER_JPEG_FALSE}"; then 33293if test -z "${BUILD_LOADER_JPEG_TRUE}" && test -z "${BUILD_LOADER_JPEG_FALSE}"; then
32694 as_fn_error $? "conditional \"BUILD_LOADER_JPEG\" was never defined. 33294 as_fn_error "conditional \"BUILD_LOADER_JPEG\" was never defined.
32695Usually this means the macro was only invoked conditionally." "$LINENO" 5 33295Usually this means the macro was only invoked conditionally." "$LINENO" 5
32696fi 33296fi
32697if test -z "${EVAS_STATIC_BUILD_JPEG_TRUE}" && test -z "${EVAS_STATIC_BUILD_JPEG_FALSE}"; then 33297if test -z "${EVAS_STATIC_BUILD_JPEG_TRUE}" && test -z "${EVAS_STATIC_BUILD_JPEG_FALSE}"; then
32698 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_JPEG\" was never defined. 33298 as_fn_error "conditional \"EVAS_STATIC_BUILD_JPEG\" was never defined.
32699Usually this means the macro was only invoked conditionally." "$LINENO" 5 33299Usually this means the macro was only invoked conditionally." "$LINENO" 5
32700fi 33300fi
32701if test -z "${BUILD_SAVER_JPEG_TRUE}" && test -z "${BUILD_SAVER_JPEG_FALSE}"; then 33301if test -z "${BUILD_SAVER_JPEG_TRUE}" && test -z "${BUILD_SAVER_JPEG_FALSE}"; then
32702 as_fn_error $? "conditional \"BUILD_SAVER_JPEG\" was never defined. 33302 as_fn_error "conditional \"BUILD_SAVER_JPEG\" was never defined.
32703Usually this means the macro was only invoked conditionally." "$LINENO" 5 33303Usually this means the macro was only invoked conditionally." "$LINENO" 5
32704fi 33304fi
32705if test -z "${BUILD_LOADER_PMAPS_TRUE}" && test -z "${BUILD_LOADER_PMAPS_FALSE}"; then 33305if test -z "${BUILD_LOADER_PMAPS_TRUE}" && test -z "${BUILD_LOADER_PMAPS_FALSE}"; then
32706 as_fn_error $? "conditional \"BUILD_LOADER_PMAPS\" was never defined. 33306 as_fn_error "conditional \"BUILD_LOADER_PMAPS\" was never defined.
32707Usually this means the macro was only invoked conditionally." "$LINENO" 5 33307Usually this means the macro was only invoked conditionally." "$LINENO" 5
32708fi 33308fi
32709if test -z "${EVAS_STATIC_BUILD_PMAPS_TRUE}" && test -z "${EVAS_STATIC_BUILD_PMAPS_FALSE}"; then 33309if test -z "${EVAS_STATIC_BUILD_PMAPS_TRUE}" && test -z "${EVAS_STATIC_BUILD_PMAPS_FALSE}"; then
32710 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_PMAPS\" was never defined. 33310 as_fn_error "conditional \"EVAS_STATIC_BUILD_PMAPS\" was never defined.
32711Usually this means the macro was only invoked conditionally." "$LINENO" 5 33311Usually this means the macro was only invoked conditionally." "$LINENO" 5
32712fi 33312fi
32713if test -z "${BUILD_LOADER_PNG_TRUE}" && test -z "${BUILD_LOADER_PNG_FALSE}"; then 33313if test -z "${BUILD_LOADER_PNG_TRUE}" && test -z "${BUILD_LOADER_PNG_FALSE}"; then
32714 as_fn_error $? "conditional \"BUILD_LOADER_PNG\" was never defined. 33314 as_fn_error "conditional \"BUILD_LOADER_PNG\" was never defined.
32715Usually this means the macro was only invoked conditionally." "$LINENO" 5 33315Usually this means the macro was only invoked conditionally." "$LINENO" 5
32716fi 33316fi
32717if test -z "${EVAS_STATIC_BUILD_PNG_TRUE}" && test -z "${EVAS_STATIC_BUILD_PNG_FALSE}"; then 33317if test -z "${EVAS_STATIC_BUILD_PNG_TRUE}" && test -z "${EVAS_STATIC_BUILD_PNG_FALSE}"; then
32718 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_PNG\" was never defined. 33318 as_fn_error "conditional \"EVAS_STATIC_BUILD_PNG\" was never defined.
32719Usually this means the macro was only invoked conditionally." "$LINENO" 5 33319Usually this means the macro was only invoked conditionally." "$LINENO" 5
32720fi 33320fi
32721if test -z "${BUILD_LOADER_SVG_TRUE}" && test -z "${BUILD_LOADER_SVG_FALSE}"; then 33321if test -z "${BUILD_LOADER_SVG_TRUE}" && test -z "${BUILD_LOADER_SVG_FALSE}"; then
32722 as_fn_error $? "conditional \"BUILD_LOADER_SVG\" was never defined. 33322 as_fn_error "conditional \"BUILD_LOADER_SVG\" was never defined.
32723Usually this means the macro was only invoked conditionally." "$LINENO" 5 33323Usually this means the macro was only invoked conditionally." "$LINENO" 5
32724fi 33324fi
32725if test -z "${EVAS_STATIC_BUILD_SVG_TRUE}" && test -z "${EVAS_STATIC_BUILD_SVG_FALSE}"; then 33325if test -z "${EVAS_STATIC_BUILD_SVG_TRUE}" && test -z "${EVAS_STATIC_BUILD_SVG_FALSE}"; then
32726 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SVG\" was never defined. 33326 as_fn_error "conditional \"EVAS_STATIC_BUILD_SVG\" was never defined.
32727Usually this means the macro was only invoked conditionally." "$LINENO" 5 33327Usually this means the macro was only invoked conditionally." "$LINENO" 5
32728fi 33328fi
32729if test -z "${BUILD_LOADER_TIFF_TRUE}" && test -z "${BUILD_LOADER_TIFF_FALSE}"; then 33329if test -z "${BUILD_LOADER_TIFF_TRUE}" && test -z "${BUILD_LOADER_TIFF_FALSE}"; then
32730 as_fn_error $? "conditional \"BUILD_LOADER_TIFF\" was never defined. 33330 as_fn_error "conditional \"BUILD_LOADER_TIFF\" was never defined.
32731Usually this means the macro was only invoked conditionally." "$LINENO" 5 33331Usually this means the macro was only invoked conditionally." "$LINENO" 5
32732fi 33332fi
32733if test -z "${EVAS_STATIC_BUILD_TIFF_TRUE}" && test -z "${EVAS_STATIC_BUILD_TIFF_FALSE}"; then 33333if test -z "${EVAS_STATIC_BUILD_TIFF_TRUE}" && test -z "${EVAS_STATIC_BUILD_TIFF_FALSE}"; then
32734 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_TIFF\" was never defined. 33334 as_fn_error "conditional \"EVAS_STATIC_BUILD_TIFF\" was never defined.
32735Usually this means the macro was only invoked conditionally." "$LINENO" 5 33335Usually this means the macro was only invoked conditionally." "$LINENO" 5
32736fi 33336fi
32737if test -z "${BUILD_LOADER_XPM_TRUE}" && test -z "${BUILD_LOADER_XPM_FALSE}"; then 33337if test -z "${BUILD_LOADER_XPM_TRUE}" && test -z "${BUILD_LOADER_XPM_FALSE}"; then
32738 as_fn_error $? "conditional \"BUILD_LOADER_XPM\" was never defined. 33338 as_fn_error "conditional \"BUILD_LOADER_XPM\" was never defined.
32739Usually this means the macro was only invoked conditionally." "$LINENO" 5 33339Usually this means the macro was only invoked conditionally." "$LINENO" 5
32740fi 33340fi
32741if test -z "${EVAS_STATIC_BUILD_XPM_TRUE}" && test -z "${EVAS_STATIC_BUILD_XPM_FALSE}"; then 33341if test -z "${EVAS_STATIC_BUILD_XPM_TRUE}" && test -z "${EVAS_STATIC_BUILD_XPM_FALSE}"; then
32742 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_XPM\" was never defined. 33342 as_fn_error "conditional \"EVAS_STATIC_BUILD_XPM\" was never defined.
32743Usually this means the macro was only invoked conditionally." "$LINENO" 5 33343Usually this means the macro was only invoked conditionally." "$LINENO" 5
32744fi 33344fi
32745if test -z "${BUILD_LOADER_BMP_TRUE}" && test -z "${BUILD_LOADER_BMP_FALSE}"; then 33345if test -z "${BUILD_LOADER_BMP_TRUE}" && test -z "${BUILD_LOADER_BMP_FALSE}"; then
32746 as_fn_error $? "conditional \"BUILD_LOADER_BMP\" was never defined. 33346 as_fn_error "conditional \"BUILD_LOADER_BMP\" was never defined.
32747Usually this means the macro was only invoked conditionally." "$LINENO" 5 33347Usually this means the macro was only invoked conditionally." "$LINENO" 5
32748fi 33348fi
32749if test -z "${EVAS_STATIC_BUILD_BMP_TRUE}" && test -z "${EVAS_STATIC_BUILD_BMP_FALSE}"; then 33349if test -z "${EVAS_STATIC_BUILD_BMP_TRUE}" && test -z "${EVAS_STATIC_BUILD_BMP_FALSE}"; then
32750 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_BMP\" was never defined. 33350 as_fn_error "conditional \"EVAS_STATIC_BUILD_BMP\" was never defined.
32751Usually this means the macro was only invoked conditionally." "$LINENO" 5 33351Usually this means the macro was only invoked conditionally." "$LINENO" 5
32752fi 33352fi
32753if test -z "${BUILD_LOADER_TGA_TRUE}" && test -z "${BUILD_LOADER_TGA_FALSE}"; then 33353if test -z "${BUILD_LOADER_TGA_TRUE}" && test -z "${BUILD_LOADER_TGA_FALSE}"; then
32754 as_fn_error $? "conditional \"BUILD_LOADER_TGA\" was never defined. 33354 as_fn_error "conditional \"BUILD_LOADER_TGA\" was never defined.
32755Usually this means the macro was only invoked conditionally." "$LINENO" 5 33355Usually this means the macro was only invoked conditionally." "$LINENO" 5
32756fi 33356fi
32757if test -z "${EVAS_STATIC_BUILD_TGA_TRUE}" && test -z "${EVAS_STATIC_BUILD_TGA_FALSE}"; then 33357if test -z "${EVAS_STATIC_BUILD_TGA_TRUE}" && test -z "${EVAS_STATIC_BUILD_TGA_FALSE}"; then
32758 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_TGA\" was never defined. 33358 as_fn_error "conditional \"EVAS_STATIC_BUILD_TGA\" was never defined.
32759Usually this means the macro was only invoked conditionally." "$LINENO" 5 33359Usually this means the macro was only invoked conditionally." "$LINENO" 5
32760fi 33360fi
32761if test -z "${BUILD_LOADER_WBMP_TRUE}" && test -z "${BUILD_LOADER_WBMP_FALSE}"; then 33361if test -z "${BUILD_LOADER_WBMP_TRUE}" && test -z "${BUILD_LOADER_WBMP_FALSE}"; then
32762 as_fn_error $? "conditional \"BUILD_LOADER_WBMP\" was never defined. 33362 as_fn_error "conditional \"BUILD_LOADER_WBMP\" was never defined.
32763Usually this means the macro was only invoked conditionally." "$LINENO" 5 33363Usually this means the macro was only invoked conditionally." "$LINENO" 5
32764fi 33364fi
32765if test -z "${EVAS_STATIC_BUILD_WBMP_TRUE}" && test -z "${EVAS_STATIC_BUILD_WBMP_FALSE}"; then 33365if test -z "${EVAS_STATIC_BUILD_WBMP_TRUE}" && test -z "${EVAS_STATIC_BUILD_WBMP_FALSE}"; then
32766 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_WBMP\" was never defined. 33366 as_fn_error "conditional \"EVAS_STATIC_BUILD_WBMP\" was never defined.
32767Usually this means the macro was only invoked conditionally." "$LINENO" 5 33367Usually this means the macro was only invoked conditionally." "$LINENO" 5
32768fi 33368fi
32769if test -z "${BUILD_LOADER_ICO_TRUE}" && test -z "${BUILD_LOADER_ICO_FALSE}"; then 33369if test -z "${BUILD_LOADER_ICO_TRUE}" && test -z "${BUILD_LOADER_ICO_FALSE}"; then
32770 as_fn_error $? "conditional \"BUILD_LOADER_ICO\" was never defined. 33370 as_fn_error "conditional \"BUILD_LOADER_ICO\" was never defined.
32771Usually this means the macro was only invoked conditionally." "$LINENO" 5 33371Usually this means the macro was only invoked conditionally." "$LINENO" 5
32772fi 33372fi
32773if test -z "${EVAS_STATIC_BUILD_ICO_TRUE}" && test -z "${EVAS_STATIC_BUILD_ICO_FALSE}"; then 33373if test -z "${EVAS_STATIC_BUILD_ICO_TRUE}" && test -z "${EVAS_STATIC_BUILD_ICO_FALSE}"; then
32774 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_ICO\" was never defined. 33374 as_fn_error "conditional \"EVAS_STATIC_BUILD_ICO\" was never defined.
32775Usually this means the macro was only invoked conditionally." "$LINENO" 5 33375Usually this means the macro was only invoked conditionally." "$LINENO" 5
32776fi 33376fi
32777if test -z "${BUILD_LOADER_PSD_TRUE}" && test -z "${BUILD_LOADER_PSD_FALSE}"; then 33377if test -z "${BUILD_LOADER_PSD_TRUE}" && test -z "${BUILD_LOADER_PSD_FALSE}"; then
32778 as_fn_error $? "conditional \"BUILD_LOADER_PSD\" was never defined. 33378 as_fn_error "conditional \"BUILD_LOADER_PSD\" was never defined.
32779Usually this means the macro was only invoked conditionally." "$LINENO" 5 33379Usually this means the macro was only invoked conditionally." "$LINENO" 5
32780fi 33380fi
32781if test -z "${EVAS_STATIC_BUILD_PSD_TRUE}" && test -z "${EVAS_STATIC_BUILD_PSD_FALSE}"; then 33381if test -z "${EVAS_STATIC_BUILD_PSD_TRUE}" && test -z "${EVAS_STATIC_BUILD_PSD_FALSE}"; then
32782 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_PSD\" was never defined. 33382 as_fn_error "conditional \"EVAS_STATIC_BUILD_PSD\" was never defined.
32783Usually this means the macro was only invoked conditionally." "$LINENO" 5 33383Usually this means the macro was only invoked conditionally." "$LINENO" 5
32784fi 33384fi
32785if test -z "${BUILD_LOADER_GENERIC_TRUE}" && test -z "${BUILD_LOADER_GENERIC_FALSE}"; then 33385if test -z "${BUILD_LOADER_GENERIC_TRUE}" && test -z "${BUILD_LOADER_GENERIC_FALSE}"; then
32786 as_fn_error $? "conditional \"BUILD_LOADER_GENERIC\" was never defined. 33386 as_fn_error "conditional \"BUILD_LOADER_GENERIC\" was never defined.
32787Usually this means the macro was only invoked conditionally." "$LINENO" 5 33387Usually this means the macro was only invoked conditionally." "$LINENO" 5
32788fi 33388fi
32789if test -z "${EVAS_STATIC_BUILD_GENERIC_TRUE}" && test -z "${EVAS_STATIC_BUILD_GENERIC_FALSE}"; then 33389if test -z "${EVAS_STATIC_BUILD_GENERIC_TRUE}" && test -z "${EVAS_STATIC_BUILD_GENERIC_FALSE}"; then
32790 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GENERIC\" was never defined. 33390 as_fn_error "conditional \"EVAS_STATIC_BUILD_GENERIC\" was never defined.
32791Usually this means the macro was only invoked conditionally." "$LINENO" 5 33391Usually this means the macro was only invoked conditionally." "$LINENO" 5
32792fi 33392fi
32793if test -z "${EVAS_MAGIC_DEBUG_TRUE}" && test -z "${EVAS_MAGIC_DEBUG_FALSE}"; then 33393if test -z "${EVAS_MAGIC_DEBUG_TRUE}" && test -z "${EVAS_MAGIC_DEBUG_FALSE}"; then
32794 as_fn_error $? "conditional \"EVAS_MAGIC_DEBUG\" was never defined. 33394 as_fn_error "conditional \"EVAS_MAGIC_DEBUG\" was never defined.
32795Usually this means the macro was only invoked conditionally." "$LINENO" 5 33395Usually this means the macro was only invoked conditionally." "$LINENO" 5
32796fi 33396fi
32797if test -z "${WORD_CACHE_TRUE}" && test -z "${WORD_CACHE_FALSE}"; then 33397if test -z "${WORD_CACHE_TRUE}" && test -z "${WORD_CACHE_FALSE}"; then
32798 as_fn_error $? "conditional \"WORD_CACHE\" was never defined. 33398 as_fn_error "conditional \"WORD_CACHE\" was never defined.
32799Usually this means the macro was only invoked conditionally." "$LINENO" 5 33399Usually this means the macro was only invoked conditionally." "$LINENO" 5
32800fi 33400fi
32801if test -z "${METRIC_CACHE_TRUE}" && test -z "${METRIC_CACHE_FALSE}"; then 33401if test -z "${METRIC_CACHE_TRUE}" && test -z "${METRIC_CACHE_FALSE}"; then
32802 as_fn_error $? "conditional \"METRIC_CACHE\" was never defined. 33402 as_fn_error "conditional \"METRIC_CACHE\" was never defined.
32803Usually this means the macro was only invoked conditionally." "$LINENO" 5 33403Usually this means the macro was only invoked conditionally." "$LINENO" 5
32804fi 33404fi
32805if test -z "${INSTALL_EXAMPLES_TRUE}" && test -z "${INSTALL_EXAMPLES_FALSE}"; then 33405if test -z "${INSTALL_EXAMPLES_TRUE}" && test -z "${INSTALL_EXAMPLES_FALSE}"; then
32806 as_fn_error $? "conditional \"INSTALL_EXAMPLES\" was never defined. 33406 as_fn_error "conditional \"INSTALL_EXAMPLES\" was never defined.
32807Usually this means the macro was only invoked conditionally." "$LINENO" 5 33407Usually this means the macro was only invoked conditionally." "$LINENO" 5
32808fi 33408fi
32809if test -z "${BUILD_EXAMPLES_TRUE}" && test -z "${BUILD_EXAMPLES_FALSE}"; then 33409if test -z "${BUILD_EXAMPLES_TRUE}" && test -z "${BUILD_EXAMPLES_FALSE}"; then
32810 as_fn_error $? "conditional \"BUILD_EXAMPLES\" was never defined. 33410 as_fn_error "conditional \"BUILD_EXAMPLES\" was never defined.
32811Usually this means the macro was only invoked conditionally." "$LINENO" 5 33411Usually this means the macro was only invoked conditionally." "$LINENO" 5
32812fi 33412fi
32813if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then 33413if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then
32814 as_fn_error $? "conditional \"EFL_ENABLE_TESTS\" was never defined. 33414 as_fn_error "conditional \"EFL_ENABLE_TESTS\" was never defined.
32815Usually this means the macro was only invoked conditionally." "$LINENO" 5 33415Usually this means the macro was only invoked conditionally." "$LINENO" 5
32816fi 33416fi
32817if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then 33417if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then
32818 as_fn_error $? "conditional \"EFL_ENABLE_COVERAGE\" was never defined. 33418 as_fn_error "conditional \"EFL_ENABLE_COVERAGE\" was never defined.
32819Usually this means the macro was only invoked conditionally." "$LINENO" 5 33419Usually this means the macro was only invoked conditionally." "$LINENO" 5
32820fi 33420fi
32821 33421
@@ -32965,19 +33565,19 @@ export LANGUAGE
32965(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 33565(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
32966 33566
32967 33567
32968# as_fn_error STATUS ERROR [LINENO LOG_FD] 33568# as_fn_error ERROR [LINENO LOG_FD]
32969# ---------------------------------------- 33569# ---------------------------------
32970# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 33570# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
32971# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 33571# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
32972# script with STATUS, using 1 if that was 0. 33572# script with status $?, using 1 if that was 0.
32973as_fn_error () 33573as_fn_error ()
32974{ 33574{
32975 as_status=$1; test $as_status -eq 0 && as_status=1 33575 as_status=$?; test $as_status -eq 0 && as_status=1
32976 if test "$4"; then 33576 if test "$3"; then
32977 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 33577 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
32978 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 33578 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
32979 fi 33579 fi
32980 $as_echo "$as_me: error: $2" >&2 33580 $as_echo "$as_me: error: $1" >&2
32981 as_fn_exit $as_status 33581 as_fn_exit $as_status
32982} # as_fn_error 33582} # as_fn_error
32983 33583
@@ -33173,7 +33773,7 @@ $as_echo X"$as_dir" |
33173 test -d "$as_dir" && break 33773 test -d "$as_dir" && break
33174 done 33774 done
33175 test -z "$as_dirs" || eval "mkdir $as_dirs" 33775 test -z "$as_dirs" || eval "mkdir $as_dirs"
33176 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" 33776 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
33177 33777
33178 33778
33179} # as_fn_mkdir_p 33779} # as_fn_mkdir_p
@@ -33226,8 +33826,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
33226# report actual input values of CONFIG_FILES etc. instead of their 33826# report actual input values of CONFIG_FILES etc. instead of their
33227# values after options handling. 33827# values after options handling.
33228ac_log=" 33828ac_log="
33229This file was extended by evas $as_me 1.1.0, which was 33829This file was extended by evas $as_me 1.1.99.67344, which was
33230generated by GNU Autoconf 2.67. Invocation command line was 33830generated by GNU Autoconf 2.65. Invocation command line was
33231 33831
33232 CONFIG_FILES = $CONFIG_FILES 33832 CONFIG_FILES = $CONFIG_FILES
33233 CONFIG_HEADERS = $CONFIG_HEADERS 33833 CONFIG_HEADERS = $CONFIG_HEADERS
@@ -33292,11 +33892,11 @@ _ACEOF
33292cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 33892cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
33293ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 33893ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
33294ac_cs_version="\\ 33894ac_cs_version="\\
33295evas config.status 1.1.0 33895evas config.status 1.1.99.67344
33296configured by $0, generated by GNU Autoconf 2.67, 33896configured by $0, generated by GNU Autoconf 2.65,
33297 with options \\"\$ac_cs_config\\" 33897 with options \\"\$ac_cs_config\\"
33298 33898
33299Copyright (C) 2010 Free Software Foundation, Inc. 33899Copyright (C) 2009 Free Software Foundation, Inc.
33300This config.status script is free software; the Free Software Foundation 33900This config.status script is free software; the Free Software Foundation
33301gives unlimited permission to copy, distribute and modify it." 33901gives unlimited permission to copy, distribute and modify it."
33302 33902
@@ -33314,16 +33914,11 @@ ac_need_defaults=:
33314while test $# != 0 33914while test $# != 0
33315do 33915do
33316 case $1 in 33916 case $1 in
33317 --*=?*) 33917 --*=*)
33318 ac_option=`expr "X$1" : 'X\([^=]*\)='` 33918 ac_option=`expr "X$1" : 'X\([^=]*\)='`
33319 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` 33919 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
33320 ac_shift=: 33920 ac_shift=:
33321 ;; 33921 ;;
33322 --*=)
33323 ac_option=`expr "X$1" : 'X\([^=]*\)='`
33324 ac_optarg=
33325 ac_shift=:
33326 ;;
33327 *) 33922 *)
33328 ac_option=$1 33923 ac_option=$1
33329 ac_optarg=$2 33924 ac_optarg=$2
@@ -33345,7 +33940,6 @@ do
33345 $ac_shift 33940 $ac_shift
33346 case $ac_optarg in 33941 case $ac_optarg in
33347 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; 33942 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
33348 '') as_fn_error $? "missing file argument" ;;
33349 esac 33943 esac
33350 as_fn_append CONFIG_FILES " '$ac_optarg'" 33944 as_fn_append CONFIG_FILES " '$ac_optarg'"
33351 ac_need_defaults=false;; 33945 ac_need_defaults=false;;
@@ -33358,7 +33952,7 @@ do
33358 ac_need_defaults=false;; 33952 ac_need_defaults=false;;
33359 --he | --h) 33953 --he | --h)
33360 # Conflict between --help and --header 33954 # Conflict between --help and --header
33361 as_fn_error $? "ambiguous option: \`$1' 33955 as_fn_error "ambiguous option: \`$1'
33362Try \`$0 --help' for more information.";; 33956Try \`$0 --help' for more information.";;
33363 --help | --hel | -h ) 33957 --help | --hel | -h )
33364 $as_echo "$ac_cs_usage"; exit ;; 33958 $as_echo "$ac_cs_usage"; exit ;;
@@ -33367,7 +33961,7 @@ Try \`$0 --help' for more information.";;
33367 ac_cs_silent=: ;; 33961 ac_cs_silent=: ;;
33368 33962
33369 # This is an error. 33963 # This is an error.
33370 -*) as_fn_error $? "unrecognized option: \`$1' 33964 -*) as_fn_error "unrecognized option: \`$1'
33371Try \`$0 --help' for more information." ;; 33965Try \`$0 --help' for more information." ;;
33372 33966
33373 *) as_fn_append ac_config_targets " $1" 33967 *) as_fn_append ac_config_targets " $1"
@@ -33793,6 +34387,8 @@ do
33793 "evas-software-16-wince.pc") CONFIG_FILES="$CONFIG_FILES evas-software-16-wince.pc" ;; 34387 "evas-software-16-wince.pc") CONFIG_FILES="$CONFIG_FILES evas-software-16-wince.pc" ;;
33794 "evas-software-sdl.pc") CONFIG_FILES="$CONFIG_FILES evas-software-sdl.pc" ;; 34388 "evas-software-sdl.pc") CONFIG_FILES="$CONFIG_FILES evas-software-sdl.pc" ;;
33795 "evas-psl1ght.pc") CONFIG_FILES="$CONFIG_FILES evas-psl1ght.pc" ;; 34389 "evas-psl1ght.pc") CONFIG_FILES="$CONFIG_FILES evas-psl1ght.pc" ;;
34390 "evas-wayland-shm.pc") CONFIG_FILES="$CONFIG_FILES evas-wayland-shm.pc" ;;
34391 "evas-wayland-egl.pc") CONFIG_FILES="$CONFIG_FILES evas-wayland-egl.pc" ;;
33796 "evas.pc") CONFIG_FILES="$CONFIG_FILES evas.pc" ;; 34392 "evas.pc") CONFIG_FILES="$CONFIG_FILES evas.pc" ;;
33797 "doc/evas.dox") CONFIG_FILES="$CONFIG_FILES doc/evas.dox" ;; 34393 "doc/evas.dox") CONFIG_FILES="$CONFIG_FILES doc/evas.dox" ;;
33798 "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; 34394 "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
@@ -33837,6 +34433,8 @@ do
33837 "src/modules/engines/software_16_x11/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/software_16_x11/Makefile" ;; 34433 "src/modules/engines/software_16_x11/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/software_16_x11/Makefile" ;;
33838 "src/modules/engines/software_16_ddraw/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/software_16_ddraw/Makefile" ;; 34434 "src/modules/engines/software_16_ddraw/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/software_16_ddraw/Makefile" ;;
33839 "src/modules/engines/software_16_sdl/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/software_16_sdl/Makefile" ;; 34435 "src/modules/engines/software_16_sdl/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/software_16_sdl/Makefile" ;;
34436 "src/modules/engines/wayland_shm/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/wayland_shm/Makefile" ;;
34437 "src/modules/engines/wayland_egl/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/wayland_egl/Makefile" ;;
33840 "src/modules/loaders/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/loaders/Makefile" ;; 34438 "src/modules/loaders/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/loaders/Makefile" ;;
33841 "src/modules/loaders/edb/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/loaders/edb/Makefile" ;; 34439 "src/modules/loaders/edb/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/loaders/edb/Makefile" ;;
33842 "src/modules/loaders/eet/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/loaders/eet/Makefile" ;; 34440 "src/modules/loaders/eet/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/loaders/eet/Makefile" ;;
@@ -33866,7 +34464,7 @@ do
33866 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; 34464 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;;
33867 "evas.spec") CONFIG_FILES="$CONFIG_FILES evas.spec" ;; 34465 "evas.spec") CONFIG_FILES="$CONFIG_FILES evas.spec" ;;
33868 34466
33869 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; 34467 *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
33870 esac 34468 esac
33871done 34469done
33872 34470
@@ -33904,7 +34502,7 @@ $debug ||
33904{ 34502{
33905 tmp=./conf$$-$RANDOM 34503 tmp=./conf$$-$RANDOM
33906 (umask 077 && mkdir "$tmp") 34504 (umask 077 && mkdir "$tmp")
33907} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 34505} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
33908 34506
33909# Set up the scripts for CONFIG_FILES section. 34507# Set up the scripts for CONFIG_FILES section.
33910# No need to generate them if there are no CONFIG_FILES. 34508# No need to generate them if there are no CONFIG_FILES.
@@ -33921,7 +34519,7 @@ if test "x$ac_cr" = x; then
33921fi 34519fi
33922ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` 34520ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
33923if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then 34521if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
33924 ac_cs_awk_cr='\\r' 34522 ac_cs_awk_cr='\r'
33925else 34523else
33926 ac_cs_awk_cr=$ac_cr 34524 ac_cs_awk_cr=$ac_cr
33927fi 34525fi
@@ -33935,18 +34533,18 @@ _ACEOF
33935 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && 34533 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
33936 echo "_ACEOF" 34534 echo "_ACEOF"
33937} >conf$$subs.sh || 34535} >conf$$subs.sh ||
33938 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 34536 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
33939ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` 34537ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
33940ac_delim='%!_!# ' 34538ac_delim='%!_!# '
33941for ac_last_try in false false false false false :; do 34539for ac_last_try in false false false false false :; do
33942 . ./conf$$subs.sh || 34540 . ./conf$$subs.sh ||
33943 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 34541 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
33944 34542
33945 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` 34543 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
33946 if test $ac_delim_n = $ac_delim_num; then 34544 if test $ac_delim_n = $ac_delim_num; then
33947 break 34545 break
33948 elif $ac_last_try; then 34546 elif $ac_last_try; then
33949 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 34547 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
33950 else 34548 else
33951 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 34549 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
33952 fi 34550 fi
@@ -34035,28 +34633,20 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
34035else 34633else
34036 cat 34634 cat
34037fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ 34635fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
34038 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 34636 || as_fn_error "could not setup config files machinery" "$LINENO" 5
34039_ACEOF 34637_ACEOF
34040 34638
34041# VPATH may cause trouble with some makes, so we remove sole $(srcdir), 34639# VPATH may cause trouble with some makes, so we remove $(srcdir),
34042# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and 34640# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
34043# trailing colons and then remove the whole line if VPATH becomes empty 34641# trailing colons and then remove the whole line if VPATH becomes empty
34044# (actually we leave an empty line to preserve line numbers). 34642# (actually we leave an empty line to preserve line numbers).
34045if test "x$srcdir" = x.; then 34643if test "x$srcdir" = x.; then
34046 ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ 34644 ac_vpsub='/^[ ]*VPATH[ ]*=/{
34047h 34645s/:*\$(srcdir):*/:/
34048s/// 34646s/:*\${srcdir}:*/:/
34049s/^/:/ 34647s/:*@srcdir@:*/:/
34050s/[ ]*$/:/ 34648s/^\([^=]*=[ ]*\):*/\1/
34051s/:\$(srcdir):/:/g
34052s/:\${srcdir}:/:/g
34053s/:@srcdir@:/:/g
34054s/^:*//
34055s/:*$// 34649s/:*$//
34056x
34057s/\(=[ ]*\).*/\1/
34058G
34059s/\n//
34060s/^[^=]*=[ ]*$// 34650s/^[^=]*=[ ]*$//
34061}' 34651}'
34062fi 34652fi
@@ -34084,7 +34674,7 @@ for ac_last_try in false false :; do
34084 if test -z "$ac_t"; then 34674 if test -z "$ac_t"; then
34085 break 34675 break
34086 elif $ac_last_try; then 34676 elif $ac_last_try; then
34087 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 34677 as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
34088 else 34678 else
34089 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 34679 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
34090 fi 34680 fi
@@ -34169,7 +34759,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
34169_ACAWK 34759_ACAWK
34170_ACEOF 34760_ACEOF
34171cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 34761cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
34172 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 34762 as_fn_error "could not setup config headers machinery" "$LINENO" 5
34173fi # test -n "$CONFIG_HEADERS" 34763fi # test -n "$CONFIG_HEADERS"
34174 34764
34175 34765
@@ -34182,7 +34772,7 @@ do
34182 esac 34772 esac
34183 case $ac_mode$ac_tag in 34773 case $ac_mode$ac_tag in
34184 :[FHL]*:*);; 34774 :[FHL]*:*);;
34185 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; 34775 :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
34186 :[FH]-) ac_tag=-:-;; 34776 :[FH]-) ac_tag=-:-;;
34187 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; 34777 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
34188 esac 34778 esac
@@ -34210,7 +34800,7 @@ do
34210 [\\/$]*) false;; 34800 [\\/$]*) false;;
34211 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 34801 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
34212 esac || 34802 esac ||
34213 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; 34803 as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
34214 esac 34804 esac
34215 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac 34805 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
34216 as_fn_append ac_file_inputs " '$ac_f'" 34806 as_fn_append ac_file_inputs " '$ac_f'"
@@ -34237,7 +34827,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
34237 34827
34238 case $ac_tag in 34828 case $ac_tag in
34239 *:-:* | *:-) cat >"$tmp/stdin" \ 34829 *:-:* | *:-) cat >"$tmp/stdin" \
34240 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 34830 || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
34241 esac 34831 esac
34242 ;; 34832 ;;
34243 esac 34833 esac
@@ -34374,22 +34964,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
34374$ac_datarootdir_hack 34964$ac_datarootdir_hack
34375" 34965"
34376eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ 34966eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
34377 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 34967 || as_fn_error "could not create $ac_file" "$LINENO" 5
34378 34968
34379test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && 34969test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
34380 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && 34970 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
34381 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && 34971 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
34382 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' 34972 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
34383which seems to be undefined. Please make sure it is defined" >&5 34973which seems to be undefined. Please make sure it is defined." >&5
34384$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' 34974$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
34385which seems to be undefined. Please make sure it is defined" >&2;} 34975which seems to be undefined. Please make sure it is defined." >&2;}
34386 34976
34387 rm -f "$tmp/stdin" 34977 rm -f "$tmp/stdin"
34388 case $ac_file in 34978 case $ac_file in
34389 -) cat "$tmp/out" && rm -f "$tmp/out";; 34979 -) cat "$tmp/out" && rm -f "$tmp/out";;
34390 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; 34980 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
34391 esac \ 34981 esac \
34392 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 34982 || as_fn_error "could not create $ac_file" "$LINENO" 5
34393 ;; 34983 ;;
34394 :H) 34984 :H)
34395 # 34985 #
@@ -34400,19 +34990,19 @@ which seems to be undefined. Please make sure it is defined" >&2;}
34400 $as_echo "/* $configure_input */" \ 34990 $as_echo "/* $configure_input */" \
34401 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" 34991 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
34402 } >"$tmp/config.h" \ 34992 } >"$tmp/config.h" \
34403 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 34993 || as_fn_error "could not create $ac_file" "$LINENO" 5
34404 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then 34994 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
34405 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 34995 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
34406$as_echo "$as_me: $ac_file is unchanged" >&6;} 34996$as_echo "$as_me: $ac_file is unchanged" >&6;}
34407 else 34997 else
34408 rm -f "$ac_file" 34998 rm -f "$ac_file"
34409 mv "$tmp/config.h" "$ac_file" \ 34999 mv "$tmp/config.h" "$ac_file" \
34410 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 35000 || as_fn_error "could not create $ac_file" "$LINENO" 5
34411 fi 35001 fi
34412 else 35002 else
34413 $as_echo "/* $configure_input */" \ 35003 $as_echo "/* $configure_input */" \
34414 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ 35004 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
34415 || as_fn_error $? "could not create -" "$LINENO" 5 35005 || as_fn_error "could not create -" "$LINENO" 5
34416 fi 35006 fi
34417# Compute "$ac_file"'s index in $config_headers. 35007# Compute "$ac_file"'s index in $config_headers.
34418_am_arg="$ac_file" 35008_am_arg="$ac_file"
@@ -35370,7 +35960,7 @@ _ACEOF
35370ac_clean_files=$ac_clean_files_save 35960ac_clean_files=$ac_clean_files_save
35371 35961
35372test $ac_write_fail = 0 || 35962test $ac_write_fail = 0 ||
35373 as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 35963 as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
35374 35964
35375 35965
35376# configure is writing to config.log, and then calls config.status. 35966# configure is writing to config.log, and then calls config.status.
@@ -35391,7 +35981,7 @@ if test "$no_create" != yes; then
35391 exec 5>>config.log 35981 exec 5>>config.log
35392 # Use ||, not &&, to avoid exiting from the if with $? = 1, which 35982 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
35393 # would make configure fail if this is the last instruction. 35983 # would make configure fail if this is the last instruction.
35394 $ac_cs_success || as_fn_exit 1 35984 $ac_cs_success || as_fn_exit $?
35395fi 35985fi
35396if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then 35986if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
35397 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 35987 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
@@ -35465,6 +36055,8 @@ echo " Software 16bit X11.........: $have_evas_engine_software_16_x11"
35465echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw" 36055echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw"
35466echo " Software 16bit WinCE.......: $have_evas_engine_software_16_wince" 36056echo " Software 16bit WinCE.......: $have_evas_engine_software_16_wince"
35467echo " Software 16bit SDL.........: $have_evas_engine_software_16_sdl (primitive: $sdl_primitive)" 36057echo " Software 16bit SDL.........: $have_evas_engine_software_16_sdl (primitive: $sdl_primitive)"
36058echo " Wayland Shm................: $have_evas_engine_wayland_shm"
36059echo " Wayland Egl................: $have_evas_engine_wayland_egl"
35468echo 36060echo
35469echo "Image Loaders:" 36061echo "Image Loaders:"
35470echo " BMP.....................: $have_evas_image_loader_bmp" 36062echo " BMP.....................: $have_evas_image_loader_bmp"
@@ -35517,6 +36109,16 @@ echo
35517echo " Word Cache..............: $want_word_cache" 36109echo " Word Cache..............: $want_word_cache"
35518echo " Metric Cache............: $want_metric_cache" 36110echo " Metric Cache............: $want_metric_cache"
35519echo 36111echo
36112echo " Pixman..................: $have_pixman"
36113echo " Pixman Fonts............: $have_pixman_font"
36114echo " Pixman Rects............: $have_pixman_rect"
36115echo " Pixman Lines............: $have_pixman_line"
36116echo " Pixman Polygons.........: $have_pixman_poly"
36117echo " Pixman Images...........: $have_pixman_image"
36118echo " Pixman Image ScaleSample: $have_pixman_image_scale_sample"
36119echo
36120echo " Tiled 32BPP rotate......: $have_tile_rotate"
36121echo
35520echo "ARGB Software Engine Options:" 36122echo "ARGB Software Engine Options:"
35521echo " Sampling Scaler.........: $scaler_sample" 36123echo " Sampling Scaler.........: $scaler_sample"
35522echo " Smooth Scaler...........: $scaler_smooth" 36124echo " Smooth Scaler...........: $scaler_smooth"
diff --git a/libraries/evas/configure.ac b/libraries/evas/configure.ac
index 0b56053..5424e31 100644
--- a/libraries/evas/configure.ac
+++ b/libraries/evas/configure.ac
@@ -2,11 +2,11 @@
2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3m4_define([v_maj], [1]) 3m4_define([v_maj], [1])
4m4_define([v_min], [1]) 4m4_define([v_min], [1])
5m4_define([v_mic], [0]) 5m4_define([v_mic], [99])
6m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n'])) 6m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
7m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))]) 7m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))])
8##-- When released, remove the dnl on the below line 8##-- When released, remove the dnl on the below line
9m4_undefine([v_rev]) 9dnl m4_undefine([v_rev])
10##-- When doing snapshots - change soname. remove dnl on below line 10##-- When doing snapshots - change soname. remove dnl on below line
11dnl m4_define([relname], [ver-pre-svn-07]) 11dnl m4_define([relname], [ver-pre-svn-07])
12dnl m4_define([v_rel], [-release relname]) 12dnl m4_define([v_rel], [-release relname])
@@ -112,6 +112,8 @@ want_evas_engine_direct3d="no"
112want_evas_engine_fb="no" 112want_evas_engine_fb="no"
113want_evas_engine_directfb="no" 113want_evas_engine_directfb="no"
114want_evas_engine_psl1ght="no" 114want_evas_engine_psl1ght="no"
115want_evas_engine_wayland_shm="no"
116want_evas_engine_wayland_egl="no"
115 117
116want_evas_image_loader_edb="yes" 118want_evas_image_loader_edb="yes"
117want_evas_image_loader_eet="yes" 119want_evas_image_loader_eet="yes"
@@ -158,6 +160,8 @@ case "$host_os" in
158 want_evas_engine_software_xcb="no" 160 want_evas_engine_software_xcb="no"
159 want_evas_engine_gl_xcb="no" 161 want_evas_engine_gl_xcb="no"
160 want_evas_engine_fb="auto" 162 want_evas_engine_fb="auto"
163 want_evas_engine_wayland_shm="auto"
164 want_evas_engine_wayland_egl="auto"
161### no - not ready/usable/complete 165### no - not ready/usable/complete
162# want_evas_engine_software_8_x11="auto" 166# want_evas_engine_software_8_x11="auto"
163# want_evas_engine_software_16_x11="auto" 167# want_evas_engine_software_16_x11="auto"
@@ -403,8 +407,8 @@ fi
403# Pixman 407# Pixman
404have_pixman="no" 408have_pixman="no"
405AC_ARG_ENABLE([pixman], 409AC_ARG_ENABLE([pixman],
406 AC_HELP_STRING([--disable-pixman], 410 AC_HELP_STRING([--enable-pixman],
407 [disable pixman for software rendering. @<:@default=enabled@:>@]), 411 [enable pixman for software rendering. @<:@default=enabled@:>@]),
408 [ 412 [
409 if test "x${enableval}" = "xyes" ; then 413 if test "x${enableval}" = "xyes" ; then
410 want_pixman="yes" 414 want_pixman="yes"
@@ -429,12 +433,74 @@ if test "x${want_pixman}" = "xyes" -o "x${want_pixman}" = "xauto" ; then
429 ]) 433 ])
430fi 434fi
431 435
436have_pixman_font="no"
437AC_ARG_ENABLE(pixman-font,
438 AC_HELP_STRING([--enable-pixman-font], [Allow pixman to render fonts]),
439 [
440 have_pixman_font="yes"
441 AC_DEFINE(PIXMAN_FONT, 1, [Allow pixman to render fonts])
442 ]
443)
444
445have_pixman_rect="no"
446AC_ARG_ENABLE(pixman-rect,
447 AC_HELP_STRING([--enable-pixman-rect], [Allow pixman to render rects]),
448 [
449 have_pixman_rect="yes"
450 AC_DEFINE(PIXMAN_RECT, 1, [Allow pixman to render rects])
451 ]
452)
453
454have_pixman_line="no"
455AC_ARG_ENABLE(pixman-line,
456 AC_HELP_STRING([--enable-pixman-line], [Allow pixman to render lines]),
457 [
458 have_pixman_line="yes"
459 AC_DEFINE(PIXMAN_LINE, 1, [Allow pixman to render lines])
460 ]
461)
462
463have_pixman_poly="no"
464AC_ARG_ENABLE(pixman-poly,
465 AC_HELP_STRING([--enable-pixman-poly], [Allow pixman to render polys]),
466 [
467 have_pixman_poly="yes"
468 AC_DEFINE(PIXMAN_POLY, 1, [Allow pixman to render polys])
469 ]
470)
471
472have_pixman_image="no"
473AC_ARG_ENABLE(pixman-image,
474 AC_HELP_STRING([--enable-pixman-image], [Allow pixman to render images]),
475 [
476 have_pixman_image="yes"
477 AC_DEFINE(PIXMAN_IMAGE, 1, [Allow pixman to render images])
478 ]
479)
480
481have_pixman_image_scale_sample="no"
482AC_ARG_ENABLE(pixman-image-scale-sample,
483 AC_HELP_STRING([--enable-pixman-image-scale-sample], [Allow pixman to render sampled scaled images]),
484 [
485 have_pixman_image_scale_sample="yes"
486 AC_DEFINE(PIXMAN_IMAGE_SCALE_SAMPLE, 1, [Allow pixman to render image sampled scaling])
487 ]
488)
489
490have_tile_rotate="no"
491AC_ARG_ENABLE(tile-rotate,
492 AC_HELP_STRING([--enable-tile-rotate], [Enable tiled rotate algorithm]),
493 [
494 have_tile_rotate="yes"
495 AC_DEFINE(TILE_ROTATE, 1, [Enable tiled rotate algorithm])
496 ]
497)
498
432### Checks for header files 499### Checks for header files
433AC_HEADER_STDC 500AC_HEADER_STDC
434AC_CHECK_HEADERS([unistd.h stdint.h sys/param.h netinet/in.h]) 501AC_CHECK_HEADERS([unistd.h stdint.h sys/param.h netinet/in.h sys/mman.h])
435EFL_CHECK_PATH_MAX 502EFL_CHECK_PATH_MAX
436 503
437
438### Checks for types 504### Checks for types
439AC_CHECK_TYPES([struct sigaction], [], [], 505AC_CHECK_TYPES([struct sigaction], [], [],
440 [[#include <signal.h>]]) 506 [[#include <signal.h>]])
@@ -704,6 +770,10 @@ EVAS_CHECK_ENGINE([software-16-wince], [${want_evas_engine_software_16_wince}],
704 770
705EVAS_CHECK_ENGINE([software-16-sdl], [${want_evas_engine_software_16_sdl}], [no], [Software SDL 16 bits]) 771EVAS_CHECK_ENGINE([software-16-sdl], [${want_evas_engine_software_16_sdl}], [no], [Software SDL 16 bits])
706 772
773EVAS_CHECK_ENGINE([wayland-shm], [${want_evas_engine_wayland_shm}], [no], [Wayland Shm])
774
775EVAS_CHECK_ENGINE([wayland-egl], [${want_evas_engine_wayland_egl}], [no], [Wayland Egl])
776
707# SDL primitive 777# SDL primitive
708sdl_primitive="no" 778sdl_primitive="no"
709 779
@@ -856,13 +926,15 @@ have_static_evas_engine_gl_common="no"
856if test "x$have_evas_engine_gl_xlib" = "xyes" \ 926if test "x$have_evas_engine_gl_xlib" = "xyes" \
857 || test "x$have_evas_engine_gl_xcb" = "xyes" \ 927 || test "x$have_evas_engine_gl_xcb" = "xyes" \
858 || test "x$have_evas_engine_gl_sdl" = "xyes" \ 928 || test "x$have_evas_engine_gl_sdl" = "xyes" \
859 || test "x$have_evas_engine_gl_cocoa" = "xyes"; then 929 || test "x$have_evas_engine_gl_cocoa" = "xyes" \
930 || test "x$have_evas_engine_wayland_egl" = "xyes"; then
860 have_evas_engine_gl_common="yes" 931 have_evas_engine_gl_common="yes"
861fi 932fi
862if test "x$have_evas_engine_gl_xlib" = "xstatic" \ 933if test "x$have_evas_engine_gl_xlib" = "xstatic" \
863 || test "x$have_evas_engine_gl_xcb" = "xstatic" \ 934 || test "x$have_evas_engine_gl_xcb" = "xstatic" \
864 || test "x$have_evas_engine_gl_sdl" = "xstatic" \ 935 || test "x$have_evas_engine_gl_sdl" = "xstatic" \
865 || test "x$have_evas_engine_gl_cocoa" = "xstatic"; then 936 || test "x$have_evas_engine_gl_cocoa" = "xstatic" \
937 || test "x$have_evas_engine_wayland_egl" = "xstatic"; then
866 have_evas_engine_gl_common="yes" 938 have_evas_engine_gl_common="yes"
867 have_static_evas_engine_gl_common="yes" 939 have_static_evas_engine_gl_common="yes"
868fi 940fi
@@ -1272,9 +1344,16 @@ AC_ARG_ENABLE(cpu-sse3,
1272 AS_HELP_STRING([--enable-cpu-sse3], [enable sse3 code]), 1344 AS_HELP_STRING([--enable-cpu-sse3], [enable sse3 code]),
1273 [ 1345 [
1274 if test "x$enableval" = "xyes" ; then 1346 if test "x$enableval" = "xyes" ; then
1275 AC_MSG_RESULT(yes) 1347 AC_CHECK_HEADER(immintrin.h,
1276 AC_DEFINE(BUILD_SSE3, 1, [Build SSE3 Code]) 1348 [
1277 build_cpu_sse3="yes" 1349 AC_MSG_RESULT(yes)
1350 AC_DEFINE(BUILD_SSE3, 1, [Build SSE3 Code])
1351 build_cpu_sse3="yes"
1352 ],
1353 [
1354 AC_MSG_RESULT(no)
1355 build_cpu_sse3="no"
1356 ])
1278 else 1357 else
1279 AC_MSG_RESULT(no) 1358 AC_MSG_RESULT(no)
1280 build_cpu_sse3="no" 1359 build_cpu_sse3="no"
@@ -1283,7 +1362,16 @@ AC_ARG_ENABLE(cpu-sse3,
1283 [ 1362 [
1284 AC_MSG_RESULT($build_cpu_sse3) 1363 AC_MSG_RESULT($build_cpu_sse3)
1285 if test "x$build_cpu_sse3" = "xyes" ; then 1364 if test "x$build_cpu_sse3" = "xyes" ; then
1286 AC_DEFINE(BUILD_SSE3, 1, [Build SSE3 Code]) 1365 AC_CHECK_HEADER(immintrin.h,
1366 [
1367 AC_MSG_RESULT(yes)
1368 AC_DEFINE(BUILD_SSE3, 1, [Build SSE3 Code])
1369 build_cpu_sse3="yes"
1370 ],
1371 [
1372 AC_MSG_RESULT(no)
1373 build_cpu_sse3="no"
1374 ])
1287 fi 1375 fi
1288 ] 1376 ]
1289) 1377)
@@ -1805,6 +1893,8 @@ evas-direct3d.pc
1805evas-software-16-wince.pc 1893evas-software-16-wince.pc
1806evas-software-sdl.pc 1894evas-software-sdl.pc
1807evas-psl1ght.pc 1895evas-psl1ght.pc
1896evas-wayland-shm.pc
1897evas-wayland-egl.pc
1808evas.pc 1898evas.pc
1809doc/evas.dox 1899doc/evas.dox
1810doc/Makefile 1900doc/Makefile
@@ -1849,6 +1939,8 @@ src/modules/engines/software_16/Makefile
1849src/modules/engines/software_16_x11/Makefile 1939src/modules/engines/software_16_x11/Makefile
1850src/modules/engines/software_16_ddraw/Makefile 1940src/modules/engines/software_16_ddraw/Makefile
1851src/modules/engines/software_16_sdl/Makefile 1941src/modules/engines/software_16_sdl/Makefile
1942src/modules/engines/wayland_shm/Makefile
1943src/modules/engines/wayland_egl/Makefile
1852src/modules/loaders/Makefile 1944src/modules/loaders/Makefile
1853src/modules/loaders/edb/Makefile 1945src/modules/loaders/edb/Makefile
1854src/modules/loaders/eet/Makefile 1946src/modules/loaders/eet/Makefile
@@ -1945,6 +2037,8 @@ echo " Software 16bit X11.........: $have_evas_engine_software_16_x11"
1945echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw" 2037echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw"
1946echo " Software 16bit WinCE.......: $have_evas_engine_software_16_wince" 2038echo " Software 16bit WinCE.......: $have_evas_engine_software_16_wince"
1947echo " Software 16bit SDL.........: $have_evas_engine_software_16_sdl (primitive: $sdl_primitive)" 2039echo " Software 16bit SDL.........: $have_evas_engine_software_16_sdl (primitive: $sdl_primitive)"
2040echo " Wayland Shm................: $have_evas_engine_wayland_shm"
2041echo " Wayland Egl................: $have_evas_engine_wayland_egl"
1948echo 2042echo
1949echo "Image Loaders:" 2043echo "Image Loaders:"
1950echo " BMP.....................: $have_evas_image_loader_bmp" 2044echo " BMP.....................: $have_evas_image_loader_bmp"
@@ -2002,6 +2096,16 @@ echo
2002echo " Word Cache..............: $want_word_cache" 2096echo " Word Cache..............: $want_word_cache"
2003echo " Metric Cache............: $want_metric_cache" 2097echo " Metric Cache............: $want_metric_cache"
2004echo 2098echo
2099echo " Pixman..................: $have_pixman"
2100echo " Pixman Fonts............: $have_pixman_font"
2101echo " Pixman Rects............: $have_pixman_rect"
2102echo " Pixman Lines............: $have_pixman_line"
2103echo " Pixman Polygons.........: $have_pixman_poly"
2104echo " Pixman Images...........: $have_pixman_image"
2105echo " Pixman Image ScaleSample: $have_pixman_image_scale_sample"
2106echo
2107echo " Tiled 32BPP rotate......: $have_tile_rotate"
2108echo
2005echo "ARGB Software Engine Options:" 2109echo "ARGB Software Engine Options:"
2006echo " Sampling Scaler.........: $scaler_sample" 2110echo " Sampling Scaler.........: $scaler_sample"
2007echo " Smooth Scaler...........: $scaler_smooth" 2111echo " Smooth Scaler...........: $scaler_smooth"
diff --git a/libraries/evas/doc/Makefile.in b/libraries/evas/doc/Makefile.in
index e9a343d..20f2693 100644
--- a/libraries/evas/doc/Makefile.in
+++ b/libraries/evas/doc/Makefile.in
@@ -167,8 +167,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
167PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 167PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
168PIXMAN_LIBS = @PIXMAN_LIBS@ 168PIXMAN_LIBS = @PIXMAN_LIBS@
169PKG_CONFIG = @PKG_CONFIG@ 169PKG_CONFIG = @PKG_CONFIG@
170PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
171PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
172PNG_CFLAGS = @PNG_CFLAGS@ 170PNG_CFLAGS = @PNG_CFLAGS@
173PNG_LIBS = @PNG_LIBS@ 171PNG_LIBS = @PNG_LIBS@
174RANLIB = @RANLIB@ 172RANLIB = @RANLIB@
@@ -185,6 +183,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
185VALGRIND_LIBS = @VALGRIND_LIBS@ 183VALGRIND_LIBS = @VALGRIND_LIBS@
186VERSION = @VERSION@ 184VERSION = @VERSION@
187VMAJ = @VMAJ@ 185VMAJ = @VMAJ@
186WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
187WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
188WIN32_CFLAGS = @WIN32_CFLAGS@ 188WIN32_CFLAGS = @WIN32_CFLAGS@
189WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 189WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
190XCB_CFLAGS = @XCB_CFLAGS@ 190XCB_CFLAGS = @XCB_CFLAGS@
@@ -266,6 +266,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
266evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 266evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
267evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 267evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
268evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 268evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
269evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
270evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
271evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
272evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
269evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 273evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
270evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 274evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
271evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 275evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/doc/img/e_big.png b/libraries/evas/doc/img/e_big.png
index d42aeb4..d42aeb4 100644..100755
--- a/libraries/evas/doc/img/e_big.png
+++ b/libraries/evas/doc/img/e_big.png
Binary files differ
diff --git a/libraries/evas/doc/img/foot_bg.png b/libraries/evas/doc/img/foot_bg.png
index b24f3a4..b24f3a4 100644..100755
--- a/libraries/evas/doc/img/foot_bg.png
+++ b/libraries/evas/doc/img/foot_bg.png
Binary files differ
diff --git a/libraries/evas/doc/img/head_bg.png b/libraries/evas/doc/img/head_bg.png
index 081dc13..081dc13 100644..100755
--- a/libraries/evas/doc/img/head_bg.png
+++ b/libraries/evas/doc/img/head_bg.png
Binary files differ
diff --git a/libraries/evas/doc/img/menu_bg.png b/libraries/evas/doc/img/menu_bg.png
index e978743..e978743 100644..100755
--- a/libraries/evas/doc/img/menu_bg.png
+++ b/libraries/evas/doc/img/menu_bg.png
Binary files differ
diff --git a/libraries/evas/doc/img/menu_bg_current.png b/libraries/evas/doc/img/menu_bg_current.png
index de97c92..de97c92 100644..100755
--- a/libraries/evas/doc/img/menu_bg_current.png
+++ b/libraries/evas/doc/img/menu_bg_current.png
Binary files differ
diff --git a/libraries/evas/doc/img/menu_bg_hover.png b/libraries/evas/doc/img/menu_bg_hover.png
index 3fd851d..3fd851d 100644..100755
--- a/libraries/evas/doc/img/menu_bg_hover.png
+++ b/libraries/evas/doc/img/menu_bg_hover.png
Binary files differ
diff --git a/libraries/evas/doc/img/menu_bg_last.png b/libraries/evas/doc/img/menu_bg_last.png
index 88c116c..88c116c 100644..100755
--- a/libraries/evas/doc/img/menu_bg_last.png
+++ b/libraries/evas/doc/img/menu_bg_last.png
Binary files differ
diff --git a/libraries/evas/doc/img/menu_bg_unsel.png b/libraries/evas/doc/img/menu_bg_unsel.png
index 50e5fd8..50e5fd8 100644..100755
--- a/libraries/evas/doc/img/menu_bg_unsel.png
+++ b/libraries/evas/doc/img/menu_bg_unsel.png
Binary files differ
diff --git a/libraries/evas/evas-wayland-egl.pc.in b/libraries/evas/evas-wayland-egl.pc.in
new file mode 100644
index 0000000..a770c42
--- /dev/null
+++ b/libraries/evas/evas-wayland-egl.pc.in
@@ -0,0 +1,3 @@
1Name: evas-wayland-egl
2Description: Evas Wayland Egl engine
3Version: @VERSION@
diff --git a/libraries/evas/evas-wayland-shm.pc.in b/libraries/evas/evas-wayland-shm.pc.in
new file mode 100644
index 0000000..5576681
--- /dev/null
+++ b/libraries/evas/evas-wayland-shm.pc.in
@@ -0,0 +1,3 @@
1Name: evas-wayland-shm
2Description: Evas Wayland Shm engine
3Version: @VERSION@
diff --git a/libraries/evas/evas.spec b/libraries/evas/evas.spec
index f3ebad3..fe04f2e 100644
--- a/libraries/evas/evas.spec
+++ b/libraries/evas/evas.spec
@@ -85,7 +85,7 @@
85 85
86Summary: Multi-platform Canvas Library 86Summary: Multi-platform Canvas Library
87Name: evas 87Name: evas
88Version: 1.1.0 88Version: 1.1.99.67344
89Release: %{_rel} 89Release: %{_rel}
90License: BSD 90License: BSD
91Group: System Environment/Libraries 91Group: System Environment/Libraries
diff --git a/libraries/evas/ltmain.sh b/libraries/evas/ltmain.sh
index fa4b1e1..7ed280b 100755
--- a/libraries/evas/ltmain.sh
+++ b/libraries/evas/ltmain.sh
@@ -65,7 +65,7 @@
65# compiler: $LTCC 65# compiler: $LTCC
66# compiler flags: $LTCFLAGS 66# compiler flags: $LTCFLAGS
67# linker: $LD (gnu? $with_gnu_ld) 67# linker: $LD (gnu? $with_gnu_ld)
68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu3 68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
69# automake: $automake_version 69# automake: $automake_version
70# autoconf: $autoconf_version 70# autoconf: $autoconf_version
71# 71#
@@ -73,7 +73,7 @@
73 73
74PROGRAM=ltmain.sh 74PROGRAM=ltmain.sh
75PACKAGE=libtool 75PACKAGE=libtool
76VERSION="2.2.6b Debian-2.2.6b-2ubuntu3" 76VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
77TIMESTAMP="" 77TIMESTAMP=""
78package_revision=1.3017 78package_revision=1.3017
79 79
diff --git a/libraries/evas/m4/evas_check_engine.m4 b/libraries/evas/m4/evas_check_engine.m4
index 5294100..4fc13a9 100644
--- a/libraries/evas/m4/evas_check_engine.m4
+++ b/libraries/evas/m4/evas_check_engine.m4
@@ -873,6 +873,79 @@ fi
873 873
874]) 874])
875 875
876
877dnl use: EVAS_CHECK_ENGINE_DEP_WAYLAND_SHM(engine, simple, want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
878
879AC_DEFUN([EVAS_CHECK_ENGINE_DEP_WAYLAND_SHM],
880[
881
882have_dep="yes"
883evas_engine_[]$1[]_cflags=""
884evas_engine_[]$1[]_libs=""
885
886AC_SUBST([evas_engine_$1_cflags])
887AC_SUBST([evas_engine_$1_libs])
888
889if test "x${have_dep}" = "xyes" ; then
890 m4_default([$4], [:])
891else
892 m4_default([$5], [:])
893fi
894
895])
896
897
898dnl use: EVAS_CHECK_ENGINE_DEP_WAYLAND_EGL(engine, simple, want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
899
900AC_DEFUN([EVAS_CHECK_ENGINE_DEP_WAYLAND_EGL],
901[
902
903requirement=""
904have_dep="no"
905evas_engine_[]$1[]_cflags=""
906evas_engine_[]$1[]_libs=""
907
908PKG_CHECK_MODULES([WAYLAND_EGL],
909 [egl >= 7.10 glesv2 gl wayland-client wayland-egl],
910 [
911 have_dep="yes"
912 requirement="egl >= 7.10 glesv2 gl wayland-client wayland-egl"
913 evas_engine_[]$1[]_cflags="${WAYLAND_EGL_CFLAGS}"
914 evas_engine_[]$1[]_libs="${WAYLAND_EGL_LIBS}"
915 ],[
916 have_dep="no"
917 ]
918)
919
920if test "x${have_dep}" = "xyes" ; then
921 PKG_CHECK_MODULES([GL_EET], [eet >= 1.5.0], [have_dep="yes"], [have_dep="no"])
922 AC_CHECK_HEADER([GLES2/gl2.h],
923 [have_egl="yes"],
924 [have_egl="no"],
925 [
926 ])
927 if test "x${have_egl}" = "xyes" ; then
928 evas_engine_[]$1[]_cflags="${WAYLAND_EGL_CFLAGS}"
929 evas_engine_[]$1[]_libs="${WAYLAND_EGL_LIBS} -lGL -lGLESv2 -lEGL"
930 fi
931fi
932
933AC_SUBST([evas_engine_$1_cflags])
934AC_SUBST([evas_engine_$1_libs])
935
936if test "x$3" = "xstatic" ; then
937 requirement_evas="${requirement} ${requirement_evas}"
938fi
939
940if test "x${have_dep}" = "xyes" ; then
941 m4_default([$4], [:])
942else
943 m4_default([$5], [:])
944fi
945
946])
947
948
876dnl use: EVAS_CHECK_ENGINE(engine, want_engine, simple, description) 949dnl use: EVAS_CHECK_ENGINE(engine, want_engine, simple, description)
877 950
878 951
diff --git a/libraries/evas/sha1-for-source.txt b/libraries/evas/sha1-for-source.txt
deleted file mode 100644
index 36d8a4c..0000000
--- a/libraries/evas/sha1-for-source.txt
+++ /dev/null
@@ -1 +0,0 @@
1c4cc1315c6fe6096e822f8dbf2c099a541b07962
diff --git a/libraries/evas/src/Makefile.in b/libraries/evas/src/Makefile.in
index 9b729e1..68cdb12 100644
--- a/libraries/evas/src/Makefile.in
+++ b/libraries/evas/src/Makefile.in
@@ -206,8 +206,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
206PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 206PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
207PIXMAN_LIBS = @PIXMAN_LIBS@ 207PIXMAN_LIBS = @PIXMAN_LIBS@
208PKG_CONFIG = @PKG_CONFIG@ 208PKG_CONFIG = @PKG_CONFIG@
209PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
210PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
211PNG_CFLAGS = @PNG_CFLAGS@ 209PNG_CFLAGS = @PNG_CFLAGS@
212PNG_LIBS = @PNG_LIBS@ 210PNG_LIBS = @PNG_LIBS@
213RANLIB = @RANLIB@ 211RANLIB = @RANLIB@
@@ -224,6 +222,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
224VALGRIND_LIBS = @VALGRIND_LIBS@ 222VALGRIND_LIBS = @VALGRIND_LIBS@
225VERSION = @VERSION@ 223VERSION = @VERSION@
226VMAJ = @VMAJ@ 224VMAJ = @VMAJ@
225WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
226WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
227WIN32_CFLAGS = @WIN32_CFLAGS@ 227WIN32_CFLAGS = @WIN32_CFLAGS@
228WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 228WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
229XCB_CFLAGS = @XCB_CFLAGS@ 229XCB_CFLAGS = @XCB_CFLAGS@
@@ -305,6 +305,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
305evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 305evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
306evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 306evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
307evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 307evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
308evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
309evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
310evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
311evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
308evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 312evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
309evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 313evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
310evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 314evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/bin/Makefile.in b/libraries/evas/src/bin/Makefile.in
index 885bfc4..136b34c 100644
--- a/libraries/evas/src/bin/Makefile.in
+++ b/libraries/evas/src/bin/Makefile.in
@@ -212,8 +212,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
212PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 212PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
213PIXMAN_LIBS = @PIXMAN_LIBS@ 213PIXMAN_LIBS = @PIXMAN_LIBS@
214PKG_CONFIG = @PKG_CONFIG@ 214PKG_CONFIG = @PKG_CONFIG@
215PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
216PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
217PNG_CFLAGS = @PNG_CFLAGS@ 215PNG_CFLAGS = @PNG_CFLAGS@
218PNG_LIBS = @PNG_LIBS@ 216PNG_LIBS = @PNG_LIBS@
219RANLIB = @RANLIB@ 217RANLIB = @RANLIB@
@@ -230,6 +228,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
230VALGRIND_LIBS = @VALGRIND_LIBS@ 228VALGRIND_LIBS = @VALGRIND_LIBS@
231VERSION = @VERSION@ 229VERSION = @VERSION@
232VMAJ = @VMAJ@ 230VMAJ = @VMAJ@
231WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
232WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
233WIN32_CFLAGS = @WIN32_CFLAGS@ 233WIN32_CFLAGS = @WIN32_CFLAGS@
234WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 234WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
235XCB_CFLAGS = @XCB_CFLAGS@ 235XCB_CFLAGS = @XCB_CFLAGS@
@@ -311,6 +311,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
311evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 311evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
312evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 312evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
313evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 313evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
314evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
315evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
316evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
317evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
314evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 318evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
315evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 319evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
316evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 320evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/examples/Makefile.am b/libraries/evas/src/examples/Makefile.am
index f748c12..ffa9274 100644
--- a/libraries/evas/src/examples/Makefile.am
+++ b/libraries/evas/src/examples/Makefile.am
@@ -1,6 +1,6 @@
1MAINTAINERCLEANFILES = Makefile.in 1MAINTAINERCLEANFILES = Makefile.in
2 2
3pkglibdir = $(datadir)/$(PACKAGE)/examples 3examplesdir = $(datadir)/$(PACKAGE)/examples
4 4
5#put here all EDCs one needs to the tests 5#put here all EDCs one needs to the tests
6EDCS = aspect.edc 6EDCS = aspect.edc
@@ -28,68 +28,68 @@ AM_CPPFLAGS = \
28 28
29AM_CFLAGS = @WIN32_CFLAGS@ 29AM_CFLAGS = @WIN32_CFLAGS@
30 30
31pkglib_PROGRAMS = 31examples_PROGRAMS =
32 32
33if BUILD_ENGINE_BUFFER 33if BUILD_ENGINE_BUFFER
34AM_CPPFLAGS += -I$(top_srcdir)/src/modules/engines/buffer 34AM_CPPFLAGS += -I$(top_srcdir)/src/modules/engines/buffer
35 35
36pkglib_PROGRAMS += evas_buffer_simple 36examples_PROGRAMS += evas_buffer_simple
37evas_buffer_simple_SOURCES = evas-buffer-simple.c 37evas_buffer_simple_SOURCES = evas-buffer-simple.c
38evas_buffer_simple_LDADD = $(top_builddir)/src/lib/libevas.la 38evas_buffer_simple_LDADD = $(top_builddir)/src/lib/libevas.la
39endif 39endif
40 40
41pkglib_PROGRAMS += evas_init_shutdown 41examples_PROGRAMS += evas_init_shutdown
42evas_init_shutdown_SOURCES = evas-init-shutdown.c 42evas_init_shutdown_SOURCES = evas-init-shutdown.c
43evas_init_shutdown_LDADD = $(top_builddir)/src/lib/libevas.la 43evas_init_shutdown_LDADD = $(top_builddir)/src/lib/libevas.la
44 44
45#the ones using ecore_evas follow 45#the ones using ecore_evas follow
46AM_CPPFLAGS += @ECORE_EVAS_CFLAGS@ 46AM_CPPFLAGS += @ECORE_EVAS_CFLAGS@
47 47
48pkglib_PROGRAMS += evas_images 48examples_PROGRAMS += evas_images
49evas_images_SOURCES = evas-images.c 49evas_images_SOURCES = evas-images.c
50evas_images_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 50evas_images_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
51 51
52pkglib_PROGRAMS += evas_events 52examples_PROGRAMS += evas_events
53evas_events_SOURCES = evas-events.c 53evas_events_SOURCES = evas-events.c
54evas_events_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 54evas_events_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
55 55
56pkglib_PROGRAMS += evas_object_manipulation 56examples_PROGRAMS += evas_object_manipulation
57evas_object_manipulation_SOURCES = evas-object-manipulation.c 57evas_object_manipulation_SOURCES = evas-object-manipulation.c
58evas_object_manipulation_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 58evas_object_manipulation_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
59 59
60pkglib_PROGRAMS += evas_hints 60examples_PROGRAMS += evas_hints
61evas_hints_SOURCES = evas-hints.c 61evas_hints_SOURCES = evas-hints.c
62evas_hints_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 62evas_hints_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
63 63
64pkglib_PROGRAMS += evas_stacking 64examples_PROGRAMS += evas_stacking
65evas_stacking_SOURCES = evas-stacking.c 65evas_stacking_SOURCES = evas-stacking.c
66evas_stacking_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 66evas_stacking_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
67 67
68pkglib_PROGRAMS += evas_images2 68examples_PROGRAMS += evas_images2
69evas_images2_SOURCES = evas-images2.c 69evas_images2_SOURCES = evas-images2.c
70evas_images2_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 70evas_images2_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
71 71
72pkglib_PROGRAMS += evas_text 72examples_PROGRAMS += evas_text
73evas_text_SOURCES = evas-text.c 73evas_text_SOURCES = evas-text.c
74evas_text_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 74evas_text_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
75 75
76pkglib_PROGRAMS += evas_smart_object 76examples_PROGRAMS += evas_smart_object
77evas_smart_object_SOURCES = evas-smart-object.c 77evas_smart_object_SOURCES = evas-smart-object.c
78evas_smart_object_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 78evas_smart_object_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
79 79
80pkglib_PROGRAMS += evas_box 80examples_PROGRAMS += evas_box
81evas_box_SOURCES = evas-box.c 81evas_box_SOURCES = evas-box.c
82evas_box_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ @EINA_LIBS@ 82evas_box_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ @EINA_LIBS@
83 83
84#the ones using ecore_evas and edje follow 84#the ones using ecore_evas and edje follow
85AM_CPPFLAGS += @EDJE_CFLAGS@ 85AM_CPPFLAGS += @EDJE_CFLAGS@
86 86
87pkglib_PROGRAMS += evas_aspect_hints 87examples_PROGRAMS += evas_aspect_hints
88evas_aspect_hints_DEPS = $(srcdir)/aspect.edc 88evas_aspect_hints_DEPS = $(srcdir)/aspect.edc
89evas_aspect_hints_SOURCES = evas-aspect-hints.c 89evas_aspect_hints_SOURCES = evas-aspect-hints.c
90evas_aspect_hints_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ @EDJE_LIBS@ 90evas_aspect_hints_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ @EDJE_LIBS@
91 91
92pkglib_PROGRAMS += evas_map_utils 92examples_PROGRAMS += evas_map_utils
93evas_map_utils_SOURCES = evas-map-utils.c 93evas_map_utils_SOURCES = evas-map-utils.c
94evas_map_utils_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 94evas_map_utils_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
95 95
diff --git a/libraries/evas/src/examples/Makefile.in b/libraries/evas/src/examples/Makefile.in
index 5332650..f58d297 100644
--- a/libraries/evas/src/examples/Makefile.in
+++ b/libraries/evas/src/examples/Makefile.in
@@ -19,6 +19,7 @@
19VPATH = @srcdir@ 19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@ 20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@ 21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@ 23pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644 25install_sh_DATA = $(install_sh) -c -m 644
@@ -34,7 +35,7 @@ PRE_UNINSTALL = :
34POST_UNINSTALL = : 35POST_UNINSTALL = :
35build_triplet = @build@ 36build_triplet = @build@
36host_triplet = @host@ 37host_triplet = @host@
37@BUILD_EXAMPLES_TRUE@pkglib_PROGRAMS = $(am__EXEEXT_1) \ 38@BUILD_EXAMPLES_TRUE@examples_PROGRAMS = $(am__EXEEXT_1) \
38@BUILD_EXAMPLES_TRUE@ evas_init_shutdown$(EXEEXT) \ 39@BUILD_EXAMPLES_TRUE@ evas_init_shutdown$(EXEEXT) \
39@BUILD_EXAMPLES_TRUE@ evas_images$(EXEEXT) evas_events$(EXEEXT) \ 40@BUILD_EXAMPLES_TRUE@ evas_images$(EXEEXT) evas_events$(EXEEXT) \
40@BUILD_EXAMPLES_TRUE@ evas_object_manipulation$(EXEEXT) \ 41@BUILD_EXAMPLES_TRUE@ evas_object_manipulation$(EXEEXT) \
@@ -89,8 +90,8 @@ CONFIG_HEADER = $(top_builddir)/config.h
89CONFIG_CLEAN_FILES = 90CONFIG_CLEAN_FILES =
90CONFIG_CLEAN_VPATH_FILES = 91CONFIG_CLEAN_VPATH_FILES =
91@BUILD_ENGINE_BUFFER_TRUE@@BUILD_EXAMPLES_TRUE@am__EXEEXT_1 = evas_buffer_simple$(EXEEXT) 92@BUILD_ENGINE_BUFFER_TRUE@@BUILD_EXAMPLES_TRUE@am__EXEEXT_1 = evas_buffer_simple$(EXEEXT)
92am__installdirs = "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(filesdir)" 93am__installdirs = "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"
93PROGRAMS = $(pkglib_PROGRAMS) 94PROGRAMS = $(examples_PROGRAMS)
94am__evas_aspect_hints_SOURCES_DIST = evas-aspect-hints.c 95am__evas_aspect_hints_SOURCES_DIST = evas-aspect-hints.c
95@BUILD_EXAMPLES_TRUE@am_evas_aspect_hints_OBJECTS = \ 96@BUILD_EXAMPLES_TRUE@am_evas_aspect_hints_OBJECTS = \
96@BUILD_EXAMPLES_TRUE@ evas-aspect-hints.$(OBJEXT) 97@BUILD_EXAMPLES_TRUE@ evas-aspect-hints.$(OBJEXT)
@@ -236,7 +237,6 @@ DATA = $(files_DATA)
236ETAGS = etags 237ETAGS = etags
237CTAGS = ctags 238CTAGS = ctags
238DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 239DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
239pkglibdir = $(datadir)/$(PACKAGE)/examples
240ACLOCAL = @ACLOCAL@ 240ACLOCAL = @ACLOCAL@
241ALLOCA = @ALLOCA@ 241ALLOCA = @ALLOCA@
242AMTAR = @AMTAR@ 242AMTAR = @AMTAR@
@@ -339,8 +339,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
339PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 339PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
340PIXMAN_LIBS = @PIXMAN_LIBS@ 340PIXMAN_LIBS = @PIXMAN_LIBS@
341PKG_CONFIG = @PKG_CONFIG@ 341PKG_CONFIG = @PKG_CONFIG@
342PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
343PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
344PNG_CFLAGS = @PNG_CFLAGS@ 342PNG_CFLAGS = @PNG_CFLAGS@
345PNG_LIBS = @PNG_LIBS@ 343PNG_LIBS = @PNG_LIBS@
346RANLIB = @RANLIB@ 344RANLIB = @RANLIB@
@@ -357,6 +355,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
357VALGRIND_LIBS = @VALGRIND_LIBS@ 355VALGRIND_LIBS = @VALGRIND_LIBS@
358VERSION = @VERSION@ 356VERSION = @VERSION@
359VMAJ = @VMAJ@ 357VMAJ = @VMAJ@
358WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
359WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
360WIN32_CFLAGS = @WIN32_CFLAGS@ 360WIN32_CFLAGS = @WIN32_CFLAGS@
361WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 361WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
362XCB_CFLAGS = @XCB_CFLAGS@ 362XCB_CFLAGS = @XCB_CFLAGS@
@@ -438,6 +438,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
438evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 438evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
439evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 439evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
440evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 440evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
441evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
442evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
443evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
444evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
441evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 445evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
442evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 446evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
443evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 447evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
@@ -513,6 +517,7 @@ top_builddir = @top_builddir@
513top_srcdir = @top_srcdir@ 517top_srcdir = @top_srcdir@
514version_info = @version_info@ 518version_info = @version_info@
515MAINTAINERCLEANFILES = Makefile.in 519MAINTAINERCLEANFILES = Makefile.in
520examplesdir = $(datadir)/$(PACKAGE)/examples
516 521
517#put here all EDCs one needs to the tests 522#put here all EDCs one needs to the tests
518EDCS = aspect.edc 523EDCS = aspect.edc
@@ -616,10 +621,10 @@ $(top_srcdir)/configure: $(am__configure_deps)
616$(ACLOCAL_M4): $(am__aclocal_m4_deps) 621$(ACLOCAL_M4): $(am__aclocal_m4_deps)
617 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 622 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
618$(am__aclocal_m4_deps): 623$(am__aclocal_m4_deps):
619install-pkglibPROGRAMS: $(pkglib_PROGRAMS) 624install-examplesPROGRAMS: $(examples_PROGRAMS)
620 @$(NORMAL_INSTALL) 625 @$(NORMAL_INSTALL)
621 test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" 626 test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)"
622 @list='$(pkglib_PROGRAMS)'; test -n "$(pkglibdir)" || list=; \ 627 @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \
623 for p in $$list; do echo "$$p $$p"; done | \ 628 for p in $$list; do echo "$$p $$p"; done | \
624 sed 's/$(EXEEXT)$$//' | \ 629 sed 's/$(EXEEXT)$$//' | \
625 while read p p1; do if test -f $$p || test -f $$p1; \ 630 while read p p1; do if test -f $$p || test -f $$p1; \
@@ -636,23 +641,23 @@ install-pkglibPROGRAMS: $(pkglib_PROGRAMS)
636 while read type dir files; do \ 641 while read type dir files; do \
637 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ 642 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
638 test -z "$$files" || { \ 643 test -z "$$files" || { \
639 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(pkglibdir)$$dir'"; \ 644 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(examplesdir)$$dir'"; \
640 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(pkglibdir)$$dir" || exit $$?; \ 645 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(examplesdir)$$dir" || exit $$?; \
641 } \ 646 } \
642 ; done 647 ; done
643 648
644uninstall-pkglibPROGRAMS: 649uninstall-examplesPROGRAMS:
645 @$(NORMAL_UNINSTALL) 650 @$(NORMAL_UNINSTALL)
646 @list='$(pkglib_PROGRAMS)'; test -n "$(pkglibdir)" || list=; \ 651 @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \
647 files=`for p in $$list; do echo "$$p"; done | \ 652 files=`for p in $$list; do echo "$$p"; done | \
648 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ 653 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
649 -e 's/$$/$(EXEEXT)/' `; \ 654 -e 's/$$/$(EXEEXT)/' `; \
650 test -n "$$list" || exit 0; \ 655 test -n "$$list" || exit 0; \
651 echo " ( cd '$(DESTDIR)$(pkglibdir)' && rm -f" $$files ")"; \ 656 echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \
652 cd "$(DESTDIR)$(pkglibdir)" && rm -f $$files 657 cd "$(DESTDIR)$(examplesdir)" && rm -f $$files
653 658
654clean-pkglibPROGRAMS: 659clean-examplesPROGRAMS:
655 @list='$(pkglib_PROGRAMS)'; test -n "$$list" || exit 0; \ 660 @list='$(examples_PROGRAMS)'; test -n "$$list" || exit 0; \
656 echo " rm -f" $$list; \ 661 echo " rm -f" $$list; \
657 rm -f $$list || exit $$?; \ 662 rm -f $$list || exit $$?; \
658 test -n "$(EXEEXT)" || exit 0; \ 663 test -n "$(EXEEXT)" || exit 0; \
@@ -855,7 +860,7 @@ check-am: all-am
855check: check-am 860check: check-am
856all-am: Makefile $(PROGRAMS) $(DATA) 861all-am: Makefile $(PROGRAMS) $(DATA)
857installdirs: 862installdirs:
858 for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(filesdir)"; do \ 863 for dir in "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"; do \
859 test -z "$$dir" || $(MKDIR_P) "$$dir"; \ 864 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
860 done 865 done
861install: install-am 866install: install-am
@@ -886,7 +891,7 @@ maintainer-clean-generic:
886 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) 891 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
887clean: clean-am 892clean: clean-am
888 893
889clean-am: clean-generic clean-libtool clean-pkglibPROGRAMS \ 894clean-am: clean-examplesPROGRAMS clean-generic clean-libtool \
890 mostlyclean-am 895 mostlyclean-am
891 896
892distclean: distclean-am 897distclean: distclean-am
@@ -907,13 +912,13 @@ info: info-am
907 912
908info-am: 913info-am:
909 914
910install-data-am: install-filesDATA 915install-data-am: install-examplesPROGRAMS install-filesDATA
911 916
912install-dvi: install-dvi-am 917install-dvi: install-dvi-am
913 918
914install-dvi-am: 919install-dvi-am:
915 920
916install-exec-am: install-pkglibPROGRAMS 921install-exec-am:
917 922
918install-html: install-html-am 923install-html: install-html-am
919 924
@@ -953,24 +958,25 @@ ps: ps-am
953 958
954ps-am: 959ps-am:
955 960
956uninstall-am: uninstall-filesDATA uninstall-pkglibPROGRAMS 961uninstall-am: uninstall-examplesPROGRAMS uninstall-filesDATA
957 962
958.MAKE: install-am install-strip 963.MAKE: install-am install-strip
959 964
960.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ 965.PHONY: CTAGS GTAGS all all-am check check-am clean \
961 clean-libtool clean-pkglibPROGRAMS ctags distclean \ 966 clean-examplesPROGRAMS clean-generic clean-libtool ctags \
962 distclean-compile distclean-generic distclean-libtool \ 967 distclean distclean-compile distclean-generic \
963 distclean-tags distdir dvi dvi-am html html-am info info-am \ 968 distclean-libtool distclean-tags distdir dvi dvi-am html \
964 install install-am install-data install-data-am install-dvi \ 969 html-am info info-am install install-am install-data \
965 install-dvi-am install-exec install-exec-am install-filesDATA \ 970 install-data-am install-dvi install-dvi-am \
966 install-html install-html-am install-info install-info-am \ 971 install-examplesPROGRAMS install-exec install-exec-am \
967 install-man install-pdf install-pdf-am install-pkglibPROGRAMS \ 972 install-filesDATA install-html install-html-am install-info \
973 install-info-am install-man install-pdf install-pdf-am \
968 install-ps install-ps-am install-strip installcheck \ 974 install-ps install-ps-am install-strip installcheck \
969 installcheck-am installdirs maintainer-clean \ 975 installcheck-am installdirs maintainer-clean \
970 maintainer-clean-generic mostlyclean mostlyclean-compile \ 976 maintainer-clean-generic mostlyclean mostlyclean-compile \
971 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ 977 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
972 tags uninstall uninstall-am uninstall-filesDATA \ 978 tags uninstall uninstall-am uninstall-examplesPROGRAMS \
973 uninstall-pkglibPROGRAMS 979 uninstall-filesDATA
974 980
975 981
976@BUILD_EXAMPLES_TRUE@aspect.edj: ${evas_aspect_hints_DEPS} 982@BUILD_EXAMPLES_TRUE@aspect.edj: ${evas_aspect_hints_DEPS}
diff --git a/libraries/evas/src/lib/Evas.h b/libraries/evas/src/lib/Evas.h
index 5898290..b85bbeb 100644
--- a/libraries/evas/src/lib/Evas.h
+++ b/libraries/evas/src/lib/Evas.h
@@ -5,6 +5,7 @@
5@date 2000-2011 5@date 2000-2011
6 6
7Please see the @ref authors page for contact details. 7Please see the @ref authors page for contact details.
8
8@link Evas.h Evas API @endlink 9@link Evas.h Evas API @endlink
9 10
10@section toc Table of Contents 11@section toc Table of Contents
@@ -342,7 +343,7 @@ extern "C" {
342#endif 343#endif
343 344
344#define EVAS_VERSION_MAJOR 1 345#define EVAS_VERSION_MAJOR 1
345#define EVAS_VERSION_MINOR 0 346#define EVAS_VERSION_MINOR 2
346 347
347typedef struct _Evas_Version 348typedef struct _Evas_Version
348{ 349{
@@ -432,6 +433,9 @@ typedef enum _Evas_Callback_Type
432 */ 433 */
433 EVAS_CALLBACK_IMAGE_UNLOADED, /**< Image data has been unloaded (by some mechanims in Evas that throw out original image data) */ 434 EVAS_CALLBACK_IMAGE_UNLOADED, /**< Image data has been unloaded (by some mechanims in Evas that throw out original image data) */
434 435
436 EVAS_CALLBACK_RENDER_PRE, /**< Called just before rendering starts on the canvas target @since 1.2 */
437 EVAS_CALLBACK_RENDER_POST, /**< Called just after rendering stops on the canvas target @since 1.2 */
438
435 EVAS_CALLBACK_LAST /**< kept as last element/sentinel -- not really an event */ 439 EVAS_CALLBACK_LAST /**< kept as last element/sentinel -- not really an event */
436} Evas_Callback_Type; /**< The types of events triggering a callback */ 440} Evas_Callback_Type; /**< The types of events triggering a callback */
437 441
@@ -1061,7 +1065,8 @@ struct _Evas_Event_Hold /** Hold change event */
1061typedef enum _Evas_Object_Pointer_Mode 1065typedef enum _Evas_Object_Pointer_Mode
1062{ 1066{
1063 EVAS_OBJECT_POINTER_MODE_AUTOGRAB, /**< default, X11-like */ 1067 EVAS_OBJECT_POINTER_MODE_AUTOGRAB, /**< default, X11-like */
1064 EVAS_OBJECT_POINTER_MODE_NOGRAB /**< pointer always bound to the object right below it */ 1068 EVAS_OBJECT_POINTER_MODE_NOGRAB, /**< pointer always bound to the object right below it */
1069 EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN /**< useful on object with "repeat events" enabled, where mouse/touch up and down events WONT be repeated to objects and these objects wont be auto-grabbed. @since 1.2 */
1065} Evas_Object_Pointer_Mode; /**< How the mouse pointer should be handled by Evas. */ 1070} Evas_Object_Pointer_Mode; /**< How the mouse pointer should be handled by Evas. */
1066 1071
1067typedef void (*Evas_Smart_Cb) (void *data, Evas_Object *obj, void *event_info); /**< Evas smart objects' "smart callback" function signature */ 1072typedef void (*Evas_Smart_Cb) (void *data, Evas_Object *obj, void *event_info); /**< Evas smart objects' "smart callback" function signature */
@@ -1220,7 +1225,7 @@ EAPI Evas_Alloc_Error evas_alloc_error (void);
1220 * 1225 *
1221 * @ingroup Evas_Group 1226 * @ingroup Evas_Group
1222 */ 1227 */
1223EAPI int evas_async_events_fd_get (void) EINA_WARN_UNUSED_RESULT EINA_PURE; 1228EAPI int evas_async_events_fd_get (void) EINA_WARN_UNUSED_RESULT;
1224 1229
1225/** 1230/**
1226 * @brief Trigger the processing of all events waiting on the file 1231 * @brief Trigger the processing of all events waiting on the file
@@ -1339,7 +1344,7 @@ EAPI void evas_focus_out (Evas *e);
1339 * @param e The evas to query information. 1344 * @param e The evas to query information.
1340 * @ingroup Evas_Canvas 1345 * @ingroup Evas_Canvas
1341 */ 1346 */
1342EAPI Eina_Bool evas_focus_state_get (const Evas *e) EINA_PURE; 1347EAPI Eina_Bool evas_focus_state_get (const Evas *e);
1343 1348
1344/** 1349/**
1345 * Push the nochange flag up 1 1350 * Push the nochange flag up 1
@@ -1380,7 +1385,7 @@ EAPI void evas_data_attach_set (Evas *e, void *data) E
1380 * @return The pointer attached 1385 * @return The pointer attached
1381 * @ingroup Evas_Canvas 1386 * @ingroup Evas_Canvas
1382 */ 1387 */
1383EAPI void *evas_data_attach_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 1388EAPI void *evas_data_attach_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
1384 1389
1385 1390
1386/** 1391/**
@@ -1747,7 +1752,7 @@ EAPI void evas_output_method_set (Evas *e, int render_me
1747 * returned if there is an error. 1752 * returned if there is an error.
1748 * @ingroup Evas_Output_Method 1753 * @ingroup Evas_Output_Method
1749 */ 1754 */
1750EAPI int evas_output_method_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 1755EAPI int evas_output_method_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
1751 1756
1752 1757
1753/** 1758/**
@@ -1764,7 +1769,7 @@ EAPI int evas_output_method_get (const Evas *e) EINA_WA
1764 * an engine has not yet been assigned. 1769 * an engine has not yet been assigned.
1765 * @ingroup Evas_Output_Method 1770 * @ingroup Evas_Output_Method
1766 */ 1771 */
1767EAPI Evas_Engine_Info *evas_engine_info_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 1772EAPI Evas_Engine_Info *evas_engine_info_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
1768 1773
1769/** 1774/**
1770 * Applies the engine settings for the given evas from the given @c 1775 * Applies the engine settings for the given evas from the given @c
@@ -1876,6 +1881,38 @@ EAPI void evas_output_viewport_set (Evas *e, Evas_Coord x,
1876EAPI void evas_output_viewport_get (const Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1); 1881EAPI void evas_output_viewport_get (const Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1);
1877 1882
1878/** 1883/**
1884 * Sets the output framespace size of the render engine of the given evas.
1885 *
1886 * The framespace size is used in the Wayland engines to denote space where
1887 * the output is not drawn. This is mainly used in ecore_evas to draw borders
1888 *
1889 * The units used for @p w and @p h depend on the engine used by the
1890 * evas.
1891 *
1892 * @param e The given evas.
1893 * @param x The left coordinate in output units, usually pixels.
1894 * @param y The top coordinate in output units, usually pixels.
1895 * @param w The width in output units, usually pixels.
1896 * @param h The height in output units, usually pixels.
1897 * @ingroup Evas_Output_Size
1898 * @since 1.1.0
1899 */
1900EAPI void evas_output_framespace_set (Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
1901
1902/**
1903 * Get the render engine's output framespace co-ordinates in canvas units.
1904 *
1905 * @param e The pointer to the Evas Canvas
1906 * @param x The pointer to a x variable to be filled in
1907 * @param y The pointer to a y variable to be filled in
1908 * @param w The pointer to a width variable to be filled in
1909 * @param h The pointer to a height variable to be filled in
1910 * @ingroup Evas_Output_Size
1911 * @since 1.1.0
1912 */
1913EAPI void evas_output_framespace_get (const Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
1914
1915/**
1879 * @defgroup Evas_Coord_Mapping_Group Coordinate Mapping Functions 1916 * @defgroup Evas_Coord_Mapping_Group Coordinate Mapping Functions
1880 * 1917 *
1881 * Functions that are used to map coordinates from the canvas to the 1918 * Functions that are used to map coordinates from the canvas to the
@@ -2342,6 +2379,33 @@ EAPI void evas_post_event_callback_remove_full (Evas *e, Evas_Objec
2342 */ 2379 */
2343 2380
2344/** 2381/**
2382 * Set the default set of flags an event begins with
2383 *
2384 * @param e The canvas to set the default event flags of
2385 * @param flags The default flags to use
2386 *
2387 * Events in evas can have an event_flags member. This starts out with
2388 * and initial value (no flags). this lets you set the default flags that
2389 * an event begins with to be @p flags
2390 *
2391 * @since 1.2
2392 */
2393EAPI void evas_event_default_flags_set (Evas *e, Evas_Event_Flags flags) EINA_ARG_NONNULL(1);
2394
2395/**
2396 * Get the defaulty set of flags an event begins with
2397 *
2398 * @param e The canvas to get the default event flags from
2399 * @return The default event flags for that canvas
2400 *
2401 * This gets the default event flags events are produced with when fed in.
2402 *
2403 * @see evas_event_default_flags_set()
2404 * @since 1.2
2405 */
2406EAPI Evas_Event_Flags evas_event_default_flags_get (const Evas *e) EINA_ARG_NONNULL(1);
2407
2408/**
2345 * Freeze all input events processing. 2409 * Freeze all input events processing.
2346 * 2410 *
2347 * @param e The canvas to freeze input events processing on. 2411 * @param e The canvas to freeze input events processing on.
@@ -2407,7 +2471,7 @@ EAPI void evas_event_thaw (Evas *e) EINA_ARG_NONN
2407 * @endcode 2471 * @endcode
2408 * 2472 *
2409 */ 2473 */
2410EAPI int evas_event_freeze_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2474EAPI int evas_event_freeze_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2411 2475
2412/** 2476/**
2413 * After thaw of a canvas, re-evaluate the state of objects and call callbacks 2477 * After thaw of a canvas, re-evaluate the state of objects and call callbacks
@@ -2448,6 +2512,16 @@ EAPI void evas_event_thaw_eval (Evas *e) EINA_ARG_NONN
2448 */ 2512 */
2449 2513
2450/** 2514/**
2515 * Get the number of mouse or multi presses currently active
2516 *
2517 * @p e The given canvas pointer.
2518 * @return The numer of presses (0 if none active).
2519 *
2520 * @since 1.2
2521 */
2522EAPI int evas_event_down_count_get (const Evas *e) EINA_ARG_NONNULL(1);
2523
2524/**
2451 * Mouse down event feed. 2525 * Mouse down event feed.
2452 * 2526 *
2453 * @param e The given canvas pointer. 2527 * @param e The given canvas pointer.
@@ -2679,7 +2753,7 @@ EAPI void evas_image_cache_set (Evas *e, int size) EIN
2679 * This function returns the image cache size of canvas in bytes. 2753 * This function returns the image cache size of canvas in bytes.
2680 * 2754 *
2681 */ 2755 */
2682EAPI int evas_image_cache_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2756EAPI int evas_image_cache_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2683 2757
2684/** 2758/**
2685 * Get the maximum image size evas can possibly handle 2759 * Get the maximum image size evas can possibly handle
@@ -2728,7 +2802,7 @@ EAPI void evas_font_hinting_set (Evas *e, Evas_Font_H
2728 * #EVAS_FONT_HINTING_AUTO, #EVAS_FONT_HINTING_BYTECODE. 2802 * #EVAS_FONT_HINTING_AUTO, #EVAS_FONT_HINTING_BYTECODE.
2729 * @ingroup Evas_Font_Group 2803 * @ingroup Evas_Font_Group
2730 */ 2804 */
2731EAPI Evas_Font_Hinting_Flags evas_font_hinting_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2805EAPI Evas_Font_Hinting_Flags evas_font_hinting_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2732 2806
2733/** 2807/**
2734 * Checks if the font hinting is supported by the given evas. 2808 * Checks if the font hinting is supported by the given evas.
@@ -2739,7 +2813,7 @@ EAPI Evas_Font_Hinting_Flags evas_font_hinting_get (const Evas *e) EINA_
2739 * @return @c EINA_TRUE if it is supported, @c EINA_FALSE otherwise. 2813 * @return @c EINA_TRUE if it is supported, @c EINA_FALSE otherwise.
2740 * @ingroup Evas_Font_Group 2814 * @ingroup Evas_Font_Group
2741 */ 2815 */
2742EAPI Eina_Bool evas_font_hinting_can_hint (const Evas *e, Evas_Font_Hinting_Flags hinting) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2816EAPI Eina_Bool evas_font_hinting_can_hint (const Evas *e, Evas_Font_Hinting_Flags hinting) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2743 2817
2744 2818
2745/** 2819/**
@@ -2768,7 +2842,7 @@ EAPI void evas_font_cache_set (Evas *e, int size) E
2768 * 2842 *
2769 * @ingroup Evas_Font_Group 2843 * @ingroup Evas_Font_Group
2770 */ 2844 */
2771EAPI int evas_font_cache_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2845EAPI int evas_font_cache_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2772 2846
2773 2847
2774/** 2848/**
@@ -2785,7 +2859,7 @@ EAPI int evas_font_cache_get (const Evas *e) EINA_
2785 * 2859 *
2786 * @ingroup Evas_Font_Group 2860 * @ingroup Evas_Font_Group
2787 */ 2861 */
2788EAPI Eina_List *evas_font_available_list (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2862EAPI Eina_List *evas_font_available_list (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2789 2863
2790/** 2864/**
2791 * Free list of font descriptions returned by evas_font_dir_available_list(). 2865 * Free list of font descriptions returned by evas_font_dir_available_list().
@@ -2834,7 +2908,7 @@ EAPI void evas_font_path_prepend (Evas *e, const char *p
2834 * @return The list of font paths used. 2908 * @return The list of font paths used.
2835 * @ingroup Evas_Font_Path_Group 2909 * @ingroup Evas_Font_Path_Group
2836 */ 2910 */
2837EAPI const Eina_List *evas_font_path_list (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2911EAPI const Eina_List *evas_font_path_list (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2838 2912
2839/** 2913/**
2840 * @defgroup Evas_Object_Group Generic Object Functions 2914 * @defgroup Evas_Object_Group Generic Object Functions
@@ -2958,7 +3032,7 @@ EAPI void evas_object_clip_set (Evas_Object *obj, Evas
2958 * 3032 *
2959 * See the full @ref Example_Evas_Object_Manipulation "example". 3033 * See the full @ref Example_Evas_Object_Manipulation "example".
2960 */ 3034 */
2961EAPI Evas_Object *evas_object_clip_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3035EAPI Evas_Object *evas_object_clip_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2962 3036
2963/** 3037/**
2964 * Disable/cease clipping on a clipped @p obj object. 3038 * Disable/cease clipping on a clipped @p obj object.
@@ -3015,7 +3089,7 @@ EAPI void evas_object_clip_unset (Evas_Object *obj);
3015 * } 3089 * }
3016 * @endcode 3090 * @endcode
3017 */ 3091 */
3018EAPI const Eina_List *evas_object_clipees_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3092EAPI const Eina_List *evas_object_clipees_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3019 3093
3020 3094
3021/** 3095/**
@@ -3068,7 +3142,7 @@ EAPI void evas_object_focus_set (Evas_Object *obj, Eina
3068 * @see evas_object_key_grab 3142 * @see evas_object_key_grab
3069 * @see evas_object_key_ungrab 3143 * @see evas_object_key_ungrab
3070 */ 3144 */
3071EAPI Eina_Bool evas_object_focus_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3145EAPI Eina_Bool evas_object_focus_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3072 3146
3073 3147
3074/** 3148/**
@@ -3104,7 +3178,7 @@ EAPI void evas_object_layer_set (Evas_Object *obj, shor
3104 * 3178 *
3105 * @see evas_object_layer_set() 3179 * @see evas_object_layer_set()
3106 */ 3180 */
3107EAPI short evas_object_layer_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3181EAPI short evas_object_layer_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3108 3182
3109 3183
3110/** 3184/**
@@ -3139,7 +3213,7 @@ EAPI void evas_object_name_set (Evas_Object *obj, cons
3139 * 3213 *
3140 * See the full @ref Example_Evas_Events "example". 3214 * See the full @ref Example_Evas_Events "example".
3141 */ 3215 */
3142EAPI const char *evas_object_name_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3216EAPI const char *evas_object_name_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3143 3217
3144 3218
3145/** 3219/**
@@ -3382,7 +3456,7 @@ EAPI void evas_object_hide (Evas_Object *obj) EINA
3382 * 3456 *
3383 * @ingroup Evas_Object_Group_Basic 3457 * @ingroup Evas_Object_Group_Basic
3384 */ 3458 */
3385EAPI Eina_Bool evas_object_visible_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3459EAPI Eina_Bool evas_object_visible_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3386 3460
3387 3461
3388/** 3462/**
@@ -3455,7 +3529,7 @@ EAPI void evas_object_color_get (const Evas_Object *obj
3455 * 3529 *
3456 * @ingroup Evas_Object_Group_Basic 3530 * @ingroup Evas_Object_Group_Basic
3457 */ 3531 */
3458EAPI Evas *evas_object_evas_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3532EAPI Evas *evas_object_evas_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3459 3533
3460/** 3534/**
3461 * Retrieves the type of the given Evas object. 3535 * Retrieves the type of the given Evas object.
@@ -3485,7 +3559,7 @@ EAPI Evas *evas_object_evas_get (const Evas_Object *obj
3485 * 3559 *
3486 * See the full @ref Example_Evas_Object_Manipulation "example". 3560 * See the full @ref Example_Evas_Object_Manipulation "example".
3487 */ 3561 */
3488EAPI const char *evas_object_type_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3562EAPI const char *evas_object_type_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3489 3563
3490/** 3564/**
3491 * Raise @p obj to the top of its layer. 3565 * Raise @p obj to the top of its layer.
@@ -3586,7 +3660,7 @@ EAPI void evas_object_stack_below (Evas_Object *obj, Evas
3586 * @see evas_object_below_get() 3660 * @see evas_object_below_get()
3587 * 3661 *
3588 */ 3662 */
3589EAPI Evas_Object *evas_object_above_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3663EAPI Evas_Object *evas_object_above_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3590 3664
3591/** 3665/**
3592 * Get the Evas object stacked right below @p obj 3666 * Get the Evas object stacked right below @p obj
@@ -3602,7 +3676,7 @@ EAPI Evas_Object *evas_object_above_get (const Evas_Object *obj
3602 * @see evas_object_layer_set() 3676 * @see evas_object_layer_set()
3603 * @see evas_object_below_get() 3677 * @see evas_object_below_get()
3604 */ 3678 */
3605EAPI Evas_Object *evas_object_below_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3679EAPI Evas_Object *evas_object_below_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3606 3680
3607/** 3681/**
3608 * @} 3682 * @}
@@ -3946,7 +4020,7 @@ EAPI void evas_object_pass_events_set (Evas_Object *obj, Ein
3946 * @see evas_object_propagate_events_get() 4020 * @see evas_object_propagate_events_get()
3947 * @see evas_object_freeze_events_get() 4021 * @see evas_object_freeze_events_get()
3948 */ 4022 */
3949EAPI Eina_Bool evas_object_pass_events_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 4023EAPI Eina_Bool evas_object_pass_events_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3950 4024
3951/** 4025/**
3952 * Set whether an Evas object is to repeat events. 4026 * Set whether an Evas object is to repeat events.
@@ -3988,7 +4062,7 @@ EAPI void evas_object_repeat_events_set (Evas_Object *obj, Ein
3988 * @see evas_object_propagate_events_get() 4062 * @see evas_object_propagate_events_get()
3989 * @see evas_object_freeze_events_get() 4063 * @see evas_object_freeze_events_get()
3990 */ 4064 */
3991EAPI Eina_Bool evas_object_repeat_events_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 4065EAPI Eina_Bool evas_object_repeat_events_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3992 4066
3993/** 4067/**
3994 * Set whether events on a smart object's member should get propagated 4068 * Set whether events on a smart object's member should get propagated
@@ -4026,7 +4100,7 @@ EAPI void evas_object_propagate_events_set (Evas_Object *obj, Ein
4026 * @see evas_object_pass_events_get() 4100 * @see evas_object_pass_events_get()
4027 * @see evas_object_freeze_events_get() 4101 * @see evas_object_freeze_events_get()
4028 */ 4102 */
4029EAPI Eina_Bool evas_object_propagate_events_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 4103EAPI Eina_Bool evas_object_propagate_events_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
4030 4104
4031/** 4105/**
4032 * Set whether an Evas object is to freeze (discard) events. 4106 * Set whether an Evas object is to freeze (discard) events.
@@ -4064,7 +4138,7 @@ EAPI void evas_object_freeze_events_set(Evas_Object *obj, Eina_Bool
4064 * @see evas_object_propagate_events_get() 4138 * @see evas_object_propagate_events_get()
4065 * @since 1.1.0 4139 * @since 1.1.0
4066 */ 4140 */
4067EAPI Eina_Bool evas_object_freeze_events_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 4141EAPI Eina_Bool evas_object_freeze_events_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
4068 4142
4069/** 4143/**
4070 * @} 4144 * @}
@@ -5028,7 +5102,7 @@ EAPI void evas_object_size_hint_min_get (const Evas_Object *obj
5028 * @skip evas_object_size_hint_min_set 5102 * @skip evas_object_size_hint_min_set
5029 * @until return 5103 * @until return
5030 * 5104 *
5031 * In this example the minimum size hints change de behavior of an 5105 * In this example the minimum size hints change the behavior of an
5032 * Evas box when layouting its children. See the full @ref 5106 * Evas box when layouting its children. See the full @ref
5033 * Example_Evas_Size_Hints "example". 5107 * Example_Evas_Size_Hints "example".
5034 * 5108 *
@@ -5072,7 +5146,7 @@ EAPI void evas_object_size_hint_max_get (const Evas_Object *obj
5072 * @skip evas_object_size_hint_max_set 5146 * @skip evas_object_size_hint_max_set
5073 * @until return 5147 * @until return
5074 * 5148 *
5075 * In this example the maximum size hints change de behavior of an 5149 * In this example the maximum size hints change the behavior of an
5076 * Evas box when layouting its children. See the full @ref 5150 * Evas box when layouting its children. See the full @ref
5077 * Example_Evas_Size_Hints "example". 5151 * Example_Evas_Size_Hints "example".
5078 * 5152 *
@@ -5247,7 +5321,7 @@ EAPI void evas_object_size_hint_align_get (const Evas_Object *obj
5247 * @skip evas_object_size_hint_align_set 5321 * @skip evas_object_size_hint_align_set
5248 * @until return 5322 * @until return
5249 * 5323 *
5250 * In this example the alignment hints change de behavior of an Evas 5324 * In this example the alignment hints change the behavior of an Evas
5251 * box when layouting its children. See the full @ref 5325 * box when layouting its children. See the full @ref
5252 * Example_Evas_Size_Hints "example". 5326 * Example_Evas_Size_Hints "example".
5253 * 5327 *
@@ -5306,7 +5380,7 @@ EAPI void evas_object_size_hint_weight_get (const Evas_Object *obj
5306 * @skip evas_object_size_hint_weight_set 5380 * @skip evas_object_size_hint_weight_set
5307 * @until return 5381 * @until return
5308 * 5382 *
5309 * In this example the weight hints change de behavior of an Evas box 5383 * In this example the weight hints change the behavior of an Evas box
5310 * when layouting its children. See the full @ref 5384 * when layouting its children. See the full @ref
5311 * Example_Evas_Size_Hints "example". 5385 * Example_Evas_Size_Hints "example".
5312 * 5386 *
@@ -5342,7 +5416,7 @@ EAPI void evas_object_size_hint_weight_set (Evas_Object *obj, doub
5342 * @skip evas_object_size_hint_padding_set 5416 * @skip evas_object_size_hint_padding_set
5343 * @until return 5417 * @until return
5344 * 5418 *
5345 * In this example the padding hints change de behavior of an Evas box 5419 * In this example the padding hints change the behavior of an Evas box
5346 * when layouting its children. See the full @ref 5420 * when layouting its children. See the full @ref
5347 * Example_Evas_Size_Hints "example". 5421 * Example_Evas_Size_Hints "example".
5348 * 5422 *
@@ -5456,7 +5530,7 @@ EAPI void evas_object_data_set (Evas_Object *ob
5456 * else printf("No data was stored on the object\n"); 5530 * else printf("No data was stored on the object\n");
5457 * @endcode 5531 * @endcode
5458 */ 5532 */
5459EAPI void *evas_object_data_get (const Evas_Object *obj, const char *key) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 5533EAPI void *evas_object_data_get (const Evas_Object *obj, const char *key) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
5460 5534
5461/** 5535/**
5462 * Delete an attached data pointer from an object. 5536 * Delete an attached data pointer from an object.
@@ -5510,7 +5584,7 @@ EAPI void evas_object_pointer_mode_set (Evas_Object *ob
5510 * @return pointer behavior. 5584 * @return pointer behavior.
5511 * @ingroup Evas_Object_Group_Extras 5585 * @ingroup Evas_Object_Group_Extras
5512 */ 5586 */
5513EAPI Evas_Object_Pointer_Mode evas_object_pointer_mode_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5587EAPI Evas_Object_Pointer_Mode evas_object_pointer_mode_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5514 5588
5515 5589
5516/** 5590/**
@@ -5528,7 +5602,7 @@ EAPI void evas_object_anti_alias_set (Evas_Object *ob
5528 * @return @c 1 if the object is to be anti_aliased. @c 0 otherwise. 5602 * @return @c 1 if the object is to be anti_aliased. @c 0 otherwise.
5529 * @ingroup Evas_Object_Group_Extras 5603 * @ingroup Evas_Object_Group_Extras
5530 */ 5604 */
5531EAPI Eina_Bool evas_object_anti_alias_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5605EAPI Eina_Bool evas_object_anti_alias_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5532 5606
5533 5607
5534/** 5608/**
@@ -5562,7 +5636,7 @@ EAPI void evas_object_scale_set (Evas_Object *ob
5562 * 5636 *
5563 * @see evas_object_scale_set() 5637 * @see evas_object_scale_set()
5564 */ 5638 */
5565EAPI double evas_object_scale_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5639EAPI double evas_object_scale_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5566 5640
5567 5641
5568/** 5642/**
@@ -5579,7 +5653,7 @@ EAPI void evas_object_render_op_set (Evas_Object *ob
5579 * @return one of the enumerated values in Evas_Render_Op. 5653 * @return one of the enumerated values in Evas_Render_Op.
5580 * @ingroup Evas_Object_Group_Extras 5654 * @ingroup Evas_Object_Group_Extras
5581 */ 5655 */
5582EAPI Evas_Render_Op evas_object_render_op_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5656EAPI Evas_Render_Op evas_object_render_op_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5583 5657
5584/** 5658/**
5585 * Set whether to use precise (usually expensive) point collision 5659 * Set whether to use precise (usually expensive) point collision
@@ -5621,7 +5695,7 @@ EAPI Evas_Render_Op evas_object_render_op_get (const Evas_Obje
5621 * 5695 *
5622 * @ingroup Evas_Object_Group_Extras 5696 * @ingroup Evas_Object_Group_Extras
5623 */ 5697 */
5624 EAPI Eina_Bool evas_object_precise_is_inside_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5698 EAPI Eina_Bool evas_object_precise_is_inside_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5625 5699
5626/** 5700/**
5627 * Set a hint flag on the given Evas object that it's used as a "static 5701 * Set a hint flag on the given Evas object that it's used as a "static
@@ -5653,7 +5727,7 @@ EAPI Evas_Render_Op evas_object_render_op_get (const Evas_Obje
5653 * 5727 *
5654 * @ingroup Evas_Object_Group_Extras 5728 * @ingroup Evas_Object_Group_Extras
5655 */ 5729 */
5656 EAPI Eina_Bool evas_object_static_clip_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5730 EAPI Eina_Bool evas_object_static_clip_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5657 5731
5658/** 5732/**
5659 * @} 5733 * @}
@@ -5710,7 +5784,7 @@ EAPI Evas_Render_Op evas_object_render_op_get (const Evas_Obje
5710 * 5784 *
5711 * @ingroup Evas_Object_Group_Find 5785 * @ingroup Evas_Object_Group_Find
5712 */ 5786 */
5713EAPI Evas_Object *evas_focus_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5787EAPI Evas_Object *evas_focus_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5714 5788
5715/** 5789/**
5716 * Retrieves the object on the given evas with the given name. 5790 * Retrieves the object on the given evas with the given name.
@@ -5718,9 +5792,36 @@ EAPI Evas_Object *evas_focus_get (const Evas *e) EINA_WA
5718 * @param name The given name. 5792 * @param name The given name.
5719 * @return If successful, the Evas object with the given name. Otherwise, 5793 * @return If successful, the Evas object with the given name. Otherwise,
5720 * @c NULL. 5794 * @c NULL.
5795 *
5796 * This looks for the evas object given a name by evas_object_name_set(). If
5797 * the name is not unique canvas-wide, then which one of the many objects
5798 * with that name is returned is undefined, so only use this if you can ensure
5799 * the object name is unique.
5800 *
5801 * @ingroup Evas_Object_Group_Find
5802 */
5803EAPI Evas_Object *evas_object_name_find (const Evas *e, const char *name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5804
5805/**
5806 * Retrieves the object from children of the given object with the given name.
5807 * @param obj The parent (smart) object whose children to search.
5808 * @param name The given name.
5809 * @param recurse Set to the number of child levels to recurse (0 == don't recurse, 1 == only look at the children of @p obj or their immediate children, but no further etc.).
5810 * @return If successful, the Evas object with the given name. Otherwise,
5811 * @c NULL.
5812 *
5813 * This looks for the evas object given a name by evas_object_name_set(), but
5814 * it ONLY looks at the children of the object *p obj, and will only recurse
5815 * into those children if @p recurse is greater than 0. If the name is not
5816 * unique within immediate children (or the whole child tree) then it is not
5817 * defined which child object will be returned. If @p recurse is set to -1 then
5818 * it will recurse without limit.
5819 *
5820 * @since 1.2
5821 *
5721 * @ingroup Evas_Object_Group_Find 5822 * @ingroup Evas_Object_Group_Find
5722 */ 5823 */
5723EAPI Evas_Object *evas_object_name_find (const Evas *e, const char *name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5824EAPI Evas_Object *evas_object_name_child_find (const Evas_Object *obj, const char *name, int recurse) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5724 5825
5725/** 5826/**
5726 * Retrieve the Evas object stacked at the top of a given position in 5827 * Retrieve the Evas object stacked at the top of a given position in
@@ -5745,7 +5846,7 @@ EAPI Evas_Object *evas_object_name_find (const Evas *e, const c
5745 * objects, acting only on the ones at the "top level", with regard to 5846 * objects, acting only on the ones at the "top level", with regard to
5746 * object parenting. 5847 * object parenting.
5747 */ 5848 */
5748EAPI Evas_Object *evas_object_top_at_xy_get (const Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5849EAPI Evas_Object *evas_object_top_at_xy_get (const Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5749 5850
5750/** 5851/**
5751 * Retrieve the Evas object stacked at the top at the position of the 5852 * Retrieve the Evas object stacked at the top at the position of the
@@ -5763,7 +5864,7 @@ EAPI Evas_Object *evas_object_top_at_xy_get (const Evas *e, Evas_Co
5763 * objects, acting only on the ones at the "top level", with regard to 5864 * objects, acting only on the ones at the "top level", with regard to
5764 * object parenting. 5865 * object parenting.
5765 */ 5866 */
5766EAPI Evas_Object *evas_object_top_at_pointer_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5867EAPI Evas_Object *evas_object_top_at_pointer_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5767 5868
5768/** 5869/**
5769 * Retrieve the Evas object stacked at the top of a given rectangular 5870 * Retrieve the Evas object stacked at the top of a given rectangular
@@ -5793,7 +5894,7 @@ EAPI Evas_Object *evas_object_top_at_pointer_get (const Evas *e) EINA_WA
5793 * objects, acting only on the ones at the "top level", with regard to 5894 * objects, acting only on the ones at the "top level", with regard to
5794 * object parenting. 5895 * object parenting.
5795 */ 5896 */
5796EAPI Evas_Object *evas_object_top_in_rectangle_get (const Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5897EAPI Evas_Object *evas_object_top_in_rectangle_get (const Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5797 5898
5798/** 5899/**
5799 * Retrieve a list of Evas objects lying over a given position in 5900 * Retrieve a list of Evas objects lying over a given position in
@@ -5818,8 +5919,8 @@ EAPI Evas_Object *evas_object_top_in_rectangle_get (const Evas *e, Evas_Co
5818 * objects, acting only on the ones at the "top level", with regard to 5919 * objects, acting only on the ones at the "top level", with regard to
5819 * object parenting. 5920 * object parenting.
5820 */ 5921 */
5821EAPI Eina_List *evas_objects_at_xy_get (const Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5922EAPI Eina_List *evas_objects_at_xy_get (const Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5822 EAPI Eina_List *evas_objects_in_rectangle_get (const Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5923 EAPI Eina_List *evas_objects_in_rectangle_get (const Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5823 5924
5824/** 5925/**
5825 * Get the lowest (stacked) Evas object on the canvas @p 5926 * Get the lowest (stacked) Evas object on the canvas @p
@@ -5840,7 +5941,7 @@ EAPI Eina_List *evas_objects_at_xy_get (const Evas *e, Evas_Co
5840 * objects, acting only on the ones at the "top level", with regard to 5941 * objects, acting only on the ones at the "top level", with regard to
5841 * object parenting. 5942 * object parenting.
5842 */ 5943 */
5843EAPI Evas_Object *evas_object_bottom_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5944EAPI Evas_Object *evas_object_bottom_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5844 5945
5845/** 5946/**
5846 * Get the highest (stacked) Evas object on the canvas @p 5947 * Get the highest (stacked) Evas object on the canvas @p
@@ -5862,7 +5963,7 @@ EAPI Evas_Object *evas_object_bottom_get (const Evas *e) EINA_WA
5862 * objects, acting only on the ones at the "top level", with regard to 5963 * objects, acting only on the ones at the "top level", with regard to
5863 * object parenting. 5964 * object parenting.
5864 */ 5965 */
5865EAPI Evas_Object *evas_object_top_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5966EAPI Evas_Object *evas_object_top_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5866 5967
5867/** 5968/**
5868 * @} 5969 * @}
@@ -6502,7 +6603,7 @@ EAPI void evas_object_image_border_center_fill_set (Evas_Obj
6502 * 6603 *
6503 * See @ref evas_object_image_fill_set() for more details. 6604 * See @ref evas_object_image_fill_set() for more details.
6504 */ 6605 */
6505EAPI Evas_Border_Fill_Mode evas_object_image_border_center_fill_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6606EAPI Evas_Border_Fill_Mode evas_object_image_border_center_fill_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6506 6607
6507/** 6608/**
6508 * Set whether the image object's fill property should track the 6609 * Set whether the image object's fill property should track the
@@ -6532,7 +6633,7 @@ EAPI void evas_object_image_filled_set (Evas_Obj
6532 * 6633 *
6533 * @see evas_object_image_filled_set() for more information 6634 * @see evas_object_image_filled_set() for more information
6534 */ 6635 */
6535EAPI Eina_Bool evas_object_image_filled_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6636EAPI Eina_Bool evas_object_image_filled_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6536 6637
6537/** 6638/**
6538 * Sets the scaling factor (multiplier) for the borders of an image 6639 * Sets the scaling factor (multiplier) for the borders of an image
@@ -6633,7 +6734,7 @@ EAPI void evas_object_image_fill_spread_set (Evas_Obj
6633 * @param obj The given evas image object. 6734 * @param obj The given evas image object.
6634 * @return The current spread mode of the image object. 6735 * @return The current spread mode of the image object.
6635 */ 6736 */
6636EAPI Evas_Fill_Spread evas_object_image_fill_spread_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6737EAPI Evas_Fill_Spread evas_object_image_fill_spread_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6637 6738
6638/** 6739/**
6639 * Sets the size of the given image object. 6740 * Sets the size of the given image object.
@@ -6670,7 +6771,7 @@ EAPI void evas_object_image_size_get (const Ev
6670 * The row stride is the number of bytes between the start of a row 6771 * The row stride is the number of bytes between the start of a row
6671 * and the start of the next row for image data. 6772 * and the start of the next row for image data.
6672 */ 6773 */
6673EAPI int evas_object_image_stride_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6774EAPI int evas_object_image_stride_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6674 6775
6675/** 6776/**
6676 * Retrieves a number representing any error that occurred during the 6777 * Retrieves a number representing any error that occurred during the
@@ -6681,7 +6782,7 @@ EAPI int evas_object_image_stride_get (const Ev
6681 * one of the #Evas_Load_Error values. #EVAS_LOAD_ERROR_NONE 6782 * one of the #Evas_Load_Error values. #EVAS_LOAD_ERROR_NONE
6682 * is returned if there was no error. 6783 * is returned if there was no error.
6683 */ 6784 */
6684EAPI Evas_Load_Error evas_object_image_load_error_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6785EAPI Evas_Load_Error evas_object_image_load_error_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6685 6786
6686/** 6787/**
6687 * Sets the raw image data of the given image object. 6788 * Sets the raw image data of the given image object.
@@ -6730,7 +6831,7 @@ EAPI void evas_object_image_data_set (Evas_Obj
6730 * 6831 *
6731 * @see evas_object_image_data_set() 6832 * @see evas_object_image_data_set()
6732 */ 6833 */
6733EAPI void *evas_object_image_data_get (const Evas_Object *obj, Eina_Bool for_writing) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6834EAPI void *evas_object_image_data_get (const Evas_Object *obj, Eina_Bool for_writing) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6734 6835
6735/** 6836/**
6736 * Converts the raw image data of the given image object to the 6837 * Converts the raw image data of the given image object to the
@@ -6748,7 +6849,7 @@ EAPI void *evas_object_image_data_get (const Ev
6748 * @param to_cspace The colorspace to which the image raw data will be converted. 6849 * @param to_cspace The colorspace to which the image raw data will be converted.
6749 * @return data A newly allocated data in the format specified by to_cspace. 6850 * @return data A newly allocated data in the format specified by to_cspace.
6750 */ 6851 */
6751EAPI void *evas_object_image_data_convert (Evas_Object *obj, Evas_Colorspace to_cspace) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6852EAPI void *evas_object_image_data_convert (Evas_Object *obj, Evas_Colorspace to_cspace) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6752 6853
6753/** 6854/**
6754 * Replaces the raw image data of the given image object. 6855 * Replaces the raw image data of the given image object.
@@ -6819,7 +6920,7 @@ EAPI void evas_object_image_alpha_set (Evas_Obj
6819 * 6920 *
6820 * See @ref evas_object_image_alpha_set() for more details. 6921 * See @ref evas_object_image_alpha_set() for more details.
6821 */ 6922 */
6822EAPI Eina_Bool evas_object_image_alpha_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6923EAPI Eina_Bool evas_object_image_alpha_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6823 6924
6824/** 6925/**
6825 * Sets whether to use high-quality image scaling algorithm on the 6926 * Sets whether to use high-quality image scaling algorithm on the
@@ -6849,7 +6950,7 @@ EAPI void evas_object_image_smooth_scale_set (Evas_Obj
6849 * 6950 *
6850 * See @ref evas_object_image_smooth_scale_set() for more details. 6951 * See @ref evas_object_image_smooth_scale_set() for more details.
6851 */ 6952 */
6852EAPI Eina_Bool evas_object_image_smooth_scale_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6953EAPI Eina_Bool evas_object_image_smooth_scale_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6853 6954
6854/** 6955/**
6855 * Preload an image object's image data in the background 6956 * Preload an image object's image data in the background
@@ -6947,7 +7048,7 @@ EAPI void evas_object_image_pixels_dirty_set (Evas_Obj
6947 * @param obj The given image object. 7048 * @param obj The given image object.
6948 * @return Whether the image is dirty. 7049 * @return Whether the image is dirty.
6949 */ 7050 */
6950EAPI Eina_Bool evas_object_image_pixels_dirty_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7051EAPI Eina_Bool evas_object_image_pixels_dirty_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6951 7052
6952/** 7053/**
6953 * Set the DPI resolution of an image object's source image. 7054 * Set the DPI resolution of an image object's source image.
@@ -6972,7 +7073,7 @@ EAPI void evas_object_image_load_dpi_set (Evas_Obj
6972 * 7073 *
6973 * @see evas_object_image_load_dpi_set() for more details 7074 * @see evas_object_image_load_dpi_set() for more details
6974 */ 7075 */
6975EAPI double evas_object_image_load_dpi_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7076EAPI double evas_object_image_load_dpi_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6976 7077
6977/** 7078/**
6978 * Set the size of a given image object's source image, when loading 7079 * Set the size of a given image object's source image, when loading
@@ -7026,7 +7127,7 @@ EAPI void evas_object_image_load_scale_down_set (Evas_Obj
7026 * 7127 *
7027 * @see evas_object_image_load_scale_down_set() for more details 7128 * @see evas_object_image_load_scale_down_set() for more details
7028 */ 7129 */
7029EAPI int evas_object_image_load_scale_down_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7130EAPI int evas_object_image_load_scale_down_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7030 7131
7031/** 7132/**
7032 * Inform a given image object to load a selective region of its 7133 * Inform a given image object to load a selective region of its
@@ -7103,7 +7204,18 @@ EAPI void evas_object_image_colorspace_set (Evas_Obj
7103 * This function returns the colorspace of given canvas image. 7204 * This function returns the colorspace of given canvas image.
7104 * 7205 *
7105 */ 7206 */
7106EAPI Evas_Colorspace evas_object_image_colorspace_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7207EAPI Evas_Colorspace evas_object_image_colorspace_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7208
7209/**
7210 * Get the support state of a given image
7211 *
7212 * @param obj The given image object pointer
7213 * @return The region support state
7214 * @since 1.2.0
7215 *
7216 * This function returns the state of the region support of given image
7217 */
7218EAPI Eina_Bool evas_object_image_region_support_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7107 7219
7108/** 7220/**
7109 * Set the native surface of a given image of the canvas 7221 * Set the native surface of a given image of the canvas
@@ -7125,7 +7237,7 @@ EAPI void evas_object_image_native_surface_set (Evas_Obj
7125 * This function returns the native surface of a given canvas image. 7237 * This function returns the native surface of a given canvas image.
7126 * 7238 *
7127 */ 7239 */
7128EAPI Evas_Native_Surface *evas_object_image_native_surface_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7240EAPI Evas_Native_Surface *evas_object_image_native_surface_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7129 7241
7130/** 7242/**
7131 * Set the video surface linked to a given image of the canvas 7243 * Set the video surface linked to a given image of the canvas
@@ -7149,7 +7261,7 @@ EAPI void evas_object_image_video_surface_set (Evas_Obj
7149 * This function returns the video surface linked to a given canvas image. 7261 * This function returns the video surface linked to a given canvas image.
7150 * 7262 *
7151 */ 7263 */
7152EAPI const Evas_Video_Surface *evas_object_image_video_surface_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7264EAPI const Evas_Video_Surface *evas_object_image_video_surface_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7153 7265
7154/** 7266/**
7155 * Set the scale hint of a given image of the canvas. 7267 * Set the scale hint of a given image of the canvas.
@@ -7178,7 +7290,7 @@ EAPI void evas_object_image_scale_hint_set (Evas_Obj
7178 * 7290 *
7179 * @see evas_object_image_scale_hint_set() for more details. 7291 * @see evas_object_image_scale_hint_set() for more details.
7180 */ 7292 */
7181EAPI Evas_Image_Scale_Hint evas_object_image_scale_hint_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7293EAPI Evas_Image_Scale_Hint evas_object_image_scale_hint_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7182 7294
7183/** 7295/**
7184 * Set the content hint setting of a given image object of the canvas. 7296 * Set the content hint setting of a given image object of the canvas.
@@ -7210,7 +7322,7 @@ EAPI void evas_object_image_content_hint_set (Evas_Obj
7210 * 7322 *
7211 * @see evas_object_image_content_hint_set() 7323 * @see evas_object_image_content_hint_set()
7212 */ 7324 */
7213EAPI Evas_Image_Content_Hint evas_object_image_content_hint_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7325EAPI Evas_Image_Content_Hint evas_object_image_content_hint_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7214 7326
7215 7327
7216/** 7328/**
@@ -7563,7 +7675,7 @@ EAPI void evas_object_text_font_source_set (Evas_Object *obj, cons
7563 * 7675 *
7564 * @see evas_object_text_font_get() for more details 7676 * @see evas_object_text_font_get() for more details
7565 */ 7677 */
7566EAPI const char *evas_object_text_font_source_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7678EAPI const char *evas_object_text_font_source_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7567 7679
7568/** 7680/**
7569 * Set the font family and size on a given text object. 7681 * Set the font family and size on a given text object.
@@ -7620,7 +7732,7 @@ EAPI void evas_object_text_text_set (Evas_Object *obj, cons
7620 * 7732 *
7621 * @see evas_object_text_text_set() 7733 * @see evas_object_text_text_set()
7622 */ 7734 */
7623EAPI const char *evas_object_text_text_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7735EAPI const char *evas_object_text_text_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7624 7736
7625/** 7737/**
7626 * @brief Sets the BiDi delimiters used in the textblock. 7738 * @brief Sets the BiDi delimiters used in the textblock.
@@ -7648,13 +7760,13 @@ EAPI void evas_object_text_bidi_delimiters_set(Evas_Object *obj, co
7648 */ 7760 */
7649EAPI const char *evas_object_text_bidi_delimiters_get(const Evas_Object *obj); 7761EAPI const char *evas_object_text_bidi_delimiters_get(const Evas_Object *obj);
7650 7762
7651 EAPI Evas_Coord evas_object_text_ascent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7763 EAPI Evas_Coord evas_object_text_ascent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7652 EAPI Evas_Coord evas_object_text_descent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7764 EAPI Evas_Coord evas_object_text_descent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7653 EAPI Evas_Coord evas_object_text_max_ascent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7765 EAPI Evas_Coord evas_object_text_max_ascent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7654 EAPI Evas_Coord evas_object_text_max_descent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7766 EAPI Evas_Coord evas_object_text_max_descent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7655 EAPI Evas_Coord evas_object_text_horiz_advance_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7767 EAPI Evas_Coord evas_object_text_horiz_advance_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7656 EAPI Evas_Coord evas_object_text_vert_advance_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7768 EAPI Evas_Coord evas_object_text_vert_advance_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7657 EAPI Evas_Coord evas_object_text_inset_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7769 EAPI Evas_Coord evas_object_text_inset_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7658 7770
7659/** 7771/**
7660 * Retrieve position and dimension information of a character within a text @c Evas_Object. 7772 * Retrieve position and dimension information of a character within a text @c Evas_Object.
@@ -7692,7 +7804,7 @@ EAPI int evas_object_text_last_up_to_pos (const Evas_Object *obj
7692 * 7804 *
7693 * @see evas_object_text_style_set() for more details. 7805 * @see evas_object_text_style_set() for more details.
7694 */ 7806 */
7695EAPI Evas_Text_Style_Type evas_object_text_style_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7807EAPI Evas_Text_Style_Type evas_object_text_style_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7696 7808
7697/** 7809/**
7698 * Sets the style to apply on the given text object. 7810 * Sets the style to apply on the given text object.
@@ -7742,7 +7854,7 @@ EAPI void evas_object_text_style_set (Evas_Object *obj, Evas
7742 * - #EVAS_TEXT_STYLE_SOFT_SHADOW 7854 * - #EVAS_TEXT_STYLE_SOFT_SHADOW
7743 * - #EVAS_TEXT_STYLE_FAR_SOFT_SHADOW 7855 * - #EVAS_TEXT_STYLE_FAR_SOFT_SHADOW
7744 * 7856 *
7745 * One can also change de direction the shadow grows to, with 7857 * One can also change the direction where the shadow grows to, with
7746 * evas_object_text_style_set(). 7858 * evas_object_text_style_set().
7747 * 7859 *
7748 * @see evas_object_text_shadow_color_get() 7860 * @see evas_object_text_shadow_color_get()
@@ -8081,7 +8193,7 @@ EAPI Evas_Object *evas_object_textblock_add(Evas *e) EINA_WARN_U
8081 * @param escape the string to be escaped 8193 * @param escape the string to be escaped
8082 * @return the unescaped version of escape 8194 * @return the unescaped version of escape
8083 */ 8195 */
8084EAPI const char *evas_textblock_escape_string_get(const char *escape) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8196EAPI const char *evas_textblock_escape_string_get(const char *escape) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8085 8197
8086/** 8198/**
8087 * Returns the escaped version of the string. 8199 * Returns the escaped version of the string.
@@ -8089,7 +8201,7 @@ EAPI const char *evas_textblock_escape_string_get(const char *e
8089 * @param len_ret the len of the part of the string that was used. 8201 * @param len_ret the len of the part of the string that was used.
8090 * @return the escaped string. 8202 * @return the escaped string.
8091 */ 8203 */
8092EAPI const char *evas_textblock_string_escape_get(const char *string, int *len_ret) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8204EAPI const char *evas_textblock_string_escape_get(const char *string, int *len_ret) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8093 8205
8094/** 8206/**
8095 * Return the unescaped version of the string between start and end. 8207 * Return the unescaped version of the string between start and end.
@@ -8098,8 +8210,35 @@ EAPI const char *evas_textblock_string_escape_get(const char *s
8098 * @param escape_end the end of the string. 8210 * @param escape_end the end of the string.
8099 * @return the unescaped version of the range 8211 * @return the unescaped version of the range
8100 */ 8212 */
8101EAPI const char *evas_textblock_escape_string_range_get(const char *escape_start, const char *escape_end) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 8213EAPI const char *evas_textblock_escape_string_range_get(const char *escape_start, const char *escape_end) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
8102 8214
8215/**
8216 * Return the plain version of the markup.
8217 *
8218 * Works as if you set the markup to a textblock and then retrieve the plain
8219 * version of the text. i.e: <br> and <\n> will be replaced with \n, &...; with
8220 * the actual char and etc.
8221 *
8222 * @param obj the textblock object to work with. (if NULL, tries the default)
8223 * @param text the markup text (if NULL, return NULL)
8224 * @return an allocated plain text version of the markup
8225 * @since 1.2.0
8226 */
8227EAPI char *evas_textblock_text_markup_to_utf8(const Evas_Object *obj, const char *text) EINA_WARN_UNUSED_RESULT EINA_MALLOC;
8228
8229/**
8230 * Return the markup version of the plain text.
8231 *
8232 * Replaces \n -> <br/> \t -> <tab/> and etc. Generally needed before you pass
8233 * plain text to be set in a textblock.
8234 *
8235 * @param obj the textblock object to work with (if NULL, it just does the
8236 * default behaviour, i.e with no extra object information).
8237 * @param text the markup text (if NULL, return NULL)
8238 * @return an allocated plain text version of the markup
8239 * @since 1.2.0
8240 */
8241EAPI char *evas_textblock_text_utf8_to_markup(const Evas_Object *obj, const char *text) EINA_WARN_UNUSED_RESULT EINA_MALLOC;
8103 8242
8104/** 8243/**
8105 * Creates a new textblock style. 8244 * Creates a new textblock style.
@@ -8128,7 +8267,7 @@ EAPI void evas_textblock_style_set(Evas_Textblock_Style
8128 * @param ts the style to get it's text. 8267 * @param ts the style to get it's text.
8129 * @return the text of the style or null on error. 8268 * @return the text of the style or null on error.
8130 */ 8269 */
8131EAPI const char *evas_textblock_style_get(const Evas_Textblock_Style *ts) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8270EAPI const char *evas_textblock_style_get(const Evas_Textblock_Style *ts) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8132 8271
8133 8272
8134/** 8273/**
@@ -8144,7 +8283,7 @@ EAPI void evas_object_textblock_style_set(Evas_Object *o
8144 * @param obj the object to get the style from. 8283 * @param obj the object to get the style from.
8145 * @return the style of the object. 8284 * @return the style of the object.
8146 */ 8285 */
8147EAPI const Evas_Textblock_Style *evas_object_textblock_style_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8286EAPI const Evas_Textblock_Style *evas_object_textblock_style_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8148 8287
8149/** 8288/**
8150 * @brief Set the "replacement character" to use for the given textblock object. 8289 * @brief Set the "replacement character" to use for the given textblock object.
@@ -8161,7 +8300,7 @@ EAPI void evas_object_textblock_replace_char_set(Evas_Ob
8161 * @param obj The given textblock object 8300 * @param obj The given textblock object
8162 * @return replacement character or @c NULL 8301 * @return replacement character or @c NULL
8163 */ 8302 */
8164EAPI const char *evas_object_textblock_replace_char_get(Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8303EAPI const char *evas_object_textblock_replace_char_get(Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8165 8304
8166/** 8305/**
8167 * @brief Sets the vertical alignment of text within the textblock object 8306 * @brief Sets the vertical alignment of text within the textblock object
@@ -8230,7 +8369,7 @@ EAPI void evas_object_textblock_legacy_newline_set(Evas_
8230 * @return EINA_TRUE if in legacy mode, EINA_FALSE otherwise. 8369 * @return EINA_TRUE if in legacy mode, EINA_FALSE otherwise.
8231 * @since 1.1.0 8370 * @since 1.1.0
8232 */ 8371 */
8233EAPI Eina_Bool evas_object_textblock_legacy_newline_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8372EAPI Eina_Bool evas_object_textblock_legacy_newline_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8234 8373
8235 8374
8236/** 8375/**
@@ -8270,7 +8409,7 @@ EAPI const char *evas_object_textblock_text_markup_get(const Ev
8270 * @param obj the object. 8409 * @param obj the object.
8271 * @return the obj's main cursor. 8410 * @return the obj's main cursor.
8272 */ 8411 */
8273EAPI Evas_Textblock_Cursor *evas_object_textblock_cursor_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8412EAPI Evas_Textblock_Cursor *evas_object_textblock_cursor_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8274 8413
8275/** 8414/**
8276 * Create a new cursor, associate it to the obj and init it to point 8415 * Create a new cursor, associate it to the obj and init it to point
@@ -8421,7 +8560,7 @@ EAPI void evas_textblock_cursor_at_format_set(Evas_Textb
8421 * @return #EINA_TRUE if the cursor points to a visible format, #EINA_FALSE otherwise. 8560 * @return #EINA_TRUE if the cursor points to a visible format, #EINA_FALSE otherwise.
8422 * @see evas_textblock_cursor_format_get() 8561 * @see evas_textblock_cursor_format_get()
8423 */ 8562 */
8424EAPI Eina_Bool evas_textblock_cursor_format_is_visible_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8563EAPI Eina_Bool evas_textblock_cursor_format_is_visible_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8425 8564
8426/** 8565/**
8427 * Advances to the next format node 8566 * Advances to the next format node
@@ -8464,6 +8603,24 @@ EAPI Eina_Bool evas_textblock_cursor_char_next(Evas_Textblock
8464EAPI Eina_Bool evas_textblock_cursor_char_prev(Evas_Textblock_Cursor *cur) EINA_ARG_NONNULL(1); 8603EAPI Eina_Bool evas_textblock_cursor_char_prev(Evas_Textblock_Cursor *cur) EINA_ARG_NONNULL(1);
8465 8604
8466/** 8605/**
8606 * Moves the cursor to the start of the word under the cursor.
8607 *
8608 * @param cur the cursor to move.
8609 * @return #EINA_TRUE on success #EINA_FALSE otherwise.
8610 * @since 1.2.0
8611 */
8612EAPI Eina_Bool evas_textblock_cursor_word_start(Evas_Textblock_Cursor *cur) EINA_ARG_NONNULL(1);
8613
8614/**
8615 * Moves the cursor to the end of the word under the cursor.
8616 *
8617 * @param cur the cursor to move.
8618 * @return #EINA_TRUE on success #EINA_FALSE otherwise.
8619 * @since 1.2.0
8620 */
8621EAPI Eina_Bool evas_textblock_cursor_word_end(Evas_Textblock_Cursor *cur) EINA_ARG_NONNULL(1);
8622
8623/**
8467 * Go to the first char in the node the cursor is pointing on. 8624 * Go to the first char in the node the cursor is pointing on.
8468 * 8625 *
8469 * @param cur the cursor to update. 8626 * @param cur the cursor to update.
@@ -8501,7 +8658,7 @@ EAPI void evas_textblock_cursor_line_char_last(Evas_Text
8501 * @param cur the cursor to take the position from. 8658 * @param cur the cursor to take the position from.
8502 * @return the position or -1 on error 8659 * @return the position or -1 on error
8503 */ 8660 */
8504EAPI int evas_textblock_cursor_pos_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8661EAPI int evas_textblock_cursor_pos_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8505 8662
8506/** 8663/**
8507 * Set the cursor pos. 8664 * Set the cursor pos.
@@ -8527,7 +8684,7 @@ EAPI Eina_Bool evas_textblock_cursor_line_set(Evas_Textblock_
8527 * @param cur2 the second cursor. 8684 * @param cur2 the second cursor.
8528 * @return -1 if cur1 < cur2, 0 if cur1 == cur2 and 1 otherwise. 8685 * @return -1 if cur1 < cur2, 0 if cur1 == cur2 and 1 otherwise.
8529 */ 8686 */
8530EAPI int evas_textblock_cursor_compare(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 8687EAPI int evas_textblock_cursor_compare(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
8531 8688
8532/** 8689/**
8533 * Make cur_dest point to the same place as cur. Does not work if they don't 8690 * Make cur_dest point to the same place as cur. Does not work if they don't
@@ -8630,7 +8787,7 @@ EAPI void evas_textblock_cursor_range_delete(Evas_Textbl
8630 * @param cur the cursor pointing to the paragraph. 8787 * @param cur the cursor pointing to the paragraph.
8631 * @return the text on success, NULL otherwise. 8788 * @return the text on success, NULL otherwise.
8632 */ 8789 */
8633EAPI const char *evas_textblock_cursor_paragraph_text_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8790EAPI const char *evas_textblock_cursor_paragraph_text_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8634 8791
8635/** 8792/**
8636 * Return the length of the paragraph, cheaper the eina_unicode_strlen() 8793 * Return the length of the paragraph, cheaper the eina_unicode_strlen()
@@ -8638,7 +8795,7 @@ EAPI const char *evas_textblock_cursor_paragraph_text_get(const
8638 * @param cur the position of the paragraph. 8795 * @param cur the position of the paragraph.
8639 * @return the length of the paragraph on success, -1 otehrwise. 8796 * @return the length of the paragraph on success, -1 otehrwise.
8640 */ 8797 */
8641EAPI int evas_textblock_cursor_paragraph_text_length_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8798EAPI int evas_textblock_cursor_paragraph_text_length_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8642 8799
8643/** 8800/**
8644 * Return the currently visible range. 8801 * Return the currently visible range.
@@ -8648,7 +8805,7 @@ EAPI int evas_textblock_cursor_paragraph_text_length_ge
8648 * @return EINA_TRUE on success. EINA_FALSE otherwise. 8805 * @return EINA_TRUE on success. EINA_FALSE otherwise.
8649 * @since 1.1.0 8806 * @since 1.1.0
8650 */ 8807 */
8651Eina_Bool evas_textblock_cursor_visible_range_get(Evas_Textblock_Cursor *start, Evas_Textblock_Cursor *end) EINA_ARG_NONNULL(1, 2); 8808EAPI Eina_Bool evas_textblock_cursor_visible_range_get(Evas_Textblock_Cursor *start, Evas_Textblock_Cursor *end) EINA_ARG_NONNULL(1, 2);
8652 8809
8653/** 8810/**
8654 * Return the format nodes in the range between cur1 and cur2. 8811 * Return the format nodes in the range between cur1 and cur2.
@@ -8658,7 +8815,7 @@ Eina_Bool evas_textblock_cursor_visible_range_get(Evas_T
8658 * @return the foramt nodes in the range. You have to free it. 8815 * @return the foramt nodes in the range. You have to free it.
8659 * @since 1.1.0 8816 * @since 1.1.0
8660 */ 8817 */
8661EAPI Eina_List * evas_textblock_cursor_range_formats_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 8818EAPI Eina_List * evas_textblock_cursor_range_formats_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
8662 8819
8663/** 8820/**
8664 * Return the text in the range between cur1 and cur2 8821 * Return the text in the range between cur1 and cur2
@@ -8669,13 +8826,15 @@ EAPI Eina_List * evas_textblock_cursor_range_formats_get(const E
8669 * @return the text in the range 8826 * @return the text in the range
8670 * @see elm_entry_markup_to_utf8() 8827 * @see elm_entry_markup_to_utf8()
8671 */ 8828 */
8672EAPI char *evas_textblock_cursor_range_text_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2, Evas_Textblock_Text_Type format) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 8829EAPI char *evas_textblock_cursor_range_text_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2, Evas_Textblock_Text_Type format) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
8673 8830
8674/** 8831/**
8675 * Return the content of the cursor. 8832 * Return the content of the cursor.
8676 * 8833 *
8834 * Free the returned string pointer when done (if it is not NULL).
8835 *
8677 * @param cur the cursor 8836 * @param cur the cursor
8678 * @return the text in the range 8837 * @return the text in the range, terminated by a nul byte (may be utf8).
8679 */ 8838 */
8680EAPI char *evas_textblock_cursor_content_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; 8839EAPI char *evas_textblock_cursor_content_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
8681 8840
@@ -8766,7 +8925,7 @@ EAPI int evas_textblock_cursor_line_coord_set(Evas_Text
8766 * @param cur2 other side of the range. 8925 * @param cur2 other side of the range.
8767 * @return a list of Rectangles representing the geometry of the range. 8926 * @return a list of Rectangles representing the geometry of the range.
8768 */ 8927 */
8769EAPI Eina_List *evas_textblock_cursor_range_geometry_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 8928EAPI Eina_List *evas_textblock_cursor_range_geometry_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
8770 EAPI Eina_Bool evas_textblock_cursor_format_item_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) EINA_ARG_NONNULL(1); 8929 EAPI Eina_Bool evas_textblock_cursor_format_item_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) EINA_ARG_NONNULL(1);
8771 8930
8772 8931
@@ -8776,7 +8935,7 @@ EAPI Eina_List *evas_textblock_cursor_range_geometry_get(const
8776 * @param cur the cursor to check. 8935 * @param cur the cursor to check.
8777 * @return #EINA_TRUE if true, #EINA_FALSE otherwise. 8936 * @return #EINA_TRUE if true, #EINA_FALSE otherwise.
8778 */ 8937 */
8779EAPI Eina_Bool evas_textblock_cursor_eol_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8938EAPI Eina_Bool evas_textblock_cursor_eol_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8780 8939
8781 8940
8782/** 8941/**
@@ -8931,6 +9090,12 @@ EAPI void evas_object_polygon_points_clear (Evas_Object *obj) EINA
8931 * @} 9090 * @}
8932 */ 9091 */
8933 9092
9093/* @since 1.2.0 */
9094EAPI void evas_object_is_frame_object_set(Evas_Object *obj, Eina_Bool is_frame);
9095
9096/* @since 1.2.0 */
9097EAPI Eina_Bool evas_object_is_frame_object_get(Evas_Object *obj);
9098
8934/** 9099/**
8935 * @defgroup Evas_Smart_Group Smart Functions 9100 * @defgroup Evas_Smart_Group Smart Functions
8936 * 9101 *
@@ -9273,7 +9438,7 @@ EAPI Evas_Smart *evas_smart_class_new (const
9273 * @param s a valid #Evas_Smart pointer 9438 * @param s a valid #Evas_Smart pointer
9274 * @return the #Evas_Smart_Class in it 9439 * @return the #Evas_Smart_Class in it
9275 */ 9440 */
9276EAPI const Evas_Smart_Class *evas_smart_class_get (const Evas_Smart *s) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 9441EAPI const Evas_Smart_Class *evas_smart_class_get (const Evas_Smart *s) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9277 9442
9278 9443
9279/** 9444/**
@@ -9284,7 +9449,7 @@ EAPI const Evas_Smart_Class *evas_smart_class_get (const
9284 * This data pointer is set as the data field in the #Evas_Smart_Class 9449 * This data pointer is set as the data field in the #Evas_Smart_Class
9285 * passed in to evas_smart_class_new(). 9450 * passed in to evas_smart_class_new().
9286 */ 9451 */
9287EAPI void *evas_smart_data_get (const Evas_Smart *s) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 9452EAPI void *evas_smart_data_get (const Evas_Smart *s) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9288 9453
9289/** 9454/**
9290 * Get the smart callbacks known by this #Evas_Smart handle's smart 9455 * Get the smart callbacks known by this #Evas_Smart handle's smart
@@ -9338,7 +9503,7 @@ EAPI const Evas_Smart_Cb_Description **evas_smart_callbacks_descriptions_get(con
9338 * 9503 *
9339 * @see evas_smart_callbacks_descriptions_get() 9504 * @see evas_smart_callbacks_descriptions_get()
9340 */ 9505 */
9341EAPI const Evas_Smart_Cb_Description *evas_smart_callback_description_find(const Evas_Smart *s, const char *name) EINA_ARG_NONNULL(1, 2) EINA_PURE; 9506EAPI const Evas_Smart_Cb_Description *evas_smart_callback_description_find(const Evas_Smart *s, const char *name) EINA_ARG_NONNULL(1, 2);
9342 9507
9343 9508
9344/** 9509/**
@@ -9507,7 +9672,7 @@ EAPI void evas_object_smart_member_del (Evas_Object *obj) EINA
9507 * @see evas_object_smart_member_add() 9672 * @see evas_object_smart_member_add()
9508 * @see evas_object_smart_member_del() 9673 * @see evas_object_smart_member_del()
9509*/ 9674*/
9510EAPI Eina_List *evas_object_smart_members_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 9675EAPI Eina_List *evas_object_smart_members_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9511 9676
9512/** 9677/**
9513 * Gets the parent smart object of a given Evas object, if it has one. 9678 * Gets the parent smart object of a given Evas object, if it has one.
@@ -9519,7 +9684,7 @@ EAPI Eina_List *evas_object_smart_members_get (const Evas_Object *obj
9519 * 9684 *
9520 * @ingroup Evas_Smart_Object_Group 9685 * @ingroup Evas_Smart_Object_Group
9521 */ 9686 */
9522EAPI Evas_Object *evas_object_smart_parent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 9687EAPI Evas_Object *evas_object_smart_parent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9523 9688
9524/** 9689/**
9525 * Checks whether a given smart object or any of its smart object 9690 * Checks whether a given smart object or any of its smart object
@@ -9546,7 +9711,7 @@ EAPI Evas_Object *evas_object_smart_parent_get (const Evas_Object *obj
9546 * 9711 *
9547 * @ingroup Evas_Smart_Object_Group 9712 * @ingroup Evas_Smart_Object_Group
9548 */ 9713 */
9549EAPI Eina_Bool evas_object_smart_type_check (const Evas_Object *obj, const char *type) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 9714EAPI Eina_Bool evas_object_smart_type_check (const Evas_Object *obj, const char *type) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
9550 9715
9551/** 9716/**
9552 * Checks whether a given smart object or any of its smart object 9717 * Checks whether a given smart object or any of its smart object
@@ -9561,7 +9726,7 @@ EAPI Eina_Bool evas_object_smart_type_check (const Evas_Object *obj
9561 * 9726 *
9562 * @ingroup Evas_Smart_Object_Group 9727 * @ingroup Evas_Smart_Object_Group
9563 */ 9728 */
9564EAPI Eina_Bool evas_object_smart_type_check_ptr (const Evas_Object *obj, const char *type) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 9729EAPI Eina_Bool evas_object_smart_type_check_ptr (const Evas_Object *obj, const char *type) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
9565 9730
9566/** 9731/**
9567 * Get the #Evas_Smart from which @p obj smart object was created. 9732 * Get the #Evas_Smart from which @p obj smart object was created.
@@ -9571,7 +9736,7 @@ EAPI Eina_Bool evas_object_smart_type_check_ptr (const Evas_Object *obj
9571 * 9736 *
9572 * @ingroup Evas_Smart_Object_Group 9737 * @ingroup Evas_Smart_Object_Group
9573 */ 9738 */
9574EAPI Evas_Smart *evas_object_smart_smart_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 9739EAPI Evas_Smart *evas_object_smart_smart_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9575 9740
9576/** 9741/**
9577 * Retrieve user data stored on a given smart object. 9742 * Retrieve user data stored on a given smart object.
@@ -9585,7 +9750,7 @@ EAPI Evas_Smart *evas_object_smart_smart_get (const Evas_Object *obj
9585 * 9750 *
9586 * @ingroup Evas_Smart_Object_Group 9751 * @ingroup Evas_Smart_Object_Group
9587 */ 9752 */
9588EAPI void *evas_object_smart_data_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 9753EAPI void *evas_object_smart_data_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9589 9754
9590/** 9755/**
9591 * Store a pointer to user data for a given smart object. 9756 * Store a pointer to user data for a given smart object.
@@ -9683,6 +9848,34 @@ EAPI void evas_object_smart_callback_priority_add(Evas_Object *obj,
9683EAPI void *evas_object_smart_callback_del (Evas_Object *obj, const char *event, Evas_Smart_Cb func) EINA_ARG_NONNULL(1, 2, 3); 9848EAPI void *evas_object_smart_callback_del (Evas_Object *obj, const char *event, Evas_Smart_Cb func) EINA_ARG_NONNULL(1, 2, 3);
9684 9849
9685/** 9850/**
9851 * Delete (unregister) a callback function from the smart event
9852 * specified by @p event on the smart object @p obj.
9853 *
9854 * @param obj a smart object
9855 * @param event the event's name string
9856 * @param func the callback function
9857 * @param data the data pointer that was passed to the callback
9858 * @return the data pointer
9859 *
9860 * This function removes <b>the first</b> added smart callback on the
9861 * object @p obj matching the event name @p event, the registered
9862 * function pointer @p func and the callback data pointer @p data. If
9863 * the removal is successful it will also return the data pointer that
9864 * was passed to evas_object_smart_callback_add() (that will be the same
9865 * as the parameter) when the callback(s) was(were) added to the canvas.
9866 * If not successful @c NULL will be returned. A common use would be to
9867 * remove an exact match of a callback
9868 *
9869 * @see evas_object_smart_callback_add() for more details.
9870 * @since 1.2.0
9871 * @ingroup Evas_Smart_Object_Group
9872 *
9873 * @note To delete all smart event callbacks which match @p type and @p func,
9874 * use evas_object_smart_callback_del().
9875 */
9876EAPI void *evas_object_smart_callback_del_full(Evas_Object *obj, const char *event, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1, 2, 3);
9877
9878/**
9686 * Call a given smart callback on the smart object @p obj. 9879 * Call a given smart callback on the smart object @p obj.
9687 * 9880 *
9688 * @param obj the smart object 9881 * @param obj the smart object
@@ -9856,7 +10049,7 @@ EAPI void evas_object_smart_need_recalculate_set(Evas_Object *obj,
9856 * 10049 *
9857 * @ingroup Evas_Smart_Object_Group 10050 * @ingroup Evas_Smart_Object_Group
9858 */ 10051 */
9859EAPI Eina_Bool evas_object_smart_need_recalculate_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 10052EAPI Eina_Bool evas_object_smart_need_recalculate_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9860 10053
9861/** 10054/**
9862 * Call the @b calculate() smart function immediataly on a given smart 10055 * Call the @b calculate() smart function immediataly on a given smart
@@ -9977,7 +10170,7 @@ EAPI void evas_object_smart_move_children_relative(Evas_Objec
9977 * 10170 *
9978 * @see evas_object_smart_clipped_smart_add() 10171 * @see evas_object_smart_clipped_smart_add()
9979 */ 10172 */
9980EAPI Evas_Object *evas_object_smart_clipped_clipper_get (Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 10173EAPI Evas_Object *evas_object_smart_clipped_clipper_get (Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9981 10174
9982/** 10175/**
9983 * Set a given smart class' callbacks so it implements the <b>clipped smart 10176 * Set a given smart class' callbacks so it implements the <b>clipped smart
@@ -10885,7 +11078,7 @@ EAPI Eina_List *evas_object_box_children_get
10885 * _Evas_Object_Box_Api::property_name_get smart class function of the 11078 * _Evas_Object_Box_Api::property_name_get smart class function of the
10886 * box, which is originally set to @c NULL. 11079 * box, which is originally set to @c NULL.
10887 */ 11080 */
10888EAPI const char *evas_object_box_option_property_name_get (Evas_Object *o, int property) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 11081EAPI const char *evas_object_box_option_property_name_get (Evas_Object *o, int property) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
10889 11082
10890/** 11083/**
10891 * Get the numerical identifier of the property of the child elements 11084 * Get the numerical identifier of the property of the child elements
@@ -10904,7 +11097,7 @@ EAPI const char *evas_object_box_option_property_name_get
10904 * _Evas_Object_Box_Api::property_id_get smart class function of the 11097 * _Evas_Object_Box_Api::property_id_get smart class function of the
10905 * box, which is originally set to @c NULL. 11098 * box, which is originally set to @c NULL.
10906 */ 11099 */
10907EAPI int evas_object_box_option_property_id_get (Evas_Object *o, const char *name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 11100EAPI int evas_object_box_option_property_id_get (Evas_Object *o, const char *name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
10908 11101
10909/** 11102/**
10910 * Set a property value (by its given numerical identifier), on a 11103 * Set a property value (by its given numerical identifier), on a
@@ -11081,7 +11274,7 @@ EAPI void evas_object_table_homogeneous_set (Evas
11081 * 11274 *
11082 * @see evas_object_table_homogeneous_set() 11275 * @see evas_object_table_homogeneous_set()
11083 */ 11276 */
11084EAPI Evas_Object_Table_Homogeneous_Mode evas_object_table_homogeneous_get (const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 11277EAPI Evas_Object_Table_Homogeneous_Mode evas_object_table_homogeneous_get (const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
11085 11278
11086/** 11279/**
11087 * Set padding between cells. 11280 * Set padding between cells.
@@ -11455,7 +11648,7 @@ EAPI Eina_List *evas_object_grid_children_get (const
11455 * @return @c EINA_TRUE if it wants, @c EINA_FALSE otherwise. 11648 * @return @c EINA_TRUE if it wants, @c EINA_FALSE otherwise.
11456 * @ingroup Evas_Cserve 11649 * @ingroup Evas_Cserve
11457 */ 11650 */
11458EAPI Eina_Bool evas_cserve_want_get (void) EINA_WARN_UNUSED_RESULT EINA_PURE; 11651EAPI Eina_Bool evas_cserve_want_get (void) EINA_WARN_UNUSED_RESULT;
11459 11652
11460/** 11653/**
11461 * Retrieves if the system is connected to the server used to share 11654 * Retrieves if the system is connected to the server used to share
@@ -11482,7 +11675,7 @@ EAPI Eina_Bool evas_cserve_stats_get (Evas_Cserve_Stats
11482 * 11675 *
11483 * @param cache A handle to the given images cache. 11676 * @param cache A handle to the given images cache.
11484 */ 11677 */
11485EAPI void evas_cserve_image_cache_contents_clean (Evas_Cserve_Image_Cache *cache) EINA_PURE; 11678EAPI void evas_cserve_image_cache_contents_clean (Evas_Cserve_Image_Cache *cache);
11486 11679
11487/** 11680/**
11488 * Retrieves the current configuration of the Evas image caching 11681 * Retrieves the current configuration of the Evas image caching
@@ -11501,7 +11694,7 @@ EAPI void evas_cserve_image_cache_contents_clean (Evas_Cserve_Image
11501 * 11694 *
11502 * @ingroup Evas_Cserve 11695 * @ingroup Evas_Cserve
11503 */ 11696 */
11504EAPI Eina_Bool evas_cserve_config_get (Evas_Cserve_Config *config) EINA_WARN_UNUSED_RESULT EINA_PURE; 11697EAPI Eina_Bool evas_cserve_config_get (Evas_Cserve_Config *config) EINA_WARN_UNUSED_RESULT;
11505 11698
11506/** 11699/**
11507 * Changes the configurations of the Evas image caching server. 11700 * Changes the configurations of the Evas image caching server.
@@ -11515,7 +11708,7 @@ EAPI Eina_Bool evas_cserve_config_get (Evas_Cserve_Confi
11515 * 11708 *
11516 * @ingroup Evas_Cserve 11709 * @ingroup Evas_Cserve
11517 */ 11710 */
11518EAPI Eina_Bool evas_cserve_config_set (const Evas_Cserve_Config *config) EINA_WARN_UNUSED_RESULT EINA_PURE; 11711EAPI Eina_Bool evas_cserve_config_set (const Evas_Cserve_Config *config) EINA_WARN_UNUSED_RESULT;
11519 11712
11520/** 11713/**
11521 * Force the system to disconnect from the bitmap caching server. 11714 * Force the system to disconnect from the bitmap caching server.
@@ -11711,7 +11904,7 @@ EAPI int evas_string_char_prev_get (const char *str, int p
11711 * @return The length in characters (not bytes) 11904 * @return The length in characters (not bytes)
11712 * @ingroup Evas_Utils 11905 * @ingroup Evas_Utils
11713 */ 11906 */
11714EAPI int evas_string_char_len_get (const char *str) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 11907EAPI int evas_string_char_len_get (const char *str) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
11715 11908
11716/** 11909/**
11717 * @defgroup Evas_Keys Key Input Functions 11910 * @defgroup Evas_Keys Key Input Functions
@@ -11769,7 +11962,7 @@ EAPI int evas_string_char_len_get (const char *str) EINA_
11769 * @return An ::Evas_Modifier handle to query Evas' keys subsystem 11962 * @return An ::Evas_Modifier handle to query Evas' keys subsystem
11770 * with evas_key_modifier_is_set(), or @c NULL on error. 11963 * with evas_key_modifier_is_set(), or @c NULL on error.
11771 */ 11964 */
11772EAPI const Evas_Modifier *evas_key_modifier_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 11965EAPI const Evas_Modifier *evas_key_modifier_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
11773 11966
11774/** 11967/**
11775 * Returns a handle to the list of lock keys registered in the canvas 11968 * Returns a handle to the list of lock keys registered in the canvas
@@ -11787,7 +11980,7 @@ EAPI const Evas_Modifier *evas_key_modifier_get (const Evas *e) EINA_WA
11787 * @return An ::Evas_Lock handle to query Evas' keys subsystem with 11980 * @return An ::Evas_Lock handle to query Evas' keys subsystem with
11788 * evas_key_lock_is_set(), or @c NULL on error. 11981 * evas_key_lock_is_set(), or @c NULL on error.
11789 */ 11982 */
11790EAPI const Evas_Lock *evas_key_lock_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 11983EAPI const Evas_Lock *evas_key_lock_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
11791 11984
11792 11985
11793/** 11986/**
@@ -11808,7 +12001,7 @@ EAPI const Evas_Lock *evas_key_lock_get (const Evas *e) EINA_WA
11808 * @see evas_key_modifier_on 12001 * @see evas_key_modifier_on
11809 * @see evas_key_modifier_off 12002 * @see evas_key_modifier_off
11810 */ 12003 */
11811EAPI Eina_Bool evas_key_modifier_is_set (const Evas_Modifier *m, const char *keyname) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 12004EAPI Eina_Bool evas_key_modifier_is_set (const Evas_Modifier *m, const char *keyname) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
11812 12005
11813 12006
11814/** 12007/**
@@ -11828,7 +12021,7 @@ EAPI Eina_Bool evas_key_modifier_is_set (const Evas_Modifier *m
11828 * @see evas_key_lock_on 12021 * @see evas_key_lock_on
11829 * @see evas_key_lock_off 12022 * @see evas_key_lock_off
11830 */ 12023 */
11831EAPI Eina_Bool evas_key_lock_is_set (const Evas_Lock *l, const char *keyname) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 12024EAPI Eina_Bool evas_key_lock_is_set (const Evas_Lock *l, const char *keyname) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
11832 12025
11833 12026
11834/** 12027/**
@@ -12012,7 +12205,7 @@ EAPI void evas_key_lock_off (Evas *e, const char *k
12012 * @see evas_object_key_grab 12205 * @see evas_object_key_grab
12013 * @see evas_object_key_ungrab 12206 * @see evas_object_key_ungrab
12014 */ 12207 */
12015EAPI Evas_Modifier_Mask evas_key_modifier_mask_get (const Evas *e, const char *keyname) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 12208EAPI Evas_Modifier_Mask evas_key_modifier_mask_get (const Evas *e, const char *keyname) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
12016 12209
12017 12210
12018/** 12211/**
diff --git a/libraries/evas/src/lib/Evas_GL.h b/libraries/evas/src/lib/Evas_GL.h
index 04bedea..fdfbaad 100644
--- a/libraries/evas/src/lib/Evas_GL.h
+++ b/libraries/evas/src/lib/Evas_GL.h
@@ -28,7 +28,7 @@ typedef enum _Evas_GL_Depth_Bits
28 EVAS_GL_DEPTH_BIT_8 = 1, 28 EVAS_GL_DEPTH_BIT_8 = 1,
29 EVAS_GL_DEPTH_BIT_16 = 2, 29 EVAS_GL_DEPTH_BIT_16 = 2,
30 EVAS_GL_DEPTH_BIT_24 = 3, 30 EVAS_GL_DEPTH_BIT_24 = 3,
31 EVAS_GL_DEPTH_BIT_32 = 4, 31 EVAS_GL_DEPTH_BIT_32 = 4
32} Evas_GL_Depth_Bits; 32} Evas_GL_Depth_Bits;
33 33
34typedef enum _Evas_GL_Stencil_Bits 34typedef enum _Evas_GL_Stencil_Bits
@@ -38,14 +38,21 @@ typedef enum _Evas_GL_Stencil_Bits
38 EVAS_GL_STENCIL_BIT_2 = 2, 38 EVAS_GL_STENCIL_BIT_2 = 2,
39 EVAS_GL_STENCIL_BIT_4 = 3, 39 EVAS_GL_STENCIL_BIT_4 = 3,
40 EVAS_GL_STENCIL_BIT_8 = 4, 40 EVAS_GL_STENCIL_BIT_8 = 4,
41 EVAS_GL_STENCIL_BIT_16 = 5, 41 EVAS_GL_STENCIL_BIT_16 = 5
42} Evas_GL_Stencil_Bits; 42} Evas_GL_Stencil_Bits;
43 43
44typedef enum _Evas_GL_Options_Bits
45{
46 EVAS_GL_OPTIONS_NONE = 0,
47 EVAS_GL_OPTIONS_DIRECT = (1<<0)
48} Evas_GL_Options_Bits;
49
44struct _Evas_GL_Config 50struct _Evas_GL_Config
45{ 51{
46 Evas_GL_Color_Format color_format; 52 Evas_GL_Color_Format color_format;
47 Evas_GL_Depth_Bits depth_bits; 53 Evas_GL_Depth_Bits depth_bits;
48 Evas_GL_Stencil_Bits stencil_bits; 54 Evas_GL_Stencil_Bits stencil_bits;
55 Evas_GL_Options_Bits options_bits;
49}; 56};
50 57
51#define EVAS_GL_EXTENSIONS 1 58#define EVAS_GL_EXTENSIONS 1
@@ -73,6 +80,7 @@ typedef struct _GLData
73{ 80{
74 Evas_GL_Context *ctx; 81 Evas_GL_Context *ctx;
75 Evas_GL_Surface *sfc; 82 Evas_GL_Surface *sfc;
83 Evas_GL_Config *cfg;
76 Evas_GL *evasgl; 84 Evas_GL *evasgl;
77 Evas_GL_API *glapi; 85 Evas_GL_API *glapi;
78 GLuint program; 86 GLuint program;
@@ -93,13 +101,6 @@ static GLuint load_shader (GLData *gld, GLenum type, const char *shader_src)
93int 101int
94main(int argc, char **argv) 102main(int argc, char **argv)
95{ 103{
96 // config for the surface for evas_gl
97 Evas_GL_Config config =
98 {
99 EVAS_GL_RGBA_8888,
100 EVAS_GL_DEPTH_NONE,
101 EVAS_GL_STENCIL_NONE
102 };
103 // a size by default 104 // a size by default
104 int w = 256, h = 256; 105 int w = 256, h = 256;
105 // some variables we will use 106 // some variables we will use
@@ -124,8 +125,16 @@ main(int argc, char **argv)
124 // get the evas gl handle for doing gl things 125 // get the evas gl handle for doing gl things
125 gld->evasgl = evas_gl_new(canvas); 126 gld->evasgl = evas_gl_new(canvas);
126 gld->glapi = evas_gl_api_get(gld->evasgl); 127 gld->glapi = evas_gl_api_get(gld->evasgl);
128
129 // Set a surface config
130 gld->cfg = evas_gl_config_new();
131 gld->cfg->color_format = EVAS_GL_RGBA_8888;
132 //gld->cfg->depth_bits = EVAS_GL_DEPTH_NONE; // Othe config options
133 //gld->cfg->stencil_bits = EVAS_GL_STENCIL_NONE;
134 //gld->cfg->options_bits = EVAS_GL_OPTIONS_NONE;
135
127 // create a surface and context 136 // create a surface and context
128 gld->sfc = evas_gl_surface_create(gld->evasgl, &config, w, h); 137 gld->sfc = evas_gl_surface_create(gld->evasgl, gld->cfg, w, h);
129 gld->ctx = evas_gl_context_create(gld->evasgl, NULL); 138 gld->ctx = evas_gl_context_create(gld->evasgl, NULL);
130 //-// 139 //-//
131 //-//-//-// END GL INIT BLOB 140 //-//-//-// END GL INIT BLOB
@@ -207,6 +216,7 @@ on_del(void *data, Evas *e, Evas_Object *obj, void *event_info)
207 216
208 evas_gl_surface_destroy(gld->evasgl, gld->sfc); 217 evas_gl_surface_destroy(gld->evasgl, gld->sfc);
209 evas_gl_context_destroy(gld->evasgl, gld->ctx); 218 evas_gl_context_destroy(gld->evasgl, gld->ctx);
219 evas_gl_config_free(gld->cfg);
210 evas_gl_free(gld->evasgl); 220 evas_gl_free(gld->evasgl);
211 free(gld); 221 free(gld);
212} 222}
@@ -389,6 +399,22 @@ EAPI Evas_GL *evas_gl_new (Evas *e) EINA_WARN_UNU
389EAPI void evas_gl_free (Evas_GL *evas_gl) EINA_ARG_NONNULL(1); 399EAPI void evas_gl_free (Evas_GL *evas_gl) EINA_ARG_NONNULL(1);
390 400
391/** 401/**
402 * Allocates a new config object for the user to fill out.
403 *
404 * As long as the Evas creates a config object for the user, it takes care
405 * of the backward compatibility issue.
406 */
407EAPI Evas_GL_Config *evas_gl_config_new ();
408
409/**
410 * Frees a config object created from evas_gl_config_new.
411 *
412 * As long as the Evas creates a config object for the user, it takes care
413 * of the backward compatibility issue.
414 */
415EAPI void evas_gl_config_free (Evas_GL_Config *cfg) EINA_ARG_NONNULL(1);
416
417/**
392 * Creates and returns new Evas_GL_Surface object for GL Rendering. 418 * Creates and returns new Evas_GL_Surface object for GL Rendering.
393 * 419 *
394 * @param evas_gl The given Evas_GL object. 420 * @param evas_gl The given Evas_GL object.
diff --git a/libraries/evas/src/lib/Makefile.am b/libraries/evas/src/lib/Makefile.am
index 6b1011a..2a1a92d 100644
--- a/libraries/evas/src/lib/Makefile.am
+++ b/libraries/evas/src/lib/Makefile.am
@@ -100,6 +100,11 @@ SUBDIRS += ../modules/engines/software_x11/
100EVAS_STATIC_MODULE += ../modules/engines/software_x11/libevas_engine_software_x11.la 100EVAS_STATIC_MODULE += ../modules/engines/software_x11/libevas_engine_software_x11.la
101EVAS_STATIC_LIBADD += @evas_engine_software_xlib_libs@ @evas_engine_software_xcb_libs@ 101EVAS_STATIC_LIBADD += @evas_engine_software_xlib_libs@ @evas_engine_software_xcb_libs@
102endif 102endif
103if EVAS_STATIC_BUILD_WAYLAND_SHM
104SUBDIRS += ../modules/engines/wayland_shm/
105EVAS_STATIC_MODULE += ../modules/engines/wayland_shm/libevas_engine_wayland_shm.la
106EVAS_STATIC_LIBADD += @evas_engine_wayland_shm_libs@
107endif
103if EVAS_STATIC_BUILD_BMP 108if EVAS_STATIC_BUILD_BMP
104SUBDIRS += ../modules/loaders/bmp 109SUBDIRS += ../modules/loaders/bmp
105EVAS_STATIC_MODULE += ../modules/loaders/bmp/libevas_loader_bmp.la 110EVAS_STATIC_MODULE += ../modules/loaders/bmp/libevas_loader_bmp.la
@@ -200,9 +205,7 @@ AM_CFLAGS = @WIN32_CFLAGS@
200 205
201lib_LTLIBRARIES = libevas.la 206lib_LTLIBRARIES = libevas.la
202 207
203### Evas_GL disabled for 1.1 208includes_HEADERS = Evas.h Evas_GL.h
204#includes_HEADERS = Evas.h Evas_GL.h
205includes_HEADERS = Evas.h
206includesdir = $(includedir)/evas-@VMAJ@ 209includesdir = $(includedir)/evas-@VMAJ@
207 210
208libevas_la_SOURCES = main.c 211libevas_la_SOURCES = main.c
diff --git a/libraries/evas/src/lib/Makefile.in b/libraries/evas/src/lib/Makefile.in
index 87bbaac..ffe71d1 100644
--- a/libraries/evas/src/lib/Makefile.in
+++ b/libraries/evas/src/lib/Makefile.in
@@ -101,57 +101,60 @@ host_triplet = @host@
101@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am__append_48 = ../modules/engines/software_x11/ 101@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am__append_48 = ../modules/engines/software_x11/
102@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am__append_49 = ../modules/engines/software_x11/libevas_engine_software_x11.la 102@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am__append_49 = ../modules/engines/software_x11/libevas_engine_software_x11.la
103@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am__append_50 = @evas_engine_software_xlib_libs@ @evas_engine_software_xcb_libs@ 103@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am__append_50 = @evas_engine_software_xlib_libs@ @evas_engine_software_xcb_libs@
104@EVAS_STATIC_BUILD_BMP_TRUE@am__append_51 = ../modules/loaders/bmp 104@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@am__append_51 = ../modules/engines/wayland_shm/
105@EVAS_STATIC_BUILD_BMP_TRUE@am__append_52 = ../modules/loaders/bmp/libevas_loader_bmp.la 105@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@am__append_52 = ../modules/engines/wayland_shm/libevas_engine_wayland_shm.la
106@EVAS_STATIC_BUILD_BMP_TRUE@am__append_53 = @evas_image_loader_bmp_libs@ 106@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@am__append_53 = @evas_engine_wayland_shm_libs@
107@EVAS_STATIC_BUILD_EDB_TRUE@am__append_54 = ../modules/savers/edb ../modules/loaders/edb 107@EVAS_STATIC_BUILD_BMP_TRUE@am__append_54 = ../modules/loaders/bmp
108@EVAS_STATIC_BUILD_EDB_TRUE@am__append_55 = ../modules/savers/edb/libevas_saver_edb.la ../modules/loaders/edb/libevas_loader_edb.la 108@EVAS_STATIC_BUILD_BMP_TRUE@am__append_55 = ../modules/loaders/bmp/libevas_loader_bmp.la
109@EVAS_STATIC_BUILD_EDB_TRUE@am__append_56 = @evas_image_loader_edb_libs@ 109@EVAS_STATIC_BUILD_BMP_TRUE@am__append_56 = @evas_image_loader_bmp_libs@
110@EVAS_STATIC_BUILD_EET_TRUE@am__append_57 = ../modules/savers/eet ../modules/loaders/eet 110@EVAS_STATIC_BUILD_EDB_TRUE@am__append_57 = ../modules/savers/edb ../modules/loaders/edb
111@EVAS_STATIC_BUILD_EET_TRUE@am__append_58 = ../modules/savers/eet/libevas_saver_eet.la ../modules/loaders/eet/libevas_loader_eet.la 111@EVAS_STATIC_BUILD_EDB_TRUE@am__append_58 = ../modules/savers/edb/libevas_saver_edb.la ../modules/loaders/edb/libevas_loader_edb.la
112@EVAS_STATIC_BUILD_EET_TRUE@am__append_59 = @evas_image_loader_eet_libs@ 112@EVAS_STATIC_BUILD_EDB_TRUE@am__append_59 = @evas_image_loader_edb_libs@
113@EVAS_STATIC_BUILD_GENERIC_TRUE@am__append_60 = ../modules/loaders/generic 113@EVAS_STATIC_BUILD_EET_TRUE@am__append_60 = ../modules/savers/eet ../modules/loaders/eet
114@EVAS_STATIC_BUILD_GENERIC_TRUE@am__append_61 = ../modules/loaders/generic/libevas_loader_generic.la 114@EVAS_STATIC_BUILD_EET_TRUE@am__append_61 = ../modules/savers/eet/libevas_saver_eet.la ../modules/loaders/eet/libevas_loader_eet.la
115@EVAS_STATIC_BUILD_GENERIC_TRUE@am__append_62 = @evas_image_loader_generic_libs@ 115@EVAS_STATIC_BUILD_EET_TRUE@am__append_62 = @evas_image_loader_eet_libs@
116@EVAS_STATIC_BUILD_GIF_TRUE@am__append_63 = ../modules/loaders/gif 116@EVAS_STATIC_BUILD_GENERIC_TRUE@am__append_63 = ../modules/loaders/generic
117@EVAS_STATIC_BUILD_GIF_TRUE@am__append_64 = ../modules/loaders/gif/libevas_loader_gif.la 117@EVAS_STATIC_BUILD_GENERIC_TRUE@am__append_64 = ../modules/loaders/generic/libevas_loader_generic.la
118@EVAS_STATIC_BUILD_GIF_TRUE@am__append_65 = @evas_image_loader_gif_libs@ 118@EVAS_STATIC_BUILD_GENERIC_TRUE@am__append_65 = @evas_image_loader_generic_libs@
119@EVAS_STATIC_BUILD_ICO_TRUE@am__append_66 = ../modules/loaders/ico 119@EVAS_STATIC_BUILD_GIF_TRUE@am__append_66 = ../modules/loaders/gif
120@EVAS_STATIC_BUILD_ICO_TRUE@am__append_67 = ../modules/loaders/ico/libevas_loader_ico.la 120@EVAS_STATIC_BUILD_GIF_TRUE@am__append_67 = ../modules/loaders/gif/libevas_loader_gif.la
121@EVAS_STATIC_BUILD_ICO_TRUE@am__append_68 = @evas_image_loader_ico_libs@ 121@EVAS_STATIC_BUILD_GIF_TRUE@am__append_68 = @evas_image_loader_gif_libs@
122@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_69 = ../modules/loaders/jpeg 122@EVAS_STATIC_BUILD_ICO_TRUE@am__append_69 = ../modules/loaders/ico
123@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_70 = ../modules/loaders/jpeg/libevas_loader_jpeg.la 123@EVAS_STATIC_BUILD_ICO_TRUE@am__append_70 = ../modules/loaders/ico/libevas_loader_ico.la
124@BUILD_SAVER_JPEG_TRUE@@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_71 = ../modules/savers/jpeg 124@EVAS_STATIC_BUILD_ICO_TRUE@am__append_71 = @evas_image_loader_ico_libs@
125@BUILD_SAVER_JPEG_TRUE@@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_72 = ../modules/savers/jpeg/libevas_saver_jpeg.la 125@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_72 = ../modules/loaders/jpeg
126@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_73 = @evas_image_loader_jpeg_libs@ 126@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_73 = ../modules/loaders/jpeg/libevas_loader_jpeg.la
127@EVAS_STATIC_BUILD_PMAPS_TRUE@am__append_74 = ../modules/loaders/pmaps 127@BUILD_SAVER_JPEG_TRUE@@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_74 = ../modules/savers/jpeg
128@EVAS_STATIC_BUILD_PMAPS_TRUE@am__append_75 = ../modules/loaders/pmaps/libevas_loader_pmaps.la 128@BUILD_SAVER_JPEG_TRUE@@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_75 = ../modules/savers/jpeg/libevas_saver_jpeg.la
129@EVAS_STATIC_BUILD_PMAPS_TRUE@am__append_76 = @evas_image_loader_pmaps_libs@ 129@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_76 = @evas_image_loader_jpeg_libs@
130@EVAS_STATIC_BUILD_PNG_TRUE@am__append_77 = ../modules/savers/png ../modules/loaders/png 130@EVAS_STATIC_BUILD_PMAPS_TRUE@am__append_77 = ../modules/loaders/pmaps
131@EVAS_STATIC_BUILD_PNG_TRUE@am__append_78 = ../modules/savers/png/libevas_saver_png.la ../modules/loaders/png/libevas_loader_png.la 131@EVAS_STATIC_BUILD_PMAPS_TRUE@am__append_78 = ../modules/loaders/pmaps/libevas_loader_pmaps.la
132@EVAS_STATIC_BUILD_PNG_TRUE@am__append_79 = @evas_image_loader_png_libs@ 132@EVAS_STATIC_BUILD_PMAPS_TRUE@am__append_79 = @evas_image_loader_pmaps_libs@
133@EVAS_STATIC_BUILD_PSD_TRUE@am__append_80 = ../modules/loaders/psd 133@EVAS_STATIC_BUILD_PNG_TRUE@am__append_80 = ../modules/savers/png ../modules/loaders/png
134@EVAS_STATIC_BUILD_PSD_TRUE@am__append_81 = ../modules/loaders/psd/libevas_loader_psd.la 134@EVAS_STATIC_BUILD_PNG_TRUE@am__append_81 = ../modules/savers/png/libevas_saver_png.la ../modules/loaders/png/libevas_loader_png.la
135@EVAS_STATIC_BUILD_PSD_TRUE@am__append_82 = @evas_image_loader_psd_libs@ 135@EVAS_STATIC_BUILD_PNG_TRUE@am__append_82 = @evas_image_loader_png_libs@
136@EVAS_STATIC_BUILD_SVG_TRUE@am__append_83 = ../modules/loaders/svg 136@EVAS_STATIC_BUILD_PSD_TRUE@am__append_83 = ../modules/loaders/psd
137@EVAS_STATIC_BUILD_SVG_TRUE@am__append_84 = ../modules/loaders/svg/libevas_loader_svg.la 137@EVAS_STATIC_BUILD_PSD_TRUE@am__append_84 = ../modules/loaders/psd/libevas_loader_psd.la
138@EVAS_STATIC_BUILD_SVG_TRUE@am__append_85 = @evas_image_loader_svg_libs@ 138@EVAS_STATIC_BUILD_PSD_TRUE@am__append_85 = @evas_image_loader_psd_libs@
139@EVAS_STATIC_BUILD_TGA_TRUE@am__append_86 = ../modules/loaders/tga 139@EVAS_STATIC_BUILD_SVG_TRUE@am__append_86 = ../modules/loaders/svg
140@EVAS_STATIC_BUILD_TGA_TRUE@am__append_87 = ../modules/loaders/tga/libevas_loader_tga.la 140@EVAS_STATIC_BUILD_SVG_TRUE@am__append_87 = ../modules/loaders/svg/libevas_loader_svg.la
141@EVAS_STATIC_BUILD_TGA_TRUE@am__append_88 = @evas_image_loader_tga_libs@ 141@EVAS_STATIC_BUILD_SVG_TRUE@am__append_88 = @evas_image_loader_svg_libs@
142@EVAS_STATIC_BUILD_TIFF_TRUE@am__append_89 = ../modules/savers/tiff ../modules/loaders/tiff 142@EVAS_STATIC_BUILD_TGA_TRUE@am__append_89 = ../modules/loaders/tga
143@EVAS_STATIC_BUILD_TIFF_TRUE@am__append_90 = ../modules/savers/tiff/libevas_saver_tiff.la ../modules/loaders/tiff/libevas_loader_tiff.la 143@EVAS_STATIC_BUILD_TGA_TRUE@am__append_90 = ../modules/loaders/tga/libevas_loader_tga.la
144@EVAS_STATIC_BUILD_TIFF_TRUE@am__append_91 = @evas_image_loader_tiff_libs@ 144@EVAS_STATIC_BUILD_TGA_TRUE@am__append_91 = @evas_image_loader_tga_libs@
145@EVAS_STATIC_BUILD_WBMP_TRUE@am__append_92 = ../modules/loaders/wbmp 145@EVAS_STATIC_BUILD_TIFF_TRUE@am__append_92 = ../modules/savers/tiff ../modules/loaders/tiff
146@EVAS_STATIC_BUILD_WBMP_TRUE@am__append_93 = ../modules/loaders/wbmp/libevas_loader_wbmp.la 146@EVAS_STATIC_BUILD_TIFF_TRUE@am__append_93 = ../modules/savers/tiff/libevas_saver_tiff.la ../modules/loaders/tiff/libevas_loader_tiff.la
147@EVAS_STATIC_BUILD_WBMP_TRUE@am__append_94 = @evas_image_loader_wbmp_libs@ 147@EVAS_STATIC_BUILD_TIFF_TRUE@am__append_94 = @evas_image_loader_tiff_libs@
148@EVAS_STATIC_BUILD_XPM_TRUE@am__append_95 = ../modules/loaders/xpm 148@EVAS_STATIC_BUILD_WBMP_TRUE@am__append_95 = ../modules/loaders/wbmp
149@EVAS_STATIC_BUILD_XPM_TRUE@am__append_96 = ../modules/loaders/xpm/libevas_loader_xpm.la 149@EVAS_STATIC_BUILD_WBMP_TRUE@am__append_96 = ../modules/loaders/wbmp/libevas_loader_wbmp.la
150@EVAS_STATIC_BUILD_XPM_TRUE@am__append_97 = @evas_image_loader_xpm_libs@ 150@EVAS_STATIC_BUILD_WBMP_TRUE@am__append_97 = @evas_image_loader_wbmp_libs@
151@BUILD_ENGINE_SOFTWARE_16_TRUE@am__append_98 = engines/common_16/libevas_engine_common_16.la 151@EVAS_STATIC_BUILD_XPM_TRUE@am__append_98 = ../modules/loaders/xpm
152@BUILD_ENGINE_SOFTWARE_16_TRUE@am__append_99 = engines/common_16/libevas_engine_common_16.la 152@EVAS_STATIC_BUILD_XPM_TRUE@am__append_99 = ../modules/loaders/xpm/libevas_loader_xpm.la
153@BUILD_ENGINE_SOFTWARE_8_TRUE@am__append_100 = engines/common_8/libevas_engine_common_8.la 153@EVAS_STATIC_BUILD_XPM_TRUE@am__append_100 = @evas_image_loader_xpm_libs@
154@BUILD_ENGINE_SOFTWARE_8_TRUE@am__append_101 = engines/common_8/libevas_engine_common_8.la 154@BUILD_ENGINE_SOFTWARE_16_TRUE@am__append_101 = engines/common_16/libevas_engine_common_16.la
155@BUILD_ENGINE_SOFTWARE_16_TRUE@am__append_102 = engines/common_16/libevas_engine_common_16.la
156@BUILD_ENGINE_SOFTWARE_8_TRUE@am__append_103 = engines/common_8/libevas_engine_common_8.la
157@BUILD_ENGINE_SOFTWARE_8_TRUE@am__append_104 = engines/common_8/libevas_engine_common_8.la
155subdir = src/lib 158subdir = src/lib
156DIST_COMMON = $(includes_HEADERS) $(srcdir)/Makefile.am \ 159DIST_COMMON = $(includes_HEADERS) $(srcdir)/Makefile.am \
157 $(srcdir)/Makefile.in 160 $(srcdir)/Makefile.in
@@ -213,7 +216,7 @@ am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
213 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ 216 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
214 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ 217 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
215 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ 218 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
216 $(am__DEPENDENCIES_1) 219 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
217am_libevas_la_OBJECTS = main.lo 220am_libevas_la_OBJECTS = main.lo
218libevas_la_OBJECTS = $(am_libevas_la_OBJECTS) 221libevas_la_OBJECTS = $(am_libevas_la_OBJECTS)
219AM_V_lt = $(am__v_lt_$(V)) 222AM_V_lt = $(am__v_lt_$(V))
@@ -393,8 +396,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
393PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 396PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
394PIXMAN_LIBS = @PIXMAN_LIBS@ 397PIXMAN_LIBS = @PIXMAN_LIBS@
395PKG_CONFIG = @PKG_CONFIG@ 398PKG_CONFIG = @PKG_CONFIG@
396PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
397PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
398PNG_CFLAGS = @PNG_CFLAGS@ 399PNG_CFLAGS = @PNG_CFLAGS@
399PNG_LIBS = @PNG_LIBS@ 400PNG_LIBS = @PNG_LIBS@
400RANLIB = @RANLIB@ 401RANLIB = @RANLIB@
@@ -411,6 +412,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
411VALGRIND_LIBS = @VALGRIND_LIBS@ 412VALGRIND_LIBS = @VALGRIND_LIBS@
412VERSION = @VERSION@ 413VERSION = @VERSION@
413VMAJ = @VMAJ@ 414VMAJ = @VMAJ@
415WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
416WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
414WIN32_CFLAGS = @WIN32_CFLAGS@ 417WIN32_CFLAGS = @WIN32_CFLAGS@
415WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 418WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
416XCB_CFLAGS = @XCB_CFLAGS@ 419XCB_CFLAGS = @XCB_CFLAGS@
@@ -492,6 +495,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
492evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 495evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
493evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 496evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
494evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 497evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
498evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
499evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
500evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
501evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
495evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 502evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
496evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 503evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
497evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 504evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
@@ -576,9 +583,10 @@ SUBDIRS = canvas cache cserve file engines include $(am__append_1) \
576 $(am__append_45) $(am__append_48) $(am__append_51) \ 583 $(am__append_45) $(am__append_48) $(am__append_51) \
577 $(am__append_54) $(am__append_57) $(am__append_60) \ 584 $(am__append_54) $(am__append_57) $(am__append_60) \
578 $(am__append_63) $(am__append_66) $(am__append_69) \ 585 $(am__append_63) $(am__append_66) $(am__append_69) \
579 $(am__append_71) $(am__append_74) $(am__append_77) \ 586 $(am__append_72) $(am__append_74) $(am__append_77) \
580 $(am__append_80) $(am__append_83) $(am__append_86) \ 587 $(am__append_80) $(am__append_83) $(am__append_86) \
581 $(am__append_89) $(am__append_92) $(am__append_95) 588 $(am__append_89) $(am__append_92) $(am__append_95) \
589 $(am__append_98)
582EVAS_STATIC_MODULE = $(am__append_2) $(am__append_4) $(am__append_6) \ 590EVAS_STATIC_MODULE = $(am__append_2) $(am__append_4) $(am__append_6) \
583 $(am__append_9) $(am__append_12) $(am__append_15) \ 591 $(am__append_9) $(am__append_12) $(am__append_15) \
584 $(am__append_18) $(am__append_21) $(am__append_24) \ 592 $(am__append_18) $(am__append_21) $(am__append_24) \
@@ -587,20 +595,20 @@ EVAS_STATIC_MODULE = $(am__append_2) $(am__append_4) $(am__append_6) \
587 $(am__append_43) $(am__append_46) $(am__append_49) \ 595 $(am__append_43) $(am__append_46) $(am__append_49) \
588 $(am__append_52) $(am__append_55) $(am__append_58) \ 596 $(am__append_52) $(am__append_55) $(am__append_58) \
589 $(am__append_61) $(am__append_64) $(am__append_67) \ 597 $(am__append_61) $(am__append_64) $(am__append_67) \
590 $(am__append_70) $(am__append_72) $(am__append_75) \ 598 $(am__append_70) $(am__append_73) $(am__append_75) \
591 $(am__append_78) $(am__append_81) $(am__append_84) \ 599 $(am__append_78) $(am__append_81) $(am__append_84) \
592 $(am__append_87) $(am__append_90) $(am__append_93) \ 600 $(am__append_87) $(am__append_90) $(am__append_93) \
593 $(am__append_96) 601 $(am__append_96) $(am__append_99)
594EVAS_STATIC_LIBADD = $(am__append_7) $(am__append_10) $(am__append_13) \ 602EVAS_STATIC_LIBADD = $(am__append_7) $(am__append_10) $(am__append_13) \
595 $(am__append_16) $(am__append_19) $(am__append_22) \ 603 $(am__append_16) $(am__append_19) $(am__append_22) \
596 $(am__append_27) $(am__append_30) $(am__append_33) \ 604 $(am__append_27) $(am__append_30) $(am__append_33) \
597 $(am__append_38) $(am__append_41) $(am__append_44) \ 605 $(am__append_38) $(am__append_41) $(am__append_44) \
598 $(am__append_47) $(am__append_50) $(am__append_53) \ 606 $(am__append_47) $(am__append_50) $(am__append_53) \
599 $(am__append_56) $(am__append_59) $(am__append_62) \ 607 $(am__append_56) $(am__append_59) $(am__append_62) \
600 $(am__append_65) $(am__append_68) $(am__append_73) \ 608 $(am__append_65) $(am__append_68) $(am__append_71) \
601 $(am__append_76) $(am__append_79) $(am__append_82) \ 609 $(am__append_76) $(am__append_79) $(am__append_82) \
602 $(am__append_85) $(am__append_88) $(am__append_91) \ 610 $(am__append_85) $(am__append_88) $(am__append_91) \
603 $(am__append_94) $(am__append_97) 611 $(am__append_94) $(am__append_97) $(am__append_100)
604AM_CPPFLAGS = \ 612AM_CPPFLAGS = \
605-I. \ 613-I. \
606-I$(top_srcdir)/src/lib \ 614-I$(top_srcdir)/src/lib \
@@ -619,10 +627,7 @@ AM_CPPFLAGS = \
619 627
620AM_CFLAGS = @WIN32_CFLAGS@ 628AM_CFLAGS = @WIN32_CFLAGS@
621lib_LTLIBRARIES = libevas.la 629lib_LTLIBRARIES = libevas.la
622 630includes_HEADERS = Evas.h Evas_GL.h
623### Evas_GL disabled for 1.1
624#includes_HEADERS = Evas.h Evas_GL.h
625includes_HEADERS = Evas.h
626includesdir = $(includedir)/evas-@VMAJ@ 631includesdir = $(includedir)/evas-@VMAJ@
627libevas_la_SOURCES = main.c 632libevas_la_SOURCES = main.c
628@EVAS_CSERVE_TRUE@libevas_cserve_la = cserve/libevas_cserve.la 633@EVAS_CSERVE_TRUE@libevas_cserve_la = cserve/libevas_cserve.la
@@ -631,12 +636,12 @@ libevas_la_LIBADD = canvas/libevas_canvas.la file/libevas_file.la \
631 engines/common/libevas_engine_common.la @FREETYPE_LIBS@ \ 636 engines/common/libevas_engine_common.la @FREETYPE_LIBS@ \
632 @FRIBIDI_LIBS@ @HARFBUZZ_LIBS@ @EET_LIBS@ @FONTCONFIG_LIBS@ \ 637 @FRIBIDI_LIBS@ @HARFBUZZ_LIBS@ @EET_LIBS@ @FONTCONFIG_LIBS@ \
633 @pthread_libs@ @EINA_LIBS@ $(EVAS_STATIC_MODULE) \ 638 @pthread_libs@ @EINA_LIBS@ $(EVAS_STATIC_MODULE) \
634 $(EVAS_STATIC_LIBADD) @PIXMAN_LIBS@ -lm $(am__append_98) \ 639 $(EVAS_STATIC_LIBADD) @PIXMAN_LIBS@ -lm $(am__append_101) \
635 $(am__append_100) 640 $(am__append_103)
636libevas_la_DEPENDENCIES = canvas/libevas_canvas.la \ 641libevas_la_DEPENDENCIES = canvas/libevas_canvas.la \
637 file/libevas_file.la cache/libevas_cache.la \ 642 file/libevas_file.la cache/libevas_cache.la \
638 $(libevas_cserve_la) engines/common/libevas_engine_common.la \ 643 $(libevas_cserve_la) engines/common/libevas_engine_common.la \
639 $(EVAS_STATIC_MODULE) $(am__append_99) $(am__append_101) 644 $(EVAS_STATIC_MODULE) $(am__append_102) $(am__append_104)
640libevas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ 645libevas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
641 646
642### Evas_GL we are still using it in our code, so just don't install it. 647### Evas_GL we are still using it in our code, so just don't install it.
diff --git a/libraries/evas/src/lib/cache/Makefile.in b/libraries/evas/src/lib/cache/Makefile.in
index b024731..2b50c81 100644
--- a/libraries/evas/src/lib/cache/Makefile.in
+++ b/libraries/evas/src/lib/cache/Makefile.in
@@ -197,8 +197,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
197PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 197PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
198PIXMAN_LIBS = @PIXMAN_LIBS@ 198PIXMAN_LIBS = @PIXMAN_LIBS@
199PKG_CONFIG = @PKG_CONFIG@ 199PKG_CONFIG = @PKG_CONFIG@
200PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
201PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
202PNG_CFLAGS = @PNG_CFLAGS@ 200PNG_CFLAGS = @PNG_CFLAGS@
203PNG_LIBS = @PNG_LIBS@ 201PNG_LIBS = @PNG_LIBS@
204RANLIB = @RANLIB@ 202RANLIB = @RANLIB@
@@ -215,6 +213,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
215VALGRIND_LIBS = @VALGRIND_LIBS@ 213VALGRIND_LIBS = @VALGRIND_LIBS@
216VERSION = @VERSION@ 214VERSION = @VERSION@
217VMAJ = @VMAJ@ 215VMAJ = @VMAJ@
216WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
217WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
218WIN32_CFLAGS = @WIN32_CFLAGS@ 218WIN32_CFLAGS = @WIN32_CFLAGS@
219WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 219WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
220XCB_CFLAGS = @XCB_CFLAGS@ 220XCB_CFLAGS = @XCB_CFLAGS@
@@ -296,6 +296,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
296evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 296evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
297evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 297evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
298evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 298evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
299evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
300evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
301evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
302evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
299evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 303evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
300evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 304evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
301evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 305evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/cache/evas_cache_engine_image.c b/libraries/evas/src/lib/cache/evas_cache_engine_image.c
index 8ae4392..5ec1af2 100644
--- a/libraries/evas/src/lib/cache/evas_cache_engine_image.c
+++ b/libraries/evas/src/lib/cache/evas_cache_engine_image.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/cache/evas_cache_image.c b/libraries/evas/src/lib/cache/evas_cache_image.c
index d52c64e..73e4f8a 100644
--- a/libraries/evas/src/lib/cache/evas_cache_image.c
+++ b/libraries/evas/src/lib/cache/evas_cache_image.c
@@ -918,12 +918,8 @@ evas_cache_image_drop(Image_Entry *im)
918EAPI void 918EAPI void
919evas_cache_image_data_not_needed(Image_Entry *im) 919evas_cache_image_data_not_needed(Image_Entry *im)
920{ 920{
921 Evas_Cache_Image *cache;
922 int references; 921 int references;
923 922
924 /* FIXME: no one uses this api... well evas_cache_engine_parent_not_needed()
925 * does, but nothing uses that! */
926 cache = im->cache;
927#ifdef EVAS_FRAME_QUEUING 923#ifdef EVAS_FRAME_QUEUING
928 LKL(im->lock_references); 924 LKL(im->lock_references);
929#endif 925#endif
@@ -941,11 +937,12 @@ evas_cache_image_dirty(Image_Entry *im, unsigned int x, unsigned int y, unsigned
941{ 937{
942 Image_Entry *im_dirty = im; 938 Image_Entry *im_dirty = im;
943 Evas_Cache_Image *cache; 939 Evas_Cache_Image *cache;
944 int references;
945 940
946 cache = im->cache; 941 cache = im->cache;
947 if (!(im->flags.dirty)) 942 if (!(im->flags.dirty))
948 { 943 {
944#ifndef EVAS_CSERVE
945 int references;
949#ifdef EVAS_FRAME_QUEUING 946#ifdef EVAS_FRAME_QUEUING
950 LKL(im->lock_references); 947 LKL(im->lock_references);
951#endif 948#endif
@@ -953,21 +950,18 @@ evas_cache_image_dirty(Image_Entry *im, unsigned int x, unsigned int y, unsigned
953#ifdef EVAS_FRAME_QUEUING 950#ifdef EVAS_FRAME_QUEUING
954 LKU(im->lock_references); 951 LKU(im->lock_references);
955#endif 952#endif
956#ifndef EVAS_CSERVE
957 // if ref 1 also copy if using shared cache as its read-only 953 // if ref 1 also copy if using shared cache as its read-only
958 if (references == 1) im_dirty = im; 954 if (references == 1) im_dirty = im;
959 else 955 else
960#endif 956#endif
961 { 957 {
962 int error;
963
964 im_dirty = 958 im_dirty =
965 evas_cache_image_copied_data(cache, im->w, im->h, 959 evas_cache_image_copied_data(cache, im->w, im->h,
966 evas_cache_image_pixels(im), 960 evas_cache_image_pixels(im),
967 im->flags.alpha, im->space); 961 im->flags.alpha, im->space);
968 if (!im_dirty) goto on_error; 962 if (!im_dirty) goto on_error;
969 if (cache->func.debug) cache->func.debug("dirty-src", im); 963 if (cache->func.debug) cache->func.debug("dirty-src", im);
970 error = cache->func.dirty(im_dirty, im); 964 cache->func.dirty(im_dirty, im);
971 if (cache->func.debug) cache->func.debug("dirty-out", im_dirty); 965 if (cache->func.debug) cache->func.debug("dirty-out", im_dirty);
972#ifdef EVAS_FRAME_QUEUING 966#ifdef EVAS_FRAME_QUEUING
973 LKL(im_dirty->lock_references); 967 LKL(im_dirty->lock_references);
@@ -1014,15 +1008,13 @@ evas_cache_image_alone(Image_Entry *im)
1014 } 1008 }
1015 else 1009 else
1016 { 1010 {
1017 int error;
1018
1019 im_dirty = evas_cache_image_copied_data(cache, im->w, im->h, 1011 im_dirty = evas_cache_image_copied_data(cache, im->w, im->h,
1020 evas_cache_image_pixels(im), 1012 evas_cache_image_pixels(im),
1021 im->flags.alpha, 1013 im->flags.alpha,
1022 im->space); 1014 im->space);
1023 if (!im_dirty) goto on_error; 1015 if (!im_dirty) goto on_error;
1024 if (cache->func.debug) cache->func.debug("dirty-src", im); 1016 if (cache->func.debug) cache->func.debug("dirty-src", im);
1025 error = cache->func.dirty(im_dirty, im); 1017 cache->func.dirty(im_dirty, im);
1026 if (cache->func.debug) cache->func.debug("dirty-out", im_dirty); 1018 if (cache->func.debug) cache->func.debug("dirty-out", im_dirty);
1027#ifdef EVAS_FRAME_QUEUING 1019#ifdef EVAS_FRAME_QUEUING
1028 LKL(im_dirty->lock_references); 1020 LKL(im_dirty->lock_references);
@@ -1296,6 +1288,7 @@ evas_cache_image_preload_cancel(Image_Entry *im, const void *target)
1296 _evas_cache_image_entry_preload_remove(im, target); 1288 _evas_cache_image_entry_preload_remove(im, target);
1297#else 1289#else
1298 (void)im; 1290 (void)im;
1291 (void)target;
1299#endif 1292#endif
1300} 1293}
1301 1294
diff --git a/libraries/evas/src/lib/cache/evas_preload.c b/libraries/evas/src/lib/cache/evas_preload.c
index 6e0412a..5eebaed 100644
--- a/libraries/evas/src/lib/cache/evas_preload.c
+++ b/libraries/evas/src/lib/cache/evas_preload.c
@@ -225,6 +225,7 @@ evas_preload_thread_run(void (*func_heavy) (void *data),
225 If no thread and as we don't want to break app that rely on this 225 If no thread and as we don't want to break app that rely on this
226 facility, we will lock the interface until we are done. 226 facility, we will lock the interface until we are done.
227 */ 227 */
228 (void)func_cancel;
228 func_heavy((void *)data); 229 func_heavy((void *)data);
229 func_end((void *)data); 230 func_end((void *)data);
230 return (void *)1; 231 return (void *)1;
@@ -253,12 +254,13 @@ evas_preload_thread_cancel(Evas_Preload_Pthread *thread)
253 } 254 }
254 } 255 }
255 LKU(_mutex); 256 LKU(_mutex);
256 257
257 /* Delay the destruction */ 258 /* Delay the destruction */
258 work = (Evas_Preload_Pthread_Worker *)thread; 259 work = (Evas_Preload_Pthread_Worker *)thread;
259 work->cancel = EINA_TRUE; 260 work->cancel = EINA_TRUE;
260 return EINA_FALSE; 261 return EINA_FALSE;
261#else 262#else
263 (void) thread;
262 return EINA_TRUE; 264 return EINA_TRUE;
263#endif 265#endif
264} 266}
diff --git a/libraries/evas/src/lib/canvas/Makefile.in b/libraries/evas/src/lib/canvas/Makefile.in
index 0b4e15d..75da67a 100644
--- a/libraries/evas/src/lib/canvas/Makefile.in
+++ b/libraries/evas/src/lib/canvas/Makefile.in
@@ -211,8 +211,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
211PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 211PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
212PIXMAN_LIBS = @PIXMAN_LIBS@ 212PIXMAN_LIBS = @PIXMAN_LIBS@
213PKG_CONFIG = @PKG_CONFIG@ 213PKG_CONFIG = @PKG_CONFIG@
214PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
215PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
216PNG_CFLAGS = @PNG_CFLAGS@ 214PNG_CFLAGS = @PNG_CFLAGS@
217PNG_LIBS = @PNG_LIBS@ 215PNG_LIBS = @PNG_LIBS@
218RANLIB = @RANLIB@ 216RANLIB = @RANLIB@
@@ -229,6 +227,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
229VALGRIND_LIBS = @VALGRIND_LIBS@ 227VALGRIND_LIBS = @VALGRIND_LIBS@
230VERSION = @VERSION@ 228VERSION = @VERSION@
231VMAJ = @VMAJ@ 229VMAJ = @VMAJ@
230WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
231WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
232WIN32_CFLAGS = @WIN32_CFLAGS@ 232WIN32_CFLAGS = @WIN32_CFLAGS@
233WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 233WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
234XCB_CFLAGS = @XCB_CFLAGS@ 234XCB_CFLAGS = @XCB_CFLAGS@
@@ -310,6 +310,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
310evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 310evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
311evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 311evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
312evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 312evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
313evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
314evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
315evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
316evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
313evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 317evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
314evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 318evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
315evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 319evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/canvas/evas_callbacks.c b/libraries/evas/src/lib/canvas/evas_callbacks.c
index 33b93bc..93f34f2 100644
--- a/libraries/evas/src/lib/canvas/evas_callbacks.c
+++ b/libraries/evas/src/lib/canvas/evas_callbacks.c
@@ -23,7 +23,7 @@ _evas_post_event_callback_call(Evas *e)
23 { 23 {
24 if (!pc->func((void*)pc->data, e)) skip = 1; 24 if (!pc->func((void*)pc->data, e)) skip = 1;
25 } 25 }
26 EVAS_MEMPOOL_FREE(_mp_pc, pc); 26 EVAS_MEMPOOL_FREE(_mp_pc, pc);
27 } 27 }
28 _evas_unwalk(e); 28 _evas_unwalk(e);
29} 29}
@@ -32,10 +32,10 @@ void
32_evas_post_event_callback_free(Evas *e) 32_evas_post_event_callback_free(Evas *e)
33{ 33{
34 Evas_Post_Callback *pc; 34 Evas_Post_Callback *pc;
35 35
36 EINA_LIST_FREE(e->post_events, pc) 36 EINA_LIST_FREE(e->post_events, pc)
37 { 37 {
38 EVAS_MEMPOOL_FREE(_mp_pc, pc); 38 EVAS_MEMPOOL_FREE(_mp_pc, pc);
39 } 39 }
40 _evas_unwalk(e); 40 _evas_unwalk(e);
41} 41}
@@ -48,15 +48,15 @@ evas_event_callback_list_post_free(Eina_Inlist **list)
48 /* MEM OK */ 48 /* MEM OK */
49 for (l = *list; l;) 49 for (l = *list; l;)
50 { 50 {
51 Evas_Func_Node *fn; 51 Evas_Func_Node *fn;
52 52
53 fn = (Evas_Func_Node *)l; 53 fn = (Evas_Func_Node *)l;
54 l = l->next; 54 l = l->next;
55 if (fn->delete_me) 55 if (fn->delete_me)
56 { 56 {
57 *list = eina_inlist_remove(*list, EINA_INLIST_GET(fn)); 57 *list = eina_inlist_remove(*list, EINA_INLIST_GET(fn));
58 EVAS_MEMPOOL_FREE(_mp_fn, fn); 58 EVAS_MEMPOOL_FREE(_mp_fn, fn);
59 } 59 }
60 } 60 }
61} 61}
62 62
@@ -70,7 +70,7 @@ evas_object_event_callback_clear(Evas_Object *obj)
70 if (!obj->callbacks->callbacks) 70 if (!obj->callbacks->callbacks)
71 { 71 {
72 EVAS_MEMPOOL_FREE(_mp_cb, obj->callbacks); 72 EVAS_MEMPOOL_FREE(_mp_cb, obj->callbacks);
73 obj->callbacks = NULL; 73 obj->callbacks = NULL;
74 } 74 }
75} 75}
76 76
@@ -84,7 +84,7 @@ evas_event_callback_clear(Evas *e)
84 if (!e->callbacks->callbacks) 84 if (!e->callbacks->callbacks)
85 { 85 {
86 EVAS_MEMPOOL_FREE(_mp_cb, e->callbacks); 86 EVAS_MEMPOOL_FREE(_mp_cb, e->callbacks);
87 e->callbacks = NULL; 87 e->callbacks = NULL;
88 } 88 }
89} 89}
90 90
@@ -95,7 +95,7 @@ evas_object_event_callback_all_del(Evas_Object *obj)
95 95
96 if (!obj->callbacks) return; 96 if (!obj->callbacks) return;
97 EINA_INLIST_FOREACH(obj->callbacks->callbacks, fn) 97 EINA_INLIST_FOREACH(obj->callbacks->callbacks, fn)
98 fn->delete_me = 1; 98 fn->delete_me = 1;
99} 99}
100 100
101void 101void
@@ -115,7 +115,7 @@ evas_event_callback_all_del(Evas *e)
115 115
116 if (!e->callbacks) return; 116 if (!e->callbacks) return;
117 EINA_INLIST_FOREACH(e->callbacks->callbacks, fn) 117 EINA_INLIST_FOREACH(e->callbacks->callbacks, fn)
118 fn->delete_me = 1; 118 fn->delete_me = 1;
119} 119}
120 120
121void 121void
@@ -136,25 +136,25 @@ evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info)
136 _evas_walk(e); 136 _evas_walk(e);
137 if (e->callbacks) 137 if (e->callbacks)
138 { 138 {
139 l_mod = &e->callbacks->callbacks; 139 l_mod = &e->callbacks->callbacks;
140 e->callbacks->walking_list++; 140 e->callbacks->walking_list++;
141 for (l = *l_mod; l; l = l->next) 141 for (l = *l_mod; l; l = l->next)
142 { 142 {
143 Evas_Func_Node *fn; 143 Evas_Func_Node *fn;
144 144
145 fn = (Evas_Func_Node *)l; 145 fn = (Evas_Func_Node *)l;
146 if ((fn->type == type) && (!fn->delete_me)) 146 if ((fn->type == type) && (!fn->delete_me))
147 { 147 {
148 Evas_Event_Cb func = fn->func; 148 Evas_Event_Cb func = fn->func;
149 if (func) 149 if (func)
150 func(fn->data, e, event_info); 150 func(fn->data, e, event_info);
151 } 151 }
152 if (e->delete_me) break; 152 if (e->delete_me) break;
153 } 153 }
154 e->callbacks->walking_list--; 154 e->callbacks->walking_list--;
155 if (!e->callbacks->walking_list) 155 if (!e->callbacks->walking_list)
156 { 156 {
157 evas_event_callback_clear(e); 157 evas_event_callback_clear(e);
158 l_mod = NULL; 158 l_mod = NULL;
159 } 159 }
160 } 160 }
@@ -162,7 +162,7 @@ evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info)
162} 162}
163 163
164void 164void
165evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void *event_info) 165evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void *event_info, int event_id)
166{ 166{
167 /* MEM OK */ 167 /* MEM OK */
168 Eina_Inlist **l_mod = NULL, *l; 168 Eina_Inlist **l_mod = NULL, *l;
@@ -170,67 +170,67 @@ evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void
170 Evas *e; 170 Evas *e;
171 171
172 if ((obj->delete_me) || (!obj->layer)) return; 172 if ((obj->delete_me) || (!obj->layer)) return;
173 if ((obj->last_event == _evas_event_counter) && 173 if ((obj->last_event == event_id) &&
174 (obj->last_event_type == type)) return; 174 (obj->last_event_type == type)) return;
175 obj->last_event = _evas_event_counter; 175 obj->last_event = event_id;
176 obj->last_event_type = type; 176 obj->last_event_type = type;
177 if (!(e = obj->layer->evas)) return; 177 if (!(e = obj->layer->evas)) return;
178 178
179 _evas_walk(e); 179 _evas_walk(e);
180 if (obj->callbacks) 180 if (obj->callbacks)
181 { 181 {
182 l_mod = &obj->callbacks->callbacks; 182 l_mod = &obj->callbacks->callbacks;
183 switch (type) 183 switch (type)
184 { 184 {
185 case EVAS_CALLBACK_MOUSE_DOWN: 185 case EVAS_CALLBACK_MOUSE_DOWN:
186 { 186 {
187 Evas_Event_Mouse_Down *ev = event_info; 187 Evas_Event_Mouse_Down *ev = event_info;
188 188
189 flags = ev->flags; 189 flags = ev->flags;
190 if (ev->flags & (EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK)) 190 if (ev->flags & (EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK))
191 { 191 {
192 if (obj->last_mouse_down_counter < (e->last_mouse_down_counter - 1)) 192 if (obj->last_mouse_down_counter < (e->last_mouse_down_counter - 1))
193 ev->flags &= ~(EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK); 193 ev->flags &= ~(EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK);
194 } 194 }
195 obj->last_mouse_down_counter = e->last_mouse_down_counter; 195 obj->last_mouse_down_counter = e->last_mouse_down_counter;
196 break; 196 break;
197 } 197 }
198 case EVAS_CALLBACK_MOUSE_UP: 198 case EVAS_CALLBACK_MOUSE_UP:
199 { 199 {
200 Evas_Event_Mouse_Up *ev = event_info; 200 Evas_Event_Mouse_Up *ev = event_info;
201 201
202 flags = ev->flags; 202 flags = ev->flags;
203 if (ev->flags & (EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK)) 203 if (ev->flags & (EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK))
204 { 204 {
205 if (obj->last_mouse_up_counter < (e->last_mouse_up_counter - 1)) 205 if (obj->last_mouse_up_counter < (e->last_mouse_up_counter - 1))
206 ev->flags &= ~(EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK); 206 ev->flags &= ~(EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK);
207 } 207 }
208 obj->last_mouse_up_counter = e->last_mouse_up_counter; 208 obj->last_mouse_up_counter = e->last_mouse_up_counter;
209 break; 209 break;
210 } 210 }
211 default: 211 default:
212 break; 212 break;
213 } 213 }
214 obj->callbacks->walking_list++; 214 obj->callbacks->walking_list++;
215 for (l = *l_mod; l; l = l->next) 215 for (l = *l_mod; l; l = l->next)
216 { 216 {
217 Evas_Func_Node *fn; 217 Evas_Func_Node *fn;
218 218
219 fn = (Evas_Func_Node *)l; 219 fn = (Evas_Func_Node *)l;
220 if ((fn->type == type) && (!fn->delete_me)) 220 if ((fn->type == type) && (!fn->delete_me))
221 { 221 {
222 Evas_Object_Event_Cb func = fn->func; 222 Evas_Object_Event_Cb func = fn->func;
223 if (func) 223 if (func)
224 func(fn->data, obj->layer->evas, obj, event_info); 224 func(fn->data, obj->layer->evas, obj, event_info);
225 } 225 }
226 if (obj->delete_me) break; 226 if (obj->delete_me) break;
227 } 227 }
228 obj->callbacks->walking_list--; 228 obj->callbacks->walking_list--;
229 if (!obj->callbacks->walking_list) 229 if (!obj->callbacks->walking_list)
230 { 230 {
231 evas_object_event_callback_clear(obj); 231 evas_object_event_callback_clear(obj);
232 l_mod = NULL; 232 l_mod = NULL;
233 } 233 }
234 234
235 if (type == EVAS_CALLBACK_MOUSE_DOWN) 235 if (type == EVAS_CALLBACK_MOUSE_DOWN)
236 { 236 {
@@ -246,12 +246,12 @@ evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void
246 246
247 if (!((obj->no_propagate) && (l_mod) && (*l_mod))) 247 if (!((obj->no_propagate) && (l_mod) && (*l_mod)))
248 { 248 {
249 if (!obj->no_propagate) 249 if (!obj->no_propagate)
250 { 250 {
251 if ((obj->smart.parent) && (type != EVAS_CALLBACK_FREE) && 251 if ((obj->smart.parent) && (type != EVAS_CALLBACK_FREE) &&
252 (type <= EVAS_CALLBACK_KEY_UP)) 252 (type <= EVAS_CALLBACK_KEY_UP))
253 evas_object_event_callback_call(obj->smart.parent, type, event_info); 253 evas_object_event_callback_call(obj->smart.parent, type, event_info, event_id);
254 } 254 }
255 } 255 }
256 _evas_unwalk(e); 256 _evas_unwalk(e);
257} 257}
@@ -263,16 +263,16 @@ _callback_priority_cmp(const void *_a, const void *_b)
263 a = EINA_INLIST_CONTAINER_GET(_a, Evas_Func_Node); 263 a = EINA_INLIST_CONTAINER_GET(_a, Evas_Func_Node);
264 b = EINA_INLIST_CONTAINER_GET(_b, Evas_Func_Node); 264 b = EINA_INLIST_CONTAINER_GET(_b, Evas_Func_Node);
265 if (a->priority < b->priority) 265 if (a->priority < b->priority)
266 return -1; 266 return -1;
267 else 267 else
268 return 1; 268 return 1;
269} 269}
270 270
271EAPI void 271EAPI void
272evas_object_event_callback_add(Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data) 272evas_object_event_callback_add(Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data)
273{ 273{
274 evas_object_event_callback_priority_add(obj, type, 274 evas_object_event_callback_priority_add(obj, type,
275 EVAS_CALLBACK_PRIORITY_DEFAULT, func, data); 275 EVAS_CALLBACK_PRIORITY_DEFAULT, func, data);
276} 276}
277 277
278EAPI void 278EAPI void
@@ -294,7 +294,7 @@ evas_object_event_callback_priority_add(Evas_Object *obj, Evas_Callback_Type typ
294 if (!obj->callbacks) return; 294 if (!obj->callbacks) return;
295 EVAS_MEMPOOL_PREP(_mp_cb, obj->callbacks, Evas_Callbacks); 295 EVAS_MEMPOOL_PREP(_mp_cb, obj->callbacks, Evas_Callbacks);
296 } 296 }
297 297
298 EVAS_MEMPOOL_INIT(_mp_fn, "evas_func_node", Evas_Func_Node, 2048, ); 298 EVAS_MEMPOOL_INIT(_mp_fn, "evas_func_node", Evas_Func_Node, 2048, );
299 fn = EVAS_MEMPOOL_ALLOC(_mp_fn, Evas_Func_Node); 299 fn = EVAS_MEMPOOL_ALLOC(_mp_fn, Evas_Func_Node);
300 if (!fn) return; 300 if (!fn) return;
@@ -305,8 +305,8 @@ evas_object_event_callback_priority_add(Evas_Object *obj, Evas_Callback_Type typ
305 fn->priority = priority; 305 fn->priority = priority;
306 306
307 obj->callbacks->callbacks = 307 obj->callbacks->callbacks =
308 eina_inlist_sorted_insert(obj->callbacks->callbacks, EINA_INLIST_GET(fn), 308 eina_inlist_sorted_insert(obj->callbacks->callbacks, EINA_INLIST_GET(fn),
309 _callback_priority_cmp); 309 _callback_priority_cmp);
310} 310}
311 311
312EAPI void * 312EAPI void *
@@ -325,17 +325,17 @@ evas_object_event_callback_del(Evas_Object *obj, Evas_Callback_Type type, Evas_O
325 325
326 EINA_INLIST_FOREACH(obj->callbacks->callbacks, fn) 326 EINA_INLIST_FOREACH(obj->callbacks->callbacks, fn)
327 { 327 {
328 if ((fn->func == func) && (fn->type == type) && (!fn->delete_me)) 328 if ((fn->func == func) && (fn->type == type) && (!fn->delete_me))
329 { 329 {
330 void *tmp; 330 void *tmp;
331 331
332 tmp = fn->data; 332 tmp = fn->data;
333 fn->delete_me = 1; 333 fn->delete_me = 1;
334 obj->callbacks->deletions_waiting = 1; 334 obj->callbacks->deletions_waiting = 1;
335 if (!obj->callbacks->walking_list) 335 if (!obj->callbacks->walking_list)
336 evas_object_event_callback_clear(obj); 336 evas_object_event_callback_clear(obj);
337 return tmp; 337 return tmp;
338 } 338 }
339 } 339 }
340 return NULL; 340 return NULL;
341} 341}
@@ -356,17 +356,17 @@ evas_object_event_callback_del_full(Evas_Object *obj, Evas_Callback_Type type, E
356 356
357 EINA_INLIST_FOREACH(obj->callbacks->callbacks, fn) 357 EINA_INLIST_FOREACH(obj->callbacks->callbacks, fn)
358 { 358 {
359 if ((fn->func == func) && (fn->type == type) && (fn->data == data) && (!fn->delete_me)) 359 if ((fn->func == func) && (fn->type == type) && (fn->data == data) && (!fn->delete_me))
360 { 360 {
361 void *tmp; 361 void *tmp;
362 362
363 tmp = fn->data; 363 tmp = fn->data;
364 fn->delete_me = 1; 364 fn->delete_me = 1;
365 obj->callbacks->deletions_waiting = 1; 365 obj->callbacks->deletions_waiting = 1;
366 if (!obj->callbacks->walking_list) 366 if (!obj->callbacks->walking_list)
367 evas_object_event_callback_clear(obj); 367 evas_object_event_callback_clear(obj);
368 return tmp; 368 return tmp;
369 } 369 }
370 } 370 }
371 return NULL; 371 return NULL;
372} 372}
@@ -375,7 +375,7 @@ EAPI void
375evas_event_callback_add(Evas *e, Evas_Callback_Type type, Evas_Event_Cb func, const void *data) 375evas_event_callback_add(Evas *e, Evas_Callback_Type type, Evas_Event_Cb func, const void *data)
376{ 376{
377 evas_event_callback_priority_add(e, type, EVAS_CALLBACK_PRIORITY_DEFAULT, 377 evas_event_callback_priority_add(e, type, EVAS_CALLBACK_PRIORITY_DEFAULT,
378 func, data); 378 func, data);
379} 379}
380 380
381EAPI void 381EAPI void
@@ -397,7 +397,7 @@ evas_event_callback_priority_add(Evas *e, Evas_Callback_Type type, Evas_Callback
397 if (!e->callbacks) return; 397 if (!e->callbacks) return;
398 EVAS_MEMPOOL_PREP(_mp_cb, e->callbacks, Evas_Callbacks); 398 EVAS_MEMPOOL_PREP(_mp_cb, e->callbacks, Evas_Callbacks);
399 } 399 }
400 400
401 EVAS_MEMPOOL_INIT(_mp_fn, "evas_func_node", Evas_Func_Node, 2048, ); 401 EVAS_MEMPOOL_INIT(_mp_fn, "evas_func_node", Evas_Func_Node, 2048, );
402 fn = EVAS_MEMPOOL_ALLOC(_mp_fn, Evas_Func_Node); 402 fn = EVAS_MEMPOOL_ALLOC(_mp_fn, Evas_Func_Node);
403 if (!fn) return; 403 if (!fn) return;
@@ -408,7 +408,7 @@ evas_event_callback_priority_add(Evas *e, Evas_Callback_Type type, Evas_Callback
408 fn->priority = priority; 408 fn->priority = priority;
409 409
410 e->callbacks->callbacks = eina_inlist_sorted_insert(e->callbacks->callbacks, 410 e->callbacks->callbacks = eina_inlist_sorted_insert(e->callbacks->callbacks,
411 EINA_INLIST_GET(fn), _callback_priority_cmp); 411 EINA_INLIST_GET(fn), _callback_priority_cmp);
412} 412}
413 413
414EAPI void * 414EAPI void *
@@ -427,17 +427,17 @@ evas_event_callback_del(Evas *e, Evas_Callback_Type type, Evas_Event_Cb func)
427 427
428 EINA_INLIST_FOREACH(e->callbacks->callbacks, fn) 428 EINA_INLIST_FOREACH(e->callbacks->callbacks, fn)
429 { 429 {
430 if ((fn->func == func) && (fn->type == type) && (!fn->delete_me)) 430 if ((fn->func == func) && (fn->type == type) && (!fn->delete_me))
431 { 431 {
432 void *data; 432 void *data;
433 433
434 data = fn->data; 434 data = fn->data;
435 fn->delete_me = 1; 435 fn->delete_me = 1;
436 e->callbacks->deletions_waiting = 1; 436 e->callbacks->deletions_waiting = 1;
437 if (!e->callbacks->walking_list) 437 if (!e->callbacks->walking_list)
438 evas_event_callback_clear(e); 438 evas_event_callback_clear(e);
439 return data; 439 return data;
440 } 440 }
441 } 441 }
442 return NULL; 442 return NULL;
443} 443}
@@ -458,17 +458,17 @@ evas_event_callback_del_full(Evas *e, Evas_Callback_Type type, Evas_Event_Cb fun
458 458
459 EINA_INLIST_FOREACH(e->callbacks->callbacks, fn) 459 EINA_INLIST_FOREACH(e->callbacks->callbacks, fn)
460 { 460 {
461 if ((fn->func == func) && (fn->type == type) && (fn->data == data) && (!fn->delete_me)) 461 if ((fn->func == func) && (fn->type == type) && (fn->data == data) && (!fn->delete_me))
462 { 462 {
463 void *tmp; 463 void *tmp;
464 464
465 tmp = fn->data; 465 tmp = fn->data;
466 fn->delete_me = 1; 466 fn->delete_me = 1;
467 e->callbacks->deletions_waiting = 1; 467 e->callbacks->deletions_waiting = 1;
468 if (!e->callbacks->walking_list) 468 if (!e->callbacks->walking_list)
469 evas_event_callback_clear(e); 469 evas_event_callback_clear(e);
470 return tmp; 470 return tmp;
471 } 471 }
472 } 472 }
473 return NULL; 473 return NULL;
474} 474}
@@ -477,17 +477,17 @@ EAPI void
477evas_post_event_callback_push(Evas *e, Evas_Object_Event_Post_Cb func, const void *data) 477evas_post_event_callback_push(Evas *e, Evas_Object_Event_Post_Cb func, const void *data)
478{ 478{
479 Evas_Post_Callback *pc; 479 Evas_Post_Callback *pc;
480 480
481 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 481 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
482 return; 482 return;
483 MAGIC_CHECK_END(); 483 MAGIC_CHECK_END();
484 484
485 EVAS_MEMPOOL_INIT(_mp_pc, "evas_post_callback", Evas_Post_Callback, 64, ); 485 EVAS_MEMPOOL_INIT(_mp_pc, "evas_post_callback", Evas_Post_Callback, 64, );
486 pc = EVAS_MEMPOOL_ALLOC(_mp_pc, Evas_Post_Callback); 486 pc = EVAS_MEMPOOL_ALLOC(_mp_pc, Evas_Post_Callback);
487 if (!pc) return; 487 if (!pc) return;
488 EVAS_MEMPOOL_PREP(_mp_pc, pc, Evas_Post_Callback); 488 EVAS_MEMPOOL_PREP(_mp_pc, pc, Evas_Post_Callback);
489 if (e->delete_me) return; 489 if (e->delete_me) return;
490 490
491 pc->func = func; 491 pc->func = func;
492 pc->data = data; 492 pc->data = data;
493 e->post_events = eina_list_prepend(e->post_events, pc); 493 e->post_events = eina_list_prepend(e->post_events, pc);
@@ -498,11 +498,11 @@ evas_post_event_callback_remove(Evas *e, Evas_Object_Event_Post_Cb func)
498{ 498{
499 Evas_Post_Callback *pc; 499 Evas_Post_Callback *pc;
500 Eina_List *l; 500 Eina_List *l;
501 501
502 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 502 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
503 return; 503 return;
504 MAGIC_CHECK_END(); 504 MAGIC_CHECK_END();
505 505
506 EINA_LIST_FOREACH(e->post_events, l, pc) 506 EINA_LIST_FOREACH(e->post_events, l, pc)
507 { 507 {
508 if (pc->func == func) 508 if (pc->func == func)
@@ -518,11 +518,11 @@ evas_post_event_callback_remove_full(Evas *e, Evas_Object_Event_Post_Cb func, co
518{ 518{
519 Evas_Post_Callback *pc; 519 Evas_Post_Callback *pc;
520 Eina_List *l; 520 Eina_List *l;
521 521
522 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 522 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
523 return; 523 return;
524 MAGIC_CHECK_END(); 524 MAGIC_CHECK_END();
525 525
526 EINA_LIST_FOREACH(e->post_events, l, pc) 526 EINA_LIST_FOREACH(e->post_events, l, pc)
527 { 527 {
528 if ((pc->func == func) && (pc->data == data)) 528 if ((pc->func == func) && (pc->data == data))
diff --git a/libraries/evas/src/lib/canvas/evas_events.c b/libraries/evas/src/lib/canvas/evas_events.c
index 99ecf8c..9b7077e 100644
--- a/libraries/evas/src/lib/canvas/evas_events.c
+++ b/libraries/evas/src/lib/canvas/evas_events.c
@@ -1,6 +1,11 @@
1#include "evas_common.h" 1#include "evas_common.h"
2#include "evas_private.h" 2#include "evas_private.h"
3 3
4static Eina_List *
5_evas_event_object_list_in_get(Evas *e, Eina_List *in,
6 const Eina_Inlist *list, Evas_Object *stop,
7 int x, int y, int *no_rep);
8
4static void 9static void
5_evas_event_havemap_adjust(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Eina_Bool mouse_grabbed) 10_evas_event_havemap_adjust(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Eina_Bool mouse_grabbed)
6{ 11{
@@ -16,13 +21,17 @@ _evas_event_havemap_adjust(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Eina_
16} 21}
17 22
18static Eina_List * 23static Eina_List *
19_evas_event_object_list_in_get(Evas *e, Eina_List *in, 24_evas_event_object_list_raw_in_get(Evas *e, Eina_List *in,
20 const Eina_Inlist *list, Evas_Object *stop, 25 const Eina_Inlist *list, Evas_Object *stop,
21 int x, int y, int *no_rep) 26 int x, int y, int *no_rep)
22{ 27{
23 Evas_Object *obj; 28 Evas_Object *obj;
29 int inside;
30
24 if (!list) return in; 31 if (!list) return in;
25 EINA_INLIST_REVERSE_FOREACH(list, obj) 32 for (obj = _EINA_INLIST_CONTAINER(obj, list);
33 obj;
34 obj = _EINA_INLIST_CONTAINER(obj, EINA_INLIST_GET(obj)->prev))
26 { 35 {
27 if (obj == stop) 36 if (obj == stop)
28 { 37 {
@@ -37,9 +46,9 @@ _evas_event_object_list_in_get(Evas *e, Eina_List *in,
37 if (obj->smart.smart) 46 if (obj->smart.smart)
38 { 47 {
39 int norep = 0; 48 int norep = 0;
40 int inside;
41 49
42 if (((obj->cur.usemap) && (obj->cur.map) && (obj->cur.map->count == 4))) 50 if ((obj->cur.usemap) && (obj->cur.map) &&
51 (obj->cur.map->count == 4))
43 { 52 {
44 inside = evas_object_is_in_output_rect(obj, x, y, 1, 1); 53 inside = evas_object_is_in_output_rect(obj, x, y, 1, 1);
45 if (inside) 54 if (inside)
@@ -57,7 +66,8 @@ _evas_event_object_list_in_get(Evas *e, Eina_List *in,
57 evas_object_smart_members_get_direct(obj), 66 evas_object_smart_members_get_direct(obj),
58 stop, 67 stop,
59 obj->cur.geometry.x + obj->cur.map->mx, 68 obj->cur.geometry.x + obj->cur.map->mx,
60 obj->cur.geometry.y + obj->cur.map->my, &norep); 69 obj->cur.geometry.y + obj->cur.map->my,
70 &norep);
61 } 71 }
62 } 72 }
63 } 73 }
@@ -69,19 +79,24 @@ _evas_event_object_list_in_get(Evas *e, Eina_List *in,
69 } 79 }
70 if (norep) 80 if (norep)
71 { 81 {
72 if (!obj->repeat_events) *no_rep = 1; 82 if (!obj->repeat_events)
73 return in; 83 {
84 *no_rep = 1;
85 return in;
86 }
74 } 87 }
75 } 88 }
76 else 89 else
77 { 90 {
78 int inside = evas_object_is_in_output_rect(obj, x, y, 1, 1); 91 inside = evas_object_is_in_output_rect(obj, x, y, 1, 1);
79 92
80 if (((obj->cur.usemap) && (obj->cur.map) && (obj->cur.map->count == 4))) 93 if ((obj->cur.usemap) && (obj->cur.map) &&
94 (obj->cur.map->count == 4))
81 { 95 {
82 if ((inside) && (!evas_map_coords_get(obj->cur.map, x, y, 96 if ((inside) &&
83 &(obj->cur.map->mx), 97 (!evas_map_coords_get(obj->cur.map, x, y,
84 &(obj->cur.map->my), 0))) 98 &(obj->cur.map->mx),
99 &(obj->cur.map->my), 0)))
85 { 100 {
86 inside = 0; 101 inside = 0;
87 } 102 }
@@ -105,6 +120,16 @@ _evas_event_object_list_in_get(Evas *e, Eina_List *in,
105 return in; 120 return in;
106} 121}
107 122
123static Eina_List *
124_evas_event_object_list_in_get(Evas *e, Eina_List *in,
125 const Eina_Inlist *list, Evas_Object *stop,
126 int x, int y, int *no_rep)
127{
128 if (!list) return NULL;
129 return _evas_event_object_list_raw_in_get(e, in, list->last, stop,
130 x, y, no_rep);
131}
132
108Eina_List * 133Eina_List *
109evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y) 134evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y)
110{ 135{
@@ -136,6 +161,24 @@ evas_event_list_copy(Eina_List *list)
136/* public functions */ 161/* public functions */
137 162
138EAPI void 163EAPI void
164evas_event_default_flags_set(Evas *e, Evas_Event_Flags flags)
165{
166 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
167 return;
168 MAGIC_CHECK_END();
169 e->default_event_flags = flags;
170}
171
172EAPI Evas_Event_Flags
173evas_event_default_flags_get(const Evas *e)
174{
175 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
176 return EVAS_EVENT_FLAG_ON_HOLD;
177 MAGIC_CHECK_END();
178 return e->default_event_flags;
179}
180
181EAPI void
139evas_event_freeze(Evas *e) 182evas_event_freeze(Evas *e)
140{ 183{
141 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 184 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
@@ -197,6 +240,8 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
197 Eina_List *l, *copy; 240 Eina_List *l, *copy;
198 Evas_Event_Mouse_Down ev; 241 Evas_Event_Mouse_Down ev;
199 Evas_Object *obj; 242 Evas_Object *obj;
243 int addgrab = 0;
244 int event_id = 0;
200 245
201 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 246 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
202 return; 247 return;
@@ -205,12 +250,14 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
205 if ((b < 1) || (b > 32)) return; 250 if ((b < 1) || (b > 32)) return;
206 251
207 e->pointer.button |= (1 << (b - 1)); 252 e->pointer.button |= (1 << (b - 1));
253 e->pointer.downs++;
208 254
209 if (e->events_frozen > 0) return; 255 if (e->events_frozen > 0) return;
210 e->last_timestamp = timestamp; 256 e->last_timestamp = timestamp;
211 257
212 _evas_object_event_new(); 258 _evas_object_event_new();
213 259
260 event_id = _evas_event_counter;
214 ev.button = b; 261 ev.button = b;
215 ev.output.x = e->pointer.x; 262 ev.output.x = e->pointer.x;
216 ev.output.y = e->pointer.y; 263 ev.output.y = e->pointer.y;
@@ -221,7 +268,7 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
221 ev.locks = &(e->locks); 268 ev.locks = &(e->locks);
222 ev.flags = flags; 269 ev.flags = flags;
223 ev.timestamp = timestamp; 270 ev.timestamp = timestamp;
224 ev.event_flags = EVAS_EVENT_FLAG_NONE; 271 ev.event_flags = e->default_event_flags;
225 272
226 _evas_walk(e); 273 _evas_walk(e);
227 /* append new touch point to the touch point list */ 274 /* append new touch point to the touch point list */
@@ -238,14 +285,23 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
238 e->pointer.object.in = eina_list_free(e->pointer.object.in); 285 e->pointer.object.in = eina_list_free(e->pointer.object.in);
239 /* and set up the new one */ 286 /* and set up the new one */
240 e->pointer.object.in = ins; 287 e->pointer.object.in = ins;
288 /* adjust grabbed count by the nuymber of currently held down
289 * fingers/buttons */
290 if (e->pointer.downs > 1) addgrab = e->pointer.downs - 1;
241 } 291 }
242 copy = evas_event_list_copy(e->pointer.object.in); 292 copy = evas_event_list_copy(e->pointer.object.in);
243 EINA_LIST_FOREACH(copy, l, obj) 293 EINA_LIST_FOREACH(copy, l, obj)
244 { 294 {
245 if (obj->pointer_mode != EVAS_OBJECT_POINTER_MODE_NOGRAB) 295 if ((obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_AUTOGRAB) ||
296 (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN))
246 { 297 {
247 obj->mouse_grabbed++; 298 obj->mouse_grabbed += addgrab + 1;
248 e->pointer.mouse_grabbed++; 299 e->pointer.mouse_grabbed += addgrab + 1;
300 if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN)
301 {
302 e->pointer.nogrep++;
303 break;
304 }
249 } 305 }
250 } 306 }
251 EINA_LIST_FOREACH(copy, l, obj) 307 EINA_LIST_FOREACH(copy, l, obj)
@@ -256,8 +312,10 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
256 _evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed); 312 _evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed);
257 313
258 if (e->events_frozen <= 0) 314 if (e->events_frozen <= 0)
259 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_DOWN, &ev); 315 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_DOWN, &ev, event_id);
260 if (e->delete_me) break; 316 if (e->delete_me) break;
317 if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN)
318 break;
261 } 319 }
262 if (copy) eina_list_free(copy); 320 if (copy) eina_list_free(copy);
263 e->last_mouse_down_counter++; 321 e->last_mouse_down_counter++;
@@ -274,9 +332,11 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
274 Evas_Event_Mouse_Out ev; 332 Evas_Event_Mouse_Out ev;
275 Evas_Object *obj; 333 Evas_Object *obj;
276 int post_called = 0; 334 int post_called = 0;
335 int event_id = 0;
277 336
278 _evas_object_event_new(); 337 _evas_object_event_new();
279 338
339 event_id = _evas_event_counter;
280 ev.buttons = e->pointer.button; 340 ev.buttons = e->pointer.button;
281 ev.output.x = e->pointer.x; 341 ev.output.x = e->pointer.x;
282 ev.output.y = e->pointer.y; 342 ev.output.y = e->pointer.y;
@@ -286,7 +346,7 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
286 ev.modifiers = &(e->modifiers); 346 ev.modifiers = &(e->modifiers);
287 ev.locks = &(e->locks); 347 ev.locks = &(e->locks);
288 ev.timestamp = timestamp; 348 ev.timestamp = timestamp;
289 ev.event_flags = EVAS_EVENT_FLAG_NONE; 349 ev.event_flags = e->default_event_flags;
290 350
291 /* get new list of ins */ 351 /* get new list of ins */
292 ins = evas_event_objects_event_list(e, NULL, e->pointer.x, e->pointer.y); 352 ins = evas_event_objects_event_list(e, NULL, e->pointer.x, e->pointer.y);
@@ -304,7 +364,7 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
304 { 364 {
305 obj->mouse_in = 0; 365 obj->mouse_in = 0;
306 if (e->events_frozen <= 0) 366 if (e->events_frozen <= 0)
307 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); 367 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev, event_id);
308 } 368 }
309 } 369 }
310 if (e->delete_me) break; 370 if (e->delete_me) break;
@@ -319,6 +379,7 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
319 379
320 _evas_object_event_new(); 380 _evas_object_event_new();
321 381
382 event_id = _evas_event_counter;
322 ev_in.buttons = e->pointer.button; 383 ev_in.buttons = e->pointer.button;
323 ev_in.output.x = e->pointer.x; 384 ev_in.output.x = e->pointer.x;
324 ev_in.output.y = e->pointer.y; 385 ev_in.output.y = e->pointer.y;
@@ -328,7 +389,7 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
328 ev_in.modifiers = &(e->modifiers); 389 ev_in.modifiers = &(e->modifiers);
329 ev_in.locks = &(e->locks); 390 ev_in.locks = &(e->locks);
330 ev_in.timestamp = timestamp; 391 ev_in.timestamp = timestamp;
331 ev_in.event_flags = EVAS_EVENT_FLAG_NONE; 392 ev_in.event_flags = e->default_event_flags;
332 393
333 EINA_LIST_FOREACH(ins, l, obj_itr) 394 EINA_LIST_FOREACH(ins, l, obj_itr)
334 { 395 {
@@ -341,7 +402,7 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
341 { 402 {
342 obj_itr->mouse_in = 1; 403 obj_itr->mouse_in = 1;
343 if (e->events_frozen <= 0) 404 if (e->events_frozen <= 0)
344 evas_object_event_callback_call(obj_itr, EVAS_CALLBACK_MOUSE_IN, &ev_in); 405 evas_object_event_callback_call(obj_itr, EVAS_CALLBACK_MOUSE_IN, &ev_in, event_id);
345 } 406 }
346 } 407 }
347 if (e->delete_me) break; 408 if (e->delete_me) break;
@@ -383,6 +444,7 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
383 if ((b < 1) || (b > 32)) return; 444 if ((b < 1) || (b > 32)) return;
384 445
385 e->pointer.button &= ~(1 << (b - 1)); 446 e->pointer.button &= ~(1 << (b - 1));
447 e->pointer.downs--;
386 448
387 if (e->events_frozen > 0) return; 449 if (e->events_frozen > 0) return;
388 e->last_timestamp = timestamp; 450 e->last_timestamp = timestamp;
@@ -390,9 +452,11 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
390 { 452 {
391 Evas_Event_Mouse_Up ev; 453 Evas_Event_Mouse_Up ev;
392 Evas_Object *obj; 454 Evas_Object *obj;
455 int event_id = 0;
393 456
394 _evas_object_event_new(); 457 _evas_object_event_new();
395 458
459 event_id = _evas_event_counter;
396 ev.button = b; 460 ev.button = b;
397 ev.output.x = e->pointer.x; 461 ev.output.x = e->pointer.x;
398 ev.output.y = e->pointer.y; 462 ev.output.y = e->pointer.y;
@@ -403,7 +467,7 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
403 ev.locks = &(e->locks); 467 ev.locks = &(e->locks);
404 ev.flags = flags; 468 ev.flags = flags;
405 ev.timestamp = timestamp; 469 ev.timestamp = timestamp;
406 ev.event_flags = EVAS_EVENT_FLAG_NONE; 470 ev.event_flags = e->default_event_flags;
407 471
408 _evas_walk(e); 472 _evas_walk(e);
409 /* update released touch point */ 473 /* update released touch point */
@@ -414,7 +478,7 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
414 ev.canvas.x = e->pointer.x; 478 ev.canvas.x = e->pointer.x;
415 ev.canvas.y = e->pointer.y; 479 ev.canvas.y = e->pointer.y;
416 _evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed); 480 _evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed);
417 if ((obj->pointer_mode != EVAS_OBJECT_POINTER_MODE_NOGRAB) && 481 if ((obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_AUTOGRAB) &&
418 (obj->mouse_grabbed > 0)) 482 (obj->mouse_grabbed > 0))
419 { 483 {
420 obj->mouse_grabbed--; 484 obj->mouse_grabbed--;
@@ -423,9 +487,14 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
423 if (!obj->delete_me) 487 if (!obj->delete_me)
424 { 488 {
425 if (e->events_frozen <= 0) 489 if (e->events_frozen <= 0)
426 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_UP, &ev); 490 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_UP, &ev, event_id);
427 } 491 }
428 if (e->delete_me) break; 492 if (e->delete_me) break;
493 if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN)
494 {
495 if (e->pointer.nogrep > 0) e->pointer.nogrep--;
496 break;
497 }
429 } 498 }
430 if (copy) copy = eina_list_free(copy); 499 if (copy) copy = eina_list_free(copy);
431 e->last_mouse_up_counter++; 500 e->last_mouse_up_counter++;
@@ -442,9 +511,9 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
442 ERR("BUG? e->pointer.mouse_grabbed (=%d) < 0!", 511 ERR("BUG? e->pointer.mouse_grabbed (=%d) < 0!",
443 e->pointer.mouse_grabbed); 512 e->pointer.mouse_grabbed);
444 } 513 }
445 /* remove released touch point from the touch point list */ 514 /* remove released touch point from the touch point list */
446 _evas_touch_point_remove(e, 0); 515 _evas_touch_point_remove(e, 0);
447 516
448 _evas_unwalk(e); 517 _evas_unwalk(e);
449} 518}
450 519
@@ -465,6 +534,7 @@ evas_event_feed_mouse_cancel(Evas *e, unsigned int timestamp, const void *data)
465 if ((e->pointer.button & (1 << i))) 534 if ((e->pointer.button & (1 << i)))
466 evas_event_feed_mouse_up(e, i + 1, 0, timestamp, data); 535 evas_event_feed_mouse_up(e, i + 1, 0, timestamp, data);
467 } 536 }
537 // FIXME: multi cancel too?
468 _evas_unwalk(e); 538 _evas_unwalk(e);
469} 539}
470 540
@@ -474,6 +544,7 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
474 Eina_List *l, *copy; 544 Eina_List *l, *copy;
475 Evas_Event_Mouse_Wheel ev; 545 Evas_Event_Mouse_Wheel ev;
476 Evas_Object *obj; 546 Evas_Object *obj;
547 int event_id = 0;
477 548
478 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 549 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
479 return; 550 return;
@@ -484,6 +555,7 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
484 555
485 _evas_object_event_new(); 556 _evas_object_event_new();
486 557
558 event_id = _evas_event_counter;
487 ev.direction = direction; 559 ev.direction = direction;
488 ev.z = z; 560 ev.z = z;
489 ev.output.x = e->pointer.x; 561 ev.output.x = e->pointer.x;
@@ -494,7 +566,7 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
494 ev.modifiers = &(e->modifiers); 566 ev.modifiers = &(e->modifiers);
495 ev.locks = &(e->locks); 567 ev.locks = &(e->locks);
496 ev.timestamp = timestamp; 568 ev.timestamp = timestamp;
497 ev.event_flags = EVAS_EVENT_FLAG_NONE; 569 ev.event_flags = e->default_event_flags;
498 570
499 _evas_walk(e); 571 _evas_walk(e);
500 copy = evas_event_list_copy(e->pointer.object.in); 572 copy = evas_event_list_copy(e->pointer.object.in);
@@ -505,7 +577,7 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
505 ev.canvas.y = e->pointer.y; 577 ev.canvas.y = e->pointer.y;
506 _evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed); 578 _evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed);
507 if ((e->events_frozen <= 0) && !evas_event_freezes_through(obj)) 579 if ((e->events_frozen <= 0) && !evas_event_freezes_through(obj))
508 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_WHEEL, &ev); 580 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_WHEEL, &ev, event_id);
509 if (e->delete_me) break; 581 if (e->delete_me) break;
510 } 582 }
511 if (copy) copy = eina_list_free(copy); 583 if (copy) copy = eina_list_free(copy);
@@ -517,6 +589,7 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
517EAPI void 589EAPI void
518evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const void *data) 590evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const void *data)
519{ 591{
592 Evas_Object *nogrep_obj = NULL;
520 int px, py; 593 int px, py;
521//// Evas_Coord pcx, pcy; 594//// Evas_Coord pcx, pcy;
522 595
@@ -553,9 +626,11 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
553 { 626 {
554 Evas_Event_Mouse_Move ev; 627 Evas_Event_Mouse_Move ev;
555 Evas_Object *obj; 628 Evas_Object *obj;
629 int event_id = 0;
556 630
557 _evas_object_event_new(); 631 _evas_object_event_new();
558 632
633 event_id = _evas_event_counter;
559 ev.buttons = e->pointer.button; 634 ev.buttons = e->pointer.button;
560 ev.cur.output.x = e->pointer.x; 635 ev.cur.output.x = e->pointer.x;
561 ev.cur.output.y = e->pointer.y; 636 ev.cur.output.y = e->pointer.y;
@@ -569,7 +644,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
569 ev.modifiers = &(e->modifiers); 644 ev.modifiers = &(e->modifiers);
570 ev.locks = &(e->locks); 645 ev.locks = &(e->locks);
571 ev.timestamp = timestamp; 646 ev.timestamp = timestamp;
572 ev.event_flags = EVAS_EVENT_FLAG_NONE; 647 ev.event_flags = e->default_event_flags;
573 copy = evas_event_list_copy(e->pointer.object.in); 648 copy = evas_event_list_copy(e->pointer.object.in);
574 EINA_LIST_FOREACH(copy, l, obj) 649 EINA_LIST_FOREACH(copy, l, obj)
575 { 650 {
@@ -586,19 +661,28 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
586 (!obj->clip.clipees)) 661 (!obj->clip.clipees))
587 { 662 {
588 if ((px != x) || (py != y)) 663 if ((px != x) || (py != y))
589 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev); 664 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev, event_id);
590 } 665 }
591 else 666 else
592 outs = eina_list_append(outs, obj); 667 outs = eina_list_append(outs, obj);
668 if ((obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN) &&
669 (e->pointer.nogrep > 0))
670 {
671 eina_list_free(copy);
672 nogrep_obj = obj;
673 goto nogrep;
674 }
593 if (e->delete_me) break; 675 if (e->delete_me) break;
594 } 676 }
595 _evas_post_event_callback_call(e); 677 _evas_post_event_callback_call(e);
596 } 678 }
597 { 679 {
598 Evas_Event_Mouse_Out ev; 680 Evas_Event_Mouse_Out ev;
681 int event_id = 0;
599 682
600 _evas_object_event_new(); 683 _evas_object_event_new();
601 684
685 event_id = _evas_event_counter;
602 ev.buttons = e->pointer.button; 686 ev.buttons = e->pointer.button;
603 ev.output.x = e->pointer.x; 687 ev.output.x = e->pointer.x;
604 ev.output.y = e->pointer.y; 688 ev.output.y = e->pointer.y;
@@ -608,7 +692,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
608 ev.modifiers = &(e->modifiers); 692 ev.modifiers = &(e->modifiers);
609 ev.locks = &(e->locks); 693 ev.locks = &(e->locks);
610 ev.timestamp = timestamp; 694 ev.timestamp = timestamp;
611 ev.event_flags = EVAS_EVENT_FLAG_NONE; 695 ev.event_flags = e->default_event_flags;
612 696
613 if (copy) eina_list_free(copy); 697 if (copy) eina_list_free(copy);
614 while (outs) 698 while (outs)
@@ -629,7 +713,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
629 if (!obj->delete_me) 713 if (!obj->delete_me)
630 { 714 {
631 if (e->events_frozen <= 0) 715 if (e->events_frozen <= 0)
632 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); 716 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev, event_id);
633 } 717 }
634 } 718 }
635 } 719 }
@@ -645,9 +729,11 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
645 Evas_Event_Mouse_Out ev2; 729 Evas_Event_Mouse_Out ev2;
646 Evas_Event_Mouse_In ev3; 730 Evas_Event_Mouse_In ev3;
647 Evas_Object *obj; 731 Evas_Object *obj;
732 int event_id = 0, event_id2 = 0;
648 733
649 _evas_object_event_new(); 734 _evas_object_event_new();
650 735
736 event_id = _evas_event_counter;
651 ev.buttons = e->pointer.button; 737 ev.buttons = e->pointer.button;
652 ev.cur.output.x = e->pointer.x; 738 ev.cur.output.x = e->pointer.x;
653 ev.cur.output.y = e->pointer.y; 739 ev.cur.output.y = e->pointer.y;
@@ -661,7 +747,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
661 ev.modifiers = &(e->modifiers); 747 ev.modifiers = &(e->modifiers);
662 ev.locks = &(e->locks); 748 ev.locks = &(e->locks);
663 ev.timestamp = timestamp; 749 ev.timestamp = timestamp;
664 ev.event_flags = EVAS_EVENT_FLAG_NONE; 750 ev.event_flags = e->default_event_flags;
665 751
666 ev2.buttons = e->pointer.button; 752 ev2.buttons = e->pointer.button;
667 ev2.output.x = e->pointer.x; 753 ev2.output.x = e->pointer.x;
@@ -672,7 +758,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
672 ev2.modifiers = &(e->modifiers); 758 ev2.modifiers = &(e->modifiers);
673 ev2.locks = &(e->locks); 759 ev2.locks = &(e->locks);
674 ev2.timestamp = timestamp; 760 ev2.timestamp = timestamp;
675 ev2.event_flags = EVAS_EVENT_FLAG_NONE; 761 ev2.event_flags = e->default_event_flags;
676 762
677 ev3.buttons = e->pointer.button; 763 ev3.buttons = e->pointer.button;
678 ev3.output.x = e->pointer.x; 764 ev3.output.x = e->pointer.x;
@@ -683,7 +769,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
683 ev3.modifiers = &(e->modifiers); 769 ev3.modifiers = &(e->modifiers);
684 ev3.locks = &(e->locks); 770 ev3.locks = &(e->locks);
685 ev3.timestamp = timestamp; 771 ev3.timestamp = timestamp;
686 ev3.event_flags = EVAS_EVENT_FLAG_NONE; 772 ev3.event_flags = e->default_event_flags;
687 773
688 /* get all new in objects */ 774 /* get all new in objects */
689 ins = evas_event_objects_event_list(e, NULL, x, y); 775 ins = evas_event_objects_event_list(e, NULL, x, y);
@@ -711,7 +797,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
711 ev.cur.canvas.x = e->pointer.x; 797 ev.cur.canvas.x = e->pointer.x;
712 ev.cur.canvas.y = e->pointer.y; 798 ev.cur.canvas.y = e->pointer.y;
713 _evas_event_havemap_adjust(obj, &ev.cur.canvas.x, &ev.cur.canvas.y, obj->mouse_grabbed); 799 _evas_event_havemap_adjust(obj, &ev.cur.canvas.x, &ev.cur.canvas.y, obj->mouse_grabbed);
714 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev); 800 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev, event_id);
715 } 801 }
716 } 802 }
717 /* otherwise it has left the object */ 803 /* otherwise it has left the object */
@@ -724,7 +810,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
724 ev2.canvas.y = e->pointer.y; 810 ev2.canvas.y = e->pointer.y;
725 _evas_event_havemap_adjust(obj, &ev2.canvas.x, &ev2.canvas.y, obj->mouse_grabbed); 811 _evas_event_havemap_adjust(obj, &ev2.canvas.x, &ev2.canvas.y, obj->mouse_grabbed);
726 if (e->events_frozen <= 0) 812 if (e->events_frozen <= 0)
727 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev2); 813 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev2, event_id);
728 } 814 }
729 } 815 }
730 if (e->delete_me) break; 816 if (e->delete_me) break;
@@ -733,6 +819,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
733 819
734 _evas_object_event_new(); 820 _evas_object_event_new();
735 821
822 event_id2 = _evas_event_counter;
736 if (copy) copy = eina_list_free(copy); 823 if (copy) copy = eina_list_free(copy);
737 /* go thru our current list of ins */ 824 /* go thru our current list of ins */
738 EINA_LIST_FOREACH(ins, l, obj) 825 EINA_LIST_FOREACH(ins, l, obj)
@@ -747,7 +834,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
747 { 834 {
748 obj->mouse_in = 1; 835 obj->mouse_in = 1;
749 if (e->events_frozen <= 0) 836 if (e->events_frozen <= 0)
750 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev3); 837 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev3, event_id2);
751 } 838 }
752 } 839 }
753 if (e->delete_me) break; 840 if (e->delete_me) break;
@@ -766,6 +853,160 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
766 } 853 }
767 _evas_post_event_callback_call(e); 854 _evas_post_event_callback_call(e);
768 } 855 }
856 _evas_unwalk(e);
857 return;
858nogrep:
859 {
860 Eina_List *ins = NULL;
861 Eina_List *newin = NULL;
862 Eina_List *l, *copy, *lst = NULL;
863 Evas_Event_Mouse_Move ev;
864 Evas_Event_Mouse_Out ev2;
865 Evas_Event_Mouse_In ev3;
866 Evas_Object *obj, *below_obj;
867 int event_id = 0, event_id2 = 0;
868 int norep = 0, breaknext = 0;
869
870 _evas_object_event_new();
871
872 event_id = _evas_event_counter;
873 ev.buttons = e->pointer.button;
874 ev.cur.output.x = e->pointer.x;
875 ev.cur.output.y = e->pointer.y;
876 ev.cur.canvas.x = e->pointer.x;
877 ev.cur.canvas.y = e->pointer.y;
878 ev.prev.output.x = px;
879 ev.prev.output.y = py;
880 ev.prev.canvas.x = px;
881 ev.prev.canvas.y = py;
882 ev.data = (void *)data;
883 ev.modifiers = &(e->modifiers);
884 ev.locks = &(e->locks);
885 ev.timestamp = timestamp;
886 ev.event_flags = e->default_event_flags;
887
888 ev2.buttons = e->pointer.button;
889 ev2.output.x = e->pointer.x;
890 ev2.output.y = e->pointer.y;
891 ev2.canvas.x = e->pointer.x;
892 ev2.canvas.y = e->pointer.y;
893 ev2.data = (void *)data;
894 ev2.modifiers = &(e->modifiers);
895 ev2.locks = &(e->locks);
896 ev2.timestamp = timestamp;
897 ev2.event_flags = e->default_event_flags;
898
899 ev3.buttons = e->pointer.button;
900 ev3.output.x = e->pointer.x;
901 ev3.output.y = e->pointer.y;
902 ev3.canvas.x = e->pointer.x;
903 ev3.canvas.y = e->pointer.y;
904 ev3.data = (void *)data;
905 ev3.modifiers = &(e->modifiers);
906 ev3.locks = &(e->locks);
907 ev3.timestamp = timestamp;
908 ev3.event_flags = e->default_event_flags;
909
910 /* go thru old list of in objects */
911 copy = evas_event_list_copy(e->pointer.object.in);
912 EINA_LIST_FOREACH(copy, l, obj)
913 {
914 if (breaknext)
915 {
916 lst = l;
917 break;
918 }
919 if (obj == nogrep_obj) breaknext = 1;
920 }
921
922 /* get all new in objects */
923 below_obj = evas_object_below_get(nogrep_obj);
924 if (below_obj)
925 ins = _evas_event_object_list_raw_in_get(e, NULL,
926 EINA_INLIST_GET(below_obj), NULL,
927 e->pointer.x, e->pointer.y,
928 &norep);
929 EINA_LIST_FOREACH(copy, l, obj)
930 {
931 newin = eina_list_append(newin, obj);
932 if (obj == nogrep_obj) break;
933 }
934 EINA_LIST_FOREACH(ins, l, obj)
935 {
936 newin = eina_list_append(newin, obj);
937 }
938
939 EINA_LIST_FOREACH(lst, l, obj)
940 {
941 /* if its under the pointer and its visible and its in the new */
942 /* in list */
943 // FIXME: i don't think we need this
944 // evas_object_clip_recalc(obj);
945 if ((e->events_frozen <= 0) &&
946 evas_object_is_in_output_rect(obj, x, y, 1, 1) &&
947 (evas_object_clippers_is_visible(obj) ||
948 obj->mouse_grabbed) &&
949 eina_list_data_find(newin, obj) &&
950 (!evas_event_passes_through(obj)) &&
951 (!evas_event_freezes_through(obj)) &&
952 (!obj->clip.clipees) &&
953 ((!obj->precise_is_inside) || evas_object_is_inside(obj, x, y))
954 )
955 {
956 if ((px != x) || (py != y))
957 {
958 ev.cur.canvas.x = e->pointer.x;
959 ev.cur.canvas.y = e->pointer.y;
960 _evas_event_havemap_adjust(obj, &ev.cur.canvas.x, &ev.cur.canvas.y, obj->mouse_grabbed);
961 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev, event_id);
962 }
963 }
964 /* otherwise it has left the object */
965 else
966 {
967 if (obj->mouse_in)
968 {
969 obj->mouse_in = 0;
970 ev2.canvas.x = e->pointer.x;
971 ev2.canvas.y = e->pointer.y;
972 _evas_event_havemap_adjust(obj, &ev2.canvas.x, &ev2.canvas.y, obj->mouse_grabbed);
973 if (e->events_frozen <= 0)
974 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev2, event_id);
975 }
976 }
977 if (e->delete_me) break;
978 }
979 _evas_post_event_callback_call(e);
980
981 _evas_object_event_new();
982
983 event_id2 = _evas_event_counter;
984 if (copy) copy = eina_list_free(copy);
985 /* go thru our current list of ins */
986 EINA_LIST_FOREACH(newin, l, obj)
987 {
988 ev3.canvas.x = e->pointer.x;
989 ev3.canvas.y = e->pointer.y;
990 _evas_event_havemap_adjust(obj, &ev3.canvas.x, &ev3.canvas.y, obj->mouse_grabbed);
991 /* if its not in the old list of ins send an enter event */
992 if (!eina_list_data_find(e->pointer.object.in, obj))
993 {
994 if (!obj->mouse_in)
995 {
996 obj->mouse_in = 1;
997 if (e->events_frozen <= 0)
998 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev3, event_id2);
999 }
1000 }
1001 if (e->delete_me) break;
1002 }
1003 /* free our old list of ins */
1004 eina_list_free(e->pointer.object.in);
1005 /* and set up the new one */
1006 e->pointer.object.in = newin;
1007
1008 _evas_post_event_callback_call(e);
1009 }
769 _evas_unwalk(e); 1010 _evas_unwalk(e);
770} 1011}
771 1012
@@ -776,6 +1017,7 @@ evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const void *data)
776 Eina_List *l; 1017 Eina_List *l;
777 Evas_Event_Mouse_In ev; 1018 Evas_Event_Mouse_In ev;
778 Evas_Object *obj; 1019 Evas_Object *obj;
1020 int event_id = 0;
779 1021
780 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1022 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
781 return; 1023 return;
@@ -789,6 +1031,7 @@ evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const void *data)
789 1031
790 _evas_object_event_new(); 1032 _evas_object_event_new();
791 1033
1034 event_id = _evas_event_counter;
792 ev.buttons = e->pointer.button; 1035 ev.buttons = e->pointer.button;
793 ev.output.x = e->pointer.x; 1036 ev.output.x = e->pointer.x;
794 ev.output.y = e->pointer.y; 1037 ev.output.y = e->pointer.y;
@@ -798,7 +1041,7 @@ evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const void *data)
798 ev.modifiers = &(e->modifiers); 1041 ev.modifiers = &(e->modifiers);
799 ev.locks = &(e->locks); 1042 ev.locks = &(e->locks);
800 ev.timestamp = timestamp; 1043 ev.timestamp = timestamp;
801 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1044 ev.event_flags = e->default_event_flags;
802 1045
803 _evas_walk(e); 1046 _evas_walk(e);
804 /* get new list of ins */ 1047 /* get new list of ins */
@@ -814,7 +1057,7 @@ evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const void *data)
814 { 1057 {
815 obj->mouse_in = 1; 1058 obj->mouse_in = 1;
816 if (e->events_frozen <= 0) 1059 if (e->events_frozen <= 0)
817 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev); 1060 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev, event_id);
818 } 1061 }
819 } 1062 }
820 if (e->delete_me) break; 1063 if (e->delete_me) break;
@@ -832,6 +1075,7 @@ EAPI void
832evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data) 1075evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data)
833{ 1076{
834 Evas_Event_Mouse_Out ev; 1077 Evas_Event_Mouse_Out ev;
1078 int event_id = 0;
835 1079
836 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1080 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
837 return; 1081 return;
@@ -843,6 +1087,7 @@ evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data)
843 1087
844 _evas_object_event_new(); 1088 _evas_object_event_new();
845 1089
1090 event_id = _evas_event_counter;
846 ev.buttons = e->pointer.button; 1091 ev.buttons = e->pointer.button;
847 ev.output.x = e->pointer.x; 1092 ev.output.x = e->pointer.x;
848 ev.output.y = e->pointer.y; 1093 ev.output.y = e->pointer.y;
@@ -852,11 +1097,10 @@ evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data)
852 ev.modifiers = &(e->modifiers); 1097 ev.modifiers = &(e->modifiers);
853 ev.locks = &(e->locks); 1098 ev.locks = &(e->locks);
854 ev.timestamp = timestamp; 1099 ev.timestamp = timestamp;
855 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1100 ev.event_flags = e->default_event_flags;
856 1101
857 _evas_walk(e); 1102 _evas_walk(e);
858 /* if our mouse button is grabbed to any objects */ 1103 /* if our mouse button is inside any objects */
859 if (e->pointer.mouse_grabbed == 0)
860 { 1104 {
861 /* go thru old list of in objects */ 1105 /* go thru old list of in objects */
862 Eina_List *l, *copy; 1106 Eina_List *l, *copy;
@@ -874,14 +1118,16 @@ evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data)
874 if (!obj->delete_me) 1118 if (!obj->delete_me)
875 { 1119 {
876 if (e->events_frozen <= 0) 1120 if (e->events_frozen <= 0)
877 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); 1121 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev, event_id);
878 } 1122 }
1123 obj->mouse_grabbed = 0;
879 } 1124 }
880 if (e->delete_me) break; 1125 if (e->delete_me) break;
881 } 1126 }
882 if (copy) copy = eina_list_free(copy); 1127 if (copy) copy = eina_list_free(copy);
883 /* free our old list of ins */ 1128 /* free our old list of ins */
884 e->pointer.object.in = eina_list_free(e->pointer.object.in); 1129 e->pointer.object.in = eina_list_free(e->pointer.object.in);
1130 e->pointer.mouse_grabbed = 0;
885 _evas_post_event_callback_call(e); 1131 _evas_post_event_callback_call(e);
886 } 1132 }
887 _evas_unwalk(e); 1133 _evas_unwalk(e);
@@ -899,16 +1145,20 @@ evas_event_feed_multi_down(Evas *e,
899 Eina_List *l, *copy; 1145 Eina_List *l, *copy;
900 Evas_Event_Multi_Down ev; 1146 Evas_Event_Multi_Down ev;
901 Evas_Object *obj; 1147 Evas_Object *obj;
1148 int addgrab = 0;
1149 int event_id = 0;
902 1150
903 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1151 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
904 return; 1152 return;
905 MAGIC_CHECK_END(); 1153 MAGIC_CHECK_END();
906 1154
1155 e->pointer.downs++;
907 if (e->events_frozen > 0) return; 1156 if (e->events_frozen > 0) return;
908 e->last_timestamp = timestamp; 1157 e->last_timestamp = timestamp;
909 1158
910 _evas_object_event_new(); 1159 _evas_object_event_new();
911 1160
1161 event_id = _evas_event_counter;
912 ev.device = d; 1162 ev.device = d;
913 ev.output.x = x; 1163 ev.output.x = x;
914 ev.output.y = y; 1164 ev.output.y = y;
@@ -926,18 +1176,22 @@ evas_event_feed_multi_down(Evas *e,
926 ev.locks = &(e->locks); 1176 ev.locks = &(e->locks);
927 ev.flags = flags; 1177 ev.flags = flags;
928 ev.timestamp = timestamp; 1178 ev.timestamp = timestamp;
929 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1179 ev.event_flags = e->default_event_flags;
930 1180
931 _evas_walk(e); 1181 _evas_walk(e);
932 /* append new touch point to the touch point list */ 1182 /* append new touch point to the touch point list */
933 _evas_touch_point_append(e, d, x, y); 1183 _evas_touch_point_append(e, d, x, y);
1184 if (e->pointer.mouse_grabbed == 0)
1185 {
1186 if (e->pointer.downs > 1) addgrab = e->pointer.downs - 1;
1187 }
934 copy = evas_event_list_copy(e->pointer.object.in); 1188 copy = evas_event_list_copy(e->pointer.object.in);
935 EINA_LIST_FOREACH(copy, l, obj) 1189 EINA_LIST_FOREACH(copy, l, obj)
936 { 1190 {
937 if (obj->pointer_mode != EVAS_OBJECT_POINTER_MODE_NOGRAB) 1191 if (obj->pointer_mode != EVAS_OBJECT_POINTER_MODE_NOGRAB)
938 { 1192 {
939 obj->mouse_grabbed++; 1193 obj->mouse_grabbed += addgrab + 1;
940 e->pointer.mouse_grabbed++; 1194 e->pointer.mouse_grabbed += addgrab + 1;
941 } 1195 }
942 } 1196 }
943 EINA_LIST_FOREACH(copy, l, obj) 1197 EINA_LIST_FOREACH(copy, l, obj)
@@ -952,7 +1206,7 @@ evas_event_feed_multi_down(Evas *e,
952 if (y != ev.canvas.y) 1206 if (y != ev.canvas.y)
953 ev.canvas.ysub = ev.canvas.y; // fixme - lost precision 1207 ev.canvas.ysub = ev.canvas.y; // fixme - lost precision
954 if (e->events_frozen <= 0) 1208 if (e->events_frozen <= 0)
955 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_DOWN, &ev); 1209 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_DOWN, &ev, event_id);
956 if (e->delete_me) break; 1210 if (e->delete_me) break;
957 } 1211 }
958 if (copy) eina_list_free(copy); 1212 if (copy) eina_list_free(copy);
@@ -974,16 +1228,19 @@ evas_event_feed_multi_up(Evas *e,
974 Eina_List *l, *copy; 1228 Eina_List *l, *copy;
975 Evas_Event_Multi_Up ev; 1229 Evas_Event_Multi_Up ev;
976 Evas_Object *obj; 1230 Evas_Object *obj;
1231 int event_id = 0;
977 1232
978 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1233 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
979 return; 1234 return;
980 MAGIC_CHECK_END(); 1235 MAGIC_CHECK_END();
981 1236
1237 e->pointer.downs--;
982 if (e->events_frozen > 0) return; 1238 if (e->events_frozen > 0) return;
983 e->last_timestamp = timestamp; 1239 e->last_timestamp = timestamp;
984 1240
985 _evas_object_event_new(); 1241 _evas_object_event_new();
986 1242
1243 event_id = _evas_event_counter;
987 ev.device = d; 1244 ev.device = d;
988 ev.output.x = x; 1245 ev.output.x = x;
989 ev.output.y = y; 1246 ev.output.y = y;
@@ -1001,7 +1258,7 @@ evas_event_feed_multi_up(Evas *e,
1001 ev.locks = &(e->locks); 1258 ev.locks = &(e->locks);
1002 ev.flags = flags; 1259 ev.flags = flags;
1003 ev.timestamp = timestamp; 1260 ev.timestamp = timestamp;
1004 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1261 ev.event_flags = e->default_event_flags;
1005 1262
1006 _evas_walk(e); 1263 _evas_walk(e);
1007 /* update released touch point */ 1264 /* update released touch point */
@@ -1025,7 +1282,7 @@ evas_event_feed_multi_up(Evas *e,
1025 e->pointer.mouse_grabbed--; 1282 e->pointer.mouse_grabbed--;
1026 } 1283 }
1027 if (e->events_frozen <= 0) 1284 if (e->events_frozen <= 0)
1028 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_UP, &ev); 1285 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_UP, &ev, event_id);
1029 if (e->delete_me) break; 1286 if (e->delete_me) break;
1030 } 1287 }
1031 if (copy) copy = eina_list_free(copy); 1288 if (copy) copy = eina_list_free(copy);
@@ -1051,7 +1308,7 @@ evas_event_feed_multi_move(Evas *e,
1051 if (e->events_frozen > 0) return; 1308 if (e->events_frozen > 0) return;
1052 e->last_timestamp = timestamp; 1309 e->last_timestamp = timestamp;
1053 1310
1054 if (!e->pointer.inside) return; 1311 if ((!e->pointer.inside) && (e->pointer.mouse_grabbed == 0)) return;
1055 1312
1056 _evas_walk(e); 1313 _evas_walk(e);
1057 /* update moved touch point */ 1314 /* update moved touch point */
@@ -1063,9 +1320,11 @@ evas_event_feed_multi_move(Evas *e,
1063 Eina_List *l, *copy; 1320 Eina_List *l, *copy;
1064 Evas_Event_Multi_Move ev; 1321 Evas_Event_Multi_Move ev;
1065 Evas_Object *obj; 1322 Evas_Object *obj;
1323 int event_id = 0;
1066 1324
1067 _evas_object_event_new(); 1325 _evas_object_event_new();
1068 1326
1327 event_id = _evas_event_counter;
1069 ev.device = d; 1328 ev.device = d;
1070 ev.cur.output.x = x; 1329 ev.cur.output.x = x;
1071 ev.cur.output.y = y; 1330 ev.cur.output.y = y;
@@ -1082,7 +1341,7 @@ evas_event_feed_multi_move(Evas *e,
1082 ev.modifiers = &(e->modifiers); 1341 ev.modifiers = &(e->modifiers);
1083 ev.locks = &(e->locks); 1342 ev.locks = &(e->locks);
1084 ev.timestamp = timestamp; 1343 ev.timestamp = timestamp;
1085 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1344 ev.event_flags = e->default_event_flags;
1086 1345
1087 copy = evas_event_list_copy(e->pointer.object.in); 1346 copy = evas_event_list_copy(e->pointer.object.in);
1088 EINA_LIST_FOREACH(copy, l, obj) 1347 EINA_LIST_FOREACH(copy, l, obj)
@@ -1102,7 +1361,7 @@ evas_event_feed_multi_move(Evas *e,
1102 ev.cur.canvas.xsub = ev.cur.canvas.x; // fixme - lost precision 1361 ev.cur.canvas.xsub = ev.cur.canvas.x; // fixme - lost precision
1103 if (y != ev.cur.canvas.y) 1362 if (y != ev.cur.canvas.y)
1104 ev.cur.canvas.ysub = ev.cur.canvas.y; // fixme - lost precision 1363 ev.cur.canvas.ysub = ev.cur.canvas.y; // fixme - lost precision
1105 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_MOVE, &ev); 1364 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_MOVE, &ev, event_id);
1106 } 1365 }
1107 if (e->delete_me) break; 1366 if (e->delete_me) break;
1108 } 1367 }
@@ -1114,9 +1373,11 @@ evas_event_feed_multi_move(Evas *e,
1114 Eina_List *l, *copy; 1373 Eina_List *l, *copy;
1115 Evas_Event_Multi_Move ev; 1374 Evas_Event_Multi_Move ev;
1116 Evas_Object *obj; 1375 Evas_Object *obj;
1376 int event_id = 0;
1117 1377
1118 _evas_object_event_new(); 1378 _evas_object_event_new();
1119 1379
1380 event_id = _evas_event_counter;
1120 ev.device = d; 1381 ev.device = d;
1121 ev.cur.output.x = x; 1382 ev.cur.output.x = x;
1122 ev.cur.output.y = y; 1383 ev.cur.output.y = y;
@@ -1133,7 +1394,7 @@ evas_event_feed_multi_move(Evas *e,
1133 ev.modifiers = &(e->modifiers); 1394 ev.modifiers = &(e->modifiers);
1134 ev.locks = &(e->locks); 1395 ev.locks = &(e->locks);
1135 ev.timestamp = timestamp; 1396 ev.timestamp = timestamp;
1136 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1397 ev.event_flags = e->default_event_flags;
1137 1398
1138 /* get all new in objects */ 1399 /* get all new in objects */
1139 ins = evas_event_objects_event_list(e, NULL, x, y); 1400 ins = evas_event_objects_event_list(e, NULL, x, y);
@@ -1165,7 +1426,7 @@ evas_event_feed_multi_move(Evas *e,
1165 ev.cur.canvas.xsub = ev.cur.canvas.x; // fixme - lost precision 1426 ev.cur.canvas.xsub = ev.cur.canvas.x; // fixme - lost precision
1166 if (y != ev.cur.canvas.y) 1427 if (y != ev.cur.canvas.y)
1167 ev.cur.canvas.ysub = ev.cur.canvas.y; // fixme - lost precision 1428 ev.cur.canvas.ysub = ev.cur.canvas.y; // fixme - lost precision
1168 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_MOVE, &ev); 1429 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_MOVE, &ev, event_id);
1169 } 1430 }
1170 if (e->delete_me) break; 1431 if (e->delete_me) break;
1171 } 1432 }
@@ -1190,6 +1451,7 @@ evas_event_feed_multi_move(Evas *e,
1190EAPI void 1451EAPI void
1191evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const char *string, const char *compose, unsigned int timestamp, const void *data) 1452evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const char *string, const char *compose, unsigned int timestamp, const void *data)
1192{ 1453{
1454 int event_id = 0;
1193 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1455 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
1194 return; 1456 return;
1195 MAGIC_CHECK_END(); 1457 MAGIC_CHECK_END();
@@ -1204,6 +1466,7 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
1204 1466
1205 _evas_object_event_new(); 1467 _evas_object_event_new();
1206 1468
1469 event_id = _evas_event_counter;
1207 exclusive = EINA_FALSE; 1470 exclusive = EINA_FALSE;
1208 ev.keyname = (char *)keyname; 1471 ev.keyname = (char *)keyname;
1209 ev.data = (void *)data; 1472 ev.data = (void *)data;
@@ -1213,7 +1476,7 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
1213 ev.string = string; 1476 ev.string = string;
1214 ev.compose = compose; 1477 ev.compose = compose;
1215 ev.timestamp = timestamp; 1478 ev.timestamp = timestamp;
1216 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1479 ev.event_flags = e->default_event_flags;
1217 1480
1218 if (e->grabs) 1481 if (e->grabs)
1219 { 1482 {
@@ -1239,7 +1502,7 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
1239 !evas_event_freezes_through(g->object)) 1502 !evas_event_freezes_through(g->object))
1240 evas_object_event_callback_call(g->object, 1503 evas_object_event_callback_call(g->object,
1241 EVAS_CALLBACK_KEY_DOWN, 1504 EVAS_CALLBACK_KEY_DOWN,
1242 &ev); 1505 &ev, event_id);
1243 if (g->exclusive) exclusive = EINA_TRUE; 1506 if (g->exclusive) exclusive = EINA_TRUE;
1244 } 1507 }
1245 } 1508 }
@@ -1266,7 +1529,7 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
1266 { 1529 {
1267 if (e->events_frozen <= 0 && !evas_event_freezes_through(e->focused)) 1530 if (e->events_frozen <= 0 && !evas_event_freezes_through(e->focused))
1268 evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_DOWN, 1531 evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_DOWN,
1269 &ev); 1532 &ev, event_id);
1270 } 1533 }
1271 _evas_post_event_callback_call(e); 1534 _evas_post_event_callback_call(e);
1272 _evas_unwalk(e); 1535 _evas_unwalk(e);
@@ -1275,6 +1538,7 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
1275EAPI void 1538EAPI void
1276evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char *string, const char *compose, unsigned int timestamp, const void *data) 1539evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char *string, const char *compose, unsigned int timestamp, const void *data)
1277{ 1540{
1541 int event_id = 0;
1278 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1542 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
1279 return; 1543 return;
1280 MAGIC_CHECK_END(); 1544 MAGIC_CHECK_END();
@@ -1288,6 +1552,7 @@ evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char
1288 1552
1289 _evas_object_event_new(); 1553 _evas_object_event_new();
1290 1554
1555 event_id = _evas_event_counter;
1291 exclusive = EINA_FALSE; 1556 exclusive = EINA_FALSE;
1292 ev.keyname = (char *)keyname; 1557 ev.keyname = (char *)keyname;
1293 ev.data = (void *)data; 1558 ev.data = (void *)data;
@@ -1297,7 +1562,7 @@ evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char
1297 ev.string = string; 1562 ev.string = string;
1298 ev.compose = compose; 1563 ev.compose = compose;
1299 ev.timestamp = timestamp; 1564 ev.timestamp = timestamp;
1300 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1565 ev.event_flags = e->default_event_flags;
1301 1566
1302 if (e->grabs) 1567 if (e->grabs)
1303 { 1568 {
@@ -1322,7 +1587,7 @@ evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char
1322 if (e->events_frozen <= 0 && 1587 if (e->events_frozen <= 0 &&
1323 !evas_event_freezes_through(g->object)) 1588 !evas_event_freezes_through(g->object))
1324 evas_object_event_callback_call(g->object, 1589 evas_object_event_callback_call(g->object,
1325 EVAS_CALLBACK_KEY_UP, &ev); 1590 EVAS_CALLBACK_KEY_UP, &ev, event_id);
1326 if (g->exclusive) exclusive = EINA_TRUE; 1591 if (g->exclusive) exclusive = EINA_TRUE;
1327 } 1592 }
1328 if (e->delete_me) break; 1593 if (e->delete_me) break;
@@ -1349,7 +1614,7 @@ evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char
1349 { 1614 {
1350 if (e->events_frozen <= 0 && !evas_event_freezes_through(e->focused)) 1615 if (e->events_frozen <= 0 && !evas_event_freezes_through(e->focused))
1351 evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_UP, 1616 evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_UP,
1352 &ev); 1617 &ev, event_id);
1353 } 1618 }
1354 _evas_post_event_callback_call(e); 1619 _evas_post_event_callback_call(e);
1355 _evas_unwalk(e); 1620 _evas_unwalk(e);
@@ -1361,6 +1626,7 @@ evas_event_feed_hold(Evas *e, int hold, unsigned int timestamp, const void *data
1361 Eina_List *l, *copy; 1626 Eina_List *l, *copy;
1362 Evas_Event_Hold ev; 1627 Evas_Event_Hold ev;
1363 Evas_Object *obj; 1628 Evas_Object *obj;
1629 int event_id = 0;
1364 1630
1365 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1631 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
1366 return; 1632 return;
@@ -1371,17 +1637,18 @@ evas_event_feed_hold(Evas *e, int hold, unsigned int timestamp, const void *data
1371 1637
1372 _evas_object_event_new(); 1638 _evas_object_event_new();
1373 1639
1640 event_id = _evas_event_counter;
1374 ev.hold = hold; 1641 ev.hold = hold;
1375 ev.data = (void *)data; 1642 ev.data = (void *)data;
1376 ev.timestamp = timestamp; 1643 ev.timestamp = timestamp;
1377 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1644 ev.event_flags = e->default_event_flags;
1378 1645
1379 _evas_walk(e); 1646 _evas_walk(e);
1380 copy = evas_event_list_copy(e->pointer.object.in); 1647 copy = evas_event_list_copy(e->pointer.object.in);
1381 EINA_LIST_FOREACH(copy, l, obj) 1648 EINA_LIST_FOREACH(copy, l, obj)
1382 { 1649 {
1383 if ((e->events_frozen <= 0) && !evas_event_freezes_through(obj)) 1650 if ((e->events_frozen <= 0) && !evas_event_freezes_through(obj))
1384 evas_object_event_callback_call(obj, EVAS_CALLBACK_HOLD, &ev); 1651 evas_object_event_callback_call(obj, EVAS_CALLBACK_HOLD, &ev, event_id);
1385 if (e->delete_me) break; 1652 if (e->delete_me) break;
1386 } 1653 }
1387 if (copy) copy = eina_list_free(copy); 1654 if (copy) copy = eina_list_free(copy);
@@ -1528,75 +1795,84 @@ evas_object_pointer_mode_get(const Evas_Object *obj)
1528EAPI void 1795EAPI void
1529evas_event_refeed_event(Evas *e, void *event_copy, Evas_Callback_Type event_type) 1796evas_event_refeed_event(Evas *e, void *event_copy, Evas_Callback_Type event_type)
1530{ 1797{
1531 switch(event_type) 1798 switch (event_type)
1532 { 1799 {
1533 case EVAS_CALLBACK_MOUSE_IN: 1800 case EVAS_CALLBACK_MOUSE_IN:
1534 { 1801 {
1535 Evas_Event_Mouse_In *ev = event_copy; 1802 Evas_Event_Mouse_In *ev = event_copy;
1536 evas_event_feed_mouse_in(e, ev->timestamp, ev->data); 1803 evas_event_feed_mouse_in(e, ev->timestamp, ev->data);
1537 break; 1804 break;
1538 } 1805 }
1539 case EVAS_CALLBACK_MOUSE_OUT: 1806 case EVAS_CALLBACK_MOUSE_OUT:
1540 { 1807 {
1541 Evas_Event_Mouse_Out *ev = event_copy; 1808 Evas_Event_Mouse_Out *ev = event_copy;
1542 evas_event_feed_mouse_out(e, ev->timestamp, ev->data); 1809 evas_event_feed_mouse_out(e, ev->timestamp, ev->data);
1543 break; 1810 break;
1544 } 1811 }
1545 case EVAS_CALLBACK_MOUSE_DOWN: 1812 case EVAS_CALLBACK_MOUSE_DOWN:
1546 { 1813 {
1547 Evas_Event_Mouse_Down *ev = event_copy; 1814 Evas_Event_Mouse_Down *ev = event_copy;
1548 evas_event_feed_mouse_down(e, ev->button, ev->flags, ev-> timestamp, ev->data); 1815 evas_event_feed_mouse_down(e, ev->button, ev->flags, ev-> timestamp, ev->data);
1549 break; 1816 break;
1550 } 1817 }
1551 case EVAS_CALLBACK_MOUSE_UP: 1818 case EVAS_CALLBACK_MOUSE_UP:
1552 { 1819 {
1553 Evas_Event_Mouse_Up *ev = event_copy; 1820 Evas_Event_Mouse_Up *ev = event_copy;
1554 evas_event_feed_mouse_up(e, ev->button, ev->flags, ev-> timestamp, ev->data); 1821 evas_event_feed_mouse_up(e, ev->button, ev->flags, ev-> timestamp, ev->data);
1555 break; 1822 break;
1556 } 1823 }
1557 case EVAS_CALLBACK_MOUSE_MOVE: 1824 case EVAS_CALLBACK_MOUSE_MOVE:
1558 { 1825 {
1559 Evas_Event_Mouse_Move *ev = event_copy; 1826 Evas_Event_Mouse_Move *ev = event_copy;
1560 evas_event_feed_mouse_move(e, ev->cur.canvas.x, ev->cur.canvas.y, ev->timestamp, ev->data); 1827 evas_event_feed_mouse_move(e, ev->cur.canvas.x, ev->cur.canvas.y, ev->timestamp, ev->data);
1561 break; 1828 break;
1562 } 1829 }
1563 case EVAS_CALLBACK_MOUSE_WHEEL: 1830 case EVAS_CALLBACK_MOUSE_WHEEL:
1564 { 1831 {
1565 Evas_Event_Mouse_Wheel *ev = event_copy; 1832 Evas_Event_Mouse_Wheel *ev = event_copy;
1566 evas_event_feed_mouse_wheel(e, ev->direction, ev-> z, ev->timestamp, ev->data); 1833 evas_event_feed_mouse_wheel(e, ev->direction, ev-> z, ev->timestamp, ev->data);
1567 break; 1834 break;
1568 } 1835 }
1569 case EVAS_CALLBACK_MULTI_DOWN: 1836 case EVAS_CALLBACK_MULTI_DOWN:
1570 { 1837 {
1571 Evas_Event_Multi_Down *ev = event_copy; 1838 Evas_Event_Multi_Down *ev = event_copy;
1572 evas_event_feed_multi_down(e, ev->device, ev->canvas.x, ev->canvas.y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, ev->canvas.xsub, ev->canvas.ysub, ev->flags, ev->timestamp, ev->data); 1839 evas_event_feed_multi_down(e, ev->device, ev->canvas.x, ev->canvas.y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, ev->canvas.xsub, ev->canvas.ysub, ev->flags, ev->timestamp, ev->data);
1573 break; 1840 break;
1574 } 1841 }
1575 case EVAS_CALLBACK_MULTI_UP: 1842 case EVAS_CALLBACK_MULTI_UP:
1576 { 1843 {
1577 Evas_Event_Multi_Up *ev = event_copy; 1844 Evas_Event_Multi_Up *ev = event_copy;
1578 evas_event_feed_multi_up(e, ev->device, ev->canvas.x, ev->canvas.y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, ev->canvas.xsub, ev->canvas.ysub, ev->flags, ev->timestamp, ev->data); 1845 evas_event_feed_multi_up(e, ev->device, ev->canvas.x, ev->canvas.y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, ev->canvas.xsub, ev->canvas.ysub, ev->flags, ev->timestamp, ev->data);
1579 break; 1846 break;
1580 } 1847 }
1581 case EVAS_CALLBACK_MULTI_MOVE: 1848 case EVAS_CALLBACK_MULTI_MOVE:
1582 { 1849 {
1583 Evas_Event_Multi_Move *ev = event_copy; 1850 Evas_Event_Multi_Move *ev = event_copy;
1584 evas_event_feed_multi_move(e, ev->device, ev->cur.canvas.x, ev->cur.canvas.y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, ev->cur.canvas.xsub, ev->cur.canvas.ysub, ev->timestamp, ev->data); 1851 evas_event_feed_multi_move(e, ev->device, ev->cur.canvas.x, ev->cur.canvas.y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, ev->cur.canvas.xsub, ev->cur.canvas.ysub, ev->timestamp, ev->data);
1585 break; 1852 break;
1586 } 1853 }
1587 case EVAS_CALLBACK_KEY_DOWN: 1854 case EVAS_CALLBACK_KEY_DOWN:
1588 { 1855 {
1589 Evas_Event_Key_Down *ev = event_copy; 1856 Evas_Event_Key_Down *ev = event_copy;
1590 evas_event_feed_key_down(e, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, ev->data); 1857 evas_event_feed_key_down(e, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, ev->data);
1591 break; 1858 break;
1592 } 1859 }
1593 case EVAS_CALLBACK_KEY_UP: 1860 case EVAS_CALLBACK_KEY_UP:
1594 { 1861 {
1595 Evas_Event_Key_Up *ev = event_copy; 1862 Evas_Event_Key_Up *ev = event_copy;
1596 evas_event_feed_key_up(e, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, ev->data); 1863 evas_event_feed_key_up(e, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, ev->data);
1597 break; 1864 break;
1598 } 1865 }
1599 default: /* All non-input events are not handeled */ 1866 default: /* All non-input events are not handeled */
1600 break; 1867 break;
1601 } 1868 }
1602} 1869}
1870
1871EAPI int
1872evas_event_down_count_get(const Evas *e)
1873{
1874 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
1875 return 0;
1876 MAGIC_CHECK_END();
1877 return e->pointer.downs;
1878}
diff --git a/libraries/evas/src/lib/canvas/evas_focus.c b/libraries/evas/src/lib/canvas/evas_focus.c
index a1a3bca..29da7e7 100644
--- a/libraries/evas/src/lib/canvas/evas_focus.c
+++ b/libraries/evas/src/lib/canvas/evas_focus.c
@@ -10,29 +10,31 @@
10EAPI void 10EAPI void
11evas_object_focus_set(Evas_Object *obj, Eina_Bool focus) 11evas_object_focus_set(Evas_Object *obj, Eina_Bool focus)
12{ 12{
13 int event_id = 0;
13 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 14 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
14 return; 15 return;
15 MAGIC_CHECK_END(); 16 MAGIC_CHECK_END();
16 17
17 _evas_object_event_new(); 18 _evas_object_event_new();
18 19
20 event_id = _evas_event_counter;
19 if (focus) 21 if (focus)
20 { 22 {
21 if (obj->focused) goto end; 23 if (obj->focused) goto end;
22 if (obj->layer->evas->focused) 24 if (obj->layer->evas->focused)
23 evas_object_focus_set(obj->layer->evas->focused, 0); 25 evas_object_focus_set(obj->layer->evas->focused, 0);
24 obj->focused = 1; 26 obj->focused = 1;
25 obj->layer->evas->focused = obj; 27 obj->layer->evas->focused = obj;
26 evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_IN, NULL); 28 evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_IN, NULL, event_id);
27 evas_event_callback_call(obj->layer->evas, 29 evas_event_callback_call(obj->layer->evas,
28 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, obj); 30 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, obj);
29 } 31 }
30 else 32 else
31 { 33 {
32 if (!obj->focused) goto end; 34 if (!obj->focused) goto end;
33 obj->focused = 0; 35 obj->focused = 0;
34 obj->layer->evas->focused = NULL; 36 obj->layer->evas->focused = NULL;
35 evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_OUT, NULL); 37 evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_OUT, NULL, event_id);
36 evas_event_callback_call(obj->layer->evas, 38 evas_event_callback_call(obj->layer->evas,
37 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, obj); 39 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, obj);
38 } 40 }
diff --git a/libraries/evas/src/lib/canvas/evas_gl.c b/libraries/evas/src/lib/canvas/evas_gl.c
index 47bb583..85ed851 100644
--- a/libraries/evas/src/lib/canvas/evas_gl.c
+++ b/libraries/evas/src/lib/canvas/evas_gl.c
@@ -37,6 +37,13 @@ evas_gl_new(Evas *e)
37 evas_gl->magic = MAGIC_EVAS_GL; 37 evas_gl->magic = MAGIC_EVAS_GL;
38 evas_gl->evas = e; 38 evas_gl->evas = e;
39 39
40 if (!evas_gl->evas->engine.func->gl_context_create)
41 {
42 ERR("GL engine not available\n");
43 free(evas_gl);
44 return NULL;
45 }
46
40 return evas_gl; 47 return evas_gl;
41} 48}
42 49
@@ -60,6 +67,24 @@ evas_gl_free(Evas_GL *evas_gl)
60 free(evas_gl); 67 free(evas_gl);
61} 68}
62 69
70EAPI Evas_GL_Config *
71evas_gl_config_new()
72{
73 Evas_GL_Config *cfg;
74
75 cfg = calloc(1, sizeof(Evas_GL_Config));
76
77 if (!cfg) return NULL;
78
79 return cfg;
80}
81
82EAPI void
83evas_gl_config_free(Evas_GL_Config *cfg)
84{
85 if (cfg) free(cfg);
86}
87
63EAPI Evas_GL_Surface * 88EAPI Evas_GL_Surface *
64evas_gl_surface_create(Evas_GL *evas_gl, Evas_GL_Config *config, int width, int height) 89evas_gl_surface_create(Evas_GL *evas_gl, Evas_GL_Config *config, int width, int height)
65{ 90{
@@ -77,6 +102,8 @@ evas_gl_surface_create(Evas_GL *evas_gl, Evas_GL_Config *config, int width, int
77 102
78 surf = calloc(1, sizeof(Evas_GL_Surface)); 103 surf = calloc(1, sizeof(Evas_GL_Surface));
79 104
105 if (!surf) return NULL;
106
80 surf->data = evas_gl->evas->engine.func->gl_surface_create(evas_gl->evas->engine.data.output, config, width, height); 107 surf->data = evas_gl->evas->engine.func->gl_surface_create(evas_gl->evas->engine.data.output, config, width, height);
81 108
82 if (!surf->data) 109 if (!surf->data)
diff --git a/libraries/evas/src/lib/canvas/evas_main.c b/libraries/evas/src/lib/canvas/evas_main.c
index 0a37b2c..687744f 100644
--- a/libraries/evas/src/lib/canvas/evas_main.c
+++ b/libraries/evas/src/lib/canvas/evas_main.c
@@ -118,12 +118,16 @@ evas_new(void)
118 e->output.render_method = RENDER_METHOD_INVALID; 118 e->output.render_method = RENDER_METHOD_INVALID;
119 e->viewport.w = 1; 119 e->viewport.w = 1;
120 e->viewport.h = 1; 120 e->viewport.h = 1;
121 e->framespace.x = 0;
122 e->framespace.y = 0;
123 e->framespace.w = 0;
124 e->framespace.h = 0;
121 e->hinting = EVAS_FONT_HINTING_BYTECODE; 125 e->hinting = EVAS_FONT_HINTING_BYTECODE;
122 e->name_hash = eina_hash_string_superfast_new(NULL); 126 e->name_hash = eina_hash_string_superfast_new(NULL);
123 eina_clist_init(&e->calc_list); 127 eina_clist_init(&e->calc_list);
124 eina_clist_init(&e->calc_done); 128 eina_clist_init(&e->calc_done);
125 129
126#define EVAS_ARRAY_SET(E, Array) \ 130#define EVAS_ARRAY_SET(E, Array) \
127 eina_array_step_set(&E->Array, sizeof (E->Array), 4096); 131 eina_array_step_set(&E->Array, sizeof (E->Array), 4096);
128 132
129 EVAS_ARRAY_SET(e, delete_objects); 133 EVAS_ARRAY_SET(e, delete_objects);
@@ -408,6 +412,41 @@ evas_output_viewport_get(const Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord
408 if (h) *h = e->viewport.h; 412 if (h) *h = e->viewport.h;
409} 413}
410 414
415EAPI void
416evas_output_framespace_set(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
417{
418 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
419 return;
420 MAGIC_CHECK_END();
421
422 if ((x == e->framespace.x) && (y == e->framespace.y) &&
423 (w == e->framespace.w) && (h == e->framespace.h)) return;
424 e->framespace.x = x;
425 e->framespace.y = y;
426 e->framespace.w = w;
427 e->framespace.h = h;
428 e->framespace.changed = 1;
429 e->output_validity++;
430 e->changed = 1;
431}
432
433EAPI void
434evas_output_framespace_get(const Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
435{
436 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
437 if (x) *x = 0;
438 if (y) *y = 0;
439 if (w) *w = 0;
440 if (h) *h = 0;
441 return;
442 MAGIC_CHECK_END();
443
444 if (x) *x = e->framespace.x;
445 if (y) *y = e->framespace.y;
446 if (w) *w = e->framespace.w;
447 if (h) *h = e->framespace.h;
448}
449
411EAPI Evas_Coord 450EAPI Evas_Coord
412evas_coord_screen_x_to_world(const Evas *e, int x) 451evas_coord_screen_x_to_world(const Evas *e, int x)
413{ 452{
diff --git a/libraries/evas/src/lib/canvas/evas_map.c b/libraries/evas/src/lib/canvas/evas_map.c
index fca8b3a..2359d5a 100644
--- a/libraries/evas/src/lib/canvas/evas_map.c
+++ b/libraries/evas/src/lib/canvas/evas_map.c
@@ -81,17 +81,19 @@ _evas_map_calc_map_geometry(Evas_Object *obj)
81 81
82 p = obj->cur.map->points; 82 p = obj->cur.map->points;
83 p_end = p + obj->cur.map->count; 83 p_end = p + obj->cur.map->count;
84 x1 = lround(p->x); 84 x1 = x2 = lround(p->x);
85 x2 = lround(p->x); 85 y1 = y2 = lround(p->y);
86 y1 = lround(p->y);
87 y2 = lround(p->y);
88 p++; 86 p++;
89 for (; p < p_end; p++) 87 for (; p < p_end; p++)
90 { 88 {
91 if (p->x < x1) x1 = p->x; 89 Evas_Coord x, y;
92 if (p->x > x2) x2 = p->x; 90
93 if (p->y < y1) y1 = p->y; 91 x = lround(p->x);
94 if (p->y > y2) y2 = p->y; 92 y = lround(p->y);
93 if (x < x1) x1 = x;
94 if (x > x2) x2 = x;
95 if (y < y1) y1 = y;
96 if (y > y2) y2 = y;
95 } 97 }
96// this causes clip-out bugs now mapped objs canbe opaque!!! 98// this causes clip-out bugs now mapped objs canbe opaque!!!
97// // add 1 pixel of fuzz around the map region to ensure updates are correct 99// // add 1 pixel of fuzz around the map region to ensure updates are correct
diff --git a/libraries/evas/src/lib/canvas/evas_name.c b/libraries/evas/src/lib/canvas/evas_name.c
index c42f941..1a9d20f 100644
--- a/libraries/evas/src/lib/canvas/evas_name.c
+++ b/libraries/evas/src/lib/canvas/evas_name.c
@@ -38,3 +38,35 @@ evas_object_name_find(const Evas *e, const char *name)
38 if (!name) return NULL; 38 if (!name) return NULL;
39 return (Evas_Object *)eina_hash_find(e->name_hash, name); 39 return (Evas_Object *)eina_hash_find(e->name_hash, name);
40} 40}
41
42static Evas_Object *
43_evas_object_name_child_find(const Evas_Object *obj, const char *name, int recurse)
44{
45 const Eina_Inlist *lst;
46 Evas_Object *child;
47
48 if (!obj->smart.smart) return NULL;
49 lst = evas_object_smart_members_get_direct(obj);
50 EINA_INLIST_FOREACH(lst, child)
51 {
52 if (child->delete_me) continue;
53 if (!child->name) continue;
54 if (!strcmp(name, child->name)) return child;
55 if (recurse != 0)
56 {
57 if ((obj = _evas_object_name_child_find(child, name, recurse - 1)))
58 return (Evas_Object *)obj;
59 }
60 }
61 return NULL;
62}
63
64EAPI Evas_Object *
65evas_object_name_child_find(const Evas_Object *obj, const char *name, int recurse)
66{
67 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
68 return NULL;
69 MAGIC_CHECK_END();
70 if (!name) return NULL;
71 return _evas_object_name_child_find(obj, name, recurse);
72}
diff --git a/libraries/evas/src/lib/canvas/evas_object_box.c b/libraries/evas/src/lib/canvas/evas_object_box.c
index ab2f222..228d37c 100644
--- a/libraries/evas/src/lib/canvas/evas_object_box.c
+++ b/libraries/evas/src/lib/canvas/evas_object_box.c
@@ -1363,7 +1363,7 @@ _evas_object_box_layout_flow_horizontal_row_info_collect(Evas_Object_Box_Data *p
1363EAPI void 1363EAPI void
1364evas_object_box_layout_flow_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data __UNUSED__) 1364evas_object_box_layout_flow_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data __UNUSED__)
1365{ 1365{
1366 int n_children, v_justify; 1366 int n_children;
1367 int r, row_count = 0; 1367 int r, row_count = 0;
1368 int min_w = 0, min_h = 0; 1368 int min_w = 0, min_h = 0;
1369 int max_h, inc_y; 1369 int max_h, inc_y;
@@ -1398,7 +1398,6 @@ evas_object_box_layout_flow_horizontal(Evas_Object *o, Evas_Object_Box_Data *pri
1398 (priv, w, &row_count, row_max_h, row_break, row_width, &offset_y, &max_h); 1398 (priv, w, &row_count, row_max_h, row_break, row_width, &offset_y, &max_h);
1399 1399
1400 inc_y = 0; 1400 inc_y = 0;
1401 v_justify = 0;
1402 remain_y = h - (offset_y + max_h); 1401 remain_y = h - (offset_y + max_h);
1403 1402
1404 if (remain_y > 0) 1403 if (remain_y > 0)
diff --git a/libraries/evas/src/lib/canvas/evas_object_grid.c b/libraries/evas/src/lib/canvas/evas_object_grid.c
index ac96f04..db0f43d 100644
--- a/libraries/evas/src/lib/canvas/evas_object_grid.c
+++ b/libraries/evas/src/lib/canvas/evas_object_grid.c
@@ -1,5 +1,5 @@
1#include <errno.h>
2#include "evas_common.h" 1#include "evas_common.h"
2#include <errno.h>
3 3
4typedef struct _Evas_Object_Grid_Data Evas_Object_Grid_Data; 4typedef struct _Evas_Object_Grid_Data Evas_Object_Grid_Data;
5typedef struct _Evas_Object_Grid_Option Evas_Object_Grid_Option; 5typedef struct _Evas_Object_Grid_Option Evas_Object_Grid_Option;
diff --git a/libraries/evas/src/lib/canvas/evas_object_image.c b/libraries/evas/src/lib/canvas/evas_object_image.c
index 7f757a6..d9f6378 100644
--- a/libraries/evas/src/lib/canvas/evas_object_image.c
+++ b/libraries/evas/src/lib/canvas/evas_object_image.c
@@ -1,7 +1,13 @@
1#ifdef HAVE_CONFIG_H
2# include "config.h" /* so that EAPI in Evas.h is correctly defined */
3#endif
4
1#include <sys/types.h> 5#include <sys/types.h>
2#include <unistd.h> 6#include <unistd.h>
3#include <stdlib.h> 7#include <stdlib.h>
4#include <sys/mman.h> 8#ifdef HAVE_SYS_MMAN_H
9# include <sys/mman.h>
10#endif
5#include <math.h> 11#include <math.h>
6 12
7#include "evas_common.h" 13#include "evas_common.h"
@@ -192,8 +198,9 @@ evas_object_image_filled_add(Evas *e)
192static void 198static void
193_cleanup_tmpf(Evas_Object *obj) 199_cleanup_tmpf(Evas_Object *obj)
194{ 200{
201#ifdef HAVE_SYS_MMAN_H
195 Evas_Object_Image *o; 202 Evas_Object_Image *o;
196 203
197 o = (Evas_Object_Image *)(obj->object_data); 204 o = (Evas_Object_Image *)(obj->object_data);
198 if (!o->tmpf) return; 205 if (!o->tmpf) return;
199#ifdef __linux__ 206#ifdef __linux__
@@ -204,11 +211,15 @@ _cleanup_tmpf(Evas_Object *obj)
204 eina_stringshare_del(o->tmpf); 211 eina_stringshare_del(o->tmpf);
205 o->tmpf_fd = -1; 212 o->tmpf_fd = -1;
206 o->tmpf = NULL; 213 o->tmpf = NULL;
214#else
215 (void) obj;
216#endif
207} 217}
208 218
209static void 219static void
210_create_tmpf(Evas_Object *obj, void *data, int size, char *format __UNUSED__) 220_create_tmpf(Evas_Object *obj, void *data, int size, char *format __UNUSED__)
211{ 221{
222#ifdef HAVE_SYS_MMAN_H
212 Evas_Object_Image *o; 223 Evas_Object_Image *o;
213 char buf[4096]; 224 char buf[4096];
214 void *dst; 225 void *dst;
@@ -253,6 +264,12 @@ _create_tmpf(Evas_Object *obj, void *data, int size, char *format __UNUSED__)
253 o->tmpf = eina_stringshare_add(buf); 264 o->tmpf = eina_stringshare_add(buf);
254 memcpy(dst, data, size); 265 memcpy(dst, data, size);
255 munmap(dst, size); 266 munmap(dst, size);
267#else
268 (void) obj;
269 (void) data;
270 (void) size;
271 (void) format;
272#endif
256} 273}
257 274
258EAPI void 275EAPI void
@@ -1917,6 +1934,24 @@ evas_object_image_content_hint_get(const Evas_Object *obj)
1917 return o->content_hint; 1934 return o->content_hint;
1918} 1935}
1919 1936
1937EAPI Eina_Bool
1938evas_object_image_region_support_get(const Evas_Object *obj)
1939{
1940 Evas_Object_Image *o;
1941
1942 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
1943 return EINA_FALSE;
1944 MAGIC_CHECK_END();
1945 o = (Evas_Object_Image *) (obj->object_data);
1946 MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE);
1947 return EINA_FALSE;
1948 MAGIC_CHECK_END();
1949
1950 return obj->layer->evas->engine.func->image_can_region_get(
1951 obj->layer->evas->engine.data.output,
1952 o->engine_data);
1953}
1954
1920/* animated feature */ 1955/* animated feature */
1921EAPI Eina_Bool 1956EAPI Eina_Bool
1922evas_object_image_animated_get(const Evas_Object *obj) 1957evas_object_image_animated_get(const Evas_Object *obj)
@@ -3770,8 +3805,7 @@ evas_object_image_data_convert_internal(Evas_Object_Image *o, void *data, Evas_C
3770 to_cspace); 3805 to_cspace);
3771 break; 3806 break;
3772 case EVAS_COLORSPACE_YCBCR422601_PL: 3807 case EVAS_COLORSPACE_YCBCR422601_PL:
3773 fprintf(stderr, "EVAS_COLORSPACE_YCBCR422601_PL:\n"); 3808 out = evas_common_convert_yuv_422_601_to(data,
3774 out = evas_common_convert_yuv_422_601_to(data,
3775 o->cur.image.w, 3809 o->cur.image.w,
3776 o->cur.image.h, 3810 o->cur.image.h,
3777 to_cspace); 3811 to_cspace);
@@ -3795,7 +3829,7 @@ evas_object_image_data_convert_internal(Evas_Object_Image *o, void *data, Evas_C
3795 to_cspace); 3829 to_cspace);
3796 break; 3830 break;
3797 default: 3831 default:
3798 fprintf(stderr, "unknow colorspace: %i\n", o->cur.cspace); 3832 WRN("unknow colorspace: %i\n", o->cur.cspace);
3799 break; 3833 break;
3800 } 3834 }
3801 3835
@@ -3806,9 +3840,7 @@ static void
3806evas_object_image_filled_resize_listener(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *einfo __UNUSED__) 3840evas_object_image_filled_resize_listener(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *einfo __UNUSED__)
3807{ 3841{
3808 Evas_Coord w, h; 3842 Evas_Coord w, h;
3809 Evas_Object_Image *o;
3810 3843
3811 o = obj->object_data;
3812 evas_object_geometry_get(obj, NULL, NULL, &w, &h); 3844 evas_object_geometry_get(obj, NULL, NULL, &w, &h);
3813 evas_object_image_fill_set(obj, 0, 0, w, h); 3845 evas_object_image_fill_set(obj, 0, 0, w, h);
3814} 3846}
diff --git a/libraries/evas/src/lib/canvas/evas_object_inform.c b/libraries/evas/src/lib/canvas/evas_object_inform.c
index bc09eb9..302da42 100644
--- a/libraries/evas/src/lib/canvas/evas_object_inform.c
+++ b/libraries/evas/src/lib/canvas/evas_object_inform.c
@@ -8,7 +8,7 @@ evas_object_inform_call_show(Evas_Object *obj)
8{ 8{
9 _evas_object_event_new(); 9 _evas_object_event_new();
10 10
11 evas_object_event_callback_call(obj, EVAS_CALLBACK_SHOW, NULL); 11 evas_object_event_callback_call(obj, EVAS_CALLBACK_SHOW, NULL, _evas_event_counter);
12 _evas_post_event_callback_call(obj->layer->evas); 12 _evas_post_event_callback_call(obj->layer->evas);
13} 13}
14 14
@@ -17,7 +17,7 @@ evas_object_inform_call_hide(Evas_Object *obj)
17{ 17{
18 _evas_object_event_new(); 18 _evas_object_event_new();
19 19
20 evas_object_event_callback_call(obj, EVAS_CALLBACK_HIDE, NULL); 20 evas_object_event_callback_call(obj, EVAS_CALLBACK_HIDE, NULL, _evas_event_counter);
21 _evas_post_event_callback_call(obj->layer->evas); 21 _evas_post_event_callback_call(obj->layer->evas);
22} 22}
23 23
@@ -26,7 +26,7 @@ evas_object_inform_call_move(Evas_Object *obj)
26{ 26{
27 _evas_object_event_new(); 27 _evas_object_event_new();
28 28
29 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOVE, NULL); 29 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOVE, NULL, _evas_event_counter);
30 _evas_post_event_callback_call(obj->layer->evas); 30 _evas_post_event_callback_call(obj->layer->evas);
31} 31}
32 32
@@ -35,7 +35,7 @@ evas_object_inform_call_resize(Evas_Object *obj)
35{ 35{
36 _evas_object_event_new(); 36 _evas_object_event_new();
37 37
38 evas_object_event_callback_call(obj, EVAS_CALLBACK_RESIZE, NULL); 38 evas_object_event_callback_call(obj, EVAS_CALLBACK_RESIZE, NULL, _evas_event_counter);
39 _evas_post_event_callback_call(obj->layer->evas); 39 _evas_post_event_callback_call(obj->layer->evas);
40} 40}
41 41
@@ -44,7 +44,7 @@ evas_object_inform_call_restack(Evas_Object *obj)
44{ 44{
45 _evas_object_event_new(); 45 _evas_object_event_new();
46 46
47 evas_object_event_callback_call(obj, EVAS_CALLBACK_RESTACK, NULL); 47 evas_object_event_callback_call(obj, EVAS_CALLBACK_RESTACK, NULL, _evas_event_counter);
48 _evas_post_event_callback_call(obj->layer->evas); 48 _evas_post_event_callback_call(obj->layer->evas);
49} 49}
50 50
@@ -53,7 +53,7 @@ evas_object_inform_call_changed_size_hints(Evas_Object *obj)
53{ 53{
54 _evas_object_event_new(); 54 _evas_object_event_new();
55 55
56 evas_object_event_callback_call(obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, NULL); 56 evas_object_event_callback_call(obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, NULL, _evas_event_counter);
57 _evas_post_event_callback_call(obj->layer->evas); 57 _evas_post_event_callback_call(obj->layer->evas);
58} 58}
59 59
@@ -65,7 +65,7 @@ evas_object_inform_call_image_preloaded(Evas_Object *obj)
65 _evas_object_image_preloading_set(obj, 0); 65 _evas_object_image_preloading_set(obj, 0);
66 _evas_object_event_new(); 66 _evas_object_event_new();
67 67
68 evas_object_event_callback_call(obj, EVAS_CALLBACK_IMAGE_PRELOADED, NULL); 68 evas_object_event_callback_call(obj, EVAS_CALLBACK_IMAGE_PRELOADED, NULL, _evas_event_counter);
69 _evas_post_event_callback_call(obj->layer->evas); 69 _evas_post_event_callback_call(obj->layer->evas);
70} 70}
71 71
@@ -74,6 +74,6 @@ evas_object_inform_call_image_unloaded(Evas_Object *obj)
74{ 74{
75 _evas_object_event_new(); 75 _evas_object_event_new();
76 76
77 evas_object_event_callback_call(obj, EVAS_CALLBACK_IMAGE_UNLOADED, NULL); 77 evas_object_event_callback_call(obj, EVAS_CALLBACK_IMAGE_UNLOADED, NULL, _evas_event_counter);
78 _evas_post_event_callback_call(obj->layer->evas); 78 _evas_post_event_callback_call(obj->layer->evas);
79} 79}
diff --git a/libraries/evas/src/lib/canvas/evas_object_intercept.c b/libraries/evas/src/lib/canvas/evas_object_intercept.c
index c3e5e24..54f7265 100644
--- a/libraries/evas/src/lib/canvas/evas_object_intercept.c
+++ b/libraries/evas/src/lib/canvas/evas_object_intercept.c
@@ -9,7 +9,6 @@ static void evas_object_intercept_deinit(Evas_Object *obj);
9static void 9static void
10evas_object_intercept_init(Evas_Object *obj) 10evas_object_intercept_init(Evas_Object *obj)
11{ 11{
12 /* MEM OK */
13 if (!obj->interceptors) 12 if (!obj->interceptors)
14 obj->interceptors = evas_mem_calloc(sizeof(Evas_Intercept_Func)); 13 obj->interceptors = evas_mem_calloc(sizeof(Evas_Intercept_Func));
15} 14}
@@ -17,7 +16,6 @@ evas_object_intercept_init(Evas_Object *obj)
17static void 16static void
18evas_object_intercept_deinit(Evas_Object *obj) 17evas_object_intercept_deinit(Evas_Object *obj)
19{ 18{
20 /* MEM OK */
21 if (!obj->interceptors) return; 19 if (!obj->interceptors) return;
22 if ((obj->interceptors->show.func) || 20 if ((obj->interceptors->show.func) ||
23 (obj->interceptors->hide.func) || 21 (obj->interceptors->hide.func) ||
@@ -41,199 +39,186 @@ evas_object_intercept_deinit(Evas_Object *obj)
41void 39void
42evas_object_intercept_cleanup(Evas_Object *obj) 40evas_object_intercept_cleanup(Evas_Object *obj)
43{ 41{
44 /* MEM OK */
45 if (obj->interceptors) free(obj->interceptors); 42 if (obj->interceptors) free(obj->interceptors);
46} 43}
47 44
48int 45int
49evas_object_intercept_call_show(Evas_Object *obj) 46evas_object_intercept_call_show(Evas_Object *obj)
50{ 47{
51 /* MEM OK */
52 int ret; 48 int ret;
53 49
54 if (!obj->interceptors) return 0; 50 if (!obj->interceptors) return 0;
55 if (obj->intercepted) return 0; 51 if (obj->intercepted) return 0;
56 obj->intercepted = 1; 52 obj->intercepted = EINA_TRUE;
57 ret = !!(obj->interceptors->show.func); 53 ret = !!(obj->interceptors->show.func);
58 if (obj->interceptors->show.func) 54 if (ret)
59 obj->interceptors->show.func(obj->interceptors->show.data, obj); 55 obj->interceptors->show.func(obj->interceptors->show.data, obj);
60 obj->intercepted = 0; 56 obj->intercepted = EINA_FALSE;
61 return ret; 57 return ret;
62} 58}
63 59
64int 60int
65evas_object_intercept_call_hide(Evas_Object *obj) 61evas_object_intercept_call_hide(Evas_Object *obj)
66{ 62{
67 /* MEM OK */
68 int ret; 63 int ret;
69 64
70 if (!obj->interceptors) return 0; 65 if (!obj->interceptors) return 0;
71 if (obj->intercepted) return 0; 66 if (obj->intercepted) return 0;
72 obj->intercepted = 1; 67 obj->intercepted = EINA_TRUE;
73 ret = !!(obj->interceptors->hide.func); 68 ret = !!(obj->interceptors->hide.func);
74 if (obj->interceptors->hide.func) 69 if (ret)
75 obj->interceptors->hide.func(obj->interceptors->hide.data, obj); 70 obj->interceptors->hide.func(obj->interceptors->hide.data, obj);
76 obj->intercepted = 0; 71 obj->intercepted = EINA_FALSE;
77 return ret; 72 return ret;
78} 73}
79 74
80int 75int
81evas_object_intercept_call_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) 76evas_object_intercept_call_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
82{ 77{
83 /* MEM OK */
84 int ret; 78 int ret;
85 79
86 if (!obj->interceptors) return 0; 80 if (!obj->interceptors) return 0;
87 if (obj->intercepted) return 0; 81 if (obj->intercepted) return 0;
88 obj->intercepted = 1; 82 obj->intercepted = EINA_TRUE;
89 ret = !!(obj->interceptors->move.func); 83 ret = !!(obj->interceptors->move.func);
90 if (obj->interceptors->move.func) 84 if (ret)
91 obj->interceptors->move.func(obj->interceptors->move.data, obj, x, y); 85 obj->interceptors->move.func(obj->interceptors->move.data, obj, x, y);
92 obj->intercepted = 0; 86 obj->intercepted = EINA_FALSE;
93 return ret; 87 return ret;
94} 88}
95 89
96int 90int
97evas_object_intercept_call_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) 91evas_object_intercept_call_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
98{ 92{
99 /* MEM OK */
100 int ret; 93 int ret;
101 94
102 if (!obj->interceptors) return 0; 95 if (!obj->interceptors) return 0;
103 if (obj->intercepted) return 0; 96 if (obj->intercepted) return 0;
104 obj->intercepted = 1; 97 obj->intercepted = EINA_TRUE;
105 ret = !!(obj->interceptors->resize.func); 98 ret = !!(obj->interceptors->resize.func);
106 if (obj->interceptors->resize.func) 99 if (ret)
107 obj->interceptors->resize.func(obj->interceptors->resize.data, obj, w, h); 100 obj->interceptors->resize.func(obj->interceptors->resize.data, obj, w, h);
108 obj->intercepted = 0; 101 obj->intercepted = EINA_FALSE;
109 return ret; 102 return ret;
110} 103}
111 104
112int 105int
113evas_object_intercept_call_raise(Evas_Object *obj) 106evas_object_intercept_call_raise(Evas_Object *obj)
114{ 107{
115 /* MEM OK */
116 int ret; 108 int ret;
117 109
118 if (!obj->interceptors) return 0; 110 if (!obj->interceptors) return 0;
119 if (obj->intercepted) return 0; 111 if (obj->intercepted) return 0;
120 obj->intercepted = 1; 112 obj->intercepted = EINA_TRUE;
121 ret = !!(obj->interceptors->raise.func); 113 ret = !!(obj->interceptors->raise.func);
122 if (obj->interceptors->raise.func) 114 if (ret)
123 obj->interceptors->raise.func(obj->interceptors->raise.data, obj); 115 obj->interceptors->raise.func(obj->interceptors->raise.data, obj);
124 obj->intercepted = 0; 116 obj->intercepted = EINA_FALSE;
125 return ret; 117 return ret;
126} 118}
127 119
128int 120int
129evas_object_intercept_call_lower(Evas_Object *obj) 121evas_object_intercept_call_lower(Evas_Object *obj)
130{ 122{
131 /* MEM OK */
132 int ret; 123 int ret;
133 124
134 if (!obj->interceptors) return 0; 125 if (!obj->interceptors) return 0;
135 if (obj->intercepted) return 0; 126 if (obj->intercepted) return 0;
136 obj->intercepted = 1; 127 obj->intercepted = EINA_TRUE;
137 ret = !!(obj->interceptors->lower.func); 128 ret = !!(obj->interceptors->lower.func);
138 if (obj->interceptors->lower.func) 129 if (ret)
139 obj->interceptors->lower.func(obj->interceptors->lower.data, obj); 130 obj->interceptors->lower.func(obj->interceptors->lower.data, obj);
140 obj->intercepted = 0; 131 obj->intercepted = EINA_FALSE;
141 return ret; 132 return ret;
142} 133}
143 134
144int 135int
145evas_object_intercept_call_stack_above(Evas_Object *obj, Evas_Object *above) 136evas_object_intercept_call_stack_above(Evas_Object *obj, Evas_Object *above)
146{ 137{
147 /* MEM OK */
148 int ret; 138 int ret;
149 139
150 if (!obj->interceptors) return 0; 140 if (!obj->interceptors) return 0;
151 if (obj->intercepted) return 0; 141 if (obj->intercepted) return 0;
152 obj->intercepted = 1; 142 obj->intercepted = EINA_TRUE;
153 ret = !!(obj->interceptors->stack_above.func); 143 ret = !!(obj->interceptors->stack_above.func);
154 if (obj->interceptors->stack_above.func) 144 if (ret)
155 obj->interceptors->stack_above.func(obj->interceptors->stack_above.data, obj, above); 145 obj->interceptors->stack_above.func(obj->interceptors->stack_above.data, obj, above);
156 obj->intercepted = 0; 146 obj->intercepted = EINA_FALSE;
157 return ret; 147 return ret;
158} 148}
159 149
160int 150int
161evas_object_intercept_call_stack_below(Evas_Object *obj, Evas_Object *below) 151evas_object_intercept_call_stack_below(Evas_Object *obj, Evas_Object *below)
162{ 152{
163 /* MEM OK */
164 int ret; 153 int ret;
165 154
166 if (!obj->interceptors) return 0; 155 if (!obj->interceptors) return 0;
167 if (obj->intercepted) return 0; 156 if (obj->intercepted) return 0;
168 obj->intercepted = 1; 157 obj->intercepted = EINA_TRUE;
169 ret = !!(obj->interceptors->stack_below.func); 158 ret = !!(obj->interceptors->stack_below.func);
170 if (obj->interceptors->stack_below.func) 159 if (ret)
171 obj->interceptors->stack_below.func(obj->interceptors->stack_below.data, obj, below); 160 obj->interceptors->stack_below.func(obj->interceptors->stack_below.data, obj, below);
172 obj->intercepted = 0; 161 obj->intercepted = EINA_FALSE;
173 return ret; 162 return ret;
174} 163}
175 164
176int 165int
177evas_object_intercept_call_layer_set(Evas_Object *obj, int l) 166evas_object_intercept_call_layer_set(Evas_Object *obj, int l)
178{ 167{
179 /* MEM OK */
180 int ret; 168 int ret;
181 169
182 if (!obj->interceptors) return 0; 170 if (!obj->interceptors) return 0;
183 if (obj->intercepted) return 0; 171 if (obj->intercepted) return 0;
184 obj->intercepted = 1; 172 obj->intercepted = EINA_TRUE;
185 ret = !!(obj->interceptors->layer_set.func); 173 ret = !!(obj->interceptors->layer_set.func);
186 if (obj->interceptors->layer_set.func) 174 if (ret)
187 obj->interceptors->layer_set.func(obj->interceptors->layer_set.data, obj, l); 175 obj->interceptors->layer_set.func(obj->interceptors->layer_set.data, obj, l);
188 obj->intercepted = 0; 176 obj->intercepted = EINA_FALSE;
189 return ret; 177 return ret;
190} 178}
191 179
192int 180int
193evas_object_intercept_call_color_set(Evas_Object *obj, int r, int g, int b, int a) 181evas_object_intercept_call_color_set(Evas_Object *obj, int r, int g, int b, int a)
194{ 182{
195 /* MEM OK */
196 int ret; 183 int ret;
197 184
198 if (!obj->interceptors) return 0; 185 if (!obj->interceptors) return 0;
199 if (obj->intercepted) return 0; 186 if (obj->intercepted) return 0;
200 obj->intercepted = 1; 187 obj->intercepted = EINA_TRUE;
201 ret = !!(obj->interceptors->color_set.func); 188 ret = !!(obj->interceptors->color_set.func);
202 if (obj->interceptors->color_set.func) 189 if (ret)
203 obj->interceptors->color_set.func(obj->interceptors->color_set.data, obj, r, g, b, a); 190 obj->interceptors->color_set.func(obj->interceptors->color_set.data, obj, r, g, b, a);
204 obj->intercepted = 0; 191 obj->intercepted = EINA_FALSE;
205 return ret; 192 return ret;
206} 193}
207 194
208int 195int
209evas_object_intercept_call_clip_set(Evas_Object *obj, Evas_Object *clip) 196evas_object_intercept_call_clip_set(Evas_Object *obj, Evas_Object *clip)
210{ 197{
211 /* MEM OK */
212 int ret; 198 int ret;
213 199
214 if (!obj->interceptors) return 0; 200 if (!obj->interceptors) return 0;
215 if (obj->intercepted) return 0; 201 if (obj->intercepted) return 0;
216 obj->intercepted = 1; 202 obj->intercepted = EINA_TRUE;
217 ret = !!(obj->interceptors->clip_set.func); 203 ret = !!(obj->interceptors->clip_set.func);
218 if (obj->interceptors->clip_set.func) 204 if (ret)
219 obj->interceptors->clip_set.func(obj->interceptors->clip_set.data, obj, clip); 205 obj->interceptors->clip_set.func(obj->interceptors->clip_set.data, obj, clip);
220 obj->intercepted = 0; 206 obj->intercepted = EINA_FALSE;
221 return ret; 207 return ret;
222} 208}
223 209
224int 210int
225evas_object_intercept_call_clip_unset(Evas_Object *obj) 211evas_object_intercept_call_clip_unset(Evas_Object *obj)
226{ 212{
227 /* MEM OK */
228 int ret; 213 int ret;
229 214
230 if (!obj->interceptors) return 0; 215 if (!obj->interceptors) return 0;
231 if (obj->intercepted) return 0; 216 if (obj->intercepted) return 0;
232 obj->intercepted = 1; 217 obj->intercepted = EINA_TRUE;
233 ret = !!(obj->interceptors->clip_unset.func); 218 ret = !!(obj->interceptors->clip_unset.func);
234 if (obj->interceptors->clip_unset.func) 219 if (ret)
235 obj->interceptors->clip_unset.func(obj->interceptors->clip_unset.data, obj); 220 obj->interceptors->clip_unset.func(obj->interceptors->clip_unset.data, obj);
236 obj->intercepted = 0; 221 obj->intercepted = EINA_FALSE;
237 return ret; 222 return ret;
238} 223}
239 224
@@ -242,8 +227,6 @@ evas_object_intercept_call_clip_unset(Evas_Object *obj)
242EAPI void 227EAPI void
243evas_object_intercept_show_callback_add(Evas_Object *obj, Evas_Object_Intercept_Show_Cb func, const void *data) 228evas_object_intercept_show_callback_add(Evas_Object *obj, Evas_Object_Intercept_Show_Cb func, const void *data)
244{ 229{
245 /* MEM OK */
246
247 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 230 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
248 return; 231 return;
249 MAGIC_CHECK_END(); 232 MAGIC_CHECK_END();
@@ -257,7 +240,6 @@ evas_object_intercept_show_callback_add(Evas_Object *obj, Evas_Object_Intercept_
257EAPI void * 240EAPI void *
258evas_object_intercept_show_callback_del(Evas_Object *obj, Evas_Object_Intercept_Show_Cb func) 241evas_object_intercept_show_callback_del(Evas_Object *obj, Evas_Object_Intercept_Show_Cb func)
259{ 242{
260 /* MEM OK */
261 void *data; 243 void *data;
262 244
263 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 245 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -275,7 +257,6 @@ evas_object_intercept_show_callback_del(Evas_Object *obj, Evas_Object_Intercept_
275EAPI void 257EAPI void
276evas_object_intercept_hide_callback_add(Evas_Object *obj, Evas_Object_Intercept_Hide_Cb func, const void *data) 258evas_object_intercept_hide_callback_add(Evas_Object *obj, Evas_Object_Intercept_Hide_Cb func, const void *data)
277{ 259{
278 /* MEM OK */
279 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 260 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
280 return; 261 return;
281 MAGIC_CHECK_END(); 262 MAGIC_CHECK_END();
@@ -289,7 +270,6 @@ evas_object_intercept_hide_callback_add(Evas_Object *obj, Evas_Object_Intercept_
289EAPI void * 270EAPI void *
290evas_object_intercept_hide_callback_del(Evas_Object *obj, Evas_Object_Intercept_Hide_Cb func) 271evas_object_intercept_hide_callback_del(Evas_Object *obj, Evas_Object_Intercept_Hide_Cb func)
291{ 272{
292 /* MEM OK */
293 void *data; 273 void *data;
294 274
295 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 275 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -307,7 +287,6 @@ evas_object_intercept_hide_callback_del(Evas_Object *obj, Evas_Object_Intercept_
307EAPI void 287EAPI void
308evas_object_intercept_move_callback_add(Evas_Object *obj, Evas_Object_Intercept_Move_Cb func, const void *data) 288evas_object_intercept_move_callback_add(Evas_Object *obj, Evas_Object_Intercept_Move_Cb func, const void *data)
309{ 289{
310 /* MEM OK */
311 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 290 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
312 return; 291 return;
313 MAGIC_CHECK_END(); 292 MAGIC_CHECK_END();
@@ -321,7 +300,6 @@ evas_object_intercept_move_callback_add(Evas_Object *obj, Evas_Object_Intercept_
321EAPI void * 300EAPI void *
322evas_object_intercept_move_callback_del(Evas_Object *obj, Evas_Object_Intercept_Move_Cb func) 301evas_object_intercept_move_callback_del(Evas_Object *obj, Evas_Object_Intercept_Move_Cb func)
323{ 302{
324 /* MEM OK */
325 void *data; 303 void *data;
326 304
327 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 305 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -339,7 +317,6 @@ evas_object_intercept_move_callback_del(Evas_Object *obj, Evas_Object_Intercept_
339EAPI void 317EAPI void
340evas_object_intercept_resize_callback_add(Evas_Object *obj, Evas_Object_Intercept_Resize_Cb func, const void *data) 318evas_object_intercept_resize_callback_add(Evas_Object *obj, Evas_Object_Intercept_Resize_Cb func, const void *data)
341{ 319{
342 /* MEM OK */
343 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 320 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
344 return; 321 return;
345 MAGIC_CHECK_END(); 322 MAGIC_CHECK_END();
@@ -353,7 +330,6 @@ evas_object_intercept_resize_callback_add(Evas_Object *obj, Evas_Object_Intercep
353EAPI void * 330EAPI void *
354evas_object_intercept_resize_callback_del(Evas_Object *obj, Evas_Object_Intercept_Resize_Cb func) 331evas_object_intercept_resize_callback_del(Evas_Object *obj, Evas_Object_Intercept_Resize_Cb func)
355{ 332{
356 /* MEM OK */
357 void *data; 333 void *data;
358 334
359 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 335 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -371,7 +347,6 @@ evas_object_intercept_resize_callback_del(Evas_Object *obj, Evas_Object_Intercep
371EAPI void 347EAPI void
372evas_object_intercept_raise_callback_add(Evas_Object *obj, Evas_Object_Intercept_Raise_Cb func, const void *data) 348evas_object_intercept_raise_callback_add(Evas_Object *obj, Evas_Object_Intercept_Raise_Cb func, const void *data)
373{ 349{
374 /* MEM OK */
375 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 350 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
376 return; 351 return;
377 MAGIC_CHECK_END(); 352 MAGIC_CHECK_END();
@@ -385,7 +360,6 @@ evas_object_intercept_raise_callback_add(Evas_Object *obj, Evas_Object_Intercept
385EAPI void * 360EAPI void *
386evas_object_intercept_raise_callback_del(Evas_Object *obj, Evas_Object_Intercept_Raise_Cb func) 361evas_object_intercept_raise_callback_del(Evas_Object *obj, Evas_Object_Intercept_Raise_Cb func)
387{ 362{
388 /* MEM OK */
389 void *data; 363 void *data;
390 364
391 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 365 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -403,7 +377,6 @@ evas_object_intercept_raise_callback_del(Evas_Object *obj, Evas_Object_Intercept
403EAPI void 377EAPI void
404evas_object_intercept_lower_callback_add(Evas_Object *obj, Evas_Object_Intercept_Lower_Cb func, const void *data) 378evas_object_intercept_lower_callback_add(Evas_Object *obj, Evas_Object_Intercept_Lower_Cb func, const void *data)
405{ 379{
406 /* MEM OK */
407 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 380 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
408 return; 381 return;
409 MAGIC_CHECK_END(); 382 MAGIC_CHECK_END();
@@ -417,7 +390,6 @@ evas_object_intercept_lower_callback_add(Evas_Object *obj, Evas_Object_Intercept
417EAPI void * 390EAPI void *
418evas_object_intercept_lower_callback_del(Evas_Object *obj, Evas_Object_Intercept_Lower_Cb func) 391evas_object_intercept_lower_callback_del(Evas_Object *obj, Evas_Object_Intercept_Lower_Cb func)
419{ 392{
420 /* MEM OK */
421 void *data; 393 void *data;
422 394
423 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 395 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -435,7 +407,6 @@ evas_object_intercept_lower_callback_del(Evas_Object *obj, Evas_Object_Intercept
435EAPI void 407EAPI void
436evas_object_intercept_stack_above_callback_add(Evas_Object *obj, Evas_Object_Intercept_Stack_Above_Cb func, const void *data) 408evas_object_intercept_stack_above_callback_add(Evas_Object *obj, Evas_Object_Intercept_Stack_Above_Cb func, const void *data)
437{ 409{
438 /* MEM OK */
439 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 410 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
440 return; 411 return;
441 MAGIC_CHECK_END(); 412 MAGIC_CHECK_END();
@@ -449,7 +420,6 @@ evas_object_intercept_stack_above_callback_add(Evas_Object *obj, Evas_Object_Int
449EAPI void * 420EAPI void *
450evas_object_intercept_stack_above_callback_del(Evas_Object *obj, Evas_Object_Intercept_Stack_Above_Cb func) 421evas_object_intercept_stack_above_callback_del(Evas_Object *obj, Evas_Object_Intercept_Stack_Above_Cb func)
451{ 422{
452 /* MEM OK */
453 void *data; 423 void *data;
454 424
455 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 425 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -467,7 +437,6 @@ evas_object_intercept_stack_above_callback_del(Evas_Object *obj, Evas_Object_Int
467EAPI void 437EAPI void
468evas_object_intercept_stack_below_callback_add(Evas_Object *obj, Evas_Object_Intercept_Stack_Below_Cb func, const void *data) 438evas_object_intercept_stack_below_callback_add(Evas_Object *obj, Evas_Object_Intercept_Stack_Below_Cb func, const void *data)
469{ 439{
470 /* MEM OK */
471 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 440 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
472 return; 441 return;
473 MAGIC_CHECK_END(); 442 MAGIC_CHECK_END();
@@ -481,7 +450,6 @@ evas_object_intercept_stack_below_callback_add(Evas_Object *obj, Evas_Object_Int
481EAPI void * 450EAPI void *
482evas_object_intercept_stack_below_callback_del(Evas_Object *obj, Evas_Object_Intercept_Stack_Below_Cb func) 451evas_object_intercept_stack_below_callback_del(Evas_Object *obj, Evas_Object_Intercept_Stack_Below_Cb func)
483{ 452{
484 /* MEM OK */
485 void *data; 453 void *data;
486 454
487 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 455 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -499,7 +467,6 @@ evas_object_intercept_stack_below_callback_del(Evas_Object *obj, Evas_Object_Int
499EAPI void 467EAPI void
500evas_object_intercept_layer_set_callback_add(Evas_Object *obj, Evas_Object_Intercept_Layer_Set_Cb func, const void *data) 468evas_object_intercept_layer_set_callback_add(Evas_Object *obj, Evas_Object_Intercept_Layer_Set_Cb func, const void *data)
501{ 469{
502 /* MEM OK */
503 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 470 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
504 return; 471 return;
505 MAGIC_CHECK_END(); 472 MAGIC_CHECK_END();
@@ -513,7 +480,6 @@ evas_object_intercept_layer_set_callback_add(Evas_Object *obj, Evas_Object_Inter
513EAPI void * 480EAPI void *
514evas_object_intercept_layer_set_callback_del(Evas_Object *obj, Evas_Object_Intercept_Layer_Set_Cb func) 481evas_object_intercept_layer_set_callback_del(Evas_Object *obj, Evas_Object_Intercept_Layer_Set_Cb func)
515{ 482{
516 /* MEM OK */
517 void *data; 483 void *data;
518 484
519 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 485 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -531,7 +497,6 @@ evas_object_intercept_layer_set_callback_del(Evas_Object *obj, Evas_Object_Inter
531EAPI void 497EAPI void
532evas_object_intercept_color_set_callback_add(Evas_Object *obj, Evas_Object_Intercept_Color_Set_Cb func, const void *data) 498evas_object_intercept_color_set_callback_add(Evas_Object *obj, Evas_Object_Intercept_Color_Set_Cb func, const void *data)
533{ 499{
534 /* MEM OK */
535 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 500 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
536 return; 501 return;
537 MAGIC_CHECK_END(); 502 MAGIC_CHECK_END();
@@ -545,7 +510,6 @@ evas_object_intercept_color_set_callback_add(Evas_Object *obj, Evas_Object_Inter
545EAPI void * 510EAPI void *
546evas_object_intercept_color_set_callback_del(Evas_Object *obj, Evas_Object_Intercept_Color_Set_Cb func) 511evas_object_intercept_color_set_callback_del(Evas_Object *obj, Evas_Object_Intercept_Color_Set_Cb func)
547{ 512{
548 /* MEM OK */
549 void *data; 513 void *data;
550 514
551 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 515 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -563,7 +527,6 @@ evas_object_intercept_color_set_callback_del(Evas_Object *obj, Evas_Object_Inter
563EAPI void 527EAPI void
564evas_object_intercept_clip_set_callback_add(Evas_Object *obj, Evas_Object_Intercept_Clip_Set_Cb func, const void *data) 528evas_object_intercept_clip_set_callback_add(Evas_Object *obj, Evas_Object_Intercept_Clip_Set_Cb func, const void *data)
565{ 529{
566 /* MEM OK */
567 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 530 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
568 return; 531 return;
569 MAGIC_CHECK_END(); 532 MAGIC_CHECK_END();
@@ -577,7 +540,6 @@ evas_object_intercept_clip_set_callback_add(Evas_Object *obj, Evas_Object_Interc
577EAPI void * 540EAPI void *
578evas_object_intercept_clip_set_callback_del(Evas_Object *obj, Evas_Object_Intercept_Clip_Set_Cb func) 541evas_object_intercept_clip_set_callback_del(Evas_Object *obj, Evas_Object_Intercept_Clip_Set_Cb func)
579{ 542{
580 /* MEM OK */
581 void *data; 543 void *data;
582 544
583 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 545 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -595,7 +557,6 @@ evas_object_intercept_clip_set_callback_del(Evas_Object *obj, Evas_Object_Interc
595EAPI void 557EAPI void
596evas_object_intercept_clip_unset_callback_add(Evas_Object *obj, Evas_Object_Intercept_Clip_Unset_Cb func, const void *data) 558evas_object_intercept_clip_unset_callback_add(Evas_Object *obj, Evas_Object_Intercept_Clip_Unset_Cb func, const void *data)
597{ 559{
598 /* MEM OK */
599 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 560 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
600 return; 561 return;
601 MAGIC_CHECK_END(); 562 MAGIC_CHECK_END();
@@ -609,7 +570,6 @@ evas_object_intercept_clip_unset_callback_add(Evas_Object *obj, Evas_Object_Inte
609EAPI void * 570EAPI void *
610evas_object_intercept_clip_unset_callback_del(Evas_Object *obj, Evas_Object_Intercept_Clip_Unset_Cb func) 571evas_object_intercept_clip_unset_callback_del(Evas_Object *obj, Evas_Object_Intercept_Clip_Unset_Cb func)
611{ 572{
612 /* MEM OK */
613 void *data; 573 void *data;
614 574
615 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 575 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
diff --git a/libraries/evas/src/lib/canvas/evas_object_main.c b/libraries/evas/src/lib/canvas/evas_object_main.c
index 3eaded9..86ab498 100644
--- a/libraries/evas/src/lib/canvas/evas_object_main.c
+++ b/libraries/evas/src/lib/canvas/evas_object_main.c
@@ -25,6 +25,7 @@ evas_object_new(Evas *e __UNUSED__)
25 obj->magic = MAGIC_OBJ; 25 obj->magic = MAGIC_OBJ;
26 obj->cur.scale = 1.0; 26 obj->cur.scale = 1.0;
27 obj->prev.scale = 1.0; 27 obj->prev.scale = 1.0;
28 obj->is_frame = EINA_FALSE;
28 29
29 return obj; 30 return obj;
30} 31}
@@ -99,7 +100,8 @@ evas_object_change(Evas_Object *obj)
99 /* set changed flag on all objects this one clips too */ 100 /* set changed flag on all objects this one clips too */
100 if (!((movch) && (obj->is_static_clip))) 101 if (!((movch) && (obj->is_static_clip)))
101 { 102 {
102 EINA_LIST_FOREACH(obj->clip.clipees, l, obj2) evas_object_change(obj2); 103 EINA_LIST_FOREACH(obj->clip.clipees, l, obj2)
104 evas_object_change(obj2);
103 } 105 }
104 EINA_LIST_FOREACH(obj->proxy.proxies, l, obj2) 106 EINA_LIST_FOREACH(obj->proxy.proxies, l, obj2)
105 { 107 {
@@ -111,8 +113,8 @@ evas_object_change(Evas_Object *obj)
111void 113void
112evas_object_render_pre_visible_change(Eina_Array *rects, Evas_Object *obj, int is_v, int was_v) 114evas_object_render_pre_visible_change(Eina_Array *rects, Evas_Object *obj, int is_v, int was_v)
113{ 115{
114 if (obj->smart.smart) return ; 116 if (obj->smart.smart) return;
115 if (is_v == was_v) return ; 117 if (is_v == was_v) return;
116 if (is_v) 118 if (is_v)
117 { 119 {
118 evas_add_rect(rects, 120 evas_add_rect(rects,
@@ -134,8 +136,8 @@ evas_object_render_pre_visible_change(Eina_Array *rects, Evas_Object *obj, int i
134void 136void
135evas_object_render_pre_clipper_change(Eina_Array *rects, Evas_Object *obj) 137evas_object_render_pre_clipper_change(Eina_Array *rects, Evas_Object *obj)
136{ 138{
137 if (obj->smart.smart) return ; 139 if (obj->smart.smart) return;
138 if (obj->cur.clipper == obj->prev.clipper) return ; 140 if (obj->cur.clipper == obj->prev.clipper) return;
139 if ((obj->cur.clipper) && (obj->prev.clipper)) 141 if ((obj->cur.clipper) && (obj->prev.clipper))
140 { 142 {
141 /* get difference rects between clippers */ 143 /* get difference rects between clippers */
@@ -223,7 +225,8 @@ evas_object_clip_changes_clean(Evas_Object *obj)
223{ 225{
224 Eina_Rectangle *r; 226 Eina_Rectangle *r;
225 227
226 EINA_LIST_FREE(obj->clip.changes, r) eina_rectangle_free(r); 228 EINA_LIST_FREE(obj->clip.changes, r)
229 eina_rectangle_free(r);
227} 230}
228 231
229void 232void
@@ -408,11 +411,11 @@ evas_object_del(Evas_Object *obj)
408 obj->focused = 0; 411 obj->focused = 0;
409 obj->layer->evas->focused = NULL; 412 obj->layer->evas->focused = NULL;
410 _evas_object_event_new(); 413 _evas_object_event_new();
411 evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_OUT, NULL); 414 evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_OUT, NULL, _evas_event_counter);
412 _evas_post_event_callback_call(obj->layer->evas); 415 _evas_post_event_callback_call(obj->layer->evas);
413 } 416 }
414 _evas_object_event_new(); 417 _evas_object_event_new();
415 evas_object_event_callback_call(obj, EVAS_CALLBACK_DEL, NULL); 418 evas_object_event_callback_call(obj, EVAS_CALLBACK_DEL, NULL, _evas_event_counter);
416 _evas_post_event_callback_call(obj->layer->evas); 419 _evas_post_event_callback_call(obj->layer->evas);
417 if (obj->mouse_grabbed > 0) 420 if (obj->mouse_grabbed > 0)
418 obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed; 421 obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed;
@@ -426,9 +429,6 @@ evas_object_del(Evas_Object *obj)
426 evas_object_free(obj, 1); 429 evas_object_free(obj, 1);
427 return; 430 return;
428 } 431 }
429 obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed;
430 obj->mouse_grabbed = 0;
431 obj->mouse_in = 0;
432 evas_object_grabs_cleanup(obj); 432 evas_object_grabs_cleanup(obj);
433 while (obj->clip.clipees) 433 while (obj->clip.clipees)
434 evas_object_clip_unset(obj->clip.clipees->data); 434 evas_object_clip_unset(obj->clip.clipees->data);
@@ -438,7 +438,7 @@ evas_object_del(Evas_Object *obj)
438 if (obj->smart.smart) evas_object_smart_del(obj); 438 if (obj->smart.smart) evas_object_smart_del(obj);
439 evas_object_map_set(obj, NULL); 439 evas_object_map_set(obj, NULL);
440 _evas_object_event_new(); 440 _evas_object_event_new();
441 evas_object_event_callback_call(obj, EVAS_CALLBACK_FREE, NULL); 441 evas_object_event_callback_call(obj, EVAS_CALLBACK_FREE, NULL, _evas_event_counter);
442 _evas_post_event_callback_call(obj->layer->evas); 442 _evas_post_event_callback_call(obj->layer->evas);
443 evas_object_smart_cleanup(obj); 443 evas_object_smart_cleanup(obj);
444 obj->delete_me = 1; 444 obj->delete_me = 1;
@@ -449,18 +449,38 @@ EAPI void
449evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) 449evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
450{ 450{
451 int is, was = 0, pass = 0, freeze = 0; 451 int is, was = 0, pass = 0, freeze = 0;
452 int nx = 0, ny = 0;
452 453
453 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 454 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
454 return; 455 return;
455 MAGIC_CHECK_END(); 456 MAGIC_CHECK_END();
456 if (obj->delete_me) return; 457 if (obj->delete_me) return;
457 if (evas_object_intercept_call_move(obj, x, y)) return; 458
459 nx = x;
460 ny = y;
461
462 if (!obj->is_frame)
463 {
464 int fx, fy;
465
466 evas_output_framespace_get(obj->layer->evas, &fx, &fy, NULL, NULL);
467 if (!obj->smart.parent)
468 {
469 nx += fx;
470 ny += fy;
471 }
472 }
473
474 if (evas_object_intercept_call_move(obj, nx, ny)) return;
475
458 if (obj->doing.in_move > 0) 476 if (obj->doing.in_move > 0)
459 { 477 {
460 WRN("evas_object_move() called on object %p when in the middle of moving the same object", obj); 478 WRN("evas_object_move() called on object %p when in the middle of moving the same object", obj);
461 return; 479 return;
462 } 480 }
463 if ((obj->cur.geometry.x == x) && (obj->cur.geometry.y == y)) return; 481
482 if ((obj->cur.geometry.x == nx) && (obj->cur.geometry.y == ny)) return;
483
464 if (obj->layer->evas->events_frozen <= 0) 484 if (obj->layer->evas->events_frozen <= 0)
465 { 485 {
466 pass = evas_event_passes_through(obj); 486 pass = evas_event_passes_through(obj);
@@ -471,13 +491,16 @@ evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
471 obj->layer->evas->pointer.y, 1, 1); 491 obj->layer->evas->pointer.y, 1, 1);
472 } 492 }
473 obj->doing.in_move++; 493 obj->doing.in_move++;
494
474 if (obj->smart.smart) 495 if (obj->smart.smart)
475 { 496 {
476 if (obj->smart.smart->smart_class->move) 497 if (obj->smart.smart->smart_class->move)
477 obj->smart.smart->smart_class->move(obj, x, y); 498 obj->smart.smart->smart_class->move(obj, nx, ny);
478 } 499 }
479 obj->cur.geometry.x = x; 500
480 obj->cur.geometry.y = y; 501 obj->cur.geometry.x = nx;
502 obj->cur.geometry.y = ny;
503
481//// obj->cur.cache.geometry.validity = 0; 504//// obj->cur.cache.geometry.validity = 0;
482 obj->changed_move = 1; 505 obj->changed_move = 1;
483 evas_object_change(obj); 506 evas_object_change(obj);
@@ -509,19 +532,40 @@ EAPI void
509evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) 532evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
510{ 533{
511 int is, was = 0, pass = 0, freeze =0; 534 int is, was = 0, pass = 0, freeze =0;
535 int nw = 0, nh = 0;
512 536
513 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 537 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
514 return; 538 return;
515 MAGIC_CHECK_END(); 539 MAGIC_CHECK_END();
516 if (obj->delete_me) return; 540 if (obj->delete_me) return;
517 if (w < 0) w = 0; if (h < 0) h = 0; 541 if (w < 0) w = 0; if (h < 0) h = 0;
518 if (evas_object_intercept_call_resize(obj, w, h)) return; 542
543 nw = w;
544 nh = h;
545 if (!obj->is_frame)
546 {
547 int fw, fh;
548
549 evas_output_framespace_get(obj->layer->evas, NULL, NULL, &fw, &fh);
550 if (!obj->smart.parent)
551 {
552 nw = w - fw;
553 nh = h - fh;
554 if (nw < 0) nw = 0;
555 if (nh < 0) nh = 0;
556 }
557 }
558
559 if (evas_object_intercept_call_resize(obj, nw, nh)) return;
560
519 if (obj->doing.in_resize > 0) 561 if (obj->doing.in_resize > 0)
520 { 562 {
521 WRN("evas_object_resize() called on object %p when in the middle of resizing the same object", obj); 563 WRN("evas_object_resize() called on object %p when in the middle of resizing the same object", obj);
522 return; 564 return;
523 } 565 }
524 if ((obj->cur.geometry.w == w) && (obj->cur.geometry.h == h)) return; 566
567 if ((obj->cur.geometry.w == nw) && (obj->cur.geometry.h == nh)) return;
568
525 if (obj->layer->evas->events_frozen <= 0) 569 if (obj->layer->evas->events_frozen <= 0)
526 { 570 {
527 pass = evas_event_passes_through(obj); 571 pass = evas_event_passes_through(obj);
@@ -532,13 +576,16 @@ evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
532 obj->layer->evas->pointer.y, 1, 1); 576 obj->layer->evas->pointer.y, 1, 1);
533 } 577 }
534 obj->doing.in_resize++; 578 obj->doing.in_resize++;
579
535 if (obj->smart.smart) 580 if (obj->smart.smart)
536 { 581 {
537 if (obj->smart.smart->smart_class->resize) 582 if (obj->smart.smart->smart_class->resize)
538 obj->smart.smart->smart_class->resize(obj, w, h); 583 obj->smart.smart->smart_class->resize(obj, nw, nh);
539 } 584 }
540 obj->cur.geometry.w = w; 585
541 obj->cur.geometry.h = h; 586 obj->cur.geometry.w = nw;
587 obj->cur.geometry.h = nh;
588
542//// obj->cur.cache.geometry.validity = 0; 589//// obj->cur.cache.geometry.validity = 0;
543 evas_object_change(obj); 590 evas_object_change(obj);
544 evas_object_clip_dirty(obj); 591 evas_object_clip_dirty(obj);
@@ -581,6 +628,7 @@ evas_object_geometry_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, E
581 if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; if (h) *h = 0; 628 if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; if (h) *h = 0;
582 return; 629 return;
583 } 630 }
631
584 if (x) *x = obj->cur.geometry.x; 632 if (x) *x = obj->cur.geometry.x;
585 if (y) *y = obj->cur.geometry.y; 633 if (y) *y = obj->cur.geometry.y;
586 if (w) *w = obj->cur.geometry.w; 634 if (w) *w = obj->cur.geometry.w;
@@ -1084,8 +1132,7 @@ evas_object_render_op_set(Evas_Object *obj, Evas_Render_Op render_op)
1084 return; 1132 return;
1085 MAGIC_CHECK_END(); 1133 MAGIC_CHECK_END();
1086 if (obj->delete_me) return; 1134 if (obj->delete_me) return;
1087 if ((Evas_Render_Op)obj->cur.render_op == render_op) 1135 if (obj->cur.render_op == render_op) return;
1088 return;
1089 obj->cur.render_op = render_op; 1136 obj->cur.render_op = render_op;
1090 evas_object_change(obj); 1137 evas_object_change(obj);
1091} 1138}
@@ -1317,3 +1364,20 @@ evas_object_static_clip_get(const Evas_Object *obj)
1317 return obj->is_static_clip; 1364 return obj->is_static_clip;
1318} 1365}
1319 1366
1367EAPI void
1368evas_object_is_frame_object_set(Evas_Object *obj, Eina_Bool is_frame)
1369{
1370 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
1371 return;
1372 MAGIC_CHECK_END();
1373 obj->is_frame = is_frame;
1374}
1375
1376EAPI Eina_Bool
1377evas_object_is_frame_object_get(Evas_Object *obj)
1378{
1379 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
1380 return EINA_FALSE;
1381 MAGIC_CHECK_END();
1382 return obj->is_frame;
1383}
diff --git a/libraries/evas/src/lib/canvas/evas_object_smart.c b/libraries/evas/src/lib/canvas/evas_object_smart.c
index a7dfcdf..69d7f3b 100644
--- a/libraries/evas/src/lib/canvas/evas_object_smart.c
+++ b/libraries/evas/src/lib/canvas/evas_object_smart.c
@@ -402,6 +402,37 @@ evas_object_smart_callback_del(Evas_Object *obj, const char *event, Evas_Smart_C
402 return NULL; 402 return NULL;
403} 403}
404 404
405EAPI void *
406evas_object_smart_callback_del_full(Evas_Object *obj, const char *event, Evas_Smart_Cb func, const void *data)
407{
408 Evas_Object_Smart *o;
409 Eina_List *l;
410 Evas_Smart_Callback *cb;
411
412 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
413 return NULL;
414 MAGIC_CHECK_END();
415 o = (Evas_Object_Smart *)(obj->object_data);
416 MAGIC_CHECK(o, Evas_Object_Smart, MAGIC_OBJ_SMART);
417 return NULL;
418 MAGIC_CHECK_END();
419 if (!event) return NULL;
420 EINA_LIST_FOREACH(o->callbacks, l, cb)
421 {
422 if ((!strcmp(cb->event, event)) && (cb->func == func) && (cb->func_data == data))
423 {
424 void *ret;
425
426 ret = cb->func_data;
427 cb->delete_me = 1;
428 o->deletions_waiting = 1;
429 evas_object_smart_callbacks_clear(obj);
430 return ret;
431 }
432 }
433 return NULL;
434}
435
405EAPI void 436EAPI void
406evas_object_smart_callback_call(Evas_Object *obj, const char *event, void *event_info) 437evas_object_smart_callback_call(Evas_Object *obj, const char *event, void *event_info)
407{ 438{
diff --git a/libraries/evas/src/lib/canvas/evas_object_table.c b/libraries/evas/src/lib/canvas/evas_object_table.c
index 6e28fce..cdfa07f 100644
--- a/libraries/evas/src/lib/canvas/evas_object_table.c
+++ b/libraries/evas/src/lib/canvas/evas_object_table.c
@@ -1,5 +1,5 @@
1#include <errno.h>
2#include "evas_common.h" 1#include "evas_common.h"
2#include <errno.h>
3 3
4typedef struct _Evas_Object_Table_Data Evas_Object_Table_Data; 4typedef struct _Evas_Object_Table_Data Evas_Object_Table_Data;
5typedef struct _Evas_Object_Table_Option Evas_Object_Table_Option; 5typedef struct _Evas_Object_Table_Option Evas_Object_Table_Option;
diff --git a/libraries/evas/src/lib/canvas/evas_object_text.c b/libraries/evas/src/lib/canvas/evas_object_text.c
index 6c30fcc..dbe5e08 100644
--- a/libraries/evas/src/lib/canvas/evas_object_text.c
+++ b/libraries/evas/src/lib/canvas/evas_object_text.c
@@ -531,8 +531,9 @@ _evas_object_text_layout(Evas_Object *obj, Evas_Object_Text *o, const Eina_Unico
531{ 531{
532 EvasBiDiStrIndex *v_to_l = NULL; 532 EvasBiDiStrIndex *v_to_l = NULL;
533 size_t pos, visual_pos; 533 size_t pos, visual_pos;
534 int len = eina_unicode_strlen(text), par_len; 534 int len = eina_unicode_strlen(text);
535#ifdef BIDI_SUPPORT 535#ifdef BIDI_SUPPORT
536 int par_len = len;
536 int *segment_idxs = NULL; 537 int *segment_idxs = NULL;
537 if (o->bidi_delimiters) 538 if (o->bidi_delimiters)
538 segment_idxs = evas_bidi_segment_idxs_get(text, o->bidi_delimiters); 539 segment_idxs = evas_bidi_segment_idxs_get(text, o->bidi_delimiters);
@@ -543,7 +544,6 @@ _evas_object_text_layout(Evas_Object *obj, Evas_Object_Text *o, const Eina_Unico
543#endif 544#endif
544 visual_pos = pos = 0; 545 visual_pos = pos = 0;
545 546
546 par_len = len;
547 while (len > 0) 547 while (len > 0)
548 { 548 {
549 Evas_Font_Instance *script_fi = NULL; 549 Evas_Font_Instance *script_fi = NULL;
diff --git a/libraries/evas/src/lib/canvas/evas_object_textblock.c b/libraries/evas/src/lib/canvas/evas_object_textblock.c
index 7941a45..568911c 100644
--- a/libraries/evas/src/lib/canvas/evas_object_textblock.c
+++ b/libraries/evas/src/lib/canvas/evas_object_textblock.c
@@ -61,13 +61,13 @@
61 * @subsection textblock_layout The layout system 61 * @subsection textblock_layout The layout system
62 * @todo write @ref textblock_layout 62 * @todo write @ref textblock_layout
63 */ 63 */
64#include <stdlib.h>
65
66#include "evas_common.h" 64#include "evas_common.h"
67#include "evas_private.h" 65#include "evas_private.h"
66#include <stdlib.h>
68 67
69#ifdef HAVE_LINEBREAK 68#ifdef HAVE_LINEBREAK
70#include "linebreak.h" 69#include "linebreak.h"
70#include "wordbreak.h"
71#endif 71#endif
72 72
73/* save typing */ 73/* save typing */
@@ -78,12 +78,19 @@
78static const char o_type[] = "textblock"; 78static const char o_type[] = "textblock";
79 79
80/* The char to be inserted instead of visible formats */ 80/* The char to be inserted instead of visible formats */
81#define EVAS_TEXTBLOCK_REPLACEMENT_CHAR 0xFFFC 81#define _REPLACEMENT_CHAR 0xFFFC
82#define _PARAGRAPH_SEPARATOR 0x2029 82#define _PARAGRAPH_SEPARATOR 0x2029
83#define _NEWLINE '\n'
84#define _TAB '\t'
85
86#define _REPLACEMENT_CHAR_UTF8 "\xEF\xBF\xBC"
87#define _PARAGRAPH_SEPARATOR_UTF8 "\xE2\x80\xA9"
88#define _NEWLINE_UTF8 "\n"
89#define _TAB_UTF8 "\t"
83#define EVAS_TEXTBLOCK_IS_VISIBLE_FORMAT_CHAR(ch) \ 90#define EVAS_TEXTBLOCK_IS_VISIBLE_FORMAT_CHAR(ch) \
84 (((ch) == EVAS_TEXTBLOCK_REPLACEMENT_CHAR) || \ 91 (((ch) == _REPLACEMENT_CHAR) || \
85 ((ch) == '\n') || \ 92 ((ch) == _NEWLINE) || \
86 ((ch) == '\t') || \ 93 ((ch) == _TAB) || \
87 ((ch) == _PARAGRAPH_SEPARATOR)) 94 ((ch) == _PARAGRAPH_SEPARATOR))
88 95
89/* private struct for textblock object internal data */ 96/* private struct for textblock object internal data */
@@ -101,6 +108,12 @@ typedef struct _Evas_Object_Textblock Evas_Object_Textblock;
101typedef struct _Evas_Object_Style_Tag Evas_Object_Style_Tag; 108typedef struct _Evas_Object_Style_Tag Evas_Object_Style_Tag;
102/** 109/**
103 * @internal 110 * @internal
111 * @typedef Evas_Object_Style_Tag
112 * The structure used for finding style tags.
113 */
114typedef struct _Evas_Object_Style_Tag_Base Evas_Object_Style_Tag_Base;
115/**
116 * @internal
104 * @typedef Evas_Object_Textblock_Node_Text 117 * @typedef Evas_Object_Textblock_Node_Text
105 * A text node. 118 * A text node.
106 */ 119 */
@@ -195,21 +208,26 @@ typedef struct _Evas_Object_Textblock_Format Evas_Object_Textblock_Format;
195 * Returns true if closer is the closer of base. 208 * Returns true if closer is the closer of base.
196 */ 209 */
197#define _FORMAT_IS_CLOSER_OF(base, closer, closer_len) \ 210#define _FORMAT_IS_CLOSER_OF(base, closer, closer_len) \
198 (!strncmp(base + 1, closer, closer_len) && \ 211 (!strncmp(base, closer, closer_len) && \
199 (!base[closer_len + 1] || \ 212 (!base[closer_len] || \
200 (base[closer_len + 1] == '=') || \ 213 (base[closer_len] == '=') || \
201 _is_white(base[closer_len + 1]))) 214 _is_white(base[closer_len])))
202 215
203/*FIXME: document the structs and struct items. */ 216/*FIXME: document the structs and struct items. */
204struct _Evas_Object_Style_Tag 217struct _Evas_Object_Style_Tag_Base
205{ 218{
206 EINA_INLIST;
207 char *tag; 219 char *tag;
208 char *replace; 220 char *replace;
209 size_t tag_len; 221 size_t tag_len;
210 size_t replace_len; 222 size_t replace_len;
211}; 223};
212 224
225struct _Evas_Object_Style_Tag
226{
227 EINA_INLIST;
228 Evas_Object_Style_Tag_Base tag;
229};
230
213struct _Evas_Object_Textblock_Node_Text 231struct _Evas_Object_Textblock_Node_Text
214{ 232{
215 EINA_INLIST; 233 EINA_INLIST;
@@ -229,11 +247,18 @@ struct _Evas_Object_Textblock_Node_Format
229 Evas_Object_Textblock_Node_Text *text_node; 247 Evas_Object_Textblock_Node_Text *text_node;
230 size_t offset; 248 size_t offset;
231 unsigned char anchor : 2; 249 unsigned char anchor : 2;
250 Eina_Bool opener : 1;
251 Eina_Bool own_closer : 1;
232 Eina_Bool visible : 1; 252 Eina_Bool visible : 1;
233 Eina_Bool format_change : 1; 253 Eina_Bool format_change : 1;
234 Eina_Bool is_new : 1; 254 Eina_Bool is_new : 1;
235}; 255};
236 256
257/* The default tags to use */
258static const Evas_Object_Style_Tag_Base default_tags[] = {
259 { "b", "+ font_weight=Bold", 1, 18 },
260 { "i", "+ font_style=Italic", 1, 19 }};
261
237#define ANCHOR_NONE 0 262#define ANCHOR_NONE 0
238#define ANCHOR_A 1 263#define ANCHOR_A 1
239#define ANCHOR_ITEM 2 264#define ANCHOR_ITEM 2
@@ -538,8 +563,8 @@ _style_replace(Evas_Textblock_Style *ts, const char *style_text)
538 563
539 tag = (Evas_Object_Style_Tag *)ts->tags; 564 tag = (Evas_Object_Style_Tag *)ts->tags;
540 ts->tags = (Evas_Object_Style_Tag *)eina_inlist_remove(EINA_INLIST_GET(ts->tags), EINA_INLIST_GET(tag)); 565 ts->tags = (Evas_Object_Style_Tag *)eina_inlist_remove(EINA_INLIST_GET(ts->tags), EINA_INLIST_GET(tag));
541 free(tag->tag); 566 free(tag->tag.tag);
542 free(tag->replace); 567 free(tag->tag.replace);
543 free(tag); 568 free(tag);
544 } 569 }
545 ts->default_tag = NULL; 570 ts->default_tag = NULL;
@@ -567,19 +592,38 @@ _style_clear(Evas_Textblock_Style *ts)
567 * @return The replacement string found. 592 * @return The replacement string found.
568 */ 593 */
569static inline const char * 594static inline const char *
570_style_match_tag(Evas_Textblock_Style *ts, const char *s, size_t tag_len, size_t *replace_len) 595_style_match_tag(const Evas_Textblock_Style *ts, const char *s, size_t tag_len, size_t *replace_len)
571{ 596{
572 Evas_Object_Style_Tag *tag; 597 Evas_Object_Style_Tag *tag;
573 598
599 /* Try the style tags */
574 EINA_INLIST_FOREACH(ts->tags, tag) 600 EINA_INLIST_FOREACH(ts->tags, tag)
575 { 601 {
576 if (tag->tag_len != tag_len) continue; 602 if (tag->tag.tag_len != tag_len) continue;
577 if (!strncmp(tag->tag, s, tag_len)) 603 if (!strncmp(tag->tag.tag, s, tag_len))
578 { 604 {
579 *replace_len = tag->replace_len; 605 *replace_len = tag->tag.replace_len;
580 return tag->replace; 606 return tag->tag.replace;
581 } 607 }
582 } 608 }
609
610 /* Try the default tags */
611 {
612 size_t i;
613 const Evas_Object_Style_Tag_Base *btag;
614 for (btag = default_tags, i = 0 ;
615 i < (sizeof(default_tags) / sizeof(default_tags[0])) ;
616 btag++, i++)
617 {
618 if (btag->tag_len != tag_len) continue;
619 if (!strncmp(btag->tag, s, tag_len))
620 {
621 *replace_len = btag->replace_len;
622 return btag->replace;
623 }
624 }
625 }
626
583 *replace_len = 0; 627 *replace_len = 0;
584 return NULL; 628 return NULL;
585} 629}
@@ -1689,8 +1733,8 @@ _format_fill(Evas_Object *obj, Evas_Object_Textblock_Format *fmt, const char *st
1689 1733
1690 s = str; 1734 s = str;
1691 1735
1692 /* get rid of anything +s or -s off the start of the string */ 1736 /* get rid of any spaces at the start of the string */
1693 while ((*s == ' ') || (*s == '+') || (*s == '-')) s++; 1737 while (*s == ' ') s++;
1694 1738
1695 while ((item = _format_parse(&s))) 1739 while ((item = _format_parse(&s)))
1696 { 1740 {
@@ -2131,7 +2175,6 @@ _layout_format_pop(Ctxt *c, const char *format)
2131 if ((c->format_stack) && (c->format_stack->next)) 2175 if ((c->format_stack) && (c->format_stack->next))
2132 { 2176 {
2133 Eina_List *redo_nodes = NULL; 2177 Eina_List *redo_nodes = NULL;
2134 format++; /* Skip the '-' */
2135 2178
2136 /* Generic pop, should just pop. */ 2179 /* Generic pop, should just pop. */
2137 if (((format[0] == ' ') && !format[1]) || 2180 if (((format[0] == ' ') && !format[1]) ||
@@ -2994,21 +3037,29 @@ _format_finalize(Evas_Object *obj, Evas_Object_Textblock_Format *fmt)
2994 * @def _IS_TAB(item) 3037 * @def _IS_TAB(item)
2995 */ 3038 */
2996#define _IS_TAB(item) \ 3039#define _IS_TAB(item) \
2997 (!strcmp(item, "\t") || !strcmp(item, "\\t")) 3040 (!strcmp(item, "tab") || !strcmp(item, "\t") || !strcmp(item, "\\t"))
2998/** 3041/**
2999 * @internal 3042 * @internal
3000 * Returns true if the item is a line spearator, false otherwise 3043 * Returns true if the item is a line spearator, false otherwise
3001 * @def _IS_LINE_SEPARATOR(item) 3044 * @def _IS_LINE_SEPARATOR(item)
3002 */ 3045 */
3003#define _IS_LINE_SEPARATOR(item) \ 3046#define _IS_LINE_SEPARATOR(item) \
3004 (!strcmp(item, "\n") || !strcmp(item, "\\n")) 3047 (!strcmp(item, "br") || !strcmp(item, "\n") || !strcmp(item, "\\n"))
3005/** 3048/**
3006 * @internal 3049 * @internal
3007 * Returns true if the item is a paragraph separator, false otherwise 3050 * Returns true if the item is a paragraph separator, false otherwise
3008 * @def _IS_PARAGRAPH_SEPARATOR(item) 3051 * @def _IS_PARAGRAPH_SEPARATOR(item)
3009 */ 3052 */
3053#define _IS_PARAGRAPH_SEPARATOR_SIMPLE(item) \
3054 (!strcmp(item, "ps"))
3055/**
3056 * @internal
3057 * Returns true if the item is a paragraph separator, false otherwise
3058 * takes legacy mode into account.
3059 * @def _IS_PARAGRAPH_SEPARATOR(item)
3060 */
3010#define _IS_PARAGRAPH_SEPARATOR(o, item) \ 3061#define _IS_PARAGRAPH_SEPARATOR(o, item) \
3011 (!strcmp(item, "ps") || \ 3062 (_IS_PARAGRAPH_SEPARATOR_SIMPLE(item) || \
3012 (o->legacy_newline && _IS_LINE_SEPARATOR(item))) /* Paragraph separator */ 3063 (o->legacy_newline && _IS_LINE_SEPARATOR(item))) /* Paragraph separator */
3013 3064
3014/** 3065/**
@@ -3041,7 +3092,7 @@ _layout_do_format(const Evas_Object *obj __UNUSED__, Ctxt *c,
3041 int handled = 0; 3092 int handled = 0;
3042 3093
3043 s = n->format; 3094 s = n->format;
3044 if (!strncmp(s, "+ item ", 7)) 3095 if (!strncmp(s, "item ", 5))
3045 { 3096 {
3046 // one of: 3097 // one of:
3047 // item size=20x10 href=name 3098 // item size=20x10 href=name
@@ -3133,16 +3184,14 @@ _layout_do_format(const Evas_Object *obj __UNUSED__, Ctxt *c,
3133 if (!handled) 3184 if (!handled)
3134 { 3185 {
3135 Eina_Bool push_fmt = EINA_FALSE; 3186 Eina_Bool push_fmt = EINA_FALSE;
3136 if (s[0] == '+') 3187 if (n->opener && !n->own_closer)
3137 { 3188 {
3138 fmt = _layout_format_push(c, fmt, n); 3189 fmt = _layout_format_push(c, fmt, n);
3139 s++;
3140 push_fmt = EINA_TRUE; 3190 push_fmt = EINA_TRUE;
3141 } 3191 }
3142 else if (s[0] == '-') 3192 else if (!n->opener)
3143 { 3193 {
3144 fmt = _layout_format_pop(c, n->orig_format); 3194 fmt = _layout_format_pop(c, n->orig_format);
3145 s++;
3146 } 3195 }
3147 while ((item = _format_parse(&s))) 3196 while ((item = _format_parse(&s)))
3148 { 3197 {
@@ -3166,7 +3215,7 @@ _layout_do_format(const Evas_Object *obj __UNUSED__, Ctxt *c,
3166 3215
3167 fi->parent.w = fi->parent.adv = 0; 3216 fi->parent.w = fi->parent.adv = 0;
3168 } 3217 }
3169 else if ((!strcmp(item, "\t")) || (!strcmp(item, "\\t"))) 3218 else if (_IS_TAB(item))
3170 { 3219 {
3171 Evas_Object_Textblock_Format_Item *fi; 3220 Evas_Object_Textblock_Format_Item *fi;
3172 3221
@@ -3215,28 +3264,33 @@ _layout_update_par(Ctxt *c)
3215/* -1 means no wrap */ 3264/* -1 means no wrap */
3216static int 3265static int
3217_layout_get_charwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt, 3266_layout_get_charwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3218 const Evas_Object_Textblock_Text_Item *ti, size_t line_start, 3267 const Evas_Object_Textblock_Item *it, size_t line_start,
3219 const char *breaks) 3268 const char *breaks)
3220{ 3269{
3221 int wrap; 3270 int wrap;
3222 size_t uwrap; 3271 size_t uwrap;
3223 size_t len = eina_ustrbuf_length_get(ti->parent.text_node->unicode); 3272 size_t len = eina_ustrbuf_length_get(it->text_node->unicode);
3224 /* Currently not being used, because it doesn't contain relevant 3273 /* Currently not being used, because it doesn't contain relevant
3225 * information */ 3274 * information */
3226 (void) breaks; 3275 (void) breaks;
3227 3276
3228 { 3277 {
3229 wrap = _layout_text_cutoff_get(c, fmt, ti); 3278 if (it->type == EVAS_TEXTBLOCK_ITEM_FORMAT)
3279 wrap = 0;
3280 else
3281 wrap = _layout_text_cutoff_get(c, fmt, _ITEM_TEXT(it));
3282
3230 if (wrap < 0) 3283 if (wrap < 0)
3231 return -1; 3284 return -1;
3232 uwrap = (size_t) wrap + ti->parent.text_pos; 3285 uwrap = (size_t) wrap + it->text_pos;
3233 } 3286 }
3234 3287
3235 3288
3236 if (uwrap == line_start) 3289 if ((uwrap == line_start) && (it->type == EVAS_TEXTBLOCK_ITEM_TEXT))
3237 { 3290 {
3238 uwrap = ti->parent.text_pos + 3291 uwrap = it->text_pos +
3239 (size_t) evas_common_text_props_cluster_next(&ti->text_props, wrap); 3292 (size_t) evas_common_text_props_cluster_next(
3293 &_ITEM_TEXT(it)->text_props, wrap);
3240 } 3294 }
3241 if ((uwrap <= line_start) || (uwrap > len)) 3295 if ((uwrap <= line_start) || (uwrap > len))
3242 return -1; 3296 return -1;
@@ -3259,16 +3313,16 @@ _layout_get_charwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3259#endif 3313#endif
3260static int 3314static int
3261_layout_get_word_mixwrap_common(Ctxt *c, Evas_Object_Textblock_Format *fmt, 3315_layout_get_word_mixwrap_common(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3262 const Evas_Object_Textblock_Text_Item *ti, Eina_Bool mixed_wrap, 3316 const Evas_Object_Textblock_Item *it, Eina_Bool mixed_wrap,
3263 size_t line_start, const char *breaks) 3317 size_t line_start, const char *breaks)
3264{ 3318{
3265 Eina_Bool wrap_after = EINA_FALSE; 3319 Eina_Bool wrap_after = EINA_FALSE;
3266 size_t wrap; 3320 size_t wrap;
3267 size_t orig_wrap; 3321 size_t orig_wrap;
3268 const Eina_Unicode *str = eina_ustrbuf_string_get( 3322 const Eina_Unicode *str = eina_ustrbuf_string_get(
3269 ti->parent.text_node->unicode); 3323 it->text_node->unicode);
3270 int item_start = ti->parent.text_pos; 3324 int item_start = it->text_pos;
3271 size_t len = eina_ustrbuf_length_get(ti->parent.text_node->unicode); 3325 size_t len = eina_ustrbuf_length_get(it->text_node->unicode);
3272#ifndef HAVE_LINEBREAK 3326#ifndef HAVE_LINEBREAK
3273 /* Not used without liblinebreak ATM. */ 3327 /* Not used without liblinebreak ATM. */
3274 (void) breaks; 3328 (void) breaks;
@@ -3276,7 +3330,10 @@ _layout_get_word_mixwrap_common(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3276 3330
3277 { 3331 {
3278 int swrap = -1; 3332 int swrap = -1;
3279 swrap = _layout_text_cutoff_get(c, fmt, ti); 3333 if (it->type == EVAS_TEXTBLOCK_ITEM_FORMAT)
3334 swrap = 0;
3335 else
3336 swrap = _layout_text_cutoff_get(c, fmt, _ITEM_TEXT(it));
3280 /* Avoiding too small textblocks to even contain one char. 3337 /* Avoiding too small textblocks to even contain one char.
3281 * FIXME: This can cause breaking inside ligatures. */ 3338 * FIXME: This can cause breaking inside ligatures. */
3282 3339
@@ -3331,7 +3388,7 @@ _layout_get_word_mixwrap_common(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3331 { 3388 {
3332 if (mixed_wrap) 3389 if (mixed_wrap)
3333 { 3390 {
3334 return _layout_get_charwrap(c, fmt, ti, 3391 return _layout_get_charwrap(c, fmt, it,
3335 line_start, breaks); 3392 line_start, breaks);
3336 } 3393 }
3337 else 3394 else
@@ -3362,20 +3419,20 @@ _layout_get_word_mixwrap_common(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3362/* -1 means no wrap */ 3419/* -1 means no wrap */
3363static int 3420static int
3364_layout_get_wordwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt, 3421_layout_get_wordwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3365 const Evas_Object_Textblock_Text_Item *ti, size_t line_start, 3422 const Evas_Object_Textblock_Item *it, size_t line_start,
3366 const char *breaks) 3423 const char *breaks)
3367{ 3424{
3368 return _layout_get_word_mixwrap_common(c, fmt, ti, EINA_FALSE, line_start, 3425 return _layout_get_word_mixwrap_common(c, fmt, it, EINA_FALSE, line_start,
3369 breaks); 3426 breaks);
3370} 3427}
3371 3428
3372/* -1 means no wrap */ 3429/* -1 means no wrap */
3373static int 3430static int
3374_layout_get_mixedwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt, 3431_layout_get_mixedwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3375 const Evas_Object_Textblock_Text_Item *ti, size_t line_start, 3432 const Evas_Object_Textblock_Item *it, size_t line_start,
3376 const char *breaks) 3433 const char *breaks)
3377{ 3434{
3378 return _layout_get_word_mixwrap_common(c, fmt, ti, EINA_TRUE, line_start, 3435 return _layout_get_word_mixwrap_common(c, fmt, it, EINA_TRUE, line_start,
3379 breaks); 3436 breaks);
3380} 3437}
3381 3438
@@ -3503,7 +3560,7 @@ _layout_paragraph_reorder_lines(Evas_Object_Textblock_Paragraph *par)
3503 3560
3504static void 3561static void
3505_layout_paragraph_render(Evas_Object_Textblock *o, 3562_layout_paragraph_render(Evas_Object_Textblock *o,
3506 Evas_Object_Textblock_Paragraph *par) 3563 Evas_Object_Textblock_Paragraph *par)
3507{ 3564{
3508 if (par->rendered) 3565 if (par->rendered)
3509 return; 3566 return;
@@ -3521,6 +3578,8 @@ _layout_paragraph_render(Evas_Object_Textblock *o,
3521 par->bidi_props = NULL; 3578 par->bidi_props = NULL;
3522 } 3579 }
3523 } 3580 }
3581#else
3582 (void) o;
3524#endif 3583#endif
3525} 3584}
3526 3585
@@ -3656,120 +3715,127 @@ _layout_par(Ctxt *c)
3656 else if ((it->format->wrap_word || it->format->wrap_char || 3715 else if ((it->format->wrap_word || it->format->wrap_char ||
3657 it->format->wrap_mixed) && it->text_node) 3716 it->format->wrap_mixed) && it->text_node)
3658 { 3717 {
3659 if (it->type == EVAS_TEXTBLOCK_ITEM_FORMAT) 3718 size_t line_start;
3719 size_t it_len;
3720
3721 it_len = (it->type == EVAS_TEXTBLOCK_ITEM_FORMAT) ?
3722 1 : _ITEM_TEXT(it)->text_props.text_len;
3723
3724
3725#ifdef HAVE_LINEBREAK
3726 /* If we haven't calculated the linebreaks yet,
3727 * do */
3728 if (!line_breaks)
3660 { 3729 {
3661 /* Don't wrap if it's the only item */ 3730 /* Only relevant in those cases */
3662 if (c->ln->items) 3731 if (it->format->wrap_word || it->format->wrap_mixed)
3663 { 3732 {
3664 /*FIXME: I should handle format correctly, 3733 const char *lang;
3665 i.e verify we are allowed to break here */ 3734 lang = (it->format->font.fdesc) ?
3666 _layout_line_advance(c, it->format); 3735 it->format->font.fdesc->lang : "";
3667 wrap = -1; 3736 size_t len =
3737 eina_ustrbuf_length_get(
3738 it->text_node->unicode);
3739 line_breaks = malloc(len);
3740 set_linebreaks_utf32((const utf32_t *)
3741 eina_ustrbuf_string_get(
3742 it->text_node->unicode),
3743 len, lang, line_breaks);
3668 } 3744 }
3669 } 3745 }
3746#endif
3747 if (c->ln->items)
3748 line_start = c->ln->items->text_pos;
3670 else 3749 else
3671 { 3750 line_start = it->text_pos;
3672 Evas_Object_Textblock_Text_Item *ti = _ITEM_TEXT(it);
3673 size_t line_start;
3674 3751
3675#ifdef HAVE_LINEBREAK 3752 adv_line = 1;
3676 /* If we haven't calculated the linebreaks yet, 3753 /* If we don't already have a wrap point from before */
3677 * do */ 3754 if (wrap < 0)
3678 if (!line_breaks) 3755 {
3679 { 3756 if (it->format->wrap_word)
3680 /* Only relevant in those cases */ 3757 wrap = _layout_get_wordwrap(c, it->format, it,
3681 if (it->format->wrap_word || it->format->wrap_mixed) 3758 line_start, line_breaks);
3682 { 3759 else if (it->format->wrap_char)
3683 const char *lang; 3760 wrap = _layout_get_charwrap(c, it->format, it,
3684 lang = (it->format->font.fdesc) ? 3761 line_start, line_breaks);
3685 it->format->font.fdesc->lang : ""; 3762 else if (it->format->wrap_mixed)
3686 size_t len = 3763 wrap = _layout_get_mixedwrap(c, it->format, it,
3687 eina_ustrbuf_length_get( 3764 line_start, line_breaks);
3688 it->text_node->unicode);
3689 line_breaks = malloc(len);
3690 set_linebreaks_utf32((const utf32_t *)
3691 eina_ustrbuf_string_get(
3692 it->text_node->unicode),
3693 len, lang, line_breaks);
3694 }
3695 }
3696#endif
3697 if (c->ln->items)
3698 line_start = c->ln->items->text_pos;
3699 else 3765 else
3700 line_start = ti->parent.text_pos; 3766 wrap = -1;
3701 3767 }
3702 adv_line = 1;
3703 /* If we don't already have a wrap point from before */
3704 if (wrap < 0)
3705 {
3706 if (it->format->wrap_word)
3707 wrap = _layout_get_wordwrap(c, it->format, ti,
3708 line_start, line_breaks);
3709 else if (it->format->wrap_char)
3710 wrap = _layout_get_charwrap(c, it->format, ti,
3711 line_start, line_breaks);
3712 else if (it->format->wrap_mixed)
3713 wrap = _layout_get_mixedwrap(c, it->format, ti,
3714 line_start, line_breaks);
3715 else
3716 wrap = -1;
3717 }
3718 3768
3719 /* If it's before the item, rollback and apply. 3769 /* If it's before the item, rollback and apply.
3720 if it's in the item, cut. 3770 if it's in the item, cut.
3721 If it's after the item, delay the cut */ 3771 If it's after the item, delay the cut */
3722 if (wrap > 0) 3772 if (wrap > 0)
3773 {
3774 size_t uwrap = (size_t) wrap;
3775 if (uwrap < it->text_pos)
3723 { 3776 {
3724 size_t uwrap = (size_t) wrap; 3777 /* Rollback latest additions, and cut that
3725 if (uwrap < ti->parent.text_pos) 3778 item */
3779 i = eina_list_prev(i);
3780 it = eina_list_data_get(i);
3781 while (uwrap < it->text_pos)
3726 { 3782 {
3727 /* Rollback latest additions, and cut that
3728 item */
3729 i = eina_list_prev(i);
3730 it = eina_list_data_get(i);
3731 while (uwrap < it->text_pos)
3732 {
3733 c->ln->items = _ITEM(
3734 eina_inlist_remove(
3735 EINA_INLIST_GET(c->ln->items),
3736 EINA_INLIST_GET(it)));
3737 i = eina_list_prev(i);
3738 it = eina_list_data_get(i);
3739 }
3740 c->x = it->x;
3741 c->ln->items = _ITEM( 3783 c->ln->items = _ITEM(
3742 eina_inlist_remove( 3784 eina_inlist_remove(
3743 EINA_INLIST_GET(c->ln->items), 3785 EINA_INLIST_GET(c->ln->items),
3744 EINA_INLIST_GET(it))); 3786 EINA_INLIST_GET(it)));
3745 continue; 3787 i = eina_list_prev(i);
3788 it = eina_list_data_get(i);
3746 } 3789 }
3747 /* If it points to the end, it means the previous 3790 c->x = it->x;
3748 * char is a whitespace we should remove, so this 3791 c->ln->items = _ITEM(
3749 * is a wanted cutting point. */ 3792 eina_inlist_remove(
3750 else if (uwrap > ti->parent.text_pos + 3793 EINA_INLIST_GET(c->ln->items),
3751 ti->text_props.text_len) 3794 EINA_INLIST_GET(it)));
3752 wrap = -1; /* Delay the cut in a smart way 3795 continue;
3753 i.e use the item_pos as the line_start, because
3754 there's already no cut before*/
3755 else
3756 wrap -= ti->parent.text_pos; /* Cut here */
3757 } 3796 }
3758 3797 /* If it points to the end, it means the previous
3759 if (wrap > 0) 3798 * char is a whitespace we should remove, so this
3799 * is a wanted cutting point. */
3800 else if (uwrap > it->text_pos + it_len)
3760 { 3801 {
3761 _layout_item_text_split_strip_white(c, ti, i, wrap); 3802 /* FIXME: Should redo the ellipsis handling.
3762 } 3803 * If we can do ellipsis, just cut here. */
3763 else if (wrap == 0) 3804 if (it->format->ellipsis == 1.0)
3805 {
3806 _layout_handle_ellipsis(c, it, i);
3807 ret = 1;
3808 goto end;
3809 }
3810 else
3811 {
3812 /* Delay the cut in a smart way i.e use the
3813 item_pos as the line_start, because
3814 there's already no cut before*/
3815 wrap = -1;
3816 }
3817 }
3818 else
3819 wrap -= it->text_pos; /* Cut here */
3820 }
3821
3822 if (wrap > 0)
3823 {
3824 if (it->type == EVAS_TEXTBLOCK_ITEM_TEXT)
3764 { 3825 {
3765 /* Should wrap before the item */ 3826 _layout_item_text_split_strip_white(c,
3766 adv_line = 0; 3827 _ITEM_TEXT(it), i, wrap);
3767 redo_item = 1;
3768 _layout_line_advance(c, it->format);
3769 } 3828 }
3770 /* Reset wrap */
3771 wrap = -1;
3772 } 3829 }
3830 else if (wrap == 0)
3831 {
3832 /* Should wrap before the item */
3833 adv_line = 0;
3834 redo_item = 1;
3835 _layout_line_advance(c, it->format);
3836 }
3837 /* Reset wrap */
3838 wrap = -1;
3773 } 3839 }
3774 } 3840 }
3775 3841
@@ -3844,18 +3910,16 @@ _format_changes_invalidate_text_nodes(Ctxt *c)
3844 const char *fstr = fnode->orig_format; 3910 const char *fstr = fnode->orig_format;
3845 /* balance < 0 means we gave up and everything should be 3911 /* balance < 0 means we gave up and everything should be
3846 * invalidated */ 3912 * invalidated */
3847 if (*fstr == '+') 3913 if (fnode->opener && !fnode->own_closer)
3848 { 3914 {
3849 balance++; 3915 balance++;
3850 if (!fstack) 3916 if (!fstack)
3851 start_n = fnode->text_node; 3917 start_n = fnode->text_node;
3852 fstack = eina_list_prepend(fstack, fnode); 3918 fstack = eina_list_prepend(fstack, fnode);
3853 } 3919 }
3854 else if (*fstr == '-') 3920 else if (!fnode->opener)
3855 { 3921 {
3856 size_t fstr_len; 3922 size_t fstr_len;
3857 /* Skip the '-' */
3858 fstr++;
3859 fstr_len = strlen(fstr); 3923 fstr_len = strlen(fstr);
3860 /* Generic popper, just pop */ 3924 /* Generic popper, just pop */
3861 if (((fstr[0] == ' ') && !fstr[1]) || !fstr[0]) 3925 if (((fstr[0] == ' ') && !fstr[1]) || !fstr[0])
@@ -4429,12 +4493,12 @@ evas_textblock_style_set(Evas_Textblock_Style *ts, const char *text)
4429 { 4493 {
4430 if (!key_start) 4494 if (!key_start)
4431 { 4495 {
4432 if (!isspace(*p)) 4496 if (!isspace((unsigned char)(*p)))
4433 key_start = p; 4497 key_start = p;
4434 } 4498 }
4435 else if (!key_stop) 4499 else if (!key_stop)
4436 { 4500 {
4437 if ((*p == '=') || (isspace(*p))) 4501 if ((*p == '=') || (isspace((unsigned char)(*p))))
4438 key_stop = p; 4502 key_stop = p;
4439 } 4503 }
4440 else if (!val_start) 4504 else if (!val_start)
@@ -4479,10 +4543,10 @@ evas_textblock_style_set(Evas_Textblock_Style *ts, const char *text)
4479 tag = calloc(1, sizeof(Evas_Object_Style_Tag)); 4543 tag = calloc(1, sizeof(Evas_Object_Style_Tag));
4480 if (tag) 4544 if (tag)
4481 { 4545 {
4482 tag->tag = tags; 4546 tag->tag.tag = tags;
4483 tag->replace = replaces; 4547 tag->tag.replace = replaces;
4484 tag->tag_len = tag_len; 4548 tag->tag.tag_len = tag_len;
4485 tag->replace_len = replace_len; 4549 tag->tag.replace_len = replace_len;
4486 ts->tags = (Evas_Object_Style_Tag *)eina_inlist_append(EINA_INLIST_GET(ts->tags), EINA_INLIST_GET(tag)); 4550 ts->tags = (Evas_Object_Style_Tag *)eina_inlist_append(EINA_INLIST_GET(ts->tags), EINA_INLIST_GET(tag));
4487 } 4551 }
4488 else 4552 else
@@ -4689,7 +4753,11 @@ _escaped_char_match(const char *s, int *adv)
4689 while ((*mc) && (*sc)) 4753 while ((*mc) && (*sc))
4690 { 4754 {
4691 if ((unsigned char)*sc < (unsigned char)*mc) return NULL; 4755 if ((unsigned char)*sc < (unsigned char)*mc) return NULL;
4692 if (*sc != *mc) match = 0; 4756 if (*sc != *mc)
4757 {
4758 match = 0;
4759 break;
4760 }
4693 mc++; 4761 mc++;
4694 sc++; 4762 sc++;
4695 } 4763 }
@@ -4723,7 +4791,7 @@ _escaped_char_get(const char *s, const char *s_end)
4723 int base = 10; 4791 int base = 10;
4724 s += 2; /* Skip "&#" */ 4792 s += 2; /* Skip "&#" */
4725 4793
4726 if (tolower(*s) == 'x') 4794 if (tolower((unsigned char)(*s)) == 'x')
4727 { 4795 {
4728 s++; 4796 s++;
4729 base = 16; 4797 base = 16;
@@ -4876,6 +4944,7 @@ evas_object_textblock_text_markup_prepend(Evas_Textblock_Cursor *cur, const char
4876 * NULL is reached. */ 4944 * NULL is reached. */
4877 for (;;) 4945 for (;;)
4878 { 4946 {
4947 size_t text_len;
4879 /* If we got to the end of string or just finished/started tag 4948 /* If we got to the end of string or just finished/started tag
4880 * or escape sequence handling. */ 4949 * or escape sequence handling. */
4881 if ((*p == 0) || 4950 if ((*p == 0) ||
@@ -4953,14 +5022,22 @@ evas_object_textblock_text_markup_prepend(Evas_Textblock_Cursor *cur, const char
4953 } 5022 }
4954 } 5023 }
4955 /* Unicode object replcament char */ 5024 /* Unicode object replcament char */
4956 else if (!strncmp("\xEF\xBF\xBC", p, 3)) 5025 else if (!strncmp(_REPLACEMENT_CHAR_UTF8, p,
5026 text_len = strlen(_REPLACEMENT_CHAR_UTF8)) ||
5027 !strncmp(_NEWLINE_UTF8, p,
5028 text_len = strlen(_NEWLINE_UTF8)) ||
5029 !strncmp(_TAB_UTF8, p,
5030 text_len = strlen(_TAB_UTF8)) ||
5031 !strncmp(_PARAGRAPH_SEPARATOR_UTF8, p,
5032 text_len = strlen(_PARAGRAPH_SEPARATOR_UTF8)))
4957 { 5033 {
4958 /*FIXME: currently just remove them, maybe do something 5034 /*FIXME: currently just remove them, maybe do something
4959 * fancier in the future, atm it breaks if this char 5035 * fancier in the future, atm it breaks if this char
4960 * is inside <> */ 5036 * is inside <> */
4961 _prepend_text_run(cur, s, p); 5037 _prepend_text_run(cur, s, p);
4962 p += 2; /* it's also advanced later in this loop need +3 5038 /* it's also advanced later in this loop need +text_len
4963 * in total*/ 5039 in total*/
5040 p += text_len - 1;
4964 s = p + 1; /* One after the end of the replacement char */ 5041 s = p + 1; /* One after the end of the replacement char */
4965 } 5042 }
4966 p++; 5043 p++;
@@ -4979,19 +5056,19 @@ evas_object_textblock_text_markup_prepend(Evas_Textblock_Cursor *cur, const char
4979 * @param fnode the format node to process. 5056 * @param fnode the format node to process.
4980 */ 5057 */
4981static void 5058static void
4982_markup_get_format_append(Evas_Object_Textblock *o __UNUSED__, Eina_Strbuf *txt, Evas_Object_Textblock_Node_Format *fnode) 5059_markup_get_format_append(Eina_Strbuf *txt, Evas_Object_Textblock_Node_Format *fnode)
4983{ 5060{
4984 eina_strbuf_append_char(txt, '<'); 5061 eina_strbuf_append_char(txt, '<');
4985 { 5062 {
4986 const char *s; 5063 const char *s;
4987 int pop = 0;
4988 5064
4989 // FIXME: need to escape 5065 // FIXME: need to escape
4990 s = fnode->orig_format; 5066 s = fnode->orig_format;
4991 if (*s == '-') pop = 1; 5067 if (!fnode->opener && !fnode->own_closer)
4992 while ((*s == ' ') || (*s == '+') || (*s == '-')) s++; 5068 eina_strbuf_append_char(txt, '/');
4993 if (pop) eina_strbuf_append_char(txt, '/');
4994 eina_strbuf_append(txt, s); 5069 eina_strbuf_append(txt, s);
5070 if (fnode->own_closer)
5071 eina_strbuf_append_char(txt, '/');
4995 } 5072 }
4996 eina_strbuf_append_char(txt, '>'); 5073 eina_strbuf_append_char(txt, '>');
4997} 5074}
@@ -5061,7 +5138,7 @@ evas_object_textblock_text_markup_get(const Evas_Object *obj)
5061 tmp_ch = text[off]; 5138 tmp_ch = text[off];
5062 text[off] = 0; /* Null terminate the part of the string */ 5139 text[off] = 0; /* Null terminate the part of the string */
5063 _markup_get_text_append(txt, text); 5140 _markup_get_text_append(txt, text);
5064 _markup_get_format_append(o, txt, fnode); 5141 _markup_get_format_append(txt, fnode);
5065 text[off] = tmp_ch; /* Restore the char */ 5142 text[off] = tmp_ch; /* Restore the char */
5066 text += off; 5143 text += off;
5067 if (fnode->visible) 5144 if (fnode->visible)
@@ -5086,6 +5163,190 @@ evas_object_textblock_text_markup_get(const Evas_Object *obj)
5086 return o->markup_text; 5163 return o->markup_text;
5087} 5164}
5088 5165
5166EAPI char *
5167evas_textblock_text_markup_to_utf8(const Evas_Object *obj, const char *text)
5168{
5169 /* FIXME: Redundant and awful, should be merged with markup_prepend */
5170 Eina_Strbuf *sbuf;
5171 char *s, *p, *ret;
5172 char *tag_start, *tag_end, *esc_start, *esc_end;
5173
5174 if (!text) return NULL;
5175
5176
5177 tag_start = tag_end = esc_start = esc_end = NULL;
5178 sbuf = eina_strbuf_new();
5179 p = (char *)text;
5180 s = p;
5181 /* This loop goes through all of the mark up text until it finds format
5182 * tags, escape sequences or the terminating NULL. When it finds either
5183 * of those, it appends the text found up until that point to the textblock
5184 * proccesses whatever found. It repeats itself until the termainating
5185 * NULL is reached. */
5186 for (;;)
5187 {
5188 /* If we got to the end of string or just finished/started tag
5189 * or escape sequence handling. */
5190 if ((*p == 0) ||
5191 (tag_end) || (esc_end) ||
5192 (tag_start) || (esc_start))
5193 {
5194 if (tag_end)
5195 {
5196 /* If we reached to a tag ending, analyze the tag */
5197 char *ttag;
5198 size_t ttag_len;
5199
5200 tag_start++; /* Skip the < */
5201 tag_end--; /* Skip the > */
5202 if ((tag_end > tag_start) && (*(tag_end - 1) == '/'))
5203 {
5204 tag_end --; /* Skip the terminating '/' */
5205 while (*(tag_end - 1) == ' ')
5206 tag_end--; /* skip trailing ' ' */
5207 }
5208
5209 ttag_len = tag_end - tag_start;
5210
5211 ttag = malloc(ttag_len + 1);
5212 if (ttag)
5213 {
5214 const char *match = NULL;
5215 size_t replace_len;
5216 memcpy(ttag, tag_start, ttag_len);
5217 ttag[ttag_len] = 0;
5218
5219
5220 if (obj)
5221 {
5222 match = _style_match_tag(
5223 evas_object_textblock_style_get(obj),
5224 ttag, ttag_len, &replace_len);
5225 }
5226
5227 if (!match) match = ttag;
5228
5229 if (_IS_PARAGRAPH_SEPARATOR_SIMPLE(match))
5230 eina_strbuf_append(sbuf, _PARAGRAPH_SEPARATOR_UTF8);
5231 else if (_IS_LINE_SEPARATOR(match))
5232 eina_strbuf_append(sbuf, _NEWLINE_UTF8);
5233 else if (_IS_TAB(match))
5234 eina_strbuf_append(sbuf, _TAB_UTF8);
5235 else if (!strncmp(match, "item", 4))
5236 eina_strbuf_append(sbuf, _REPLACEMENT_CHAR_UTF8);
5237
5238 free(ttag);
5239 }
5240 tag_start = tag_end = NULL;
5241 }
5242 else if (esc_end)
5243 {
5244 const char *escape;
5245
5246 escape = _escaped_char_get(esc_start, esc_end + 1);
5247 eina_strbuf_append(sbuf, escape);
5248 esc_start = esc_end = NULL;
5249 }
5250 else if (*p == 0)
5251 {
5252 eina_strbuf_append_length(sbuf, s, p - s);
5253 s = NULL;
5254 }
5255 if (*p == 0)
5256 break;
5257 }
5258 if (*p == '<')
5259 {
5260 if (!esc_start)
5261 {
5262 /* Append the text prior to this to the textblock and
5263 * mark the start of the tag */
5264 tag_start = p;
5265 tag_end = NULL;
5266 eina_strbuf_append_length(sbuf, s, p - s);
5267 s = NULL;
5268 }
5269 }
5270 else if (*p == '>')
5271 {
5272 if (tag_start)
5273 {
5274 tag_end = p + 1;
5275 s = p + 1;
5276 }
5277 }
5278 else if (*p == '&')
5279 {
5280 if (!tag_start)
5281 {
5282 /* Append the text prior to this to the textblock and mark
5283 * the start of the escape sequence */
5284 esc_start = p;
5285 esc_end = NULL;
5286 eina_strbuf_append_length(sbuf, s, p - s);
5287 s = NULL;
5288 }
5289 }
5290 else if (*p == ';')
5291 {
5292 if (esc_start)
5293 {
5294 esc_end = p;
5295 s = p + 1;
5296 }
5297 }
5298 p++;
5299 }
5300
5301 ret = eina_strbuf_string_steal(sbuf);
5302 eina_strbuf_free(sbuf);
5303 return ret;
5304}
5305
5306EAPI char *
5307evas_textblock_text_utf8_to_markup(const Evas_Object *obj, const char *text)
5308{
5309 Eina_Strbuf *sbuf;
5310 char *str = NULL;
5311 int ch, pos = 0, pos2 = 0;
5312
5313 (void) obj;
5314
5315 if (!text) return NULL;
5316
5317 sbuf = eina_strbuf_new();
5318
5319 for (;;)
5320 {
5321 pos = pos2;
5322 pos2 = evas_string_char_next_get(text, pos2, &ch);
5323 if ((ch <= 0) || (pos2 <= 0)) break;
5324
5325 if (ch == _NEWLINE)
5326 eina_strbuf_append(sbuf, "<br/>");
5327 else if (ch == _TAB)
5328 eina_strbuf_append(sbuf, "<tab/>");
5329 else if (ch == '<')
5330 eina_strbuf_append(sbuf, "&lt;");
5331 else if (ch == '>')
5332 eina_strbuf_append(sbuf, "&gt;");
5333 else if (ch == '&')
5334 eina_strbuf_append(sbuf, "&amp;");
5335 else if (ch == _PARAGRAPH_SEPARATOR)
5336 eina_strbuf_append(sbuf, "<ps/>");
5337 else if (ch == _REPLACEMENT_CHAR)
5338 eina_strbuf_append(sbuf, "&#xfffc;");
5339 else
5340 {
5341 eina_strbuf_append_length(sbuf, text + pos, pos2 - pos);
5342 }
5343 }
5344 str = eina_strbuf_string_steal(sbuf);
5345 eina_strbuf_free(sbuf);
5346 return str;
5347
5348}
5349
5089/* cursors */ 5350/* cursors */
5090 5351
5091/** 5352/**
@@ -5453,15 +5714,13 @@ evas_textblock_node_format_remove_pair(Evas_Object *obj,
5453 { 5714 {
5454 const char *fstr = fmt->orig_format; 5715 const char *fstr = fmt->orig_format;
5455 5716
5456 if (fstr && (*fstr == '+')) 5717 if (fmt->opener && !fmt->own_closer)
5457 { 5718 {
5458 fstack = eina_list_prepend(fstack, fmt); 5719 fstack = eina_list_prepend(fstack, fmt);
5459 } 5720 }
5460 else if (fstr && (*fstr == '-')) 5721 else if (fstr && !fmt->opener)
5461 { 5722 {
5462 size_t fstr_len; 5723 size_t fstr_len;
5463 /* Skip the '-' */
5464 fstr++;
5465 fstr_len = strlen(fstr); 5724 fstr_len = strlen(fstr);
5466 /* Generic popper, just pop */ 5725 /* Generic popper, just pop */
5467 if (((fstr[0] == ' ') && !fstr[1]) || !fstr[0]) 5726 if (((fstr[0] == ' ') && !fstr[1]) || !fstr[0])
@@ -5708,6 +5967,111 @@ evas_textblock_cursor_format_prev(Evas_Textblock_Cursor *cur)
5708 return EINA_FALSE; 5967 return EINA_FALSE;
5709} 5968}
5710 5969
5970#ifdef HAVE_LINEBREAK
5971
5972/* BREAK_AFTER: true if we can break after the current char.
5973 * Both macros assume str[i] is not the terminating nul */
5974#define BREAK_AFTER(i) \
5975 (breaks[i] == WORDBREAK_BREAK)
5976
5977#else
5978
5979#define BREAK_AFTER(i) \
5980 ((!str[i + 1]) || \
5981 (_is_white(str[i]) && !_is_white(str[i + 1])) || \
5982 (!_is_white(str[i]) && _is_white(str[i + 1])))
5983
5984#endif
5985
5986EAPI Eina_Bool
5987evas_textblock_cursor_word_start(Evas_Textblock_Cursor *cur)
5988{
5989 const Eina_Unicode *text;
5990 size_t i;
5991#ifdef HAVE_LINEBREAK
5992 char *breaks;
5993#endif
5994
5995 if (!cur) return EINA_FALSE;
5996 if (!cur->node) return EINA_FALSE;
5997
5998 text = eina_ustrbuf_string_get(cur->node->unicode);
5999
6000#ifdef HAVE_LINEBREAK
6001 {
6002 const char *lang = ""; /* FIXME: get lang */
6003 size_t len = eina_ustrbuf_length_get(cur->node->unicode);
6004 breaks = malloc(len);
6005 set_wordbreaks_utf32((const utf32_t *) text, len, lang, breaks);
6006 }
6007#endif
6008
6009 i = cur->pos;
6010
6011 /* Skip the first one. This ensures we don't point to the nul, and also
6012 * we just don't care about it anyway. */
6013 if (i > 0) i--;
6014
6015 for ( ; i > 0 ; i--)
6016 {
6017 if (BREAK_AFTER(i))
6018 {
6019 /* Advance to the current char */
6020 i++;
6021 break;
6022 }
6023 }
6024
6025 cur->pos = i;
6026
6027#ifdef HAVE_LINEBREAK
6028 free(breaks);
6029#endif
6030 return EINA_TRUE;
6031}
6032
6033EAPI Eina_Bool
6034evas_textblock_cursor_word_end(Evas_Textblock_Cursor *cur)
6035{
6036 const Eina_Unicode *text;
6037 size_t i;
6038#ifdef HAVE_LINEBREAK
6039 char *breaks;
6040#endif
6041
6042 if (!cur) return EINA_FALSE;
6043 if (!cur->node) return EINA_FALSE;
6044
6045 text = eina_ustrbuf_string_get(cur->node->unicode);
6046
6047#ifdef HAVE_LINEBREAK
6048 {
6049 const char *lang = ""; /* FIXME: get lang */
6050 size_t len = eina_ustrbuf_length_get(cur->node->unicode);
6051 breaks = malloc(len);
6052 set_wordbreaks_utf32((const utf32_t *) text, len, lang, breaks);
6053 }
6054#endif
6055
6056 i = cur->pos;
6057
6058 for ( ; text[i] ; i++)
6059 {
6060 if (BREAK_AFTER(i))
6061 {
6062 /* This is the one to break after. */
6063 break;
6064 }
6065 }
6066
6067 cur->pos = i;
6068
6069#ifdef HAVE_LINEBREAK
6070 free(breaks);
6071#endif
6072 return EINA_TRUE;;
6073}
6074
5711EAPI Eina_Bool 6075EAPI Eina_Bool
5712evas_textblock_cursor_char_next(Evas_Textblock_Cursor *cur) 6076evas_textblock_cursor_char_next(Evas_Textblock_Cursor *cur)
5713{ 6077{
@@ -5887,10 +6251,9 @@ _evas_textblock_format_is_visible(Evas_Object_Textblock_Node_Format *fnode,
5887 fnode->anchor = ANCHOR_NONE; 6251 fnode->anchor = ANCHOR_NONE;
5888 if (!s) return; 6252 if (!s) return;
5889 6253
5890 if (s[0] == '+' || s[0] == '-') 6254 if (!fnode->own_closer)
5891 { 6255 {
5892 is_opener = (s[0] == '+'); 6256 is_opener = fnode->opener;
5893 s++;
5894 fnode->format_change = EINA_TRUE; 6257 fnode->format_change = EINA_TRUE;
5895 } 6258 }
5896 6259
@@ -5902,6 +6265,8 @@ _evas_textblock_format_is_visible(Evas_Object_Textblock_Node_Format *fnode,
5902 * closing */ 6265 * closing */
5903 if ((!strncmp(item, "\n", itlen) || !strncmp(item, "\\n", itlen)) || 6266 if ((!strncmp(item, "\n", itlen) || !strncmp(item, "\\n", itlen)) ||
5904 (!strncmp(item, "\t", itlen) || !strncmp(item, "\\t", itlen)) || 6267 (!strncmp(item, "\t", itlen) || !strncmp(item, "\\t", itlen)) ||
6268 (!strncmp(item, "br", itlen) && (itlen >= 2)) ||
6269 (!strncmp(item, "tab", itlen) && (itlen >= 3)) ||
5905 (!strncmp(item, "ps", itlen) && (itlen >= 2)) || 6270 (!strncmp(item, "ps", itlen) && (itlen >= 2)) ||
5906 (!strncmp(item, "item", itlen) && (itlen >= 4) && is_opener)) 6271 (!strncmp(item, "item", itlen) && (itlen >= 4) && is_opener))
5907 { 6272 {
@@ -5986,19 +6351,17 @@ _evas_textblock_node_format_remove_matching(Evas_Object_Textblock *o,
5986 } 6351 }
5987 6352
5988 6353
5989 if (fstr && (*fstr == '+')) 6354 if (fmt->opener && !fmt->own_closer)
5990 { 6355 {
5991 formats = eina_list_prepend(formats, fmt); 6356 formats = eina_list_prepend(formats, fmt);
5992 } 6357 }
5993 else if (fstr && (*fstr == '-')) 6358 else if (fstr && !fmt->opener)
5994 { 6359 {
5995 Evas_Object_Textblock_Node_Format *fnode; 6360 Evas_Object_Textblock_Node_Format *fnode;
5996 size_t fstr_len; 6361 size_t fstr_len;
5997 /* Skip the '-' */
5998 fstr++;
5999 fstr_len = strlen(fstr); 6362 fstr_len = strlen(fstr);
6000 /* Generic popper, just pop */ 6363 /* Generic popper, just pop (if there's anything to pop). */
6001 if (((fstr[0] == ' ') && !fstr[1]) || !fstr[0]) 6364 if (formats && (((fstr[0] == ' ') && !fstr[1]) || !fstr[0]))
6002 { 6365 {
6003 fnode = eina_list_data_get(formats); 6366 fnode = eina_list_data_get(formats);
6004 formats = eina_list_remove_list(formats, formats); 6367 formats = eina_list_remove_list(formats, formats);
@@ -6855,6 +7218,7 @@ _evas_textblock_node_format_new(Evas_Object_Textblock *o, const char *_format)
6855{ 7218{
6856 Evas_Object_Textblock_Node_Format *n; 7219 Evas_Object_Textblock_Node_Format *n;
6857 const char *format = _format; 7220 const char *format = _format;
7221 const char *pre_stripped_format = NULL;
6858 7222
6859 n = calloc(1, sizeof(Evas_Object_Textblock_Node_Format)); 7223 n = calloc(1, sizeof(Evas_Object_Textblock_Node_Format));
6860 /* Create orig_format and format */ 7224 /* Create orig_format and format */
@@ -6866,62 +7230,80 @@ _evas_textblock_node_format_new(Evas_Object_Textblock *o, const char *_format)
6866 7230
6867 format++; /* Advance after '<' */ 7231 format++; /* Advance after '<' */
6868 format_len = strlen(format); 7232 format_len = strlen(format);
6869 if (format[format_len - 1] == '>') 7233 if ((format_len > 0) && format[format_len - 1] == '>')
6870 format_len--; /* We don't care about '>' */ 7234 {
7235 format_len--; /* We don't care about '>' */
7236 /* Check if it closes itself. Skip the </> case. */
7237 if ((format_len > 1) && format[format_len - 1] == '/')
7238 {
7239 format_len--; /* We don't care about '/' */
7240 n->own_closer = EINA_TRUE;
7241 }
7242 }
6871 7243
6872 match = _style_match_tag(o->style, format, format_len, &replace_len); 7244 match = _style_match_tag(o->style, format, format_len, &replace_len);
6873 if (match) 7245 if (match)
6874 { 7246 {
6875 if ((match[0] == '+') || (match[0] == '-')) 7247 if (match[0] != '-')
6876 {
6877 char *norm_format;
6878 norm_format = malloc(format_len + 2 + 1);
6879 memcpy(norm_format, match, 2);
6880 memcpy(norm_format + 2, format, format_len);
6881 norm_format[format_len + 2] = '\0';
6882 n->orig_format =
6883 eina_stringshare_add_length(norm_format, format_len + 2);
6884 free(norm_format);
6885 }
6886 else
6887 { 7248 {
6888 n->orig_format = 7249 n->opener = EINA_TRUE;
6889 eina_stringshare_add_length(format, format_len); 7250 if (match[0] != '+')
7251 {
7252 n->own_closer = EINA_TRUE;
7253 }
6890 } 7254 }
6891 n->format = eina_stringshare_add(match); 7255
7256 pre_stripped_format = match;
6892 } 7257 }
6893 else 7258 else
6894 { 7259 {
6895 char *norm_format; 7260 if (format[0] == '/')
6896
6897 norm_format = malloc(format_len + 2 + 1);
6898 if (norm_format)
6899 { 7261 {
6900 if (format[0] == '/') 7262 format++;
6901 { 7263 format_len--;
6902 memcpy(norm_format, "- ", 2); 7264 }
6903 memcpy(norm_format + 2, format + 1, format_len - 1); 7265 else
6904 norm_format[format_len + 2 - 1] = '\0'; 7266 {
6905 } 7267 n->opener = EINA_TRUE;
6906 else
6907 {
6908 memcpy(norm_format, "+ ", 2);
6909 memcpy(norm_format + 2, format, format_len);
6910 norm_format[format_len + 2] = '\0';
6911 }
6912 n->orig_format = eina_stringshare_add(norm_format);
6913 free(norm_format);
6914 } 7268 }
6915 n->format = eina_stringshare_ref(n->orig_format);
6916 } 7269 }
7270
7271 n->orig_format = eina_stringshare_add_length(format, format_len);
7272
7273 if (!pre_stripped_format)
7274 pre_stripped_format = n->orig_format;
6917 } 7275 }
6918 /* Just use as is, it's a special format. */ 7276 /* Just use as is, it's a special format. */
6919 else 7277 else
6920 { 7278 {
6921 n->orig_format = eina_stringshare_add(format); 7279 const char *tmp = format;
6922 n->format = eina_stringshare_ref(n->orig_format); 7280 if (format[0] != '-')
7281 {
7282 n->opener = EINA_TRUE;
7283 if (format[0] != '+')
7284 {
7285 n->own_closer = EINA_TRUE;
7286 }
7287 }
7288 if ((*tmp == '+') || (*tmp == '-'))
7289 {
7290 tmp++;
7291 while (*tmp == ' ') tmp++;
7292 }
7293 n->orig_format = eina_stringshare_add(tmp);
7294 pre_stripped_format = n->orig_format;
6923 } 7295 }
6924 7296
7297 /* Strip format */
7298 {
7299 const char *tmp = pre_stripped_format;
7300 if ((*tmp == '+') || (*tmp == '-'))
7301 {
7302 tmp++;
7303 while (*tmp == ' ') tmp++;
7304 }
7305 n->format = eina_stringshare_add(tmp);
7306 }
6925 format = n->format; 7307 format = n->format;
6926 7308
6927 _evas_textblock_format_is_visible(n, format); 7309 _evas_textblock_format_is_visible(n, format);
@@ -7051,11 +7433,11 @@ evas_textblock_cursor_format_append(Evas_Textblock_Cursor *cur, const char *form
7051 if (_IS_PARAGRAPH_SEPARATOR(o, format)) 7433 if (_IS_PARAGRAPH_SEPARATOR(o, format))
7052 insert_char = _PARAGRAPH_SEPARATOR; 7434 insert_char = _PARAGRAPH_SEPARATOR;
7053 else if (_IS_LINE_SEPARATOR(format)) 7435 else if (_IS_LINE_SEPARATOR(format))
7054 insert_char = '\n'; 7436 insert_char = _NEWLINE;
7055 else if (_IS_TAB(format)) 7437 else if (_IS_TAB(format))
7056 insert_char = '\t'; 7438 insert_char = _TAB;
7057 else 7439 else
7058 insert_char = EVAS_TEXTBLOCK_REPLACEMENT_CHAR; 7440 insert_char = _REPLACEMENT_CHAR;
7059 7441
7060 eina_ustrbuf_insert_char(cur->node->unicode, insert_char, cur->pos); 7442 eina_ustrbuf_insert_char(cur->node->unicode, insert_char, cur->pos);
7061 7443
@@ -7142,7 +7524,7 @@ evas_textblock_cursor_char_delete(Evas_Textblock_Cursor *cur)
7142 should_merge = EINA_TRUE; 7524 should_merge = EINA_TRUE;
7143 } 7525 }
7144 /* If a singnular, mark as invisible, so we'll delete it. */ 7526 /* If a singnular, mark as invisible, so we'll delete it. */
7145 if (!format || ((*format != '+') && (*format != '-'))) 7527 if (!format || last_fmt->own_closer)
7146 { 7528 {
7147 last_fmt->visible = EINA_FALSE; 7529 last_fmt->visible = EINA_FALSE;
7148 } 7530 }
@@ -7271,60 +7653,40 @@ evas_textblock_cursor_range_delete(Evas_Textblock_Cursor *cur1, Evas_Textblock_C
7271EAPI char * 7653EAPI char *
7272evas_textblock_cursor_content_get(const Evas_Textblock_Cursor *cur) 7654evas_textblock_cursor_content_get(const Evas_Textblock_Cursor *cur)
7273{ 7655{
7274 const Eina_Unicode *ustr;
7275 Eina_Unicode buf[2];
7276 char *s;
7277 if (!cur || !cur->node) return NULL; 7656 if (!cur || !cur->node) return NULL;
7278 if (evas_textblock_cursor_format_is_visible_get(cur)) 7657 if (evas_textblock_cursor_format_is_visible_get(cur))
7279 { 7658 {
7280 size_t len; 7659 Eina_Strbuf *buf;
7281 const char *fstr; 7660 Evas_Object_Textblock_Node_Format *fnode;
7282 char *ret; 7661 char *ret;
7283 int pop = 0; 7662 fnode = _evas_textblock_node_visible_at_pos_get(
7284 fstr = evas_textblock_node_format_text_get( 7663 evas_textblock_cursor_format_get(cur));
7285 _evas_textblock_node_visible_at_pos_get(
7286 evas_textblock_cursor_format_get(cur)));
7287
7288 if (!fstr)
7289 return NULL;
7290 7664
7291 if (*fstr == '-') pop = 1; 7665 buf = eina_strbuf_new();
7292 while ((*fstr == ' ') || (*fstr == '+') || (*fstr == '-')) fstr++; 7666 _markup_get_format_append(buf, fnode);
7293 len = strlen(fstr); 7667 ret = eina_strbuf_string_steal(buf);
7294 7668 eina_strbuf_free(buf);
7295 {
7296 char *tmp;
7297 if (pop)
7298 {
7299 ret = tmp = malloc(len + 3 + 1); /* </> and the null */
7300 memcpy(tmp, "</", 2);
7301 tmp += 2;
7302 }
7303 else
7304 {
7305 ret = tmp = malloc(len + 2 + 1); /* <> and the null */
7306 *tmp = '<';
7307 tmp++;
7308 }
7309 memcpy(tmp, fstr, len);
7310 memcpy(tmp + len, ">", 2); /* Including the null */
7311 }
7312 7669
7313 return ret; 7670 return ret;
7314 } 7671 }
7672 else
7673 {
7674 const Eina_Unicode *ustr;
7675 Eina_Unicode buf[2];
7676 char *s;
7315 7677
7316 ustr = eina_ustrbuf_string_get(cur->node->unicode); 7678 ustr = eina_ustrbuf_string_get(cur->node->unicode);
7317 buf[0] = ustr[cur->pos]; 7679 buf[0] = ustr[cur->pos];
7318 buf[1] = 0; 7680 buf[1] = 0;
7319 s = eina_unicode_unicode_to_utf8(buf, NULL); 7681 s = eina_unicode_unicode_to_utf8(buf, NULL);
7320 7682
7321 return s; 7683 return s;
7684 }
7322} 7685}
7323 7686
7324static char * 7687static char *
7325_evas_textblock_cursor_range_text_markup_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *_cur2) 7688_evas_textblock_cursor_range_text_markup_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *_cur2)
7326{ 7689{
7327 Evas_Object_Textblock *o;
7328 Evas_Object_Textblock_Node_Text *tnode; 7690 Evas_Object_Textblock_Node_Text *tnode;
7329 Eina_Strbuf *buf; 7691 Eina_Strbuf *buf;
7330 Evas_Textblock_Cursor *cur2; 7692 Evas_Textblock_Cursor *cur2;
@@ -7333,7 +7695,6 @@ _evas_textblock_cursor_range_text_markup_get(const Evas_Textblock_Cursor *cur1,
7333 if (!cur1 || !cur1->node) return NULL; 7695 if (!cur1 || !cur1->node) return NULL;
7334 if (!_cur2 || !_cur2->node) return NULL; 7696 if (!_cur2 || !_cur2->node) return NULL;
7335 if (cur1->obj != _cur2->obj) return NULL; 7697 if (cur1->obj != _cur2->obj) return NULL;
7336 o = (Evas_Object_Textblock *)(cur1->obj->object_data);
7337 if (evas_textblock_cursor_compare(cur1, _cur2) > 0) 7698 if (evas_textblock_cursor_compare(cur1, _cur2) > 0)
7338 { 7699 {
7339 const Evas_Textblock_Cursor *tc; 7700 const Evas_Textblock_Cursor *tc;
@@ -7401,7 +7762,7 @@ _evas_textblock_cursor_range_text_markup_get(const Evas_Textblock_Cursor *cur1,
7401 tmp_ch = text[off]; 7762 tmp_ch = text[off];
7402 text[off] = 0; /* Null terminate the part of the string */ 7763 text[off] = 0; /* Null terminate the part of the string */
7403 _markup_get_text_append(buf, text); 7764 _markup_get_text_append(buf, text);
7404 _markup_get_format_append(o, buf, fnode); 7765 _markup_get_format_append(buf, fnode);
7405 text[off] = tmp_ch; /* Restore the char */ 7766 text[off] = tmp_ch; /* Restore the char */
7406 text += off; 7767 text += off;
7407 if (fnode->visible) 7768 if (fnode->visible)
@@ -7623,8 +7984,27 @@ evas_textblock_cursor_format_get(const Evas_Textblock_Cursor *cur)
7623EAPI const char * 7984EAPI const char *
7624evas_textblock_node_format_text_get(const Evas_Object_Textblock_Node_Format *fmt) 7985evas_textblock_node_format_text_get(const Evas_Object_Textblock_Node_Format *fmt)
7625{ 7986{
7987 static char *ret = NULL;
7988 char *tmp;
7989
7626 if (!fmt) return NULL; 7990 if (!fmt) return NULL;
7627 return fmt->orig_format; 7991
7992 if (ret) free(ret);
7993 ret = malloc(strlen(fmt->orig_format) + 2 + 1);
7994 tmp = ret;
7995
7996 if (fmt->opener && !fmt->own_closer)
7997 {
7998 *(tmp++) = '+';
7999 *(tmp++) = ' ';
8000 }
8001 else if (!fmt->opener)
8002 {
8003 *(tmp++) = '-';
8004 *(tmp++) = ' ';
8005 }
8006 strcpy(tmp, fmt->orig_format);
8007 return ret;
7628} 8008}
7629 8009
7630EAPI void 8010EAPI void
@@ -7673,7 +8053,9 @@ evas_textblock_cursor_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord
7673 * the position of the previous */ 8053 * the position of the previous */
7674 if ((cur->pos > 0) && !_evas_textblock_cursor_is_at_the_end(cur)) 8054 if ((cur->pos > 0) && !_evas_textblock_cursor_is_at_the_end(cur))
7675 { 8055 {
8056#ifdef BIDI_SUPPORT
7676 Eina_Bool before_char = EINA_FALSE; 8057 Eina_Bool before_char = EINA_FALSE;
8058#endif
7677 cur2.obj = cur->obj; 8059 cur2.obj = cur->obj;
7678 evas_textblock_cursor_copy(cur, &cur2); 8060 evas_textblock_cursor_copy(cur, &cur2);
7679 evas_textblock_cursor_char_prev(&cur2); 8061 evas_textblock_cursor_char_prev(&cur2);
@@ -7683,12 +8065,16 @@ evas_textblock_cursor_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord
7683 if (!fmt || !_IS_LINE_SEPARATOR(fmt->format)) 8065 if (!fmt || !_IS_LINE_SEPARATOR(fmt->format))
7684 { 8066 {
7685 dir_cur = &cur2; 8067 dir_cur = &cur2;
8068#ifdef BIDI_SUPPORT
7686 before_char = EINA_FALSE; 8069 before_char = EINA_FALSE;
8070#endif
7687 } 8071 }
8072#ifdef BIDI_SUPPORT
7688 else 8073 else
7689 { 8074 {
7690 before_char = EINA_TRUE; 8075 before_char = EINA_TRUE;
7691 } 8076 }
8077#endif
7692 ret = evas_textblock_cursor_pen_geometry_get( 8078 ret = evas_textblock_cursor_pen_geometry_get(
7693 dir_cur, &x, &y, &w, &h); 8079 dir_cur, &x, &y, &w, &h);
7694#ifdef BIDI_SUPPORT 8080#ifdef BIDI_SUPPORT
@@ -8788,6 +9174,7 @@ evas_object_textblock_init(Evas_Object *obj)
8788 { 9174 {
8789 linebreak_init = EINA_TRUE; 9175 linebreak_init = EINA_TRUE;
8790 init_linebreak(); 9176 init_linebreak();
9177 init_wordbreak();
8791 } 9178 }
8792#endif 9179#endif
8793 9180
diff --git a/libraries/evas/src/lib/canvas/evas_render.c b/libraries/evas/src/lib/canvas/evas_render.c
index 0abee97..cdedaec 100644
--- a/libraries/evas/src/lib/canvas/evas_render.c
+++ b/libraries/evas/src/lib/canvas/evas_render.c
@@ -1139,7 +1139,7 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
1139 } 1139 }
1140 } 1140 }
1141 } 1141 }
1142 if (surface == e->engine.data.output) 1142// if (surface == e->engine.data.output)
1143 e->engine.func->context_clip_clip(e->engine.data.output, 1143 e->engine.func->context_clip_clip(e->engine.data.output,
1144 e->engine.data.context, 1144 e->engine.data.context,
1145 ecx, ecy, ecw, ech); 1145 ecx, ecy, ecw, ech);
@@ -1360,6 +1360,8 @@ evas_render_updates_internal(Evas *e,
1360 1360
1361 RD("[--- RENDER EVAS (size: %ix%i)\n", e->viewport.w, e->viewport.h); 1361 RD("[--- RENDER EVAS (size: %ix%i)\n", e->viewport.w, e->viewport.h);
1362 1362
1363 evas_event_callback_call(e, EVAS_CALLBACK_RENDER_PRE, NULL);
1364
1363 /* Check if the modified object mean recalculating every thing */ 1365 /* Check if the modified object mean recalculating every thing */
1364 if (!e->invalidate) 1366 if (!e->invalidate)
1365 _evas_render_check_pending_objects(&e->pending_objects, e); 1367 _evas_render_check_pending_objects(&e->pending_objects, e);
@@ -1399,6 +1401,7 @@ evas_render_updates_internal(Evas *e,
1399 _evas_render_prev_cur_clip_cache_add(e, obj); 1401 _evas_render_prev_cur_clip_cache_add(e, obj);
1400 } 1402 }
1401 eina_array_clean(&e->restack_objects); 1403 eina_array_clean(&e->restack_objects);
1404
1402 /* phase 3. add exposes */ 1405 /* phase 3. add exposes */
1403 EINA_LIST_FREE(e->damages, r) 1406 EINA_LIST_FREE(e->damages, r)
1404 { 1407 {
@@ -1406,7 +1409,20 @@ evas_render_updates_internal(Evas *e,
1406 r->x, r->y, r->w, r->h); 1409 r->x, r->y, r->w, r->h);
1407 eina_rectangle_free(r); 1410 eina_rectangle_free(r);
1408 } 1411 }
1409 /* phase 4. output & viewport changes */ 1412
1413 /* phase 4. framespace, output & viewport changes */
1414 if (e->framespace.changed)
1415 {
1416 int fx, fy, fw, fh;
1417
1418 fx = e->viewport.x - e->framespace.x;
1419 fy = e->viewport.y - e->framespace.y;
1420 fw = e->viewport.w + e->framespace.w;
1421 fh = e->viewport.h + e->framespace.h;
1422 e->engine.func->output_redraws_rect_add(e->engine.data.output,
1423 fx, fy, fw, fh);
1424 }
1425
1410 if (e->viewport.changed) 1426 if (e->viewport.changed)
1411 { 1427 {
1412 e->engine.func->output_redraws_rect_add(e->engine.data.output, 1428 e->engine.func->output_redraws_rect_add(e->engine.data.output,
@@ -1431,6 +1447,7 @@ evas_render_updates_internal(Evas *e,
1431 0, 0, 1447 0, 0,
1432 e->output.w, e->output.h); 1448 e->output.w, e->output.h);
1433 } 1449 }
1450
1434 /* phase 5. add obscures */ 1451 /* phase 5. add obscures */
1435 EINA_LIST_FOREACH(e->obscures, ll, r) 1452 EINA_LIST_FOREACH(e->obscures, ll, r)
1436 { 1453 {
@@ -1562,13 +1579,6 @@ evas_render_updates_internal(Evas *e,
1562 else 1579 else
1563 e->engine.func->context_mask_unset(e->engine.data.output, 1580 e->engine.func->context_mask_unset(e->engine.data.output,
1564 e->engine.data.context); 1581 e->engine.data.context);
1565 if (obj->cur.clipper)
1566 e->engine.func->context_clip_set(e->engine.data.output,
1567 e->engine.data.context,
1568 x, y, w, h);
1569 else
1570 e->engine.func->context_clip_unset(e->engine.data.output,
1571 e->engine.data.context);
1572#if 1 /* FIXME: this can slow things down... figure out optimum... coverage */ 1582#if 1 /* FIXME: this can slow things down... figure out optimum... coverage */
1573 for (j = offset; j < e->temporary_objects.count; ++j) 1583 for (j = offset; j < e->temporary_objects.count; ++j)
1574 { 1584 {
@@ -1671,6 +1681,7 @@ evas_render_updates_internal(Evas *e,
1671 e->changed = 0; 1681 e->changed = 0;
1672 e->viewport.changed = 0; 1682 e->viewport.changed = 0;
1673 e->output.changed = 0; 1683 e->output.changed = 0;
1684 e->framespace.changed = 0;
1674 e->invalidate = 0; 1685 e->invalidate = 0;
1675 1686
1676 /* If their are some object to restack or some object to delete, 1687 /* If their are some object to restack or some object to delete,
@@ -1686,6 +1697,8 @@ evas_render_updates_internal(Evas *e,
1686 } 1697 }
1687 1698
1688 evas_module_clean(); 1699 evas_module_clean();
1700
1701 evas_event_callback_call(e, EVAS_CALLBACK_RENDER_POST, NULL);
1689 1702
1690 RD("---]\n"); 1703 RD("---]\n");
1691 1704
diff --git a/libraries/evas/src/lib/cserve/Makefile.in b/libraries/evas/src/lib/cserve/Makefile.in
index 74b5ff9..7599ca2 100644
--- a/libraries/evas/src/lib/cserve/Makefile.in
+++ b/libraries/evas/src/lib/cserve/Makefile.in
@@ -198,8 +198,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
198PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 198PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
199PIXMAN_LIBS = @PIXMAN_LIBS@ 199PIXMAN_LIBS = @PIXMAN_LIBS@
200PKG_CONFIG = @PKG_CONFIG@ 200PKG_CONFIG = @PKG_CONFIG@
201PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
202PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
203PNG_CFLAGS = @PNG_CFLAGS@ 201PNG_CFLAGS = @PNG_CFLAGS@
204PNG_LIBS = @PNG_LIBS@ 202PNG_LIBS = @PNG_LIBS@
205RANLIB = @RANLIB@ 203RANLIB = @RANLIB@
@@ -216,6 +214,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
216VALGRIND_LIBS = @VALGRIND_LIBS@ 214VALGRIND_LIBS = @VALGRIND_LIBS@
217VERSION = @VERSION@ 215VERSION = @VERSION@
218VMAJ = @VMAJ@ 216VMAJ = @VMAJ@
217WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
218WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
219WIN32_CFLAGS = @WIN32_CFLAGS@ 219WIN32_CFLAGS = @WIN32_CFLAGS@
220WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 220WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
221XCB_CFLAGS = @XCB_CFLAGS@ 221XCB_CFLAGS = @XCB_CFLAGS@
@@ -297,6 +297,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
297evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 297evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
298evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 298evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
299evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 299evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
300evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
301evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
302evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
303evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
300evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 304evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
301evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 305evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
302evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 306evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
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@
208PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 208PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
209PIXMAN_LIBS = @PIXMAN_LIBS@ 209PIXMAN_LIBS = @PIXMAN_LIBS@
210PKG_CONFIG = @PKG_CONFIG@ 210PKG_CONFIG = @PKG_CONFIG@
211PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
212PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
213PNG_CFLAGS = @PNG_CFLAGS@ 211PNG_CFLAGS = @PNG_CFLAGS@
214PNG_LIBS = @PNG_LIBS@ 212PNG_LIBS = @PNG_LIBS@
215RANLIB = @RANLIB@ 213RANLIB = @RANLIB@
@@ -226,6 +224,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
226VALGRIND_LIBS = @VALGRIND_LIBS@ 224VALGRIND_LIBS = @VALGRIND_LIBS@
227VERSION = @VERSION@ 225VERSION = @VERSION@
228VMAJ = @VMAJ@ 226VMAJ = @VMAJ@
227WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
228WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
229WIN32_CFLAGS = @WIN32_CFLAGS@ 229WIN32_CFLAGS = @WIN32_CFLAGS@
230WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 230WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
231XCB_CFLAGS = @XCB_CFLAGS@ 231XCB_CFLAGS = @XCB_CFLAGS@
@@ -307,6 +307,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
307evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 307evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
308evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 308evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
309evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 309evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
310evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
311evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
312evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
313evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
310evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 314evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
311evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 315evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
312evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 316evas_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@
252PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 252PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
253PIXMAN_LIBS = @PIXMAN_LIBS@ 253PIXMAN_LIBS = @PIXMAN_LIBS@
254PKG_CONFIG = @PKG_CONFIG@ 254PKG_CONFIG = @PKG_CONFIG@
255PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
256PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
257PNG_CFLAGS = @PNG_CFLAGS@ 255PNG_CFLAGS = @PNG_CFLAGS@
258PNG_LIBS = @PNG_LIBS@ 256PNG_LIBS = @PNG_LIBS@
259RANLIB = @RANLIB@ 257RANLIB = @RANLIB@
@@ -270,6 +268,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
270VALGRIND_LIBS = @VALGRIND_LIBS@ 268VALGRIND_LIBS = @VALGRIND_LIBS@
271VERSION = @VERSION@ 269VERSION = @VERSION@
272VMAJ = @VMAJ@ 270VMAJ = @VMAJ@
271WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
272WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
273WIN32_CFLAGS = @WIN32_CFLAGS@ 273WIN32_CFLAGS = @WIN32_CFLAGS@
274WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 274WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
275XCB_CFLAGS = @XCB_CFLAGS@ 275XCB_CFLAGS = @XCB_CFLAGS@
@@ -351,6 +351,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
351evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 351evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
352evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 352evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
353evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 353evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
354evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
355evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
356evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
357evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
354evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 358evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
355evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 359evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
356evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 360evas_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
196FAST_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
53void 202void
54evas_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__) 203evas_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
74void 227void
75evas_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__) 228evas_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
77void 78void
78evas_common_cpu_altivec_test(void) 79evas_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
89void 91void
90evas_common_cpu_neon_test(void) 92evas_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
138EAPI void 160EAPI 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
164EAPI void 205EAPI void
165evas_common_draw_context_unset_mask(RGBA_Draw_Context *dc) 206evas_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
23static int max_cached_words = WORD_CACHE_NWORDS; 23static int max_cached_words = WORD_CACHE_NWORDS;
24 24
25struct prword 25struct 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
37struct cinfo 37struct 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
78EAPI void 78EAPI void
79evas_common_font_draw_finish(void) 79evas_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 */
90static void 90static void
91evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn __UNUSED__, int x, int y, 91evas_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)
39EAPI void 39EAPI void
40evas_common_font_shutdown(void) 40evas_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
49static unsigned long long use_counter = 0; 49static unsigned long long use_counter = 0;
50 50
51#ifdef BUILD_PTHREAD
52static LK(cache_lock); 51static LK(cache_lock);
53#endif
54static Eina_Inlist *cache_list = NULL; 52static Eina_Inlist *cache_list = NULL;
55static unsigned int cache_size = 0; 53static unsigned int cache_size = 0;
56static int init = 0; 54static 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 }
658next_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 }
726next_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
910next_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@
166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
167PIXMAN_LIBS = @PIXMAN_LIBS@ 167PIXMAN_LIBS = @PIXMAN_LIBS@
168PKG_CONFIG = @PKG_CONFIG@ 168PKG_CONFIG = @PKG_CONFIG@
169PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171PNG_CFLAGS = @PNG_CFLAGS@ 169PNG_CFLAGS = @PNG_CFLAGS@
172PNG_LIBS = @PNG_LIBS@ 170PNG_LIBS = @PNG_LIBS@
173RANLIB = @RANLIB@ 171RANLIB = @RANLIB@
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
184VALGRIND_LIBS = @VALGRIND_LIBS@ 182VALGRIND_LIBS = @VALGRIND_LIBS@
185VERSION = @VERSION@ 183VERSION = @VERSION@
186VMAJ = @VMAJ@ 184VMAJ = @VMAJ@
185WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
186WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
187WIN32_CFLAGS = @WIN32_CFLAGS@ 187WIN32_CFLAGS = @WIN32_CFLAGS@
188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
189XCB_CFLAGS = @XCB_CFLAGS@ 189XCB_CFLAGS = @XCB_CFLAGS@
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
268evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
269evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
270evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
271evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
268evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 272evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
269evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 273evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
270evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 274evas_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@
203PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 203PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
204PIXMAN_LIBS = @PIXMAN_LIBS@ 204PIXMAN_LIBS = @PIXMAN_LIBS@
205PKG_CONFIG = @PKG_CONFIG@ 205PKG_CONFIG = @PKG_CONFIG@
206PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
207PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
208PNG_CFLAGS = @PNG_CFLAGS@ 206PNG_CFLAGS = @PNG_CFLAGS@
209PNG_LIBS = @PNG_LIBS@ 207PNG_LIBS = @PNG_LIBS@
210RANLIB = @RANLIB@ 208RANLIB = @RANLIB@
@@ -221,6 +219,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
221VALGRIND_LIBS = @VALGRIND_LIBS@ 219VALGRIND_LIBS = @VALGRIND_LIBS@
222VERSION = @VERSION@ 220VERSION = @VERSION@
223VMAJ = @VMAJ@ 221VMAJ = @VMAJ@
222WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
223WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
224WIN32_CFLAGS = @WIN32_CFLAGS@ 224WIN32_CFLAGS = @WIN32_CFLAGS@
225WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 225WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
226XCB_CFLAGS = @XCB_CFLAGS@ 226XCB_CFLAGS = @XCB_CFLAGS@
@@ -302,6 +302,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
302evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 302evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
303evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 303evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
304evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 304evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
305evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
306evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
307evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
308evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
305evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 309evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
306evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 310evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
307evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 311evas_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
53static void 53static void
54init_blend_color_span_funcs_sse3(void) 54init_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
168static void 168static void
169init_blend_mask_color_span_funcs_sse3(void) 169init_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@
166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
167PIXMAN_LIBS = @PIXMAN_LIBS@ 167PIXMAN_LIBS = @PIXMAN_LIBS@
168PKG_CONFIG = @PKG_CONFIG@ 168PKG_CONFIG = @PKG_CONFIG@
169PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171PNG_CFLAGS = @PNG_CFLAGS@ 169PNG_CFLAGS = @PNG_CFLAGS@
172PNG_LIBS = @PNG_LIBS@ 170PNG_LIBS = @PNG_LIBS@
173RANLIB = @RANLIB@ 171RANLIB = @RANLIB@
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
184VALGRIND_LIBS = @VALGRIND_LIBS@ 182VALGRIND_LIBS = @VALGRIND_LIBS@
185VERSION = @VERSION@ 183VERSION = @VERSION@
186VMAJ = @VMAJ@ 184VMAJ = @VMAJ@
185WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
186WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
187WIN32_CFLAGS = @WIN32_CFLAGS@ 187WIN32_CFLAGS = @WIN32_CFLAGS@
188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
189XCB_CFLAGS = @XCB_CFLAGS@ 189XCB_CFLAGS = @XCB_CFLAGS@
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
268evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
269evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
270evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
271evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
268evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 272evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
269evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 273evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
270evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 274evas_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@
166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
167PIXMAN_LIBS = @PIXMAN_LIBS@ 167PIXMAN_LIBS = @PIXMAN_LIBS@
168PKG_CONFIG = @PKG_CONFIG@ 168PKG_CONFIG = @PKG_CONFIG@
169PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171PNG_CFLAGS = @PNG_CFLAGS@ 169PNG_CFLAGS = @PNG_CFLAGS@
172PNG_LIBS = @PNG_LIBS@ 170PNG_LIBS = @PNG_LIBS@
173RANLIB = @RANLIB@ 171RANLIB = @RANLIB@
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
184VALGRIND_LIBS = @VALGRIND_LIBS@ 182VALGRIND_LIBS = @VALGRIND_LIBS@
185VERSION = @VERSION@ 183VERSION = @VERSION@
186VMAJ = @VMAJ@ 184VMAJ = @VMAJ@
185WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
186WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
187WIN32_CFLAGS = @WIN32_CFLAGS@ 187WIN32_CFLAGS = @WIN32_CFLAGS@
188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
189XCB_CFLAGS = @XCB_CFLAGS@ 189XCB_CFLAGS = @XCB_CFLAGS@
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
268evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
269evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
270evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
271evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
268evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 272evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
269evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 273evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
270evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 274evas_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@
166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
167PIXMAN_LIBS = @PIXMAN_LIBS@ 167PIXMAN_LIBS = @PIXMAN_LIBS@
168PKG_CONFIG = @PKG_CONFIG@ 168PKG_CONFIG = @PKG_CONFIG@
169PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171PNG_CFLAGS = @PNG_CFLAGS@ 169PNG_CFLAGS = @PNG_CFLAGS@
172PNG_LIBS = @PNG_LIBS@ 170PNG_LIBS = @PNG_LIBS@
173RANLIB = @RANLIB@ 171RANLIB = @RANLIB@
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
184VALGRIND_LIBS = @VALGRIND_LIBS@ 182VALGRIND_LIBS = @VALGRIND_LIBS@
185VERSION = @VERSION@ 183VERSION = @VERSION@
186VMAJ = @VMAJ@ 184VMAJ = @VMAJ@
185WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
186WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
187WIN32_CFLAGS = @WIN32_CFLAGS@ 187WIN32_CFLAGS = @WIN32_CFLAGS@
188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
189XCB_CFLAGS = @XCB_CFLAGS@ 189XCB_CFLAGS = @XCB_CFLAGS@
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
268evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
269evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
270evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
271evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
268evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 272evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
269evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 273evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
270evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 274evas_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@
166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
167PIXMAN_LIBS = @PIXMAN_LIBS@ 167PIXMAN_LIBS = @PIXMAN_LIBS@
168PKG_CONFIG = @PKG_CONFIG@ 168PKG_CONFIG = @PKG_CONFIG@
169PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171PNG_CFLAGS = @PNG_CFLAGS@ 169PNG_CFLAGS = @PNG_CFLAGS@
172PNG_LIBS = @PNG_LIBS@ 170PNG_LIBS = @PNG_LIBS@
173RANLIB = @RANLIB@ 171RANLIB = @RANLIB@
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
184VALGRIND_LIBS = @VALGRIND_LIBS@ 182VALGRIND_LIBS = @VALGRIND_LIBS@
185VERSION = @VERSION@ 183VERSION = @VERSION@
186VMAJ = @VMAJ@ 184VMAJ = @VMAJ@
185WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
186WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
187WIN32_CFLAGS = @WIN32_CFLAGS@ 187WIN32_CFLAGS = @WIN32_CFLAGS@
188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
189XCB_CFLAGS = @XCB_CFLAGS@ 189XCB_CFLAGS = @XCB_CFLAGS@
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
268evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
269evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
270evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
271evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
268evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 272evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
269evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 273evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
270evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 274evas_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
19static inline void rect_list_merge_rects(list_t *rects, list_t *to_merge, int accepted_error); 19static inline void rect_list_merge_rects(list_t *rects, list_t *to_merge, int accepted_error);
20static inline void rect_list_add_split_fuzzy_and_merge(list_t *rects, list_node_t *node, int split_accepted_error, int merge_accepted_error); 20static inline void rect_list_add_split_fuzzy_and_merge(list_t *rects, list_node_t *node, int split_accepted_error, int merge_accepted_error);
21static inline void rect_print(const rect_t r); 21static inline void rect_print(const rect_t r);
22#if 0
22static inline void rect_list_print(const list_t rects); 23static inline void rect_list_print(const list_t rects);
24#endif
23 25
24static const list_node_t list_node_zeroed = { NULL }; 26static const list_node_t list_node_zeroed = { NULL };
25static const list_t list_zeroed = { NULL, NULL }; 27static 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
120static inline void 123static inline void
121rect_list_print(const list_t rects) 124rect_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
147static inline void 151static inline void
148rect_list_append_node(list_t *rects, list_node_t *node) 152rect_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@
201PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 201PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
202PIXMAN_LIBS = @PIXMAN_LIBS@ 202PIXMAN_LIBS = @PIXMAN_LIBS@
203PKG_CONFIG = @PKG_CONFIG@ 203PKG_CONFIG = @PKG_CONFIG@
204PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
205PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
206PNG_CFLAGS = @PNG_CFLAGS@ 204PNG_CFLAGS = @PNG_CFLAGS@
207PNG_LIBS = @PNG_LIBS@ 205PNG_LIBS = @PNG_LIBS@
208RANLIB = @RANLIB@ 206RANLIB = @RANLIB@
@@ -219,6 +217,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
219VALGRIND_LIBS = @VALGRIND_LIBS@ 217VALGRIND_LIBS = @VALGRIND_LIBS@
220VERSION = @VERSION@ 218VERSION = @VERSION@
221VMAJ = @VMAJ@ 219VMAJ = @VMAJ@
220WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
221WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
222WIN32_CFLAGS = @WIN32_CFLAGS@ 222WIN32_CFLAGS = @WIN32_CFLAGS@
223WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 223WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
224XCB_CFLAGS = @XCB_CFLAGS@ 224XCB_CFLAGS = @XCB_CFLAGS@
@@ -300,6 +300,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
300evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 300evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
301evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 301evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
302evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 302evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
303evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
304evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
305evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
306evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
303evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 307evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
304evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 308evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
305evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 309evas_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@
200PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 200PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
201PIXMAN_LIBS = @PIXMAN_LIBS@ 201PIXMAN_LIBS = @PIXMAN_LIBS@
202PKG_CONFIG = @PKG_CONFIG@ 202PKG_CONFIG = @PKG_CONFIG@
203PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
204PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
205PNG_CFLAGS = @PNG_CFLAGS@ 203PNG_CFLAGS = @PNG_CFLAGS@
206PNG_LIBS = @PNG_LIBS@ 204PNG_LIBS = @PNG_LIBS@
207RANLIB = @RANLIB@ 205RANLIB = @RANLIB@
@@ -218,6 +216,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
218VALGRIND_LIBS = @VALGRIND_LIBS@ 216VALGRIND_LIBS = @VALGRIND_LIBS@
219VERSION = @VERSION@ 217VERSION = @VERSION@
220VMAJ = @VMAJ@ 218VMAJ = @VMAJ@
219WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
220WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
221WIN32_CFLAGS = @WIN32_CFLAGS@ 221WIN32_CFLAGS = @WIN32_CFLAGS@
222WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 222WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
223XCB_CFLAGS = @XCB_CFLAGS@ 223XCB_CFLAGS = @XCB_CFLAGS@
@@ -299,6 +299,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
299evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 299evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
300evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 300evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
301evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 301evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
302evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
303evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
304evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
305evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
302evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 306evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
303evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 307evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
304evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 308evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/file/Makefile.in b/libraries/evas/src/lib/file/Makefile.in
index 599d980..2ac89b1 100644
--- a/libraries/evas/src/lib/file/Makefile.in
+++ b/libraries/evas/src/lib/file/Makefile.in
@@ -196,8 +196,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
196PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 196PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
197PIXMAN_LIBS = @PIXMAN_LIBS@ 197PIXMAN_LIBS = @PIXMAN_LIBS@
198PKG_CONFIG = @PKG_CONFIG@ 198PKG_CONFIG = @PKG_CONFIG@
199PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
200PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
201PNG_CFLAGS = @PNG_CFLAGS@ 199PNG_CFLAGS = @PNG_CFLAGS@
202PNG_LIBS = @PNG_LIBS@ 200PNG_LIBS = @PNG_LIBS@
203RANLIB = @RANLIB@ 201RANLIB = @RANLIB@
@@ -214,6 +212,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
214VALGRIND_LIBS = @VALGRIND_LIBS@ 212VALGRIND_LIBS = @VALGRIND_LIBS@
215VERSION = @VERSION@ 213VERSION = @VERSION@
216VMAJ = @VMAJ@ 214VMAJ = @VMAJ@
215WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
216WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
217WIN32_CFLAGS = @WIN32_CFLAGS@ 217WIN32_CFLAGS = @WIN32_CFLAGS@
218WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 218WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
219XCB_CFLAGS = @XCB_CFLAGS@ 219XCB_CFLAGS = @XCB_CFLAGS@
@@ -295,6 +295,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
295evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 295evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
296evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 296evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
297evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 297evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
298evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
299evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
300evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
301evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
298evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 302evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
299evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 303evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
300evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 304evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/file/evas_module.c b/libraries/evas/src/lib/file/evas_module.c
index 6b4d4f6..21d5cd0 100644
--- a/libraries/evas/src/lib/file/evas_module.c
+++ b/libraries/evas/src/lib/file/evas_module.c
@@ -285,7 +285,7 @@ evas_module_register(const Evas_Module_Api *module, Evas_Module_Type type)
285 if (type == EVAS_MODULE_TYPE_ENGINE) 285 if (type == EVAS_MODULE_TYPE_ENGINE)
286 { 286 {
287 eina_array_push(evas_engines, em); 287 eina_array_push(evas_engines, em);
288 em->id_engine = eina_array_count_get(evas_engines); 288 em->id_engine = eina_array_count(evas_engines);
289 } 289 }
290 290
291 eina_hash_direct_add(evas_modules[type], module->name, em); 291 eina_hash_direct_add(evas_modules[type], module->name, em);
@@ -398,7 +398,7 @@ Evas_Module *
398evas_module_engine_get(int render_method) 398evas_module_engine_get(int render_method)
399{ 399{
400 if ((render_method <= 0) || 400 if ((render_method <= 0) ||
401 ((unsigned int)render_method > eina_array_count_get(evas_engines))) 401 ((unsigned int)render_method > eina_array_count(evas_engines)))
402 return NULL; 402 return NULL;
403 return eina_array_data_get(evas_engines, render_method - 1); 403 return eina_array_data_get(evas_engines, render_method - 1);
404} 404}
diff --git a/libraries/evas/src/lib/file/evas_path.c b/libraries/evas/src/lib/file/evas_path.c
index ff13e20..c663c16 100644
--- a/libraries/evas/src/lib/file/evas_path.c
+++ b/libraries/evas/src/lib/file/evas_path.c
@@ -123,7 +123,7 @@ evas_file_path_list(char *path, const char *match, int match_case)
123 else 123 else
124 files = eina_list_append(files, strdup(info->path + info->name_start)); 124 files = eina_list_append(files, strdup(info->path + info->name_start));
125 } 125 }
126 eina_iterator_free(it); 126 if (it) eina_iterator_free(it);
127 return files; 127 return files;
128} 128}
129 129
diff --git a/libraries/evas/src/lib/include/Makefile.in b/libraries/evas/src/lib/include/Makefile.in
index 9d5c371..21f0099 100644
--- a/libraries/evas/src/lib/include/Makefile.in
+++ b/libraries/evas/src/lib/include/Makefile.in
@@ -166,8 +166,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
167PIXMAN_LIBS = @PIXMAN_LIBS@ 167PIXMAN_LIBS = @PIXMAN_LIBS@
168PKG_CONFIG = @PKG_CONFIG@ 168PKG_CONFIG = @PKG_CONFIG@
169PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171PNG_CFLAGS = @PNG_CFLAGS@ 169PNG_CFLAGS = @PNG_CFLAGS@
172PNG_LIBS = @PNG_LIBS@ 170PNG_LIBS = @PNG_LIBS@
173RANLIB = @RANLIB@ 171RANLIB = @RANLIB@
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
184VALGRIND_LIBS = @VALGRIND_LIBS@ 182VALGRIND_LIBS = @VALGRIND_LIBS@
185VERSION = @VERSION@ 183VERSION = @VERSION@
186VMAJ = @VMAJ@ 184VMAJ = @VMAJ@
185WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
186WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
187WIN32_CFLAGS = @WIN32_CFLAGS@ 187WIN32_CFLAGS = @WIN32_CFLAGS@
188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
189XCB_CFLAGS = @XCB_CFLAGS@ 189XCB_CFLAGS = @XCB_CFLAGS@
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
268evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
269evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
270evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
271evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
268evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 272evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
269evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 273evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
270evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 274evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/include/evas_common.h b/libraries/evas/src/lib/include/evas_common.h
index f817202..a9063e6 100644
--- a/libraries/evas/src/lib/include/evas_common.h
+++ b/libraries/evas/src/lib/include/evas_common.h
@@ -1,9 +1,9 @@
1#ifndef EVAS_COMMON_H 1#ifndef EVAS_COMMON_H
2#define EVAS_COMMON_H 2#define EVAS_COMMON_H
3 3
4#ifdef HAVE_CONFIG_H 4//#ifdef HAVE_CONFIG_H
5# include "config.h" /* so that EAPI in Evas.h is correctly defined */ 5#include "config.h" /* so that EAPI in Evas.h is correctly defined */
6#endif 6//#endif
7 7
8#ifdef HAVE_EVIL 8#ifdef HAVE_EVIL
9# include <Evil.h> 9# include <Evil.h>
@@ -138,8 +138,6 @@ extern EAPI int _evas_log_dom_global;
138# define BUILD_PTHREAD 138# define BUILD_PTHREAD
139#endif 139#endif
140 140
141#ifdef BUILD_PTHREAD
142
143#define LK(x) Eina_Lock x 141#define LK(x) Eina_Lock x
144#define LKI(x) eina_lock_new(&(x)) 142#define LKI(x) eina_lock_new(&(x))
145#define LKD(x) eina_lock_free(&(x)) 143#define LKD(x) eina_lock_free(&(x))
@@ -148,42 +146,28 @@ extern EAPI int _evas_log_dom_global;
148#define LKU(x) eina_lock_release(&(x)) 146#define LKU(x) eina_lock_release(&(x))
149#define LKDBG(x) eina_lock_debug(&(x)) 147#define LKDBG(x) eina_lock_debug(&(x))
150 148
149/* for rwlocks */
150#define RWLK(x) Eina_RWLock x
151#define RWLKI(x) eina_rwlock_new(&(x))
152#define RWLKD(x) eina_rwlock_free(&(x))
153#define RDLKL(x) eina_rwlock_take_read(&(x))
154#define WRLKL(x) eina_rwlock_take_write(&(x))
155#define RWLKU(x) eina_rwlock_release(&(x))
156
157#ifdef BUILD_PTHREAD
158
151# define TH(x) pthread_t x 159# define TH(x) pthread_t x
152# define THI(x) int x 160# define THI(x) int x
153# define TH_MAX 8 161# define TH_MAX 8
154 162
155/* for rwlocks */
156#define RWLK(x) pthread_rwlock_t x
157#define RWLKI(x) pthread_rwlock_init(&(x), NULL)
158#define RWLKD(x) pthread_rwlock_destroy(&(x))
159#define RDLKL(x) pthread_rwlock_rdlock(&(x))
160#define WRLKL(x) pthread_rwlock_wrlock(&(x))
161#define RWLKU(x) pthread_rwlock_unlock(&(x))
162
163
164// even though in theory having every Nth rendered line done by a different 163// even though in theory having every Nth rendered line done by a different
165// thread might even out load across threads - it actually slows things down. 164// thread might even out load across threads - it actually slows things down.
166//#define EVAS_SLI 1 165//#define EVAS_SLI 1
167 166
168#else 167#else
169# define LK(x)
170# define LKI(x)
171# define LKD(x)
172# define LKL(x)
173# define LKT(x) 1
174# define LKU(x)
175# define TH(x) 168# define TH(x)
176# define THI(x) 169# define THI(x)
177# define TH_MAX 0 170# define TH_MAX 0
178# define LKDBG(x)
179
180/* for rwlocks */
181#define RWLK(x)
182#define RWLKI(x)
183#define RWLKD(x)
184#define RDLKL(x)
185#define WRLKL(x)
186#define RWLKU(x)
187 171
188#endif 172#endif
189 173
@@ -338,6 +322,21 @@ void *alloca (size_t);
338#define pld(addr, off) 322#define pld(addr, off)
339#endif /* __ARMEL__ */ 323#endif /* __ARMEL__ */
340 324
325// these here are in config.h - just here for documentation
326//#ifdef __ARM_ARCH__
327// *IF* you enable pixman, this determines which things pixman will do
328////#define PIXMAN_FONT 1
329////#define PIXMAN_RECT 1
330////#define PIXMAN_LINE 1
331////#define PIXMAN_POLY 1
332//#define PIXMAN_IMAGE 1
333//#define PIXMAN_IMAGE_SCALE_SAMPLE 1
334//#endif
335// not related to pixman but an alternate rotate code
336//#define TILE_ROTATE 1
337
338#define TILE_CACHE_LINE_SIZE 64
339
341/*****************************************************************************/ 340/*****************************************************************************/
342 341
343#define UNROLL2(op...) op op 342#define UNROLL2(op...) op op
@@ -678,6 +677,9 @@ struct _RGBA_Draw_Context
678 DATA32 col; 677 DATA32 col;
679 } mul; 678 } mul;
680 struct { 679 struct {
680#ifdef HAVE_PIXMAN
681 pixman_image_t *pixman_color_image;
682#endif
681 DATA32 col; 683 DATA32 col;
682 } col; 684 } col;
683 struct RGBA_Draw_Context_clip { 685 struct RGBA_Draw_Context_clip {
@@ -1032,14 +1034,14 @@ struct _Tilebuf
1032 int x, y, w, h; 1034 int x, y, w, h;
1033 } prev_add, prev_del; 1035 } prev_add, prev_del;
1034#ifdef RECTUPDATE 1036#ifdef RECTUPDATE
1035/* 1037/*
1036 Regionbuf *rb; 1038 Regionbuf *rb;
1037 */ 1039 */
1038#elif defined(EVAS_RECT_SPLIT) 1040#elif defined(EVAS_RECT_SPLIT)
1039 int need_merge; 1041 int need_merge;
1040 list_t rects; 1042 list_t rects;
1041#else 1043#else
1042/* 1044/*
1043 struct { 1045 struct {
1044 int w, h; 1046 int w, h;
1045 Tilebuf_Tile *tiles; 1047 Tilebuf_Tile *tiles;
diff --git a/libraries/evas/src/lib/include/evas_private.h b/libraries/evas/src/lib/include/evas_private.h
index 90498d0..84c1d36 100644
--- a/libraries/evas/src/lib/include/evas_private.h
+++ b/libraries/evas/src/lib/include/evas_private.h
@@ -301,12 +301,13 @@ struct _Evas
301 struct { 301 struct {
302 unsigned char inside : 1; 302 unsigned char inside : 1;
303 int mouse_grabbed; 303 int mouse_grabbed;
304 int downs;
304 DATA32 button; 305 DATA32 button;
305 Evas_Coord x, y; 306 Evas_Coord x, y;
307 int nogrep;
306 struct { 308 struct {
307 Eina_List *in; 309 Eina_List *in;
308 } object; 310 } object;
309
310 } pointer; 311 } pointer;
311 312
312 struct { 313 struct {
@@ -320,6 +321,12 @@ struct _Evas
320 unsigned char changed : 1; 321 unsigned char changed : 1;
321 } output; 322 } output;
322 323
324 struct
325 {
326 Evas_Coord x, y, w, h;
327 Eina_Bool changed : 1;
328 } framespace;
329
323 Eina_List *damages; 330 Eina_List *damages;
324 Eina_List *obscures; 331 Eina_List *obscures;
325 332
@@ -331,6 +338,7 @@ struct _Evas
331 338
332 int walking_list; 339 int walking_list;
333 int events_frozen; 340 int events_frozen;
341 Evas_Event_Flags default_event_flags;
334 342
335 struct { 343 struct {
336 Evas_Module *module; 344 Evas_Module *module;
@@ -577,7 +585,7 @@ struct _Evas_Object
577 unsigned char recalculate_cycle; 585 unsigned char recalculate_cycle;
578 Eina_Clist calc_entry; 586 Eina_Clist calc_entry;
579 587
580 Evas_Object_Pointer_Mode pointer_mode : 1; 588 Evas_Object_Pointer_Mode pointer_mode : 2;
581 589
582 Eina_Bool store : 1; 590 Eina_Bool store : 1;
583 Eina_Bool pass_events : 1; 591 Eina_Bool pass_events : 1;
@@ -608,6 +616,8 @@ struct _Evas_Object
608 Eina_Bool changed_move_only : 1; 616 Eina_Bool changed_move_only : 1;
609 Eina_Bool changed_nomove : 1; 617 Eina_Bool changed_nomove : 1;
610 Eina_Bool del_ref : 1; 618 Eina_Bool del_ref : 1;
619
620 Eina_Bool is_frame : 1;
611}; 621};
612 622
613struct _Evas_Func_Node 623struct _Evas_Func_Node
@@ -772,6 +782,7 @@ struct _Evas_Func
772 char *(*image_format_get) (void *data, void *image); 782 char *(*image_format_get) (void *data, void *image);
773 void (*image_colorspace_set) (void *data, void *image, int cspace); 783 void (*image_colorspace_set) (void *data, void *image, int cspace);
774 int (*image_colorspace_get) (void *data, void *image); 784 int (*image_colorspace_get) (void *data, void *image);
785 Eina_Bool (*image_can_region_get) (void *data, void *image);
775 void (*image_mask_create) (void *data, void *image); 786 void (*image_mask_create) (void *data, void *image);
776 void *(*image_native_set) (void *data, void *image, void *native); 787 void *(*image_native_set) (void *data, void *image, void *native);
777 void *(*image_native_get) (void *data, void *image); 788 void *(*image_native_get) (void *data, void *image);
@@ -861,6 +872,7 @@ struct _Evas_Image_Load_Func
861 Eina_Bool (*file_head) (Image_Entry *ie, const char *file, const char *key, int *error); 872 Eina_Bool (*file_head) (Image_Entry *ie, const char *file, const char *key, int *error);
862 Eina_Bool (*file_data) (Image_Entry *ie, const char *file, const char *key, int *error); 873 Eina_Bool (*file_data) (Image_Entry *ie, const char *file, const char *key, int *error);
863 double (*frame_duration) (Image_Entry *ie, const char *file, const int start, const int frame_num); 874 double (*frame_duration) (Image_Entry *ie, const char *file, const int start, const int frame_num);
875 Eina_Bool do_region;
864}; 876};
865 877
866struct _Evas_Image_Save_Func 878struct _Evas_Image_Save_Func
@@ -904,7 +916,7 @@ void evas_object_clip_across_check(Evas_Object *obj);
904void evas_object_clip_across_clippees_check(Evas_Object *obj); 916void evas_object_clip_across_clippees_check(Evas_Object *obj);
905void evas_object_mapped_clip_across_mark(Evas_Object *obj); 917void evas_object_mapped_clip_across_mark(Evas_Object *obj);
906void evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info); 918void evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info);
907void evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void *event_info); 919void evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void *event_info, int event_id);
908Eina_List *evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y); 920Eina_List *evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y);
909int evas_mem_free(int mem_required); 921int evas_mem_free(int mem_required);
910int evas_mem_degrade(int mem_required); 922int evas_mem_degrade(int mem_required);
diff --git a/libraries/evas/src/modules/Makefile.in b/libraries/evas/src/modules/Makefile.in
index 9cd0201..e4f1cbc 100644
--- a/libraries/evas/src/modules/Makefile.in
+++ b/libraries/evas/src/modules/Makefile.in
@@ -206,8 +206,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
206PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 206PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
207PIXMAN_LIBS = @PIXMAN_LIBS@ 207PIXMAN_LIBS = @PIXMAN_LIBS@
208PKG_CONFIG = @PKG_CONFIG@ 208PKG_CONFIG = @PKG_CONFIG@
209PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
210PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
211PNG_CFLAGS = @PNG_CFLAGS@ 209PNG_CFLAGS = @PNG_CFLAGS@
212PNG_LIBS = @PNG_LIBS@ 210PNG_LIBS = @PNG_LIBS@
213RANLIB = @RANLIB@ 211RANLIB = @RANLIB@
@@ -224,6 +222,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
224VALGRIND_LIBS = @VALGRIND_LIBS@ 222VALGRIND_LIBS = @VALGRIND_LIBS@
225VERSION = @VERSION@ 223VERSION = @VERSION@
226VMAJ = @VMAJ@ 224VMAJ = @VMAJ@
225WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
226WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
227WIN32_CFLAGS = @WIN32_CFLAGS@ 227WIN32_CFLAGS = @WIN32_CFLAGS@
228WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 228WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
229XCB_CFLAGS = @XCB_CFLAGS@ 229XCB_CFLAGS = @XCB_CFLAGS@
@@ -305,6 +305,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
305evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 305evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
306evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 306evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
307evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 307evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
308evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
309evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
310evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
311evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
308evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 312evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
309evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 313evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
310evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 314evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/Makefile.am b/libraries/evas/src/modules/engines/Makefile.am
index 7d870a1..42585cc 100644
--- a/libraries/evas/src/modules/engines/Makefile.am
+++ b/libraries/evas/src/modules/engines/Makefile.am
@@ -68,4 +68,9 @@ endif
68if !EVAS_STATIC_BUILD_SOFTWARE_X11 68if !EVAS_STATIC_BUILD_SOFTWARE_X11
69SUBDIRS += software_x11 69SUBDIRS += software_x11
70endif 70endif
71 71if !EVAS_STATIC_BUILD_WAYLAND_SHM
72SUBDIRS += wayland_shm
73endif
74if !EVAS_STATIC_BUILD_WAYLAND_EGL
75SUBDIRS += wayland_egl
76endif
diff --git a/libraries/evas/src/modules/engines/Makefile.in b/libraries/evas/src/modules/engines/Makefile.in
index 3994fca..5820026 100644
--- a/libraries/evas/src/modules/engines/Makefile.in
+++ b/libraries/evas/src/modules/engines/Makefile.in
@@ -54,6 +54,8 @@ host_triplet = @host@
54@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@am__append_19 = software_ddraw 54@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@am__append_19 = software_ddraw
55@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@am__append_20 = software_gdi 55@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@am__append_20 = software_gdi
56@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@am__append_21 = software_x11 56@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@am__append_21 = software_x11
57@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@am__append_22 = wayland_shm
58@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@am__append_23 = wayland_egl
57subdir = src/modules/engines 59subdir = src/modules/engines
58DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 60DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
59ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 61ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -102,7 +104,7 @@ DIST_SUBDIRS = software_generic buffer direct3d directfb fb psl1ght \
102 gl_common gl_x11 gl_sdl gl_cocoa software_8 software_8_x11 \ 104 gl_common gl_x11 gl_sdl gl_cocoa software_8 software_8_x11 \
103 software_16 software_16_ddraw software_16_wince \ 105 software_16 software_16_ddraw software_16_wince \
104 software_16_x11 software_sdl software_16_sdl software_ddraw \ 106 software_16_x11 software_sdl software_16_sdl software_ddraw \
105 software_gdi software_x11 107 software_gdi software_x11 wayland_shm wayland_egl
106DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 108DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
107am__relativize = \ 109am__relativize = \
108 dir0=`pwd`; \ 110 dir0=`pwd`; \
@@ -231,8 +233,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 233PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 234PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 235PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 236PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 237PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 238RANLIB = @RANLIB@
@@ -249,6 +249,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 249VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 250VERSION = @VERSION@
251VMAJ = @VMAJ@ 251VMAJ = @VMAJ@
252WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
253WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 254WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 255WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 256XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +332,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 332evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 333evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 334evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
335evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
336evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
337evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
338evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 339evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 340evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 341evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
@@ -411,7 +417,8 @@ SUBDIRS = $(am__append_1) $(am__append_2) $(am__append_3) \
411 $(am__append_10) $(am__append_11) $(am__append_12) \ 417 $(am__append_10) $(am__append_11) $(am__append_12) \
412 $(am__append_13) $(am__append_14) $(am__append_15) \ 418 $(am__append_13) $(am__append_14) $(am__append_15) \
413 $(am__append_16) $(am__append_17) $(am__append_18) \ 419 $(am__append_16) $(am__append_17) $(am__append_18) \
414 $(am__append_19) $(am__append_20) $(am__append_21) 420 $(am__append_19) $(am__append_20) $(am__append_21) \
421 $(am__append_22) $(am__append_23)
415all: all-recursive 422all: all-recursive
416 423
417.SUFFIXES: 424.SUFFIXES:
diff --git a/libraries/evas/src/modules/engines/buffer/Makefile.in b/libraries/evas/src/modules/engines/buffer/Makefile.in
index 2311344..ec9c0b8 100644
--- a/libraries/evas/src/modules/engines/buffer/Makefile.in
+++ b/libraries/evas/src/modules/engines/buffer/Makefile.in
@@ -240,8 +240,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
240PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 240PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
241PIXMAN_LIBS = @PIXMAN_LIBS@ 241PIXMAN_LIBS = @PIXMAN_LIBS@
242PKG_CONFIG = @PKG_CONFIG@ 242PKG_CONFIG = @PKG_CONFIG@
243PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
244PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
245PNG_CFLAGS = @PNG_CFLAGS@ 243PNG_CFLAGS = @PNG_CFLAGS@
246PNG_LIBS = @PNG_LIBS@ 244PNG_LIBS = @PNG_LIBS@
247RANLIB = @RANLIB@ 245RANLIB = @RANLIB@
@@ -258,6 +256,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
258VALGRIND_LIBS = @VALGRIND_LIBS@ 256VALGRIND_LIBS = @VALGRIND_LIBS@
259VERSION = @VERSION@ 257VERSION = @VERSION@
260VMAJ = @VMAJ@ 258VMAJ = @VMAJ@
259WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
260WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
261WIN32_CFLAGS = @WIN32_CFLAGS@ 261WIN32_CFLAGS = @WIN32_CFLAGS@
262WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 262WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
263XCB_CFLAGS = @XCB_CFLAGS@ 263XCB_CFLAGS = @XCB_CFLAGS@
@@ -339,6 +339,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
342evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
343evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
344evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
345evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
342evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
343evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
344evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/direct3d/Makefile.in b/libraries/evas/src/modules/engines/direct3d/Makefile.in
index 03d892e..85baff8 100644
--- a/libraries/evas/src/modules/engines/direct3d/Makefile.in
+++ b/libraries/evas/src/modules/engines/direct3d/Makefile.in
@@ -293,8 +293,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
293PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 293PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
294PIXMAN_LIBS = @PIXMAN_LIBS@ 294PIXMAN_LIBS = @PIXMAN_LIBS@
295PKG_CONFIG = @PKG_CONFIG@ 295PKG_CONFIG = @PKG_CONFIG@
296PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
297PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
298PNG_CFLAGS = @PNG_CFLAGS@ 296PNG_CFLAGS = @PNG_CFLAGS@
299PNG_LIBS = @PNG_LIBS@ 297PNG_LIBS = @PNG_LIBS@
300RANLIB = @RANLIB@ 298RANLIB = @RANLIB@
@@ -311,6 +309,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
311VALGRIND_LIBS = @VALGRIND_LIBS@ 309VALGRIND_LIBS = @VALGRIND_LIBS@
312VERSION = @VERSION@ 310VERSION = @VERSION@
313VMAJ = @VMAJ@ 311VMAJ = @VMAJ@
312WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
313WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
314WIN32_CFLAGS = @WIN32_CFLAGS@ 314WIN32_CFLAGS = @WIN32_CFLAGS@
315WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 315WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
316XCB_CFLAGS = @XCB_CFLAGS@ 316XCB_CFLAGS = @XCB_CFLAGS@
@@ -392,6 +392,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
392evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 392evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
393evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 393evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
394evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 394evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
395evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
396evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
397evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
398evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
395evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 399evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
396evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 400evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
397evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 401evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/directfb/Makefile.in b/libraries/evas/src/modules/engines/directfb/Makefile.in
index cd5651a..df2f63b 100644
--- a/libraries/evas/src/modules/engines/directfb/Makefile.in
+++ b/libraries/evas/src/modules/engines/directfb/Makefile.in
@@ -240,8 +240,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
240PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 240PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
241PIXMAN_LIBS = @PIXMAN_LIBS@ 241PIXMAN_LIBS = @PIXMAN_LIBS@
242PKG_CONFIG = @PKG_CONFIG@ 242PKG_CONFIG = @PKG_CONFIG@
243PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
244PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
245PNG_CFLAGS = @PNG_CFLAGS@ 243PNG_CFLAGS = @PNG_CFLAGS@
246PNG_LIBS = @PNG_LIBS@ 244PNG_LIBS = @PNG_LIBS@
247RANLIB = @RANLIB@ 245RANLIB = @RANLIB@
@@ -258,6 +256,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
258VALGRIND_LIBS = @VALGRIND_LIBS@ 256VALGRIND_LIBS = @VALGRIND_LIBS@
259VERSION = @VERSION@ 257VERSION = @VERSION@
260VMAJ = @VMAJ@ 258VMAJ = @VMAJ@
259WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
260WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
261WIN32_CFLAGS = @WIN32_CFLAGS@ 261WIN32_CFLAGS = @WIN32_CFLAGS@
262WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 262WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
263XCB_CFLAGS = @XCB_CFLAGS@ 263XCB_CFLAGS = @XCB_CFLAGS@
@@ -339,6 +339,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
342evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
343evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
344evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
345evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
342evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
343evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
344evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/fb/Makefile.in b/libraries/evas/src/modules/engines/fb/Makefile.in
index aec24ff..1e82b34 100644
--- a/libraries/evas/src/modules/engines/fb/Makefile.in
+++ b/libraries/evas/src/modules/engines/fb/Makefile.in
@@ -244,8 +244,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@ 245PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@ 246PKG_CONFIG = @PKG_CONFIG@
247PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
248PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
249PNG_CFLAGS = @PNG_CFLAGS@ 247PNG_CFLAGS = @PNG_CFLAGS@
250PNG_LIBS = @PNG_LIBS@ 248PNG_LIBS = @PNG_LIBS@
251RANLIB = @RANLIB@ 249RANLIB = @RANLIB@
@@ -262,6 +260,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
262VALGRIND_LIBS = @VALGRIND_LIBS@ 260VALGRIND_LIBS = @VALGRIND_LIBS@
263VERSION = @VERSION@ 261VERSION = @VERSION@
264VMAJ = @VMAJ@ 262VMAJ = @VMAJ@
263WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
264WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
265WIN32_CFLAGS = @WIN32_CFLAGS@ 265WIN32_CFLAGS = @WIN32_CFLAGS@
266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
267XCB_CFLAGS = @XCB_CFLAGS@ 267XCB_CFLAGS = @XCB_CFLAGS@
@@ -343,6 +343,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/gl_cocoa/Makefile.in b/libraries/evas/src/modules/engines/gl_cocoa/Makefile.in
index ceea03d..6e616f4 100644
--- a/libraries/evas/src/modules/engines/gl_cocoa/Makefile.in
+++ b/libraries/evas/src/modules/engines/gl_cocoa/Makefile.in
@@ -258,8 +258,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
258PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 258PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
259PIXMAN_LIBS = @PIXMAN_LIBS@ 259PIXMAN_LIBS = @PIXMAN_LIBS@
260PKG_CONFIG = @PKG_CONFIG@ 260PKG_CONFIG = @PKG_CONFIG@
261PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
262PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
263PNG_CFLAGS = @PNG_CFLAGS@ 261PNG_CFLAGS = @PNG_CFLAGS@
264PNG_LIBS = @PNG_LIBS@ 262PNG_LIBS = @PNG_LIBS@
265RANLIB = @RANLIB@ 263RANLIB = @RANLIB@
@@ -276,6 +274,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
276VALGRIND_LIBS = @VALGRIND_LIBS@ 274VALGRIND_LIBS = @VALGRIND_LIBS@
277VERSION = @VERSION@ 275VERSION = @VERSION@
278VMAJ = @VMAJ@ 276VMAJ = @VMAJ@
277WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
278WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
279WIN32_CFLAGS = @WIN32_CFLAGS@ 279WIN32_CFLAGS = @WIN32_CFLAGS@
280WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 280WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
281XCB_CFLAGS = @XCB_CFLAGS@ 281XCB_CFLAGS = @XCB_CFLAGS@
@@ -357,6 +357,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
357evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 357evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
358evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 358evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
359evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 359evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
360evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
361evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
362evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
363evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
360evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 364evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
361evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 365evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
362evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 366evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/gl_common/Makefile.in b/libraries/evas/src/modules/engines/gl_common/Makefile.in
index 61ed478..27284f9 100644
--- a/libraries/evas/src/modules/engines/gl_common/Makefile.in
+++ b/libraries/evas/src/modules/engines/gl_common/Makefile.in
@@ -245,8 +245,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
245PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 245PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
246PIXMAN_LIBS = @PIXMAN_LIBS@ 246PIXMAN_LIBS = @PIXMAN_LIBS@
247PKG_CONFIG = @PKG_CONFIG@ 247PKG_CONFIG = @PKG_CONFIG@
248PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
249PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
250PNG_CFLAGS = @PNG_CFLAGS@ 248PNG_CFLAGS = @PNG_CFLAGS@
251PNG_LIBS = @PNG_LIBS@ 249PNG_LIBS = @PNG_LIBS@
252RANLIB = @RANLIB@ 250RANLIB = @RANLIB@
@@ -263,6 +261,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
263VALGRIND_LIBS = @VALGRIND_LIBS@ 261VALGRIND_LIBS = @VALGRIND_LIBS@
264VERSION = @VERSION@ 262VERSION = @VERSION@
265VMAJ = @VMAJ@ 263VMAJ = @VMAJ@
264WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
265WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
266WIN32_CFLAGS = @WIN32_CFLAGS@ 266WIN32_CFLAGS = @WIN32_CFLAGS@
267WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 267WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
268XCB_CFLAGS = @XCB_CFLAGS@ 268XCB_CFLAGS = @XCB_CFLAGS@
@@ -344,6 +344,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
344evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 344evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
345evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 345evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
346evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 346evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
347evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
348evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
349evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
350evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
347evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 351evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
348evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 352evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
349evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 353evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_common.h b/libraries/evas/src/modules/engines/gl_common/evas_gl_common.h
index a088748..051fb3b 100644
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_common.h
+++ b/libraries/evas/src/modules/engines/gl_common/evas_gl_common.h
@@ -15,7 +15,7 @@
15 15
16#define GL_GLEXT_PROTOTYPES 16#define GL_GLEXT_PROTOTYPES
17 17
18#ifdef BUILD_ENGINE_GL_QUARTZ 18#ifdef BUILD_ENGINE_GL_COCOA
19# include <OpenGL/gl.h> 19# include <OpenGL/gl.h>
20# include <OpenGL/glext.h> 20# include <OpenGL/glext.h>
21#else 21#else
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c b/libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c
index c99f4bd..8162cd1 100644
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c
+++ b/libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c
@@ -109,7 +109,9 @@ _tex_format_index(GLuint format)
109static void 109static void
110_tex_2d(int intfmt, int w, int h, int fmt, int type) 110_tex_2d(int intfmt, int w, int h, int fmt, int type)
111{ 111{
112#ifdef GL_TEXTURE_INTERNAL_FORMAT
112 int intfmtret = -1; 113 int intfmtret = -1;
114#endif
113 glTexImage2D(GL_TEXTURE_2D, 0, intfmt, w, h, 0, fmt, type, NULL); 115 glTexImage2D(GL_TEXTURE_2D, 0, intfmt, w, h, 0, fmt, type, NULL);
114 GLERR(__FUNCTION__, __FILE__, __LINE__, ""); 116 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
115#ifdef GL_TEXTURE_INTERNAL_FORMAT 117#ifdef GL_TEXTURE_INTERNAL_FORMAT
@@ -479,7 +481,6 @@ _pool_tex_dynamic_new(Evas_Engine_GL_Context *gc, int w, int h, int intformat, i
479#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX) 481#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
480 int fmt; // EGL_MAP_GL_TEXTURE_RGBA_SEC or EGL_MAP_GL_TEXTURE_RGB_SEC or bust 482 int fmt; // EGL_MAP_GL_TEXTURE_RGBA_SEC or EGL_MAP_GL_TEXTURE_RGB_SEC or bust
481 int pixtype; // EGL_MAP_GL_TEXTURE_UNSIGNED_BYTE_SEC or bust 483 int pixtype; // EGL_MAP_GL_TEXTURE_UNSIGNED_BYTE_SEC or bust
482 int glformat;
483 int attr[] = 484 int attr[] =
484 { 485 {
485 EGL_MAP_GL_TEXTURE_WIDTH_SEC, 32, 486 EGL_MAP_GL_TEXTURE_WIDTH_SEC, 32,
@@ -914,7 +915,7 @@ evas_gl_common_texture_update(Evas_GL_Texture *tex, RGBA_Image *im)
914 tpix = alloca(im->cache_entry.h * sizeof(DATA32)); 915 tpix = alloca(im->cache_entry.h * sizeof(DATA32));
915 pd = tpix; 916 pd = tpix;
916 ps = im->image.data; 917 ps = im->image.data;
917 for (i = 0; i < im->cache_entry.h; i++) 918 for (i = 0; i < (int)im->cache_entry.h; i++)
918 { 919 {
919 *pd = *ps; 920 *pd = *ps;
920 pd++; 921 pd++;
@@ -929,7 +930,7 @@ evas_gl_common_texture_update(Evas_GL_Texture *tex, RGBA_Image *im)
929 tpix); 930 tpix);
930 pd = tpix; 931 pd = tpix;
931 ps = im->image.data + (im->cache_entry.w - 1); 932 ps = im->image.data + (im->cache_entry.w - 1);
932 for (i = 0; i < im->cache_entry.h; i++) 933 for (i = 0; i < (int)im->cache_entry.h; i++)
933 { 934 {
934 *pd = *ps; 935 *pd = *ps;
935 pd++; 936 pd++;
diff --git a/libraries/evas/src/modules/engines/gl_sdl/Makefile.in b/libraries/evas/src/modules/engines/gl_sdl/Makefile.in
index 5d4135d..bfb29ac 100644
--- a/libraries/evas/src/modules/engines/gl_sdl/Makefile.in
+++ b/libraries/evas/src/modules/engines/gl_sdl/Makefile.in
@@ -239,8 +239,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
239PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 239PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
240PIXMAN_LIBS = @PIXMAN_LIBS@ 240PIXMAN_LIBS = @PIXMAN_LIBS@
241PKG_CONFIG = @PKG_CONFIG@ 241PKG_CONFIG = @PKG_CONFIG@
242PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
243PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
244PNG_CFLAGS = @PNG_CFLAGS@ 242PNG_CFLAGS = @PNG_CFLAGS@
245PNG_LIBS = @PNG_LIBS@ 243PNG_LIBS = @PNG_LIBS@
246RANLIB = @RANLIB@ 244RANLIB = @RANLIB@
@@ -257,6 +255,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
257VALGRIND_LIBS = @VALGRIND_LIBS@ 255VALGRIND_LIBS = @VALGRIND_LIBS@
258VERSION = @VERSION@ 256VERSION = @VERSION@
259VMAJ = @VMAJ@ 257VMAJ = @VMAJ@
258WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
259WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
260WIN32_CFLAGS = @WIN32_CFLAGS@ 260WIN32_CFLAGS = @WIN32_CFLAGS@
261WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 261WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
262XCB_CFLAGS = @XCB_CFLAGS@ 262XCB_CFLAGS = @XCB_CFLAGS@
@@ -338,6 +338,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
338evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 338evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
339evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 339evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
340evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 340evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
341evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
342evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
343evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
344evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
341evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 345evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
342evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 346evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
343evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 347evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/gl_x11/Makefile.in b/libraries/evas/src/modules/engines/gl_x11/Makefile.in
index f589e61..ad4944e 100644
--- a/libraries/evas/src/modules/engines/gl_x11/Makefile.in
+++ b/libraries/evas/src/modules/engines/gl_x11/Makefile.in
@@ -242,8 +242,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
242PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 242PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
243PIXMAN_LIBS = @PIXMAN_LIBS@ 243PIXMAN_LIBS = @PIXMAN_LIBS@
244PKG_CONFIG = @PKG_CONFIG@ 244PKG_CONFIG = @PKG_CONFIG@
245PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
246PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
247PNG_CFLAGS = @PNG_CFLAGS@ 245PNG_CFLAGS = @PNG_CFLAGS@
248PNG_LIBS = @PNG_LIBS@ 246PNG_LIBS = @PNG_LIBS@
249RANLIB = @RANLIB@ 247RANLIB = @RANLIB@
@@ -260,6 +258,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
260VALGRIND_LIBS = @VALGRIND_LIBS@ 258VALGRIND_LIBS = @VALGRIND_LIBS@
261VERSION = @VERSION@ 259VERSION = @VERSION@
262VMAJ = @VMAJ@ 260VMAJ = @VMAJ@
261WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
262WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
263WIN32_CFLAGS = @WIN32_CFLAGS@ 263WIN32_CFLAGS = @WIN32_CFLAGS@
264WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 264WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
265XCB_CFLAGS = @XCB_CFLAGS@ 265XCB_CFLAGS = @XCB_CFLAGS@
@@ -341,6 +341,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
341evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 341evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
342evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 342evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
343evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 343evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
344evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
345evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
346evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
347evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
344evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 348evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
345evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 349evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
346evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 350evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/gl_x11/evas_engine.c b/libraries/evas/src/modules/engines/gl_x11/evas_engine.c
index 38e0c13..fbbd1a2 100644
--- a/libraries/evas/src/modules/engines/gl_x11/evas_engine.c
+++ b/libraries/evas/src/modules/engines/gl_x11/evas_engine.c
@@ -584,25 +584,30 @@ _extensions_init(Render_Engine *re)
584 584
585#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX) 585#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
586 // EGL Extensions 586 // EGL Extensions
587 evasglexts = glsym_eglQueryString(re->win->egl_disp, EGL_EXTENSIONS); 587 if (glsym_eglQueryString)
588 {
589 evasglexts = glsym_eglQueryString(re->win->egl_disp, EGL_EXTENSIONS);
588#else 590#else
589 evasglexts = glXQueryExtensionsString(re->info->info.display, 591 if (glsym_glXQueryExtensionsString)
590 re->info->info.screen); 592 {
593 evasglexts = glXQueryExtensionsString(re->info->info.display,
594 re->info->info.screen);
591#endif 595#endif
592 596
593 DBG("--------EvasGL Extensions----------"); 597 DBG("--------EvasGL Extensions----------");
594 for (i = 0; _evasgl_ext_entries[i].name != NULL; i++) 598 for (i = 0; _evasgl_ext_entries[i].name != NULL; i++)
595 {
596 if ( (strstr(evasglexts, _evasgl_ext_entries[i].name) != NULL) ||
597 (strstr(evasglexts, _evasgl_ext_entries[i].real_name) != NULL) )
598 { 599 {
599 _evasgl_ext_entries[i].supported = 1; 600 if ( (strstr(evasglexts, _evasgl_ext_entries[i].name) != NULL) ||
600 strcat(_evasgl_ext_string, _evasgl_ext_entries[i].name); 601 (strstr(evasglexts, _evasgl_ext_entries[i].real_name) != NULL) )
601 strcat(_evasgl_ext_string, " "); 602 {
602 DBG("\t%s", _evasgl_ext_entries[i].name); 603 _evasgl_ext_entries[i].supported = 1;
604 strcat(_evasgl_ext_string, _evasgl_ext_entries[i].name);
605 strcat(_evasgl_ext_string, " ");
606 DBG("\t%s", _evasgl_ext_entries[i].name);
607 }
603 } 608 }
609 DBG(" ");
604 } 610 }
605 DBG(" ");
606} 611}
607 612
608int _evas_engine_GL_X11_log_dom = -1; 613int _evas_engine_GL_X11_log_dom = -1;
@@ -1125,12 +1130,12 @@ eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
1125 eng_window_use(re->win); 1130 eng_window_use(re->win);
1126 evas_gl_common_context_resize(re->win->gl_context, re->win->w, re->win->h, re->win->rot); 1131 evas_gl_common_context_resize(re->win->gl_context, re->win->w, re->win->h, re->win->rot);
1127 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h); 1132 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
1128/* 1133
1129 RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, re->win->w, re->win->h); 1134 RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, re->win->w, re->win->h);
1130 if ((w <= 0) || (h <= 0)) return; 1135 if ((w <= 0) || (h <= 0)) return;
1131 if (!re->win->draw.redraw) 1136 if (!re->win->draw.redraw)
1132 { 1137 {
1133#if 0 1138#if 1
1134 re->win->draw.x1 = x; 1139 re->win->draw.x1 = x;
1135 re->win->draw.y1 = y; 1140 re->win->draw.y1 = y;
1136 re->win->draw.x2 = x + w - 1; 1141 re->win->draw.x2 = x + w - 1;
@@ -1150,11 +1155,10 @@ eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
1150 if ((y + h - 1) > re->win->draw.y2) re->win->draw.y2 = y + h - 1; 1155 if ((y + h - 1) > re->win->draw.y2) re->win->draw.y2 = y + h - 1;
1151 } 1156 }
1152 re->win->draw.redraw = 1; 1157 re->win->draw.redraw = 1;
1153 */
1154} 1158}
1155 1159
1156static void 1160static void
1157eng_output_redraws_rect_del(void *data __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__) 1161eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
1158{ 1162{
1159 Render_Engine *re; 1163 Render_Engine *re;
1160 1164
@@ -1244,10 +1248,10 @@ eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, i
1244//#define FRAMECOUNT 1 1248//#define FRAMECOUNT 1
1245 1249
1246#ifdef FRAMECOUNT 1250#ifdef FRAMECOUNT
1247double 1251static double
1248get_time(void) 1252get_time(void)
1249{ 1253{
1250 struct timeval timev; 1254 struct timeval timev;
1251 1255
1252 gettimeofday(&timev, NULL); 1256 gettimeofday(&timev, NULL);
1253 return (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); 1257 return (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000);
@@ -1391,44 +1395,46 @@ eng_output_flush(void *data)
1391 { 1395 {
1392 re->info->callback.pre_swap(re->info->callback.data, re->evas); 1396 re->info->callback.pre_swap(re->info->callback.data, re->evas);
1393 } 1397 }
1394/* 1398#if 1
1395 if ((1) 1399 if (1)
1396// (re->win->draw.x1 == 0) && 1400#else
1397// (re->win->draw.y1 == 0) && 1401 if ((re->win->draw.x1 == 0) && (re->win->draw.y1 == 0) && (re->win->draw.x2 == (re->win->w - 1)) && (re->win->draw.y2 == (re->win->h - 1)))
1398// (re->win->draw.x2 == (re->win->w - 1)) && 1402#endif
1399// (re->win->draw.y2 == (re->win->h - 1))
1400 )
1401 */
1402 { 1403 {
1404// double t, t2 = 0.0;
1405// t = get_time();
1403 glXSwapBuffers(re->win->disp, re->win->win); 1406 glXSwapBuffers(re->win->disp, re->win->win);
1404 if (!safe_native) glXWaitGL(); 1407// t = get_time() - t;
1408// if (!safe_native)
1409// {
1410// t2 = get_time();
1411// glXWaitGL();
1412// t2 = get_time() - t2;
1413// }
1414// printf("swap: %3.5f (%3.5fms), x wait gl: %3.5f (%3.5fms)\n",
1415// t, t * 1000.0, t2, t2 * 1000.0);
1405 } 1416 }
1406/*
1407 else 1417 else
1408 { 1418 {
1409// FIXME: this doesn't work.. why oh why? 1419// FIXME: this doesn't work.. why oh why?
1410 int sx, sy, sw, sh; 1420 int sx, sy, sw, sh;
1411 1421
1412 // fimxe - reset when done
1413// glEnable(GL_SCISSOR_TEST);
1414 glDrawBuffer(GL_FRONT);
1415
1416 sx = re->win->draw.x1; 1422 sx = re->win->draw.x1;
1417 sy = re->win->draw.y1; 1423 sy = re->win->draw.y1;
1418 sw = (re->win->draw.x2 - re->win->draw.x1) + 1; 1424 sw = (re->win->draw.x2 - re->win->draw.x1) + 1;
1419 sh = (re->win->draw.y2 - re->win->draw.y1) + 1; 1425 sh = (re->win->draw.y2 - re->win->draw.y1) + 1;
1420 sy = re->win->h - sy - sh; 1426 sy = re->win->h - sy - sh;
1421 1427
1422// glScissor(sx, sy, sw, sh); 1428 glBitmap(0, 0, 0, 0, sx, re->win->h - sy, NULL);
1423 glRasterPos2i(sx, re->win->h - sy); 1429 glEnable(GL_SCISSOR_TEST);
1430 glScissor(sx, sy, sw, sh);
1431 glDrawBuffer(GL_FRONT);
1424 glCopyPixels(sx, sy, sw, sh, GL_COLOR); 1432 glCopyPixels(sx, sy, sw, sh, GL_COLOR);
1425 glRasterPos2i(0, 0);
1426
1427// glDisable(GL_SCISSOR_TEST);
1428 glDrawBuffer(GL_BACK); 1433 glDrawBuffer(GL_BACK);
1434 glDisable(GL_SCISSOR_TEST);
1435 glBitmap(0, 0, 0, 0, 0, 0, NULL);
1429 glFlush(); 1436 glFlush();
1430 } 1437 }
1431 */
1432 if (re->info->callback.post_swap) 1438 if (re->info->callback.post_swap)
1433 { 1439 {
1434 re->info->callback.post_swap(re->info->callback.data, re->evas); 1440 re->info->callback.post_swap(re->info->callback.data, re->evas);
@@ -3469,7 +3475,10 @@ evgl_evasglCreateImage(int target, void* buffer, int *attrib_list)
3469 attrib_list); 3475 attrib_list);
3470 } 3476 }
3471 else 3477 else
3472 ERR("Invalid Engine... (Can't acccess EGL Display)\n"); 3478 {
3479 ERR("Invalid Engine... (Can't acccess EGL Display)\n");
3480 return NULL;
3481 }
3473} 3482}
3474 3483
3475static void 3484static void
@@ -3826,6 +3835,18 @@ eng_image_animated_frame_set(void *data __UNUSED__, void *image, int frame_index
3826 return EINA_TRUE; 3835 return EINA_TRUE;
3827} 3836}
3828 3837
3838static Eina_Bool
3839eng_image_can_region_get(void *data __UNUSED__, void *image)
3840{
3841 Evas_GL_Image *gim = image;
3842 Image_Entry *im;
3843 if (!gim) return EINA_FALSE;
3844 im = (Image_Entry *)gim->im;
3845 if (!im) return EINA_FALSE;
3846 return ((Evas_Image_Load_Func*) im->info.loader)->do_region;
3847}
3848
3849
3829static void 3850static void
3830eng_image_max_size_get(void *data, int *maxw, int *maxh) 3851eng_image_max_size_get(void *data, int *maxw, int *maxh)
3831{ 3852{
@@ -3903,6 +3924,7 @@ module_open(Evas_Module *em)
3903 ORD(image_format_get); 3924 ORD(image_format_get);
3904 ORD(image_colorspace_set); 3925 ORD(image_colorspace_set);
3905 ORD(image_colorspace_get); 3926 ORD(image_colorspace_get);
3927 ORD(image_can_region_get);
3906 ORD(image_mask_create); 3928 ORD(image_mask_create);
3907 ORD(image_native_set); 3929 ORD(image_native_set);
3908 ORD(image_native_get); 3930 ORD(image_native_get);
diff --git a/libraries/evas/src/modules/engines/gl_x11/evas_x_main.c b/libraries/evas/src/modules/engines/gl_x11/evas_x_main.c
index 323c976..c29ab67 100644
--- a/libraries/evas/src/modules/engines/gl_x11/evas_x_main.c
+++ b/libraries/evas/src/modules/engines/gl_x11/evas_x_main.c
@@ -531,13 +531,13 @@ eng_window_free(Evas_GL_X11_Window *gw)
531#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX) 531#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
532 if (gw->egl_surface[0] != EGL_NO_SURFACE) 532 if (gw->egl_surface[0] != EGL_NO_SURFACE)
533 eglDestroySurface(gw->egl_disp, gw->egl_surface[0]); 533 eglDestroySurface(gw->egl_disp, gw->egl_surface[0]);
534 eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
534 if (ref == 0) 535 if (ref == 0)
535 { 536 {
536 if (context) eglDestroyContext(gw->egl_disp, context); 537 if (context) eglDestroyContext(gw->egl_disp, context);
537 eglTerminate(gw->egl_disp); 538 eglTerminate(gw->egl_disp);
538 context = EGL_NO_CONTEXT; 539 context = EGL_NO_CONTEXT;
539 } 540 }
540 eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
541#else 541#else
542 if (gw->glxwin) glXDestroyWindow(gw->disp, gw->glxwin); 542 if (gw->glxwin) glXDestroyWindow(gw->disp, gw->glxwin);
543 if (ref == 0) 543 if (ref == 0)
diff --git a/libraries/evas/src/modules/engines/psl1ght/Makefile.in b/libraries/evas/src/modules/engines/psl1ght/Makefile.in
index 6b553ac..f8524a4 100644
--- a/libraries/evas/src/modules/engines/psl1ght/Makefile.in
+++ b/libraries/evas/src/modules/engines/psl1ght/Makefile.in
@@ -240,8 +240,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
240PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 240PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
241PIXMAN_LIBS = @PIXMAN_LIBS@ 241PIXMAN_LIBS = @PIXMAN_LIBS@
242PKG_CONFIG = @PKG_CONFIG@ 242PKG_CONFIG = @PKG_CONFIG@
243PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
244PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
245PNG_CFLAGS = @PNG_CFLAGS@ 243PNG_CFLAGS = @PNG_CFLAGS@
246PNG_LIBS = @PNG_LIBS@ 244PNG_LIBS = @PNG_LIBS@
247RANLIB = @RANLIB@ 245RANLIB = @RANLIB@
@@ -258,6 +256,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
258VALGRIND_LIBS = @VALGRIND_LIBS@ 256VALGRIND_LIBS = @VALGRIND_LIBS@
259VERSION = @VERSION@ 257VERSION = @VERSION@
260VMAJ = @VMAJ@ 258VMAJ = @VMAJ@
259WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
260WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
261WIN32_CFLAGS = @WIN32_CFLAGS@ 261WIN32_CFLAGS = @WIN32_CFLAGS@
262WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 262WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
263XCB_CFLAGS = @XCB_CFLAGS@ 263XCB_CFLAGS = @XCB_CFLAGS@
@@ -339,6 +339,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
342evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
343evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
344evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
345evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
342evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
343evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
344evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_16/Makefile.in b/libraries/evas/src/modules/engines/software_16/Makefile.in
index 1fc95cf..88164e1 100644
--- a/libraries/evas/src/modules/engines/software_16/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_16/Makefile.in
@@ -235,8 +235,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
235PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 235PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
236PIXMAN_LIBS = @PIXMAN_LIBS@ 236PIXMAN_LIBS = @PIXMAN_LIBS@
237PKG_CONFIG = @PKG_CONFIG@ 237PKG_CONFIG = @PKG_CONFIG@
238PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
239PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
240PNG_CFLAGS = @PNG_CFLAGS@ 238PNG_CFLAGS = @PNG_CFLAGS@
241PNG_LIBS = @PNG_LIBS@ 239PNG_LIBS = @PNG_LIBS@
242RANLIB = @RANLIB@ 240RANLIB = @RANLIB@
@@ -253,6 +251,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
253VALGRIND_LIBS = @VALGRIND_LIBS@ 251VALGRIND_LIBS = @VALGRIND_LIBS@
254VERSION = @VERSION@ 252VERSION = @VERSION@
255VMAJ = @VMAJ@ 253VMAJ = @VMAJ@
254WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
255WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
256WIN32_CFLAGS = @WIN32_CFLAGS@ 256WIN32_CFLAGS = @WIN32_CFLAGS@
257WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 257WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
258XCB_CFLAGS = @XCB_CFLAGS@ 258XCB_CFLAGS = @XCB_CFLAGS@
@@ -334,6 +334,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
334evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 334evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
335evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 335evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
336evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 336evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
337evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
338evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
339evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
340evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 341evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 342evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 343evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in b/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in
index f588c4f..0039410 100644
--- a/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in
@@ -265,8 +265,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
265PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 265PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
266PIXMAN_LIBS = @PIXMAN_LIBS@ 266PIXMAN_LIBS = @PIXMAN_LIBS@
267PKG_CONFIG = @PKG_CONFIG@ 267PKG_CONFIG = @PKG_CONFIG@
268PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
269PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
270PNG_CFLAGS = @PNG_CFLAGS@ 268PNG_CFLAGS = @PNG_CFLAGS@
271PNG_LIBS = @PNG_LIBS@ 269PNG_LIBS = @PNG_LIBS@
272RANLIB = @RANLIB@ 270RANLIB = @RANLIB@
@@ -283,6 +281,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
283VALGRIND_LIBS = @VALGRIND_LIBS@ 281VALGRIND_LIBS = @VALGRIND_LIBS@
284VERSION = @VERSION@ 282VERSION = @VERSION@
285VMAJ = @VMAJ@ 283VMAJ = @VMAJ@
284WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
285WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
286WIN32_CFLAGS = @WIN32_CFLAGS@ 286WIN32_CFLAGS = @WIN32_CFLAGS@
287WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 287WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
288XCB_CFLAGS = @XCB_CFLAGS@ 288XCB_CFLAGS = @XCB_CFLAGS@
@@ -364,6 +364,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
364evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 364evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
365evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 365evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
366evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 366evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
367evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
368evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
369evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
370evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
367evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 371evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
368evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 372evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
369evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 373evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_16_sdl/Makefile.in b/libraries/evas/src/modules/engines/software_16_sdl/Makefile.in
index 219e392..6ebf0db 100644
--- a/libraries/evas/src/modules/engines/software_16_sdl/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_16_sdl/Makefile.in
@@ -238,8 +238,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
238PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 238PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
239PIXMAN_LIBS = @PIXMAN_LIBS@ 239PIXMAN_LIBS = @PIXMAN_LIBS@
240PKG_CONFIG = @PKG_CONFIG@ 240PKG_CONFIG = @PKG_CONFIG@
241PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
242PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
243PNG_CFLAGS = @PNG_CFLAGS@ 241PNG_CFLAGS = @PNG_CFLAGS@
244PNG_LIBS = @PNG_LIBS@ 242PNG_LIBS = @PNG_LIBS@
245RANLIB = @RANLIB@ 243RANLIB = @RANLIB@
@@ -256,6 +254,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
256VALGRIND_LIBS = @VALGRIND_LIBS@ 254VALGRIND_LIBS = @VALGRIND_LIBS@
257VERSION = @VERSION@ 255VERSION = @VERSION@
258VMAJ = @VMAJ@ 256VMAJ = @VMAJ@
257WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
258WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
259WIN32_CFLAGS = @WIN32_CFLAGS@ 259WIN32_CFLAGS = @WIN32_CFLAGS@
260WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 260WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
261XCB_CFLAGS = @XCB_CFLAGS@ 261XCB_CFLAGS = @XCB_CFLAGS@
@@ -337,6 +337,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
337evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 337evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
338evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 338evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
339evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 339evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
340evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
341evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
342evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
343evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
340evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 344evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
341evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 345evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
342evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 346evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_16_wince/Makefile.in b/libraries/evas/src/modules/engines/software_16_wince/Makefile.in
index 571891e..95c484e 100644
--- a/libraries/evas/src/modules/engines/software_16_wince/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_16_wince/Makefile.in
@@ -271,8 +271,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
271PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 271PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
272PIXMAN_LIBS = @PIXMAN_LIBS@ 272PIXMAN_LIBS = @PIXMAN_LIBS@
273PKG_CONFIG = @PKG_CONFIG@ 273PKG_CONFIG = @PKG_CONFIG@
274PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
275PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
276PNG_CFLAGS = @PNG_CFLAGS@ 274PNG_CFLAGS = @PNG_CFLAGS@
277PNG_LIBS = @PNG_LIBS@ 275PNG_LIBS = @PNG_LIBS@
278RANLIB = @RANLIB@ 276RANLIB = @RANLIB@
@@ -289,6 +287,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
289VALGRIND_LIBS = @VALGRIND_LIBS@ 287VALGRIND_LIBS = @VALGRIND_LIBS@
290VERSION = @VERSION@ 288VERSION = @VERSION@
291VMAJ = @VMAJ@ 289VMAJ = @VMAJ@
290WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
291WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
292WIN32_CFLAGS = @WIN32_CFLAGS@ 292WIN32_CFLAGS = @WIN32_CFLAGS@
293WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 293WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
294XCB_CFLAGS = @XCB_CFLAGS@ 294XCB_CFLAGS = @XCB_CFLAGS@
@@ -370,6 +370,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
370evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 370evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
371evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 371evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
372evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 372evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
373evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
374evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
375evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
376evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
373evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 377evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
374evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 378evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
375evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 379evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_16_x11/Makefile.in b/libraries/evas/src/modules/engines/software_16_x11/Makefile.in
index be43dad..3232681 100644
--- a/libraries/evas/src/modules/engines/software_16_x11/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_16_x11/Makefile.in
@@ -244,8 +244,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@ 245PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@ 246PKG_CONFIG = @PKG_CONFIG@
247PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
248PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
249PNG_CFLAGS = @PNG_CFLAGS@ 247PNG_CFLAGS = @PNG_CFLAGS@
250PNG_LIBS = @PNG_LIBS@ 248PNG_LIBS = @PNG_LIBS@
251RANLIB = @RANLIB@ 249RANLIB = @RANLIB@
@@ -262,6 +260,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
262VALGRIND_LIBS = @VALGRIND_LIBS@ 260VALGRIND_LIBS = @VALGRIND_LIBS@
263VERSION = @VERSION@ 261VERSION = @VERSION@
264VMAJ = @VMAJ@ 262VMAJ = @VMAJ@
263WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
264WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
265WIN32_CFLAGS = @WIN32_CFLAGS@ 265WIN32_CFLAGS = @WIN32_CFLAGS@
266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
267XCB_CFLAGS = @XCB_CFLAGS@ 267XCB_CFLAGS = @XCB_CFLAGS@
@@ -343,6 +343,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_8/Makefile.in b/libraries/evas/src/modules/engines/software_8/Makefile.in
index bf16fcf..3ee42fd 100644
--- a/libraries/evas/src/modules/engines/software_8/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_8/Makefile.in
@@ -234,8 +234,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
234PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 234PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
235PIXMAN_LIBS = @PIXMAN_LIBS@ 235PIXMAN_LIBS = @PIXMAN_LIBS@
236PKG_CONFIG = @PKG_CONFIG@ 236PKG_CONFIG = @PKG_CONFIG@
237PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
238PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
239PNG_CFLAGS = @PNG_CFLAGS@ 237PNG_CFLAGS = @PNG_CFLAGS@
240PNG_LIBS = @PNG_LIBS@ 238PNG_LIBS = @PNG_LIBS@
241RANLIB = @RANLIB@ 239RANLIB = @RANLIB@
@@ -252,6 +250,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
252VALGRIND_LIBS = @VALGRIND_LIBS@ 250VALGRIND_LIBS = @VALGRIND_LIBS@
253VERSION = @VERSION@ 251VERSION = @VERSION@
254VMAJ = @VMAJ@ 252VMAJ = @VMAJ@
253WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
254WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
255WIN32_CFLAGS = @WIN32_CFLAGS@ 255WIN32_CFLAGS = @WIN32_CFLAGS@
256WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 256WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
257XCB_CFLAGS = @XCB_CFLAGS@ 257XCB_CFLAGS = @XCB_CFLAGS@
@@ -333,6 +333,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
333evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 333evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
334evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 334evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
335evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 335evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
336evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
337evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
338evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
339evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
336evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 340evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
337evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 341evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
338evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 342evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_8_x11/Makefile.in b/libraries/evas/src/modules/engines/software_8_x11/Makefile.in
index fa88a4d..22577af 100644
--- a/libraries/evas/src/modules/engines/software_8_x11/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_8_x11/Makefile.in
@@ -244,8 +244,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@ 245PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@ 246PKG_CONFIG = @PKG_CONFIG@
247PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
248PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
249PNG_CFLAGS = @PNG_CFLAGS@ 247PNG_CFLAGS = @PNG_CFLAGS@
250PNG_LIBS = @PNG_LIBS@ 248PNG_LIBS = @PNG_LIBS@
251RANLIB = @RANLIB@ 249RANLIB = @RANLIB@
@@ -262,6 +260,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
262VALGRIND_LIBS = @VALGRIND_LIBS@ 260VALGRIND_LIBS = @VALGRIND_LIBS@
263VERSION = @VERSION@ 261VERSION = @VERSION@
264VMAJ = @VMAJ@ 262VMAJ = @VMAJ@
263WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
264WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
265WIN32_CFLAGS = @WIN32_CFLAGS@ 265WIN32_CFLAGS = @WIN32_CFLAGS@
266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
267XCB_CFLAGS = @XCB_CFLAGS@ 267XCB_CFLAGS = @XCB_CFLAGS@
@@ -343,6 +343,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_ddraw/Makefile.in b/libraries/evas/src/modules/engines/software_ddraw/Makefile.in
index be4c977..da65f92 100644
--- a/libraries/evas/src/modules/engines/software_ddraw/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_ddraw/Makefile.in
@@ -266,8 +266,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
266PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 266PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
267PIXMAN_LIBS = @PIXMAN_LIBS@ 267PIXMAN_LIBS = @PIXMAN_LIBS@
268PKG_CONFIG = @PKG_CONFIG@ 268PKG_CONFIG = @PKG_CONFIG@
269PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
270PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
271PNG_CFLAGS = @PNG_CFLAGS@ 269PNG_CFLAGS = @PNG_CFLAGS@
272PNG_LIBS = @PNG_LIBS@ 270PNG_LIBS = @PNG_LIBS@
273RANLIB = @RANLIB@ 271RANLIB = @RANLIB@
@@ -284,6 +282,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
284VALGRIND_LIBS = @VALGRIND_LIBS@ 282VALGRIND_LIBS = @VALGRIND_LIBS@
285VERSION = @VERSION@ 283VERSION = @VERSION@
286VMAJ = @VMAJ@ 284VMAJ = @VMAJ@
285WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
286WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
287WIN32_CFLAGS = @WIN32_CFLAGS@ 287WIN32_CFLAGS = @WIN32_CFLAGS@
288WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 288WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
289XCB_CFLAGS = @XCB_CFLAGS@ 289XCB_CFLAGS = @XCB_CFLAGS@
@@ -365,6 +365,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
365evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 365evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
366evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 366evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
367evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 367evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
368evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
369evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
370evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
371evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
368evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 372evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
369evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 373evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
370evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 374evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_gdi/Makefile.in b/libraries/evas/src/modules/engines/software_gdi/Makefile.in
index 5dea632..a2421ef 100644
--- a/libraries/evas/src/modules/engines/software_gdi/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_gdi/Makefile.in
@@ -249,8 +249,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
250PIXMAN_LIBS = @PIXMAN_LIBS@ 250PIXMAN_LIBS = @PIXMAN_LIBS@
251PKG_CONFIG = @PKG_CONFIG@ 251PKG_CONFIG = @PKG_CONFIG@
252PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
253PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
254PNG_CFLAGS = @PNG_CFLAGS@ 252PNG_CFLAGS = @PNG_CFLAGS@
255PNG_LIBS = @PNG_LIBS@ 253PNG_LIBS = @PNG_LIBS@
256RANLIB = @RANLIB@ 254RANLIB = @RANLIB@
@@ -267,6 +265,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
267VALGRIND_LIBS = @VALGRIND_LIBS@ 265VALGRIND_LIBS = @VALGRIND_LIBS@
268VERSION = @VERSION@ 266VERSION = @VERSION@
269VMAJ = @VMAJ@ 267VMAJ = @VMAJ@
268WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
269WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
270WIN32_CFLAGS = @WIN32_CFLAGS@ 270WIN32_CFLAGS = @WIN32_CFLAGS@
271WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 271WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
272XCB_CFLAGS = @XCB_CFLAGS@ 272XCB_CFLAGS = @XCB_CFLAGS@
@@ -348,6 +348,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
348evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 348evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
349evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 349evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
350evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 350evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
351evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
352evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
353evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
354evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
351evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 355evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
352evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 356evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
353evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 357evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_generic/Makefile.in b/libraries/evas/src/modules/engines/software_generic/Makefile.in
index 6d75f23..4f66536 100644
--- a/libraries/evas/src/modules/engines/software_generic/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_generic/Makefile.in
@@ -236,8 +236,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
236PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 236PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
237PIXMAN_LIBS = @PIXMAN_LIBS@ 237PIXMAN_LIBS = @PIXMAN_LIBS@
238PKG_CONFIG = @PKG_CONFIG@ 238PKG_CONFIG = @PKG_CONFIG@
239PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
240PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
241PNG_CFLAGS = @PNG_CFLAGS@ 239PNG_CFLAGS = @PNG_CFLAGS@
242PNG_LIBS = @PNG_LIBS@ 240PNG_LIBS = @PNG_LIBS@
243RANLIB = @RANLIB@ 241RANLIB = @RANLIB@
@@ -254,6 +252,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
254VALGRIND_LIBS = @VALGRIND_LIBS@ 252VALGRIND_LIBS = @VALGRIND_LIBS@
255VERSION = @VERSION@ 253VERSION = @VERSION@
256VMAJ = @VMAJ@ 254VMAJ = @VMAJ@
255WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
256WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
257WIN32_CFLAGS = @WIN32_CFLAGS@ 257WIN32_CFLAGS = @WIN32_CFLAGS@
258WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 258WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
259XCB_CFLAGS = @XCB_CFLAGS@ 259XCB_CFLAGS = @XCB_CFLAGS@
@@ -335,6 +335,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
335evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 335evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
336evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 336evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
337evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 337evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
338evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
339evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
340evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
341evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
338evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 342evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
339evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 343evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
340evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 344evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_generic/evas_engine.c b/libraries/evas/src/modules/engines/software_generic/evas_engine.c
index b2c53c5..48944dd 100644
--- a/libraries/evas/src/modules/engines/software_generic/evas_engine.c
+++ b/libraries/evas/src/modules/engines/software_generic/evas_engine.c
@@ -1,6 +1,275 @@
1#include "evas_common.h" /* Also includes international specific stuff */ 1#include "evas_common.h" /* Also includes international specific stuff */
2#include "evas_private.h" 2#include "evas_private.h"
3 3
4#ifdef HAVE_DLSYM
5# include <dlfcn.h> /* dlopen,dlclose,etc */
6
7# define EVAS_GL 1
8# define EVAS_GL_NO_GL_H_CHECK 1
9# include "Evas_GL.h"
10
11#else
12# warning software_generic will not be able to have Evas_GL API.
13#endif
14
15#ifdef EVAS_GL
16//----------------------------------//
17// OSMesa...
18
19#define OSMESA_MAJOR_VERSION 6
20#define OSMESA_MINOR_VERSION 5
21#define OSMESA_PATCH_VERSION 0
22
23/*
24 * Values for the format parameter of OSMesaCreateContext()
25 * New in version 2.0.
26 */
27#define OSMESA_COLOR_INDEX GL_COLOR_INDEX
28#define OSMESA_RGBA GL_RGBA
29#define OSMESA_BGRA 0x1
30#define OSMESA_ARGB 0x2
31#define OSMESA_RGB GL_RGB
32#define OSMESA_BGR 0x4
33#define OSMESA_RGB_565 0x5
34
35
36/*
37 * OSMesaPixelStore() parameters:
38 * New in version 2.0.
39 */
40#define OSMESA_ROW_LENGTH 0x10
41#define OSMESA_Y_UP 0x11
42
43
44/*
45 * Accepted by OSMesaGetIntegerv:
46 */
47#define OSMESA_WIDTH 0x20
48#define OSMESA_HEIGHT 0x21
49#define OSMESA_FORMAT 0x22
50#define OSMESA_TYPE 0x23
51#define OSMESA_MAX_WIDTH 0x24 /* new in 4.0 */
52#define OSMESA_MAX_HEIGHT 0x25 /* new in 4.0 */
53
54
55typedef void (*OSMESAproc)();
56typedef struct osmesa_context *OSMesaContext;
57#endif
58
59typedef struct _Render_Engine_GL_Surface Render_Engine_GL_Surface;
60typedef struct _Render_Engine_GL_Context Render_Engine_GL_Context;
61
62struct _Render_Engine_GL_Surface
63{
64 int initialized;
65 int w, h;
66
67#ifdef EVAS_GL
68 GLenum internal_fmt;
69#endif
70 int internal_cpp; // Component per pixel. ie. RGB = 3
71
72 int depth_bits;
73 int stencil_bits;
74
75 // Data
76 void *buffer;
77
78 Render_Engine_GL_Context *current_ctx;
79};
80
81#ifdef EVAS_GL
82struct _Render_Engine_GL_Context
83{
84 int initialized;
85
86 OSMesaContext context;
87
88 Render_Engine_GL_Context *share_ctx;
89
90 Render_Engine_GL_Surface *current_sfc;
91};
92
93//------------------------------------------------------//
94typedef void (*_eng_fn) (void );
95typedef _eng_fn (*glsym_func_eng_fn) ();
96typedef void (*glsym_func_void) ();
97typedef unsigned int (*glsym_func_uint) ();
98typedef int (*glsym_func_int) ();
99typedef unsigned char (*glsym_func_uchar) ();
100typedef unsigned char *(*glsym_func_uchar_ptr) ();
101typedef const unsigned char *(*glsym_func_const_uchar_ptr) ();
102typedef char const *(*glsym_func_char_const_ptr) ();
103typedef GLboolean (*glsym_func_bool) ();
104typedef OSMesaContext (*glsym_func_osm_ctx) ();
105//------------------------------------------------------//
106
107/* Function table for GL APIs */
108static Evas_GL_API gl_funcs;
109static void *gl_lib_handle;
110static int gl_lib_is_gles = 0;
111static Evas_GL_API gl_funcs;
112
113//------------------------------------------------------//
114// OSMesa APIS...
115static OSMesaContext (*_sym_OSMesaCreateContextExt) (GLenum format, GLint depthBits, GLint stencilBits, GLint accumBits, OSMesaContext sharelist) = NULL;
116static void (*_sym_OSMesaDestroyContext) (OSMesaContext ctx) = NULL;
117static GLboolean (*_sym_OSMesaMakeCurrent) (OSMesaContext ctx, void *buffer, GLenum type, GLsizei width, GLsizei height) = NULL;
118static void (*_sym_OSMesaPixelStore) (GLint pname, GLint value) = NULL;
119static OSMESAproc (*_sym_OSMesaGetProcAddress) (const char *funcName);
120
121
122//------------------------------------------------------//
123// GLES 2.0 APIs...
124static void (*_sym_glActiveTexture) (GLenum texture) = NULL;
125static void (*_sym_glAttachShader) (GLuint program, GLuint shader) = NULL;
126static void (*_sym_glBindAttribLocation) (GLuint program, GLuint index, const char* name) = NULL;
127static void (*_sym_glBindBuffer) (GLenum target, GLuint buffer) = NULL;
128static void (*_sym_glBindFramebuffer) (GLenum target, GLuint framebuffer) = NULL;
129static void (*_sym_glBindRenderbuffer) (GLenum target, GLuint renderbuffer) = NULL;
130static void (*_sym_glBindTexture) (GLenum target, GLuint texture) = NULL;
131static void (*_sym_glBlendColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) = NULL;
132static void (*_sym_glBlendEquation) (GLenum mode) = NULL;
133static void (*_sym_glBlendEquationSeparate) (GLenum modeRGB, GLenum modeAlpha) = NULL;
134static void (*_sym_glBlendFunc) (GLenum sfactor, GLenum dfactor) = NULL;
135static void (*_sym_glBlendFuncSeparate) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) = NULL;
136static void (*_sym_glBufferData) (GLenum target, GLsizeiptr size, const void* data, GLenum usage) = NULL;
137static void (*_sym_glBufferSubData) (GLenum target, GLintptr offset, GLsizeiptr size, const void* data) = NULL;
138static GLenum (*_sym_glCheckFramebufferStatus) (GLenum target) = NULL;
139static void (*_sym_glClear) (GLbitfield mask) = NULL;
140static void (*_sym_glClearColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) = NULL;
141static void (*_sym_glClearDepthf) (GLclampf depth) = NULL;
142static void (*_sym_glClearStencil) (GLint s) = NULL;
143static void (*_sym_glColorMask) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) = NULL;
144static void (*_sym_glCompileShader) (GLuint shader) = NULL;
145static void (*_sym_glCompressedTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data) = NULL;
146static void (*_sym_glCompressedTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data) = NULL;
147static void (*_sym_glCopyTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) = NULL;
148static void (*_sym_glCopyTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) = NULL;
149static GLuint (*_sym_glCreateProgram) (void) = NULL;
150static GLuint (*_sym_glCreateShader) (GLenum type) = NULL;
151static void (*_sym_glCullFace) (GLenum mode) = NULL;
152static void (*_sym_glDeleteBuffers) (GLsizei n, const GLuint* buffers) = NULL;
153static void (*_sym_glDeleteFramebuffers) (GLsizei n, const GLuint* framebuffers) = NULL;
154static void (*_sym_glDeleteProgram) (GLuint program) = NULL;
155static void (*_sym_glDeleteRenderbuffers) (GLsizei n, const GLuint* renderbuffers) = NULL;
156static void (*_sym_glDeleteShader) (GLuint shader) = NULL;
157static void (*_sym_glDeleteTextures) (GLsizei n, const GLuint* textures) = NULL;
158static void (*_sym_glDepthFunc) (GLenum func) = NULL;
159static void (*_sym_glDepthMask) (GLboolean flag) = NULL;
160static void (*_sym_glDepthRangef) (GLclampf zNear, GLclampf zFar) = NULL;
161static void (*_sym_glDetachShader) (GLuint program, GLuint shader) = NULL;
162static void (*_sym_glDisable) (GLenum cap) = NULL;
163static void (*_sym_glDisableVertexAttribArray) (GLuint index) = NULL;
164static void (*_sym_glDrawArrays) (GLenum mode, GLint first, GLsizei count) = NULL;
165static void (*_sym_glDrawElements) (GLenum mode, GLsizei count, GLenum type, const void* indices) = NULL;
166static void (*_sym_glEnable) (GLenum cap) = NULL;
167static void (*_sym_glEnableVertexAttribArray) (GLuint index) = NULL;
168static void (*_sym_glFinish) (void) = NULL;
169static void (*_sym_glFlush) (void) = NULL;
170static void (*_sym_glFramebufferRenderbuffer) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) = NULL;
171static void (*_sym_glFramebufferTexture2D) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) = NULL;
172static void (*_sym_glFrontFace) (GLenum mode) = NULL;
173static void (*_sym_glGenBuffers) (GLsizei n, GLuint* buffers) = NULL;
174static void (*_sym_glGenerateMipmap) (GLenum target) = NULL;
175static void (*_sym_glGenFramebuffers) (GLsizei n, GLuint* framebuffers) = NULL;
176static void (*_sym_glGenRenderbuffers) (GLsizei n, GLuint* renderbuffers) = NULL;
177static void (*_sym_glGenTextures) (GLsizei n, GLuint* textures) = NULL;
178static void (*_sym_glGetActiveAttrib) (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name) = NULL;
179static void (*_sym_glGetActiveUniform) (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name) = NULL;
180static void (*_sym_glGetAttachedShaders) (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders) = NULL;
181static int (*_sym_glGetAttribLocation) (GLuint program, const char* name) = NULL;
182static void (*_sym_glGetBooleanv) (GLenum pname, GLboolean* params) = NULL;
183static void (*_sym_glGetBufferParameteriv) (GLenum target, GLenum pname, GLint* params) = NULL;
184static GLenum (*_sym_glGetError) (void) = NULL;
185static void (*_sym_glGetFloatv) (GLenum pname, GLfloat* params) = NULL;
186static void (*_sym_glGetFramebufferAttachmentParameteriv) (GLenum target, GLenum attachment, GLenum pname, GLint* params) = NULL;
187static void (*_sym_glGetIntegerv) (GLenum pname, GLint* params) = NULL;
188static void (*_sym_glGetProgramiv) (GLuint program, GLenum pname, GLint* params) = NULL;
189static void (*_sym_glGetProgramInfoLog) (GLuint program, GLsizei bufsize, GLsizei* length, char* infolog) = NULL;
190static void (*_sym_glGetRenderbufferParameteriv) (GLenum target, GLenum pname, GLint* params) = NULL;
191static void (*_sym_glGetShaderiv) (GLuint shader, GLenum pname, GLint* params) = NULL;
192static void (*_sym_glGetShaderInfoLog) (GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog) = NULL;
193static void (*_sym_glGetShaderPrecisionFormat) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) = NULL;
194static void (*_sym_glGetShaderSource) (GLuint shader, GLsizei bufsize, GLsizei* length, char* source) = NULL;
195static const GLubyte *(*_sym_glGetString) (GLenum name) = NULL;
196static void (*_sym_glGetTexParameterfv) (GLenum target, GLenum pname, GLfloat* params) = NULL;
197static void (*_sym_glGetTexParameteriv) (GLenum target, GLenum pname, GLint* params) = NULL;
198static void (*_sym_glGetUniformfv) (GLuint program, GLint location, GLfloat* params) = NULL;
199static void (*_sym_glGetUniformiv) (GLuint program, GLint location, GLint* params) = NULL;
200static int (*_sym_glGetUniformLocation) (GLuint program, const char* name) = NULL;
201static void (*_sym_glGetVertexAttribfv) (GLuint index, GLenum pname, GLfloat* params) = NULL;
202static void (*_sym_glGetVertexAttribiv) (GLuint index, GLenum pname, GLint* params) = NULL;
203static void (*_sym_glGetVertexAttribPointerv) (GLuint index, GLenum pname, void** pointer) = NULL;
204static void (*_sym_glHint) (GLenum target, GLenum mode) = NULL;
205static GLboolean (*_sym_glIsBuffer) (GLuint buffer) = NULL;
206static GLboolean (*_sym_glIsEnabled) (GLenum cap) = NULL;
207static GLboolean (*_sym_glIsFramebuffer) (GLuint framebuffer) = NULL;
208static GLboolean (*_sym_glIsProgram) (GLuint program) = NULL;
209static GLboolean (*_sym_glIsRenderbuffer) (GLuint renderbuffer) = NULL;
210static GLboolean (*_sym_glIsShader) (GLuint shader) = NULL;
211static GLboolean (*_sym_glIsTexture) (GLuint texture) = NULL;
212static void (*_sym_glLineWidth) (GLfloat width) = NULL;
213static void (*_sym_glLinkProgram) (GLuint program) = NULL;
214static void (*_sym_glPixelStorei) (GLenum pname, GLint param) = NULL;
215static void (*_sym_glPolygonOffset) (GLfloat factor, GLfloat units) = NULL;
216static void (*_sym_glReadPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels) = NULL;
217static void (*_sym_glReleaseShaderCompiler) (void) = NULL;
218static void (*_sym_glRenderbufferStorage) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height) = NULL;
219static void (*_sym_glSampleCoverage) (GLclampf value, GLboolean invert) = NULL;
220static void (*_sym_glScissor) (GLint x, GLint y, GLsizei width, GLsizei height) = NULL;
221static void (*_sym_glShaderBinary) (GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length) = NULL;
222static void (*_sym_glShaderSource) (GLuint shader, GLsizei count, const char** string, const GLint* length) = NULL;
223static void (*_sym_glStencilFunc) (GLenum func, GLint ref, GLuint mask) = NULL;
224static void (*_sym_glStencilFuncSeparate) (GLenum face, GLenum func, GLint ref, GLuint mask) = NULL;
225static void (*_sym_glStencilMask) (GLuint mask) = NULL;
226static void (*_sym_glStencilMaskSeparate) (GLenum face, GLuint mask) = NULL;
227static void (*_sym_glStencilOp) (GLenum fail, GLenum zfail, GLenum zpass) = NULL;
228static void (*_sym_glStencilOpSeparate) (GLenum face, GLenum fail, GLenum zfail, GLenum zpass) = NULL;
229static void (*_sym_glTexImage2D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels) = NULL;
230static void (*_sym_glTexParameterf) (GLenum target, GLenum pname, GLfloat param) = NULL;
231static void (*_sym_glTexParameterfv) (GLenum target, GLenum pname, const GLfloat* params) = NULL;
232static void (*_sym_glTexParameteri) (GLenum target, GLenum pname, GLint param) = NULL;
233static void (*_sym_glTexParameteriv) (GLenum target, GLenum pname, const GLint* params) = NULL;
234static void (*_sym_glTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels) = NULL;
235static void (*_sym_glUniform1f) (GLint location, GLfloat x) = NULL;
236static void (*_sym_glUniform1fv) (GLint location, GLsizei count, const GLfloat* v) = NULL;
237static void (*_sym_glUniform1i) (GLint location, GLint x) = NULL;
238static void (*_sym_glUniform1iv) (GLint location, GLsizei count, const GLint* v) = NULL;
239static void (*_sym_glUniform2f) (GLint location, GLfloat x, GLfloat y) = NULL;
240static void (*_sym_glUniform2fv) (GLint location, GLsizei count, const GLfloat* v) = NULL;
241static void (*_sym_glUniform2i) (GLint location, GLint x, GLint y) = NULL;
242static void (*_sym_glUniform2iv) (GLint location, GLsizei count, const GLint* v) = NULL;
243static void (*_sym_glUniform3f) (GLint location, GLfloat x, GLfloat y, GLfloat z) = NULL;
244static void (*_sym_glUniform3fv) (GLint location, GLsizei count, const GLfloat* v) = NULL;
245static void (*_sym_glUniform3i) (GLint location, GLint x, GLint y, GLint z) = NULL;
246static void (*_sym_glUniform3iv) (GLint location, GLsizei count, const GLint* v) = NULL;
247static void (*_sym_glUniform4f) (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) = NULL;
248static void (*_sym_glUniform4fv) (GLint location, GLsizei count, const GLfloat* v) = NULL;
249static void (*_sym_glUniform4i) (GLint location, GLint x, GLint y, GLint z, GLint w) = NULL;
250static void (*_sym_glUniform4iv) (GLint location, GLsizei count, const GLint* v) = NULL;
251static void (*_sym_glUniformMatrix2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = NULL;
252static void (*_sym_glUniformMatrix3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = NULL;
253static void (*_sym_glUniformMatrix4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = NULL;
254static void (*_sym_glUseProgram) (GLuint program) = NULL;
255static void (*_sym_glValidateProgram) (GLuint program) = NULL;
256static void (*_sym_glVertexAttrib1f) (GLuint indx, GLfloat x) = NULL;
257static void (*_sym_glVertexAttrib1fv) (GLuint indx, const GLfloat* values) = NULL;
258static void (*_sym_glVertexAttrib2f) (GLuint indx, GLfloat x, GLfloat y) = NULL;
259static void (*_sym_glVertexAttrib2fv) (GLuint indx, const GLfloat* values) = NULL;
260static void (*_sym_glVertexAttrib3f) (GLuint indx, GLfloat x, GLfloat y, GLfloat z) = NULL;
261static void (*_sym_glVertexAttrib3fv) (GLuint indx, const GLfloat* values) = NULL;
262static void (*_sym_glVertexAttrib4f) (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) = NULL;
263static void (*_sym_glVertexAttrib4fv) (GLuint indx, const GLfloat* values) = NULL;
264static void (*_sym_glVertexAttribPointer) (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr) = NULL;
265static void (*_sym_glViewport) (GLint x, GLint y, GLsizei width, GLsizei height) = NULL;
266
267// GLES Extensions...
268/* static void (*_sym_glGetProgramBinary) (GLuint a, GLsizei b, GLsizei* c, GLenum* d, void* e) = NULL; */
269/* static void (*_sym_glProgramBinary) (GLuint a, GLenum b, const void* c, GLint d) = NULL; */
270/* static void (*_sym_glProgramParameteri) (GLuint a, GLuint b, GLint d) = NULL; */
271#endif
272
4/* 273/*
5 ***** 274 *****
6 ** 275 **
@@ -258,6 +527,15 @@ eng_image_colorspace_get(void *data __UNUSED__, void *image)
258 return im->space; 527 return im->space;
259} 528}
260 529
530static Eina_Bool
531eng_image_can_region_get(void *data __UNUSED__, void *image)
532{
533 Image_Entry *im;
534 if (!image) return EINA_FALSE;
535 im = image;
536 return ((Evas_Image_Load_Func*) im->info.loader)->do_region;
537}
538
261static void 539static void
262eng_image_mask_create(void *data __UNUSED__, void *image) 540eng_image_mask_create(void *data __UNUSED__, void *image)
263{ 541{
@@ -349,7 +627,37 @@ eng_image_colorspace_set(void *data __UNUSED__, void *image, int cspace)
349static void * 627static void *
350eng_image_native_set(void *data __UNUSED__, void *image, void *native __UNUSED__) 628eng_image_native_set(void *data __UNUSED__, void *image, void *native __UNUSED__)
351{ 629{
352 return image; 630 //return image;
631 Evas_Native_Surface *ns = native;
632 Image_Entry *im = image, *im2 = NULL;
633
634 if (!im)
635 {
636 if ((!ns) && (ns->data.x11.visual))
637 {
638 im = evas_cache_image_data(evas_common_image_cache_get(),
639 im->w, im->h,
640 ns->data.x11.visual, 1,
641 EVAS_COLORSPACE_ARGB8888);
642 return im;
643 }
644 else
645 return NULL;
646 }
647
648 if ((!ns) && (!im)) return im;
649
650 if (!ns) return im;
651
652 im2 = evas_cache_image_data(evas_common_image_cache_get(),
653 im->w, im->h,
654 ns->data.x11.visual, 1,
655 EVAS_COLORSPACE_ARGB8888);
656 evas_cache_image_drop(im);
657 im = im2;
658
659 return im;
660
353} 661}
354 662
355static void * 663static void *
@@ -1035,6 +1343,311 @@ eng_image_load_error_get(void *data __UNUSED__, void *image)
1035 return im->cache_entry.load_error; 1343 return im->cache_entry.load_error;
1036} 1344}
1037 1345
1346//------------ Evas GL engine code ---------------//
1347static void *
1348eng_gl_surface_create(void *data __UNUSED__, void *config, int w, int h)
1349{
1350#ifdef EVAS_GL
1351 Render_Engine_GL_Surface *sfc;
1352 Evas_GL_Config *cfg;
1353
1354 sfc = calloc(1, sizeof(Render_Engine_GL_Surface));
1355 if (!sfc) return NULL;
1356
1357 cfg = (Evas_GL_Config *)config;
1358
1359 sfc->initialized = 0;
1360 sfc->w = w;
1361 sfc->h = h;
1362
1363 // Color Format
1364 switch (cfg->color_format)
1365 {
1366
1367 case EVAS_GL_RGB_888:
1368 sfc->internal_fmt = OSMESA_RGB;
1369 sfc->internal_cpp = 3;
1370 break;
1371 case EVAS_GL_RGBA_8888:
1372 sfc->internal_fmt = OSMESA_BGRA;
1373 sfc->internal_cpp = 4;
1374 break;
1375 default:
1376 sfc->internal_fmt = OSMESA_RGBA;
1377 sfc->internal_cpp = 4;
1378 break;
1379 }
1380
1381 // Depth Bits
1382 switch (cfg->depth_bits)
1383 {
1384 case EVAS_GL_DEPTH_BIT_8:
1385 sfc->depth_bits = 8;
1386 break;
1387 case EVAS_GL_DEPTH_BIT_16:
1388 sfc->depth_bits = 16;
1389 break;
1390 case EVAS_GL_DEPTH_BIT_24:
1391 sfc->depth_bits = 24;
1392 break;
1393 case EVAS_GL_DEPTH_BIT_32:
1394 sfc->depth_bits = 32;
1395 break;
1396 case EVAS_GL_DEPTH_NONE:
1397 default:
1398 sfc->depth_bits = 0;
1399 break;
1400 }
1401
1402 // Stencil Bits
1403 switch (cfg->stencil_bits)
1404 {
1405 case EVAS_GL_STENCIL_BIT_1:
1406 sfc->stencil_bits = 1;
1407 break;
1408 case EVAS_GL_STENCIL_BIT_2:
1409 sfc->stencil_bits = 2;
1410 break;
1411 case EVAS_GL_STENCIL_BIT_4:
1412 sfc->stencil_bits = 4;
1413 break;
1414 case EVAS_GL_STENCIL_BIT_8:
1415 sfc->stencil_bits = 8;
1416 break;
1417 case EVAS_GL_STENCIL_BIT_16:
1418 sfc->stencil_bits = 16;
1419 break;
1420 case EVAS_GL_STENCIL_NONE:
1421 default:
1422 sfc->stencil_bits = 0;
1423 break;
1424 }
1425
1426 sfc->buffer = malloc(sizeof(unsigned char)*sfc->internal_cpp*w*h);
1427
1428 if (!sfc->buffer)
1429 {
1430 free(sfc);
1431 return NULL;
1432 }
1433
1434 return sfc;
1435#else
1436 (void) config;
1437 (void) w;
1438 (void) h;
1439 return NULL;
1440#endif
1441}
1442
1443static int
1444eng_gl_surface_destroy(void *data __UNUSED__, void *surface)
1445{
1446#ifdef EVAS_GL
1447 Render_Engine_GL_Surface *sfc;
1448
1449 sfc = (Render_Engine_GL_Surface*)surface;
1450
1451 if (!sfc) return 0;
1452
1453 if (sfc->buffer) free(sfc->buffer);
1454
1455 free(sfc);
1456
1457 surface = NULL;
1458
1459 return 1;
1460#else
1461 (void) surface;
1462 return 1;
1463#endif
1464}
1465
1466static void *
1467eng_gl_context_create(void *data __UNUSED__, void *share_context)
1468{
1469#ifdef EVAS_GL
1470 Render_Engine_GL_Context *ctx;
1471 Render_Engine_GL_Context *share_ctx;
1472
1473 ctx = calloc(1, sizeof(Render_Engine_GL_Context));
1474
1475 if (!ctx) return NULL;
1476
1477 share_ctx = (Render_Engine_GL_Context *)share_context;
1478
1479 ctx->share_ctx = share_ctx;
1480
1481 /*
1482 if (share_ctx)
1483 ctx->context = OSMesaCreateContextExt( OSMESA_RGBA, 8, 0, 0, share_ctx->context );
1484 else
1485 ctx->context = OSMesaCreateContextExt( OSMESA_RGBA, 8, 0, 0, NULL );
1486
1487
1488 if (!ctx->context)
1489 {
1490 ERR("Error creating OSMesa Context.");
1491 free(ctx);
1492 return NULL;
1493 }
1494 */
1495
1496 ctx->initialized = 0;
1497
1498 return ctx;
1499#else
1500 (void) share_context;
1501 return NULL;
1502#endif
1503}
1504
1505static int
1506eng_gl_context_destroy(void *data __UNUSED__, void *context)
1507{
1508#ifdef EVAS_GL
1509 Render_Engine_GL_Context *ctx;
1510
1511 ctx = (Render_Engine_GL_Context*)context;
1512
1513 if (!ctx) return 0;
1514
1515 _sym_OSMesaDestroyContext(ctx->context);
1516
1517 free(ctx);
1518 context = NULL;
1519
1520 return 1;
1521#else
1522 (void) context;
1523 return 0;
1524#endif
1525}
1526
1527static int
1528eng_gl_make_current(void *data __UNUSED__, void *surface, void *context)
1529{
1530#ifdef EVAS_GL
1531 Render_Engine_GL_Surface *sfc;
1532 Render_Engine_GL_Context *ctx;
1533 OSMesaContext share_ctx;
1534 GLboolean ret;
1535
1536 sfc = (Render_Engine_GL_Surface*)surface;
1537 ctx = (Render_Engine_GL_Context*)context;
1538
1539 // Unset surface/context
1540 if ((!sfc) || (!ctx))
1541 {
1542 if (ctx) ctx->current_sfc = NULL;
1543 if (sfc) sfc->current_ctx = NULL;
1544 return 1;
1545 }
1546
1547 // Initialize Context if it hasn't been.
1548 if (!ctx->initialized)
1549 {
1550 if (ctx->share_ctx)
1551 share_ctx = ctx->share_ctx->context;
1552 else
1553 share_ctx = NULL;
1554
1555 ctx->context = _sym_OSMesaCreateContextExt(sfc->internal_fmt,
1556 sfc->depth_bits,
1557 sfc->stencil_bits,
1558 0,
1559 share_ctx);
1560 if (!ctx->context)
1561 {
1562 ERR("Error initializing context.");
1563 return 0;
1564 }
1565
1566 ctx->initialized = 1;
1567 }
1568
1569
1570 // Call MakeCurrent
1571 ret = _sym_OSMesaMakeCurrent(ctx->context, sfc->buffer, GL_UNSIGNED_BYTE,
1572 sfc->w, sfc->h);
1573
1574 if (ret == GL_FALSE)
1575 {
1576 ERR("Error doing MakeCurrent.");
1577 return 0;
1578 }
1579
1580 _sym_OSMesaPixelStore(OSMESA_Y_UP, 0);
1581
1582 // Set the current surface/context
1583 ctx->current_sfc = sfc;
1584 sfc->current_ctx = ctx;
1585
1586 return 1;
1587#else
1588 (void) surface;
1589 (void) context;
1590 return 1;
1591#endif
1592}
1593
1594// FIXME!!! Implement later
1595static void *
1596eng_gl_string_query(void *data __UNUSED__, int name __UNUSED__)
1597{
1598 return NULL;
1599}
1600
1601static void *
1602eng_gl_proc_address_get(void *data __UNUSED__, const char *name)
1603{
1604#ifdef EVAS_GL
1605 if (_sym_OSMesaGetProcAddress) return _sym_OSMesaGetProcAddress(name);
1606 return dlsym(RTLD_DEFAULT, name);
1607#else
1608 (void) name;
1609 return NULL;
1610#endif
1611}
1612
1613static int
1614eng_gl_native_surface_get(void *data __UNUSED__, void *surface, void *native_surface)
1615{
1616#ifdef EVAS_GL
1617 Render_Engine_GL_Surface *sfc;
1618 Evas_Native_Surface *ns;
1619
1620 sfc = (Render_Engine_GL_Surface*)surface;
1621 ns = (Evas_Native_Surface*)native_surface;
1622
1623 if (!sfc) return 0;
1624
1625 ns->type = EVAS_NATIVE_SURFACE_OPENGL;
1626 ns->version = EVAS_NATIVE_SURFACE_VERSION;
1627 ns->data.x11.visual = sfc->buffer;
1628
1629 return 1;
1630#else
1631 (void) surface;
1632 (void) native_surface;
1633 return 1;
1634#endif
1635}
1636
1637
1638static void *
1639eng_gl_api_get(void *data __UNUSED__)
1640{
1641#ifdef EVAS_GL
1642 return &gl_funcs;
1643#else
1644 return NULL;
1645#endif
1646}
1647
1648//------------------------------------------------//
1649
1650
1038/* 1651/*
1039 ***** 1652 *****
1040 ** 1653 **
@@ -1112,6 +1725,7 @@ static Evas_Func func =
1112 eng_image_format_get, 1725 eng_image_format_get,
1113 eng_image_colorspace_set, 1726 eng_image_colorspace_set,
1114 eng_image_colorspace_get, 1727 eng_image_colorspace_get,
1728 eng_image_can_region_get,
1115 eng_image_mask_create, 1729 eng_image_mask_create,
1116 eng_image_native_set, 1730 eng_image_native_set,
1117 eng_image_native_get, 1731 eng_image_native_get,
@@ -1161,15 +1775,15 @@ static Evas_Func func =
1161 eng_image_filtered_save, 1775 eng_image_filtered_save,
1162 eng_image_filtered_free, 1776 eng_image_filtered_free,
1163#endif 1777#endif
1164 NULL, // FIXME: need software mesa for gl rendering <- gl_surface_create 1778 NULL, // need software mesa for gl rendering <- gl_surface_create
1165 NULL, // FIXME: need software mesa for gl rendering <- gl_surface_destroy 1779 NULL, // need software mesa for gl rendering <- gl_surface_destroy
1166 NULL, // FIXME: need software mesa for gl rendering <- gl_context_create 1780 NULL, // need software mesa for gl rendering <- gl_context_create
1167 NULL, // FIXME: need software mesa for gl rendering <- gl_context_destroy 1781 NULL, // need software mesa for gl rendering <- gl_context_destroy
1168 NULL, // FIXME: need software mesa for gl rendering <- gl_make_current 1782 NULL, // need software mesa for gl rendering <- gl_make_current
1169 NULL, // FIXME: need software mesa for gl rendering <- gl_string_query 1783 NULL, // need software mesa for gl rendering <- gl_string_query
1170 NULL, // FIXME: need software mesa for gl rendering <- gl_proc_address_get 1784 NULL, // need software mesa for gl rendering <- gl_proc_address_get
1171 NULL, // FIXME: need software mesa for gl rendering <- gl_native_surface_get 1785 NULL, // need software mesa for gl rendering <- gl_native_surface_get
1172 NULL, // FIXME: need software mesa for gl rendering <- gl_api_get 1786 NULL, // need software mesa for gl rendering <- gl_api_get
1173 eng_image_load_error_get, 1787 eng_image_load_error_get,
1174 eng_font_run_font_end_get, 1788 eng_font_run_font_end_get,
1175 eng_image_animated_get, 1789 eng_image_animated_get,
@@ -1182,6 +1796,981 @@ static Evas_Func func =
1182 /* FUTURE software generic calls go here */ 1796 /* FUTURE software generic calls go here */
1183}; 1797};
1184 1798
1799
1800//----------------------------------------------------------------//
1801// //
1802// Load Symbols //
1803// //
1804//----------------------------------------------------------------//
1805#ifdef EVAS_GL
1806static void
1807sym_missing(void)
1808{
1809 ERR("GL symbols missing!\n");
1810}
1811
1812static int
1813glue_sym_init(void)
1814{
1815 //------------------------------------------------//
1816 // Use eglGetProcAddress
1817#define FINDSYM(dst, sym, typ) \
1818 if (!dst) dst = (typeof(dst))dlsym(gl_lib_handle, sym); \
1819 if (!dst) \
1820 { \
1821 ERR("Symbol not found %s\n", sym); \
1822 return 0; \
1823 }
1824#define FALLBAK(dst, typ) if (!dst) dst = (typeof(dst))sym_missing;
1825
1826 //------------------------------------------------------//
1827 // OSMesa APIs...
1828 FINDSYM(_sym_OSMesaCreateContextExt, "OSMesaCreateContextExt", glsym_func_osm_ctx);
1829 FALLBAK(_sym_OSMesaCreateContextExt, glsym_func_void);
1830
1831 FINDSYM(_sym_OSMesaDestroyContext, "OSMesaDestroyContext", glsym_func_void);
1832 FALLBAK(_sym_OSMesaDestroyContext, glsym_func_void);
1833
1834 FINDSYM(_sym_OSMesaMakeCurrent, "OSMesaMakeCurrent", glsym_func_bool);
1835 FALLBAK(_sym_OSMesaMakeCurrent, glsym_func_void);
1836
1837 FINDSYM(_sym_OSMesaPixelStore, "OSMesaPixelStore", glsym_func_void);
1838 FALLBAK(_sym_OSMesaPixelStore, glsym_func_void);
1839
1840 FINDSYM(_sym_OSMesaGetProcAddress, "OSMesaGetProcAddress", glsym_func_eng_fn);
1841 FALLBAK(_sym_OSMesaGetProcAddress, glsym_func_void);
1842
1843#undef FINDSYM
1844#undef FALLBAK
1845
1846 return 1;
1847}
1848
1849static int
1850gl_sym_init(void)
1851{
1852 //------------------------------------------------//
1853#define FINDSYM(dst, sym, typ) \
1854 if (!dst) dst = (typeof(dst))dlsym(gl_lib_handle, sym); \
1855 if (!dst) DBG("Symbol not found %s\n", sym);
1856#define FALLBAK(dst, typ) if (!dst) dst = (typeof(dst))sym_missing;
1857
1858
1859 //------------------------------------------------------//
1860 // GLES 2.0 APIs...
1861 FINDSYM(_sym_glActiveTexture, "glActiveTexture", glsym_func_void);
1862 FALLBAK(_sym_glActiveTexture, glsym_func_void);
1863
1864 FINDSYM(_sym_glAttachShader, "glAttachShader", glsym_func_void);
1865 FALLBAK(_sym_glAttachShader, glsym_func_void);
1866
1867 FINDSYM(_sym_glBindAttribLocation, "glBindAttribLocation", glsym_func_void);
1868 FALLBAK(_sym_glBindAttribLocation, glsym_func_void);
1869
1870 FINDSYM(_sym_glBindBuffer, "glBindBuffer", glsym_func_void);
1871 FALLBAK(_sym_glBindBuffer, glsym_func_void);
1872
1873 FINDSYM(_sym_glBindFramebuffer, "glBindFramebuffer", glsym_func_void);
1874 FALLBAK(_sym_glBindFramebuffer, glsym_func_void);
1875
1876 FINDSYM(_sym_glBindRenderbuffer, "glBindRenderbuffer", glsym_func_void);
1877 FALLBAK(_sym_glBindRenderbuffer, glsym_func_void);
1878
1879 FINDSYM(_sym_glBindTexture, "glBindTexture", glsym_func_void);
1880 FALLBAK(_sym_glBindTexture, glsym_func_void);
1881
1882 FINDSYM(_sym_glBlendColor, "glBlendColor", glsym_func_void);
1883 FALLBAK(_sym_glBlendColor, glsym_func_void);
1884
1885 FINDSYM(_sym_glBlendEquation, "glBlendEquation", glsym_func_void);
1886 FALLBAK(_sym_glBlendEquation, glsym_func_void);
1887
1888 FINDSYM(_sym_glBlendEquationSeparate, "glBlendEquationSeparate", glsym_func_void);
1889 FALLBAK(_sym_glBlendEquationSeparate, glsym_func_void);
1890
1891 FINDSYM(_sym_glBlendFunc, "glBlendFunc", glsym_func_void);
1892 FALLBAK(_sym_glBlendFunc, glsym_func_void);
1893
1894 FINDSYM(_sym_glBlendFuncSeparate, "glBlendFuncSeparate", glsym_func_void);
1895 FALLBAK(_sym_glBlendFuncSeparate, glsym_func_void);
1896
1897 FINDSYM(_sym_glBufferData, "glBufferData", glsym_func_void);
1898 FALLBAK(_sym_glBufferData, glsym_func_void);
1899
1900 FINDSYM(_sym_glBufferSubData, "glBufferSubData", glsym_func_void);
1901 FALLBAK(_sym_glBufferSubData, glsym_func_void);
1902
1903 FINDSYM(_sym_glCheckFramebufferStatus, "glCheckFramebufferStatus", glsym_func_uint);
1904 FALLBAK(_sym_glCheckFramebufferStatus, glsym_func_uint);
1905
1906 FINDSYM(_sym_glClear, "glClear", glsym_func_void);
1907 FALLBAK(_sym_glClear, glsym_func_void);
1908
1909 FINDSYM(_sym_glClearColor, "glClearColor", glsym_func_void);
1910 FALLBAK(_sym_glClearColor, glsym_func_void);
1911
1912 FINDSYM(_sym_glClearDepthf, "glClearDepthf", glsym_func_void);
1913 FINDSYM(_sym_glClearDepthf, "glClearDepth", glsym_func_void);
1914 FALLBAK(_sym_glClearDepthf, glsym_func_void);
1915
1916 FINDSYM(_sym_glClearStencil, "glClearStencil", glsym_func_void);
1917 FALLBAK(_sym_glClearStencil, glsym_func_void);
1918
1919 FINDSYM(_sym_glColorMask, "glColorMask", glsym_func_void);
1920 FALLBAK(_sym_glColorMask, glsym_func_void);
1921
1922 FINDSYM(_sym_glCompileShader, "glCompileShader", glsym_func_void);
1923 FALLBAK(_sym_glCompileShader, glsym_func_void);
1924
1925 FINDSYM(_sym_glCompressedTexImage2D, "glCompressedTexImage2D", glsym_func_void);
1926 FALLBAK(_sym_glCompressedTexImage2D, glsym_func_void);
1927
1928 FINDSYM(_sym_glCompressedTexSubImage2D, "glCompressedTexSubImage2D", glsym_func_void);
1929 FALLBAK(_sym_glCompressedTexSubImage2D, glsym_func_void);
1930
1931 FINDSYM(_sym_glCopyTexImage2D, "glCopyTexImage2D", glsym_func_void);
1932 FALLBAK(_sym_glCopyTexImage2D, glsym_func_void);
1933
1934 FINDSYM(_sym_glCopyTexSubImage2D, "glCopyTexSubImage2D", glsym_func_void);
1935 FALLBAK(_sym_glCopyTexSubImage2D, glsym_func_void);
1936
1937 FINDSYM(_sym_glCreateProgram, "glCreateProgram", glsym_func_uint);
1938 FALLBAK(_sym_glCreateProgram, glsym_func_uint);
1939
1940 FINDSYM(_sym_glCreateShader, "glCreateShader", glsym_func_uint);
1941 FALLBAK(_sym_glCreateShader, glsym_func_uint);
1942
1943 FINDSYM(_sym_glCullFace, "glCullFace", glsym_func_void);
1944 FALLBAK(_sym_glCullFace, glsym_func_void);
1945
1946 FINDSYM(_sym_glDeleteBuffers, "glDeleteBuffers", glsym_func_void);
1947 FALLBAK(_sym_glDeleteBuffers, glsym_func_void);
1948
1949 FINDSYM(_sym_glDeleteFramebuffers, "glDeleteFramebuffers", glsym_func_void);
1950 FALLBAK(_sym_glDeleteFramebuffers, glsym_func_void);
1951
1952 FINDSYM(_sym_glDeleteProgram, "glDeleteProgram", glsym_func_void);
1953 FALLBAK(_sym_glDeleteProgram, glsym_func_void);
1954
1955 FINDSYM(_sym_glDeleteRenderbuffers, "glDeleteRenderbuffers", glsym_func_void);
1956 FALLBAK(_sym_glDeleteRenderbuffers, glsym_func_void);
1957
1958 FINDSYM(_sym_glDeleteShader, "glDeleteShader", glsym_func_void);
1959 FALLBAK(_sym_glDeleteShader, glsym_func_void);
1960
1961 FINDSYM(_sym_glDeleteTextures, "glDeleteTextures", glsym_func_void);
1962 FALLBAK(_sym_glDeleteTextures, glsym_func_void);
1963
1964 FINDSYM(_sym_glDepthFunc, "glDepthFunc", glsym_func_void);
1965 FALLBAK(_sym_glDepthFunc, glsym_func_void);
1966
1967 FINDSYM(_sym_glDepthMask, "glDepthMask", glsym_func_void);
1968 FALLBAK(_sym_glDepthMask, glsym_func_void);
1969
1970 FINDSYM(_sym_glDepthRangef, "glDepthRangef", glsym_func_void);
1971 FINDSYM(_sym_glDepthRangef, "glDepthRange", glsym_func_void);
1972 FALLBAK(_sym_glDepthRangef, glsym_func_void);
1973
1974 FINDSYM(_sym_glDetachShader, "glDetachShader", glsym_func_void);
1975 FALLBAK(_sym_glDetachShader, glsym_func_void);
1976
1977 FINDSYM(_sym_glDisable, "glDisable", glsym_func_void);
1978 FALLBAK(_sym_glDisable, glsym_func_void);
1979
1980 FINDSYM(_sym_glDisableVertexAttribArray, "glDisableVertexAttribArray", glsym_func_void);
1981 FALLBAK(_sym_glDisableVertexAttribArray, glsym_func_void);
1982
1983 FINDSYM(_sym_glDrawArrays, "glDrawArrays", glsym_func_void);
1984 FALLBAK(_sym_glDrawArrays, glsym_func_void);
1985
1986 FINDSYM(_sym_glDrawElements, "glDrawElements", glsym_func_void);
1987 FALLBAK(_sym_glDrawElements, glsym_func_void);
1988
1989 FINDSYM(_sym_glEnable, "glEnable", glsym_func_void);
1990 FALLBAK(_sym_glEnable, glsym_func_void);
1991
1992 FINDSYM(_sym_glEnableVertexAttribArray, "glEnableVertexAttribArray", glsym_func_void);
1993 FALLBAK(_sym_glEnableVertexAttribArray, glsym_func_void);
1994
1995 FINDSYM(_sym_glFinish, "glFinish", glsym_func_void);
1996 FALLBAK(_sym_glFinish, glsym_func_void);
1997
1998 FINDSYM(_sym_glFlush, "glFlush", glsym_func_void);
1999 FALLBAK(_sym_glFlush, glsym_func_void);
2000
2001 FINDSYM(_sym_glFramebufferRenderbuffer, "glFramebufferRenderbuffer", glsym_func_void);
2002 FALLBAK(_sym_glFramebufferRenderbuffer, glsym_func_void);
2003
2004 FINDSYM(_sym_glFramebufferTexture2D, "glFramebufferTexture2D", glsym_func_void);
2005 FALLBAK(_sym_glFramebufferTexture2D, glsym_func_void);
2006
2007 FINDSYM(_sym_glFrontFace, "glFrontFace", glsym_func_void);
2008 FALLBAK(_sym_glFrontFace, glsym_func_void);
2009
2010 FINDSYM(_sym_glGenBuffers, "glGenBuffers", glsym_func_void);
2011 FALLBAK(_sym_glGenBuffers, glsym_func_void);
2012
2013 FINDSYM(_sym_glGenerateMipmap, "glGenerateMipmap", glsym_func_void);
2014 FALLBAK(_sym_glGenerateMipmap, glsym_func_void);
2015
2016 FINDSYM(_sym_glGenFramebuffers, "glGenFramebuffers", glsym_func_void);
2017 FALLBAK(_sym_glGenFramebuffers, glsym_func_void);
2018
2019 FINDSYM(_sym_glGenRenderbuffers, "glGenRenderbuffers", glsym_func_void);
2020 FALLBAK(_sym_glGenRenderbuffers, glsym_func_void);
2021
2022 FINDSYM(_sym_glGenTextures, "glGenTextures", glsym_func_void);
2023 FALLBAK(_sym_glGenTextures, glsym_func_void);
2024
2025 FINDSYM(_sym_glGetActiveAttrib, "glGetActiveAttrib", glsym_func_void);
2026 FALLBAK(_sym_glGetActiveAttrib, glsym_func_void);
2027
2028 FINDSYM(_sym_glGetActiveUniform, "glGetActiveUniform", glsym_func_void);
2029 FALLBAK(_sym_glGetActiveUniform, glsym_func_void);
2030
2031 FINDSYM(_sym_glGetAttachedShaders, "glGetAttachedShaders", glsym_func_void);
2032 FALLBAK(_sym_glGetAttachedShaders, glsym_func_void);
2033
2034 FINDSYM(_sym_glGetAttribLocation, "glGetAttribLocation", glsym_func_int);
2035 FALLBAK(_sym_glGetAttribLocation, glsym_func_int);
2036
2037 FINDSYM(_sym_glGetBooleanv, "glGetBooleanv", glsym_func_void);
2038 FALLBAK(_sym_glGetBooleanv, glsym_func_void);
2039
2040 FINDSYM(_sym_glGetBufferParameteriv, "glGetBufferParameteriv", glsym_func_void);
2041 FALLBAK(_sym_glGetBufferParameteriv, glsym_func_void);
2042
2043 FINDSYM(_sym_glGetError, "glGetError", glsym_func_uint);
2044 FALLBAK(_sym_glGetError, glsym_func_uint);
2045
2046 FINDSYM(_sym_glGetFloatv, "glGetFloatv", glsym_func_void);
2047 FALLBAK(_sym_glGetFloatv, glsym_func_void);
2048
2049 FINDSYM(_sym_glGetFramebufferAttachmentParameteriv, "glGetFramebufferAttachmentParameteriv", glsym_func_void);
2050 FALLBAK(_sym_glGetFramebufferAttachmentParameteriv, glsym_func_void);
2051
2052 FINDSYM(_sym_glGetIntegerv, "glGetIntegerv", glsym_func_void);
2053 FALLBAK(_sym_glGetIntegerv, glsym_func_void);
2054
2055 FINDSYM(_sym_glGetProgramiv, "glGetProgramiv", glsym_func_void);
2056 FALLBAK(_sym_glGetProgramiv, glsym_func_void);
2057
2058 FINDSYM(_sym_glGetProgramInfoLog, "glGetProgramInfoLog", glsym_func_void);
2059 FALLBAK(_sym_glGetProgramInfoLog, glsym_func_void);
2060
2061 FINDSYM(_sym_glGetRenderbufferParameteriv, "glGetRenderbufferParameteriv", glsym_func_void);
2062 FALLBAK(_sym_glGetRenderbufferParameteriv, glsym_func_void);
2063
2064 FINDSYM(_sym_glGetShaderiv, "glGetShaderiv", glsym_func_void);
2065 FALLBAK(_sym_glGetShaderiv, glsym_func_void);
2066
2067 FINDSYM(_sym_glGetShaderInfoLog, "glGetShaderInfoLog", glsym_func_void);
2068 FALLBAK(_sym_glGetShaderInfoLog, glsym_func_void);
2069
2070 FINDSYM(_sym_glGetShaderPrecisionFormat, "glGetShaderPrecisionFormat", glsym_func_void);
2071 FALLBAK(_sym_glGetShaderPrecisionFormat, glsym_func_void);
2072
2073 FINDSYM(_sym_glGetShaderSource, "glGetShaderSource", glsym_func_void);
2074 FALLBAK(_sym_glGetShaderSource, glsym_func_void);
2075
2076 FINDSYM(_sym_glGetString, "glGetString", glsym_func_uchar_ptr);
2077 FALLBAK(_sym_glGetString, glsym_func_const_uchar_ptr);
2078
2079 FINDSYM(_sym_glGetTexParameterfv, "glGetTexParameterfv", glsym_func_void);
2080 FALLBAK(_sym_glGetTexParameterfv, glsym_func_void);
2081
2082 FINDSYM(_sym_glGetTexParameteriv, "glGetTexParameteriv", glsym_func_void);
2083 FALLBAK(_sym_glGetTexParameteriv, glsym_func_void);
2084
2085 FINDSYM(_sym_glGetUniformfv, "glGetUniformfv", glsym_func_void);
2086 FALLBAK(_sym_glGetUniformfv, glsym_func_void);
2087
2088 FINDSYM(_sym_glGetUniformiv, "glGetUniformiv", glsym_func_void);
2089 FALLBAK(_sym_glGetUniformiv, glsym_func_void);
2090
2091 FINDSYM(_sym_glGetUniformLocation, "glGetUniformLocation", glsym_func_int);
2092 FALLBAK(_sym_glGetUniformLocation, glsym_func_int);
2093
2094 FINDSYM(_sym_glGetVertexAttribfv, "glGetVertexAttribfv", glsym_func_void);
2095 FALLBAK(_sym_glGetVertexAttribfv, glsym_func_void);
2096
2097 FINDSYM(_sym_glGetVertexAttribiv, "glGetVertexAttribiv", glsym_func_void);
2098 FALLBAK(_sym_glGetVertexAttribiv, glsym_func_void);
2099
2100 FINDSYM(_sym_glGetVertexAttribPointerv, "glGetVertexAttribPointerv", glsym_func_void);
2101 FALLBAK(_sym_glGetVertexAttribPointerv, glsym_func_void);
2102
2103 FINDSYM(_sym_glHint, "glHint", glsym_func_void);
2104 FALLBAK(_sym_glHint, glsym_func_void);
2105
2106 FINDSYM(_sym_glIsBuffer, "glIsBuffer", glsym_func_uchar);
2107 FALLBAK(_sym_glIsBuffer, glsym_func_uchar);
2108
2109 FINDSYM(_sym_glIsEnabled, "glIsEnabled", glsym_func_uchar);
2110 FALLBAK(_sym_glIsEnabled, glsym_func_uchar);
2111
2112 FINDSYM(_sym_glIsFramebuffer, "glIsFramebuffer", glsym_func_uchar);
2113 FALLBAK(_sym_glIsFramebuffer, glsym_func_uchar);
2114
2115 FINDSYM(_sym_glIsProgram, "glIsProgram", glsym_func_uchar);
2116 FALLBAK(_sym_glIsProgram, glsym_func_uchar);
2117
2118 FINDSYM(_sym_glIsRenderbuffer, "glIsRenderbuffer", glsym_func_uchar);
2119 FALLBAK(_sym_glIsRenderbuffer, glsym_func_uchar);
2120
2121 FINDSYM(_sym_glIsShader, "glIsShader", glsym_func_uchar);
2122 FALLBAK(_sym_glIsShader, glsym_func_uchar);
2123
2124 FINDSYM(_sym_glIsTexture, "glIsTexture", glsym_func_uchar);
2125 FALLBAK(_sym_glIsTexture, glsym_func_uchar);
2126
2127 FINDSYM(_sym_glLineWidth, "glLineWidth", glsym_func_void);
2128 FALLBAK(_sym_glLineWidth, glsym_func_void);
2129
2130 FINDSYM(_sym_glLinkProgram, "glLinkProgram", glsym_func_void);
2131 FALLBAK(_sym_glLinkProgram, glsym_func_void);
2132
2133 FINDSYM(_sym_glPixelStorei, "glPixelStorei", glsym_func_void);
2134 FALLBAK(_sym_glPixelStorei, glsym_func_void);
2135
2136 FINDSYM(_sym_glPolygonOffset, "glPolygonOffset", glsym_func_void);
2137 FALLBAK(_sym_glPolygonOffset, glsym_func_void);
2138
2139 FINDSYM(_sym_glReadPixels, "glReadPixels", glsym_func_void);
2140 FALLBAK(_sym_glReadPixels, glsym_func_void);
2141
2142 FINDSYM(_sym_glReleaseShaderCompiler, "glReleaseShaderCompiler", glsym_func_void);
2143 FALLBAK(_sym_glReleaseShaderCompiler, glsym_func_void);
2144
2145 FINDSYM(_sym_glRenderbufferStorage, "glRenderbufferStorage", glsym_func_void);
2146 FALLBAK(_sym_glRenderbufferStorage, glsym_func_void);
2147
2148 FINDSYM(_sym_glSampleCoverage, "glSampleCoverage", glsym_func_void);
2149 FALLBAK(_sym_glSampleCoverage, glsym_func_void);
2150
2151 FINDSYM(_sym_glScissor, "glScissor", glsym_func_void);
2152 FALLBAK(_sym_glScissor, glsym_func_void);
2153
2154 FINDSYM(_sym_glShaderBinary, "glShaderBinary", glsym_func_void);
2155 FALLBAK(_sym_glShaderBinary, glsym_func_void);
2156
2157 FINDSYM(_sym_glShaderSource, "glShaderSource", glsym_func_void);
2158 FALLBAK(_sym_glShaderSource, glsym_func_void);
2159
2160 FINDSYM(_sym_glStencilFunc, "glStencilFunc", glsym_func_void);
2161 FALLBAK(_sym_glStencilFunc, glsym_func_void);
2162
2163 FINDSYM(_sym_glStencilFuncSeparate, "glStencilFuncSeparate", glsym_func_void);
2164 FALLBAK(_sym_glStencilFuncSeparate, glsym_func_void);
2165
2166 FINDSYM(_sym_glStencilMask, "glStencilMask", glsym_func_void);
2167 FALLBAK(_sym_glStencilMask, glsym_func_void);
2168
2169 FINDSYM(_sym_glStencilMaskSeparate, "glStencilMaskSeparate", glsym_func_void);
2170 FALLBAK(_sym_glStencilMaskSeparate, glsym_func_void);
2171
2172 FINDSYM(_sym_glStencilOp, "glStencilOp", glsym_func_void);
2173 FALLBAK(_sym_glStencilOp, glsym_func_void);
2174
2175 FINDSYM(_sym_glStencilOpSeparate, "glStencilOpSeparate", glsym_func_void);
2176 FALLBAK(_sym_glStencilOpSeparate, glsym_func_void);
2177
2178 FINDSYM(_sym_glTexImage2D, "glTexImage2D", glsym_func_void);
2179 FALLBAK(_sym_glTexImage2D, glsym_func_void);
2180
2181 FINDSYM(_sym_glTexParameterf, "glTexParameterf", glsym_func_void);
2182 FALLBAK(_sym_glTexParameterf, glsym_func_void);
2183
2184 FINDSYM(_sym_glTexParameterfv, "glTexParameterfv", glsym_func_void);
2185 FALLBAK(_sym_glTexParameterfv, glsym_func_void);
2186
2187 FINDSYM(_sym_glTexParameteri, "glTexParameteri", glsym_func_void);
2188 FALLBAK(_sym_glTexParameteri, glsym_func_void);
2189
2190 FINDSYM(_sym_glTexParameteriv, "glTexParameteriv", glsym_func_void);
2191 FALLBAK(_sym_glTexParameteriv, glsym_func_void);
2192
2193 FINDSYM(_sym_glTexSubImage2D, "glTexSubImage2D", glsym_func_void);
2194 FALLBAK(_sym_glTexSubImage2D, glsym_func_void);
2195
2196 FINDSYM(_sym_glUniform1f, "glUniform1f", glsym_func_void);
2197 FALLBAK(_sym_glUniform1f, glsym_func_void);
2198
2199 FINDSYM(_sym_glUniform1fv, "glUniform1fv", glsym_func_void);
2200 FALLBAK(_sym_glUniform1fv, glsym_func_void);
2201
2202 FINDSYM(_sym_glUniform1i, "glUniform1i", glsym_func_void);
2203 FALLBAK(_sym_glUniform1i, glsym_func_void);
2204
2205 FINDSYM(_sym_glUniform1iv, "glUniform1iv", glsym_func_void);
2206 FALLBAK(_sym_glUniform1iv, glsym_func_void);
2207
2208 FINDSYM(_sym_glUniform2f, "glUniform2f", glsym_func_void);
2209 FALLBAK(_sym_glUniform2f, glsym_func_void);
2210
2211 FINDSYM(_sym_glUniform2fv, "glUniform2fv", glsym_func_void);
2212 FALLBAK(_sym_glUniform2fv, glsym_func_void);
2213
2214 FINDSYM(_sym_glUniform2i, "glUniform2i", glsym_func_void);
2215 FALLBAK(_sym_glUniform2i, glsym_func_void);
2216
2217 FINDSYM(_sym_glUniform2iv, "glUniform2iv", glsym_func_void);
2218 FALLBAK(_sym_glUniform2iv, glsym_func_void);
2219
2220 FINDSYM(_sym_glUniform3f, "glUniform3f", glsym_func_void);
2221 FALLBAK(_sym_glUniform3f, glsym_func_void);
2222
2223 FINDSYM(_sym_glUniform3fv, "glUniform3fv", glsym_func_void);
2224 FALLBAK(_sym_glUniform3fv, glsym_func_void);
2225
2226 FINDSYM(_sym_glUniform3i, "glUniform3i", glsym_func_void);
2227 FALLBAK(_sym_glUniform3i, glsym_func_void);
2228
2229 FINDSYM(_sym_glUniform3iv, "glUniform3iv", glsym_func_void);
2230 FALLBAK(_sym_glUniform3iv, glsym_func_void);
2231
2232 FINDSYM(_sym_glUniform4f, "glUniform4f", glsym_func_void);
2233 FALLBAK(_sym_glUniform4f, glsym_func_void);
2234
2235 FINDSYM(_sym_glUniform4fv, "glUniform4fv", glsym_func_void);
2236 FALLBAK(_sym_glUniform4fv, glsym_func_void);
2237
2238 FINDSYM(_sym_glUniform4i, "glUniform4i", glsym_func_void);
2239 FALLBAK(_sym_glUniform4i, glsym_func_void);
2240
2241 FINDSYM(_sym_glUniform4iv, "glUniform4iv", glsym_func_void);
2242 FALLBAK(_sym_glUniform4iv, glsym_func_void);
2243
2244 FINDSYM(_sym_glUniformMatrix2fv, "glUniformMatrix2fv", glsym_func_void);
2245 FALLBAK(_sym_glUniformMatrix2fv, glsym_func_void);
2246
2247 FINDSYM(_sym_glUniformMatrix3fv, "glUniformMatrix3fv", glsym_func_void);
2248 FALLBAK(_sym_glUniformMatrix3fv, glsym_func_void);
2249
2250 FINDSYM(_sym_glUniformMatrix4fv, "glUniformMatrix4fv", glsym_func_void);
2251 FALLBAK(_sym_glUniformMatrix4fv, glsym_func_void);
2252
2253 FINDSYM(_sym_glUseProgram, "glUseProgram", glsym_func_void);
2254 FALLBAK(_sym_glUseProgram, glsym_func_void);
2255
2256 FINDSYM(_sym_glValidateProgram, "glValidateProgram", glsym_func_void);
2257 FALLBAK(_sym_glValidateProgram, glsym_func_void);
2258
2259 FINDSYM(_sym_glVertexAttrib1f, "glVertexAttrib1f", glsym_func_void);
2260 FALLBAK(_sym_glVertexAttrib1f, glsym_func_void);
2261
2262 FINDSYM(_sym_glVertexAttrib1fv, "glVertexAttrib1fv", glsym_func_void);
2263 FALLBAK(_sym_glVertexAttrib1fv, glsym_func_void);
2264
2265 FINDSYM(_sym_glVertexAttrib2f, "glVertexAttrib2f", glsym_func_void);
2266 FALLBAK(_sym_glVertexAttrib2f, glsym_func_void);
2267
2268 FINDSYM(_sym_glVertexAttrib2fv, "glVertexAttrib2fv", glsym_func_void);
2269 FALLBAK(_sym_glVertexAttrib2fv, glsym_func_void);
2270
2271 FINDSYM(_sym_glVertexAttrib3f, "glVertexAttrib3f", glsym_func_void);
2272 FALLBAK(_sym_glVertexAttrib3f, glsym_func_void);
2273
2274 FINDSYM(_sym_glVertexAttrib3fv, "glVertexAttrib3fv", glsym_func_void);
2275 FALLBAK(_sym_glVertexAttrib3fv, glsym_func_void);
2276
2277 FINDSYM(_sym_glVertexAttrib4f, "glVertexAttrib4f", glsym_func_void);
2278 FALLBAK(_sym_glVertexAttrib4f, glsym_func_void);
2279
2280 FINDSYM(_sym_glVertexAttrib4fv, "glVertexAttrib4fv", glsym_func_void);
2281 FALLBAK(_sym_glVertexAttrib4fv, glsym_func_void);
2282
2283 FINDSYM(_sym_glVertexAttribPointer, "glVertexAttribPointer", glsym_func_void);
2284 FALLBAK(_sym_glVertexAttribPointer, glsym_func_void);
2285
2286 FINDSYM(_sym_glViewport, "glViewport", glsym_func_void);
2287 FALLBAK(_sym_glViewport, glsym_func_void);
2288
2289#undef FINDSYM
2290#undef FALLBAK
2291
2292 // Checking to see if this function exists is a poor but reasonable way to
2293 // check if it's gles but it works for now
2294 if (_sym_glGetShaderPrecisionFormat != (typeof(_sym_glGetShaderPrecisionFormat))sym_missing )
2295 {
2296 DBG("GL Library is GLES.");
2297 gl_lib_is_gles = 1;
2298 }
2299
2300 return 1;
2301}
2302
2303//--------------------------------------------------------------//
2304// Wrapped GL APIs to handle desktop compatibility
2305
2306// Stripping precision code from GLES shader for desktop compatibility
2307// Code adopted from Meego GL code. Temporary Fix.
2308static const char *
2309opengl_strtok(const char *s, int *n, char **saveptr, char *prevbuf)
2310{
2311 char *start;
2312 char *ret;
2313 char *p;
2314 int retlen;
2315 static const char *delim = " \t\n\r/";
2316
2317 if (prevbuf) free(prevbuf);
2318
2319 if (s)
2320 *saveptr = (char *)s;
2321 else
2322 {
2323 if (!(*saveptr) || !(*n))
2324 return NULL;
2325 s = *saveptr;
2326 }
2327
2328 for (; *n && strchr(delim, *s); s++, (*n)--)
2329 {
2330 if (*s == '/' && *n > 1)
2331 {
2332 if (s[1] == '/')
2333 {
2334 do
2335 {
2336 s++, (*n)--;
2337 }
2338 while (*n > 1 && s[1] != '\n' && s[1] != '\r');
2339 }
2340 else if (s[1] == '*')
2341 {
2342 do
2343 {
2344 s++, (*n)--;
2345 }
2346 while (*n > 2 && (s[1] != '*' || s[2] != '/'));
2347 s++, (*n)--;
2348 }
2349 }
2350 }
2351
2352 start = (char *)s;
2353 for (; *n && *s && !strchr(delim, *s); s++, (*n)--);
2354 if (*n > 0) s++, (*n)--;
2355
2356 *saveptr = (char *)s;
2357
2358 retlen = s - start;
2359 ret = malloc(retlen + 1);
2360 p = ret;
2361
2362 while (retlen > 0)
2363 {
2364 if (*start == '/' && retlen > 1)
2365 {
2366 if (start[1] == '/')
2367 {
2368 do
2369 {
2370 start++, retlen--;
2371 }
2372 while (retlen > 1 && start[1] != '\n' && start[1] != '\r');
2373 start++, retlen--;
2374 continue;
2375 }
2376 else if (start[1] == '*')
2377 {
2378 do
2379 {
2380 start++, retlen--;
2381 }
2382 while (retlen > 2 && (start[1] != '*' || start[2] != '/'));
2383 start += 3, retlen -= 3;
2384 continue;
2385 }
2386 }
2387 *(p++) = *(start++), retlen--;
2388 }
2389
2390 *p = 0;
2391 return ret;
2392}
2393
2394static char *
2395patch_gles_shader(const char *source, int length, int *patched_len)
2396{
2397 char *saveptr = NULL;
2398 char *sp;
2399 char *p = NULL;
2400
2401 if (!length) length = strlen(source);
2402
2403 *patched_len = 0;
2404 int patched_size = length;
2405 char *patched = malloc(patched_size + 1);
2406
2407 if (!patched) return NULL;
2408
2409 p = (char *)opengl_strtok(source, &length, &saveptr, NULL);
2410 for (; p; p = (char *)opengl_strtok(0, &length, &saveptr, p))
2411 {
2412 if (!strncmp(p, "lowp", 4) || !strncmp(p, "mediump", 7) || !strncmp(p, "highp", 5))
2413 {
2414 continue;
2415 }
2416 else if (!strncmp(p, "precision", 9))
2417 {
2418 while ((p = (char *)opengl_strtok(0, &length, &saveptr, p)) && !strchr(p, ';'));
2419 }
2420 else
2421 {
2422 if (!strncmp(p, "gl_MaxVertexUniformVectors", 26))
2423 {
2424 p = "(gl_MaxVertexUniformComponents / 4)";
2425 }
2426 else if (!strncmp(p, "gl_MaxFragmentUniformVectors", 28))
2427 {
2428 p = "(gl_MaxFragmentUniformComponents / 4)";
2429 }
2430 else if (!strncmp(p, "gl_MaxVaryingVectors", 20))
2431 {
2432 p = "(gl_MaxVaryingFloats / 4)";
2433 }
2434
2435 int new_len = strlen(p);
2436 if (*patched_len + new_len > patched_size)
2437 {
2438 patched_size *= 2;
2439 patched = realloc(patched, patched_size + 1);
2440
2441 if (!patched)
2442 return NULL;
2443 }
2444
2445 memcpy(patched + *patched_len, p, new_len);
2446 *patched_len += new_len;
2447 }
2448 }
2449
2450 patched[*patched_len] = 0;
2451 /* check that we don't leave dummy preprocessor lines */
2452 for (sp = patched; *sp;)
2453 {
2454 for (; *sp == ' ' || *sp == '\t'; sp++);
2455 if (!strncmp(sp, "#define", 7))
2456 {
2457 for (p = sp + 7; *p == ' ' || *p == '\t'; p++);
2458 if (*p == '\n' || *p == '\r' || *p == '/')
2459 {
2460 memset(sp, 0x20, 7);
2461 }
2462 }
2463 for (; *sp && *sp != '\n' && *sp != '\r'; sp++);
2464 for (; *sp == '\n' || *sp == '\r'; sp++);
2465 }
2466 return patched;
2467}
2468
2469static void
2470evgl_glShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length)
2471{
2472 int i = 0, len = 0;
2473
2474 char **s = malloc(count * sizeof(char*));
2475 GLint *l = malloc(count * sizeof(GLint));
2476
2477 memset(s, 0, count * sizeof(char*));
2478 memset(l, 0, count * sizeof(GLint));
2479
2480 for (i = 0; i < count; ++i)
2481 {
2482 if (length)
2483 {
2484 len = length[i];
2485 if (len < 0)
2486 len = string[i] ? strlen(string[i]) : 0;
2487 }
2488 else
2489 len = string[i] ? strlen(string[i]) : 0;
2490
2491 if (string[i])
2492 {
2493 s[i] = patch_gles_shader(string[i], len, &l[i]);
2494 if (!s[i])
2495 {
2496 while(i)
2497 free(s[--i]);
2498 free(l);
2499 free(s);
2500
2501 DBG("Patching Shader Failed.");
2502 return;
2503 }
2504 }
2505 else
2506 {
2507 s[i] = NULL;
2508 l[i] = 0;
2509 }
2510 }
2511
2512 _sym_glShaderSource(shader, count, (const char **)s, l);
2513
2514 while(i)
2515 free(s[--i]);
2516 free(l);
2517 free(s);
2518}
2519
2520
2521static void
2522evgl_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
2523{
2524 if (range)
2525 {
2526 range[0] = -126; // floor(log2(FLT_MIN))
2527 range[1] = 127; // floor(log2(FLT_MAX))
2528 }
2529 if (precision)
2530 {
2531 precision[0] = 24; // floor(-log2((1.0/16777218.0)));
2532 }
2533 return;
2534 shadertype = precisiontype = 0;
2535}
2536
2537static void
2538evgl_glReleaseShaderCompiler(void)
2539{
2540 DBG("Not supported in Desktop GL");
2541 return;
2542}
2543
2544static void
2545evgl_glShaderBinary(GLsizei n __UNUSED__, const GLuint* shaders __UNUSED__, GLenum binaryformat __UNUSED__, const void* binary __UNUSED__, GLsizei length __UNUSED__)
2546{
2547 // FIXME: need to dlsym/getprocaddress for this
2548 DBG("Not supported in Desktop GL");
2549 return;
2550 //n = binaryformat = length = 0;
2551 //shaders = binary = 0;
2552}
2553#endif
2554//--------------------------------------------------------------//
2555
2556
2557#ifdef EVAS_GL
2558static void
2559override_gl_apis(Evas_GL_API *api)
2560{
2561
2562 api->version = EVAS_GL_API_VERSION;
2563
2564#define ORD(f) EVAS_API_OVERRIDE(f, api, _sym_)
2565 // GLES 2.0
2566 ORD(glActiveTexture);
2567 ORD(glAttachShader);
2568 ORD(glBindAttribLocation);
2569 ORD(glBindBuffer);
2570 ORD(glBindTexture);
2571 ORD(glBlendColor);
2572 ORD(glBlendEquation);
2573 ORD(glBlendEquationSeparate);
2574 ORD(glBlendFunc);
2575 ORD(glBlendFuncSeparate);
2576 ORD(glBufferData);
2577 ORD(glBufferSubData);
2578 ORD(glCheckFramebufferStatus);
2579 ORD(glClear);
2580 ORD(glClearColor);
2581 ORD(glClearDepthf);
2582 ORD(glClearStencil);
2583 ORD(glColorMask);
2584 ORD(glCompileShader);
2585 ORD(glCompressedTexImage2D);
2586 ORD(glCompressedTexSubImage2D);
2587 ORD(glCopyTexImage2D);
2588 ORD(glCopyTexSubImage2D);
2589 ORD(glCreateProgram);
2590 ORD(glCreateShader);
2591 ORD(glCullFace);
2592 ORD(glDeleteBuffers);
2593 ORD(glDeleteFramebuffers);
2594 ORD(glDeleteProgram);
2595 ORD(glDeleteRenderbuffers);
2596 ORD(glDeleteShader);
2597 ORD(glDeleteTextures);
2598 ORD(glDepthFunc);
2599 ORD(glDepthMask);
2600 ORD(glDepthRangef);
2601 ORD(glDetachShader);
2602 ORD(glDisable);
2603 ORD(glDisableVertexAttribArray);
2604 ORD(glDrawArrays);
2605 ORD(glDrawElements);
2606 ORD(glEnable);
2607 ORD(glEnableVertexAttribArray);
2608 ORD(glFinish);
2609 ORD(glFlush);
2610 ORD(glFramebufferRenderbuffer);
2611 ORD(glFramebufferTexture2D);
2612 ORD(glFrontFace);
2613 ORD(glGenBuffers);
2614 ORD(glGenerateMipmap);
2615 ORD(glGenFramebuffers);
2616 ORD(glGenRenderbuffers);
2617 ORD(glGenTextures);
2618 ORD(glGetActiveAttrib);
2619 ORD(glGetActiveUniform);
2620 ORD(glGetAttachedShaders);
2621 ORD(glGetAttribLocation);
2622 ORD(glGetBooleanv);
2623 ORD(glGetBufferParameteriv);
2624 ORD(glGetError);
2625 ORD(glGetFloatv);
2626 ORD(glGetFramebufferAttachmentParameteriv);
2627 ORD(glGetIntegerv);
2628 ORD(glGetProgramiv);
2629 ORD(glGetProgramInfoLog);
2630 ORD(glGetRenderbufferParameteriv);
2631 ORD(glGetShaderiv);
2632 ORD(glGetShaderInfoLog);
2633 ORD(glGetShaderPrecisionFormat);
2634 ORD(glGetShaderSource);
2635 ORD(glGetString); // FIXME
2636 ORD(glGetTexParameterfv);
2637 ORD(glGetTexParameteriv);
2638 ORD(glGetUniformfv);
2639 ORD(glGetUniformiv);
2640 ORD(glGetUniformLocation);
2641 ORD(glGetVertexAttribfv);
2642 ORD(glGetVertexAttribiv);
2643 ORD(glGetVertexAttribPointerv);
2644 ORD(glHint);
2645 ORD(glIsBuffer);
2646 ORD(glIsEnabled);
2647 ORD(glIsFramebuffer);
2648 ORD(glIsProgram);
2649 ORD(glIsRenderbuffer);
2650 ORD(glIsShader);
2651 ORD(glIsTexture);
2652 ORD(glLineWidth);
2653 ORD(glLinkProgram);
2654 ORD(glPixelStorei);
2655 ORD(glPolygonOffset);
2656 ORD(glReadPixels);
2657 ORD(glReleaseShaderCompiler);
2658 ORD(glRenderbufferStorage);
2659 ORD(glSampleCoverage);
2660 ORD(glScissor);
2661 ORD(glShaderBinary);
2662 ORD(glShaderSource);
2663 ORD(glStencilFunc);
2664 ORD(glStencilFuncSeparate);
2665 ORD(glStencilMask);
2666 ORD(glStencilMaskSeparate);
2667 ORD(glStencilOp);
2668 ORD(glStencilOpSeparate);
2669 ORD(glTexImage2D);
2670 ORD(glTexParameterf);
2671 ORD(glTexParameterfv);
2672 ORD(glTexParameteri);
2673 ORD(glTexParameteriv);
2674 ORD(glTexSubImage2D);
2675 ORD(glUniform1f);
2676 ORD(glUniform1fv);
2677 ORD(glUniform1i);
2678 ORD(glUniform1iv);
2679 ORD(glUniform2f);
2680 ORD(glUniform2fv);
2681 ORD(glUniform2i);
2682 ORD(glUniform2iv);
2683 ORD(glUniform3f);
2684 ORD(glUniform3fv);
2685 ORD(glUniform3i);
2686 ORD(glUniform3iv);
2687 ORD(glUniform4f);
2688 ORD(glUniform4fv);
2689 ORD(glUniform4i);
2690 ORD(glUniform4iv);
2691 ORD(glUniformMatrix2fv);
2692 ORD(glUniformMatrix3fv);
2693 ORD(glUniformMatrix4fv);
2694 ORD(glUseProgram);
2695 ORD(glValidateProgram);
2696 ORD(glVertexAttrib1f);
2697 ORD(glVertexAttrib1fv);
2698 ORD(glVertexAttrib2f);
2699 ORD(glVertexAttrib2fv);
2700 ORD(glVertexAttrib3f);
2701 ORD(glVertexAttrib3fv);
2702 ORD(glVertexAttrib4f);
2703 ORD(glVertexAttrib4fv);
2704 ORD(glVertexAttribPointer);
2705 ORD(glViewport);
2706#undef ORD
2707
2708#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, evgl_)
2709 if (!gl_lib_is_gles)
2710 {
2711 // Override functions wrapped by Evas_GL
2712 // GLES2.0 API compat on top of desktop gl
2713 ORD(glGetShaderPrecisionFormat);
2714 ORD(glReleaseShaderCompiler);
2715 ORD(glShaderBinary);
2716 }
2717
2718 ORD(glShaderSource); // Do precision stripping in both cases
2719#undef ORD
2720}
2721#endif
2722
2723//-------------------------------------------//
2724static int
2725gl_lib_init(void)
2726{
2727#ifdef EVAS_GL
2728 // dlopen OSMesa
2729 gl_lib_handle = dlopen("libOSMesa.so.1", RTLD_NOW);
2730 if (!gl_lib_handle) gl_lib_handle = dlopen("libOSMesa.so", RTLD_NOW);
2731 if (!gl_lib_handle)
2732 {
2733 DBG("Unable to open libOSMesa: %s", dlerror());
2734 return 0;
2735 }
2736
2737 //------------------------------------------------//
2738 if (!glue_sym_init()) return 0;
2739 if (!gl_sym_init()) return 0;
2740
2741 override_gl_apis(&gl_funcs);
2742
2743 return 1;
2744#else
2745 return 0;
2746#endif
2747}
2748
2749
2750static void
2751init_gl(void)
2752{
2753 DBG("Initializing Software OpenGL APIs...\n");
2754
2755 if (!gl_lib_init())
2756 DBG("Unable to support EvasGL in this engine module. Install OSMesa to get it running");
2757 else
2758 {
2759#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
2760 ORD(gl_surface_create);
2761 ORD(gl_surface_destroy);
2762 ORD(gl_context_create);
2763 ORD(gl_context_destroy);
2764 ORD(gl_make_current);
2765 ORD(gl_string_query); // FIXME: Need to implement
2766 ORD(gl_proc_address_get); // FIXME: Need to implement
2767 ORD(gl_native_surface_get);
2768 ORD(gl_api_get);
2769#undef ORD
2770 }
2771}
2772
2773
1185/* 2774/*
1186 ***** 2775 *****
1187 ** 2776 **
@@ -1201,6 +2790,9 @@ module_open(Evas_Module *em)
1201 EINA_LOG_ERR("Can not create a module log domain."); 2790 EINA_LOG_ERR("Can not create a module log domain.");
1202 return 0; 2791 return 0;
1203 } 2792 }
2793
2794 init_gl();
2795
1204 em->functions = (void *)(&func); 2796 em->functions = (void *)(&func);
1205 cpunum = eina_cpu_count(); 2797 cpunum = eina_cpu_count();
1206 return 1; 2798 return 1;
diff --git a/libraries/evas/src/modules/engines/software_sdl/Makefile.in b/libraries/evas/src/modules/engines/software_sdl/Makefile.in
index d1052c1..f63f3eb 100644
--- a/libraries/evas/src/modules/engines/software_sdl/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_sdl/Makefile.in
@@ -241,8 +241,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
241PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 241PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
242PIXMAN_LIBS = @PIXMAN_LIBS@ 242PIXMAN_LIBS = @PIXMAN_LIBS@
243PKG_CONFIG = @PKG_CONFIG@ 243PKG_CONFIG = @PKG_CONFIG@
244PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
245PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
246PNG_CFLAGS = @PNG_CFLAGS@ 244PNG_CFLAGS = @PNG_CFLAGS@
247PNG_LIBS = @PNG_LIBS@ 245PNG_LIBS = @PNG_LIBS@
248RANLIB = @RANLIB@ 246RANLIB = @RANLIB@
@@ -259,6 +257,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
259VALGRIND_LIBS = @VALGRIND_LIBS@ 257VALGRIND_LIBS = @VALGRIND_LIBS@
260VERSION = @VERSION@ 258VERSION = @VERSION@
261VMAJ = @VMAJ@ 259VMAJ = @VMAJ@
260WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
261WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
262WIN32_CFLAGS = @WIN32_CFLAGS@ 262WIN32_CFLAGS = @WIN32_CFLAGS@
263WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 263WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
264XCB_CFLAGS = @XCB_CFLAGS@ 264XCB_CFLAGS = @XCB_CFLAGS@
@@ -340,6 +340,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
340evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 340evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
341evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 341evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
342evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 342evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
343evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
344evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
345evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
346evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
343evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 347evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
344evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 348evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
345evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 349evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_x11/Makefile.in b/libraries/evas/src/modules/engines/software_x11/Makefile.in
index f5c73af..5fd2971 100644
--- a/libraries/evas/src/modules/engines/software_x11/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_x11/Makefile.in
@@ -282,8 +282,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
282PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 282PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
283PIXMAN_LIBS = @PIXMAN_LIBS@ 283PIXMAN_LIBS = @PIXMAN_LIBS@
284PKG_CONFIG = @PKG_CONFIG@ 284PKG_CONFIG = @PKG_CONFIG@
285PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
286PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
287PNG_CFLAGS = @PNG_CFLAGS@ 285PNG_CFLAGS = @PNG_CFLAGS@
288PNG_LIBS = @PNG_LIBS@ 286PNG_LIBS = @PNG_LIBS@
289RANLIB = @RANLIB@ 287RANLIB = @RANLIB@
@@ -300,6 +298,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
300VALGRIND_LIBS = @VALGRIND_LIBS@ 298VALGRIND_LIBS = @VALGRIND_LIBS@
301VERSION = @VERSION@ 299VERSION = @VERSION@
302VMAJ = @VMAJ@ 300VMAJ = @VMAJ@
301WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
302WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
303WIN32_CFLAGS = @WIN32_CFLAGS@ 303WIN32_CFLAGS = @WIN32_CFLAGS@
304WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 304WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
305XCB_CFLAGS = @XCB_CFLAGS@ 305XCB_CFLAGS = @XCB_CFLAGS@
@@ -381,6 +381,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
381evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 381evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
382evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 382evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
383evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 383evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
384evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
385evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
386evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
387evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
384evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 388evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
385evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 389evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
386evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 390evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c b/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c
index 1b1d3d9..24c45df 100644
--- a/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c
+++ b/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c
@@ -579,6 +579,8 @@ evas_software_xlib_outbuf_new_region_for_update(Outbuf *buf, int x, int y, int w
579 free(obr); 579 free(obr);
580 return NULL; 580 return NULL;
581 } 581 }
582 im->cache_entry.w = w;
583 im->cache_entry.h = h;
582 im->cache_entry.flags.alpha |= alpha ? 1 : 0; 584 im->cache_entry.flags.alpha |= alpha ? 1 : 0;
583 evas_cache_image_surface_alloc(&im->cache_entry, w, h); 585 evas_cache_image_surface_alloc(&im->cache_entry, w, h);
584 im->extended_info = obr; 586 im->extended_info = obr;
diff --git a/libraries/evas/src/modules/engines/wayland_egl/Evas_Engine_Wayland_Egl.h b/libraries/evas/src/modules/engines/wayland_egl/Evas_Engine_Wayland_Egl.h
new file mode 100644
index 0000000..92ffe25
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_egl/Evas_Engine_Wayland_Egl.h
@@ -0,0 +1,42 @@
1#ifndef _EVAS_ENGINE_WAYLAND_EGL_H
2#define _EVAS_ENGINE_WAYLAND_EGL_H
3
4#include <wayland-client.h>
5
6typedef struct _Evas_Engine_Info_Wayland_Egl Evas_Engine_Info_Wayland_Egl;
7
8struct _Evas_Engine_Info_Wayland_Egl
9{
10 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
11 /* at you and make nasty noises */
12 Evas_Engine_Info magic;
13
14 /* engine specific data & parameters it needs to set up */
15 struct {
16 struct wl_display *display;
17 struct wl_surface *surface;
18 int depth;
19 int screen;
20 int rotation;
21 unsigned int destination_alpha : 1;
22 } info;
23 /* engine specific function calls to query stuff about the destination */
24 /* engine (what visual & colormap & depth to use, performance info etc. */
25 struct {
26 int (*best_depth_get) (Evas_Engine_Info_Wayland_Egl *einfo);
27 } func;
28
29 struct {
30 void (*pre_swap) (void *data, Evas *e);
31 void (*post_swap) (void *data, Evas *e);
32
33 void *data; // data for callback calls
34 } callback;
35
36 /* non-blocking or blocking mode */
37 Evas_Engine_Render_Mode render_mode;
38
39 unsigned char vsync : 1; // does nothing right now
40 unsigned char indirect : 1; // use indirect rendering
41};
42#endif
diff --git a/libraries/evas/src/modules/engines/wayland_egl/Makefile.am b/libraries/evas/src/modules/engines/wayland_egl/Makefile.am
new file mode 100644
index 0000000..100614f
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_egl/Makefile.am
@@ -0,0 +1,47 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines/gl_common \
9@FREETYPE_CFLAGS@ \
10@PIXMAN_CFLAGS@ \
11@EINA_CFLAGS@ \
12@GL_EET_CFLAGS@ \
13@evas_engine_wayland_egl_cflags@
14
15if BUILD_ENGINE_WAYLAND_EGL
16
17WAYLAND_EGL_SOURCES = \
18evas_engine.c \
19evas_wl_main.c
20
21WAYLAND_EGL_LIBADD = @FREETYPE_LIBS@ @GL_EET_LIBS@ @EINA_LIBS@ @evas_engine_wayland_egl_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
22
23includes_HEADERS = Evas_Engine_Wayland_Egl.h
24includesdir = $(includedir)/evas-@VMAJ@
25
26if !EVAS_STATIC_BUILD_WAYLAND_EGL
27
28pkgdir = $(libdir)/evas/modules/engines/wayland_egl/$(MODULE_ARCH)
29pkg_LTLIBRARIES = module.la
30
31module_la_SOURCES = $(WAYLAND_EGL_SOURCES)
32module_la_LIBADD = $(WAYLAND_EGL_LIBADD) $(top_builddir)/src/lib/libevas.la
33module_la_LDFLAGS = -no-undefined -module -avoid-version
34module_la_LIBTOOLFLAGS = --tag=disable-static
35
36
37else
38
39noinst_LTLIBRARIES = libevas_engine_wayland_egl.la
40
41libevas_engine_wayland_egl_la_SOURCES = $(WAYLAND_EGL_SOURCES)
42libevas_engine_wayland_egl_la_LIBADD = $(WAYLAND_EGL_LIBADD)
43
44endif
45endif
46
47EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/wayland_egl/Makefile.in b/libraries/evas/src/modules/engines/wayland_egl/Makefile.in
new file mode 100644
index 0000000..0df0c63
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_egl/Makefile.in
@@ -0,0 +1,816 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/wayland_egl
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84@BUILD_ENGINE_WAYLAND_EGL_TRUE@am__DEPENDENCIES_1 = $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
85@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@libevas_engine_wayland_egl_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_wayland_egl_la_SOURCES_DIST = evas_engine.c \
87 evas_wl_main.c
88@BUILD_ENGINE_WAYLAND_EGL_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_WAYLAND_EGL_TRUE@ evas_wl_main.lo
90@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@am_libevas_engine_wayland_egl_la_OBJECTS = $(am__objects_1)
91libevas_engine_wayland_egl_la_OBJECTS = \
92 $(am_libevas_engine_wayland_egl_la_OBJECTS)
93AM_V_lt = $(am__v_lt_$(V))
94am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
95am__v_lt_0 = --silent
96@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@am_libevas_engine_wayland_egl_la_rpath =
97@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
98@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@ $(top_builddir)/src/lib/libevas.la
99am__module_la_SOURCES_DIST = evas_engine.c evas_wl_main.c
100@BUILD_ENGINE_WAYLAND_EGL_TRUE@am__objects_2 = \
101@BUILD_ENGINE_WAYLAND_EGL_TRUE@ module_la-evas_engine.lo \
102@BUILD_ENGINE_WAYLAND_EGL_TRUE@ module_la-evas_wl_main.lo
103@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@am_module_la_OBJECTS = $(am__objects_2)
104module_la_OBJECTS = $(am_module_la_OBJECTS)
105module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
106 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
107 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
108@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@am_module_la_rpath = -rpath \
109@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@ $(pkgdir)
110DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
111depcomp = $(SHELL) $(top_srcdir)/depcomp
112am__depfiles_maybe = depfiles
113am__mv = mv -f
114COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
115 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
116LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
117 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
118 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
119 $(AM_CFLAGS) $(CFLAGS)
120AM_V_CC = $(am__v_CC_$(V))
121am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
122am__v_CC_0 = @echo " CC " $@;
123AM_V_at = $(am__v_at_$(V))
124am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
125am__v_at_0 = @
126CCLD = $(CC)
127LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
128 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
129 $(AM_LDFLAGS) $(LDFLAGS) -o $@
130AM_V_CCLD = $(am__v_CCLD_$(V))
131am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
132am__v_CCLD_0 = @echo " CCLD " $@;
133AM_V_GEN = $(am__v_GEN_$(V))
134am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
135am__v_GEN_0 = @echo " GEN " $@;
136SOURCES = $(libevas_engine_wayland_egl_la_SOURCES) \
137 $(module_la_SOURCES)
138DIST_SOURCES = $(am__libevas_engine_wayland_egl_la_SOURCES_DIST) \
139 $(am__module_la_SOURCES_DIST)
140am__includes_HEADERS_DIST = Evas_Engine_Wayland_Egl.h
141HEADERS = $(includes_HEADERS)
142ETAGS = etags
143CTAGS = ctags
144DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
145ACLOCAL = @ACLOCAL@
146ALLOCA = @ALLOCA@
147AMTAR = @AMTAR@
148AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
149AR = @AR@
150AS = @AS@
151AUTOCONF = @AUTOCONF@
152AUTOHEADER = @AUTOHEADER@
153AUTOMAKE = @AUTOMAKE@
154AWK = @AWK@
155CC = @CC@
156CCDEPMODE = @CCDEPMODE@
157CFLAGS = @CFLAGS@
158CHECK_CFLAGS = @CHECK_CFLAGS@
159CHECK_LIBS = @CHECK_LIBS@
160CPP = @CPP@
161CPPFLAGS = @CPPFLAGS@
162CXX = @CXX@
163CXXCPP = @CXXCPP@
164CXXDEPMODE = @CXXDEPMODE@
165CXXFLAGS = @CXXFLAGS@
166CYGPATH_W = @CYGPATH_W@
167DEFS = @DEFS@
168DEPDIR = @DEPDIR@
169DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
170DIRECTFB_LIBS = @DIRECTFB_LIBS@
171DLLTOOL = @DLLTOOL@
172DSYMUTIL = @DSYMUTIL@
173DUMPBIN = @DUMPBIN@
174ECHO_C = @ECHO_C@
175ECHO_N = @ECHO_N@
176ECHO_T = @ECHO_T@
177ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
178ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
179EDB_CFLAGS = @EDB_CFLAGS@
180EDB_LIBS = @EDB_LIBS@
181EDJE_CFLAGS = @EDJE_CFLAGS@
182EDJE_LIBS = @EDJE_LIBS@
183EET_CFLAGS = @EET_CFLAGS@
184EET_LIBS = @EET_LIBS@
185EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
186EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
187EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
188EGREP = @EGREP@
189EINA_CFLAGS = @EINA_CFLAGS@
190EINA_LIBS = @EINA_LIBS@
191EVAS_CFLAGS = @EVAS_CFLAGS@
192EVAS_LIBS = @EVAS_LIBS@
193EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
194EVIL_CFLAGS = @EVIL_CFLAGS@
195EVIL_LIBS = @EVIL_LIBS@
196EXEEXT = @EXEEXT@
197FGREP = @FGREP@
198FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
199FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
200FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
201FREETYPE_LIBS = @FREETYPE_LIBS@
202FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
203FRIBIDI_LIBS = @FRIBIDI_LIBS@
204GL_EET_CFLAGS = @GL_EET_CFLAGS@
205GL_EET_LIBS = @GL_EET_LIBS@
206GREP = @GREP@
207HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
208HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
209INSTALL = @INSTALL@
210INSTALL_DATA = @INSTALL_DATA@
211INSTALL_PROGRAM = @INSTALL_PROGRAM@
212INSTALL_SCRIPT = @INSTALL_SCRIPT@
213INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
214LD = @LD@
215LDFLAGS = @LDFLAGS@
216LIBOBJS = @LIBOBJS@
217LIBS = @LIBS@
218LIBTOOL = @LIBTOOL@
219LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
220LINEBREAK_LIBS = @LINEBREAK_LIBS@
221LIPO = @LIPO@
222LN_S = @LN_S@
223LTLIBOBJS = @LTLIBOBJS@
224MAKEINFO = @MAKEINFO@
225MKDIR_P = @MKDIR_P@
226MODULE_ARCH = @MODULE_ARCH@
227NM = @NM@
228NMEDIT = @NMEDIT@
229OBJC = @OBJC@
230OBJCDEPMODE = @OBJCDEPMODE@
231OBJCFLAGS = @OBJCFLAGS@
232OBJDUMP = @OBJDUMP@
233OBJEXT = @OBJEXT@
234OTOOL = @OTOOL@
235OTOOL64 = @OTOOL64@
236PACKAGE = @PACKAGE@
237PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
238PACKAGE_NAME = @PACKAGE_NAME@
239PACKAGE_STRING = @PACKAGE_STRING@
240PACKAGE_TARNAME = @PACKAGE_TARNAME@
241PACKAGE_URL = @PACKAGE_URL@
242PACKAGE_VERSION = @PACKAGE_VERSION@
243PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@
247PNG_CFLAGS = @PNG_CFLAGS@
248PNG_LIBS = @PNG_LIBS@
249RANLIB = @RANLIB@
250SDL_CFLAGS = @SDL_CFLAGS@
251SDL_LIBS = @SDL_LIBS@
252SED = @SED@
253SET_MAKE = @SET_MAKE@
254SHELL = @SHELL@
255SHM_OPEN_LINK = @SHM_OPEN_LINK@
256STRIP = @STRIP@
257SVG_CFLAGS = @SVG_CFLAGS@
258SVG_LIBS = @SVG_LIBS@
259VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
260VALGRIND_LIBS = @VALGRIND_LIBS@
261VERSION = @VERSION@
262VMAJ = @VMAJ@
263WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
264WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
265WIN32_CFLAGS = @WIN32_CFLAGS@
266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
267XCB_CFLAGS = @XCB_CFLAGS@
268XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
269XCB_GL_LIBS = @XCB_GL_LIBS@
270XCB_LIBS = @XCB_LIBS@
271XEXT_CFLAGS = @XEXT_CFLAGS@
272XEXT_LIBS = @XEXT_LIBS@
273XMKMF = @XMKMF@
274X_CFLAGS = @X_CFLAGS@
275X_EXTRA_LIBS = @X_EXTRA_LIBS@
276X_LIBS = @X_LIBS@
277X_PRE_LIBS = @X_PRE_LIBS@
278abs_builddir = @abs_builddir@
279abs_srcdir = @abs_srcdir@
280abs_top_builddir = @abs_top_builddir@
281abs_top_srcdir = @abs_top_srcdir@
282ac_ct_CC = @ac_ct_CC@
283ac_ct_CXX = @ac_ct_CXX@
284ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
285ac_ct_OBJC = @ac_ct_OBJC@
286altivec_cflags = @altivec_cflags@
287am__include = @am__include@
288am__leading_dot = @am__leading_dot@
289am__quote = @am__quote@
290am__tar = @am__tar@
291am__untar = @am__untar@
292bindir = @bindir@
293build = @build@
294build_alias = @build_alias@
295build_cpu = @build_cpu@
296build_os = @build_os@
297build_vendor = @build_vendor@
298builddir = @builddir@
299datadir = @datadir@
300datarootdir = @datarootdir@
301dlopen_libs = @dlopen_libs@
302docdir = @docdir@
303dvidir = @dvidir@
304edje_cc = @edje_cc@
305efl_doxygen = @efl_doxygen@
306efl_have_doxygen = @efl_have_doxygen@
307evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
308evas_engine_buffer_libs = @evas_engine_buffer_libs@
309evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
310evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
311evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
312evas_engine_directfb_libs = @evas_engine_directfb_libs@
313evas_engine_fb_cflags = @evas_engine_fb_cflags@
314evas_engine_fb_libs = @evas_engine_fb_libs@
315evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
316evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
317evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
318evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
319evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
320evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
321evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
322evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
323evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
324evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
325evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
326evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
327evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
328evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
329evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
330evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
331evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
332evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
333evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
334evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
335evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
336evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
337evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
338evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
339evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
340evas_engine_software_sdl_cflags = @evas_engine_software_sdl_cflags@
341evas_engine_software_sdl_libs = @evas_engine_software_sdl_libs@
342evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
353evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
354evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
355evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
356evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
357evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
358evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
359evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
360evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
361evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
362evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
363evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
364evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
365evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
366evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
367evas_image_loader_png_libs = @evas_image_loader_png_libs@
368evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
369evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
370evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
371evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
372evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
373evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
374evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
375evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
376evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
377evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
378evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
379evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
380exec_prefix = @exec_prefix@
381have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
382have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
383have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
384have_evas_engine_software_x11 = @have_evas_engine_software_x11@
385have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
386have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
387have_lcov = @have_lcov@
388host = @host@
389host_alias = @host_alias@
390host_cpu = @host_cpu@
391host_os = @host_os@
392host_vendor = @host_vendor@
393htmldir = @htmldir@
394includedir = @includedir@
395infodir = @infodir@
396install_sh = @install_sh@
397libdir = @libdir@
398libexecdir = @libexecdir@
399localedir = @localedir@
400localstatedir = @localstatedir@
401lt_ECHO = @lt_ECHO@
402lt_enable_auto_import = @lt_enable_auto_import@
403mandir = @mandir@
404mkdir_p = @mkdir_p@
405oldincludedir = @oldincludedir@
406pdfdir = @pdfdir@
407pkgconfig_requires_private = @pkgconfig_requires_private@
408prefix = @prefix@
409program_transform_name = @program_transform_name@
410psdir = @psdir@
411pthread_cflags = @pthread_cflags@
412pthread_libs = @pthread_libs@
413release_info = @release_info@
414requirement_evas = @requirement_evas@
415sbindir = @sbindir@
416sharedstatedir = @sharedstatedir@
417srcdir = @srcdir@
418sysconfdir = @sysconfdir@
419target_alias = @target_alias@
420top_build_prefix = @top_build_prefix@
421top_builddir = @top_builddir@
422top_srcdir = @top_srcdir@
423version_info = @version_info@
424MAINTAINERCLEANFILES = Makefile.in
425AM_CPPFLAGS = \
426-I. \
427-I$(top_srcdir)/src/lib \
428-I$(top_srcdir)/src/lib/include \
429-I$(top_srcdir)/src/modules/engines/gl_common \
430@FREETYPE_CFLAGS@ \
431@PIXMAN_CFLAGS@ \
432@EINA_CFLAGS@ \
433@GL_EET_CFLAGS@ \
434@evas_engine_wayland_egl_cflags@
435
436@BUILD_ENGINE_WAYLAND_EGL_TRUE@WAYLAND_EGL_SOURCES = \
437@BUILD_ENGINE_WAYLAND_EGL_TRUE@evas_engine.c \
438@BUILD_ENGINE_WAYLAND_EGL_TRUE@evas_wl_main.c
439
440@BUILD_ENGINE_WAYLAND_EGL_TRUE@WAYLAND_EGL_LIBADD = @FREETYPE_LIBS@ @GL_EET_LIBS@ @EINA_LIBS@ @evas_engine_wayland_egl_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
441@BUILD_ENGINE_WAYLAND_EGL_TRUE@includes_HEADERS = Evas_Engine_Wayland_Egl.h
442@BUILD_ENGINE_WAYLAND_EGL_TRUE@includesdir = $(includedir)/evas-@VMAJ@
443@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@pkgdir = $(libdir)/evas/modules/engines/wayland_egl/$(MODULE_ARCH)
444@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@pkg_LTLIBRARIES = module.la
445@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_SOURCES = $(WAYLAND_EGL_SOURCES)
446@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_LIBADD = $(WAYLAND_EGL_LIBADD) $(top_builddir)/src/lib/libevas.la
447@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_LDFLAGS = -no-undefined -module -avoid-version
448@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
449@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@noinst_LTLIBRARIES = libevas_engine_wayland_egl.la
450@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@libevas_engine_wayland_egl_la_SOURCES = $(WAYLAND_EGL_SOURCES)
451@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@libevas_engine_wayland_egl_la_LIBADD = $(WAYLAND_EGL_LIBADD)
452EXTRA_DIST = evas_engine.h
453all: all-am
454
455.SUFFIXES:
456.SUFFIXES: .c .lo .o .obj
457$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
458 @for dep in $?; do \
459 case '$(am__configure_deps)' in \
460 *$$dep*) \
461 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
462 && { if test -f $@; then exit 0; else break; fi; }; \
463 exit 1;; \
464 esac; \
465 done; \
466 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/wayland_egl/Makefile'; \
467 $(am__cd) $(top_srcdir) && \
468 $(AUTOMAKE) --gnu src/modules/engines/wayland_egl/Makefile
469.PRECIOUS: Makefile
470Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
471 @case '$?' in \
472 *config.status*) \
473 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
474 *) \
475 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
476 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
477 esac;
478
479$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
480 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
481
482$(top_srcdir)/configure: $(am__configure_deps)
483 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
484$(ACLOCAL_M4): $(am__aclocal_m4_deps)
485 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
486$(am__aclocal_m4_deps):
487
488clean-noinstLTLIBRARIES:
489 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
490 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
491 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
492 test "$$dir" != "$$p" || dir=.; \
493 echo "rm -f \"$${dir}/so_locations\""; \
494 rm -f "$${dir}/so_locations"; \
495 done
496install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
497 @$(NORMAL_INSTALL)
498 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
499 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
500 list2=; for p in $$list; do \
501 if test -f $$p; then \
502 list2="$$list2 $$p"; \
503 else :; fi; \
504 done; \
505 test -z "$$list2" || { \
506 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
507 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
508 }
509
510uninstall-pkgLTLIBRARIES:
511 @$(NORMAL_UNINSTALL)
512 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
513 for p in $$list; do \
514 $(am__strip_dir) \
515 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
516 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
517 done
518
519clean-pkgLTLIBRARIES:
520 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
521 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
522 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
523 test "$$dir" != "$$p" || dir=.; \
524 echo "rm -f \"$${dir}/so_locations\""; \
525 rm -f "$${dir}/so_locations"; \
526 done
527libevas_engine_wayland_egl.la: $(libevas_engine_wayland_egl_la_OBJECTS) $(libevas_engine_wayland_egl_la_DEPENDENCIES)
528 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_wayland_egl_la_rpath) $(libevas_engine_wayland_egl_la_OBJECTS) $(libevas_engine_wayland_egl_la_LIBADD) $(LIBS)
529module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
530 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
531
532mostlyclean-compile:
533 -rm -f *.$(OBJEXT)
534
535distclean-compile:
536 -rm -f *.tab.c
537
538@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
539@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_wl_main.Plo@am__quote@
540@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
541@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_wl_main.Plo@am__quote@
542
543.c.o:
544@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
545@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
546@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
547@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
548@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
549@am__fastdepCC_FALSE@ $(COMPILE) -c $<
550
551.c.obj:
552@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
553@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
554@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
555@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
556@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
557@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
558
559.c.lo:
560@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
561@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
562@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
563@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
564@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
565@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
566
567module_la-evas_engine.lo: evas_engine.c
568@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
569@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
570@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
571@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
572@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
573@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
574
575module_la-evas_wl_main.lo: evas_wl_main.c
576@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_wl_main.lo -MD -MP -MF $(DEPDIR)/module_la-evas_wl_main.Tpo -c -o module_la-evas_wl_main.lo `test -f 'evas_wl_main.c' || echo '$(srcdir)/'`evas_wl_main.c
577@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_wl_main.Tpo $(DEPDIR)/module_la-evas_wl_main.Plo
578@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
579@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_wl_main.c' object='module_la-evas_wl_main.lo' libtool=yes @AMDEPBACKSLASH@
580@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
581@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_wl_main.lo `test -f 'evas_wl_main.c' || echo '$(srcdir)/'`evas_wl_main.c
582
583mostlyclean-libtool:
584 -rm -f *.lo
585
586clean-libtool:
587 -rm -rf .libs _libs
588install-includesHEADERS: $(includes_HEADERS)
589 @$(NORMAL_INSTALL)
590 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
591 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
592 for p in $$list; do \
593 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
594 echo "$$d$$p"; \
595 done | $(am__base_list) | \
596 while read files; do \
597 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
598 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
599 done
600
601uninstall-includesHEADERS:
602 @$(NORMAL_UNINSTALL)
603 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
604 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
605 test -n "$$files" || exit 0; \
606 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
607 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
608
609ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
610 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
611 unique=`for i in $$list; do \
612 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
613 done | \
614 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
615 END { if (nonempty) { for (i in files) print i; }; }'`; \
616 mkid -fID $$unique
617tags: TAGS
618
619TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
620 $(TAGS_FILES) $(LISP)
621 set x; \
622 here=`pwd`; \
623 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
624 unique=`for i in $$list; do \
625 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
626 done | \
627 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
628 END { if (nonempty) { for (i in files) print i; }; }'`; \
629 shift; \
630 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
631 test -n "$$unique" || unique=$$empty_fix; \
632 if test $$# -gt 0; then \
633 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
634 "$$@" $$unique; \
635 else \
636 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
637 $$unique; \
638 fi; \
639 fi
640ctags: CTAGS
641CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
642 $(TAGS_FILES) $(LISP)
643 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
644 unique=`for i in $$list; do \
645 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
646 done | \
647 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
648 END { if (nonempty) { for (i in files) print i; }; }'`; \
649 test -z "$(CTAGS_ARGS)$$unique" \
650 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
651 $$unique
652
653GTAGS:
654 here=`$(am__cd) $(top_builddir) && pwd` \
655 && $(am__cd) $(top_srcdir) \
656 && gtags -i $(GTAGS_ARGS) "$$here"
657
658distclean-tags:
659 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
660
661distdir: $(DISTFILES)
662 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
663 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
664 list='$(DISTFILES)'; \
665 dist_files=`for file in $$list; do echo $$file; done | \
666 sed -e "s|^$$srcdirstrip/||;t" \
667 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
668 case $$dist_files in \
669 */*) $(MKDIR_P) `echo "$$dist_files" | \
670 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
671 sort -u` ;; \
672 esac; \
673 for file in $$dist_files; do \
674 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
675 if test -d $$d/$$file; then \
676 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
677 if test -d "$(distdir)/$$file"; then \
678 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
679 fi; \
680 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
681 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
682 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
683 fi; \
684 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
685 else \
686 test -f "$(distdir)/$$file" \
687 || cp -p $$d/$$file "$(distdir)/$$file" \
688 || exit 1; \
689 fi; \
690 done
691check-am: all-am
692check: check-am
693all-am: Makefile $(LTLIBRARIES) $(HEADERS)
694installdirs:
695 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
696 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
697 done
698install: install-am
699install-exec: install-exec-am
700install-data: install-data-am
701uninstall: uninstall-am
702
703install-am: all-am
704 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
705
706installcheck: installcheck-am
707install-strip:
708 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
709 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
710 `test -z '$(STRIP)' || \
711 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
712mostlyclean-generic:
713
714clean-generic:
715
716distclean-generic:
717 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
718 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
719
720maintainer-clean-generic:
721 @echo "This command is intended for maintainers to use"
722 @echo "it deletes files that may require special tools to rebuild."
723 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
724clean: clean-am
725
726clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
727 clean-pkgLTLIBRARIES mostlyclean-am
728
729distclean: distclean-am
730 -rm -rf ./$(DEPDIR)
731 -rm -f Makefile
732distclean-am: clean-am distclean-compile distclean-generic \
733 distclean-tags
734
735dvi: dvi-am
736
737dvi-am:
738
739html: html-am
740
741html-am:
742
743info: info-am
744
745info-am:
746
747install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
748
749install-dvi: install-dvi-am
750
751install-dvi-am:
752
753install-exec-am:
754
755install-html: install-html-am
756
757install-html-am:
758
759install-info: install-info-am
760
761install-info-am:
762
763install-man:
764
765install-pdf: install-pdf-am
766
767install-pdf-am:
768
769install-ps: install-ps-am
770
771install-ps-am:
772
773installcheck-am:
774
775maintainer-clean: maintainer-clean-am
776 -rm -rf ./$(DEPDIR)
777 -rm -f Makefile
778maintainer-clean-am: distclean-am maintainer-clean-generic
779
780mostlyclean: mostlyclean-am
781
782mostlyclean-am: mostlyclean-compile mostlyclean-generic \
783 mostlyclean-libtool
784
785pdf: pdf-am
786
787pdf-am:
788
789ps: ps-am
790
791ps-am:
792
793uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
794
795.MAKE: install-am install-strip
796
797.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
798 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
799 ctags distclean distclean-compile distclean-generic \
800 distclean-libtool distclean-tags distdir dvi dvi-am html \
801 html-am info info-am install install-am install-data \
802 install-data-am install-dvi install-dvi-am install-exec \
803 install-exec-am install-html install-html-am \
804 install-includesHEADERS install-info install-info-am \
805 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
806 install-ps install-ps-am install-strip installcheck \
807 installcheck-am installdirs maintainer-clean \
808 maintainer-clean-generic mostlyclean mostlyclean-compile \
809 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
810 tags uninstall uninstall-am uninstall-includesHEADERS \
811 uninstall-pkgLTLIBRARIES
812
813
814# Tell versions [3.59,3.63) of GNU make to not export all variables.
815# Otherwise a system limit (for SysV at least) may be exceeded.
816.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/wayland_egl/evas_engine.c b/libraries/evas/src/modules/engines/wayland_egl/evas_engine.c
new file mode 100644
index 0000000..d2a6a0d
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_egl/evas_engine.c
@@ -0,0 +1,3174 @@
1#include "evas_common.h" /* Also includes international specific stuff */
2#include "evas_engine.h"
3
4#ifdef HAVE_DLSYM
5# include <dlfcn.h> /* dlopen,dlclose,etc */
6#else
7# error gl_x11 should not get compiled if dlsym is not found on the system!
8#endif
9
10#define EVAS_GL_NO_GL_H_CHECK 1
11#include "Evas_GL.h"
12
13typedef struct _Render_Engine Render_Engine;
14typedef struct _Render_Engine_GL_Surface Render_Engine_GL_Surface;
15typedef struct _Render_Engine_GL_Context Render_Engine_GL_Context;
16typedef struct _Render_Engine_GL_Resource Render_Engine_GL_Resource;
17typedef struct _Extension_Entry Extension_Entry;
18
19struct _Render_Engine
20{
21 Evas_GL_Wl_Window *win;
22 Evas_Engine_Info_Wayland_Egl *info;
23 Evas *evas;
24 Tilebuf *tb;
25 int end;
26 int w, h;
27 int vsync;
28
29};
30
31struct _Render_Engine_GL_Surface
32{
33 int initialized;
34 int fbo_attached;
35 int w, h;
36 int depth_bits;
37 int stencil_bits;
38
39 // Render target texture/buffers
40 GLuint rt_tex;
41 GLint rt_internal_fmt;
42 GLenum rt_fmt;
43 GLuint rb_depth;
44 GLenum rb_depth_fmt;
45 GLuint rb_stencil;
46 GLenum rb_stencil_fmt;
47
48 Render_Engine_GL_Context *current_ctx;
49};
50
51struct _Render_Engine_GL_Context
52{
53 int initialized;
54 EGLContext context;
55 GLuint context_fbo;
56 GLuint current_fbo;
57
58 Render_Engine_GL_Surface *current_sfc;
59};
60
61// Resources used per thread
62struct _Render_Engine_GL_Resource
63{
64 // Resource context/surface per Thread in TLS for evasgl use
65 EGLContext context;
66 EGLSurface surface;
67};
68
69// Extension Handling
70struct _Extension_Entry
71{
72 const char *name;
73 const char *real_name;
74 int supported;
75};
76
77static int initted = 0;
78static int gl_wins = 0;
79static Render_Engine_GL_Context *current_evgl_ctx;
80static Render_Engine *current_engine;
81
82static char _gl_ext_string[1024];
83static char _evasgl_ext_string[1024];
84
85// Resource context/surface per Thread in TLS for evasgl use
86static Eina_TLS resource_key;
87static Eina_List *resource_list;
88LK(resource_lock);
89
90typedef void (*_eng_fn) (void);
91typedef _eng_fn (*glsym_func_eng_fn) ();
92typedef void (*glsym_func_void) ();
93typedef void *(*glsym_func_void_ptr) ();
94typedef int (*glsym_func_int) ();
95typedef unsigned int (*glsym_func_uint) ();
96typedef unsigned char (*glsym_func_uchar) ();
97typedef unsigned char *(*glsym_func_uchar_ptr) ();
98typedef const char *(*glsym_func_const_char_ptr) ();
99
100#ifndef EGL_NATIVE_PIXMAP_KHR
101# define EGL_NATIVE_PIXMAP_KHR 0x30b0
102#endif
103_eng_fn (*glsym_eglGetProcAddress) (const char *a) = NULL;
104void (*glsym_eglBindTexImage) (EGLDisplay a, EGLSurface b, int c) = NULL;
105void (*glsym_eglReleaseTexImage) (EGLDisplay a, EGLSurface b, int c) = NULL;
106void *(*glsym_eglCreateImage) (EGLDisplay a, EGLContext b, EGLenum c, EGLClientBuffer d, const int *e) = NULL;
107void (*glsym_eglDestroyImage) (EGLDisplay a, void *b) = NULL;
108void (*glsym_glEGLImageTargetTexture2DOES) (int a, void *b) = NULL;
109void (*glsym_glEGLImageTargetRenderbufferStorageOES) (int a, void *b) = NULL;
110void *(*glsym_eglMapImageSEC) (void *a, void *b) = NULL;
111unsigned int (*glsym_eglUnmapImageSEC) (void *a, void *b) = NULL;
112const char *(*glsym_eglQueryString) (EGLDisplay a, int name) = NULL;
113
114unsigned int (*glsym_eglLockSurface) (EGLDisplay a, EGLSurface b, const int *attrib_list) = NULL;
115unsigned int (*glsym_eglUnlockSurface) (EGLDisplay a, EGLSurface b) = NULL;
116
117// GLES2 Extensions
118void (*glsym_glGetProgramBinaryOES) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary) = NULL;
119void (*glsym_glProgramBinaryOES) (GLuint program, GLenum binaryFormat, const void *binary, GLint length) = NULL;
120void* (*glsym_glMapBufferOES) (GLenum target, GLenum access) = NULL;
121unsigned char (*glsym_glUnmapBufferOES) (GLenum target) = NULL;
122void (*glsym_glGetBufferPointervOES) (GLenum target, GLenum pname, void** params) = NULL;
123void (*glsym_glTexImage3DOES) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels) = NULL;
124void (*glsym_glTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels) = NULL;
125void (*glsym_glCopyTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) = NULL;
126void (*glsym_glCompressedTexImage3DOES) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data) = NULL;
127void (*glsym_glCompressedTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data) = NULL;
128void (*glsym_glFramebufferTexture3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) = NULL;
129void (*glsym_glGetPerfMonitorGroupsAMD) (GLint* numGroups, GLsizei groupsSize, GLuint* groups) = NULL;
130void (*glsym_glGetPerfMonitorCountersAMD) (GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters) = NULL;
131void (*glsym_glGetPerfMonitorGroupStringAMD) (GLuint group, GLsizei bufSize, GLsizei* length, char* groupString) = NULL;
132void (*glsym_glGetPerfMonitorCounterStringAMD) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, char* counterString) = NULL;
133void (*glsym_glGetPerfMonitorCounterInfoAMD) (GLuint group, GLuint counter, GLenum pname, void* data) = NULL;
134void (*glsym_glGenPerfMonitorsAMD) (GLsizei n, GLuint* monitors) = NULL;
135void (*glsym_glDeletePerfMonitorsAMD) (GLsizei n, GLuint* monitors) = NULL;
136void (*glsym_glSelectPerfMonitorCountersAMD) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList) = NULL;
137void (*glsym_glBeginPerfMonitorAMD) (GLuint monitor) = NULL;
138void (*glsym_glEndPerfMonitorAMD) (GLuint monitor) = NULL;
139void (*glsym_glGetPerfMonitorCounterDataAMD) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten) = NULL;
140void (*glsym_glDiscardFramebufferEXT) (GLenum target, GLsizei numAttachments, const GLenum* attachments) = NULL;
141void (*glsym_glMultiDrawArraysEXT) (GLenum mode, GLint* first, GLsizei* count, GLsizei primcount) = NULL;
142void (*glsym_glMultiDrawElementsEXT) (GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount) = NULL;
143void (*glsym_glDeleteFencesNV) (GLsizei n, const GLuint* fences) = NULL;
144void (*glsym_glGenFencesNV) (GLsizei n, GLuint* fences) = NULL;
145unsigned char (*glsym_glIsFenceNV) (GLuint fence) = NULL;
146unsigned char (*glsym_glTestFenceNV) (GLuint fence) = NULL;
147void (*glsym_glGetFenceivNV) (GLuint fence, GLenum pname, GLint* params) = NULL;
148void (*glsym_glFinishFenceNV) (GLuint fence) = NULL;
149void (*glsym_glSetFenceNV) (GLuint, GLenum) = NULL;
150void (*glsym_glGetDriverControlsQCOM) (GLint* num, GLsizei size, GLuint* driverControls) = NULL;
151void (*glsym_glGetDriverControlStringQCOM) (GLuint driverControl, GLsizei bufSize, GLsizei* length, char* driverControlString) = NULL;
152void (*glsym_glEnableDriverControlQCOM) (GLuint driverControl) = NULL;
153void (*glsym_glDisableDriverControlQCOM) (GLuint driverControl) = NULL;
154void (*glsym_glExtGetTexturesQCOM) (GLuint* textures, GLint maxTextures, GLint* numTextures) = NULL;
155void (*glsym_glExtGetBuffersQCOM) (GLuint* buffers, GLint maxBuffers, GLint* numBuffers) = NULL;
156void (*glsym_glExtGetRenderbuffersQCOM) (GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers) = NULL;
157void (*glsym_glExtGetFramebuffersQCOM) (GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers) = NULL;
158void (*glsym_glExtGetTexLevelParameterivQCOM) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params) = NULL;
159void (*glsym_glExtTexObjectStateOverrideiQCOM) (GLenum target, GLenum pname, GLint param) = NULL;
160void (*glsym_glExtGetTexSubImageQCOM) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void* texels) = NULL;
161void (*glsym_glExtGetBufferPointervQCOM) (GLenum target, void** params) = NULL;
162void (*glsym_glExtGetShadersQCOM) (GLuint* shaders, GLint maxShaders, GLint* numShaders) = NULL;
163void (*glsym_glExtGetProgramsQCOM) (GLuint* programs, GLint maxPrograms, GLint* numPrograms) = NULL;
164unsigned char (*glsym_glExtIsProgramBinaryQCOM) (GLuint program) = NULL;
165void (*glsym_glExtGetProgramBinarySourceQCOM) (GLuint program, GLenum shadertype, char* source, GLint* length) = NULL;
166
167
168//------ GLES 2.0 Extensions supported in EvasGL -----//
169static Extension_Entry _gl_ext_entries[] = {
170 //--- Function Extensions ---//
171 { "GL_OES_get_program_binary", "get_program_binary", 0 },
172 { "GL_OES_mapbuffer", "mapbuffer", 0 },
173 { "GL_OES_texture_3D", "texture_3D", 0 },
174 { "AMD_performance_monitor", "AMD_performance_monitor", 0 },
175 { "GL_EXT_discard_framebuffer", "discard_framebuffer", 0 },
176 { "GL_EXT_multi_draw_arrays", "multi_draw_arrays", 0 },
177 { "GL_NV_fence", "NV_fence", 0 },
178 { "GL_QCOM_driver_control", "QCOM_driver_control", 0 },
179 { "GL_QCOM_extended_get", "QCOM_extended_get", 0 },
180 { "GL_QCOM_extended_get2", "QCOM_extended_get2", 0 },
181
182 //--- Define Extensions ---//
183 { "GL_OES_compressed_ETC1_RGB8_texture", "compressed_ETC1_RGB8_texture", 0 },
184 { "GL_OES_compressed_paletted_texture", "compressed_paletted_texture", 0 },
185 { "GL_OES_depth24", "depth24", 0 },
186 { "GL_OES_depth32", "depth32", 0 },
187 { "GL_OES_EvasGL_image", "EGL_image", 0 },
188 { "GL_OES_packed_depth_stencil", "packed_depth_stencil", 0 },
189 { "GL_OES_rgb8_rgba8", "rgb8_rgba8", 0 },
190 { "GL_OES_standard_derivatives", "standard_derivatives", 0 },
191 { "GL_OES_stencil1", "stencil1", 0 },
192 { "GL_OES_stencil4", "stencil4", 0 },
193 { "GL_OES_texture_float", "texture_float", 0 },
194 { "GL_OES_texture_half_float", "texture_half_float", 0 },
195 { "GL_OES_texture_half_float_linear", "texture_half_float_linear", 0 },
196 { "GL_OES_texture_npot", "texture_npot", 0 },
197 { "GL_OES_vertex_half_float", "vertex_half_float", 0 },
198 { "GL_OES_vertex_type_10_10_10_2", "vertex_type_10_10_10_2", 0 },
199 { "GL_AMD_compressed_3DC_texture", "compressed_3DC_texture", 0 },
200 { "GL_AMD_compressed_ATC_texture", "compressed_ATC_texture", 0 },
201 { "GL_AMD_program_binary_Z400", "program_binary_Z400", 0 },
202 { "GL_EXT_blend_minmax", "blend_minmax", 0 },
203 { "GL_EXT_read_format_bgra", "read_format_bgra", 0 },
204 { "GL_EXT_texture_filter_anisotropic", "texture_filter_anisotrophic", 0 },
205 { "GL_EXT_texture_format_BGRA8888", "texture_format_BGRA8888", 0 },
206 { "GL_EXT_texture_type_2_10_10_10_REV", "texture_type_2_10_10_10_rev", 0 },
207 { "GL_IMG_program_binary", "IMG_program_binary", 0 },
208 { "GL_IMG_read_format", "IMG_read_format", 0 },
209 { "GL_IMG_shader_binary", "IMG_shader_binary", 0 },
210 { "GL_IMG_texture_compression_pvrtc", "IMG_texture_compression_pvrtc", 0 },
211 { "GL_QCOM_perfmon_global_mode", "QCOM_perfmon_global_mode", 0 },
212 { "GL_QCOM_writeonly_rendering", "QCOM_writeonly_rendering", 0 },
213 { NULL, NULL, 0}
214};
215
216//------ Extensions supported in EvasGL -----//
217static Extension_Entry _evasgl_ext_entries[] = {
218 { "EvasGL_KHR_image", "EGL_KHR_image", 0 },
219 { "EvasGL_KHR_vg_parent_image", "EGL_KHR_vg_parent_image", 0 },
220 { "EvasGL_KHR_gl_texture_2D_image", "EGL_KHR_gl_texture_2D_image", 0 },
221 { "EvasGL_KHR_gl_texture_cubemap_image", "EGL_KHR_gl_texture_cubemap_image", 0 },
222 { "EvasGL_KHR_gl_texture_3D_image", "EGL_KHR_gl_texture_3D_image", 0 },
223 { "EvasGL_KHR_gl_renderbuffer_image", "EGL_KHR_gl_renderbuffer_image", 0 },
224 { NULL, NULL, 0 }
225};
226
227static void
228_sym_init(void)
229{
230 static int done = 0;
231
232 if (done) return;
233
234#define FINDSYM(dst, sym, typ) \
235 if ((!dst) && (glsym_eglGetProcAddress)) dst = (typ)glsym_eglGetProcAddress(sym); \
236 if (!dst) dst = (typ)dlsym(RTLD_DEFAULT, sym)
237
238 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddress", glsym_func_eng_fn);
239 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddressEXT", glsym_func_eng_fn);
240 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddressARB", glsym_func_eng_fn);
241 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddressKHR", glsym_func_eng_fn);
242
243 FINDSYM(glsym_eglBindTexImage, "eglBindTexImage", glsym_func_void);
244 FINDSYM(glsym_eglBindTexImage, "eglBindTexImageEXT", glsym_func_void);
245 FINDSYM(glsym_eglBindTexImage, "eglBindTexImageARB", glsym_func_void);
246 FINDSYM(glsym_eglBindTexImage, "eglBindTexImageKHR", glsym_func_void);
247
248 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImage", glsym_func_void);
249 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImageEXT", glsym_func_void);
250 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImageARB", glsym_func_void);
251 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImageKHR", glsym_func_void);
252
253 FINDSYM(glsym_eglCreateImage, "eglCreateImage", glsym_func_void_ptr);
254 FINDSYM(glsym_eglCreateImage, "eglCreateImageEXT", glsym_func_void_ptr);
255 FINDSYM(glsym_eglCreateImage, "eglCreateImageARB", glsym_func_void_ptr);
256 FINDSYM(glsym_eglCreateImage, "eglCreateImageKHR", glsym_func_void_ptr);
257
258 FINDSYM(glsym_eglDestroyImage, "eglDestroyImage", glsym_func_void);
259 FINDSYM(glsym_eglDestroyImage, "eglDestroyImageEXT", glsym_func_void);
260 FINDSYM(glsym_eglDestroyImage, "eglDestroyImageARB", glsym_func_void);
261 FINDSYM(glsym_eglDestroyImage, "eglDestroyImageKHR", glsym_func_void);
262
263 FINDSYM(glsym_glEGLImageTargetTexture2DOES, "glEGLImageTargetTexture2DOES", glsym_func_void);
264
265 FINDSYM(glsym_glEGLImageTargetRenderbufferStorageOES, "glEGLImageTargetRenderbufferStorageOES", glsym_func_void);
266
267 FINDSYM(glsym_eglMapImageSEC, "eglMapImageSEC", glsym_func_void_ptr);
268 FINDSYM(glsym_eglUnmapImageSEC, "eglUnmapImageSEC", glsym_func_uint);
269
270 FINDSYM(glsym_eglQueryString, "eglQueryString", glsym_func_const_char_ptr);
271
272 FINDSYM(glsym_eglLockSurface, "eglLockSurface", glsym_func_uint);
273 FINDSYM(glsym_eglLockSurface, "eglLockSurfaceEXT", glsym_func_uint);
274 FINDSYM(glsym_eglLockSurface, "eglLockSurfaceARB", glsym_func_uint);
275 FINDSYM(glsym_eglLockSurface, "eglLockSurfaceKHR", glsym_func_uint);
276
277 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurface", glsym_func_uint);
278 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurfaceEXT", glsym_func_uint);
279 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurfaceARB", glsym_func_uint);
280 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurfaceKHR", glsym_func_uint);
281
282 //----------- GLES 2.0 Extensions ------------//
283 // If the symbol's not found, they get set to NULL
284 // If one of the functions in the extension exists, the extension in supported
285 /* GL_OES_get_program_binary */
286 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinary", glsym_func_void);
287 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinaryEXT", glsym_func_void);
288 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinaryARB", glsym_func_void);
289 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinaryOES", glsym_func_void);
290
291 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinary", glsym_func_void);
292 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinaryEXT", glsym_func_void);
293 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinaryARB", glsym_func_void);
294 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinaryOES", glsym_func_void);
295
296 // Check the first function to see if the extension is supported...
297 if (glsym_glGetProgramBinaryOES) _gl_ext_entries[0].supported = 1;
298
299 /* GL_OES_mapbuffer */
300 FINDSYM(glsym_glMapBufferOES, "glMapBuffer", glsym_func_void_ptr);
301 FINDSYM(glsym_glMapBufferOES, "glMapBufferEXT", glsym_func_void_ptr);
302 FINDSYM(glsym_glMapBufferOES, "glMapBufferARB", glsym_func_void_ptr);
303 FINDSYM(glsym_glMapBufferOES, "glMapBufferOES", glsym_func_void_ptr);
304
305 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBuffer", glsym_func_uchar);
306 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBufferEXT", glsym_func_uchar);
307 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBufferARB", glsym_func_uchar);
308 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBufferOES", glsym_func_uchar);
309
310 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointerv", glsym_func_void);
311 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointervEXT", glsym_func_void);
312 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointervARB", glsym_func_void);
313 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointervOES", glsym_func_void);
314
315 if (glsym_glMapBufferOES) _gl_ext_entries[1].supported = 1;
316
317 /* GL_OES_texture_3D */
318 FINDSYM(glsym_glTexImage3DOES, "glTexImage3D", glsym_func_void);
319 FINDSYM(glsym_glTexImage3DOES, "glTexImage3DEXT", glsym_func_void);
320 FINDSYM(glsym_glTexImage3DOES, "glTexImage3DARB", glsym_func_void);
321 FINDSYM(glsym_glTexImage3DOES, "glTexImage3DOES", glsym_func_void);
322
323 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3D", glsym_func_void);
324 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3DEXT", glsym_func_void);
325 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3DARB", glsym_func_void);
326 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3DOES", glsym_func_void);
327
328 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3D", glsym_func_void);
329 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3DARB", glsym_func_void);
330 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3DEXT", glsym_func_void);
331 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3DOES", glsym_func_void);
332
333 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3D", glsym_func_void);
334 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3DARB", glsym_func_void);
335 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3DEXT", glsym_func_void);
336 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3DOES", glsym_func_void);
337
338 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3D", glsym_func_void);
339 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3DARB", glsym_func_void);
340 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3DEXT", glsym_func_void);
341 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3DOES", glsym_func_void);
342
343 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3D", glsym_func_void);
344 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3DARB", glsym_func_void);
345 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3DEXT", glsym_func_void);
346 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3DOES", glsym_func_void);
347
348 if (glsym_glTexSubImage3DOES) _gl_ext_entries[2].supported = 1;
349
350 /* AMD_performance_monitor */
351 FINDSYM(glsym_glGetPerfMonitorGroupsAMD, "glGetPerfMonitorGroupsAMD", glsym_func_void);
352 FINDSYM(glsym_glGetPerfMonitorCountersAMD, "glGetPerfMonitorCountersAMD", glsym_func_void);
353 FINDSYM(glsym_glGetPerfMonitorGroupStringAMD, "glGetPerfMonitorGroupStringAMD", glsym_func_void);
354 FINDSYM(glsym_glGetPerfMonitorCounterStringAMD, "glGetPerfMonitorCounterStringAMD", glsym_func_void);
355 FINDSYM(glsym_glGetPerfMonitorCounterInfoAMD, "glGetPerfMonitorCounterInfoAMD", glsym_func_void);
356 FINDSYM(glsym_glGenPerfMonitorsAMD, "glGenPerfMonitorsAMD", glsym_func_void);
357 FINDSYM(glsym_glDeletePerfMonitorsAMD, "glDeletePerfMonitorsAMD", glsym_func_void);
358 FINDSYM(glsym_glSelectPerfMonitorCountersAMD, "glSelectPerfMonitorCountersAMD", glsym_func_void);
359 FINDSYM(glsym_glBeginPerfMonitorAMD, "glBeginPerfMonitorAMD", glsym_func_void);
360 FINDSYM(glsym_glEndPerfMonitorAMD, "glEndPerfMonitorAMD", glsym_func_void);
361 FINDSYM(glsym_glGetPerfMonitorCounterDataAMD, "glGetPerfMonitorCounterDataAMD", glsym_func_void);
362
363 if (glsym_glGetPerfMonitorGroupsAMD) _gl_ext_entries[3].supported = 1;
364
365 /* GL_EXT_discard_framebuffer */
366 FINDSYM(glsym_glDiscardFramebufferEXT, "glDiscardFramebuffer", glsym_func_void);
367 FINDSYM(glsym_glDiscardFramebufferEXT, "glDiscardFramebufferARB", glsym_func_void);
368 FINDSYM(glsym_glDiscardFramebufferEXT, "glDiscardFramebufferEXT", glsym_func_void);
369
370 if (glsym_glDiscardFramebufferEXT) _gl_ext_entries[4].supported = 1;
371
372 /* GL_EXT_multi_draw_arrays */
373 FINDSYM(glsym_glMultiDrawArraysEXT, "glMultiDrawArrays", glsym_func_void);
374 FINDSYM(glsym_glMultiDrawArraysEXT, "glMultiDrawArraysARB", glsym_func_void);
375 FINDSYM(glsym_glMultiDrawArraysEXT, "glMultiDrawArraysEXT", glsym_func_void);
376
377 FINDSYM(glsym_glMultiDrawElementsEXT, "glMultiDrawElements", glsym_func_void);
378 FINDSYM(glsym_glMultiDrawElementsEXT, "glMultiDrawElementsARB", glsym_func_void);
379 FINDSYM(glsym_glMultiDrawElementsEXT, "glMultiDrawElementsEXT", glsym_func_void);
380
381 if (glsym_glMultiDrawArraysEXT) _gl_ext_entries[5].supported = 1;
382
383 /* GL_NV_fence */
384 FINDSYM(glsym_glDeleteFencesNV, "glDeleteFencesNV", glsym_func_void);
385 FINDSYM(glsym_glGenFencesNV, "glGenFencesNV", glsym_func_void);
386 FINDSYM(glsym_glIsFenceNV, "glIsFenceNV", glsym_func_uchar);
387 FINDSYM(glsym_glTestFenceNV, "glTestFenceNV", glsym_func_uchar);
388 FINDSYM(glsym_glGetFenceivNV, "glGetFenceivNV", glsym_func_void);
389 FINDSYM(glsym_glFinishFenceNV, "glFinishFenceNV", glsym_func_void);
390 FINDSYM(glsym_glSetFenceNV, "glSetFenceNV", glsym_func_void);
391
392 if (glsym_glDeleteFencesNV) _gl_ext_entries[6].supported = 1;
393
394 /* GL_QCOM_driver_control */
395 FINDSYM(glsym_glGetDriverControlsQCOM, "glGetDriverControlsQCOM", glsym_func_void);
396 FINDSYM(glsym_glGetDriverControlStringQCOM, "glGetDriverControlStringQCOM", glsym_func_void);
397 FINDSYM(glsym_glEnableDriverControlQCOM, "glEnableDriverControlQCOM", glsym_func_void);
398 FINDSYM(glsym_glDisableDriverControlQCOM, "glDisableDriverControlQCOM", glsym_func_void);
399
400 if (glsym_glGetDriverControlsQCOM) _gl_ext_entries[7].supported = 1;
401
402 /* GL_QCOM_extended_get */
403 FINDSYM(glsym_glExtGetTexturesQCOM, "glExtGetTexturesQCOM", glsym_func_void);
404 FINDSYM(glsym_glExtGetBuffersQCOM, "glExtGetBuffersQCOM", glsym_func_void);
405 FINDSYM(glsym_glExtGetRenderbuffersQCOM, "glExtGetRenderbuffersQCOM", glsym_func_void);
406 FINDSYM(glsym_glExtGetFramebuffersQCOM, "glExtGetFramebuffersQCOM", glsym_func_void);
407 FINDSYM(glsym_glExtGetTexLevelParameterivQCOM, "glExtGetTexLevelParameterivQCOM", glsym_func_void);
408 FINDSYM(glsym_glExtTexObjectStateOverrideiQCOM, "glExtTexObjectStateOverrideiQCOM", glsym_func_void);
409 FINDSYM(glsym_glExtGetTexSubImageQCOM, "glExtGetTexSubImageQCOM", glsym_func_void);
410 FINDSYM(glsym_glExtGetBufferPointervQCOM, "glExtGetBufferPointervQCOM", glsym_func_void);
411
412 if (glsym_glExtGetTexturesQCOM) _gl_ext_entries[8].supported = 1;
413
414 /* GL_QCOM_extended_get2 */
415 FINDSYM(glsym_glExtGetShadersQCOM, "glExtGetShadersQCOM", glsym_func_void);
416 FINDSYM(glsym_glExtGetProgramsQCOM, "glExtGetProgramsQCOM", glsym_func_void);
417 FINDSYM(glsym_glExtIsProgramBinaryQCOM, "glExtIsProgramBinaryQCOM", glsym_func_uchar);
418 FINDSYM(glsym_glExtGetProgramBinarySourceQCOM, "glExtGetProgramBinarySourceQCOM", glsym_func_void);
419
420 if (glsym_glExtGetShadersQCOM) _gl_ext_entries[9].supported = 1;
421}
422
423static void
424_extensions_init(Render_Engine *re)
425{
426 int i;
427 const char *glexts, *evasglexts;
428
429 memset(_gl_ext_string, 0, 1024);
430 memset(_evasgl_ext_string, 0, 1024);
431
432 // GLES 2.0 Extensions
433 glexts = (const char*)glGetString(GL_EXTENSIONS);
434
435 DBG("--------GLES 2.0 Extensions--------");
436 for (i = 0; _gl_ext_entries[i].name != NULL; i++)
437 {
438 if ( (strstr(glexts, _gl_ext_entries[i].name) != NULL) ||
439 (strstr(glexts, _gl_ext_entries[i].real_name) != NULL) )
440 {
441 _gl_ext_entries[i].supported = 1;
442 strcat(_gl_ext_string, _gl_ext_entries[i].name);
443 strcat(_gl_ext_string, " ");
444 DBG("\t%s", _gl_ext_entries[i].name);
445 }
446
447 }
448 DBG(" ");
449
450 // EGL Extensions
451 evasglexts = glsym_eglQueryString(re->win->egl_disp, EGL_EXTENSIONS);
452
453 DBG("--------EvasGL Extensions----------");
454 for (i = 0; _evasgl_ext_entries[i].name != NULL; i++)
455 {
456 if ( (strstr(evasglexts, _evasgl_ext_entries[i].name) != NULL) ||
457 (strstr(evasglexts, _evasgl_ext_entries[i].real_name) != NULL) )
458 {
459 _evasgl_ext_entries[i].supported = 1;
460 strcat(_evasgl_ext_string, _evasgl_ext_entries[i].name);
461 strcat(_evasgl_ext_string, " ");
462 DBG("\t%s", _evasgl_ext_entries[i].name);
463 }
464 }
465 DBG(" ");
466}
467
468int _evas_engine_wl_egl_log_dom = -1;
469
470/* function tables - filled in later (func and parent func) */
471static Evas_Func func, pfunc;
472
473/* Function table for GL APIs */
474static Evas_GL_API gl_funcs;
475
476static void *
477eng_info(Evas *e)
478{
479 Evas_Engine_Info_Wayland_Egl *info;
480
481 info = calloc(1, sizeof(Evas_Engine_Info_Wayland_Egl));
482 info->magic.magic = rand();
483 info->func.best_depth_get = eng_best_depth_get;
484 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
485 return info;
486 e = NULL;
487}
488
489static void
490eng_info_free(Evas *e __UNUSED__, void *info)
491{
492 Evas_Engine_Info_Wayland_Egl *in;
493// dont free! why bother? its not worth it
494// eina_log_domain_unregister(_evas_engine_GL_X11_log_dom);
495 in = (Evas_Engine_Info_Wayland_Egl *)info;
496 free(in);
497}
498
499static int
500_re_wincheck(Render_Engine *re)
501{
502 if (!re) return 0;
503 if (re->win->surf) return 1;
504 eng_window_resurf(re->win);
505 if (!re->win->surf)
506 {
507 ERR("GL engine can't re-create window surface!");
508 }
509 return 0;
510}
511
512static void
513_re_winfree(Render_Engine *re)
514{
515 if (!re->win->surf) return;
516 eng_window_unsurf(re->win);
517}
518
519static Render_Engine_GL_Resource *
520_create_internal_glue_resources(void *data)
521{
522 Render_Engine *re;
523 Render_Engine_GL_Resource *rsc;
524
525 if (!(re = (Render_Engine *)data)) return NULL;
526
527 rsc = calloc(1, sizeof(Render_Engine_GL_Resource));
528 if (!rsc) return NULL;
529
530 // EGL
531 int context_attrs[3];
532 context_attrs[0] = EGL_CONTEXT_CLIENT_VERSION;
533 context_attrs[1] = 2;
534 context_attrs[2] = EGL_NONE;
535
536 // Create resource surface for EGL
537 rsc->surface =
538 eglCreateWindowSurface(re->win->egl_disp, re->win->egl_config,
539 (EGLNativeWindowType)re->win->win, NULL);
540 if (!rsc->surface)
541 {
542 ERR("Creating internal resource surface failed.");
543 free(rsc);
544 return NULL;
545 }
546
547 // Create a resource context for EGL
548 rsc->context =
549 eglCreateContext(re->win->egl_disp, re->win->egl_config,
550 re->win->egl_context[0], context_attrs);
551 if (!rsc->context)
552 {
553 ERR("Internal Resource Context Creations Failed.");
554 free(rsc);
555 return NULL;
556 }
557
558 // Add to the resource resource list for cleanup
559 LKL(resource_lock);
560 resource_list = eina_list_prepend(resource_list, rsc);
561 LKU(resource_lock);
562
563 // Set the resource in TLS
564 if (eina_tls_set(resource_key, (void*)rsc) == EINA_FALSE)
565 {
566 ERR("Failed setting TLS Resource");
567 free(rsc);
568 return NULL;
569 }
570
571 return rsc;
572}
573
574static int
575_destroy_internal_glue_resources(void *data)
576{
577 Render_Engine *re = (Render_Engine *)data;
578 Eina_List *l;
579 Render_Engine_GL_Resource *rsc;
580
581 // EGL
582 // Delete the Resources
583 LKL(resource_lock);
584 EINA_LIST_FOREACH(resource_list, l, rsc)
585 {
586 if (rsc->surface) eglDestroySurface(re->win->egl_disp, rsc->surface);
587 if (rsc->context) eglDestroyContext(re->win->egl_disp, rsc->context);
588 free(rsc);
589 }
590 eina_list_free(resource_list);
591 LKU(resource_lock);
592
593 // Destroy TLS
594 eina_tls_free(resource_key);
595
596 return 1;
597}
598
599static int
600eng_setup(Evas *e, void *in)
601{
602 Render_Engine *re;
603 Evas_Engine_Info_Wayland_Egl *info;
604
605 info = (Evas_Engine_Info_Wayland_Egl *)in;
606 if (!e->engine.data.output)
607 {
608 re = calloc(1, sizeof(Render_Engine));
609 if (!re) return 0;
610 re->info = info;
611 re->evas = e;
612 e->engine.data.output = re;
613 re->w = e->output.w;
614 re->h = e->output.h;
615
616 re->win = eng_window_new(re->info->info.display,
617 re->info->info.surface,
618 re->info->info.screen,
619 re->info->info.depth, re->w, re->h,
620 re->info->indirect,
621 re->info->info.destination_alpha,
622 re->info->info.rotation);
623 if (!re->win)
624 {
625 free(re);
626 e->engine.data.output = NULL;
627 return 0;
628 }
629
630 gl_wins++;
631 if (!initted)
632 {
633 evas_common_cpu_init();
634 evas_common_blend_init();
635 evas_common_image_init();
636 evas_common_convert_init();
637 evas_common_scale_init();
638 evas_common_rectangle_init();
639 evas_common_polygon_init();
640 evas_common_line_init();
641 evas_common_font_init();
642 evas_common_draw_init();
643 evas_common_tilebuf_init();
644
645 // Initialize TLS
646 if (eina_tls_new(&resource_key) == EINA_FALSE)
647 ERR("Error creating tls key");
648
649 DBG("TLS KEY create... %d", resource_key);
650
651 initted = 1;
652 }
653 }
654 else
655 {
656 if (!(re = e->engine.data.output)) return 0;
657 if (_re_wincheck(re))
658 {
659 if ((re->info->info.display != re->win->disp) ||
660 (re->info->info.surface != re->win->surface) ||
661 (re->info->info.screen != re->win->screen) ||
662 (re->info->info.depth != re->win->depth) ||
663 (re->info->info.destination_alpha != re->win->alpha) ||
664 (re->info->info.rotation != re->win->rot))
665 {
666 int inc = 0;
667
668 /* if we already have a window surface, check for NULL input surface.
669 * this will mean we are hiding the window and should destroy
670 * things properly */
671 if ((re->win->surface) && (re->info->info.surface = NULL))
672 {
673 if (re->win)
674 {
675 eng_window_free(re->win);
676 gl_wins--;
677 }
678 free(re);
679 e->engine.data.output = NULL;
680 return 0;
681 }
682
683 if (re->win)
684 {
685 re->win->gl_context->references++;
686 eng_window_free(re->win);
687 inc = 1;
688 gl_wins--;
689 }
690 re->w = e->output.w;
691 re->h = e->output.h;
692 re->win = eng_window_new(re->info->info.display,
693 re->info->info.surface,
694 re->info->info.screen,
695 re->info->info.depth,
696 re->w, re->h,
697 re->info->indirect,
698 re->info->info.destination_alpha,
699 re->info->info.rotation);
700 eng_window_use(re->win);
701 if (re->win) gl_wins++;
702 if ((re->win) && (inc))
703 re->win->gl_context->references--;
704 }
705 else if ((re->win->w != e->output.w) ||
706 (re->win->h != e->output.h))
707 {
708 re->w = e->output.w;
709 re->h = e->output.h;
710 re->win->w = e->output.w;
711 re->win->h = e->output.h;
712 eng_window_use(re->win);
713 evas_gl_common_context_resize(re->win->gl_context,
714 re->win->w, re->win->h,
715 re->win->rot);
716 }
717 }
718 }
719
720 if (!re->win)
721 {
722 free(re);
723 e->engine.data.output = NULL;
724 return 0;
725 }
726
727 if (!e->engine.data.output)
728 {
729 if (re->win)
730 {
731 eng_window_free(re->win);
732 gl_wins--;
733 }
734 free(re);
735 e->engine.data.output = NULL;
736 return 0;
737 }
738 re->tb = evas_common_tilebuf_new(re->win->w, re->win->h);
739 if (!re->tb)
740 {
741 if (re->win)
742 {
743 eng_window_free(re->win);
744 gl_wins--;
745 }
746 free(re);
747 e->engine.data.output = NULL;
748 return 0;
749 }
750 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
751
752 if (!e->engine.data.context)
753 {
754 e->engine.data.context =
755 e->engine.func->context_new(e->engine.data.output);
756 }
757
758 eng_window_use(re->win);
759
760 re->vsync = 0;
761 _sym_init();
762 _extensions_init(re);
763
764 // This is used in extensions. Not pretty but can't get display otherwise.
765 current_engine = re;
766
767 return 1;
768}
769
770static void
771eng_output_free(void *data)
772{
773 Render_Engine *re;
774
775 re = (Render_Engine *)data;
776
777 if (re)
778 {
779#if 0
780 // Destroy the resource surface
781 // Only required for EGL case
782 if (re->surface)
783 eglDestroySurface(re->win->egl_disp, re->surface);
784
785 // Destroy the resource context
786 _destroy_internal_context(re, context);
787#endif
788 if (re->win)
789 {
790 if ((initted == 1) && (gl_wins == 1))
791 _destroy_internal_glue_resources(re);
792 eng_window_free(re->win);
793 gl_wins--;
794 }
795 evas_common_tilebuf_free(re->tb);
796 free(re);
797 }
798 if ((initted == 1) && (gl_wins == 0))
799 {
800 evas_common_image_shutdown();
801 evas_common_font_shutdown();
802 initted = 0;
803 }
804}
805
806static void
807eng_output_resize(void *data, int w, int h)
808{
809 Render_Engine *re;
810
811 re = (Render_Engine *)data;
812 re->win->w = w;
813 re->win->h = h;
814 eng_window_use(re->win);
815
816 if (re->win->win)
817 wl_egl_window_resize(re->win->win, w, h, 0, 0);
818
819 evas_gl_common_context_resize(re->win->gl_context, w, h, re->win->rot);
820 evas_common_tilebuf_free(re->tb);
821 re->tb = evas_common_tilebuf_new(w, h);
822 if (re->tb)
823 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
824}
825
826static void
827eng_output_tile_size_set(void *data, int w, int h)
828{
829 Render_Engine *re;
830
831 re = (Render_Engine *)data;
832 evas_common_tilebuf_set_tile_size(re->tb, w, h);
833}
834
835static void
836eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
837{
838 Render_Engine *re;
839
840 re = (Render_Engine *)data;
841 eng_window_use(re->win);
842 evas_gl_common_context_resize(re->win->gl_context, re->win->w, re->win->h, re->win->rot);
843 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
844
845 RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, re->win->w, re->win->h);
846 if ((w <= 0) || (h <= 0)) return;
847 if (!re->win->draw.redraw)
848 {
849#if 1
850 re->win->draw.x1 = x;
851 re->win->draw.y1 = y;
852 re->win->draw.x2 = x + w - 1;
853 re->win->draw.y2 = y + h - 1;
854#else
855 re->win->draw.x1 = 0;
856 re->win->draw.y1 = 0;
857 re->win->draw.x2 = re->win->w - 1;
858 re->win->draw.y2 = re->win->h - 1;
859#endif
860 }
861 else
862 {
863 if (x < re->win->draw.x1) re->win->draw.x1 = x;
864 if (y < re->win->draw.y1) re->win->draw.y1 = y;
865 if ((x + w - 1) > re->win->draw.x2) re->win->draw.x2 = x + w - 1;
866 if ((y + h - 1) > re->win->draw.y2) re->win->draw.y2 = y + h - 1;
867 }
868 re->win->draw.redraw = 1;
869}
870
871static void
872eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
873{
874 Render_Engine *re;
875
876 re = (Render_Engine *)data;
877 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
878}
879
880static void
881eng_output_redraws_clear(void *data)
882{
883 Render_Engine *re;
884
885 re = (Render_Engine *)data;
886 evas_common_tilebuf_clear(re->tb);
887/* re->win->draw.redraw = 0;*/
888// INF("GL: finish update cycle!");
889}
890
891/* vsync games - not for now though */
892#define VSYNC_TO_SCREEN 1
893
894static void *
895eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
896{
897 Render_Engine *re;
898 Tilebuf_Rect *rects;
899
900 re = (Render_Engine *)data;
901 /* get the upate rect surface - return engine data as dummy */
902 rects = evas_common_tilebuf_get_render_rects(re->tb);
903 if (rects)
904 {
905 evas_common_tilebuf_free_render_rects(rects);
906 evas_common_tilebuf_clear(re->tb);
907 eng_window_use(re->win);
908 if (!_re_wincheck(re)) return NULL;
909 evas_gl_common_context_flush(re->win->gl_context);
910 evas_gl_common_context_newframe(re->win->gl_context);
911 if (x) *x = 0;
912 if (y) *y = 0;
913 if (w) *w = re->win->w;
914 if (h) *h = re->win->h;
915 if (cx) *cx = 0;
916 if (cy) *cy = 0;
917 if (cw) *cw = re->win->w;
918 if (ch) *ch = re->win->h;
919 return re->win->gl_context->def_surface;
920 }
921 return NULL;
922}
923
924//#define FRAMECOUNT 1
925
926#ifdef FRAMECOUNT
927static double
928get_time(void)
929{
930 struct timeval timev;
931
932 gettimeofday(&timev, NULL);
933 return (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000);
934}
935#endif
936
937static int safe_native = -1;
938
939static void
940eng_output_redraws_next_update_push(void *data, void *surface __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__)
941{
942 Render_Engine *re;
943#ifdef FRAMECOUNT
944 static double pt = 0.0;
945 double ta, tb;
946#endif
947
948 re = (Render_Engine *)data;
949 /* put back update surface.. in this case just unflag redraw */
950 if (!_re_wincheck(re)) return;
951 re->win->draw.redraw = 0;
952 re->win->draw.drew = 1;
953 evas_gl_common_context_flush(re->win->gl_context);
954 if (safe_native == -1)
955 {
956 const char *s;
957
958 s = getenv("EVAS_GL_SAFE_NATIVE");
959 safe_native = 0;
960 if (s)
961 safe_native = atoi(s);
962 else
963 {
964 s = (const char *)glGetString(GL_RENDERER);
965 if (s)
966 {
967 if (strstr(s, "PowerVR SGX 540") || strstr(s, "Mali-400 MP"))
968 safe_native = 1;
969 }
970 }
971 }
972 // this is needed to make sure all previous rendering is flushed to
973 // buffers/surfaces
974# ifdef FRAMECOUNT
975 double t0 = get_time();
976 ta = t0 - pt;
977 pt = t0;
978# endif
979 // previous rendering should be done and swapped
980 if (!safe_native) eglWaitNative(EGL_CORE_NATIVE_ENGINE);
981# ifdef FRAMECOUNT
982 double t1 = get_time();
983 tb = t1 - t0;
984 printf("... %1.5f -> %1.5f | ", ta, tb);
985# endif
986 if (eglGetError() != EGL_SUCCESS)
987 {
988 printf("Error: eglWaitNative(EGL_CORE_NATIVE_ENGINE) fail.\n");
989 }
990}
991
992static void
993eng_output_flush(void *data)
994{
995 Render_Engine *re;
996
997 re = (Render_Engine *)data;
998 if (!_re_wincheck(re)) return;
999 if (!re->win->draw.drew) return;
1000//x// printf("frame -> flush\n");
1001 re->win->draw.drew = 0;
1002 eng_window_use(re->win);
1003
1004# ifdef FRAMECOUNT
1005 double t0 = get_time();
1006# endif
1007
1008 if (!re->vsync)
1009 {
1010 if (re->info->vsync) eglSwapInterval(re->win->egl_disp, 1);
1011 else eglSwapInterval(re->win->egl_disp, 0);
1012 re->vsync = 1;
1013 }
1014
1015 if (re->info->callback.pre_swap)
1016 re->info->callback.pre_swap(re->info->callback.data, re->evas);
1017
1018 eglSwapBuffers(re->win->egl_disp, re->win->egl_surface[0]);
1019 if (!safe_native) eglWaitGL();
1020
1021 if (re->info->callback.post_swap)
1022 re->info->callback.post_swap(re->info->callback.data, re->evas);
1023
1024 if (eglGetError() != EGL_SUCCESS)
1025 printf("Error: eglSwapBuffers() fail.\n");
1026
1027# ifdef FRAMECOUNT
1028 double t1 = get_time();
1029 printf("%1.5f\n", t1 - t0);
1030# endif
1031}
1032
1033static void
1034eng_output_idle_flush(void *data)
1035{
1036 Render_Engine *re;
1037
1038 re = (Render_Engine *)data;
1039}
1040
1041static void
1042eng_output_dump(void *data)
1043{
1044 Render_Engine *re;
1045
1046 re = (Render_Engine *)data;
1047 evas_common_image_image_all_unload();
1048 evas_common_font_font_all_unload();
1049 evas_gl_common_image_all_unload(re->win->gl_context);
1050 _re_winfree(re);
1051}
1052
1053static void
1054eng_context_cutout_add(void *data __UNUSED__, void *context, int x, int y, int w, int h)
1055{
1056// Render_Engine *re;
1057//
1058// re = (Render_Engine *)data;
1059// re->win->gl_context->dc = context;
1060 evas_common_draw_context_add_cutout(context, x, y, w, h);
1061}
1062
1063static void
1064eng_context_cutout_clear(void *data __UNUSED__, void *context)
1065{
1066// Render_Engine *re;
1067//
1068// re = (Render_Engine *)data;
1069// re->win->gl_context->dc = context;
1070 evas_common_draw_context_clear_cutouts(context);
1071}
1072
1073static void
1074eng_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h)
1075{
1076 Render_Engine *re;
1077
1078 re = (Render_Engine *)data;
1079 eng_window_use(re->win);
1080 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1081 re->win->gl_context->dc = context;
1082 evas_gl_common_rect_draw(re->win->gl_context, x, y, w, h);
1083}
1084
1085static void
1086eng_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2)
1087{
1088 Render_Engine *re;
1089
1090 re = (Render_Engine *)data;
1091 eng_window_use(re->win);
1092 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1093 re->win->gl_context->dc = context;
1094 evas_gl_common_line_draw(re->win->gl_context, x1, y1, x2, y2);
1095}
1096
1097static void *
1098eng_polygon_point_add(void *data, void *context __UNUSED__, void *polygon, int x, int y)
1099{
1100 Render_Engine *re;
1101
1102 re = (Render_Engine *)data;
1103 return evas_gl_common_poly_point_add(polygon, x, y);
1104}
1105
1106static void *
1107eng_polygon_points_clear(void *data, void *context __UNUSED__, void *polygon)
1108{
1109 Render_Engine *re;
1110
1111 re = (Render_Engine *)data;
1112 return evas_gl_common_poly_points_clear(polygon);
1113}
1114
1115static void
1116eng_polygon_draw(void *data, void *context, void *surface __UNUSED__, void *polygon, int x, int y)
1117{
1118 Render_Engine *re;
1119
1120 re = (Render_Engine *)data;
1121 eng_window_use(re->win);
1122 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1123 re->win->gl_context->dc = context;
1124 evas_gl_common_poly_draw(re->win->gl_context, polygon, x, y);
1125}
1126
1127static int
1128eng_image_alpha_get(void *data __UNUSED__, void *image)
1129{
1130// Render_Engine *re;
1131 Evas_GL_Image *im;
1132
1133// re = (Render_Engine *)data;
1134 if (!image) return 1;
1135 im = image;
1136 return im->alpha;
1137}
1138
1139static int
1140eng_image_colorspace_get(void *data __UNUSED__, void *image)
1141{
1142// Render_Engine *re;
1143 Evas_GL_Image *im;
1144
1145// re = (Render_Engine *)data;
1146 if (!image) return EVAS_COLORSPACE_ARGB8888;
1147 im = image;
1148 return im->cs.space;
1149}
1150
1151static void
1152eng_image_mask_create(void *data __UNUSED__, void *image)
1153{
1154 Evas_GL_Image *im;
1155
1156 if (!image) return;
1157 im = image;
1158 if (!im->im->image.data)
1159 evas_cache_image_load_data(&im->im->cache_entry);
1160 if (!im->tex)
1161 im->tex = evas_gl_common_texture_new(im->gc, im->im);
1162}
1163
1164
1165static void *
1166eng_image_alpha_set(void *data, void *image, int has_alpha)
1167{
1168 Render_Engine *re;
1169 Evas_GL_Image *im;
1170
1171 re = (Render_Engine *)data;
1172 if (!image) return NULL;
1173 im = image;
1174 if (im->alpha == has_alpha) return image;
1175 if (im->native.data)
1176 {
1177 im->alpha = has_alpha;
1178 return image;
1179 }
1180 eng_window_use(re->win);
1181 if ((im->tex) && (im->tex->pt->dyn.img))
1182 {
1183 im->alpha = has_alpha;
1184 im->tex->alpha = im->alpha;
1185 return image;
1186 }
1187 /* FIXME: can move to gl_common */
1188 if (im->cs.space != EVAS_COLORSPACE_ARGB8888) return im;
1189 if ((has_alpha) && (im->im->cache_entry.flags.alpha)) return image;
1190 else if ((!has_alpha) && (!im->im->cache_entry.flags.alpha)) return image;
1191 if (im->references > 1)
1192 {
1193 Evas_GL_Image *im_new;
1194
1195 im_new = evas_gl_common_image_new_from_copied_data
1196 (im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
1197 im->im->image.data,
1198 eng_image_alpha_get(data, image),
1199 eng_image_colorspace_get(data, image));
1200 if (!im_new) return im;
1201 evas_gl_common_image_free(im);
1202 im = im_new;
1203 }
1204 else
1205 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
1206 return evas_gl_common_image_alpha_set(im, has_alpha ? 1 : 0);
1207// im->im->cache_entry.flags.alpha = has_alpha ? 1 : 0;
1208// return image;
1209}
1210
1211static void *
1212eng_image_border_set(void *data __UNUSED__, void *image, int l __UNUSED__, int r __UNUSED__, int t __UNUSED__, int b __UNUSED__)
1213{
1214// Render_Engine *re;
1215//
1216// re = (Render_Engine *)data;
1217 return image;
1218}
1219
1220static void
1221eng_image_border_get(void *data __UNUSED__, void *image __UNUSED__, int *l __UNUSED__, int *r __UNUSED__, int *t __UNUSED__, int *b __UNUSED__)
1222{
1223// Render_Engine *re;
1224//
1225// re = (Render_Engine *)data;
1226}
1227
1228static char *
1229eng_image_comment_get(void *data __UNUSED__, void *image, char *key __UNUSED__)
1230{
1231// Render_Engine *re;
1232 Evas_GL_Image *im;
1233
1234// re = (Render_Engine *)data;
1235 if (!image) return NULL;
1236 im = image;
1237 if (!im->im) return NULL;
1238 return im->im->info.comment;
1239}
1240
1241static char *
1242eng_image_format_get(void *data __UNUSED__, void *image)
1243{
1244// Render_Engine *re;
1245 Evas_GL_Image *im;
1246
1247// re = (Render_Engine *)data;
1248 im = image;
1249 return NULL;
1250}
1251
1252static void
1253eng_image_colorspace_set(void *data, void *image, int cspace)
1254{
1255 Render_Engine *re;
1256 Evas_GL_Image *im;
1257
1258 re = (Render_Engine *)data;
1259 if (!image) return;
1260 im = image;
1261 if (im->native.data) return;
1262 /* FIXME: can move to gl_common */
1263 if (im->cs.space == cspace) return;
1264 eng_window_use(re->win);
1265 evas_cache_image_colorspace(&im->im->cache_entry, cspace);
1266 switch (cspace)
1267 {
1268 case EVAS_COLORSPACE_ARGB8888:
1269 if (im->cs.data)
1270 {
1271 if (!im->cs.no_free) free(im->cs.data);
1272 im->cs.data = NULL;
1273 im->cs.no_free = 0;
1274 }
1275 break;
1276 case EVAS_COLORSPACE_YCBCR422P601_PL:
1277 case EVAS_COLORSPACE_YCBCR422P709_PL:
1278 case EVAS_COLORSPACE_YCBCR422601_PL:
1279 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
1280 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
1281 if (im->tex) evas_gl_common_texture_free(im->tex);
1282 im->tex = NULL;
1283 if (im->cs.data)
1284 {
1285 if (!im->cs.no_free) free(im->cs.data);
1286 }
1287 if (im->im->cache_entry.h > 0)
1288 im->cs.data =
1289 calloc(1, im->im->cache_entry.h * sizeof(unsigned char *) * 2);
1290 else
1291 im->cs.data = NULL;
1292 im->cs.no_free = 0;
1293 break;
1294 default:
1295 abort();
1296 break;
1297 }
1298 im->cs.space = cspace;
1299}
1300
1301/////////////////////////////////////////////////////////////////////////
1302//
1303//
1304typedef struct _Native Native;
1305
1306struct _Native
1307{
1308 Evas_Native_Surface ns;
1309 struct wl_egl_pixmap *pixmap;
1310
1311 void *egl_surface;
1312};
1313
1314// FIXME: this is enabled so updates happen - but its SLOOOOOOOOOOOOOOOW
1315// (i am sure this is the reason) not to mention seemingly superfluous. but
1316// i need to enable it for it to work on fglrx at least. havent tried nvidia.
1317//
1318// why is this the case? does anyone know? has anyone tried it on other gfx
1319// drivers?
1320//
1321//#define GLX_TEX_PIXMAP_RECREATE 1
1322
1323static void
1324_native_bind_cb(void *data, void *image)
1325{
1326 Evas_GL_Image *im = image;
1327 Native *n = im->native.data;
1328
1329 if (n->egl_surface)
1330 {
1331 if (glsym_glEGLImageTargetTexture2DOES)
1332 {
1333 glsym_glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, n->egl_surface);
1334 if (eglGetError() != EGL_SUCCESS)
1335 ERR("glEGLImageTargetTexture2DOES() failed.");
1336 }
1337 else
1338 ERR("Try glEGLImageTargetTexture2DOES on EGL with no support");
1339 }
1340 return;
1341 data = NULL;
1342}
1343
1344static void
1345_native_unbind_cb(void *data, void *image)
1346{
1347 Evas_GL_Image *im = image;
1348 /* Native *n = im->native.data; */
1349
1350 /* if (n->ns.type == EVAS_NATIVE_SURFACE_X11) */
1351 /* { */
1352 /* // nothing */
1353 /* } */
1354 /* else if (n->ns.type == EVAS_NATIVE_SURFACE_OPENGL) */
1355 /* { */
1356 /* glBindTexture(GL_TEXTURE_2D, 0); */
1357 /* GLERR(__FUNCTION__, __FILE__, __LINE__, ""); */
1358 /* } */
1359 return;
1360 data = NULL;
1361}
1362
1363static void
1364_native_free_cb(void *data, void *image)
1365{
1366 Render_Engine *re = data;
1367 Evas_GL_Image *im = image;
1368 Native *n = im->native.data;
1369 uint32_t texid;
1370// uint32_t pmid, texid;
1371
1372 /* eina_hash_del(re->win->gl_context->shared->native_pm_hash, &pmid, im); */
1373 if (n->egl_surface)
1374 {
1375 if (glsym_eglDestroyImage)
1376 {
1377 glsym_eglDestroyImage(re->win->egl_disp, n->egl_surface);
1378 if (eglGetError() != EGL_SUCCESS)
1379 ERR("eglDestroyImage() failed.");
1380 }
1381 else
1382 ERR("Try eglDestroyImage on EGL with no support");
1383 }
1384
1385 im->native.data = NULL;
1386 im->native.func.data = NULL;
1387 im->native.func.bind = NULL;
1388 im->native.func.unbind = NULL;
1389 im->native.func.free = NULL;
1390 free(n);
1391}
1392
1393static void *
1394eng_image_native_set(void *data, void *image, void *native)
1395{
1396 Render_Engine *re = (Render_Engine *)data;
1397 Evas_Native_Surface *ns = native;
1398 Evas_GL_Image *im = image, *im2 = NULL;
1399 Native *n = NULL;
1400// uint32_t pmid;
1401// uint32_t texid;
1402 unsigned int tex = 0;
1403 unsigned int fbo = 0;
1404
1405 if (!im)
1406 {
1407 if ((!ns) && (ns->type == EVAS_NATIVE_SURFACE_OPENGL))
1408 {
1409 im = evas_gl_common_image_new_from_data(re->win->gl_context,
1410 ns->data.opengl.w,
1411 ns->data.opengl.h,
1412 NULL, 1,
1413 EVAS_COLORSPACE_ARGB8888);
1414 }
1415 else
1416 return NULL;
1417 }
1418
1419 if (ns)
1420 {
1421 /* vis = ns->data.x11.visual; */
1422 /* pm = ns->data.x11.pixmap; */
1423 if (im->native.data)
1424 {
1425 Evas_Native_Surface *ens = im->native.data;
1426 /* if ((ens->data.x11.visual == vis) && */
1427 /* (ens->data.x11.pixmap == pm)) */
1428 return im;
1429 }
1430 }
1431 if ((!ns) && (!im->native.data)) return im;
1432
1433 eng_window_use(re->win);
1434
1435 if (im->native.data)
1436 {
1437 if (im->native.func.free)
1438 im->native.func.free(im->native.func.data, im);
1439 evas_gl_common_image_native_disable(im);
1440 }
1441
1442 if (!ns) return im;
1443
1444 /* if (ns->type == EVAS_NATIVE_SURFACE_X11) */
1445 /* { */
1446 /* pmid = pm; */
1447 /* im2 = eina_hash_find(re->win->gl_context->shared->native_pm_hash, &pmid); */
1448 if (im2 == im) return im;
1449 if (im2)
1450 {
1451 n = im2->native.data;
1452 if (n)
1453 {
1454 evas_gl_common_image_ref(im2);
1455 evas_gl_common_image_free(im);
1456 return im2;
1457 }
1458 }
1459
1460 im2 = evas_gl_common_image_new_from_data(re->win->gl_context,
1461 im->w, im->h, NULL, im->alpha,
1462 EVAS_COLORSPACE_ARGB8888);
1463 evas_gl_common_image_free(im);
1464 im = im2;
1465 /* if (native) */
1466 /* { */
1467 /* n = calloc(1, sizeof(Native)); */
1468 /* if (n) */
1469 /* { */
1470 /* EGLConfig egl_config; */
1471 /* int config_attrs[20]; */
1472 /* int num_config, i = 0; */
1473
1474 /* eina_hash_add(re->win->gl_context->shared->native_pm_hash, &pmid, im); */
1475
1476 /* config_attrs[i++] = EGL_RED_SIZE; */
1477 /* config_attrs[i++] = 8; */
1478 /* config_attrs[i++] = EGL_GREEN_SIZE; */
1479 /* config_attrs[i++] = 8; */
1480 /* config_attrs[i++] = EGL_BLUE_SIZE; */
1481 /* config_attrs[i++] = 8; */
1482 /* config_attrs[i++] = EGL_ALPHA_SIZE; */
1483 /* config_attrs[i++] = 8; */
1484 /* config_attrs[i++] = EGL_DEPTH_SIZE; */
1485 /* config_attrs[i++] = 0; */
1486 /* config_attrs[i++] = EGL_STENCIL_SIZE; */
1487 /* config_attrs[i++] = 0; */
1488 /* config_attrs[i++] = EGL_RENDERABLE_TYPE; */
1489 /* config_attrs[i++] = EGL_OPENGL_ES2_BIT; */
1490 /* config_attrs[i++] = EGL_SURFACE_TYPE; */
1491 /* config_attrs[i++] = EGL_PIXMAP_BIT; */
1492 /* config_attrs[i++] = EGL_NONE; */
1493
1494 /* if (!eglChooseConfig(re->win->egl_disp, config_attrs, */
1495 /* &egl_config, 1, &num_config)) */
1496 /* ERR("eglChooseConfig() failed for, num_config = %i", num_config); */
1497 /* memcpy(&(n->ns), ns, sizeof(Evas_Native_Surface)); */
1498 /* n->pixmap = pm; */
1499 /* if (glsym_eglCreateImage) */
1500 /* n->egl_surface = glsym_eglCreateImage(re->win->egl_disp, */
1501 /* EGL_NO_CONTEXT, */
1502 /* EGL_NATIVE_PIXMAP_KHR, */
1503 /* (void *)pm, */
1504 /* NULL); */
1505 /* else */
1506 /* ERR("Try eglCreateImage on EGL with no support"); */
1507 /* if (!n->egl_surface) */
1508 /* ERR("eglCreatePixmapSurface() for 0x%x failed", (unsigned int)pm); */
1509 /* im->native.yinvert = 1; */
1510 /* im->native.loose = 0; */
1511 /* im->native.data = n; */
1512 /* im->native.func.data = re; */
1513 /* im->native.func.bind = _native_bind_cb; */
1514 /* im->native.func.unbind = _native_unbind_cb; */
1515 /* im->native.func.free = _native_free_cb; */
1516 /* im->native.target = GL_TEXTURE_2D; */
1517 /* im->native.mipmap = 0; */
1518 /* evas_gl_common_image_native_enable(im); */
1519 /* } */
1520 /* } */
1521 return im;
1522}
1523
1524static void *
1525eng_image_native_get(void *data __UNUSED__, void *image)
1526{
1527 Evas_GL_Image *im = image;
1528 Native *n;
1529 if (!im) return NULL;
1530 n = im->native.data;
1531 if (!n) return NULL;
1532 return &(n->ns);
1533}
1534
1535#if 0 // filtering disabled
1536static void
1537eng_image_draw_filtered(void *data, void *context, void *surface,
1538 void *image, Evas_Filter_Info *filter)
1539{
1540 Render_Engine *re = data;
1541
1542 if (!image) return;
1543 eng_window_use(re->win);
1544 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1545 re->win->gl_context->dc = context;
1546
1547 evas_gl_common_filter_draw(re->win->gl_context, image, filter);
1548}
1549
1550static Filtered_Image *
1551eng_image_filtered_get(void *im, uint8_t *key, size_t keylen)
1552{
1553 return evas_gl_common_image_filtered_get(im, key, keylen);
1554}
1555
1556static Filtered_Image *
1557eng_image_filtered_save(void *im, void *fim, uint8_t *key, size_t keylen)
1558{
1559 return evas_gl_common_image_filtered_save(im, fim, key, keylen);
1560}
1561
1562static void
1563eng_image_filtered_free(void *im, Filtered_Image *fim)
1564{
1565 evas_gl_common_image_filtered_free(im, fim);
1566}
1567#endif
1568
1569static void *
1570eng_image_load(void *data, const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
1571{
1572 Render_Engine *re;
1573
1574 re = (Render_Engine *)data;
1575 *error = EVAS_LOAD_ERROR_NONE;
1576 eng_window_use(re->win);
1577 return evas_gl_common_image_load(re->win->gl_context, file, key, lo, error);
1578}
1579
1580static void *
1581eng_image_new_from_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
1582{
1583 Render_Engine *re;
1584
1585 re = (Render_Engine *)data;
1586 eng_window_use(re->win);
1587 return evas_gl_common_image_new_from_data(re->win->gl_context, w, h, image_data, alpha, cspace);
1588}
1589
1590static void *
1591eng_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
1592{
1593 Render_Engine *re;
1594
1595 re = (Render_Engine *)data;
1596 eng_window_use(re->win);
1597 return evas_gl_common_image_new_from_copied_data(re->win->gl_context, w, h, image_data, alpha, cspace);
1598}
1599
1600static void
1601eng_image_free(void *data, void *image)
1602{
1603 Render_Engine *re;
1604
1605 re = (Render_Engine *)data;
1606 if (!image) return;
1607 eng_window_use(re->win);
1608 evas_gl_common_image_free(image);
1609}
1610
1611static void
1612eng_image_size_get(void *data __UNUSED__, void *image, int *w, int *h)
1613{
1614 if (!image)
1615 {
1616 *w = 0;
1617 *h = 0;
1618 return;
1619 }
1620 if (w) *w = ((Evas_GL_Image *)image)->w;
1621 if (h) *h = ((Evas_GL_Image *)image)->h;
1622}
1623
1624static void *
1625eng_image_size_set(void *data, void *image, int w, int h)
1626{
1627 Render_Engine *re;
1628 Evas_GL_Image *im = image;
1629 Evas_GL_Image *im_old;
1630
1631 re = (Render_Engine *)data;
1632 if (!im) return NULL;
1633 if (im->native.data)
1634 {
1635 im->w = w;
1636 im->h = h;
1637 return image;
1638 }
1639 eng_window_use(re->win);
1640 if ((im->tex) && (im->tex->pt->dyn.img))
1641 {
1642 evas_gl_common_texture_free(im->tex);
1643 im->tex = NULL;
1644 im->w = w;
1645 im->h = h;
1646 im->tex = evas_gl_common_texture_dynamic_new(im->gc, im);
1647 return image;
1648 }
1649 im_old = image;
1650
1651 switch (eng_image_colorspace_get(data, image))
1652 {
1653 case EVAS_COLORSPACE_YCBCR422P601_PL:
1654 case EVAS_COLORSPACE_YCBCR422P709_PL:
1655 case EVAS_COLORSPACE_YCBCR422601_PL:
1656 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
1657 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
1658 w &= ~0x1;
1659 break;
1660 }
1661
1662 if ((im_old) &&
1663 ((int)im_old->im->cache_entry.w == w) &&
1664 ((int)im_old->im->cache_entry.h == h))
1665 return image;
1666 if (im_old)
1667 {
1668 im = evas_gl_common_image_new(re->win->gl_context, w, h,
1669 eng_image_alpha_get(data, image),
1670 eng_image_colorspace_get(data, image));
1671 /*
1672 evas_common_load_image_data_from_file(im_old->im);
1673 if (im_old->im->image->data)
1674 {
1675 evas_common_blit_rectangle(im_old->im, im->im, 0, 0, w, h, 0, 0);
1676 evas_common_cpu_end_opt();
1677 }
1678 */
1679 evas_gl_common_image_free(im_old);
1680 }
1681 else
1682 im = evas_gl_common_image_new(re->win->gl_context, w, h, 1, EVAS_COLORSPACE_ARGB8888);
1683 return im;
1684}
1685
1686static void *
1687eng_image_dirty_region(void *data, void *image, int x, int y, int w, int h)
1688{
1689 Render_Engine *re;
1690 Evas_GL_Image *im = image;
1691
1692 re = (Render_Engine *)data;
1693 if (!image) return NULL;
1694 if (im->native.data) return image;
1695 eng_window_use(re->win);
1696 evas_gl_common_image_dirty(image, x, y, w, h);
1697 return image;
1698}
1699
1700static void *
1701eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data, int *err)
1702{
1703 Render_Engine *re;
1704 Evas_GL_Image *im;
1705 int error;
1706
1707 re = (Render_Engine *)data;
1708 if (!image)
1709 {
1710 *image_data = NULL;
1711 if (err) *err = EVAS_LOAD_ERROR_GENERIC;
1712 return NULL;
1713 }
1714 im = image;
1715 if (im->native.data)
1716 {
1717 *image_data = NULL;
1718 if (err) *err = EVAS_LOAD_ERROR_NONE;
1719 return im;
1720 }
1721
1722 eng_window_use(re->win);
1723
1724 if ((im->tex) && (im->tex->pt) && (im->tex->pt->dyn.img) && (im->cs.space == EVAS_COLORSPACE_ARGB8888))
1725 {
1726 if (im->tex->pt->dyn.checked_out > 0)
1727 {
1728 im->tex->pt->dyn.checked_out++;
1729 *image_data = im->tex->pt->dyn.data;
1730 if (err) *err = EVAS_LOAD_ERROR_NONE;
1731 return im;
1732 }
1733 *image_data = im->tex->pt->dyn.data = glsym_eglMapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
1734
1735 if (!im->tex->pt->dyn.data)
1736 {
1737 if (err) *err = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
1738 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1739 return im;
1740 }
1741 im->tex->pt->dyn.checked_out++;
1742
1743 if (err) *err = EVAS_LOAD_ERROR_NONE;
1744 return im;
1745 }
1746
1747 /* Engine can fail to create texture after cache drop like eng_image_content_hint_set function,
1748 so it is need to add code which check im->im's NULL value*/
1749
1750 if (!im->im)
1751 {
1752 *image_data = NULL;
1753 if (err) *err = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
1754 return NULL;
1755 }
1756
1757 error = evas_cache_image_load_data(&im->im->cache_entry);
1758 switch (im->cs.space)
1759 {
1760 case EVAS_COLORSPACE_ARGB8888:
1761 if (to_write)
1762 {
1763 if (im->references > 1)
1764 {
1765 Evas_GL_Image *im_new;
1766
1767 im_new = evas_gl_common_image_new_from_copied_data
1768 (im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
1769 im->im->image.data,
1770 eng_image_alpha_get(data, image),
1771 eng_image_colorspace_get(data, image));
1772 if (!im_new)
1773 {
1774 *image_data = NULL;
1775 if (err) *err = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
1776 return NULL;
1777 }
1778 evas_gl_common_image_free(im);
1779 im = im_new;
1780 }
1781 else
1782 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
1783 }
1784 *image_data = im->im->image.data;
1785 break;
1786 case EVAS_COLORSPACE_YCBCR422P601_PL:
1787 case EVAS_COLORSPACE_YCBCR422P709_PL:
1788 case EVAS_COLORSPACE_YCBCR422601_PL:
1789 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
1790 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
1791 *image_data = im->cs.data;
1792 break;
1793 default:
1794 abort();
1795 break;
1796 }
1797 if (err) *err = error;
1798 return im;
1799}
1800
1801static void *
1802eng_image_data_put(void *data, void *image, DATA32 *image_data)
1803{
1804 Render_Engine *re;
1805 Evas_GL_Image *im, *im2;
1806
1807 re = (Render_Engine *)data;
1808 if (!image) return NULL;
1809 im = image;
1810 if (im->native.data) return image;
1811 eng_window_use(re->win);
1812 if ((im->tex) && (im->tex->pt)
1813 && (im->tex->pt->dyn.data)
1814 && (im->cs.space == EVAS_COLORSPACE_ARGB8888))
1815 {
1816 int w, h;
1817
1818 if (im->tex->pt->dyn.data == image_data)
1819 {
1820 im->tex->pt->dyn.checked_out--;
1821 if (im->tex->pt->dyn.checked_out == 0)
1822 glsym_eglUnmapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
1823 return image;
1824 }
1825
1826 w = im->im->cache_entry.w;
1827 h = im->im->cache_entry.h;
1828 im2 = eng_image_new_from_data(data, w, h, image_data,
1829 eng_image_alpha_get(data, image),
1830 eng_image_colorspace_get(data, image));
1831 if (!im2) return im;
1832 evas_gl_common_image_free(im);
1833 im = im2;
1834 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
1835 return im;
1836 }
1837 switch (im->cs.space)
1838 {
1839 case EVAS_COLORSPACE_ARGB8888:
1840 if (image_data != im->im->image.data)
1841 {
1842 int w, h;
1843
1844 w = im->im->cache_entry.w;
1845 h = im->im->cache_entry.h;
1846 im2 = eng_image_new_from_data(data, w, h, image_data,
1847 eng_image_alpha_get(data, image),
1848 eng_image_colorspace_get(data, image));
1849 if (!im2) return im;
1850 evas_gl_common_image_free(im);
1851 im = im2;
1852 }
1853 break;
1854 case EVAS_COLORSPACE_YCBCR422P601_PL:
1855 case EVAS_COLORSPACE_YCBCR422P709_PL:
1856 case EVAS_COLORSPACE_YCBCR422601_PL:
1857 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
1858 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
1859 if (image_data != im->cs.data)
1860 {
1861 if (im->cs.data)
1862 {
1863 if (!im->cs.no_free) free(im->cs.data);
1864 }
1865 im->cs.data = image_data;
1866 }
1867 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
1868 break;
1869 default:
1870 abort();
1871 break;
1872 }
1873 return im;
1874}
1875
1876static void
1877eng_image_data_preload_request(void *data __UNUSED__, void *image, const void *target)
1878{
1879 Evas_GL_Image *gim = image;
1880 RGBA_Image *im;
1881
1882 if (!gim) return;
1883 if (gim->native.data) return;
1884 im = (RGBA_Image *)gim->im;
1885 if (!im) return;
1886 evas_cache_image_preload_data(&im->cache_entry, target);
1887}
1888
1889static void
1890eng_image_data_preload_cancel(void *data __UNUSED__, void *image, const void *target)
1891{
1892 Evas_GL_Image *gim = image;
1893 RGBA_Image *im;
1894
1895 if (!gim) return;
1896 if (gim->native.data) return;
1897 im = (RGBA_Image *)gim->im;
1898 if (!im) return;
1899 evas_cache_image_preload_cancel(&im->cache_entry, target);
1900}
1901
1902static void
1903eng_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth)
1904{
1905 Render_Engine *re;
1906
1907 re = (Render_Engine *)data;
1908 if (!image) return;
1909 eng_window_use(re->win);
1910 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1911 re->win->gl_context->dc = context;
1912 evas_gl_common_image_draw(re->win->gl_context, image,
1913 src_x, src_y, src_w, src_h,
1914 dst_x, dst_y, dst_w, dst_h,
1915 smooth);
1916}
1917
1918static void
1919eng_image_scale_hint_set(void *data __UNUSED__, void *image, int hint)
1920{
1921 if (image) evas_gl_common_image_scale_hint_set(image, hint);
1922}
1923
1924static int
1925eng_image_scale_hint_get(void *data __UNUSED__, void *image)
1926{
1927 Evas_GL_Image *gim = image;
1928 if (!gim) return EVAS_IMAGE_SCALE_HINT_NONE;
1929 return gim->scale_hint;
1930}
1931
1932static void
1933eng_image_map_draw(void *data, void *context, void *surface, void *image, int npoints, RGBA_Map_Point *p, int smooth, int level)
1934{
1935 Evas_GL_Image *gim = image;
1936 Render_Engine *re;
1937
1938 re = (Render_Engine *)data;
1939 if (!image) return;
1940 eng_window_use(re->win);
1941 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1942 re->win->gl_context->dc = context;
1943 if (npoints != 4)
1944 {
1945 // FIXME: nash - you didn't fix this
1946 abort();
1947 }
1948 if ((p[0].x == p[3].x) &&
1949 (p[1].x == p[2].x) &&
1950 (p[0].y == p[1].y) &&
1951 (p[3].y == p[2].y) &&
1952 (p[0].x <= p[1].x) &&
1953 (p[0].y <= p[2].y) &&
1954 (p[0].u == 0) &&
1955 (p[0].v == 0) &&
1956 (p[1].u == (gim->w << FP)) &&
1957 (p[1].v == 0) &&
1958 (p[2].u == (gim->w << FP)) &&
1959 (p[2].v == (gim->h << FP)) &&
1960 (p[3].u == 0) &&
1961 (p[3].v == (gim->h << FP)) &&
1962 (p[0].col == 0xffffffff) &&
1963 (p[1].col == 0xffffffff) &&
1964 (p[2].col == 0xffffffff) &&
1965 (p[3].col == 0xffffffff))
1966 {
1967 int dx, dy, dw, dh;
1968
1969 dx = p[0].x >> FP;
1970 dy = p[0].y >> FP;
1971 dw = (p[2].x >> FP) - dx;
1972 dh = (p[2].y >> FP) - dy;
1973 eng_image_draw(data, context, surface, image,
1974 0, 0, gim->w, gim->h, dx, dy, dw, dh, smooth);
1975 }
1976 else
1977 {
1978 evas_gl_common_image_map_draw(re->win->gl_context, image, npoints, p,
1979 smooth, level);
1980 }
1981}
1982
1983static void *
1984eng_image_map_surface_new(void *data, int w, int h, int alpha)
1985{
1986 Render_Engine *re;
1987
1988 re = (Render_Engine *)data;
1989 return evas_gl_common_image_surface_new(re->win->gl_context, w, h, alpha);
1990}
1991
1992static void
1993eng_image_map_surface_free(void *data __UNUSED__, void *surface)
1994{
1995 evas_gl_common_image_free(surface);
1996}
1997
1998static void
1999eng_image_content_hint_set(void *data __UNUSED__, void *image, int hint)
2000{
2001 if (image) evas_gl_common_image_content_hint_set(image, hint);
2002}
2003
2004static int
2005eng_image_content_hint_get(void *data __UNUSED__, void *image)
2006{
2007 Evas_GL_Image *gim = image;
2008 if (!gim) return EVAS_IMAGE_CONTENT_HINT_NONE;
2009 return gim->content_hint;
2010}
2011
2012static void
2013eng_image_cache_flush(void *data)
2014{
2015 Render_Engine *re;
2016 int tmp_size;
2017
2018 re = (Render_Engine *)data;
2019
2020 tmp_size = evas_common_image_get_cache();
2021 evas_common_image_set_cache(0);
2022 evas_common_rgba_image_scalecache_flush();
2023 evas_gl_common_image_cache_flush(re->win->gl_context);
2024 evas_common_image_set_cache(tmp_size);
2025}
2026
2027static void
2028eng_image_cache_set(void *data, int bytes)
2029{
2030 Render_Engine *re;
2031
2032 re = (Render_Engine *)data;
2033 evas_common_image_set_cache(bytes);
2034 evas_common_rgba_image_scalecache_size_set(bytes);
2035 evas_gl_common_image_cache_flush(re->win->gl_context);
2036}
2037
2038static int
2039eng_image_cache_get(void *data __UNUSED__)
2040{
2041 return evas_common_image_get_cache();
2042}
2043
2044static void
2045eng_image_stride_get(void *data __UNUSED__, void *image, int *stride)
2046{
2047 Evas_GL_Image *im = image;
2048
2049 if ((im->tex) && (im->tex->pt->dyn.img))
2050 *stride = im->tex->pt->dyn.stride;
2051 else
2052 *stride = im->w * 4;
2053}
2054
2055static void
2056eng_font_draw(void *data, void *context, void *surface, Evas_Font_Set *font, int x, int y, int w __UNUSED__, int h __UNUSED__, int ow __UNUSED__, int oh __UNUSED__, const Evas_Text_Props *intl_props)
2057{
2058 Render_Engine *re;
2059
2060 re = (Render_Engine *)data;
2061 eng_window_use(re->win);
2062 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
2063 re->win->gl_context->dc = context;
2064 {
2065 // FIXME: put im into context so we can free it
2066 static RGBA_Image *im = NULL;
2067
2068 if (!im)
2069 im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
2070 im->cache_entry.w = re->win->w;
2071 im->cache_entry.h = re->win->h;
2072 evas_common_draw_context_font_ext_set(context,
2073 re->win->gl_context,
2074 evas_gl_font_texture_new,
2075 evas_gl_font_texture_free,
2076 evas_gl_font_texture_draw);
2077 evas_common_font_draw(im, context, (RGBA_Font *) font, x, y,
2078 intl_props);
2079 evas_common_draw_context_font_ext_set(context, NULL, NULL, NULL, NULL);
2080 }
2081}
2082
2083static Eina_Bool
2084eng_canvas_alpha_get(void *data, void *info __UNUSED__)
2085{
2086 Render_Engine *re = (Render_Engine *)data;
2087 return re->win->alpha;
2088}
2089
2090static int
2091_set_internal_config(Render_Engine_GL_Surface *sfc, Evas_GL_Config *cfg)
2092{
2093 // Also initialize pixel format here as well...
2094 switch(cfg->color_format)
2095 {
2096 case EVAS_GL_RGB_888:
2097 sfc->rt_fmt = GL_RGB;
2098 sfc->rt_internal_fmt = GL_RGB;
2099 break;
2100 case EVAS_GL_RGBA_8888:
2101 sfc->rt_fmt = GL_RGBA;
2102 sfc->rt_internal_fmt = GL_RGBA;
2103 break;
2104 default:
2105 ERR("Invalid Color Format!");
2106 return 0;
2107 }
2108
2109 switch(cfg->depth_bits)
2110 {
2111 case EVAS_GL_DEPTH_NONE:
2112 break;
2113 case EVAS_GL_DEPTH_BIT_8:
2114 case EVAS_GL_DEPTH_BIT_16:
2115 case EVAS_GL_DEPTH_BIT_24:
2116 // 24 bit doesn't work... just cover it with 16 for now..
2117 sfc->rb_depth_fmt = GL_DEPTH_COMPONENT16;
2118 break;
2119 case EVAS_GL_DEPTH_BIT_32:
2120 default:
2121 ERR("Unsupported Depth Bits Format!");
2122 return 0;
2123 }
2124
2125 switch(cfg->stencil_bits)
2126 {
2127 case EVAS_GL_STENCIL_NONE:
2128 break;
2129 case EVAS_GL_STENCIL_BIT_1:
2130 case EVAS_GL_STENCIL_BIT_2:
2131 case EVAS_GL_STENCIL_BIT_4:
2132 case EVAS_GL_STENCIL_BIT_8:
2133 sfc->rb_stencil_fmt = GL_STENCIL_INDEX8;
2134 break;
2135 case EVAS_GL_STENCIL_BIT_16:
2136 default:
2137 ERR("Unsupported Stencil Bits Format!");
2138 return 0;
2139 }
2140
2141 // Do Packed Depth24_Stencil8 Later...
2142
2143 return 1;
2144}
2145
2146static int
2147_create_rt_buffers(Render_Engine *data __UNUSED__,
2148 Render_Engine_GL_Surface *sfc)
2149{
2150 // Render Target texture
2151 glGenTextures(1, &sfc->rt_tex );
2152
2153 // Depth RenderBuffer - Create storage here...
2154 if (sfc->depth_bits != EVAS_GL_DEPTH_NONE)
2155 glGenRenderbuffers(1, &sfc->rb_depth);
2156
2157 // Stencil RenderBuffer - Create Storage here...
2158 if (sfc->stencil_bits != EVAS_GL_STENCIL_NONE)
2159 glGenRenderbuffers(1, &sfc->rb_stencil);
2160
2161 return 1;
2162}
2163
2164static int
2165_attach_fbo_surface(Render_Engine *data __UNUSED__,
2166 Render_Engine_GL_Surface *sfc,
2167 Render_Engine_GL_Context *ctx)
2168{
2169 int fb_status;
2170
2171 // Initialize Texture
2172 glBindTexture(GL_TEXTURE_2D, sfc->rt_tex );
2173 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
2174 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
2175 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
2176 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
2177 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, sfc->w, sfc->h, 0,
2178 GL_RGBA, GL_UNSIGNED_BYTE, NULL);
2179 glBindTexture(GL_TEXTURE_2D, 0);
2180
2181
2182 // Attach texture to FBO
2183 glBindFramebuffer(GL_FRAMEBUFFER, ctx->context_fbo);
2184 glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
2185 GL_TEXTURE_2D, sfc->rt_tex, 0);
2186
2187 // Depth RenderBuffer - Attach it to FBO
2188 if (sfc->depth_bits != EVAS_GL_DEPTH_NONE)
2189 {
2190 glBindRenderbuffer(GL_RENDERBUFFER, sfc->rb_depth);
2191 glRenderbufferStorage(GL_RENDERBUFFER, sfc->rb_depth_fmt,
2192 sfc->w, sfc->h);
2193 glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
2194 GL_RENDERBUFFER, sfc->rb_depth);
2195 glBindRenderbuffer(GL_RENDERBUFFER, 0);
2196 }
2197
2198 // Stencil RenderBuffer - Attach it to FBO
2199 if (sfc->stencil_bits != EVAS_GL_STENCIL_NONE)
2200 {
2201 glBindRenderbuffer(GL_RENDERBUFFER, sfc->rb_stencil);
2202 glRenderbufferStorage(GL_RENDERBUFFER, sfc->rb_stencil_fmt,
2203 sfc->w, sfc->h);
2204 glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT,
2205 GL_RENDERBUFFER, sfc->rb_stencil);
2206 glBindRenderbuffer(GL_RENDERBUFFER, 0);
2207 }
2208
2209 // Check FBO for completeness
2210 fb_status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
2211 if (fb_status != GL_FRAMEBUFFER_COMPLETE)
2212 {
2213 ERR("FBO not complete!");
2214 return 0;
2215 }
2216
2217 return 1;
2218}
2219
2220
2221static void *
2222eng_gl_surface_create(void *data, void *config, int w, int h)
2223{
2224 Render_Engine *re;
2225 Render_Engine_GL_Surface *sfc;
2226 Render_Engine_GL_Resource *rsc;
2227 Evas_GL_Config *cfg;
2228 int ret;
2229
2230 sfc = calloc(1, sizeof(Render_Engine_GL_Surface));
2231 if (!sfc) return NULL;
2232
2233 re = (Render_Engine *)data;
2234 cfg = (Evas_GL_Config *)config;
2235
2236 sfc->initialized = 0;
2237 sfc->fbo_attached = 0;
2238 sfc->w = w;
2239 sfc->h = h;
2240 sfc->depth_bits = cfg->depth_bits;
2241 sfc->stencil_bits = cfg->stencil_bits;
2242 sfc->rt_tex = 0;
2243 sfc->rb_depth = 0;
2244 sfc->rb_stencil = 0;
2245
2246 // Set the internal format based on the config
2247 if (!_set_internal_config(sfc, cfg))
2248 {
2249 ERR("Unsupported Format!");
2250 free(sfc);
2251 return NULL;
2252 }
2253
2254 // Create internal resource context if it hasn't been created already
2255 if ((rsc = eina_tls_get(resource_key)) == NULL)
2256 {
2257 if ((rsc = _create_internal_glue_resources(re)) == NULL)
2258 {
2259 ERR("Error creating internal resources.");
2260 free(sfc);
2261 return NULL;
2262 }
2263 }
2264
2265 // I'm using evas's original context to create the render target texture
2266 // This is to prevent awkwardness in using native_surface_get() function
2267 // If the rt texture creation is deferred till the context is created and
2268 // make_current called, the user can't call native_surface_get() right
2269 // after the surface is created. hence this is done here using evas' context.
2270 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface, rsc->surface, rsc->context);
2271 if (!ret)
2272 {
2273 ERR("xxxMakeCurrent() failed!");
2274 free(sfc);
2275 return NULL;
2276 }
2277
2278 // Create Render texture
2279 if (!_create_rt_buffers(re, sfc))
2280 {
2281 ERR("_create_rt_buffers() failed.");
2282 free(sfc);
2283 return NULL;
2284 }
2285
2286 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
2287 if (!ret)
2288 {
2289 ERR("xxxMakeCurrent() failed!");
2290 free(sfc);
2291 return NULL;
2292 }
2293
2294 return sfc;
2295}
2296
2297static int
2298eng_gl_surface_destroy(void *data, void *surface)
2299{
2300 Render_Engine *re;
2301 Render_Engine_GL_Surface *sfc;
2302 Render_Engine_GL_Resource *rsc;
2303 int ret;
2304
2305 re = (Render_Engine *)data;
2306 sfc = (Render_Engine_GL_Surface*)surface;
2307
2308 if (!sfc) return 0;
2309
2310 if ((rsc = eina_tls_get(resource_key)) == EINA_FALSE) return 0;
2311
2312 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface, rsc->surface, rsc->context);
2313 if (!ret)
2314 {
2315 ERR("xxxMakeCurrent() failed!");
2316 return 0;
2317 }
2318
2319 // Delete FBO/RBO and Texture here
2320 if (sfc->rt_tex)
2321 glDeleteTextures(1, &sfc->rt_tex);
2322
2323 if (sfc->rb_depth)
2324 glDeleteRenderbuffers(1, &sfc->rb_depth);
2325
2326 if (sfc->rb_stencil)
2327 glDeleteRenderbuffers(1, &sfc->rb_stencil);
2328
2329 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
2330 if (!ret)
2331 {
2332 ERR("xxxMakeCurrent() failed!");
2333 free(sfc);
2334 return 0;
2335 }
2336
2337 free(sfc);
2338 surface = NULL;
2339
2340 return 1;
2341}
2342
2343static void *
2344eng_gl_context_create(void *data, void *share_context)
2345{
2346 Render_Engine *re;
2347 Render_Engine_GL_Context *ctx;
2348 Render_Engine_GL_Context *share_ctx;
2349 int context_attrs[3];
2350
2351 ctx = calloc(1, sizeof(Render_Engine_GL_Context));
2352
2353 if (!ctx) return NULL;
2354
2355 re = (Render_Engine *)data;
2356 share_ctx = (Render_Engine_GL_Context *)share_context;
2357
2358 // Set the share context to Evas' GL context if share_context is NULL.
2359 // Otherwise set it to the given share_context.
2360
2361 // EGL
2362 context_attrs[0] = EGL_CONTEXT_CLIENT_VERSION;
2363 context_attrs[1] = 2;
2364 context_attrs[2] = EGL_NONE;
2365
2366 if (share_ctx)
2367 {
2368 ctx->context = eglCreateContext(re->win->egl_disp,
2369 re->win->egl_config,
2370 share_ctx->context, // Share Context
2371 context_attrs);
2372 }
2373 else
2374 {
2375 ctx->context = eglCreateContext(re->win->egl_disp,
2376 re->win->egl_config,
2377 re->win->egl_context[0], // Evas' GL Context
2378 context_attrs);
2379 }
2380
2381 if (!ctx->context)
2382 {
2383 ERR("eglCreateContext() fail. code=%#x", eglGetError());
2384 return NULL;
2385 }
2386
2387 ctx->initialized = 0;
2388 ctx->context_fbo = 0;
2389 ctx->current_sfc = NULL;
2390
2391 return ctx;
2392}
2393
2394static int
2395eng_gl_context_destroy(void *data, void *context)
2396{
2397 Render_Engine *re;
2398 Render_Engine_GL_Context *ctx;
2399 Render_Engine_GL_Resource *rsc;
2400 int ret;
2401
2402 re = (Render_Engine *)data;
2403 ctx = (Render_Engine_GL_Context*)context;
2404
2405 if (!ctx) return 0;
2406
2407 if ((rsc = eina_tls_get(resource_key)) == EINA_FALSE) return 0;
2408
2409 // 1. Do a make current with the given context
2410 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface,
2411 rsc->surface, ctx->context);
2412 if (!ret)
2413 {
2414 ERR("xxxMakeCurrent() failed!");
2415 return 0;
2416 }
2417
2418 // 2. Delete the FBO
2419 if (ctx->context_fbo)
2420 glDeleteFramebuffers(1, &ctx->context_fbo);
2421
2422 // 3. Destroy the Context
2423 eglDestroyContext(re->win->egl_disp, ctx->context);
2424
2425 ctx->context = EGL_NO_CONTEXT;
2426
2427 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE,
2428 EGL_NO_SURFACE, EGL_NO_CONTEXT);
2429 if (!ret)
2430 {
2431 ERR("xxxMakeCurrent() failed!");
2432 return 0;
2433 }
2434
2435 free(ctx);
2436 context = NULL;
2437
2438 return 1;
2439}
2440
2441static int
2442eng_gl_make_current(void *data __UNUSED__, void *surface, void *context)
2443{
2444 Render_Engine *re;
2445 Render_Engine_GL_Surface *sfc;
2446 Render_Engine_GL_Context *ctx;
2447 int ret = 0;
2448 Render_Engine_GL_Resource *rsc;
2449
2450 re = (Render_Engine *)data;
2451 sfc = (Render_Engine_GL_Surface*)surface;
2452 ctx = (Render_Engine_GL_Context*)context;
2453
2454 // Unset surface/context
2455 if ((!sfc) || (!ctx))
2456 {
2457 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE,
2458 EGL_NO_SURFACE, EGL_NO_CONTEXT);
2459 if (!ret)
2460 {
2461 ERR("xxxMakeCurrent() failed!");
2462 return 0;
2463 }
2464
2465 if (ctx) ctx->current_sfc = NULL;
2466 if (sfc) sfc->current_ctx = NULL;
2467 current_evgl_ctx = NULL;
2468 return 1;
2469 }
2470
2471 // Do a make current only if it's not already current
2472 if ((rsc = eina_tls_get(resource_key)) == EINA_FALSE) return 0;
2473
2474 if ((eglGetCurrentContext() != ctx->context) ||
2475 (eglGetCurrentSurface(EGL_READ) != rsc->surface) ||
2476 (eglGetCurrentSurface(EGL_DRAW) != rsc->surface) )
2477 {
2478 // Flush remainder of what's in Evas' pipeline
2479 if (re->win) eng_window_use(NULL);
2480
2481 // Do a make current
2482 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface,
2483 rsc->surface, ctx->context);
2484 if (!ret)
2485 {
2486 ERR("xxxMakeCurrent() failed!");
2487 return 0;
2488 }
2489 }
2490
2491 // Create FBO if not already created
2492 if (!ctx->initialized)
2493 {
2494 glGenFramebuffers(1, &ctx->context_fbo);
2495 ctx->initialized = 1;
2496 }
2497
2498 // Attach FBO if it hasn't been attached or if surface changed
2499 if ((!sfc->fbo_attached) || (ctx->current_sfc != sfc))
2500 {
2501 if (!_attach_fbo_surface(re, sfc, ctx))
2502 {
2503 ERR("_attach_fbo_surface() failed.");
2504 return 0;
2505 }
2506
2507 if (ctx->current_fbo)
2508 // Bind to the previously bound buffer
2509 glBindFramebuffer(GL_FRAMEBUFFER, ctx->current_fbo);
2510 else
2511 // Bind FBO
2512 glBindFramebuffer(GL_FRAMEBUFFER, ctx->context_fbo);
2513
2514 sfc->fbo_attached = 1;
2515 }
2516
2517 // Set the current surface/context
2518 ctx->current_sfc = sfc;
2519 sfc->current_ctx = ctx;
2520 current_evgl_ctx = ctx;
2521
2522 return 1;
2523}
2524
2525static void *
2526eng_gl_string_query(void *data __UNUSED__, int name)
2527{
2528 switch(name)
2529 {
2530 case EVAS_GL_EXTENSIONS:
2531 return (void*)_evasgl_ext_string;
2532 default:
2533 return NULL;
2534 };
2535}
2536
2537static void *
2538eng_gl_proc_address_get(void *data __UNUSED__, const char *name)
2539{
2540 if (glsym_eglGetProcAddress) return glsym_eglGetProcAddress(name);
2541 return dlsym(RTLD_DEFAULT, name);
2542}
2543
2544static int
2545eng_gl_native_surface_get(void *data, void *surface, void *native_surface)
2546{
2547 Render_Engine *re;
2548 Render_Engine_GL_Surface *sfc;
2549 Evas_Native_Surface *ns;
2550
2551 re = (Render_Engine *)data;
2552 sfc = (Render_Engine_GL_Surface*)surface;
2553 ns = (Evas_Native_Surface*)native_surface;
2554
2555 ns->type = EVAS_NATIVE_SURFACE_OPENGL;
2556 ns->version = EVAS_NATIVE_SURFACE_VERSION;
2557 ns->data.opengl.texture_id = sfc->rt_tex;
2558 ns->data.opengl.x = 0;
2559 ns->data.opengl.y = 0;
2560 ns->data.opengl.w = sfc->w;
2561 ns->data.opengl.h = sfc->h;
2562
2563 return 1;
2564}
2565
2566
2567static const GLubyte *
2568evgl_glGetString(GLenum name)
2569{
2570 if (name == GL_EXTENSIONS)
2571 return (GLubyte *)_gl_ext_string; //glGetString(GL_EXTENSIONS);
2572 else
2573 return glGetString(name);
2574}
2575
2576static void
2577evgl_glBindFramebuffer(GLenum target, GLuint framebuffer)
2578{
2579 Render_Engine_GL_Context *ctx = current_evgl_ctx;
2580
2581 // Take care of BindFramebuffer 0 issue
2582 if (framebuffer==0)
2583 {
2584 if (ctx)
2585 {
2586 glBindFramebuffer(target, ctx->context_fbo);
2587 ctx->current_fbo = 0;
2588 }
2589 }
2590 else
2591 {
2592 glBindFramebuffer(target, framebuffer);
2593
2594 // Save this for restore when doing make current
2595 if (ctx)
2596 ctx->current_fbo = framebuffer;
2597 }
2598}
2599
2600static void
2601evgl_glBindRenderbuffer(GLenum target, GLuint renderbuffer)
2602{
2603 // Add logic to take care when renderbuffer=0
2604 // On a second thought we don't need this
2605 glBindRenderbuffer(target, renderbuffer);
2606}
2607
2608static void
2609evgl_glClearDepthf(GLclampf depth)
2610{
2611 glClearDepthf(depth);
2612}
2613
2614static void
2615evgl_glDepthRangef(GLclampf zNear, GLclampf zFar)
2616{
2617 glDepthRangef(zNear, zFar);
2618}
2619
2620static void
2621evgl_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
2622{
2623 glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
2624}
2625
2626static void
2627evgl_glReleaseShaderCompiler(void)
2628{
2629 glReleaseShaderCompiler();
2630}
2631
2632static void
2633evgl_glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length)
2634{
2635 glShaderBinary(n, shaders, binaryformat, binary, length);
2636}
2637
2638//--------------------------------//
2639//#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
2640// EGL Extensions
2641static void *
2642evgl_evasglCreateImage(int target, void* buffer, int *attrib_list)
2643{
2644 if (current_engine)
2645 {
2646 return glsym_eglCreateImage(current_engine->win->egl_disp,
2647 EGL_NO_CONTEXT,
2648 target,
2649 buffer,
2650 attrib_list);
2651 }
2652 else
2653 {
2654 ERR("Invalid Engine... (Can't acccess EGL Display)\n");
2655 return NULL;
2656 }
2657}
2658
2659static void
2660evgl_evasglDestroyImage(EvasGLImage image)
2661{
2662 if (current_engine)
2663 glsym_eglDestroyImage(current_engine->win->egl_disp, image);
2664 else
2665 ERR("Invalid Engine... (Can't acccess EGL Display)\n");
2666}
2667
2668static void
2669evgl_glEvasGLImageTargetTexture2DOES(GLenum target, EvasGLImage image)
2670{
2671 glsym_glEGLImageTargetTexture2DOES(target, image);
2672}
2673
2674static void
2675evgl_glEvasGLImageTargetRenderbufferStorageOES(GLenum target, EvasGLImage image)
2676{
2677 glsym_glEGLImageTargetTexture2DOES(target, image);
2678}
2679
2680//--------------------------------//
2681
2682
2683static void *
2684eng_gl_api_get(void *data)
2685{
2686 Render_Engine *re;
2687
2688 re = (Render_Engine *)data;
2689
2690 gl_funcs.version = EVAS_GL_API_VERSION;
2691
2692#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, )
2693 // GLES 2.0
2694 ORD(glActiveTexture);
2695 ORD(glAttachShader);
2696 ORD(glBindAttribLocation);
2697 ORD(glBindBuffer);
2698 ORD(glBindTexture);
2699 ORD(glBlendColor);
2700 ORD(glBlendEquation);
2701 ORD(glBlendEquationSeparate);
2702 ORD(glBlendFunc);
2703 ORD(glBlendFuncSeparate);
2704 ORD(glBufferData);
2705 ORD(glBufferSubData);
2706 ORD(glCheckFramebufferStatus);
2707 ORD(glClear);
2708 ORD(glClearColor);
2709// ORD(glClearDepthf);
2710 ORD(glClearStencil);
2711 ORD(glColorMask);
2712 ORD(glCompileShader);
2713 ORD(glCompressedTexImage2D);
2714 ORD(glCompressedTexSubImage2D);
2715 ORD(glCopyTexImage2D);
2716 ORD(glCopyTexSubImage2D);
2717 ORD(glCreateProgram);
2718 ORD(glCreateShader);
2719 ORD(glCullFace);
2720 ORD(glDeleteBuffers);
2721 ORD(glDeleteFramebuffers);
2722 ORD(glDeleteProgram);
2723 ORD(glDeleteRenderbuffers);
2724 ORD(glDeleteShader);
2725 ORD(glDeleteTextures);
2726 ORD(glDepthFunc);
2727 ORD(glDepthMask);
2728// ORD(glDepthRangef);
2729 ORD(glDetachShader);
2730 ORD(glDisable);
2731 ORD(glDisableVertexAttribArray);
2732 ORD(glDrawArrays);
2733 ORD(glDrawElements);
2734 ORD(glEnable);
2735 ORD(glEnableVertexAttribArray);
2736 ORD(glFinish);
2737 ORD(glFlush);
2738 ORD(glFramebufferRenderbuffer);
2739 ORD(glFramebufferTexture2D);
2740 ORD(glFrontFace);
2741 ORD(glGenBuffers);
2742 ORD(glGenerateMipmap);
2743 ORD(glGenFramebuffers);
2744 ORD(glGenRenderbuffers);
2745 ORD(glGenTextures);
2746 ORD(glGetActiveAttrib);
2747 ORD(glGetActiveUniform);
2748 ORD(glGetAttachedShaders);
2749 ORD(glGetAttribLocation);
2750 ORD(glGetBooleanv);
2751 ORD(glGetBufferParameteriv);
2752 ORD(glGetError);
2753 ORD(glGetFloatv);
2754 ORD(glGetFramebufferAttachmentParameteriv);
2755 ORD(glGetIntegerv);
2756 ORD(glGetProgramiv);
2757 ORD(glGetProgramInfoLog);
2758 ORD(glGetRenderbufferParameteriv);
2759 ORD(glGetShaderiv);
2760 ORD(glGetShaderInfoLog);
2761// ORD(glGetShaderPrecisionFormat);
2762 ORD(glGetShaderSource);
2763// ORD(glGetString);
2764 ORD(glGetTexParameterfv);
2765 ORD(glGetTexParameteriv);
2766 ORD(glGetUniformfv);
2767 ORD(glGetUniformiv);
2768 ORD(glGetUniformLocation);
2769 ORD(glGetVertexAttribfv);
2770 ORD(glGetVertexAttribiv);
2771 ORD(glGetVertexAttribPointerv);
2772 ORD(glHint);
2773 ORD(glIsBuffer);
2774 ORD(glIsEnabled);
2775 ORD(glIsFramebuffer);
2776 ORD(glIsProgram);
2777 ORD(glIsRenderbuffer);
2778 ORD(glIsShader);
2779 ORD(glIsTexture);
2780 ORD(glLineWidth);
2781 ORD(glLinkProgram);
2782 ORD(glPixelStorei);
2783 ORD(glPolygonOffset);
2784 ORD(glReadPixels);
2785// ORD(glReleaseShaderCompiler);
2786 ORD(glRenderbufferStorage);
2787 ORD(glSampleCoverage);
2788 ORD(glScissor);
2789// ORD(glShaderBinary);
2790 ORD(glShaderSource);
2791 ORD(glStencilFunc);
2792 ORD(glStencilFuncSeparate);
2793 ORD(glStencilMask);
2794 ORD(glStencilMaskSeparate);
2795 ORD(glStencilOp);
2796 ORD(glStencilOpSeparate);
2797 ORD(glTexImage2D);
2798 ORD(glTexParameterf);
2799 ORD(glTexParameterfv);
2800 ORD(glTexParameteri);
2801 ORD(glTexParameteriv);
2802 ORD(glTexSubImage2D);
2803 ORD(glUniform1f);
2804 ORD(glUniform1fv);
2805 ORD(glUniform1i);
2806 ORD(glUniform1iv);
2807 ORD(glUniform2f);
2808 ORD(glUniform2fv);
2809 ORD(glUniform2i);
2810 ORD(glUniform2iv);
2811 ORD(glUniform3f);
2812 ORD(glUniform3fv);
2813 ORD(glUniform3i);
2814 ORD(glUniform3iv);
2815 ORD(glUniform4f);
2816 ORD(glUniform4fv);
2817 ORD(glUniform4i);
2818 ORD(glUniform4iv);
2819 ORD(glUniformMatrix2fv);
2820 ORD(glUniformMatrix3fv);
2821 ORD(glUniformMatrix4fv);
2822 ORD(glUseProgram);
2823 ORD(glValidateProgram);
2824 ORD(glVertexAttrib1f);
2825 ORD(glVertexAttrib1fv);
2826 ORD(glVertexAttrib2f);
2827 ORD(glVertexAttrib2fv);
2828 ORD(glVertexAttrib3f);
2829 ORD(glVertexAttrib3fv);
2830 ORD(glVertexAttrib4f);
2831 ORD(glVertexAttrib4fv);
2832 ORD(glVertexAttribPointer);
2833 ORD(glViewport);
2834#undef ORD
2835
2836#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, glsym_)
2837 // Extensions
2838 ORD(glGetProgramBinaryOES);
2839 ORD(glProgramBinaryOES);
2840 ORD(glMapBufferOES);
2841 ORD(glUnmapBufferOES);
2842 ORD(glGetBufferPointervOES);
2843 ORD(glTexImage3DOES);
2844 ORD(glTexSubImage3DOES);
2845 ORD(glCopyTexSubImage3DOES);
2846 ORD(glCompressedTexImage3DOES);
2847 ORD(glCompressedTexSubImage3DOES);
2848 ORD(glFramebufferTexture3DOES);
2849 ORD(glGetPerfMonitorGroupsAMD);
2850 ORD(glGetPerfMonitorCountersAMD);
2851 ORD(glGetPerfMonitorGroupStringAMD);
2852 ORD(glGetPerfMonitorCounterStringAMD);
2853 ORD(glGetPerfMonitorCounterInfoAMD);
2854 ORD(glGenPerfMonitorsAMD);
2855 ORD(glDeletePerfMonitorsAMD);
2856 ORD(glSelectPerfMonitorCountersAMD);
2857 ORD(glBeginPerfMonitorAMD);
2858 ORD(glEndPerfMonitorAMD);
2859 ORD(glGetPerfMonitorCounterDataAMD);
2860 ORD(glDiscardFramebufferEXT);
2861 ORD(glMultiDrawArraysEXT);
2862 ORD(glMultiDrawElementsEXT);
2863 ORD(glDeleteFencesNV);
2864 ORD(glGenFencesNV);
2865 ORD(glIsFenceNV);
2866 ORD(glTestFenceNV);
2867 ORD(glGetFenceivNV);
2868 ORD(glFinishFenceNV);
2869 ORD(glSetFenceNV);
2870 ORD(glGetDriverControlsQCOM);
2871 ORD(glGetDriverControlStringQCOM);
2872 ORD(glEnableDriverControlQCOM);
2873 ORD(glDisableDriverControlQCOM);
2874 ORD(glExtGetTexturesQCOM);
2875 ORD(glExtGetBuffersQCOM);
2876 ORD(glExtGetRenderbuffersQCOM);
2877 ORD(glExtGetFramebuffersQCOM);
2878 ORD(glExtGetTexLevelParameterivQCOM);
2879 ORD(glExtTexObjectStateOverrideiQCOM);
2880 ORD(glExtGetTexSubImageQCOM);
2881 ORD(glExtGetBufferPointervQCOM);
2882 ORD(glExtGetShadersQCOM);
2883 ORD(glExtGetProgramsQCOM);
2884 ORD(glExtIsProgramBinaryQCOM);
2885 ORD(glExtGetProgramBinarySourceQCOM);
2886#undef ORD
2887
2888// Override functions wrapped by Evas_GL
2889#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, evgl_)
2890 ORD(glBindFramebuffer);
2891 ORD(glBindRenderbuffer);
2892
2893 // GLES2.0 API compat on top of desktop gl
2894 ORD(glClearDepthf);
2895 ORD(glDepthRangef);
2896 ORD(glGetShaderPrecisionFormat);
2897 ORD(glReleaseShaderCompiler);
2898 ORD(glShaderBinary);
2899
2900 ORD(glGetString);
2901
2902 // GLES 2.0 Extensions that needs wrapping
2903 ORD(evasglCreateImage);
2904 ORD(evasglDestroyImage);
2905 ORD(glEvasGLImageTargetTexture2DOES);
2906 ORD(glEvasGLImageTargetRenderbufferStorageOES);
2907
2908#undef ORD
2909
2910 return &gl_funcs;
2911}
2912
2913static int
2914eng_image_load_error_get(void *data __UNUSED__, void *image)
2915{
2916 Evas_GL_Image *im;
2917
2918 if (!image) return EVAS_LOAD_ERROR_NONE;
2919 im = image;
2920 return im->im->cache_entry.load_error;
2921}
2922
2923static Eina_Bool
2924eng_image_animated_get(void *data __UNUSED__, void *image)
2925{
2926 Evas_GL_Image *gim = image;
2927 Image_Entry *im;
2928
2929 if (!gim) return EINA_FALSE;
2930 im = (Image_Entry *)gim->im;
2931 if (!im) return EINA_FALSE;
2932
2933 return im->flags.animated;
2934}
2935
2936static int
2937eng_image_animated_frame_count_get(void *data __UNUSED__, void *image)
2938{
2939 Evas_GL_Image *gim = image;
2940 Image_Entry *im;
2941
2942 if (!gim) return -1;
2943 im = (Image_Entry *)gim->im;
2944 if (!im) return -1;
2945
2946 if (!im->flags.animated) return -1;
2947 return im->frame_count;
2948}
2949
2950static Evas_Image_Animated_Loop_Hint
2951eng_image_animated_loop_type_get(void *data __UNUSED__, void *image)
2952{
2953 Evas_GL_Image *gim = image;
2954 Image_Entry *im;
2955
2956 if (!gim) return EVAS_IMAGE_ANIMATED_HINT_NONE;
2957 im = (Image_Entry *)gim->im;
2958 if (!im) return EVAS_IMAGE_ANIMATED_HINT_NONE;
2959
2960 if (!im->flags.animated) return EVAS_IMAGE_ANIMATED_HINT_NONE;
2961 return im->loop_hint;
2962}
2963
2964static int
2965eng_image_animated_loop_count_get(void *data __UNUSED__, void *image)
2966{
2967 Evas_GL_Image *gim = image;
2968 Image_Entry *im;
2969
2970 if (!gim) return -1;
2971 im = (Image_Entry *)gim->im;
2972 if (!im) return -1;
2973
2974 if (!im->flags.animated) return -1;
2975 return im->loop_count;
2976}
2977
2978static double
2979eng_image_animated_frame_duration_get(void *data __UNUSED__, void *image, int start_frame, int frame_num)
2980{
2981 Evas_GL_Image *gim = image;
2982 Image_Entry *im;
2983
2984 if (!gim) return -1;
2985 im = (Image_Entry *)gim->im;
2986 if (!im) return -1;
2987
2988 if (!im->flags.animated) return -1;
2989 return evas_common_load_rgba_image_frame_duration_from_file(im, start_frame, frame_num);
2990}
2991
2992static Eina_Bool
2993eng_image_animated_frame_set(void *data __UNUSED__, void *image, int frame_index)
2994{
2995 Evas_GL_Image *gim = image;
2996 Image_Entry *im;
2997
2998 if (!gim) return EINA_FALSE;
2999 im = (Image_Entry *)gim->im;
3000 if (!im) return EINA_FALSE;
3001
3002 if (!im->flags.animated) return EINA_FALSE;
3003 if (im->cur_frame == frame_index) return EINA_FALSE;
3004
3005 im->cur_frame = frame_index;
3006 return EINA_TRUE;
3007}
3008
3009static Eina_Bool
3010eng_image_can_region_get(void *data __UNUSED__, void *image)
3011{
3012 Evas_GL_Image *gim = image;
3013 Image_Entry *im;
3014 if (!gim) return EINA_FALSE;
3015 im = (Image_Entry *)gim->im;
3016 if (!im) return EINA_FALSE;
3017 return ((Evas_Image_Load_Func*) im->info.loader)->do_region;
3018}
3019
3020
3021static void
3022eng_image_max_size_get(void *data, int *maxw, int *maxh)
3023{
3024 Render_Engine *re = (Render_Engine *)data;
3025 if (maxw) *maxw = re->win->gl_context->shared->info.max_texture_size;
3026 if (maxh) *maxh = re->win->gl_context->shared->info.max_texture_size;
3027}
3028
3029static int
3030module_open(Evas_Module *em)
3031{
3032 static Eina_Bool xrm_inited = EINA_FALSE;
3033 if (!xrm_inited)
3034 {
3035 xrm_inited = EINA_TRUE;
3036 XrmInitialize();
3037 }
3038
3039 if (!em) return 0;
3040 if (!evas_gl_common_module_open()) return 0;
3041 /* get whatever engine module we inherit from */
3042 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
3043 if (_evas_engine_wl_egl_log_dom < 0)
3044 {
3045 _evas_engine_wl_egl_log_dom =
3046 eina_log_domain_register("evas-gl_x11", EVAS_DEFAULT_LOG_COLOR);
3047 }
3048
3049 if (_evas_engine_wl_egl_log_dom < 0)
3050 {
3051 EINA_LOG_ERR("Can not create a module log domain.");
3052 return 0;
3053 }
3054 /* store it for later use */
3055 func = pfunc;
3056 /* now to override methods */
3057 #define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
3058 ORD(info);
3059 ORD(info_free);
3060 ORD(setup);
3061 ORD(canvas_alpha_get);
3062 ORD(output_free);
3063 ORD(output_resize);
3064 ORD(output_tile_size_set);
3065 ORD(output_redraws_rect_add);
3066 ORD(output_redraws_rect_del);
3067 ORD(output_redraws_clear);
3068 ORD(output_redraws_next_update_get);
3069 ORD(output_redraws_next_update_push);
3070 ORD(context_cutout_add);
3071 ORD(context_cutout_clear);
3072 ORD(output_flush);
3073 ORD(output_idle_flush);
3074 ORD(output_dump);
3075 ORD(rectangle_draw);
3076 ORD(line_draw);
3077 ORD(polygon_point_add);
3078 ORD(polygon_points_clear);
3079 ORD(polygon_draw);
3080
3081 ORD(image_load);
3082 ORD(image_new_from_data);
3083 ORD(image_new_from_copied_data);
3084 ORD(image_free);
3085 ORD(image_size_get);
3086 ORD(image_size_set);
3087 ORD(image_dirty_region);
3088 ORD(image_data_get);
3089 ORD(image_data_put);
3090 ORD(image_data_preload_request);
3091 ORD(image_data_preload_cancel);
3092 ORD(image_alpha_set);
3093 ORD(image_alpha_get);
3094 ORD(image_border_set);
3095 ORD(image_border_get);
3096 ORD(image_draw);
3097 ORD(image_comment_get);
3098 ORD(image_format_get);
3099 ORD(image_colorspace_set);
3100 ORD(image_colorspace_get);
3101 ORD(image_can_region_get);
3102 ORD(image_mask_create);
3103 ORD(image_native_set);
3104 ORD(image_native_get);
3105#if 0 // filtering disabled
3106 ORD(image_draw_filtered);
3107 ORD(image_filtered_get);
3108 ORD(image_filtered_save);
3109 ORD(image_filtered_free);
3110#endif
3111
3112 ORD(font_draw);
3113
3114 ORD(image_scale_hint_set);
3115 ORD(image_scale_hint_get);
3116 ORD(image_stride_get);
3117
3118 ORD(image_map_draw);
3119 ORD(image_map_surface_new);
3120 ORD(image_map_surface_free);
3121
3122 ORD(image_content_hint_set);
3123 ORD(image_content_hint_get);
3124
3125 ORD(image_cache_flush);
3126 ORD(image_cache_set);
3127 ORD(image_cache_get);
3128
3129 ORD(gl_surface_create);
3130 ORD(gl_surface_destroy);
3131 ORD(gl_context_create);
3132 ORD(gl_context_destroy);
3133 ORD(gl_make_current);
3134 ORD(gl_string_query);
3135 ORD(gl_proc_address_get);
3136 ORD(gl_native_surface_get);
3137 ORD(gl_api_get);
3138
3139 ORD(image_load_error_get);
3140
3141 /* now advertise out own api */
3142 ORD(image_animated_get);
3143 ORD(image_animated_frame_count_get);
3144 ORD(image_animated_loop_type_get);
3145 ORD(image_animated_loop_count_get);
3146 ORD(image_animated_frame_duration_get);
3147 ORD(image_animated_frame_set);
3148
3149 ORD(image_max_size_get);
3150
3151 /* now advertise out own api */
3152 em->functions = (void *)(&func);
3153 return 1;
3154}
3155
3156static void
3157module_close(Evas_Module *em __UNUSED__)
3158{
3159 eina_log_domain_unregister(_evas_engine_wl_egl_log_dom);
3160 evas_gl_common_module_close();
3161}
3162
3163static Evas_Module_Api evas_modapi =
3164{
3165 EVAS_MODULE_API_VERSION, "wayland_egl", "none", {module_open, module_close}
3166};
3167
3168EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, gl_x11);
3169
3170#ifndef EVAS_STATIC_BUILD_GL_XLIB
3171EVAS_EINA_MODULE_DEFINE(engine, gl_x11);
3172#endif
3173
3174/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/
diff --git a/libraries/evas/src/modules/engines/wayland_egl/evas_engine.h b/libraries/evas/src/modules/engines/wayland_egl/evas_engine.h
new file mode 100644
index 0000000..204d793
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_egl/evas_engine.h
@@ -0,0 +1,82 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3
4#include "config.h"
5#include "evas_common.h"
6#include "evas_private.h"
7#include "evas_gl_common.h"
8#include "Evas.h"
9#include "Evas_Engine_Wayland_Egl.h"
10
11#define GL_GLEXT_PROTOTYPES
12
13#include <EGL/egl.h>
14#include <GLES2/gl2.h>
15#include <GLES2/gl2ext.h>
16#include <wayland-egl.h>
17
18extern int _evas_engine_wl_egl_log_dom;
19#ifdef ERR
20# undef ERR
21#endif
22#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
23
24#ifdef DBG
25# undef DBG
26#endif
27#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
28
29#ifdef INF
30# undef INF
31#endif
32#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
33
34#ifdef WRN
35# undef WRN
36#endif
37#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
38
39#ifdef CRIT
40# undef CRIT
41#endif
42#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
43
44typedef struct _Evas_GL_Wl_Window Evas_GL_Wl_Window;
45
46struct _Evas_GL_Wl_Window
47{
48 struct wl_display *disp;
49 struct wl_egl_window *win;
50 struct wl_surface *surface;
51 int w, h;
52 int screen;
53// XVisualInfo *visualinfo;
54// Visual *visual;
55// Colormap colormap;
56 int depth;
57 int alpha;
58 int rot;
59 Evas_Engine_GL_Context *gl_context;
60 struct {
61 int redraw : 1;
62 int drew : 1;
63 int x1, y1, x2, y2;
64 } draw;
65 EGLContext egl_context[1];
66 EGLSurface egl_surface[1];
67 EGLConfig egl_config;
68 EGLDisplay egl_disp;
69 int surf : 1;
70};
71
72Evas_GL_Wl_Window *eng_window_new(struct wl_display *disp, struct wl_surface *surface, int screen,
73 int depth, int w, int h, int indirect,
74 int alpha, int rot);
75void eng_window_free(Evas_GL_Wl_Window *gw);
76void eng_window_use(Evas_GL_Wl_Window *gw);
77void eng_window_unsurf(Evas_GL_Wl_Window *gw);
78void eng_window_resurf(Evas_GL_Wl_Window *gw);
79
80int eng_best_depth_get(Evas_Engine_Info_Wayland_Egl *einfo);
81
82#endif
diff --git a/libraries/evas/src/modules/engines/wayland_egl/evas_wl_main.c b/libraries/evas/src/modules/engines/wayland_egl/evas_wl_main.c
new file mode 100644
index 0000000..537fcc6
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_egl/evas_wl_main.c
@@ -0,0 +1,323 @@
1#include "evas_engine.h"
2
3static Evas_GL_Wl_Window *_evas_gl_wl_window = NULL;
4
5static EGLContext context = EGL_NO_CONTEXT;
6
7// fixme: something is up/wrong here - dont know what tho...
8//#define NEWGL 1
9
10static int win_count = 0;
11
12Evas_GL_Wl_Window *
13eng_window_new(struct wl_display *disp, struct wl_surface *surface, int screen,
14 int depth, int w, int h, int indirect, int alpha, int rot)
15{
16 Evas_GL_Wl_Window *gw;
17 int context_attrs[3];
18 int config_attrs[40];
19 int major_version, minor_version;
20 int num_config, n = 0;
21 const GLubyte *vendor, *renderer, *version;
22
23 gw = calloc(1, sizeof(Evas_GL_Wl_Window));
24 if (!gw) return NULL;
25
26 win_count++;
27 gw->disp = disp;
28 gw->surface = surface;
29 gw->screen = screen;
30 gw->depth = depth;
31 gw->alpha = alpha;
32 gw->w = w;
33 gw->h = h;
34 gw->rot = rot;
35
36// EGL / GLES
37 context_attrs[0] = EGL_CONTEXT_CLIENT_VERSION;
38 context_attrs[1] = 2;
39 context_attrs[2] = EGL_NONE;
40
41#if defined(GLES_VARIETY_S3C6410)
42 if (gw->visualinfo->depth == 16) // 16bpp
43 {
44 config_attrs[n++] = EGL_SURFACE_TYPE;
45 config_attrs[n++] = EGL_WINDOW_BIT;
46 config_attrs[n++] = EGL_RENDERABLE_TYPE;
47 config_attrs[n++] = EGL_OPENGL_ES2_BIT;
48 config_attrs[n++] = EGL_RED_SIZE;
49 config_attrs[n++] = 5;
50 config_attrs[n++] = EGL_GREEN_SIZE;
51 config_attrs[n++] = 6;
52 config_attrs[n++] = EGL_BLUE_SIZE;
53 config_attrs[n++] = 5;
54 config_attrs[n++] = EGL_DEPTH_SIZE;
55 config_attrs[n++] = 0;
56 config_attrs[n++] = EGL_STENCIL_SIZE;
57 config_attrs[n++] = 0;
58 config_attrs[n++] = EGL_NONE;
59 }
60 else // 24/32bit. no one does 8bpp anymore. and 15bpp... dead
61 {
62 config_attrs[n++] = EGL_SURFACE_TYPE;
63 config_attrs[n++] = EGL_WINDOW_BIT;
64 config_attrs[n++] = EGL_RENDERABLE_TYPE;
65 config_attrs[n++] = EGL_OPENGL_ES2_BIT;
66 config_attrs[n++] = EGL_RED_SIZE;
67 config_attrs[n++] = 8;
68 config_attrs[n++] = EGL_GREEN_SIZE;
69 config_attrs[n++] = 8;
70 config_attrs[n++] = EGL_BLUE_SIZE;
71 config_attrs[n++] = 8;
72 config_attrs[n++] = EGL_DEPTH_SIZE;
73 config_attrs[n++] = 0;
74 config_attrs[n++] = EGL_STENCIL_SIZE;
75 config_attrs[n++] = 0;
76 config_attrs[n++] = EGL_NONE;
77 }
78#elif defined(GLES_VARIETY_SGX)
79 config_attrs[n++] = EGL_SURFACE_TYPE;
80 config_attrs[n++] = EGL_WINDOW_BIT;
81 config_attrs[n++] = EGL_RENDERABLE_TYPE;
82 config_attrs[n++] = EGL_OPENGL_ES2_BIT;
83# if 0
84// FIXME: n900 - omap3 sgx libs break here
85 config_attrs[n++] = EGL_RED_SIZE;
86 config_attrs[n++] = 1;
87 config_attrs[n++] = EGL_GREEN_SIZE;
88 config_attrs[n++] = 1;
89 config_attrs[n++] = EGL_BLUE_SIZE;
90 config_attrs[n++] = 1;
91// FIXME: end n900 breakage
92# endif
93 if (gw->alpha)
94 {
95 config_attrs[n++] = EGL_ALPHA_SIZE;
96 config_attrs[n++] = 1;
97 }
98 else
99 {
100 config_attrs[n++] = EGL_ALPHA_SIZE;
101 config_attrs[n++] = 0;
102 }
103 config_attrs[n++] = EGL_DEPTH_SIZE;
104 config_attrs[n++] = 0;
105 config_attrs[n++] = EGL_STENCIL_SIZE;
106 config_attrs[n++] = 0;
107 config_attrs[n++] = EGL_NONE;
108#endif
109
110 gw->egl_disp = eglGetDisplay((EGLNativeDisplayType)(gw->disp));
111 if (!gw->egl_disp)
112 {
113 ERR("eglGetDisplay() fail. code=%#x", eglGetError());
114 eng_window_free(gw);
115 return NULL;
116 }
117 if (!eglInitialize(gw->egl_disp, &major_version, &minor_version))
118 {
119 ERR("eglInitialize() fail. code=%#x", eglGetError());
120 eng_window_free(gw);
121 return NULL;
122 }
123 eglBindAPI(EGL_OPENGL_ES_API);
124 if (eglGetError() != EGL_SUCCESS)
125 {
126 ERR("eglBindAPI() fail. code=%#x", eglGetError());
127 eng_window_free(gw);
128 return NULL;
129 }
130
131 num_config = 0;
132 if (!eglChooseConfig(gw->egl_disp, config_attrs, &gw->egl_config,
133 1, &num_config) || (num_config != 1))
134 {
135 ERR("eglChooseConfig() fail. code=%#x", eglGetError());
136 eng_window_free(gw);
137 return NULL;
138 }
139
140 gw->win = wl_egl_window_create(gw->surface, gw->w, gw->h);
141
142 gw->egl_surface[0] = eglCreateWindowSurface(gw->egl_disp, gw->egl_config,
143 (EGLNativeWindowType)gw->win,
144 NULL);
145 if (gw->egl_surface[0] == EGL_NO_SURFACE)
146 {
147 ERR("eglCreateWindowSurface() fail for %#x. code=%#x",
148 (unsigned int)gw->win, eglGetError());
149 eng_window_free(gw);
150 return NULL;
151 }
152
153 if (context == EGL_NO_CONTEXT)
154 context = eglCreateContext(gw->egl_disp, gw->egl_config, NULL,
155 context_attrs);
156 gw->egl_context[0] = context;
157 if (gw->egl_context[0] == EGL_NO_CONTEXT)
158 {
159 ERR("eglCreateContext() fail. code=%#x", eglGetError());
160 eng_window_free(gw);
161 return NULL;
162 }
163
164 if (eglMakeCurrent(gw->egl_disp, gw->egl_surface[0], gw->egl_surface[0],
165 gw->egl_context[0]) == EGL_FALSE)
166 {
167 ERR("eglMakeCurrent() fail. code=%#x", eglGetError());
168 eng_window_free(gw);
169 return NULL;
170 }
171
172 vendor = glGetString(GL_VENDOR);
173 renderer = glGetString(GL_RENDERER);
174 version = glGetString(GL_VERSION);
175 if (!vendor) vendor = (unsigned char *)"-UNKNOWN-";
176 if (!renderer) renderer = (unsigned char *)"-UNKNOWN-";
177 if (!version) version = (unsigned char *)"-UNKNOWN-";
178 if (getenv("EVAS_GL_INFO"))
179 {
180 fprintf(stderr, "vendor: %s\n", vendor);
181 fprintf(stderr, "renderer: %s\n", renderer);
182 fprintf(stderr, "version: %s\n", version);
183 }
184
185 gw->gl_context = evas_gl_common_context_new();
186 if (!gw->gl_context)
187 {
188 eng_window_free(gw);
189 return NULL;
190 }
191 gw->gl_context->egldisp = gw->egl_disp;
192 eng_window_use(gw);
193 evas_gl_common_context_resize(gw->gl_context, w, h, rot);
194 gw->surf = 1;
195 return gw;
196 indirect = 0;
197}
198
199void
200eng_window_free(Evas_GL_Wl_Window *gw)
201{
202 int ref = 0;
203
204 win_count--;
205 eng_window_use(gw);
206 if (gw == _evas_gl_wl_window) _evas_gl_wl_window = NULL;
207// if (gw->win) wl_egl_window_destroy(gw->win);
208 if (gw->gl_context)
209 {
210 ref = gw->gl_context->references - 1;
211 evas_gl_common_context_free(gw->gl_context);
212 }
213 if (gw->egl_surface[0] != EGL_NO_SURFACE)
214 eglDestroySurface(gw->egl_disp, gw->egl_surface[0]);
215 eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
216 if (ref == 0)
217 {
218 if (context) eglDestroyContext(gw->egl_disp, context);
219 context = EGL_NO_CONTEXT;
220 eglTerminate(gw->egl_disp);
221 eglReleaseThread();
222 }
223 free(gw);
224}
225
226void
227eng_window_use(Evas_GL_Wl_Window *gw)
228{
229 Eina_Bool force_use = EINA_FALSE;
230
231 if (_evas_gl_wl_window)
232 {
233 if ((eglGetCurrentContext() !=
234 _evas_gl_wl_window->egl_context[0]) ||
235 (eglGetCurrentSurface(EGL_READ) !=
236 _evas_gl_wl_window->egl_surface[0]) ||
237 (eglGetCurrentSurface(EGL_DRAW) !=
238 _evas_gl_wl_window->egl_surface[0]))
239 force_use = EINA_TRUE;
240 }
241 if ((_evas_gl_wl_window != gw) || (force_use))
242 {
243 if (_evas_gl_wl_window)
244 {
245 evas_gl_common_context_use(_evas_gl_wl_window->gl_context);
246 evas_gl_common_context_flush(_evas_gl_wl_window->gl_context);
247 }
248 _evas_gl_wl_window = gw;
249 if (gw)
250 {
251 // EGL / GLES
252 if (gw->egl_surface[0] != EGL_NO_SURFACE)
253 {
254 if (eglMakeCurrent(gw->egl_disp, gw->egl_surface[0],
255 gw->egl_surface[0],
256 gw->egl_context[0]) == EGL_FALSE)
257 {
258 ERR("eglMakeCurrent() failed!");
259 }
260 }
261 }
262 }
263 if (gw) evas_gl_common_context_use(gw->gl_context);
264}
265
266void
267eng_window_unsurf(Evas_GL_Wl_Window *gw)
268{
269 if (!gw->surf) return;
270 if (!getenv("EVAS_GL_WIN_RESURF")) return;
271 if (getenv("EVAS_GL_INFO")) printf("unsurf %p\n", gw);
272
273 if (_evas_gl_wl_window)
274 evas_gl_common_context_flush(_evas_gl_wl_window->gl_context);
275 if (_evas_gl_wl_window == gw)
276 {
277 eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
278 if (gw->egl_surface[0] != EGL_NO_SURFACE)
279 eglDestroySurface(gw->egl_disp, gw->egl_surface[0]);
280 gw->egl_surface[0] = EGL_NO_SURFACE;
281 _evas_gl_wl_window = NULL;
282 }
283 gw->surf = 0;
284}
285
286void
287eng_window_resurf(Evas_GL_Wl_Window *gw)
288{
289 if (gw->surf) return;
290 if (getenv("EVAS_GL_INFO")) printf("resurf %p\n", gw);
291
292 gw->egl_surface[0] =
293 eglCreateWindowSurface(gw->egl_disp, gw->egl_config,
294 (EGLNativeWindowType)gw->win, NULL);
295
296 if (gw->egl_surface[0] == EGL_NO_SURFACE)
297 {
298 ERR("eglCreateWindowSurface() fail for %#x. code=%#x",
299 (unsigned int)gw->win, eglGetError());
300 return;
301 }
302 if (eglMakeCurrent(gw->egl_disp, gw->egl_surface[0], gw->egl_surface[0],
303 gw->egl_context[0]) == EGL_FALSE)
304 {
305 ERR("eglMakeCurrent() failed!");
306 }
307 gw->surf = 1;
308}
309
310int
311eng_best_depth_get(Evas_Engine_Info_Wayland_Egl *einfo)
312{
313 if (!einfo) return 0;
314 if (!einfo->info.display) return 0;
315 return 32;
316 /* if (!_evas_gl_x11_vi) eng_best_visual_get(einfo); */
317 /* if (!_evas_gl_x11_vi) return 0; */
318 /* if (einfo->info.destination_alpha) */
319 /* { */
320 /* if (_evas_gl_x11_rgba_vi) return _evas_gl_x11_rgba_vi->depth; */
321 /* } */
322 /* return _evas_gl_x11_vi->depth; */
323}
diff --git a/libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h b/libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h
new file mode 100644
index 0000000..b34b2c1
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h
@@ -0,0 +1,20 @@
1#ifndef _EVAS_ENGINE_WAYLAND_SHM_H
2# define _EVAS_ENGINE_WAYLAND_SHM_H
3
4typedef struct _Evas_Engine_Info_Wayland_Shm Evas_Engine_Info_Wayland_Shm;
5struct _Evas_Engine_Info_Wayland_Shm
6{
7 Evas_Engine_Info magic;
8
9 struct
10 {
11 void *dest;
12 int rotation;
13
14 unsigned char debug : 1;
15 } info;
16
17 Evas_Engine_Render_Mode render_mode;
18};
19
20#endif
diff --git a/libraries/evas/src/modules/engines/wayland_shm/Makefile.am b/libraries/evas/src/modules/engines/wayland_shm/Makefile.am
new file mode 100644
index 0000000..455b82c
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_shm/Makefile.am
@@ -0,0 +1,45 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@FREETYPE_CFLAGS@ \
10@EINA_CFLAGS@ \
11@evas_engine_wayland_shm_cflags@
12
13if BUILD_ENGINE_WAYLAND_SHM
14
15WAYLAND_SHM_SOURCES = \
16evas_engine.c \
17evas_outbuf.c
18
19WAYLAND_SHM_LIBADD = @FREETYPE_LIBS@ @EINA_LIBS@ @evas_engine_wayland_shm_libs@
20
21includes_HEADERS = Evas_Engine_Wayland_Shm.h
22includesdir = $(includedir)/evas-@VMAJ@
23
24if !EVAS_STATIC_BUILD_WAYLAND_SHM
25
26pkgdir = $(libdir)/evas/modules/engines/wayland_shm/$(MODULE_ARCH)
27pkg_LTLIBRARIES = module.la
28
29module_la_SOURCES = $(WAYLAND_SHM_SOURCES)
30module_la_LIBADD = $(WAYLAND_SHM_LIBADD) $(top_builddir)/src/lib/libevas.la
31module_la_LDFLAGS = -no-undefined -module -avoid-version
32module_la_LIBTOOLFLAGS = --tag=disable-static
33
34else
35
36noinst_LTLIBRARIES = libevas_engine_wayland_shm.la
37
38libevas_engine_wayland_shm_la_SOURCES = $(WAYLAND_SHM_SOURCES)
39libevas_engine_wayland_shm_la_LIBADD = $(WAYLAND_SHM_LIBADD)
40
41endif
42endif
43
44EXTRA_DIST = \
45evas_engine.h
diff --git a/libraries/evas/src/modules/engines/wayland_shm/Makefile.in b/libraries/evas/src/modules/engines/wayland_shm/Makefile.in
new file mode 100644
index 0000000..4d69209
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_shm/Makefile.in
@@ -0,0 +1,816 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/wayland_shm
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@libevas_engine_wayland_shm_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_wayland_shm_la_SOURCES_DIST = evas_engine.c \
87 evas_outbuf.c
88@BUILD_ENGINE_WAYLAND_SHM_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_WAYLAND_SHM_TRUE@ evas_outbuf.lo
90@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@am_libevas_engine_wayland_shm_la_OBJECTS = $(am__objects_1)
91libevas_engine_wayland_shm_la_OBJECTS = \
92 $(am_libevas_engine_wayland_shm_la_OBJECTS)
93AM_V_lt = $(am__v_lt_$(V))
94am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
95am__v_lt_0 = --silent
96@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@am_libevas_engine_wayland_shm_la_rpath =
97@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
98@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@ $(top_builddir)/src/lib/libevas.la
99am__module_la_SOURCES_DIST = evas_engine.c evas_outbuf.c
100@BUILD_ENGINE_WAYLAND_SHM_TRUE@am__objects_2 = \
101@BUILD_ENGINE_WAYLAND_SHM_TRUE@ module_la-evas_engine.lo \
102@BUILD_ENGINE_WAYLAND_SHM_TRUE@ module_la-evas_outbuf.lo
103@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@am_module_la_OBJECTS = $(am__objects_2)
104module_la_OBJECTS = $(am_module_la_OBJECTS)
105module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
106 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
107 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
108@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@am_module_la_rpath = -rpath \
109@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@ $(pkgdir)
110DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
111depcomp = $(SHELL) $(top_srcdir)/depcomp
112am__depfiles_maybe = depfiles
113am__mv = mv -f
114COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
115 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
116LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
117 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
118 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
119 $(AM_CFLAGS) $(CFLAGS)
120AM_V_CC = $(am__v_CC_$(V))
121am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
122am__v_CC_0 = @echo " CC " $@;
123AM_V_at = $(am__v_at_$(V))
124am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
125am__v_at_0 = @
126CCLD = $(CC)
127LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
128 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
129 $(AM_LDFLAGS) $(LDFLAGS) -o $@
130AM_V_CCLD = $(am__v_CCLD_$(V))
131am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
132am__v_CCLD_0 = @echo " CCLD " $@;
133AM_V_GEN = $(am__v_GEN_$(V))
134am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
135am__v_GEN_0 = @echo " GEN " $@;
136SOURCES = $(libevas_engine_wayland_shm_la_SOURCES) \
137 $(module_la_SOURCES)
138DIST_SOURCES = $(am__libevas_engine_wayland_shm_la_SOURCES_DIST) \
139 $(am__module_la_SOURCES_DIST)
140am__includes_HEADERS_DIST = Evas_Engine_Wayland_Shm.h
141HEADERS = $(includes_HEADERS)
142ETAGS = etags
143CTAGS = ctags
144DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
145ACLOCAL = @ACLOCAL@
146ALLOCA = @ALLOCA@
147AMTAR = @AMTAR@
148AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
149AR = @AR@
150AS = @AS@
151AUTOCONF = @AUTOCONF@
152AUTOHEADER = @AUTOHEADER@
153AUTOMAKE = @AUTOMAKE@
154AWK = @AWK@
155CC = @CC@
156CCDEPMODE = @CCDEPMODE@
157CFLAGS = @CFLAGS@
158CHECK_CFLAGS = @CHECK_CFLAGS@
159CHECK_LIBS = @CHECK_LIBS@
160CPP = @CPP@
161CPPFLAGS = @CPPFLAGS@
162CXX = @CXX@
163CXXCPP = @CXXCPP@
164CXXDEPMODE = @CXXDEPMODE@
165CXXFLAGS = @CXXFLAGS@
166CYGPATH_W = @CYGPATH_W@
167DEFS = @DEFS@
168DEPDIR = @DEPDIR@
169DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
170DIRECTFB_LIBS = @DIRECTFB_LIBS@
171DLLTOOL = @DLLTOOL@
172DSYMUTIL = @DSYMUTIL@
173DUMPBIN = @DUMPBIN@
174ECHO_C = @ECHO_C@
175ECHO_N = @ECHO_N@
176ECHO_T = @ECHO_T@
177ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
178ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
179EDB_CFLAGS = @EDB_CFLAGS@
180EDB_LIBS = @EDB_LIBS@
181EDJE_CFLAGS = @EDJE_CFLAGS@
182EDJE_LIBS = @EDJE_LIBS@
183EET_CFLAGS = @EET_CFLAGS@
184EET_LIBS = @EET_LIBS@
185EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
186EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
187EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
188EGREP = @EGREP@
189EINA_CFLAGS = @EINA_CFLAGS@
190EINA_LIBS = @EINA_LIBS@
191EVAS_CFLAGS = @EVAS_CFLAGS@
192EVAS_LIBS = @EVAS_LIBS@
193EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
194EVIL_CFLAGS = @EVIL_CFLAGS@
195EVIL_LIBS = @EVIL_LIBS@
196EXEEXT = @EXEEXT@
197FGREP = @FGREP@
198FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
199FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
200FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
201FREETYPE_LIBS = @FREETYPE_LIBS@
202FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
203FRIBIDI_LIBS = @FRIBIDI_LIBS@
204GL_EET_CFLAGS = @GL_EET_CFLAGS@
205GL_EET_LIBS = @GL_EET_LIBS@
206GREP = @GREP@
207HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
208HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
209INSTALL = @INSTALL@
210INSTALL_DATA = @INSTALL_DATA@
211INSTALL_PROGRAM = @INSTALL_PROGRAM@
212INSTALL_SCRIPT = @INSTALL_SCRIPT@
213INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
214LD = @LD@
215LDFLAGS = @LDFLAGS@
216LIBOBJS = @LIBOBJS@
217LIBS = @LIBS@
218LIBTOOL = @LIBTOOL@
219LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
220LINEBREAK_LIBS = @LINEBREAK_LIBS@
221LIPO = @LIPO@
222LN_S = @LN_S@
223LTLIBOBJS = @LTLIBOBJS@
224MAKEINFO = @MAKEINFO@
225MKDIR_P = @MKDIR_P@
226MODULE_ARCH = @MODULE_ARCH@
227NM = @NM@
228NMEDIT = @NMEDIT@
229OBJC = @OBJC@
230OBJCDEPMODE = @OBJCDEPMODE@
231OBJCFLAGS = @OBJCFLAGS@
232OBJDUMP = @OBJDUMP@
233OBJEXT = @OBJEXT@
234OTOOL = @OTOOL@
235OTOOL64 = @OTOOL64@
236PACKAGE = @PACKAGE@
237PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
238PACKAGE_NAME = @PACKAGE_NAME@
239PACKAGE_STRING = @PACKAGE_STRING@
240PACKAGE_TARNAME = @PACKAGE_TARNAME@
241PACKAGE_URL = @PACKAGE_URL@
242PACKAGE_VERSION = @PACKAGE_VERSION@
243PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@
247PNG_CFLAGS = @PNG_CFLAGS@
248PNG_LIBS = @PNG_LIBS@
249RANLIB = @RANLIB@
250SDL_CFLAGS = @SDL_CFLAGS@
251SDL_LIBS = @SDL_LIBS@
252SED = @SED@
253SET_MAKE = @SET_MAKE@
254SHELL = @SHELL@
255SHM_OPEN_LINK = @SHM_OPEN_LINK@
256STRIP = @STRIP@
257SVG_CFLAGS = @SVG_CFLAGS@
258SVG_LIBS = @SVG_LIBS@
259VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
260VALGRIND_LIBS = @VALGRIND_LIBS@
261VERSION = @VERSION@
262VMAJ = @VMAJ@
263WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
264WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
265WIN32_CFLAGS = @WIN32_CFLAGS@
266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
267XCB_CFLAGS = @XCB_CFLAGS@
268XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
269XCB_GL_LIBS = @XCB_GL_LIBS@
270XCB_LIBS = @XCB_LIBS@
271XEXT_CFLAGS = @XEXT_CFLAGS@
272XEXT_LIBS = @XEXT_LIBS@
273XMKMF = @XMKMF@
274X_CFLAGS = @X_CFLAGS@
275X_EXTRA_LIBS = @X_EXTRA_LIBS@
276X_LIBS = @X_LIBS@
277X_PRE_LIBS = @X_PRE_LIBS@
278abs_builddir = @abs_builddir@
279abs_srcdir = @abs_srcdir@
280abs_top_builddir = @abs_top_builddir@
281abs_top_srcdir = @abs_top_srcdir@
282ac_ct_CC = @ac_ct_CC@
283ac_ct_CXX = @ac_ct_CXX@
284ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
285ac_ct_OBJC = @ac_ct_OBJC@
286altivec_cflags = @altivec_cflags@
287am__include = @am__include@
288am__leading_dot = @am__leading_dot@
289am__quote = @am__quote@
290am__tar = @am__tar@
291am__untar = @am__untar@
292bindir = @bindir@
293build = @build@
294build_alias = @build_alias@
295build_cpu = @build_cpu@
296build_os = @build_os@
297build_vendor = @build_vendor@
298builddir = @builddir@
299datadir = @datadir@
300datarootdir = @datarootdir@
301dlopen_libs = @dlopen_libs@
302docdir = @docdir@
303dvidir = @dvidir@
304edje_cc = @edje_cc@
305efl_doxygen = @efl_doxygen@
306efl_have_doxygen = @efl_have_doxygen@
307evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
308evas_engine_buffer_libs = @evas_engine_buffer_libs@
309evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
310evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
311evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
312evas_engine_directfb_libs = @evas_engine_directfb_libs@
313evas_engine_fb_cflags = @evas_engine_fb_cflags@
314evas_engine_fb_libs = @evas_engine_fb_libs@
315evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
316evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
317evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
318evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
319evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
320evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
321evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
322evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
323evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
324evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
325evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
326evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
327evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
328evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
329evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
330evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
331evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
332evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
333evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
334evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
335evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
336evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
337evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
338evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
339evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
340evas_engine_software_sdl_cflags = @evas_engine_software_sdl_cflags@
341evas_engine_software_sdl_libs = @evas_engine_software_sdl_libs@
342evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
353evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
354evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
355evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
356evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
357evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
358evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
359evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
360evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
361evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
362evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
363evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
364evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
365evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
366evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
367evas_image_loader_png_libs = @evas_image_loader_png_libs@
368evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
369evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
370evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
371evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
372evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
373evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
374evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
375evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
376evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
377evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
378evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
379evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
380exec_prefix = @exec_prefix@
381have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
382have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
383have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
384have_evas_engine_software_x11 = @have_evas_engine_software_x11@
385have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
386have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
387have_lcov = @have_lcov@
388host = @host@
389host_alias = @host_alias@
390host_cpu = @host_cpu@
391host_os = @host_os@
392host_vendor = @host_vendor@
393htmldir = @htmldir@
394includedir = @includedir@
395infodir = @infodir@
396install_sh = @install_sh@
397libdir = @libdir@
398libexecdir = @libexecdir@
399localedir = @localedir@
400localstatedir = @localstatedir@
401lt_ECHO = @lt_ECHO@
402lt_enable_auto_import = @lt_enable_auto_import@
403mandir = @mandir@
404mkdir_p = @mkdir_p@
405oldincludedir = @oldincludedir@
406pdfdir = @pdfdir@
407pkgconfig_requires_private = @pkgconfig_requires_private@
408prefix = @prefix@
409program_transform_name = @program_transform_name@
410psdir = @psdir@
411pthread_cflags = @pthread_cflags@
412pthread_libs = @pthread_libs@
413release_info = @release_info@
414requirement_evas = @requirement_evas@
415sbindir = @sbindir@
416sharedstatedir = @sharedstatedir@
417srcdir = @srcdir@
418sysconfdir = @sysconfdir@
419target_alias = @target_alias@
420top_build_prefix = @top_build_prefix@
421top_builddir = @top_builddir@
422top_srcdir = @top_srcdir@
423version_info = @version_info@
424MAINTAINERCLEANFILES = Makefile.in
425AM_CPPFLAGS = \
426-I. \
427-I$(top_srcdir)/src/lib \
428-I$(top_srcdir)/src/lib/include \
429-I$(top_srcdir)/src/modules/engines \
430@FREETYPE_CFLAGS@ \
431@EINA_CFLAGS@ \
432@evas_engine_wayland_shm_cflags@
433
434@BUILD_ENGINE_WAYLAND_SHM_TRUE@WAYLAND_SHM_SOURCES = \
435@BUILD_ENGINE_WAYLAND_SHM_TRUE@evas_engine.c \
436@BUILD_ENGINE_WAYLAND_SHM_TRUE@evas_outbuf.c
437
438@BUILD_ENGINE_WAYLAND_SHM_TRUE@WAYLAND_SHM_LIBADD = @FREETYPE_LIBS@ @EINA_LIBS@ @evas_engine_wayland_shm_libs@
439@BUILD_ENGINE_WAYLAND_SHM_TRUE@includes_HEADERS = Evas_Engine_Wayland_Shm.h
440@BUILD_ENGINE_WAYLAND_SHM_TRUE@includesdir = $(includedir)/evas-@VMAJ@
441@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@pkgdir = $(libdir)/evas/modules/engines/wayland_shm/$(MODULE_ARCH)
442@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@pkg_LTLIBRARIES = module.la
443@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_SOURCES = $(WAYLAND_SHM_SOURCES)
444@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_LIBADD = $(WAYLAND_SHM_LIBADD) $(top_builddir)/src/lib/libevas.la
445@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_LDFLAGS = -no-undefined -module -avoid-version
446@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
447@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@noinst_LTLIBRARIES = libevas_engine_wayland_shm.la
448@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@libevas_engine_wayland_shm_la_SOURCES = $(WAYLAND_SHM_SOURCES)
449@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@libevas_engine_wayland_shm_la_LIBADD = $(WAYLAND_SHM_LIBADD)
450EXTRA_DIST = \
451evas_engine.h
452
453all: all-am
454
455.SUFFIXES:
456.SUFFIXES: .c .lo .o .obj
457$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
458 @for dep in $?; do \
459 case '$(am__configure_deps)' in \
460 *$$dep*) \
461 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
462 && { if test -f $@; then exit 0; else break; fi; }; \
463 exit 1;; \
464 esac; \
465 done; \
466 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/wayland_shm/Makefile'; \
467 $(am__cd) $(top_srcdir) && \
468 $(AUTOMAKE) --gnu src/modules/engines/wayland_shm/Makefile
469.PRECIOUS: Makefile
470Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
471 @case '$?' in \
472 *config.status*) \
473 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
474 *) \
475 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
476 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
477 esac;
478
479$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
480 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
481
482$(top_srcdir)/configure: $(am__configure_deps)
483 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
484$(ACLOCAL_M4): $(am__aclocal_m4_deps)
485 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
486$(am__aclocal_m4_deps):
487
488clean-noinstLTLIBRARIES:
489 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
490 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
491 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
492 test "$$dir" != "$$p" || dir=.; \
493 echo "rm -f \"$${dir}/so_locations\""; \
494 rm -f "$${dir}/so_locations"; \
495 done
496install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
497 @$(NORMAL_INSTALL)
498 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
499 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
500 list2=; for p in $$list; do \
501 if test -f $$p; then \
502 list2="$$list2 $$p"; \
503 else :; fi; \
504 done; \
505 test -z "$$list2" || { \
506 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
507 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
508 }
509
510uninstall-pkgLTLIBRARIES:
511 @$(NORMAL_UNINSTALL)
512 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
513 for p in $$list; do \
514 $(am__strip_dir) \
515 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
516 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
517 done
518
519clean-pkgLTLIBRARIES:
520 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
521 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
522 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
523 test "$$dir" != "$$p" || dir=.; \
524 echo "rm -f \"$${dir}/so_locations\""; \
525 rm -f "$${dir}/so_locations"; \
526 done
527libevas_engine_wayland_shm.la: $(libevas_engine_wayland_shm_la_OBJECTS) $(libevas_engine_wayland_shm_la_DEPENDENCIES)
528 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_wayland_shm_la_rpath) $(libevas_engine_wayland_shm_la_OBJECTS) $(libevas_engine_wayland_shm_la_LIBADD) $(LIBS)
529module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
530 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
531
532mostlyclean-compile:
533 -rm -f *.$(OBJEXT)
534
535distclean-compile:
536 -rm -f *.tab.c
537
538@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
539@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_outbuf.Plo@am__quote@
540@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
541@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_outbuf.Plo@am__quote@
542
543.c.o:
544@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
545@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
546@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
547@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
548@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
549@am__fastdepCC_FALSE@ $(COMPILE) -c $<
550
551.c.obj:
552@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
553@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
554@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
555@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
556@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
557@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
558
559.c.lo:
560@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
561@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
562@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
563@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
564@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
565@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
566
567module_la-evas_engine.lo: evas_engine.c
568@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
569@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
570@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
571@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
572@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
573@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
574
575module_la-evas_outbuf.lo: evas_outbuf.c
576@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_outbuf.lo -MD -MP -MF $(DEPDIR)/module_la-evas_outbuf.Tpo -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
577@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_outbuf.Tpo $(DEPDIR)/module_la-evas_outbuf.Plo
578@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
579@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_outbuf.c' object='module_la-evas_outbuf.lo' libtool=yes @AMDEPBACKSLASH@
580@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
581@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
582
583mostlyclean-libtool:
584 -rm -f *.lo
585
586clean-libtool:
587 -rm -rf .libs _libs
588install-includesHEADERS: $(includes_HEADERS)
589 @$(NORMAL_INSTALL)
590 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
591 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
592 for p in $$list; do \
593 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
594 echo "$$d$$p"; \
595 done | $(am__base_list) | \
596 while read files; do \
597 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
598 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
599 done
600
601uninstall-includesHEADERS:
602 @$(NORMAL_UNINSTALL)
603 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
604 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
605 test -n "$$files" || exit 0; \
606 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
607 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
608
609ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
610 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
611 unique=`for i in $$list; do \
612 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
613 done | \
614 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
615 END { if (nonempty) { for (i in files) print i; }; }'`; \
616 mkid -fID $$unique
617tags: TAGS
618
619TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
620 $(TAGS_FILES) $(LISP)
621 set x; \
622 here=`pwd`; \
623 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
624 unique=`for i in $$list; do \
625 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
626 done | \
627 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
628 END { if (nonempty) { for (i in files) print i; }; }'`; \
629 shift; \
630 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
631 test -n "$$unique" || unique=$$empty_fix; \
632 if test $$# -gt 0; then \
633 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
634 "$$@" $$unique; \
635 else \
636 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
637 $$unique; \
638 fi; \
639 fi
640ctags: CTAGS
641CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
642 $(TAGS_FILES) $(LISP)
643 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
644 unique=`for i in $$list; do \
645 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
646 done | \
647 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
648 END { if (nonempty) { for (i in files) print i; }; }'`; \
649 test -z "$(CTAGS_ARGS)$$unique" \
650 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
651 $$unique
652
653GTAGS:
654 here=`$(am__cd) $(top_builddir) && pwd` \
655 && $(am__cd) $(top_srcdir) \
656 && gtags -i $(GTAGS_ARGS) "$$here"
657
658distclean-tags:
659 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
660
661distdir: $(DISTFILES)
662 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
663 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
664 list='$(DISTFILES)'; \
665 dist_files=`for file in $$list; do echo $$file; done | \
666 sed -e "s|^$$srcdirstrip/||;t" \
667 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
668 case $$dist_files in \
669 */*) $(MKDIR_P) `echo "$$dist_files" | \
670 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
671 sort -u` ;; \
672 esac; \
673 for file in $$dist_files; do \
674 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
675 if test -d $$d/$$file; then \
676 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
677 if test -d "$(distdir)/$$file"; then \
678 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
679 fi; \
680 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
681 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
682 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
683 fi; \
684 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
685 else \
686 test -f "$(distdir)/$$file" \
687 || cp -p $$d/$$file "$(distdir)/$$file" \
688 || exit 1; \
689 fi; \
690 done
691check-am: all-am
692check: check-am
693all-am: Makefile $(LTLIBRARIES) $(HEADERS)
694installdirs:
695 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
696 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
697 done
698install: install-am
699install-exec: install-exec-am
700install-data: install-data-am
701uninstall: uninstall-am
702
703install-am: all-am
704 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
705
706installcheck: installcheck-am
707install-strip:
708 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
709 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
710 `test -z '$(STRIP)' || \
711 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
712mostlyclean-generic:
713
714clean-generic:
715
716distclean-generic:
717 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
718 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
719
720maintainer-clean-generic:
721 @echo "This command is intended for maintainers to use"
722 @echo "it deletes files that may require special tools to rebuild."
723 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
724clean: clean-am
725
726clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
727 clean-pkgLTLIBRARIES mostlyclean-am
728
729distclean: distclean-am
730 -rm -rf ./$(DEPDIR)
731 -rm -f Makefile
732distclean-am: clean-am distclean-compile distclean-generic \
733 distclean-tags
734
735dvi: dvi-am
736
737dvi-am:
738
739html: html-am
740
741html-am:
742
743info: info-am
744
745info-am:
746
747install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
748
749install-dvi: install-dvi-am
750
751install-dvi-am:
752
753install-exec-am:
754
755install-html: install-html-am
756
757install-html-am:
758
759install-info: install-info-am
760
761install-info-am:
762
763install-man:
764
765install-pdf: install-pdf-am
766
767install-pdf-am:
768
769install-ps: install-ps-am
770
771install-ps-am:
772
773installcheck-am:
774
775maintainer-clean: maintainer-clean-am
776 -rm -rf ./$(DEPDIR)
777 -rm -f Makefile
778maintainer-clean-am: distclean-am maintainer-clean-generic
779
780mostlyclean: mostlyclean-am
781
782mostlyclean-am: mostlyclean-compile mostlyclean-generic \
783 mostlyclean-libtool
784
785pdf: pdf-am
786
787pdf-am:
788
789ps: ps-am
790
791ps-am:
792
793uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
794
795.MAKE: install-am install-strip
796
797.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
798 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
799 ctags distclean distclean-compile distclean-generic \
800 distclean-libtool distclean-tags distdir dvi dvi-am html \
801 html-am info info-am install install-am install-data \
802 install-data-am install-dvi install-dvi-am install-exec \
803 install-exec-am install-html install-html-am \
804 install-includesHEADERS install-info install-info-am \
805 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
806 install-ps install-ps-am install-strip installcheck \
807 installcheck-am installdirs maintainer-clean \
808 maintainer-clean-generic mostlyclean mostlyclean-compile \
809 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
810 tags uninstall uninstall-am uninstall-includesHEADERS \
811 uninstall-pkgLTLIBRARIES
812
813
814# Tell versions [3.59,3.63) of GNU make to not export all variables.
815# Otherwise a system limit (for SysV at least) may be exceeded.
816.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/wayland_shm/evas_engine.c b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.c
new file mode 100644
index 0000000..7c55517
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.c
@@ -0,0 +1,370 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_Wayland_Shm.h"
5
6/* local structures */
7typedef struct _Render_Engine Render_Engine;
8struct _Render_Engine
9{
10 Tilebuf *tb;
11 Tilebuf_Rect *rects;
12 Outbuf *ob;
13 Eina_Inlist *cur_rect;
14
15 Eina_Bool end : 1;
16
17 void (*outbuf_free)(Outbuf *ob);
18 void (*outbuf_resize)(Outbuf *ob, int w, int h);
19 RGBA_Image *(*outbuf_new_region_for_update)(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
20 void (*outbuf_push_updated_region)(Outbuf *ob, RGBA_Image *surface, int x, int y, int w, int h);
21 void (*outbuf_free_region_for_update)(Outbuf *ob, RGBA_Image *update);
22};
23
24/* local variables */
25static Evas_Func func, pfunc;
26
27/* external variables */
28int _evas_engine_way_shm_log_dom = -1;
29
30/* local function prototypes */
31static void *_output_setup(int w, int h, int rotation, void *dest);
32
33/* engine function prototypes */
34static void *eng_info(Evas *evas __UNUSED__);
35static void eng_info_free(Evas *evas __UNUSED__, void *info);
36static int eng_setup(Evas *evas, void *info);
37static void eng_output_free(void *data);
38static void eng_output_resize(void *data, int w, int h);
39static void eng_output_tile_size_set(void *data, int w, int h);
40static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
41static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
42static void eng_output_redraws_clear(void *data);
43static void *eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch);
44static void eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h);
45static void eng_output_flush(void *data);
46static void eng_output_idle_flush(void *data);
47static Eina_Bool eng_canvas_alpha_get(void *data, void *context __UNUSED__);
48
49/* local functions */
50static void *
51_output_setup(int w, int h, int rotation, void *dest)
52{
53 Render_Engine *re = NULL;
54
55 LOGFN(__FILE__, __LINE__, __FUNCTION__);
56
57 if (!(re = calloc(1, sizeof(Render_Engine)))) return NULL;
58
59 if (!(re->ob = evas_outbuf_setup(w, h, rotation, dest)))
60 {
61 free(re);
62 return NULL;
63 }
64
65 if (!(re->tb = evas_common_tilebuf_new(w, h)))
66 {
67 evas_outbuf_free(re->ob);
68 free(re);
69 return NULL;
70 }
71
72 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
73 return re;
74}
75
76/* engine functions */
77static void *
78eng_info(Evas *evas __UNUSED__)
79{
80 Evas_Engine_Info_Wayland_Shm *info;
81
82 LOGFN(__FILE__, __LINE__, __FUNCTION__);
83
84 if (!(info = calloc(1, sizeof(Evas_Engine_Info_Wayland_Shm))))
85 return NULL;
86
87 info->magic.magic = rand();
88 info->info.debug = EINA_FALSE;
89 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
90
91 return info;
92}
93
94static void
95eng_info_free(Evas *evas __UNUSED__, void *info)
96{
97 Evas_Engine_Info_Wayland_Shm *in;
98
99 LOGFN(__FILE__, __LINE__, __FUNCTION__);
100
101 if (!(in = (Evas_Engine_Info_Wayland_Shm *)info)) return;
102 free(in);
103}
104
105static int
106eng_setup(Evas *evas, void *info)
107{
108 Evas_Engine_Info_Wayland_Shm *in;
109 Render_Engine *re = NULL;
110
111 LOGFN(__FILE__, __LINE__, __FUNCTION__);
112
113 if (!(in = (Evas_Engine_Info_Wayland_Shm *)info)) return 0;
114
115 if (!evas->engine.data.output)
116 {
117 evas_common_cpu_init();
118 evas_common_blend_init();
119 evas_common_image_init();
120 evas_common_convert_init();
121 evas_common_scale_init();
122 evas_common_rectangle_init();
123 evas_common_polygon_init();
124 evas_common_line_init();
125 evas_common_font_init();
126 evas_common_draw_init();
127 evas_common_tilebuf_init();
128
129 re = _output_setup(evas->output.w, evas->output.h,
130 in->info.rotation, in->info.dest);
131 if (!re) return 0;
132
133 re->outbuf_free = evas_outbuf_free;
134 re->outbuf_resize = evas_outbuf_resize;
135 re->outbuf_new_region_for_update = evas_outbuf_new_region_for_update;
136 re->outbuf_push_updated_region = evas_outbuf_push_updated_region;
137 re->outbuf_free_region_for_update = evas_outbuf_free_region_for_update;
138 }
139 else
140 {
141 if (!(re = evas->engine.data.output)) return 0;
142 if (re->ob) re->outbuf_free(re->ob);
143 re->ob = evas_outbuf_setup(evas->output.w, evas->output.h,
144 in->info.rotation, in->info.dest);
145 if (re->tb) evas_common_tilebuf_free(re->tb);
146 if ((re->tb = evas_common_tilebuf_new(evas->output.w, evas->output.h)))
147 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
148 }
149
150 evas->engine.data.output = re;
151
152 if (!evas->engine.data.context)
153 {
154 evas->engine.data.context =
155 evas->engine.func->context_new(evas->engine.data.output);
156 }
157
158 return 1;
159}
160
161static void
162eng_output_free(void *data)
163{
164 Render_Engine *re = NULL;
165
166 LOGFN(__FILE__, __LINE__, __FUNCTION__);
167
168 if ((re = (Render_Engine *)data))
169 {
170 if (re->ob) re->outbuf_free(re->ob);
171 if (re->tb) evas_common_tilebuf_free(re->tb);
172 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
173 free(re);
174 }
175 evas_common_font_shutdown();
176 evas_common_image_shutdown();
177}
178
179static void
180eng_output_resize(void *data, int w, int h)
181{
182 Render_Engine *re = NULL;
183
184 LOGFN(__FILE__, __LINE__, __FUNCTION__);
185
186 if (!(re = (Render_Engine *)data)) return;
187
188 if (re->ob) re->outbuf_resize(re->ob, w, h);
189 if (re->tb) evas_common_tilebuf_free(re->tb);
190 if ((re->tb = evas_common_tilebuf_new(w, h)))
191 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
192}
193
194static void
195eng_output_tile_size_set(void *data, int w, int h)
196{
197 Render_Engine *re = NULL;
198
199 if (!(re = (Render_Engine *)data)) return;
200 if (re->tb) evas_common_tilebuf_set_tile_size(re->tb, w, h);
201}
202
203static void
204eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
205{
206 Render_Engine *re = NULL;
207
208 if (!(re = (Render_Engine *)data)) return;
209 if (re->tb) evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
210}
211
212static void
213eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
214{
215 Render_Engine *re = NULL;
216
217 if (!(re = (Render_Engine *)data)) return;
218 if (re->tb) evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
219}
220
221static void
222eng_output_redraws_clear(void *data)
223{
224 Render_Engine *re = NULL;
225
226 if (!(re = (Render_Engine *)data)) return;
227 if (re->tb) evas_common_tilebuf_clear(re->tb);
228}
229
230static void *
231eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
232{
233 Render_Engine *re = NULL;
234 RGBA_Image *surface;
235 Tilebuf_Rect *rect;
236 int ux = 0, uy = 0, uw = 0, uh = 0;
237
238 if (!(re = (Render_Engine *)data)) return NULL;
239 if (re->end)
240 {
241 re->end = EINA_FALSE;
242 return NULL;
243 }
244 if (!re->rects)
245 {
246 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
247 re->cur_rect = EINA_INLIST_GET(re->rects);
248 }
249 if (!re->cur_rect) return NULL;
250 rect = (Tilebuf_Rect *)re->cur_rect;
251 ux = rect->x;
252 uy = rect->y;
253 uw = rect->w;
254 uh = rect->h;
255 re->cur_rect = re->cur_rect->next;
256 if (!re->cur_rect)
257 {
258 evas_common_tilebuf_free_render_rects(re->rects);
259 re->rects = NULL;
260 re->end = EINA_TRUE;
261 }
262 if ((ux + uw) > re->ob->w) uw = re->ob->w - ux;
263 if ((uy + uh) > re->ob->h) uh = re->ob->h - uy;
264 if ((uw <= 0) || (uh <= 0)) return NULL;
265 surface =
266 re->outbuf_new_region_for_update(re->ob, ux, uy, uw, uh, cx, cy, cw, ch);
267 if (x) *x = ux;
268 if (y) *y = uy;
269 if (w) *w = uw;
270 if (h) *h = uh;
271 return surface;
272}
273
274static void
275eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h)
276{
277 Render_Engine *re = NULL;
278
279 if (!(re = (Render_Engine *)data)) return;
280#ifdef BUILD_PIPE_RENDER
281 evas_common_pipe_map_begin(surface);
282#endif
283 if (re->ob)
284 {
285 re->outbuf_push_updated_region(re->ob, surface, x, y, w, h);
286 re->outbuf_free_region_for_update(re->ob, surface);
287 }
288 evas_common_cpu_end_opt();
289}
290
291static void
292eng_output_flush(void *data)
293{
294 Render_Engine *re = NULL;
295
296 if (!(re = (Render_Engine *)data)) return;
297}
298
299static void
300eng_output_idle_flush(void *data)
301{
302 Render_Engine *re = NULL;
303
304 if (!(re = (Render_Engine *)data)) return;
305}
306
307static Eina_Bool
308eng_canvas_alpha_get(void *data, void *context __UNUSED__)
309{
310 Render_Engine *re = NULL;
311
312 if (!(re = (Render_Engine *)data)) return EINA_FALSE;
313 return EINA_TRUE;
314}
315
316/* module functions */
317static int
318module_open(Evas_Module *em)
319{
320 if (!em) return 0;
321
322 if (!_evas_module_engine_inherit(&pfunc, "software_generic"))
323 return 0;
324
325 _evas_engine_way_shm_log_dom =
326 eina_log_domain_register("evas-wayland_shm", EVAS_DEFAULT_LOG_COLOR);
327 if (_evas_engine_way_shm_log_dom < 0)
328 {
329 EINA_LOG_ERR("Could not create a module log domain.");
330 return 0;
331 }
332
333 func = pfunc;
334
335#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
336 ORD(info);
337 ORD(info_free);
338 ORD(setup);
339 ORD(canvas_alpha_get);
340 ORD(output_free);
341 ORD(output_resize);
342 ORD(output_tile_size_set);
343 ORD(output_redraws_rect_add);
344 ORD(output_redraws_rect_del);
345 ORD(output_redraws_clear);
346 ORD(output_redraws_next_update_get);
347 ORD(output_redraws_next_update_push);
348 ORD(output_flush);
349 ORD(output_idle_flush);
350
351 em->functions = (void *)(&func);
352 return 1;
353}
354
355static void
356module_close(Evas_Module *em __UNUSED__)
357{
358 eina_log_domain_unregister(_evas_engine_way_shm_log_dom);
359}
360
361static Evas_Module_Api evas_modapi =
362{
363 EVAS_MODULE_API_VERSION, "wayland_shm", "none", {module_open, module_close}
364};
365
366EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, wayland_shm);
367
368#ifndef EVAS_STATIC_BUILD_WAYLAND_SHM
369EVAS_EINA_MODULE_DEFINE(engine, wayland_shm);
370#endif
diff --git a/libraries/evas/src/modules/engines/wayland_shm/evas_engine.h b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.h
new file mode 100644
index 0000000..878851a
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.h
@@ -0,0 +1,60 @@
1#ifndef _EVAS_ENGINE_H
2# define _EVAS_ENGINE_H
3
4//# define LOGFNS 1
5
6# ifdef LOGFNS
7# include <stdio.h>
8# define LOGFN(fl, ln, fn) printf("-EVAS-WL: %25s: %5i - %s\n", fl, ln, fn);
9# else
10# define LOGFN(fl, ln, fn)
11# endif
12
13extern int _evas_engine_way_shm_log_dom;
14
15# ifdef ERR
16# undef ERR
17# endif
18# define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_way_shm_log_dom, __VA_ARGS__)
19
20# ifdef DBG
21# undef DBG
22# endif
23# define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_way_shm_log_dom, __VA_ARGS__)
24
25# ifdef INF
26# undef INF
27# endif
28# define INF(...) EINA_LOG_DOM_INFO(_evas_engine_way_shm_log_dom, __VA_ARGS__)
29
30# ifdef WRN
31# undef WRN
32# endif
33# define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_way_shm_log_dom, __VA_ARGS__)
34
35# ifdef CRIT
36# undef CRIT
37# endif
38# define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_way_shm_log_dom, __VA_ARGS__)
39
40typedef struct _Outbuf Outbuf;
41struct _Outbuf
42{
43 int w, h;
44 int rotation;
45
46 struct
47 {
48 void *dest;
49 RGBA_Image *buffer;
50 } priv;
51};
52
53void evas_outbuf_free(Outbuf *ob);
54void evas_outbuf_resize(Outbuf *ob, int w, int h);
55Outbuf *evas_outbuf_setup(int w, int h, int rot, void *dest);
56RGBA_Image *evas_outbuf_new_region_for_update(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
57void evas_outbuf_push_updated_region(Outbuf *ob, RGBA_Image *update, int x __UNUSED__, int y, int w, int h);
58void evas_outbuf_free_region_for_update(Outbuf *ob, RGBA_Image *update);
59
60#endif
diff --git a/libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c b/libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c
new file mode 100644
index 0000000..490a978
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c
@@ -0,0 +1,100 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4void
5evas_outbuf_free(Outbuf *ob)
6{
7 if (!ob) return;
8 if (ob->priv.buffer) evas_cache_image_drop(&ob->priv.buffer->cache_entry);
9 free(ob);
10}
11
12void
13evas_outbuf_resize(Outbuf *ob, int w, int h)
14{
15 if (!ob) return;
16 if ((ob->w == w) && (ob->h == h)) return;
17 ob->w = w;
18 ob->h = h;
19 if (ob->priv.buffer) evas_cache_image_drop(&ob->priv.buffer->cache_entry);
20 ob->priv.buffer = NULL;
21}
22
23Outbuf *
24evas_outbuf_setup(int w, int h, int rot, void *dest)
25{
26 Outbuf *ob = NULL;
27
28 if (!(ob = calloc(1, sizeof(Outbuf)))) return NULL;
29
30 ob->w = w;
31 ob->h = h;
32 ob->rotation = rot;
33 ob->priv.dest = dest;
34
35 ob->priv.buffer =
36 (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
37 w, h, ob->priv.dest,
38 1, EVAS_COLORSPACE_ARGB8888);
39
40 return ob;
41}
42
43RGBA_Image *
44evas_outbuf_new_region_for_update(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch)
45{
46 if (ob->priv.buffer)
47 {
48 *cx = x; *cy = y; *cw = w; *ch = h;
49 return ob->priv.buffer;
50 }
51 else
52 {
53 RGBA_Image *im;
54
55 *cx = 0; *cy = 0; *cw = w; *ch = h;
56 im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
57 if (im)
58 {
59 im->cache_entry.flags.alpha = 1;
60 im = (RGBA_Image *)evas_cache_image_size_set(&im->cache_entry, w, h);
61 }
62
63 return im;
64 }
65
66 return NULL;
67}
68
69void
70evas_outbuf_push_updated_region(Outbuf *ob, RGBA_Image *update, int x __UNUSED__, int y, int w, int h)
71{
72 if (!ob->priv.dest) return;
73 if (!ob->priv.buffer)
74 {
75 Gfx_Func_Copy func;
76
77 func = evas_common_draw_func_copy_get(w, 0);
78 if (func)
79 {
80 DATA32 *dst, *src;
81 int yy = 0, bytes = 0;
82
83 bytes = ((w * sizeof(int)) * h);
84 for (yy = 0; yy < h; yy++)
85 {
86 src = update->image.data + (yy * update->cache_entry.w);
87 dst = (DATA32 *)((DATA8 *)(ob->priv.dest) +
88 ((y + yy) * bytes));
89 func(src, dst, w);
90 }
91 }
92 }
93}
94
95void
96evas_outbuf_free_region_for_update(Outbuf *ob, RGBA_Image *update)
97{
98 if (!ob) return;
99 if (update != ob->priv.buffer) evas_cache_image_drop(&update->cache_entry);
100}
diff --git a/libraries/evas/src/modules/loaders/Makefile.in b/libraries/evas/src/modules/loaders/Makefile.in
index 2120a33..454dcd8 100644
--- a/libraries/evas/src/modules/loaders/Makefile.in
+++ b/libraries/evas/src/modules/loaders/Makefile.in
@@ -49,7 +49,7 @@ host_triplet = @host@
49@BUILD_LOADER_WBMP_TRUE@@EVAS_STATIC_BUILD_WBMP_FALSE@am__append_14 = wbmp 49@BUILD_LOADER_WBMP_TRUE@@EVAS_STATIC_BUILD_WBMP_FALSE@am__append_14 = wbmp
50@BUILD_LOADER_XPM_TRUE@@EVAS_STATIC_BUILD_XPM_FALSE@am__append_15 = xpm 50@BUILD_LOADER_XPM_TRUE@@EVAS_STATIC_BUILD_XPM_FALSE@am__append_15 = xpm
51subdir = src/modules/loaders 51subdir = src/modules/loaders
52DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in TODO 52DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
53ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 53ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
54am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 54am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
55 $(top_srcdir)/m4/efl_coverage.m4 \ 55 $(top_srcdir)/m4/efl_coverage.m4 \
@@ -222,8 +222,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
222PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 222PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
223PIXMAN_LIBS = @PIXMAN_LIBS@ 223PIXMAN_LIBS = @PIXMAN_LIBS@
224PKG_CONFIG = @PKG_CONFIG@ 224PKG_CONFIG = @PKG_CONFIG@
225PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
226PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
227PNG_CFLAGS = @PNG_CFLAGS@ 225PNG_CFLAGS = @PNG_CFLAGS@
228PNG_LIBS = @PNG_LIBS@ 226PNG_LIBS = @PNG_LIBS@
229RANLIB = @RANLIB@ 227RANLIB = @RANLIB@
@@ -240,6 +238,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
240VALGRIND_LIBS = @VALGRIND_LIBS@ 238VALGRIND_LIBS = @VALGRIND_LIBS@
241VERSION = @VERSION@ 239VERSION = @VERSION@
242VMAJ = @VMAJ@ 240VMAJ = @VMAJ@
241WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
242WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
243WIN32_CFLAGS = @WIN32_CFLAGS@ 243WIN32_CFLAGS = @WIN32_CFLAGS@
244WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 244WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
245XCB_CFLAGS = @XCB_CFLAGS@ 245XCB_CFLAGS = @XCB_CFLAGS@
@@ -321,6 +321,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
321evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 321evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
322evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 322evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
323evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 323evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
324evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
325evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
326evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
327evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
324evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 328evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
325evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 329evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
326evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 330evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/TODO b/libraries/evas/src/modules/loaders/TODO
deleted file mode 100644
index 3b82543..0000000
--- a/libraries/evas/src/modules/loaders/TODO
+++ /dev/null
@@ -1,5 +0,0 @@
1DONE -> bmp tga ico
2id3 gz bz2 <- extraction loaders
3lbm <- aaah amiga days
4ani <- why>
5
diff --git a/libraries/evas/src/modules/loaders/bmp/Makefile.in b/libraries/evas/src/modules/loaders/bmp/Makefile.in
index f2c3e20..943fb74 100644
--- a/libraries/evas/src/modules/loaders/bmp/Makefile.in
+++ b/libraries/evas/src/modules/loaders/bmp/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/bmp/evas_image_load_bmp.c b/libraries/evas/src/modules/loaders/bmp/evas_image_load_bmp.c
index 38e3680..6d15783 100644
--- a/libraries/evas/src/modules/loaders/bmp/evas_image_load_bmp.c
+++ b/libraries/evas/src/modules/loaders/bmp/evas_image_load_bmp.c
@@ -21,50 +21,91 @@ static Evas_Image_Load_Func evas_image_load_bmp_func =
21 EINA_TRUE, 21 EINA_TRUE,
22 evas_image_load_file_head_bmp, 22 evas_image_load_file_head_bmp,
23 evas_image_load_file_data_bmp, 23 evas_image_load_file_data_bmp,
24 NULL 24 NULL,
25 EINA_FALSE
25}; 26};
26 27
27static int 28static Eina_Bool
28read_short(FILE *file, short *ret) 29read_short(unsigned char *map, size_t length, size_t *position, short *ret)
29{ 30{
30 unsigned char b[2]; 31 unsigned char b[2];
31 if (fread(b, sizeof(unsigned char), 2, file) != 2) return 0; 32
33 if (*position + 2 > length) return EINA_FALSE;
34 b[0] = map[(*position)++];
35 b[1] = map[(*position)++];
32 *ret = (b[1] << 8) | b[0]; 36 *ret = (b[1] << 8) | b[0];
33 return 1; 37 return EINA_TRUE;
34} 38}
35 39
36static int 40static Eina_Bool
37read_ushort(FILE *file, unsigned short *ret) 41read_ushort(unsigned char *map, size_t length, size_t *position, unsigned short *ret)
38{ 42{
39 unsigned char b[2]; 43 unsigned char b[2];
40 if (fread(b, sizeof(unsigned char), 2, file) != 2) return 0; 44
45 if (*position + 2 > length) return EINA_FALSE;
46 b[0] = map[(*position)++];
47 b[1] = map[(*position)++];
41 *ret = (b[1] << 8) | b[0]; 48 *ret = (b[1] << 8) | b[0];
42 return 1; 49 return EINA_TRUE;
43} 50}
44 51
45static int 52static Eina_Bool
46read_int(FILE *file, int *ret) 53read_int(unsigned char *map, size_t length, size_t *position, int *ret)
47{ 54{
48 unsigned char b[4]; 55 unsigned char b[4];
49 if (fread(b, sizeof(unsigned char), 4, file) != 4) return 0; 56 int i;
57
58 if (*position + 4 > length) return EINA_FALSE;
59 for (i = 0; i < 4; i++)
60 b[i] = map[(*position)++];
50 *ret = ARGB_JOIN(b[3], b[2], b[1], b[0]); 61 *ret = ARGB_JOIN(b[3], b[2], b[1], b[0]);
51 return 1; 62 return EINA_TRUE;
52} 63}
53 64
54static int 65static Eina_Bool
55read_uint(FILE *file, unsigned int *ret) 66read_uint(unsigned char *map, size_t length, size_t *position, unsigned int *ret)
56{ 67{
57 unsigned char b[4]; 68 unsigned char b[4];
58 if (fread(b, sizeof(unsigned char), 4, file) != 4) return 0; 69 int i;
70
71 if (*position + 4 > length) return EINA_FALSE;
72 for (i = 0; i < 4; i++)
73 b[i] = map[(*position)++];
59 *ret = ARGB_JOIN(b[3], b[2], b[1], b[0]); 74 *ret = ARGB_JOIN(b[3], b[2], b[1], b[0]);
60 return 1; 75 return EINA_TRUE;
76}
77
78static Eina_Bool
79read_uchar(unsigned char *map, size_t length, size_t *position, unsigned char *ret)
80{
81 if (*position + 1 > length) return EINA_FALSE;
82 *ret = map[(*position)++];
83 return EINA_TRUE;
84}
85
86static Eina_Bool
87read_skip(size_t length, size_t *position, int skip)
88{
89 if (*position + skip > length) return EINA_FALSE;
90 *position += skip;
91 return EINA_TRUE;
92}
93
94static Eina_Bool
95read_mem(unsigned char *map, size_t length, size_t *position, void *buffer, int size)
96{
97 if (*position + size > length) return EINA_FALSE;
98 memcpy(buffer, map + *position, size);
99 *position += size;
100 return EINA_TRUE;
61} 101}
62 102
63static Eina_Bool 103static Eina_Bool
64evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error) 104evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error)
65{ 105{
66 FILE *f; 106 Eina_File *f;
67 char buf[4096]; 107 void *map = NULL;
108 size_t position = 0;
68 char hasa = 0; 109 char hasa = 0;
69 int w = 0, h = 0, planes = 0, bit_count = 0, 110 int w = 0, h = 0, planes = 0, bit_count = 0,
70 image_size = 0, comp = 0, hdpi = 0, vdpi = 0, 111 image_size = 0, comp = 0, hdpi = 0, vdpi = 0,
@@ -76,7 +117,7 @@ evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key
76 unsigned int bmpsize; 117 unsigned int bmpsize;
77 unsigned short res1, res2; 118 unsigned short res1, res2;
78 119
79 f = fopen(file, "rb"); 120 f = eina_file_open(file, 0);
80 if (!f) 121 if (!f)
81 { 122 {
82 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 123 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
@@ -84,84 +125,85 @@ evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key
84 } 125 }
85 126
86 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 127 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
87 fseek(f, 0, SEEK_END); 128 fsize = eina_file_size_get(f);
88 fsize = ftell(f);
89 fseek(f, 0, SEEK_SET);
90 if (fsize < 2) goto close_file; 129 if (fsize < 2) goto close_file;
91 130
92 if (fread(buf, 2, 1, f) != 1) goto close_file; 131 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
93 if (strncmp(buf, "BM", 2)) goto close_file; // magic number 132 if (!map) goto close_file;
133
134 if (strncmp(map, "BM", 2)) goto close_file; // magic number
135 position += 2;
94 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 136 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
95 if (!read_uint(f, &bmpsize)) goto close_file; 137 if (!read_uint(map, fsize, &position, &bmpsize)) goto close_file;
96 if (!read_ushort(f, &res1)) goto close_file; 138 if (!read_ushort(map, fsize, &position, &res1)) goto close_file;
97 if (!read_ushort(f, &res2)) goto close_file; 139 if (!read_ushort(map, fsize, &position, &res2)) goto close_file;
98 if (!read_uint(f, &offset)) goto close_file; 140 if (!read_uint(map, fsize, &position, &offset)) goto close_file;
99 if (!read_uint(f, &head_size)) goto close_file; 141 if (!read_uint(map, fsize, &position, &head_size)) goto close_file;
100 if (head_size == 12) // OS/2 V1 + Windows 3.0 142 if (head_size == 12) // OS/2 V1 + Windows 3.0
101 { 143 {
102 short tmp; 144 short tmp;
103 145
104 if (!read_short(f, &tmp)) goto close_file; 146 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
105 w = tmp; // width 147 w = tmp; // width
106 if (!read_short(f, &tmp)) goto close_file; 148 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
107 h = tmp; // height 149 h = tmp; // height
108 if (!read_short(f, &tmp)) goto close_file; 150 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
109 planes = tmp; // must be 1 151 planes = tmp; // must be 1
110 if (!read_short(f, &tmp)) goto close_file; 152 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
111 bit_count = tmp; // bits per pixel: 1, 4, 8 & 24 153 bit_count = tmp; // bits per pixel: 1, 4, 8 & 24
112 } 154 }
113 else if (head_size == 64) // OS/2 V2 155 else if (head_size == 64) // OS/2 V2
114 { 156 {
115 short tmp; 157 short tmp;
116 int tmp2; 158 int tmp2;
117 159
118 if (!read_int(f, &tmp2)) goto close_file; 160 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
119 w = tmp2; // width 161 w = tmp2; // width
120 if (!read_int(f, &tmp2)) goto close_file; 162 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
121 h = tmp2; // height 163 h = tmp2; // height
122 if (!read_short(f, &tmp)) goto close_file; 164 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
123 planes = tmp; // must be 1 165 planes = tmp; // must be 1
124 if (!read_short(f, &tmp)) goto close_file; 166 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
125 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 167 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
126 if (!read_int(f, &tmp2)) goto close_file; 168 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
127 comp = tmp2; // compression method 169 comp = tmp2; // compression method
128 if (!read_int(f, &tmp2)) goto close_file; 170 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
129 image_size = tmp2; // bitmap data size 171 image_size = tmp2; // bitmap data size
130 if (!read_int(f, &tmp2)) goto close_file; 172 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
131 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 173 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
132 if (!read_int(f, &tmp2)) goto close_file; 174 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
133 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 175 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
134 if (!read_int(f, &tmp2)) goto close_file; 176 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
135 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 177 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
136 if (!read_int(f, &tmp2)) goto close_file; 178 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
137 important_colors = tmp2; // number of important colors - 0 if all 179 important_colors = tmp2; // number of important colors - 0 if all
138 if (fread(buf, 24, 1, f) != 1) goto close_file; // skip unused header 180 if (!read_skip(fsize, &position, 24)) goto close_file; // skip unused header
139 if (image_size == 0) image_size = fsize - offset; 181 if (image_size == 0) image_size = fsize - offset;
140 } 182 }
141 else if (head_size == 40) // Windows 3.0 + (v3) 183 else if (head_size == 40) // Windows 3.0 + (v3)
142 { 184 {
143 short tmp; 185 short tmp;
144 int tmp2; 186 int tmp2;
145 187
146 if (!read_int(f, &tmp2)) goto close_file; 188 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
147 w = tmp2; // width 189 w = tmp2; // width
148 if (!read_int(f, &tmp2)) goto close_file; 190 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
149 h = tmp2; // height 191 h = tmp2; // height
150 if (!read_short(f, &tmp)) goto close_file; 192 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
151 planes = tmp; // must be 1 193 planes = tmp; // must be 1
152 if (!read_short(f, &tmp)) goto close_file; 194 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
153 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 195 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
154 if (!read_int(f, &tmp2)) goto close_file; 196 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
155 comp = tmp2; // compression method 197 comp = tmp2; // compression method
156 if (!read_int(f, &tmp2)) goto close_file; 198 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
157 image_size = tmp2; // bitmap data size 199 image_size = tmp2; // bitmap data size
158 if (!read_int(f, &tmp2)) goto close_file; 200 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
159 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 201 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
160 if (!read_int(f, &tmp2)) goto close_file; 202 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
161 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 203 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
162 if (!read_int(f, &tmp2)) goto close_file; 204 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
163 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 205 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
164 if (!read_int(f, &tmp2)) goto close_file; 206 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
165 important_colors = tmp2; // number of important colors - 0 if all 207 important_colors = tmp2; // number of important colors - 0 if all
166 if (image_size == 0) image_size = fsize - offset; 208 if (image_size == 0) image_size = fsize - offset;
167 if ((comp == 0) && (bit_count == 32)) hasa = 1; // GIMP seems to store it this way 209 if ((comp == 0) && (bit_count == 32)) hasa = 1; // GIMP seems to store it this way
@@ -170,37 +212,37 @@ evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key
170 { 212 {
171 short tmp; 213 short tmp;
172 int tmp2; 214 int tmp2;
173 215
174 if (!read_int(f, &tmp2)) goto close_file; 216 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
175 w = tmp2; // width 217 w = tmp2; // width
176 if (!read_int(f, &tmp2)) goto close_file; 218 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
177 h = tmp2; // height 219 h = tmp2; // height
178 if (!read_short(f, &tmp)) goto close_file; 220 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
179 planes = tmp; // must be 1 221 planes = tmp; // must be 1
180 if (!read_short(f, &tmp)) goto close_file; 222 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
181 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 223 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
182 if (!read_int(f, &tmp2)) goto close_file; 224 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
183 comp = tmp2; // compression method 225 comp = tmp2; // compression method
184 if (!read_int(f, &tmp2)) goto close_file; 226 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
185 image_size = tmp2; // bitmap data size 227 image_size = tmp2; // bitmap data size
186 if (!read_int(f, &tmp2)) goto close_file; 228 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
187 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 229 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
188 if (!read_int(f, &tmp2)) goto close_file; 230 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
189 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 231 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
190 if (!read_int(f, &tmp2)) goto close_file; 232 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
191 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 233 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
192 if (!read_int(f, &tmp2)) goto close_file; 234 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
193 important_colors = tmp2; // number of important colors - 0 if all 235 important_colors = tmp2; // number of important colors - 0 if all
194 if (!read_int(f, &tmp2)) goto close_file; 236 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
195 rmask = tmp2; // red mask 237 rmask = tmp2; // red mask
196 if (!read_int(f, &tmp2)) goto close_file; 238 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
197 gmask = tmp2; // green mask 239 gmask = tmp2; // green mask
198 if (!read_int(f, &tmp2)) goto close_file; 240 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
199 bmask = tmp2; // blue mask 241 bmask = tmp2; // blue mask
200 if (!read_int(f, &tmp2)) goto close_file; 242 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
201 amask = tmp2; // alpha mask 243 amask = tmp2; // alpha mask
202 if (fread(buf, 36, 1, f) != 1) goto close_file; // skip unused cie 244 if (!read_skip(fsize, &position, 36)) goto close_file; // skip unused cie
203 if (fread(buf, 12, 1, f) != 1) goto close_file; // skip unused gamma 245 if (!read_skip(fsize, &position, 12)) goto close_file; // skip unused gamma
204 if (image_size == 0) image_size = fsize - offset; 246 if (image_size == 0) image_size = fsize - offset;
205 if ((amask) && (bit_count == 32)) hasa = 1; 247 if ((amask) && (bit_count == 32)) hasa = 1;
206 } 248 }
@@ -208,38 +250,38 @@ evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key
208 { 250 {
209 short tmp; 251 short tmp;
210 int tmp2; 252 int tmp2;
211 253
212 if (!read_int(f, &tmp2)) goto close_file; 254 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
213 w = tmp2; // width 255 w = tmp2; // width
214 if (!read_int(f, &tmp2)) goto close_file; 256 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
215 h = tmp2; // height 257 h = tmp2; // height
216 if (!read_short(f, &tmp)) goto close_file; 258 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
217 planes = tmp; // must be 1 259 planes = tmp; // must be 1
218 if (!read_short(f, &tmp)) goto close_file; 260 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
219 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 261 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
220 if (!read_int(f, &tmp2)) goto close_file; 262 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
221 comp = tmp2; // compression method 263 comp = tmp2; // compression method
222 if (!read_int(f, &tmp2)) goto close_file; 264 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
223 image_size = tmp2; // bitmap data size 265 image_size = tmp2; // bitmap data size
224 if (!read_int(f, &tmp2)) goto close_file; 266 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
225 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 267 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
226 if (!read_int(f, &tmp2)) goto close_file; 268 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
227 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 269 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
228 if (!read_int(f, &tmp2)) goto close_file; 270 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
229 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 271 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
230 if (!read_int(f, &tmp2)) goto close_file; 272 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
231 important_colors = tmp2; // number of important colors - 0 if all 273 important_colors = tmp2; // number of important colors - 0 if all
232 if (!read_int(f, &tmp2)) goto close_file; 274 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
233 rmask = tmp2; // red mask 275 rmask = tmp2; // red mask
234 if (!read_int(f, &tmp2)) goto close_file; 276 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
235 gmask = tmp2; // green mask 277 gmask = tmp2; // green mask
236 if (!read_int(f, &tmp2)) goto close_file; 278 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
237 bmask = tmp2; // blue mask 279 bmask = tmp2; // blue mask
238 if (!read_int(f, &tmp2)) goto close_file; 280 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
239 amask = tmp2; // alpha mask 281 amask = tmp2; // alpha mask
240 if (fread(buf, 36, 1, f) != 1) goto close_file; // skip unused cie 282 if (!read_skip(fsize, &position, 36)) goto close_file; // skip unused cie
241 if (fread(buf, 12, 1, f) != 1) goto close_file; // skip unused gamma 283 if (!read_skip(fsize, &position, 12)) goto close_file; // skip unused gamma
242 if (fread(buf, 16, 1, f) != 1) goto close_file; // skip others 284 if (!read_skip(fsize, &position, 16)) goto close_file; // skip others
243 if (image_size == 0) image_size = fsize - offset; 285 if (image_size == 0) image_size = fsize - offset;
244 if ((amask) && (bit_count == 32)) hasa = 1; 286 if ((amask) && (bit_count == 32)) hasa = 1;
245 } 287 }
@@ -251,7 +293,7 @@ evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key
251 h = -h; 293 h = -h;
252 right_way_up = 1; 294 right_way_up = 1;
253 } 295 }
254 296
255 if ((w < 1) || (h < 1) || (w > IMG_MAX_SIZE) || (h > IMG_MAX_SIZE) || 297 if ((w < 1) || (h < 1) || (w > IMG_MAX_SIZE) || (h > IMG_MAX_SIZE) ||
256 IMG_TOO_BIG(w, h)) 298 IMG_TOO_BIG(w, h))
257 { 299 {
@@ -327,21 +369,24 @@ evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key
327 ie->w = w; 369 ie->w = w;
328 ie->h = h; 370 ie->h = h;
329 if (hasa) ie->flags.alpha = 1; 371 if (hasa) ie->flags.alpha = 1;
330 372
331 fclose(f); 373 eina_file_map_free(f, map);
374 eina_file_close(f);
332 *error = EVAS_LOAD_ERROR_NONE; 375 *error = EVAS_LOAD_ERROR_NONE;
333 return EINA_TRUE; 376 return EINA_TRUE;
334 377
335 close_file: 378 close_file:
336 fclose(f); 379 if (map) eina_file_map_free(f, map);
380 eina_file_close(f);
337 return EINA_FALSE; 381 return EINA_FALSE;
338} 382}
339 383
340static Eina_Bool 384static Eina_Bool
341evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error) 385evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error)
342{ 386{
343 FILE *f; 387 Eina_File *f;
344 char buf[4096]; 388 void *map = NULL;
389 size_t position = 0;
345 unsigned char *buffer = NULL, *buffer_end = NULL, *p; 390 unsigned char *buffer = NULL, *buffer_end = NULL, *p;
346 char hasa = 0; 391 char hasa = 0;
347 int x = 0, y = 0, w = 0, h = 0, planes = 0, bit_count = 0, image_size = 0, 392 int x = 0, y = 0, w = 0, h = 0, planes = 0, bit_count = 0, image_size = 0,
@@ -361,96 +406,96 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
361 int row_size = 0; /* Row size is rounded up to a multiple of 4bytes */ 406 int row_size = 0; /* Row size is rounded up to a multiple of 4bytes */
362 int read_line = 0; /* total read line */ 407 int read_line = 0; /* total read line */
363 408
364 409 f = eina_file_open(file, 0);
365 f = fopen(file, "rb");
366 if (!f) 410 if (!f)
367 { 411 {
368 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 412 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
369 return EINA_FALSE; 413 return EINA_FALSE;
370 } 414 }
371 415
372 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 416 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
373 fseek(f, 0, SEEK_END); 417 fsize = eina_file_size_get(f);
374 fsize = ftell(f);
375 fseek(f, 0, SEEK_SET);
376 if (fsize < 2) goto close_file; 418 if (fsize < 2) goto close_file;
419
420 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
421 if (!map) goto close_file;
377 422
378 if (fread(buf, 2, 1, f) != 1) goto close_file; 423 if (strncmp(map, "BM", 2)) goto close_file; // magic number
379 if (strncmp(buf, "BM", 2)) goto close_file; // magic number 424 position += 2;
380 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 425 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
381 if (!read_uint(f, &bmpsize)) goto close_file; 426 if (!read_uint(map, fsize, &position, &bmpsize)) goto close_file;
382 if (!read_ushort(f, &res1)) goto close_file; 427 if (!read_ushort(map, fsize, &position, &res1)) goto close_file;
383 if (!read_ushort(f, &res2)) goto close_file; 428 if (!read_ushort(map, fsize, &position, &res2)) goto close_file;
384 if (!read_uint(f, &offset)) goto close_file; 429 if (!read_uint(map, fsize, &position, &offset)) goto close_file;
385 if (!read_uint(f, &head_size)) goto close_file; 430 if (!read_uint(map, fsize, &position, &head_size)) goto close_file;
386 image_size = fsize - offset; 431 image_size = fsize - offset;
387 if (image_size < 1) goto close_file; 432 if (image_size < 1) goto close_file;
388 433
389 if (head_size == 12) // OS/2 V1 + Windows 3.0 434 if (head_size == 12) // OS/2 V1 + Windows 3.0
390 { 435 {
391 short tmp; 436 short tmp;
392 437
393 if (!read_short(f, &tmp)) goto close_file; 438 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
394 w = tmp; // width 439 w = tmp; // width
395 if (!read_short(f, &tmp)) goto close_file; 440 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
396 h = tmp; // height 441 h = tmp; // height
397 if (!read_short(f, &tmp)) goto close_file; 442 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
398 planes = tmp; // must be 1 443 planes = tmp; // must be 1
399 if (!read_short(f, &tmp)) goto close_file; 444 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
400 bit_count = tmp; // bits per pixel: 1, 4, 8 & 24 445 bit_count = tmp; // bits per pixel: 1, 4, 8 & 24
401 } 446 }
402 else if (head_size == 64) // OS/2 V2 447 else if (head_size == 64) // OS/2 V2
403 { 448 {
404 short tmp; 449 short tmp;
405 int tmp2; 450 int tmp2;
406 451
407 if (!read_int(f, &tmp2)) goto close_file; 452 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
408 w = tmp2; // width 453 w = tmp2; // width
409 if (!read_int(f, &tmp2)) goto close_file; 454 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
410 h = tmp2; // height 455 h = tmp2; // height
411 if (!read_short(f, &tmp)) goto close_file; 456 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
412 planes = tmp; // must be 1 457 planes = tmp; // must be 1
413 if (!read_short(f, &tmp)) goto close_file; 458 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
414 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 459 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
415 if (!read_int(f, &tmp2)) goto close_file; 460 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
416 comp = tmp2; // compression method 461 comp = tmp2; // compression method
417 if (!read_int(f, &tmp2)) goto close_file; 462 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
418 image_size = tmp2; // bitmap data size 463 image_size = tmp2; // bitmap data size
419 if (!read_int(f, &tmp2)) goto close_file; 464 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
420 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 465 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
421 if (!read_int(f, &tmp2)) goto close_file; 466 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
422 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 467 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
423 if (!read_int(f, &tmp2)) goto close_file; 468 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
424 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 469 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
425 if (!read_int(f, &tmp2)) goto close_file; 470 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
426 important_colors = tmp2; // number of important colors - 0 if all 471 important_colors = tmp2; // number of important colors - 0 if all
427 if (fread(buf, 24, 1, f) != 1) goto close_file; // skip unused header 472 if (!read_skip(fsize, &position, 24)) goto close_file; // skip unused header
428 if (image_size == 0) image_size = fsize - offset; 473 if (image_size == 0) image_size = fsize - offset;
429 } 474 }
430 else if (head_size == 40) // Windows 3.0 + (v3) 475 else if (head_size == 40) // Windows 3.0 + (v3)
431 { 476 {
432 short tmp; 477 short tmp;
433 int tmp2; 478 int tmp2;
434 479
435 if (!read_int(f, &tmp2)) goto close_file; 480 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
436 w = tmp2; // width 481 w = tmp2; // width
437 if (!read_int(f, &tmp2)) goto close_file; 482 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
438 h = tmp2; // height 483 h = tmp2; // height
439 if (!read_short(f, &tmp)) goto close_file; 484 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
440 planes = tmp; // must be 1 485 planes = tmp; // must be 1
441 if (!read_short(f, &tmp)) goto close_file; 486 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
442 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 487 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
443 if (!read_int(f, &tmp2)) goto close_file; 488 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
444 comp = tmp2; // compression method 489 comp = tmp2; // compression method
445 if (!read_int(f, &tmp2)) goto close_file; 490 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
446 image_size = tmp2; // bitmap data size 491 image_size = tmp2; // bitmap data size
447 if (!read_int(f, &tmp2)) goto close_file; 492 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
448 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 493 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
449 if (!read_int(f, &tmp2)) goto close_file; 494 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
450 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 495 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
451 if (!read_int(f, &tmp2)) goto close_file; 496 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
452 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 497 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
453 if (!read_int(f, &tmp2)) goto close_file; 498 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
454 important_colors = tmp2; // number of important colors - 0 if all 499 important_colors = tmp2; // number of important colors - 0 if all
455 if (image_size == 0) image_size = fsize - offset; 500 if (image_size == 0) image_size = fsize - offset;
456 if ((comp == 0) && (bit_count == 32)) hasa = 1; // GIMP seems to store it this way 501 if ((comp == 0) && (bit_count == 32)) hasa = 1; // GIMP seems to store it this way
@@ -459,37 +504,37 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
459 { 504 {
460 short tmp; 505 short tmp;
461 int tmp2; 506 int tmp2;
462 507
463 if (!read_int(f, &tmp2)) goto close_file; 508 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
464 w = tmp2; // width 509 w = tmp2; // width
465 if (!read_int(f, &tmp2)) goto close_file; 510 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
466 h = tmp2; // height 511 h = tmp2; // height
467 if (!read_short(f, &tmp)) goto close_file; 512 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
468 planes = tmp; // must be 1 513 planes = tmp; // must be 1
469 if (!read_short(f, &tmp)) goto close_file; 514 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
470 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 515 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
471 if (!read_int(f, &tmp2)) goto close_file; 516 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
472 comp = tmp2; // compression method 517 comp = tmp2; // compression method
473 if (!read_int(f, &tmp2)) goto close_file; 518 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
474 image_size = tmp2; // bitmap data size 519 image_size = tmp2; // bitmap data size
475 if (!read_int(f, &tmp2)) goto close_file; 520 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
476 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 521 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
477 if (!read_int(f, &tmp2)) goto close_file; 522 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
478 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 523 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
479 if (!read_int(f, &tmp2)) goto close_file; 524 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
480 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 525 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
481 if (!read_int(f, &tmp2)) goto close_file; 526 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
482 important_colors = tmp2; // number of important colors - 0 if all 527 important_colors = tmp2; // number of important colors - 0 if all
483 if (!read_int(f, &tmp2)) goto close_file; 528 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
484 rmask = tmp2; // red mask 529 rmask = tmp2; // red mask
485 if (!read_int(f, &tmp2)) goto close_file; 530 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
486 gmask = tmp2; // green mask 531 gmask = tmp2; // green mask
487 if (!read_int(f, &tmp2)) goto close_file; 532 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
488 bmask = tmp2; // blue mask 533 bmask = tmp2; // blue mask
489 if (!read_int(f, &tmp2)) goto close_file; 534 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
490 amask = tmp2; // alpha mask 535 amask = tmp2; // alpha mask
491 if (fread(buf, 36, 1, f) != 1) goto close_file; // skip unused cie 536 if (!read_skip(fsize, &position, 36)) goto close_file; // skip unused cie
492 if (fread(buf, 12, 1, f) != 1) goto close_file; // skip unused gamma 537 if (!read_skip(fsize, &position, 12)) goto close_file; // skip unused gamma
493 if (image_size == 0) image_size = fsize - offset; 538 if (image_size == 0) image_size = fsize - offset;
494 if ((amask) && (bit_count == 32)) hasa = 1; 539 if ((amask) && (bit_count == 32)) hasa = 1;
495 } 540 }
@@ -497,38 +542,38 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
497 { 542 {
498 short tmp; 543 short tmp;
499 int tmp2; 544 int tmp2;
500 545
501 if (!read_int(f, &tmp2)) goto close_file; 546 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
502 w = tmp2; // width 547 w = tmp2; // width
503 if (!read_int(f, &tmp2)) goto close_file; 548 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
504 h = tmp2; // height 549 h = tmp2; // height
505 if (!read_short(f, &tmp)) goto close_file; 550 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
506 planes = tmp; // must be 1 551 planes = tmp; // must be 1
507 if (!read_short(f, &tmp)) goto close_file; 552 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
508 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 553 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
509 if (!read_int(f, &tmp2)) goto close_file; 554 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
510 comp = tmp2; // compression method 555 comp = tmp2; // compression method
511 if (!read_int(f, &tmp2)) goto close_file; 556 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
512 image_size = tmp2; // bitmap data size 557 image_size = tmp2; // bitmap data size
513 if (!read_int(f, &tmp2)) goto close_file; 558 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
514 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 559 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
515 if (!read_int(f, &tmp2)) goto close_file; 560 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
516 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 561 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
517 if (!read_int(f, &tmp2)) goto close_file; 562 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
518 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 563 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
519 if (!read_int(f, &tmp2)) goto close_file; 564 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
520 important_colors = tmp2; // number of important colors - 0 if all 565 important_colors = tmp2; // number of important colors - 0 if all
521 if (!read_int(f, &tmp2)) goto close_file; 566 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
522 rmask = tmp2; // red mask 567 rmask = tmp2; // red mask
523 if (!read_int(f, &tmp2)) goto close_file; 568 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
524 gmask = tmp2; // green mask 569 gmask = tmp2; // green mask
525 if (!read_int(f, &tmp2)) goto close_file; 570 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
526 bmask = tmp2; // blue mask 571 bmask = tmp2; // blue mask
527 if (!read_int(f, &tmp2)) goto close_file; 572 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
528 amask = tmp2; // alpha mask 573 amask = tmp2; // alpha mask
529 if (fread(buf, 36, 1, f) != 1) goto close_file; // skip unused cie 574 if (!read_skip(fsize, &position, 36)) goto close_file; // skip unused cie
530 if (fread(buf, 12, 1, f) != 1) goto close_file; // skip unused gamma 575 if (!read_skip(fsize, &position, 12)) goto close_file; // skip unused gamma
531 if (fread(buf, 16, 1, f) != 1) goto close_file; // skip others 576 if (!read_skip(fsize, &position, 16)) goto close_file; // skip others
532 if (image_size == 0) image_size = fsize - offset; 577 if (image_size == 0) image_size = fsize - offset;
533 if ((amask) && (bit_count == 32)) hasa = 1; 578 if ((amask) && (bit_count == 32)) hasa = 1;
534 } 579 }
@@ -605,17 +650,17 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
605 pal = alloca(256 * 4); 650 pal = alloca(256 * 4);
606 for (i = 0; i < pal_num; i++) 651 for (i = 0; i < pal_num; i++)
607 { 652 {
608 if (fread(&b, 1, 1, f) != 1) goto close_file; 653 if (!read_uchar(map, fsize, &position, &b)) goto close_file;
609 if (fread(&g, 1, 1, f) != 1) goto close_file; 654 if (!read_uchar(map, fsize, &position, &g)) goto close_file;
610 if (fread(&r, 1, 1, f) != 1) goto close_file; 655 if (!read_uchar(map, fsize, &position, &r)) goto close_file;
611 if ((head_size != 12) /*&& (palette_size != 0)*/) 656 if ((head_size != 12) /*&& (palette_size != 0)*/)
612 { // OS/2 V1 doesn't do the pad byte 657 { // OS/2 V1 doesn't do the pad byte
613 if (fread(&a, 1, 1, f) != 1) goto close_file; 658 if (!read_uchar(map, fsize, &position, &a)) goto close_file;
614 } 659 }
615 a = 0xff; // fillin a as solid for paletted images 660 a = 0xff; // fillin a as solid for paletted images
616 pal[i] = ARGB_JOIN(a, r, g, b); 661 pal[i] = ARGB_JOIN(a, r, g, b);
617 } 662 }
618 fseek(f, offset, SEEK_SET); 663 position = offset;
619 664
620 if ((scale_ratio == 1) || (comp !=0)) 665 if ((scale_ratio == 1) || (comp !=0))
621 buffer = malloc(image_size + 8); // add 8 for padding to avoid checks 666 buffer = malloc(image_size + 8); // add 8 for padding to avoid checks
@@ -643,11 +688,11 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
643 688
644 if ((scale_ratio == 1) || (comp !=0)) 689 if ((scale_ratio == 1) || (comp !=0))
645 { 690 {
646 if (fread(buffer, image_size, 1, f) != 1) goto close_file; 691 if (!read_mem(map, fsize, &position, buffer, image_size)) goto close_file;
647 } 692 }
648 else 693 else
649 { 694 {
650 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 695 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
651 } 696 }
652 697
653 if (bit_count == 1) 698 if (bit_count == 1)
@@ -715,8 +760,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
715 read_line += scale_ratio; 760 read_line += scale_ratio;
716 if (read_line >= image_h) break; 761 if (read_line >= image_h) break;
717 762
718 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 763 position += row_size * (scale_ratio - 1);
719 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 764 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
720 p = buffer; 765 p = buffer;
721 buffer_end = buffer + row_size; 766 buffer_end = buffer + row_size;
722 } 767 }
@@ -770,8 +815,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
770 read_line += scale_ratio; 815 read_line += scale_ratio;
771 if (read_line >= image_h) break; 816 if (read_line >= image_h) break;
772 817
773 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 818 position += row_size * (scale_ratio - 1);
774 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 819 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
775 p = buffer; 820 p = buffer;
776 buffer_end = buffer + row_size; 821 buffer_end = buffer + row_size;
777 } 822 }
@@ -960,8 +1005,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
960 read_line += scale_ratio; 1005 read_line += scale_ratio;
961 if (read_line >= image_h) break; 1006 if (read_line >= image_h) break;
962 1007
963 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1008 position += row_size * (scale_ratio - 1);
964 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1009 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
965 p = buffer; 1010 p = buffer;
966 buffer_end = buffer + row_size; 1011 buffer_end = buffer + row_size;
967 } 1012 }
@@ -1088,7 +1133,7 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1088 { 1133 {
1089 if (comp == 0) // no compression 1134 if (comp == 0) // no compression
1090 { 1135 {
1091 fseek(f, offset, SEEK_SET); 1136 position = offset;
1092 if (scale_ratio == 1) 1137 if (scale_ratio == 1)
1093 buffer = malloc(image_size + 8); // add 8 for padding to avoid checks 1138 buffer = malloc(image_size + 8); // add 8 for padding to avoid checks
1094 else 1139 else
@@ -1106,11 +1151,11 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1106 p = buffer; 1151 p = buffer;
1107 if (scale_ratio == 1) 1152 if (scale_ratio == 1)
1108 { 1153 {
1109 if (fread(buffer, image_size, 1, f) != 1) goto close_file; 1154 if (!read_mem(map, fsize, &position, buffer, image_size)) goto close_file;
1110 } 1155 }
1111 else 1156 else
1112 { 1157 {
1113 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1158 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1114 } 1159 }
1115 if (bit_count == 16) 1160 if (bit_count == 16)
1116 { 1161 {
@@ -1139,8 +1184,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1139 read_line += scale_ratio; 1184 read_line += scale_ratio;
1140 if (read_line >= image_h) break; 1185 if (read_line >= image_h) break;
1141 1186
1142 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1187 position += row_size * (scale_ratio - 1);
1143 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1188 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1144 p = buffer; 1189 p = buffer;
1145 buffer_end = buffer + row_size; 1190 buffer_end = buffer + row_size;
1146 } 1191 }
@@ -1173,8 +1218,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1173 read_line += scale_ratio; 1218 read_line += scale_ratio;
1174 if (read_line >= image_h) break; 1219 if (read_line >= image_h) break;
1175 1220
1176 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1221 position += row_size * (scale_ratio - 1);
1177 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1222 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1178 p = buffer; 1223 p = buffer;
1179 buffer_end = buffer + row_size; 1224 buffer_end = buffer + row_size;
1180 } 1225 }
@@ -1212,8 +1257,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1212 read_line += scale_ratio; 1257 read_line += scale_ratio;
1213 if (read_line >= image_h) break; 1258 if (read_line >= image_h) break;
1214 1259
1215 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1260 position += row_size * (scale_ratio - 1);
1216 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1261 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1217 p = buffer; 1262 p = buffer;
1218 buffer_end = buffer + row_size; 1263 buffer_end = buffer + row_size;
1219 } 1264 }
@@ -1230,7 +1275,7 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1230 if (hasa) 1275 if (hasa)
1231 { 1276 {
1232 unsigned int *pixend = surface + (w * h); 1277 unsigned int *pixend = surface + (w * h);
1233 1278
1234 for (pix = surface; pix < pixend; pix++) 1279 for (pix = surface; pix < pixend; pix++)
1235 A_VAL(pix) = 0xff; 1280 A_VAL(pix) = 0xff;
1236 } 1281 }
@@ -1241,11 +1286,11 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1241 } 1286 }
1242 else if (comp == 3) // bit field 1287 else if (comp == 3) // bit field
1243 { 1288 {
1244 if (!read_uint(f, &rmask)) goto close_file; 1289 if (!read_uint(map, fsize, &position, &rmask)) goto close_file;
1245 if (!read_uint(f, &gmask)) goto close_file; 1290 if (!read_uint(map, fsize, &position, &gmask)) goto close_file;
1246 if (!read_uint(f, &bmask)) goto close_file; 1291 if (!read_uint(map, fsize, &position, &bmask)) goto close_file;
1247 1292
1248 fseek(f, offset, SEEK_SET); 1293 position = offset;
1249 if (scale_ratio == 1) 1294 if (scale_ratio == 1)
1250 buffer = malloc(image_size + 8); // add 8 for padding to avoid checks 1295 buffer = malloc(image_size + 8); // add 8 for padding to avoid checks
1251 else 1296 else
@@ -1264,14 +1309,14 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1264 p = buffer; 1309 p = buffer;
1265 if (scale_ratio == 1) 1310 if (scale_ratio == 1)
1266 { 1311 {
1267 if (fread(buffer, image_size, 1, f) != 1) goto close_file; 1312 if (!read_mem(map, fsize, &position, buffer, image_size)) goto close_file;
1268 } 1313 }
1269 else 1314 else
1270 { 1315 {
1271 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1316 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1272 } 1317 }
1273 1318
1274 if ((bit_count == 16) && 1319 if ((bit_count == 16) &&
1275 (rmask == 0xf800) && (gmask == 0x07e0) && (bmask == 0x001f) 1320 (rmask == 0xf800) && (gmask == 0x07e0) && (bmask == 0x001f)
1276 ) 1321 )
1277 { 1322 {
@@ -1299,8 +1344,9 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1299 { 1344 {
1300 read_line += scale_ratio; 1345 read_line += scale_ratio;
1301 if (read_line >= image_h) break; 1346 if (read_line >= image_h) break;
1302 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1347
1303 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1348 position += row_size * (scale_ratio - 1);
1349 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1304 p = buffer; 1350 p = buffer;
1305 buffer_end = buffer + row_size; 1351 buffer_end = buffer + row_size;
1306 } 1352 }
@@ -1338,8 +1384,9 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1338 { 1384 {
1339 read_line += scale_ratio; 1385 read_line += scale_ratio;
1340 if (read_line >= image_h) break; 1386 if (read_line >= image_h) break;
1341 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1387
1342 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1388 position += row_size * (scale_ratio - 1);
1389 if (!read_mem(map, fsize, &position, buffer_end, row_size)) goto close_file;
1343 p = buffer; 1390 p = buffer;
1344 buffer_end = buffer + row_size; 1391 buffer_end = buffer + row_size;
1345 } 1392 }
@@ -1375,8 +1422,9 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1375 { 1422 {
1376 read_line += scale_ratio; 1423 read_line += scale_ratio;
1377 if (read_line >= image_h) break; 1424 if (read_line >= image_h) break;
1378 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1425
1379 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1426 position += row_size * (scale_ratio - 1);
1427 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1380 p = buffer; 1428 p = buffer;
1381 buffer_end = buffer + row_size; 1429 buffer_end = buffer + row_size;
1382 } 1430 }
@@ -1404,10 +1452,12 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1404 } 1452 }
1405 else 1453 else
1406 goto close_file; 1454 goto close_file;
1407 1455
1408 if (buffer) free(buffer); 1456 if (buffer) free(buffer);
1409 if (scale_surface) free(scale_surface); 1457 if (scale_surface) free(scale_surface);
1410 fclose(f); 1458
1459 eina_file_map_free(f, map);
1460 eina_file_close(f);
1411 1461
1412 evas_common_image_premul(ie); 1462 evas_common_image_premul(ie);
1413 *error = EVAS_LOAD_ERROR_NONE; 1463 *error = EVAS_LOAD_ERROR_NONE;
@@ -1416,7 +1466,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1416 close_file: 1466 close_file:
1417 if (buffer) free(buffer); 1467 if (buffer) free(buffer);
1418 if (scale_surface) free(scale_surface); 1468 if (scale_surface) free(scale_surface);
1419 fclose(f); 1469 if (map) eina_file_map_free(f, map);
1470 eina_file_close(f);
1420 return EINA_FALSE; 1471 return EINA_FALSE;
1421} 1472}
1422 1473
diff --git a/libraries/evas/src/modules/loaders/edb/Makefile.in b/libraries/evas/src/modules/loaders/edb/Makefile.in
index 38c1fa2..87356b4 100644
--- a/libraries/evas/src/modules/loaders/edb/Makefile.in
+++ b/libraries/evas/src/modules/loaders/edb/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/edb/evas_image_load_edb.c b/libraries/evas/src/modules/loaders/edb/evas_image_load_edb.c
index 94b121e..521161f 100644
--- a/libraries/evas/src/modules/loaders/edb/evas_image_load_edb.c
+++ b/libraries/evas/src/modules/loaders/edb/evas_image_load_edb.c
@@ -16,7 +16,8 @@ static Evas_Image_Load_Func evas_image_load_edb_func =
16 EINA_TRUE, 16 EINA_TRUE,
17 evas_image_load_file_head_edb, 17 evas_image_load_file_head_edb,
18 evas_image_load_file_data_edb, 18 evas_image_load_file_data_edb,
19 NULL 19 NULL,
20 EINA_FALSE
20}; 21};
21 22
22static Eina_Bool 23static Eina_Bool
diff --git a/libraries/evas/src/modules/loaders/eet/Makefile.in b/libraries/evas/src/modules/loaders/eet/Makefile.in
index 6a6c40e..25a30cf 100644
--- a/libraries/evas/src/modules/loaders/eet/Makefile.in
+++ b/libraries/evas/src/modules/loaders/eet/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/eet/evas_image_load_eet.c b/libraries/evas/src/modules/loaders/eet/evas_image_load_eet.c
index a187b9e..f86246a 100644
--- a/libraries/evas/src/modules/loaders/eet/evas_image_load_eet.c
+++ b/libraries/evas/src/modules/loaders/eet/evas_image_load_eet.c
@@ -16,7 +16,8 @@ Evas_Image_Load_Func evas_image_load_eet_func =
16 EINA_TRUE, 16 EINA_TRUE,
17 evas_image_load_file_head_eet, 17 evas_image_load_file_head_eet,
18 evas_image_load_file_data_eet, 18 evas_image_load_file_data_eet,
19 NULL 19 NULL,
20 EINA_FALSE
20}; 21};
21 22
22 23
diff --git a/libraries/evas/src/modules/loaders/generic/Makefile.in b/libraries/evas/src/modules/loaders/generic/Makefile.in
index 65a0bac..dfd5294 100644
--- a/libraries/evas/src/modules/loaders/generic/Makefile.in
+++ b/libraries/evas/src/modules/loaders/generic/Makefile.in
@@ -232,8 +232,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
232PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 232PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
233PIXMAN_LIBS = @PIXMAN_LIBS@ 233PIXMAN_LIBS = @PIXMAN_LIBS@
234PKG_CONFIG = @PKG_CONFIG@ 234PKG_CONFIG = @PKG_CONFIG@
235PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
236PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
237PNG_CFLAGS = @PNG_CFLAGS@ 235PNG_CFLAGS = @PNG_CFLAGS@
238PNG_LIBS = @PNG_LIBS@ 236PNG_LIBS = @PNG_LIBS@
239RANLIB = @RANLIB@ 237RANLIB = @RANLIB@
@@ -250,6 +248,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
250VALGRIND_LIBS = @VALGRIND_LIBS@ 248VALGRIND_LIBS = @VALGRIND_LIBS@
251VERSION = @VERSION@ 249VERSION = @VERSION@
252VMAJ = @VMAJ@ 250VMAJ = @VMAJ@
251WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
252WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
253WIN32_CFLAGS = @WIN32_CFLAGS@ 253WIN32_CFLAGS = @WIN32_CFLAGS@
254WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 254WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
255XCB_CFLAGS = @XCB_CFLAGS@ 255XCB_CFLAGS = @XCB_CFLAGS@
@@ -331,6 +331,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
331evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 331evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
332evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 332evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
333evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 333evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
334evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
335evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
336evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
337evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
334evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 338evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
335evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 339evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
336evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 340evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/generic/evas_image_load_generic.c b/libraries/evas/src/modules/loaders/generic/evas_image_load_generic.c
index 88c189d..2bbfd3e 100644
--- a/libraries/evas/src/modules/loaders/generic/evas_image_load_generic.c
+++ b/libraries/evas/src/modules/loaders/generic/evas_image_load_generic.c
@@ -24,7 +24,8 @@ Evas_Image_Load_Func evas_image_load_generic_func =
24 EINA_TRUE, 24 EINA_TRUE,
25 evas_image_load_file_head_generic, 25 evas_image_load_file_head_generic,
26 evas_image_load_file_data_generic, 26 evas_image_load_file_data_generic,
27 NULL 27 NULL,
28 EINA_FALSE
28}; 29};
29 30
30static Eina_Bool 31static Eina_Bool
@@ -117,7 +118,7 @@ _load(Image_Entry *ie, const char *file, const char *key, int *error, Eina_Bool
117 int read_data = 0; 118 int read_data = 0;
118 char *tmpfname = NULL, *shmfname = NULL; 119 char *tmpfname = NULL, *shmfname = NULL;
119 DATA32 *body; 120 DATA32 *body;
120 FILE *f; 121 FILE *f = NULL;
121 122
122 libdir = _evas_module_libdir_get(); 123 libdir = _evas_module_libdir_get();
123 cmd_len = strlen(libdir); 124 cmd_len = strlen(libdir);
@@ -125,6 +126,7 @@ _load(Image_Entry *ie, const char *file, const char *key, int *error, Eina_Bool
125 img_loader = alloca(cmd_len + 1); 126 img_loader = alloca(cmd_len + 1);
126 strcpy(img_loader, libdir); 127 strcpy(img_loader, libdir);
127 strcat(img_loader, loader); 128 strcat(img_loader, loader);
129
128 // params excluding file, key and loadopts 130 // params excluding file, key and loadopts
129 cmd_len += 1024; 131 cmd_len += 1024;
130 cmd_len += strlen(file) * 2; 132 cmd_len += strlen(file) * 2;
@@ -188,6 +190,8 @@ _load(Image_Entry *ie, const char *file, const char *key, int *error, Eina_Bool
188 // will interpret shell stuff and path hunt that will then exec the 190 // will interpret shell stuff and path hunt that will then exec the
189 // program itself that will dynamically link that will again 191 // program itself that will dynamically link that will again
190 // parse the arguments and finally do something... 192 // parse the arguments and finally do something...
193 if (access(decoders[try_count], X_OK)) continue;
194
191 strcpy(cmd, decoders[try_count]); 195 strcpy(cmd, decoders[try_count]);
192 strcat(cmd, " "); 196 strcat(cmd, " ");
193 // filename first arg 197 // filename first arg
diff --git a/libraries/evas/src/modules/loaders/gif/Makefile.in b/libraries/evas/src/modules/loaders/gif/Makefile.in
index 7fcd6a7..f32fcf4 100644
--- a/libraries/evas/src/modules/loaders/gif/Makefile.in
+++ b/libraries/evas/src/modules/loaders/gif/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c b/libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c
index 976df0d..9cd6f6e 100644
--- a/libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c
+++ b/libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c
@@ -50,7 +50,8 @@ static Evas_Image_Load_Func evas_image_load_gif_func =
50 EINA_TRUE, 50 EINA_TRUE,
51 evas_image_load_file_head_gif, 51 evas_image_load_file_head_gif,
52 evas_image_load_file_data_gif, 52 evas_image_load_file_data_gif,
53 evas_image_load_frame_duration_gif 53 evas_image_load_frame_duration_gif,
54 EINA_FALSE
54}; 55};
55#define byte2_to_int(a,b) (((b)<<8)|(a)) 56#define byte2_to_int(a,b) (((b)<<8)|(a))
56 57
diff --git a/libraries/evas/src/modules/loaders/ico/Makefile.in b/libraries/evas/src/modules/loaders/ico/Makefile.in
index 5c26adf..f65ace0 100644
--- a/libraries/evas/src/modules/loaders/ico/Makefile.in
+++ b/libraries/evas/src/modules/loaders/ico/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/ico/evas_image_load_ico.c b/libraries/evas/src/modules/loaders/ico/evas_image_load_ico.c
index 17a7f7e..6e31191 100644
--- a/libraries/evas/src/modules/loaders/ico/evas_image_load_ico.c
+++ b/libraries/evas/src/modules/loaders/ico/evas_image_load_ico.c
@@ -19,32 +19,57 @@ static Evas_Image_Load_Func evas_image_load_ico_func =
19 EINA_TRUE, 19 EINA_TRUE,
20 evas_image_load_file_head_ico, 20 evas_image_load_file_head_ico,
21 evas_image_load_file_data_ico, 21 evas_image_load_file_data_ico,
22 NULL 22 NULL,
23 EINA_FALSE
23}; 24};
24 25
25static int 26static Eina_Bool
26read_ushort(FILE *file, unsigned short *ret) 27read_ushort(unsigned char *map, size_t length, size_t *position, unsigned short *ret)
27{ 28{
28 unsigned char b[2]; 29 unsigned char b[2];
29 if (fread(b, sizeof(unsigned char), 2, file) != 2) return 0; 30
31 if (*position + 2 > length) return EINA_FALSE;
32 b[0] = map[(*position)++];
33 b[1] = map[(*position)++];
30 *ret = (b[1] << 8) | b[0]; 34 *ret = (b[1] << 8) | b[0];
31 return 1; 35 return EINA_TRUE;
32} 36}
33 37
34static int 38static Eina_Bool
35read_uint(FILE *file, unsigned int *ret) 39read_uint(unsigned char *map, size_t length, size_t *position, unsigned int *ret)
36{ 40{
37 unsigned char b[4]; 41 unsigned char b[4];
38 if (fread(b, sizeof(unsigned char), 4, file) != 4) return 0; 42 unsigned int i;
43
44 if (*position + 4 > length) return EINA_FALSE;
45 for (i = 0; i < 4; i++)
46 b[i] = map[(*position)++];
39 *ret = ARGB_JOIN(b[3], b[2], b[1], b[0]); 47 *ret = ARGB_JOIN(b[3], b[2], b[1], b[0]);
40 return 1; 48 return EINA_TRUE;
49}
50
51static Eina_Bool
52read_uchar(unsigned char *map, size_t length, size_t *position, unsigned char *ret)
53{
54 if (*position + 1 > length) return EINA_FALSE;
55 *ret = map[(*position)++];
56 return EINA_TRUE;
57}
58
59static Eina_Bool
60read_mem(unsigned char *map, size_t length, size_t *position, void *buffer, int size)
61{
62 if (*position + size > length) return EINA_FALSE;
63 memcpy(buffer, map + *position, size);
64 *position += size;
65 return EINA_TRUE;
41} 66}
42 67
43enum 68enum
44{ 69{
45 SMALLEST, 70 SMALLEST,
46 BIGGEST, 71 BIGGEST,
47 SMALLER, 72 SMALLER,
48 BIGGER 73 BIGGER
49}; 74};
50 75
@@ -57,9 +82,11 @@ enum
57static Eina_Bool 82static Eina_Bool
58evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key, int *error) 83evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key, int *error)
59{ 84{
85 Eina_File *f;
86 void *map = NULL;
87 size_t position = 0;
60 unsigned short word; 88 unsigned short word;
61 unsigned char byte; 89 unsigned char byte;
62 FILE *f;
63 int wanted_w = 0, wanted_h = 0, w, h, cols, i, planes = 0, 90 int wanted_w = 0, wanted_h = 0, w, h, cols, i, planes = 0,
64 hot_x = 0, hot_y = 0, bpp = 0, pdelta, search = -1, have_choice = 0, 91 hot_x = 0, hot_y = 0, bpp = 0, pdelta, search = -1, have_choice = 0,
65 hasa = 1; 92 hasa = 1;
@@ -74,7 +101,7 @@ evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key
74 unsigned int bmoffset, bmsize; 101 unsigned int bmoffset, bmsize;
75 } chosen = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 102 } chosen = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
76 103
77 f = fopen(file, "rb"); 104 f = eina_file_open(file, EINA_FALSE);
78 if (!f) 105 if (!f)
79 { 106 {
80 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 107 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
@@ -82,16 +109,17 @@ evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key
82 } 109 }
83 110
84 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 111 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
85 fseek(f, 0, SEEK_END); 112 fsize = eina_file_size_get(f);
86 fsize = ftell(f);
87 fseek(f, 0, SEEK_SET);
88 if (fsize < (6 + 16 + 40)) goto close_file; 113 if (fsize < (6 + 16 + 40)) goto close_file;
89 114
115 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
116 if (!map) goto close_file;
117
90 // key: 118 // key:
91 // NULL == highest res 119 // NULL == highest res
92 // biggest == highest res 120 // biggest == highest res
93 // smallest == lowest res 121 // smallest == lowest res
94 // 122 //
95 // smaller == next size SMALLER than load opts WxH (if possible) 123 // smaller == next size SMALLER than load opts WxH (if possible)
96 // bigger == next size BIGGER than load opts WxH (if possible) 124 // bigger == next size BIGGER than load opts WxH (if possible)
97 // more ? 125 // more ?
@@ -103,10 +131,10 @@ evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key
103 wanted_h = ie->load_opts.h; 131 wanted_h = ie->load_opts.h;
104 search = SMALLER; 132 search = SMALLER;
105 } 133 }
106 134
107 if (!read_ushort(f, &reserved)) goto close_file; 135 if (!read_ushort(map, fsize, &position, &reserved)) goto close_file;
108 if (!read_ushort(f, &type)) goto close_file; 136 if (!read_ushort(map, fsize, &position, &type)) goto close_file;
109 if (!read_ushort(f, &count)) goto close_file; 137 if (!read_ushort(map, fsize, &position, &count)) goto close_file;
110 if (!((reserved == 0) && 138 if (!((reserved == 0) &&
111 ((type == ICON) || (type == CURSOR)) && (count > 0))) 139 ((type == ICON) || (type == CURSOR)) && (count > 0)))
112 goto close_file; 140 goto close_file;
@@ -141,24 +169,25 @@ evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key
141 } 169 }
142 for (i = 0; i < count; i++) 170 for (i = 0; i < count; i++)
143 { 171 {
144 if (fread(&byte, 1, 1, f) != 1) goto close_file; 172 unsigned char tw = 0, th = 0, tcols = 0;
145 w = byte; 173 if (!read_uchar(map, fsize, &position, &tw)) goto close_file;
174 w = tw;
146 if (w <= 0) w = 256; 175 if (w <= 0) w = 256;
147 if (fread(&byte, 1, 1, f) != 1) goto close_file; 176 if (!read_uchar(map, fsize, &position, &th)) goto close_file;
148 h = byte; 177 h = th;
149 if (h <= 0) h = 256; 178 if (h <= 0) h = 256;
150 if (fread(&byte, 1, 1, f) != 1) goto close_file; 179 if (!read_uchar(map, fsize, &position, &tcols)) goto close_file;
151 cols = byte; 180 cols = tcols;
152 if (cols <= 0) cols = 256; 181 if (cols <= 0) cols = 256;
153 if (fread(&byte, 1, 1, f) != 1) goto close_file; 182 if (!read_uchar(map, fsize, &position, &byte)) goto close_file;
154 if (!read_ushort(f, &word)) goto close_file; 183 if (!read_ushort(map, fsize, &position, &word)) goto close_file;
155 if (type == CURSOR) planes = word; 184 if (type == CURSOR) planes = word;
156 else hot_x = word; 185 else hot_x = word;
157 if (!read_ushort(f, &word)) goto close_file; 186 if (!read_ushort(map, fsize, &position, &word)) goto close_file;
158 if (type == CURSOR) bpp = word; 187 if (type == CURSOR) bpp = word;
159 else hot_y = word; 188 else hot_y = word;
160 if (!read_uint(f, &bmsize)) goto close_file; 189 if (!read_uint(map, fsize, &position, &bmsize)) goto close_file;
161 if (!read_uint(f, &bmoffset)) goto close_file; 190 if (!read_uint(map, fsize, &position, &bmoffset)) goto close_file;
162 if ((bmsize <= 0) || (bmoffset <= 0) || (bmoffset >= fsize)) goto close_file; 191 if ((bmsize <= 0) || (bmoffset <= 0) || (bmoffset >= fsize)) goto close_file;
163 if (search == BIGGEST) 192 if (search == BIGGEST)
164 { 193 {
@@ -245,7 +274,7 @@ evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key
245 } 274 }
246 } 275 }
247 if (chosen.bmoffset == 0) goto close_file; 276 if (chosen.bmoffset == 0) goto close_file;
248 if (fseek(f, chosen.bmoffset, SEEK_SET) != 0) goto close_file; 277 position = chosen.bmoffset;
249 278
250 w = chosen.w; 279 w = chosen.w;
251 h = chosen.h; 280 h = chosen.h;
@@ -263,23 +292,28 @@ evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key
263 ie->w = w; 292 ie->w = w;
264 ie->h = h; 293 ie->h = h;
265 if (hasa) ie->flags.alpha = 1; 294 if (hasa) ie->flags.alpha = 1;
266 295
267 fclose(f); 296 eina_file_map_free(f, map);
297 eina_file_close(f);
298
268 *error = EVAS_LOAD_ERROR_NONE; 299 *error = EVAS_LOAD_ERROR_NONE;
269 return EINA_TRUE; 300 return EINA_TRUE;
270 301
271 close_file: 302 close_file:
272 fclose(f); 303 if (map) eina_file_map_free(f, map);
304 eina_file_close(f);
273 return EINA_FALSE; 305 return EINA_FALSE;
274} 306}
275 307
276static Eina_Bool 308static Eina_Bool
277evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key, int *error) 309evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key, int *error)
278{ 310{
311 Eina_File *f;
312 void *map = NULL;
313 size_t position = 0;
279 unsigned short word; 314 unsigned short word;
280 unsigned char byte; 315 unsigned char byte;
281 unsigned int dword; 316 unsigned int dword;
282 FILE *f;
283 int wanted_w = 0, wanted_h = 0, w, h, cols, i, planes = 0, 317 int wanted_w = 0, wanted_h = 0, w, h, cols, i, planes = 0,
284 hot_x = 0, hot_y = 0, bpp = 0, pdelta, search = -1, have_choice = 0, 318 hot_x = 0, hot_y = 0, bpp = 0, pdelta, search = -1, have_choice = 0,
285 stride, pstride, j, right_way_up = 0, diff_size = 0, cols2; 319 stride, pstride, j, right_way_up = 0, diff_size = 0, cols2;
@@ -296,7 +330,7 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
296 unsigned int bmoffset, bmsize; 330 unsigned int bmoffset, bmsize;
297 } chosen = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 331 } chosen = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
298 332
299 f = fopen(file, "rb"); 333 f = eina_file_open(file, EINA_FALSE);
300 if (!f) 334 if (!f)
301 { 335 {
302 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 336 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
@@ -304,11 +338,12 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
304 } 338 }
305 339
306 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 340 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
307 fseek(f, 0, SEEK_END); 341 fsize = eina_file_size_get(f);
308 fsize = ftell(f);
309 fseek(f, 0, SEEK_SET);
310 if (fsize < (6 + 16 + 40)) goto close_file; 342 if (fsize < (6 + 16 + 40)) goto close_file;
311 343
344 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
345 if (!map) goto close_file;
346
312 // key: 347 // key:
313 // NULL == highest res 348 // NULL == highest res
314 // biggest == highest res 349 // biggest == highest res
@@ -325,11 +360,11 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
325 wanted_h = ie->load_opts.h; 360 wanted_h = ie->load_opts.h;
326 search = SMALLER; 361 search = SMALLER;
327 } 362 }
328 363
329 if (!read_ushort(f, &reserved)) goto close_file; 364 if (!read_ushort(map, fsize, &position, &reserved)) goto close_file;
330 if (!read_ushort(f, &type)) goto close_file; 365 if (!read_ushort(map, fsize, &position, &type)) goto close_file;
331 if (!read_ushort(f, &count)) goto close_file; 366 if (!read_ushort(map, fsize, &position, &count)) goto close_file;
332 if (!((reserved == 0) && 367 if (!((reserved == 0) &&
333 ((type == ICON) || (type == CURSOR)) && (count > 0))) 368 ((type == ICON) || (type == CURSOR)) && (count > 0)))
334 goto close_file; 369 goto close_file;
335 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 370 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
@@ -363,24 +398,25 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
363 } 398 }
364 for (i = 0; i < count; i++) 399 for (i = 0; i < count; i++)
365 { 400 {
366 if (fread(&byte, 1, 1, f) != 1) goto close_file; 401 unsigned char tw = 0, th = 0, tcols = 0;
367 w = byte; 402 if (!read_uchar(map, fsize, &position, &tw)) goto close_file;
403 w = tw;
368 if (w <= 0) w = 256; 404 if (w <= 0) w = 256;
369 if (fread(&byte, 1, 1, f) != 1) goto close_file; 405 if (!read_uchar(map, fsize, &position, &th)) goto close_file;
370 h = byte; 406 h = th;
371 if (h <= 0) h = 256; 407 if (h <= 0) h = 256;
372 if (fread(&byte, 1, 1, f) != 1) goto close_file; 408 if (!read_uchar(map, fsize, &position, &tcols)) goto close_file;
373 cols = byte; 409 cols = tcols;
374 if (cols <= 0) cols = 256; 410 if (cols <= 0) cols = 256;
375 if (fread(&byte, 1, 1, f) != 1) goto close_file; 411 if (!read_uchar(map, fsize, &position, &byte)) goto close_file;
376 if (!read_ushort(f, &word)) goto close_file; 412 if (!read_ushort(map, fsize, &position, &word)) goto close_file;
377 if (type == 1) planes = word; 413 if (type == 1) planes = word;
378 else hot_x = word; 414 else hot_x = word;
379 if (!read_ushort(f, &word)) goto close_file; 415 if (!read_ushort(map, fsize, &position, &word)) goto close_file;
380 if (type == 1) bpp = word; 416 if (type == 1) bpp = word;
381 else hot_y = word; 417 else hot_y = word;
382 if (!read_uint(f, &bmsize)) goto close_file; 418 if (!read_uint(map, fsize, &position, &bmsize)) goto close_file;
383 if (!read_uint(f, &bmoffset)) goto close_file; 419 if (!read_uint(map, fsize, &position, &bmoffset)) goto close_file;
384 if ((bmsize <= 0) || (bmoffset <= 0) || (bmoffset >= fsize)) goto close_file; 420 if ((bmsize <= 0) || (bmoffset <= 0) || (bmoffset >= fsize)) goto close_file;
385 if (search == BIGGEST) 421 if (search == BIGGEST)
386 { 422 {
@@ -467,7 +503,7 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
467 } 503 }
468 } 504 }
469 if (chosen.bmoffset == 0) goto close_file; 505 if (chosen.bmoffset == 0) goto close_file;
470 if (fseek(f, chosen.bmoffset, SEEK_SET) != 0) goto close_file; 506 position = chosen.bmoffset;
471 507
472 w = chosen.w; 508 w = chosen.w;
473 h = chosen.h; 509 h = chosen.h;
@@ -477,8 +513,8 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
477 if (((int)ie->w != w) || ((int)ie->h != h)) goto close_file; 513 if (((int)ie->w != w) || ((int)ie->h != h)) goto close_file;
478 514
479 // read bmp header time... let's do some checking 515 // read bmp header time... let's do some checking
480 if (!read_uint(f, &dword)) goto close_file; // headersize - dont care 516 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // headersize - dont care
481 if (!read_uint(f, &dword)) goto close_file; // width 517 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // width
482 if (dword > 0) 518 if (dword > 0)
483 { 519 {
484 if ((int)dword != w) 520 if ((int)dword != w)
@@ -487,7 +523,7 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
487 diff_size = 1; 523 diff_size = 1;
488 } 524 }
489 } 525 }
490 if (!read_uint(f, &dword)) goto close_file; // height 526 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // height
491 if (dword > 0) 527 if (dword > 0)
492 { 528 {
493 if ((int)dword != (h * 2)) 529 if ((int)dword != (h * 2))
@@ -503,19 +539,19 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
503 " May be expanded or cropped.", 539 " May be expanded or cropped.",
504 file, ie->w, ie->h, w, h); 540 file, ie->w, ie->h, w, h);
505 } 541 }
506 if (!read_ushort(f, &word)) goto close_file; // planes 542 if (!read_ushort(map, fsize, &position, &word)) goto close_file; // planes
507 planes2 = word; 543 planes2 = word;
508 if (!read_ushort(f, &word)) goto close_file; // bitcount 544 if (!read_ushort(map, fsize, &position, &word)) goto close_file; // bitcount
509 bitcount = word; 545 bitcount = word;
510 if (!read_uint(f, &dword)) goto close_file; // compression 546 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // compression
511 compression = dword; 547 compression = dword;
512 if (!read_uint(f, &dword)) goto close_file; // imagesize 548 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // imagesize
513 imagesize = dword; 549 imagesize = dword;
514 if (!read_uint(f, &dword)) goto close_file; // z pixels per m 550 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // z pixels per m
515 if (!read_uint(f, &dword)) goto close_file; // y pizels per m 551 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // y pizels per m
516 if (!read_uint(f, &dword)) goto close_file; // colors used 552 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // colors used
517 colorsused = dword; 553 colorsused = dword;
518 if (!read_uint(f, &dword)) goto close_file; // colors important 554 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // colors important
519 colorsimportant = dword; 555 colorsimportant = dword;
520 556
521 evas_cache_image_surface_alloc(ie, ie->w, ie->h); 557 evas_cache_image_surface_alloc(ie, ie->w, ie->h);
@@ -545,11 +581,11 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
545 for (i = 0; i < cols; i++) 581 for (i = 0; i < cols; i++)
546 { 582 {
547 unsigned char a, r, g, b; 583 unsigned char a, r, g, b;
548 584
549 if (fread(&b, 1, 1, f) != 1) goto close_file; 585 if (!read_uchar(map, fsize, &position, &b)) goto close_file;
550 if (fread(&g, 1, 1, f) != 1) goto close_file; 586 if (!read_uchar(map, fsize, &position, &g)) goto close_file;
551 if (fread(&r, 1, 1, f) != 1) goto close_file; 587 if (!read_uchar(map, fsize, &position, &r)) goto close_file;
552 if (fread(&a, 1, 1, f) != 1) goto close_file; 588 if (!read_uchar(map, fsize, &position, &a)) goto close_file;
553 a = 0xff; 589 a = 0xff;
554 pal[i] = ARGB_JOIN(a, r, g, b); 590 pal[i] = ARGB_JOIN(a, r, g, b);
555 } 591 }
@@ -563,7 +599,7 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
563 { 599 {
564 pix = surface + (i * ie->w); 600 pix = surface + (i * ie->w);
565 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w); 601 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w);
566 if (fread(pixbuf, pstride, 1, f) != 1) goto close_file; 602 if (!read_mem(map, fsize, &position, pixbuf, pstride)) goto close_file;
567 p = pixbuf; 603 p = pixbuf;
568 if (i >= (int)ie->h) continue; 604 if (i >= (int)ie->h) continue;
569 for (j = 0; j < w; j++) 605 for (j = 0; j < w; j++)
@@ -613,7 +649,7 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
613 { 649 {
614 pix = surface + (i * ie->w); 650 pix = surface + (i * ie->w);
615 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w); 651 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w);
616 if (fread(pixbuf, pstride, 1, f) != 1) goto close_file; 652 if (!read_mem(map, fsize, &position, pixbuf, pstride)) goto close_file;
617 p = pixbuf; 653 p = pixbuf;
618 if (i >= (int)ie->h) continue; 654 if (i >= (int)ie->h) continue;
619 for (j = 0; j < w; j++) 655 for (j = 0; j < w; j++)
@@ -639,7 +675,7 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
639 { 675 {
640 pix = surface + (i * ie->w); 676 pix = surface + (i * ie->w);
641 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w); 677 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w);
642 if (fread(pixbuf, pstride, 1, f) != 1) goto close_file; 678 if (!read_mem(map, fsize, &position, pixbuf, pstride)) goto close_file;
643 p = pixbuf; 679 p = pixbuf;
644 if (i >= (int)ie->h) continue; 680 if (i >= (int)ie->h) continue;
645 for (j = 0; j < w; j++) 681 for (j = 0; j < w; j++)
@@ -658,13 +694,13 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
658 { 694 {
659 pix = surface + (i * ie->w); 695 pix = surface + (i * ie->w);
660 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w); 696 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w);
661 if (fread(pixbuf, pstride, 1, f) != 1) goto close_file; 697 if (!read_mem(map, fsize, &position, pixbuf, pstride)) goto close_file;
662 p = pixbuf; 698 p = pixbuf;
663 if (i >= (int)ie->h) continue; 699 if (i >= (int)ie->h) continue;
664 for (j = 0; j < w; j++) 700 for (j = 0; j < w; j++)
665 { 701 {
666 unsigned char a, r, g, b; 702 unsigned char a, r, g, b;
667 703
668 if (j >= (int)ie->w) break; 704 if (j >= (int)ie->w) break;
669 b = p[0]; 705 b = p[0];
670 g = p[1]; 706 g = p[1];
@@ -683,13 +719,13 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
683 { 719 {
684 pix = surface + (i * ie->w); 720 pix = surface + (i * ie->w);
685 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w); 721 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w);
686 if (fread(pixbuf, pstride, 1, f) != 1) goto close_file; 722 if (!read_mem(map, fsize, &position, pixbuf, pstride)) goto close_file;
687 p = pixbuf; 723 p = pixbuf;
688 if (i >= (int)ie->h) continue; 724 if (i >= (int)ie->h) continue;
689 for (j = 0; j < w; j++) 725 for (j = 0; j < w; j++)
690 { 726 {
691 unsigned char a, r, g, b; 727 unsigned char a, r, g, b;
692 728
693 if (j >= (int)ie->w) break; 729 if (j >= (int)ie->w) break;
694 b = p[0]; 730 b = p[0];
695 g = p[1]; 731 g = p[1];
@@ -704,13 +740,13 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
704 } 740 }
705 if (!none_zero_alpha) 741 if (!none_zero_alpha)
706 { 742 {
707 if (fread(maskbuf, stride * 4 * h, 1, f) != 1) goto close_file; 743 if (!read_mem(map, fsize, &position, maskbuf, stride * 4 * h)) goto close_file;
708 // apply mask 744 // apply mask
709 pix = surface; 745 pix = surface;
710 for (i = 0; i < h; i++) 746 for (i = 0; i < h; i++)
711 { 747 {
712 unsigned char *m; 748 unsigned char *m;
713 749
714 pix = surface + (i * ie->w); 750 pix = surface + (i * ie->w);
715 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w); 751 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w);
716 m = maskbuf + (stride * i * 4); 752 m = maskbuf + (stride * i * 4);
@@ -727,15 +763,17 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
727 } 763 }
728 } 764 }
729 } 765 }
730 766
731 fclose(f); 767 eina_file_map_free(f, map);
732 768 eina_file_close(f);
769
733 evas_common_image_premul(ie); 770 evas_common_image_premul(ie);
734 *error = EVAS_LOAD_ERROR_NONE; 771 *error = EVAS_LOAD_ERROR_NONE;
735 return EINA_TRUE; 772 return EINA_TRUE;
736 773
737 close_file: 774 close_file:
738 fclose(f); 775 if (map) eina_file_map_free(f, map);
776 eina_file_close(f);
739 return EINA_FALSE; 777 return EINA_FALSE;
740} 778}
741 779
diff --git a/libraries/evas/src/modules/loaders/jpeg/Makefile.in b/libraries/evas/src/modules/loaders/jpeg/Makefile.in
index ce4b194..7c0ca18 100644
--- a/libraries/evas/src/modules/loaders/jpeg/Makefile.in
+++ b/libraries/evas/src/modules/loaders/jpeg/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c b/libraries/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c
index 0dbabab..797c76d 100644
--- a/libraries/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c
+++ b/libraries/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c
@@ -46,7 +46,8 @@ static Evas_Image_Load_Func evas_image_load_jpeg_func =
46 EINA_TRUE, 46 EINA_TRUE,
47 evas_image_load_file_head_jpeg, 47 evas_image_load_file_head_jpeg,
48 evas_image_load_file_data_jpeg, 48 evas_image_load_file_data_jpeg,
49 NULL 49 NULL,
50 EINA_TRUE
50}; 51};
51 52
52 53
diff --git a/libraries/evas/src/modules/loaders/pmaps/Makefile.in b/libraries/evas/src/modules/loaders/pmaps/Makefile.in
index de7b779..745e79b 100644
--- a/libraries/evas/src/modules/loaders/pmaps/Makefile.in
+++ b/libraries/evas/src/modules/loaders/pmaps/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c b/libraries/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c
index 9ba8f81..393e407 100644
--- a/libraries/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c
+++ b/libraries/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c
@@ -19,7 +19,8 @@ Evas_Image_Load_Func evas_image_load_pmaps_func = {
19 EINA_TRUE, 19 EINA_TRUE,
20 evas_image_load_file_head_pmaps, 20 evas_image_load_file_head_pmaps,
21 evas_image_load_file_data_pmaps, 21 evas_image_load_file_data_pmaps,
22 NULL 22 NULL,
23 EINA_FALSE
23}; 24};
24 25
25/* The buffer to load pmaps images */ 26/* The buffer to load pmaps images */
@@ -27,7 +28,9 @@ typedef struct Pmaps_Buffer Pmaps_Buffer;
27 28
28struct Pmaps_Buffer 29struct Pmaps_Buffer
29{ 30{
30 FILE *file; 31 Eina_File *file;
32 void *map;
33 size_t position;
31 34
32 /* the buffer */ 35 /* the buffer */
33 DATA8 buffer[FILE_BUFFER_SIZE]; 36 DATA8 buffer[FILE_BUFFER_SIZE];
@@ -160,13 +163,23 @@ pmaps_buffer_open(Pmaps_Buffer *b, const char *filename, int *error)
160{ 163{
161 size_t len; 164 size_t len;
162 165
163 b->file = fopen(filename, "rb"); 166 b->file = eina_file_open(filename, EINA_FALSE);
164 if (!b->file) 167 if (!b->file)
165 { 168 {
166 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 169 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
167 return EINA_FALSE; 170 return EINA_FALSE;
168 } 171 }
169 172
173 b->map = eina_file_map_all(b->file, EINA_FILE_SEQUENTIAL);
174 if (!b->map)
175 {
176 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
177 eina_file_close(b->file);
178 b->file = NULL;
179 return EINA_FALSE;
180 }
181
182 b->position = 0;
170 *b->buffer = 0; 183 *b->buffer = 0;
171 *b->unread = 0; 184 *b->unread = 0;
172 b->last_buffer = 0; 185 b->last_buffer = 0;
@@ -177,7 +190,9 @@ pmaps_buffer_open(Pmaps_Buffer *b, const char *filename, int *error)
177 if (len < 3) 190 if (len < 3)
178 { 191 {
179 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 192 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
180 fclose(b->file); 193 eina_file_map_free(b->file, b->map);
194 eina_file_close(b->file);
195 b->map = NULL;
181 b->file = NULL; 196 b->file = NULL;
182 return EINA_FALSE; 197 return EINA_FALSE;
183 } 198 }
@@ -197,7 +212,12 @@ static void
197pmaps_buffer_close(Pmaps_Buffer *b) 212pmaps_buffer_close(Pmaps_Buffer *b)
198{ 213{
199 if (b->file) 214 if (b->file)
200 fclose(b->file); 215 {
216 if (b->map) eina_file_map_free(b->file, b->map);
217 b->map = NULL;
218 eina_file_close(b->file);
219 b->file = NULL;
220 }
201} 221}
202 222
203static Eina_Bool 223static Eina_Bool
@@ -295,6 +315,7 @@ static size_t
295pmaps_buffer_plain_update(Pmaps_Buffer *b) 315pmaps_buffer_plain_update(Pmaps_Buffer *b)
296{ 316{
297 size_t r; 317 size_t r;
318 size_t max;
298 319
299 /* if we already are in the last buffer we can not update it */ 320 /* if we already are in the last buffer we can not update it */
300 if (b->last_buffer) 321 if (b->last_buffer)
@@ -304,9 +325,14 @@ pmaps_buffer_plain_update(Pmaps_Buffer *b)
304 * stuff */ 325 * stuff */
305 if (b->unread_len) 326 if (b->unread_len)
306 memcpy(b->buffer, b->unread, b->unread_len); 327 memcpy(b->buffer, b->unread, b->unread_len);
307 328
308 r = fread(&b->buffer[b->unread_len], 1, 329 max = FILE_BUFFER_SIZE - b->unread_len - 1;
309 FILE_BUFFER_SIZE - b->unread_len - 1, b->file) + b->unread_len; 330 if (b->position + max > eina_file_size_get(b->file))
331 max = eina_file_size_get(b->file) - b->position;
332
333 memcpy(&b->buffer[b->unread_len], b->map + b->position, max);
334 b->position += max;
335 r = max + b->unread_len;
310 336
311 /* we haven't read anything nor have we bytes in the unread buffer */ 337 /* we haven't read anything nor have we bytes in the unread buffer */
312 if (r == 0) 338 if (r == 0)
@@ -324,7 +350,7 @@ pmaps_buffer_plain_update(Pmaps_Buffer *b)
324 } 350 }
325 351
326 b->buffer[r] = 0; 352 b->buffer[r] = 0;
327 353
328 b->unread[0] = '\0'; 354 b->unread[0] = '\0';
329 b->unread_len = 0; 355 b->unread_len = 0;
330 356
@@ -339,6 +365,7 @@ static size_t
339pmaps_buffer_raw_update(Pmaps_Buffer *b) 365pmaps_buffer_raw_update(Pmaps_Buffer *b)
340{ 366{
341 size_t r; 367 size_t r;
368 size_t max;
342 369
343 if (b->last_buffer) 370 if (b->last_buffer)
344 return 0; 371 return 0;
@@ -346,8 +373,13 @@ pmaps_buffer_raw_update(Pmaps_Buffer *b)
346 if (b->unread_len) 373 if (b->unread_len)
347 memcpy(b->buffer, b->unread, b->unread_len); 374 memcpy(b->buffer, b->unread, b->unread_len);
348 375
349 r = fread(&b->buffer[b->unread_len], 1, FILE_BUFFER_SIZE - b->unread_len, 376 max = FILE_BUFFER_SIZE - b->unread_len;
350 b->file) + b->unread_len; 377 if (b->position + max > eina_file_size_get(b->file))
378 max = eina_file_size_get(b->file) - b->position;
379
380 memcpy(&b->buffer[b->unread_len], b->map + b->position, max);
381 b->position += max;
382 r = max + b->unread_len;
351 383
352 if (r < FILE_BUFFER_SIZE) 384 if (r < FILE_BUFFER_SIZE)
353 { 385 {
diff --git a/libraries/evas/src/modules/loaders/png/Makefile.in b/libraries/evas/src/modules/loaders/png/Makefile.in
index 0717299..3bd4919 100644
--- a/libraries/evas/src/modules/loaders/png/Makefile.in
+++ b/libraries/evas/src/modules/loaders/png/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/png/evas_image_load_png.c b/libraries/evas/src/modules/loaders/png/evas_image_load_png.c
index a1480ae..3007a57 100644
--- a/libraries/evas/src/modules/loaders/png/evas_image_load_png.c
+++ b/libraries/evas/src/modules/loaders/png/evas_image_load_png.c
@@ -35,7 +35,8 @@ static Evas_Image_Load_Func evas_image_load_png_func =
35 EINA_TRUE, 35 EINA_TRUE,
36 evas_image_load_file_head_png, 36 evas_image_load_file_head_png,
37 evas_image_load_file_data_png, 37 evas_image_load_file_data_png,
38 NULL 38 NULL,
39 EINA_FALSE
39}; 40};
40 41
41static Eina_Bool 42static Eina_Bool
diff --git a/libraries/evas/src/modules/loaders/psd/Makefile.in b/libraries/evas/src/modules/loaders/psd/Makefile.in
index 98d340a..3dc9c38 100644
--- a/libraries/evas/src/modules/loaders/psd/Makefile.in
+++ b/libraries/evas/src/modules/loaders/psd/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/psd/evas_image_load_psd.c b/libraries/evas/src/modules/loaders/psd/evas_image_load_psd.c
index 5a85e17..27f5f24 100644
--- a/libraries/evas/src/modules/loaders/psd/evas_image_load_psd.c
+++ b/libraries/evas/src/modules/loaders/psd/evas_image_load_psd.c
@@ -61,48 +61,57 @@ enum {
61}; 61};
62 62
63static Eina_Bool get_compressed_channels_length(PSD_Header *Head, 63static Eina_Bool get_compressed_channels_length(PSD_Header *Head,
64 FILE *file, 64 const unsigned char *map, size_t length, size_t *position,
65 unsigned short *rle_table, 65 unsigned short *rle_table,
66 unsigned int *chanlen); 66 unsigned int *chanlen);
67 67
68static int 68static int
69read_ushort(FILE *file, unsigned short *ret) 69read_ushort(const unsigned char *map, size_t length, size_t *position, unsigned short *ret)
70{ 70{
71 unsigned char b[2]; 71 if (*position + 2 > length) return 0;
72 if (fread(b, sizeof(unsigned char), 2, file) != 2) return 0;
73 // FIXME: need to check order 72 // FIXME: need to check order
74 *ret = (b[0] << 8) | b[1]; 73 *ret = (map[(*position) + 0] << 8) | map[(*position) + 1];
74 *position += 2;
75 return 1; 75 return 1;
76} 76}
77 77
78static int 78static int
79read_uint(FILE *file, unsigned int *ret) 79read_uint(const unsigned char *map, size_t length, size_t *position, unsigned int *ret)
80{ 80{
81 unsigned char b[4]; 81 if (*position + 4 > length) return 0;
82 if (fread(b, sizeof(unsigned char), 4, file) != 4) return 0;
83 // FIXME: need to check order 82 // FIXME: need to check order
84 *ret = ARGB_JOIN(b[0], b[1], b[2], b[3]); 83 *ret = ARGB_JOIN(map[(*position) + 0], map[(*position) + 1], map[(*position) + 2], map[(*position) + 3]);
84 *position += 4;
85 return 1;
86}
87
88static int
89read_block(const unsigned char *map, size_t length, size_t *position, void *target, size_t size)
90{
91 if (*position + size > length) return 0;
92 memcpy(target, map + *position, size);
93 *position += size;
85 return 1; 94 return 1;
86} 95}
87 96
88// Internal function used to get the Psd header from the current file. 97// Internal function used to get the Psd header from the current file.
89Eina_Bool 98Eina_Bool
90psd_get_header(PSD_Header *header, FILE * file) 99psd_get_header(PSD_Header *header, const unsigned char *map, size_t length, size_t *position)
91{ 100{
92 unsigned short tmp; 101 unsigned short tmp;
93 102
94#define CHECK_RET(Call, Value) \ 103#define CHECK_RET(Call) \
95 if (Call != Value) return EINA_FALSE; 104 if (!Call) return EINA_FALSE;
96 105
97 CHECK_RET(fread(header->signature, sizeof (unsigned char), 4, file), 4); 106 CHECK_RET(read_block(map, length, position, header->signature, 4));
98 CHECK_RET(read_ushort(file, &header->version), 1); 107 CHECK_RET(read_ushort(map, length, position, &header->version));
99 CHECK_RET(fread(header->reserved, sizeof (unsigned char), 6, file), 6); 108 CHECK_RET(read_block(map, length, position, header->reserved, 6));
100 CHECK_RET(read_ushort(file, &header->channels), 1); 109 CHECK_RET(read_ushort(map, length, position, &header->channels));
101 CHECK_RET(read_uint(file, &header->height), 1); 110 CHECK_RET(read_uint(map, length, position, &header->height));
102 CHECK_RET(read_uint(file, &header->width), 1); 111 CHECK_RET(read_uint(map, length, position, &header->width));
103 CHECK_RET(read_ushort(file, &header->depth), 1); 112 CHECK_RET(read_ushort(map, length, position, &header->depth));
104 113
105 CHECK_RET(read_ushort(file, &tmp), 1); 114 CHECK_RET(read_ushort(map, length, position, &tmp));
106 header->mode = tmp; 115 header->mode = tmp;
107 116
108#undef CHECK_RET 117#undef CHECK_RET
@@ -144,20 +153,35 @@ static Eina_Bool
144evas_image_load_file_head_psd(Image_Entry *ie, const char *FileName, 153evas_image_load_file_head_psd(Image_Entry *ie, const char *FileName,
145 const char *key __UNUSED__, int *error) 154 const char *key __UNUSED__, int *error)
146{ 155{
147 FILE *f; 156 Eina_File *f;
157 void *map;
158 size_t length;
159 size_t position;
148 PSD_Header header; 160 PSD_Header header;
149 Eina_Bool correct; 161 Eina_Bool correct;
150 162
151 *error = EVAS_LOAD_ERROR_NONE; 163 *error = EVAS_LOAD_ERROR_NONE;
152 164
153 f = fopen(FileName, "rb"); 165 f = eina_file_open(FileName, 0);
154 if (f == NULL) 166 if (f == NULL)
155 { 167 {
156 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 168 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
157 return EINA_FALSE; 169 return EINA_FALSE;
158 } 170 }
159 correct = psd_get_header(&header, f); 171
160 fclose(f); 172 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
173 length = eina_file_size_get(f);
174 position = 0;
175 if (!map || length < 1)
176 {
177 eina_file_close(f);
178 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
179 return EINA_FALSE;
180 }
181 correct = psd_get_header(&header, map, length, &position);
182
183 eina_file_map_free(f, map);
184 eina_file_close(f);
161 185
162 if (!correct || !is_psd(&header)) 186 if (!correct || !is_psd(&header))
163 { 187 {
@@ -174,7 +198,7 @@ evas_image_load_file_head_psd(Image_Entry *ie, const char *FileName,
174} 198}
175 199
176static unsigned int 200static unsigned int
177read_compressed_channel(FILE* file, 201read_compressed_channel(const unsigned char *map, size_t length, size_t *position,
178 const unsigned int channel_length __UNUSED__, 202 const unsigned int channel_length __UNUSED__,
179 unsigned int size, 203 unsigned int size,
180 unsigned char* channel) 204 unsigned char* channel)
@@ -183,19 +207,18 @@ read_compressed_channel(FILE* file,
183 unsigned int i; 207 unsigned int i;
184 char headbyte, c; 208 char headbyte, c;
185 209
186#define CHECK_RET(Call, Value) \ 210#define CHECK_RET(Call) \
187 if (Call != Value) return READ_COMPRESSED_ERROR_FILE_READ_ERROR; 211 if (!Call) return READ_COMPRESSED_ERROR_FILE_READ_ERROR; \
188 212
189 for (i = 0; i < size; ) 213 for (i = 0; i < size; )
190 { 214 {
191 CHECK_RET(fread(&headbyte, 1, 1, file), 1); 215 CHECK_RET(read_block(map, length, position, &headbyte, 1));
192 216
193 if (headbyte >= 0) 217 if (headbyte >= 0)
194 { 218 {
195 if (i + headbyte > size) 219 if (i + headbyte > size)
196 return READ_COMPRESSED_ERROR_FILE_CORRUPT; 220 return READ_COMPRESSED_ERROR_FILE_CORRUPT;
197 221 CHECK_RET(read_block(map, length, position, channel + i, headbyte + 1));
198 CHECK_RET(fread(channel + i, headbyte + 1, 1, file), 1);
199 222
200 i += headbyte + 1; 223 i += headbyte + 1;
201 } 224 }
@@ -203,14 +226,14 @@ read_compressed_channel(FILE* file,
203 { 226 {
204 int run; 227 int run;
205 228
206 CHECK_RET(fread(&c, 1, 1, file), 1); 229 CHECK_RET(read_block(map, length, position, &c, 1));
207 230
208 run = c; 231 run = c;
209 /* if (run == -1) */ 232 /* if (run == -1) */
210 /* return READ_COMPRESSED_ERROR_FILE_READ_ERROR; */ 233 /* return READ_COMPRESSED_ERROR_FILE_READ_ERROR; */
211 234
212 if (i + (-headbyte + 1) > size) 235 if (i + (-headbyte + 1) > size)
213 return READ_COMPRESSED_ERROR_FILE_CORRUPT; 236 return READ_COMPRESSED_ERROR_FILE_CORRUPT;
214 237
215 memset(channel + i, run, -headbyte + 1); 238 memset(channel + i, run, -headbyte + 1);
216 i += -headbyte + 1; 239 i += -headbyte + 1;
@@ -226,7 +249,7 @@ read_compressed_channel(FILE* file,
226Eina_Bool 249Eina_Bool
227psd_get_data(Image_Entry *ie __UNUSED__, 250psd_get_data(Image_Entry *ie __UNUSED__,
228 PSD_Header *head, 251 PSD_Header *head,
229 FILE *f, 252 const unsigned char *map, size_t length, size_t *position,
230 unsigned char *buffer, Eina_Bool compressed, 253 unsigned char *buffer, Eina_Bool compressed,
231 int *error) 254 int *error)
232{ 255{
@@ -268,13 +291,12 @@ psd_get_data(Image_Entry *ie __UNUSED__,
268 { 291 {
269 free(data); 292 free(data);
270 free(channel); 293 free(channel);
271 fprintf(stderr, "unsupported file format.\n");
272 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 294 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
273 return EINA_FALSE; 295 return EINA_FALSE;
274 } 296 }
275 297
276#define CHECK_RET(Call, Value) \ 298#define CHECK_RET(Call) \
277 if (Call != Value) \ 299 if (!Call) \
278 { \ 300 { \
279 free(data); \ 301 free(data); \
280 free(channel); \ 302 free(channel); \
@@ -289,7 +311,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
289 { 311 {
290 unsigned char *tmp = channel; 312 unsigned char *tmp = channel;
291 313
292 CHECK_RET(fread(tmp, pixels_count, 1, f), 1); 314 CHECK_RET(read_block(map, length, position, tmp, pixels_count));
293 315
294 for (y = 0; y < head->height * bps; y += bps) 316 for (y = 0; y < head->height * bps; y += bps)
295 { 317 {
@@ -306,7 +328,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
306 { 328 {
307 unsigned char *tmp = channel; 329 unsigned char *tmp = channel;
308 330
309 CHECK_RET(fread(channel, pixels_count, 1, f), 1); 331 CHECK_RET(read_block(map, length, position, channel, pixels_count));
310 332
311 for (y = 0; y < head->height * bps; y += bps) 333 for (y = 0; y < head->height * bps; y += bps)
312 { 334 {
@@ -333,7 +355,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
333 { 355 {
334 unsigned short *shortptr = (unsigned short*) channel; 356 unsigned short *shortptr = (unsigned short*) channel;
335 357
336 CHECK_RET(fread(channel, pixels_count * 2, 1, f), 1); 358 CHECK_RET(read_block(map, length, position, channel, pixels_count * 2));
337 359
338 for (y = 0; y < head->height * bps2; y += bps2) 360 for (y = 0; y < head->height * bps2; y += bps2)
339 { 361 {
@@ -350,7 +372,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
350 { 372 {
351 unsigned short *shortptr = (unsigned short*) channel; 373 unsigned short *shortptr = (unsigned short*) channel;
352 374
353 CHECK_RET(fread(channel, pixels_count * 2, 1, f), 1); 375 CHECK_RET(read_block(map, length, position, channel, pixels_count * 2));
354 376
355 for (y = 0; y < head->height * bps2; y += bps2) 377 for (y = 0; y < head->height * bps2; y += bps2)
356 { 378 {
@@ -373,7 +395,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
373 395
374 rle_table = alloca(head->height * head->channel_num * sizeof (unsigned short)); 396 rle_table = alloca(head->height * head->channel_num * sizeof (unsigned short));
375 chanlen = alloca(head->channel_num * sizeof (unsigned int)); 397 chanlen = alloca(head->channel_num * sizeof (unsigned int));
376 if (!get_compressed_channels_length(head, f, rle_table, chanlen)) 398 if (!get_compressed_channels_length(head, map, length, position, rle_table, chanlen))
377 goto file_read_error; 399 goto file_read_error;
378 400
379 for (c = 0; c < numchan; c++) 401 for (c = 0; c < numchan; c++)
@@ -381,7 +403,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
381 unsigned char *tmp = channel; 403 unsigned char *tmp = channel;
382 int err; 404 int err;
383 405
384 err = read_compressed_channel(f, 406 err = read_compressed_channel(map, length, position,
385 chanlen[c], 407 chanlen[c],
386 pixels_count, 408 pixels_count,
387 channel); 409 channel);
@@ -416,7 +438,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
416 unsigned char *tmp = channel; 438 unsigned char *tmp = channel;
417 int err; 439 int err;
418 440
419 err = read_compressed_channel(f, 441 err = read_compressed_channel(map, length, position,
420 chanlen[c], 442 chanlen[c],
421 pixels_count, 443 pixels_count,
422 channel); 444 channel);
@@ -482,7 +504,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
482Eina_Bool 504Eina_Bool
483get_single_channel(Image_Entry *ie __UNUSED__, 505get_single_channel(Image_Entry *ie __UNUSED__,
484 PSD_Header *head, 506 PSD_Header *head,
485 FILE *f, 507 const unsigned char *map, size_t length, size_t *position,
486 unsigned char *buffer, 508 unsigned char *buffer,
487 Eina_Bool compressed) 509 Eina_Bool compressed)
488{ 510{
@@ -496,29 +518,29 @@ get_single_channel(Image_Entry *ie __UNUSED__,
496 bpc = (head->depth / 8); 518 bpc = (head->depth / 8);
497 pixels_count = head->width * head->height; 519 pixels_count = head->width * head->height;
498 520
499#define CHECK_RET(Call, Value) \ 521#define CHECK_RET(Call) \
500 if (Call != Value) return EINA_FALSE; 522 if (!Call) return EINA_FALSE;
501 523
502 if (!compressed) 524 if (!compressed)
503 { 525 {
504 if (bpc == 1) 526 if (bpc == 1)
505 { 527 {
506 CHECK_RET(fread(buffer, pixels_count, 1, f), 1); 528 CHECK_RET(read_block(map, length, position, buffer, pixels_count));
507 } 529 }
508 else 530 else
509 { // Bpc == 2 531 { // Bpc == 2
510 CHECK_RET(fread(buffer, pixels_count * 2, 1, f), 1); 532 CHECK_RET(read_block(map, length, position, buffer, pixels_count * 2));
511 } 533 }
512 } 534 }
513 else 535 else
514 { 536 {
515 for (i = 0; i < (unsigned int)pixels_count; ) 537 for (i = 0; i < (unsigned int)pixels_count; )
516 { 538 {
517 CHECK_RET(fread(&headbyte, 1, 1, f), 1); 539 CHECK_RET(read_block(map, length, position, &headbyte, 1));
518 540
519 if (headbyte >= 0) 541 if (headbyte >= 0)
520 { // && HeadByte <= 127 542 { // && HeadByte <= 127
521 CHECK_RET(fread(buffer + i, headbyte + 1, 1, f), 1); 543 CHECK_RET(read_block(map, length, position, buffer + i, headbyte + 1));
522 544
523 i += headbyte + 1; 545 i += headbyte + 1;
524 } 546 }
@@ -526,7 +548,7 @@ get_single_channel(Image_Entry *ie __UNUSED__,
526 { 548 {
527 int run; 549 int run;
528 550
529 CHECK_RET(fread(&c, 1, 1, f), 1); 551 CHECK_RET(read_block(map, length, position, &c, 1));
530 552
531 run = c; 553 run = c;
532 if (run == -1) return EINA_FALSE; 554 if (run == -1) return EINA_FALSE;
@@ -543,7 +565,7 @@ get_single_channel(Image_Entry *ie __UNUSED__,
543} 565}
544 566
545Eina_Bool 567Eina_Bool
546read_psd_grey(Image_Entry *ie, PSD_Header *head, FILE * f, int *error) 568read_psd_grey(Image_Entry *ie, PSD_Header *head, const unsigned char *map, size_t length, size_t *position, int *error)
547{ 569{
548 unsigned int color_mode, resource_size, misc_info; 570 unsigned int color_mode, resource_size, misc_info;
549 unsigned short compressed; 571 unsigned short compressed;
@@ -552,22 +574,21 @@ read_psd_grey(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
552 574
553 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 575 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
554 576
555#define CHECK_RET(Call, Value) \ 577#define CHECK_RET(Call) \
556 if (Call != Value) return EINA_FALSE; 578 if (!Call) return EINA_FALSE;
557 579
558 CHECK_RET(read_uint(f, &color_mode), 1); 580 CHECK_RET(read_uint(map, length, position, &color_mode));
559 // Skip over the 'color mode data section' 581 // Skip over the 'color mode data section'
560 CHECK_RET(fseek(f, color_mode, SEEK_CUR), 0); 582 *position += color_mode;
561 583
562 CHECK_RET(read_uint(f, &resource_size), 1); 584 CHECK_RET(read_uint(map, length, position, &resource_size));
563 // Read the 'image resources section' 585 // Read the 'image resources section'
586 *position += resource_size;
564 587
565 CHECK_RET(fseek(f, resource_size, SEEK_CUR), 0); 588 CHECK_RET(read_uint(map, length, position, &misc_info));
589 *position += misc_info;
566 590
567 CHECK_RET(read_uint(f, &misc_info), 1); 591 CHECK_RET(read_ushort(map, length, position, &compressed));
568 CHECK_RET(fseek(f, misc_info, SEEK_CUR), 0);
569
570 CHECK_RET(read_ushort(f, &compressed), 1);
571 592
572 ie->w = head->width; 593 ie->w = head->width;
573 ie->h = head->height; 594 ie->h = head->height;
@@ -599,7 +620,7 @@ read_psd_grey(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
599 goto cleanup_error; 620 goto cleanup_error;
600 } 621 }
601 622
602 if (!psd_get_data(ie, head, f, surface, compressed, error)) 623 if (!psd_get_data(ie, head, map, length, position, surface, compressed, error))
603 goto cleanup_error; 624 goto cleanup_error;
604 625
605 return EINA_TRUE; 626 return EINA_TRUE;
@@ -612,7 +633,7 @@ read_psd_grey(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
612 633
613 634
614Eina_Bool 635Eina_Bool
615read_psd_indexed(Image_Entry *ie, PSD_Header *head, FILE * f, int *error) 636read_psd_indexed(Image_Entry *ie, PSD_Header *head, const unsigned char *map, size_t length, size_t *position, int *error)
616{ 637{
617 unsigned int color_mode, resource_size, misc_info; 638 unsigned int color_mode, resource_size, misc_info;
618 unsigned short compressed; 639 unsigned short compressed;
@@ -620,11 +641,11 @@ read_psd_indexed(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
620 641
621 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 642 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
622 643
623#define CHECK_RET(Call, Value) \ 644#define CHECK_RET(Call) \
624 if (Call != Value) return EINA_FALSE; 645 if (!(Call)) return EINA_FALSE;
625 646
626 CHECK_RET(read_uint(f, &color_mode), 1); 647 CHECK_RET(read_uint(map, length, position, &color_mode));
627 CHECK_RET((color_mode % 3), 0); 648 CHECK_RET(!(color_mode % 3));
628 /* 649 /*
629 Palette = (unsigned char*)malloc(Colormode); 650 Palette = (unsigned char*)malloc(Colormode);
630 if (Palette == NULL) 651 if (Palette == NULL)
@@ -633,16 +654,16 @@ read_psd_indexed(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
633 goto cleanup_error; 654 goto cleanup_error;
634 */ 655 */
635 // Skip over the 'color mode data section' 656 // Skip over the 'color mode data section'
636 CHECK_RET(fseek(f, color_mode, SEEK_CUR), 0); 657 *position += color_mode;
637 658
638 // Read the 'image resources section' 659 // Read the 'image resources section'
639 CHECK_RET(read_uint(f, &resource_size), 1); 660 CHECK_RET(read_uint(map, length, position, &resource_size));
640 CHECK_RET(fseek(f, resource_size, SEEK_CUR), 0); 661 *position += resource_size;
641 662
642 CHECK_RET(read_uint(f, &misc_info), 1); 663 CHECK_RET(read_uint(map, length, position, &misc_info));
643 CHECK_RET(fseek(f, misc_info, SEEK_CUR), 0); 664 *position += misc_info;
644 665
645 CHECK_RET(read_ushort(f, &compressed), 1); 666 CHECK_RET(read_ushort(map, length, position, &compressed));
646 667
647 if (head->channels != 1 || head->depth != 8) 668 if (head->channels != 1 || head->depth != 8)
648 { 669 {
@@ -664,7 +685,7 @@ read_psd_indexed(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
664 return EINA_FALSE; 685 return EINA_FALSE;
665 } 686 }
666 687
667 if (!psd_get_data(ie, head, f, surface, compressed, error)) 688 if (!psd_get_data(ie, head, map, length, position, surface, compressed, error))
668 return EINA_FALSE; 689 return EINA_FALSE;
669 return EINA_TRUE; 690 return EINA_TRUE;
670 691
@@ -672,28 +693,28 @@ read_psd_indexed(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
672} 693}
673 694
674Eina_Bool 695Eina_Bool
675read_psd_rgb(Image_Entry *ie, PSD_Header *head, FILE *f, int *error) 696read_psd_rgb(Image_Entry *ie, PSD_Header *head, const unsigned char *map, size_t length, size_t *position, int *error)
676{ 697{
677 unsigned int color_mode, resource_size, misc_info; 698 unsigned int color_mode, resource_size, misc_info;
678 unsigned short compressed; 699 unsigned short compressed;
679 unsigned int type; 700 unsigned int type;
680 void *surface; 701 void *surface;
681 702
682#define CHECK_RET(Call, Value) \ 703#define CHECK_RET(Call) \
683 if (Call != Value) return EINA_FALSE; 704 if (!Call) return EINA_FALSE;
684 705
685 CHECK_RET(read_uint(f, &color_mode), 1); 706 CHECK_RET(read_uint(map, length, position, &color_mode));
686 // Skip over the 'color mode data section' 707 // Skip over the 'color mode data section'
687 CHECK_RET(fseek(f, color_mode, SEEK_CUR), 0); 708 *position += color_mode;
688 709
689 // Read the 'image resources section' 710 // Read the 'image resources section'
690 CHECK_RET(read_uint(f, &resource_size), 1); 711 CHECK_RET(read_uint(map, length, position, &resource_size));
691 CHECK_RET(fseek(f, resource_size, SEEK_CUR), 0); 712 *position += resource_size;
692 713
693 CHECK_RET(read_uint(f, &misc_info), 1); 714 CHECK_RET(read_uint(map, length, position, &misc_info));
694 CHECK_RET(fseek(f, misc_info, SEEK_CUR), 0); 715 *position += misc_info;
695 716
696 CHECK_RET(read_ushort(f, &compressed), 1); 717 CHECK_RET(read_ushort(map, length, position, &compressed));
697 718
698 head->channel_num = head->channels; 719 head->channel_num = head->channels;
699 720
@@ -722,7 +743,7 @@ read_psd_rgb(Image_Entry *ie, PSD_Header *head, FILE *f, int *error)
722 goto cleanup_error; 743 goto cleanup_error;
723 } 744 }
724 745
725 if (!psd_get_data(ie, head, f, surface, compressed, error)) 746 if (!psd_get_data(ie, head, map, length, position, surface, compressed, error))
726 goto cleanup_error; 747 goto cleanup_error;
727 748
728 evas_common_image_premul(ie); 749 evas_common_image_premul(ie);
@@ -735,7 +756,7 @@ read_psd_rgb(Image_Entry *ie, PSD_Header *head, FILE *f, int *error)
735} 756}
736 757
737Eina_Bool 758Eina_Bool
738read_psd_cmyk(Image_Entry *ie, PSD_Header *head, FILE *f, int *error) 759read_psd_cmyk(Image_Entry *ie, PSD_Header *head, const unsigned char *map, size_t length, size_t *position, int *error)
739{ 760{
740 unsigned int color_mode, resource_size, misc_info, size, i, j, data_size; 761 unsigned int color_mode, resource_size, misc_info, size, i, j, data_size;
741 unsigned short compressed; 762 unsigned short compressed;
@@ -745,21 +766,21 @@ read_psd_cmyk(Image_Entry *ie, PSD_Header *head, FILE *f, int *error)
745 766
746 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 767 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
747 768
748#define CHECK_RET(Call, Value) \ 769#define CHECK_RET(Call) \
749 if (Call != Value) return EINA_FALSE; 770 if (!Call) return EINA_FALSE;
750 771
751 CHECK_RET(read_uint(f, &color_mode), 1); 772 CHECK_RET(read_uint(map, length, position, &color_mode));
752 // Skip over the 'color mode data section' 773 // Skip over the 'color mode data section'
753 CHECK_RET(fseek(f, color_mode, SEEK_CUR), 0); 774 *position += color_mode;
754 775
755 CHECK_RET(read_uint(f, &resource_size), 1); 776 CHECK_RET(read_uint(map, length, position, &resource_size));
756 // Read the 'image resources section' 777 // Read the 'image resources section'
757 CHECK_RET(fseek(f, resource_size, SEEK_CUR), 0); 778 *position += resource_size;
758 779
759 CHECK_RET(read_uint(f, &misc_info), 1); 780 CHECK_RET(read_uint(map, length, position, &misc_info));
760 CHECK_RET(fseek(f, misc_info, SEEK_CUR), 0); 781 *position += misc_info;
761 782
762 CHECK_RET(read_ushort(f, &compressed), 1); 783 CHECK_RET(read_ushort(map, length, position, &compressed));
763 784
764 switch (head->channels) 785 switch (head->channels)
765 { 786 {
@@ -804,14 +825,14 @@ read_psd_cmyk(Image_Entry *ie, PSD_Header *head, FILE *f, int *error)
804 goto cleanup_error; 825 goto cleanup_error;
805 } 826 }
806 827
807 if (!psd_get_data(ie, head, f, surface, compressed, error)) 828 if (!psd_get_data(ie, head, map, length, position, surface, compressed, error))
808 goto cleanup_error; 829 goto cleanup_error;
809 830
810 size = type * ie->w * ie->h; 831 size = type * ie->w * ie->h;
811 kchannel = malloc(size); 832 kchannel = malloc(size);
812 if (kchannel == NULL) 833 if (kchannel == NULL)
813 goto cleanup_error; 834 goto cleanup_error;
814 if (!get_single_channel(ie, head, f, kchannel, compressed)) 835 if (!get_single_channel(ie, head, map, length, position, kchannel, compressed))
815 goto cleanup_error; 836 goto cleanup_error;
816 837
817 data_size = head->channels * type * ie->w * ie->h; 838 data_size = head->channels * type * ie->w * ie->h;
@@ -861,20 +882,34 @@ evas_image_load_file_data_psd(Image_Entry *ie,
861 const char *key __UNUSED__, 882 const char *key __UNUSED__,
862 int *error) 883 int *error)
863{ 884{
864 FILE *f; 885 Eina_File *f;
886 void *map;
887 size_t length;
888 size_t position;
865 PSD_Header header; 889 PSD_Header header;
866 Eina_Bool bpsd = EINA_FALSE; 890 Eina_Bool bpsd = EINA_FALSE;
867 891
868 f = fopen(file, "rb"); 892 f = eina_file_open(file, 0);
869 if (f == NULL) 893 if (f == NULL)
870 { 894 {
871 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 895 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
872 return bpsd; 896 return bpsd;
873 } 897 }
874 898
875 if (!psd_get_header(&header, f) || !is_psd(&header)) 899 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
900 length = eina_file_size_get(f);
901 position = 0;
902 if (!map || length < 1)
903 {
904 eina_file_close(f);
905 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
906 return EINA_FALSE;
907 }
908
909 if (!psd_get_header(&header, map, length, &position) || !is_psd(&header))
876 { 910 {
877 fclose(f); 911 eina_file_map_free(f, map);
912 eina_file_close(f);
878 *error = EVAS_LOAD_ERROR_GENERIC; 913 *error = EVAS_LOAD_ERROR_GENERIC;
879 return EINA_FALSE; 914 return EINA_FALSE;
880 } 915 }
@@ -887,39 +922,39 @@ evas_image_load_file_data_psd(Image_Entry *ie,
887 switch (header.mode) 922 switch (header.mode)
888 { 923 {
889 case PSD_GREYSCALE: // Greyscale 924 case PSD_GREYSCALE: // Greyscale
890 bpsd = read_psd_grey(ie, &header, f, error); 925 bpsd = read_psd_grey(ie, &header, map, length, &position, error);
891 break; 926 break;
892 case PSD_INDEXED: // Indexed 927 case PSD_INDEXED: // Indexed
893 bpsd = read_psd_indexed(ie, &header, f, error); 928 bpsd = read_psd_indexed(ie, &header, map, length, &position, error);
894 break; 929 break;
895 case PSD_RGB: // RGB 930 case PSD_RGB: // RGB
896 bpsd = read_psd_rgb(ie, &header, f, error); 931 bpsd = read_psd_rgb(ie, &header, map, length, &position, error);
897 break; 932 break;
898 case PSD_CMYK: // CMYK 933 case PSD_CMYK: // CMYK
899 bpsd = read_psd_cmyk(ie, &header, f, error); 934 bpsd = read_psd_cmyk(ie, &header, map, length, &position, error);
900 break; 935 break;
901 default : 936 default :
902 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 937 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
903 bpsd = EINA_FALSE; 938 bpsd = EINA_FALSE;
904 } 939 }
905 fclose(f); 940
941 eina_file_map_free(f, map);
942 eina_file_close(f);
906 943
907 return bpsd; 944 return bpsd;
908} 945}
909 946
910static Eina_Bool 947static Eina_Bool
911get_compressed_channels_length(PSD_Header *head, 948get_compressed_channels_length(PSD_Header *head,
912 FILE * file, 949 const unsigned char *map, size_t length, size_t *position,
913 unsigned short *rle_table, 950 unsigned short *rle_table,
914 unsigned int *chanlen) 951 unsigned int *chanlen)
915{ 952{
916 unsigned int j; 953 unsigned int j;
917 unsigned int c; 954 unsigned int c;
918 955
919 if (fread(rle_table, 956 if (!read_block(map, length, position, rle_table,
920 sizeof(unsigned short), 957 sizeof (unsigned short) * head->height * head->channel_num))
921 head->height * head->channel_num,
922 file) != head->height * head->channel_num)
923 return EINA_FALSE; 958 return EINA_FALSE;
924 959
925 memset(chanlen, 0, head->channel_num * sizeof(unsigned int)); 960 memset(chanlen, 0, head->channel_num * sizeof(unsigned int));
@@ -941,7 +976,8 @@ static const Evas_Image_Load_Func evas_image_load_psd_func = {
941 EINA_TRUE, 976 EINA_TRUE,
942 evas_image_load_file_head_psd, 977 evas_image_load_file_head_psd,
943 evas_image_load_file_data_psd, 978 evas_image_load_file_data_psd,
944 NULL 979 NULL,
980 EINA_FALSE
945}; 981};
946 982
947static int 983static int
diff --git a/libraries/evas/src/modules/loaders/svg/Makefile.in b/libraries/evas/src/modules/loaders/svg/Makefile.in
index f81a3c3..b742842 100644
--- a/libraries/evas/src/modules/loaders/svg/Makefile.in
+++ b/libraries/evas/src/modules/loaders/svg/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/svg/evas_image_load_svg.c b/libraries/evas/src/modules/loaders/svg/evas_image_load_svg.c
index f1c8452..dc0fc8d 100644
--- a/libraries/evas/src/modules/loaders/svg/evas_image_load_svg.c
+++ b/libraries/evas/src/modules/loaders/svg/evas_image_load_svg.c
@@ -13,7 +13,8 @@ Evas_Image_Load_Func evas_image_load_svg_func =
13 EINA_FALSE, 13 EINA_FALSE,
14 evas_image_load_file_head_svg, 14 evas_image_load_file_head_svg,
15 evas_image_load_file_data_svg, 15 evas_image_load_file_data_svg,
16 NULL 16 NULL,
17 EINA_FALSE
17}; 18};
18 19
19static int rsvg_initialized = 0; 20static int rsvg_initialized = 0;
diff --git a/libraries/evas/src/modules/loaders/tga/Makefile.in b/libraries/evas/src/modules/loaders/tga/Makefile.in
index 645c77a..4d822d1 100644
--- a/libraries/evas/src/modules/loaders/tga/Makefile.in
+++ b/libraries/evas/src/modules/loaders/tga/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/tga/evas_image_load_tga.c b/libraries/evas/src/modules/loaders/tga/evas_image_load_tga.c
index 61b99f6..9b4073c 100644
--- a/libraries/evas/src/modules/loaders/tga/evas_image_load_tga.c
+++ b/libraries/evas/src/modules/loaders/tga/evas_image_load_tga.c
@@ -65,7 +65,8 @@ static Evas_Image_Load_Func evas_image_load_tga_func =
65 EINA_TRUE, 65 EINA_TRUE,
66 evas_image_load_file_head_tga, 66 evas_image_load_file_head_tga,
67 evas_image_load_file_data_tga, 67 evas_image_load_file_data_tga,
68 NULL 68 NULL,
69 EINA_FALSE
69}; 70};
70 71
71static Eina_Bool 72static Eina_Bool
diff --git a/libraries/evas/src/modules/loaders/tiff/Makefile.in b/libraries/evas/src/modules/loaders/tiff/Makefile.in
index a2deea7..2b102a1 100644
--- a/libraries/evas/src/modules/loaders/tiff/Makefile.in
+++ b/libraries/evas/src/modules/loaders/tiff/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/tiff/evas_image_load_tiff.c b/libraries/evas/src/modules/loaders/tiff/evas_image_load_tiff.c
index b9bea91..e17d5a6 100644
--- a/libraries/evas/src/modules/loaders/tiff/evas_image_load_tiff.c
+++ b/libraries/evas/src/modules/loaders/tiff/evas_image_load_tiff.c
@@ -34,7 +34,8 @@ static Evas_Image_Load_Func evas_image_load_tiff_func =
34 EINA_TRUE, 34 EINA_TRUE,
35 evas_image_load_file_head_tiff, 35 evas_image_load_file_head_tiff,
36 evas_image_load_file_data_tiff, 36 evas_image_load_file_data_tiff,
37 NULL 37 NULL,
38 EINA_FALSE
38}; 39};
39 40
40typedef struct TIFFRGBAImage_Extra TIFFRGBAImage_Extra; 41typedef struct TIFFRGBAImage_Extra TIFFRGBAImage_Extra;
diff --git a/libraries/evas/src/modules/loaders/wbmp/Makefile.in b/libraries/evas/src/modules/loaders/wbmp/Makefile.in
index 41a3bb9..5c01e1c 100644
--- a/libraries/evas/src/modules/loaders/wbmp/Makefile.in
+++ b/libraries/evas/src/modules/loaders/wbmp/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/wbmp/evas_image_load_wbmp.c b/libraries/evas/src/modules/loaders/wbmp/evas_image_load_wbmp.c
index fa6fab2..54e28d5 100644
--- a/libraries/evas/src/modules/loaders/wbmp/evas_image_load_wbmp.c
+++ b/libraries/evas/src/modules/loaders/wbmp/evas_image_load_wbmp.c
@@ -19,21 +19,22 @@ static Evas_Image_Load_Func evas_image_load_wbmp_func =
19 EINA_TRUE, 19 EINA_TRUE,
20 evas_image_load_file_head_wbmp, 20 evas_image_load_file_head_wbmp,
21 evas_image_load_file_data_wbmp, 21 evas_image_load_file_data_wbmp,
22 NULL 22 NULL,
23 EINA_FALSE
23}; 24};
24 25
25 26
26static int 27static int
27read_mb(unsigned int *data, FILE *f) 28read_mb(unsigned int *data, void *map, size_t length, size_t *position)
28{ 29{
29 int ac = 0, ct; 30 int ac = 0, ct;
30 unsigned char buf; 31 unsigned char buf;
31 32
32 for (ct = 0;;) 33 for (ct = 0;;)
33 { 34 {
34 if ((ct++) == 5) return -1; 35 if ((ct++) == 5) return -1;
35 if ((fread(&buf, 1, 1, f)) < 1) 36 if (*position > length) return -1;
36 return -1; 37 buf = ((unsigned char *) map)[(*position)++];
37 ac = (ac << 7) | (buf & 0x7f); 38 ac = (ac << 7) | (buf & 0x7f);
38 if ((buf & 0x80) == 0) break; 39 if ((buf & 0x80) == 0) break;
39 } 40 }
@@ -44,70 +45,105 @@ read_mb(unsigned int *data, FILE *f)
44static Eina_Bool 45static Eina_Bool
45evas_image_load_file_head_wbmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error) 46evas_image_load_file_head_wbmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error)
46{ 47{
47 FILE *f; 48 Eina_File *f;
49 void *map = NULL;
50 size_t position = 0;
51 size_t length;
48 unsigned int type, w, h; 52 unsigned int type, w, h;
49 unsigned char fixed_header; 53
50 struct stat statbuf;
51
52 *error = EVAS_LOAD_ERROR_GENERIC; 54 *error = EVAS_LOAD_ERROR_GENERIC;
53 f = fopen(file, "rb"); 55 f = eina_file_open(file, 0);
54 if (!f) 56 if (!f)
55 { 57 {
56 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 58 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
57 return EINA_FALSE; 59 return EINA_FALSE;
58 } 60 }
59 61
60 if (stat(file, &statbuf) == -1) goto bail; 62 length = eina_file_size_get(f);
61 if (read_mb(&type, f) < 0) goto bail; 63 if (length <= 4) goto bail;
62 64
65 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
66 if (!map) goto bail;
67
68 if (read_mb(&type, map, length, &position) < 0) goto bail;
69
63 if (type != 0) 70 if (type != 0)
64 { 71 {
65 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 72 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
66 goto bail; 73 goto bail;
67 } 74 }
68 75
69 if (fread(&fixed_header, 1, 1, f) != 1) goto bail; 76 position++; /* skipping one byte */
70 if (read_mb(&w, f) < 0) goto bail; 77 if (read_mb(&w, map, length, &position) < 0) goto bail;
71 if (read_mb(&h, f) < 0) goto bail; 78 if (read_mb(&h, map, length, &position) < 0) goto bail;
72 if ((w < 1) || (h < 1) || (w > IMG_MAX_SIZE) || (h > IMG_MAX_SIZE) || 79 if ((w < 1) || (h < 1) || (w > IMG_MAX_SIZE) || (h > IMG_MAX_SIZE) ||
73 IMG_TOO_BIG(w, h)) 80 IMG_TOO_BIG(w, h))
74 { 81 {
75 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 82 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
76 goto bail; 83 goto bail;
77 } 84 }
78 85
79 fclose(f); 86 eina_file_map_free(f, map);
87 eina_file_close(f);
80 ie->w = w; 88 ie->w = w;
81 ie->h = h; 89 ie->h = h;
82 90
83 *error = EVAS_LOAD_ERROR_NONE; 91 *error = EVAS_LOAD_ERROR_NONE;
84 return EINA_TRUE; 92 return EINA_TRUE;
85bail: 93bail:
86 fclose(f); 94 if (map) eina_file_map_free(f, map);
95 eina_file_close(f);
87 return EINA_FALSE; 96 return EINA_FALSE;
88} 97}
89 98
90static Eina_Bool 99static Eina_Bool
91evas_image_load_file_data_wbmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error) 100evas_image_load_file_data_wbmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error)
92{ 101{
93 FILE *f; 102 Eina_File *f;
94 unsigned int dummy, line_length; 103 void *map = NULL;
104 size_t position = 0;
105 size_t length;
106 unsigned int type, w, h;
107 unsigned int line_length;
95 unsigned char *line = NULL; 108 unsigned char *line = NULL;
96 int cur = 0, x, y; 109 int cur = 0, x, y;
97 DATA32 *dst_data; 110 DATA32 *dst_data;
98 111
99 *error = EVAS_LOAD_ERROR_GENERIC; 112 *error = EVAS_LOAD_ERROR_GENERIC;
100 f = fopen(file, "rb"); 113 f = eina_file_open(file, EINA_FALSE);
101 if (!f) 114 if (!f)
102 { 115 {
103 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 116 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
104 return EINA_FALSE; 117 return EINA_FALSE;
105 } 118 }
106 if (read_mb(&dummy, f) < 0) goto bail; 119
107 if (fread(&dummy, 1, 1, f) != 1) goto bail; 120 length = eina_file_size_get(f);
108 if (read_mb(&dummy, f) < 0) goto bail; 121 if (length <= 4) goto bail;
109 if (read_mb(&dummy, f) < 0) goto bail; 122
110 123 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
124 if (!map) goto bail;
125
126 if (read_mb(&type, map, length, &position) < 0) goto bail;
127 position++; /* skipping one byte */
128 if (read_mb(&w, map, length, &position) < 0) goto bail;
129 if (read_mb(&h, map, length, &position) < 0) goto bail;
130
131 if (type != 0)
132 {
133 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
134 goto bail;
135 }
136
137 if ((w < 1) || (h < 1) || (w > IMG_MAX_SIZE) || (h > IMG_MAX_SIZE) ||
138 IMG_TOO_BIG(w, h))
139 {
140 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
141 goto bail;
142 }
143
144 ie->w = w;
145 ie->h = h;
146
111 evas_cache_image_surface_alloc(ie, ie->w, ie->h); 147 evas_cache_image_surface_alloc(ie, ie->w, ie->h);
112 dst_data = evas_cache_image_pixels(ie); 148 dst_data = evas_cache_image_pixels(ie);
113 if (!dst_data) 149 if (!dst_data)
@@ -115,13 +151,14 @@ evas_image_load_file_data_wbmp(Image_Entry *ie, const char *file, const char *ke
115 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 151 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
116 goto bail; 152 goto bail;
117 } 153 }
118 154
119 line_length = (ie->w + 7) >> 3; 155 line_length = (ie->w + 7) >> 3;
120 line = alloca(line_length); 156
121
122 for (y = 0; y < (int)ie->h; y++) 157 for (y = 0; y < (int)ie->h; y++)
123 { 158 {
124 if (fread(line, 1, line_length, f) != line_length) goto bail; 159 if (position + line_length > length) goto bail;
160 line = ((unsigned char*) map) + position;
161 position += line_length;
125 for (x = 0; x < (int)ie->w; x++) 162 for (x = 0; x < (int)ie->w; x++)
126 { 163 {
127 int idx = x >> 3; 164 int idx = x >> 3;
@@ -131,11 +168,13 @@ evas_image_load_file_data_wbmp(Image_Entry *ie, const char *file, const char *ke
131 cur++; 168 cur++;
132 } 169 }
133 } 170 }
134 fclose(f); 171 eina_file_map_free(f, map);
172 eina_file_close(f);
135 *error = EVAS_LOAD_ERROR_NONE; 173 *error = EVAS_LOAD_ERROR_NONE;
136 return EINA_TRUE; 174 return EINA_TRUE;
137bail: 175bail:
138 fclose(f); 176 if (map) eina_file_map_free(f, map);
177 eina_file_close(f);
139 return EINA_FALSE; 178 return EINA_FALSE;
140} 179}
141 180
diff --git a/libraries/evas/src/modules/loaders/xpm/Makefile.in b/libraries/evas/src/modules/loaders/xpm/Makefile.in
index eba8f60..6383d9e 100644
--- a/libraries/evas/src/modules/loaders/xpm/Makefile.in
+++ b/libraries/evas/src/modules/loaders/xpm/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/xpm/evas_image_load_xpm.c b/libraries/evas/src/modules/loaders/xpm/evas_image_load_xpm.c
index 3a04f84..c764f6d 100644
--- a/libraries/evas/src/modules/loaders/xpm/evas_image_load_xpm.c
+++ b/libraries/evas/src/modules/loaders/xpm/evas_image_load_xpm.c
@@ -24,16 +24,20 @@ static Evas_Image_Load_Func evas_image_load_xpm_func =
24 EINA_FALSE, 24 EINA_FALSE,
25 evas_image_load_file_head_xpm, 25 evas_image_load_file_head_xpm,
26 evas_image_load_file_data_xpm, 26 evas_image_load_file_data_xpm,
27 NULL 27 NULL,
28 EINA_FALSE
28}; 29};
29 30
30// TODO: REWRITE THIS WITH THREAD SAFE VERSION NOT USING THIS HANDLE!!!! 31static Eina_File *rgb_txt;
31static FILE *rgb_txt = NULL; 32static void *rgb_txt_map;
32 33
33static void 34static void
34xpm_parse_color(char *color, int *r, int *g, int *b) 35xpm_parse_color(char *color, int *r, int *g, int *b)
35{ 36{
36 char buf[4096]; 37 char *tmp;
38 char *max;
39 char *endline;
40 char buf[4096];
37 41
38 /* is a #ff00ff like color */ 42 /* is a #ff00ff like color */
39 if (color[0] == '#') 43 if (color[0] == '#')
@@ -75,20 +79,23 @@ xpm_parse_color(char *color, int *r, int *g, int *b)
75 return; 79 return;
76 } 80 }
77 /* look in rgb txt database */ 81 /* look in rgb txt database */
78 if (!rgb_txt) rgb_txt = fopen("/usr/lib/X11/rgb.txt", "r");
79 if (!rgb_txt) rgb_txt = fopen("/usr/X11/lib/X11/rgb.txt", "r");
80 if (!rgb_txt) rgb_txt = fopen("/usr/X11R6/lib/X11/rgb.txt", "r");
81 if (!rgb_txt) rgb_txt = fopen("/usr/openwin/lib/X11/rgb.txt", "r");
82 if (!rgb_txt) return; 82 if (!rgb_txt) return;
83 fseek(rgb_txt, 0, SEEK_SET); 83 tmp = rgb_txt_map;
84 while (fgets(buf, sizeof(buf), rgb_txt)) 84 max = tmp + eina_file_size_get(rgb_txt);
85
86 while (tmp < max)
85 { 87 {
86 buf[sizeof(buf) - 1] = 0; 88 endline = memchr(tmp, '\n', max - tmp);
87 if (buf[0] != '!') 89 if (!endline) endline = max;
90 if ((*tmp != '!') && ((endline - tmp) < (int) (sizeof(buf) - 1)))
88 { 91 {
89 int rr, gg, bb; 92 int rr, gg, bb;
90 char name[4096]; 93 char name[4096];
91 94
95 /* FIXME: not really efficient */
96 memcpy(buf, tmp, endline - tmp);
97 buf[endline - tmp + 1] = '\0';
98
92 if (sscanf(buf, "%i %i %i %[^\n]", &rr, &gg, &bb, name) == 4) 99 if (sscanf(buf, "%i %i %i %[^\n]", &rr, &gg, &bb, name) == 4)
93 { 100 {
94 if (!strcasecmp(name, color)) 101 if (!strcasecmp(name, color))
@@ -100,33 +107,30 @@ xpm_parse_color(char *color, int *r, int *g, int *b)
100 } 107 }
101 } 108 }
102 } 109 }
110 tmp = endline + 1;
103 } 111 }
104} 112}
105 113
106static void
107xpm_parse_done(void)
108{
109 if (rgb_txt) fclose(rgb_txt);
110 rgb_txt = NULL;
111}
112
113
114/** FIXME: clean this up and make more efficient **/ 114/** FIXME: clean this up and make more efficient **/
115static Eina_Bool 115static Eina_Bool
116evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UNUSED__, int load_data, int *error) 116evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UNUSED__, int load_data, int *error)
117{ 117{
118 DATA32 *ptr, *end; 118 DATA32 *ptr, *end;
119 FILE *f; 119 Eina_File *f;
120 const char *map;
121 size_t length;
122 size_t position;
120 123
121 int pc, c, i, j, k, w, h, ncolors, cpp, comment, transp, 124 int pc, c, i, j, k, w, h, ncolors, cpp, comment, transp,
122 quote, context, len, done, r, g, b, backslash, lu1, lu2; 125 quote, context, len, done, r, g, b, backslash, lu1, lu2;
123 char *line, s[256], tok[128], col[256], *tl; 126 char *line = NULL;
127 char s[256], tok[128], col[256], *tl;
124 int lsz = 256; 128 int lsz = 256;
125 struct _cmap { 129 struct _cmap {
126 char str[6]; 130 char str[6];
127 unsigned char transp; 131 unsigned char transp;
128 short r, g, b; 132 short r, g, b;
129 } *cmap; 133 } *cmap = NULL;
130 134
131 short lookup[128 - 32][128 - 32]; 135 short lookup[128 - 32][128 - 32];
132 int count, pixels; 136 int count, pixels;
@@ -138,30 +142,39 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
138 /* if immediate_load is 1, then dont delay image laoding as below, or */ 142 /* if immediate_load is 1, then dont delay image laoding as below, or */
139 /* already data in this image - dont load it again */ 143 /* already data in this image - dont load it again */
140 144
141 f = fopen(file, "rb"); 145 f = eina_file_open(file, 0);
142 if (!f) 146 if (!f)
143 { 147 {
144 xpm_parse_done(); 148 ERR("XPM ERROR: file failed to open");
145 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 149 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
146 return EINA_FALSE; 150 return EINA_FALSE;
147 } 151 }
148 if (fread(s, 9, 1, f) != 1) 152 length = eina_file_size_get(f);
153 position = 0;
154 if (length < 9)
149 { 155 {
150 fclose(f); 156 ERR("XPM ERROR: file size, %i, is to small", length);
151 xpm_parse_done(); 157 eina_file_close(f);
152 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 158 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
153 return EINA_FALSE; 159 return EINA_FALSE;
154 } 160 }
155 rewind(f); 161
156 s[9] = 0; 162 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
157 if (strcmp("/* XPM */", s)) 163 if (!map)
158 { 164 {
159 fclose(f); 165 ERR("XPM ERROR: file failed to mmap");
160 xpm_parse_done(); 166 eina_file_close(f);
161 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 167 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
162 return EINA_FALSE; 168 return EINA_FALSE;
163 } 169 }
164 170
171 if (strncmp("/* XPM */", map, 9))
172 {
173 ERR("XPM ERROR: header not found");
174 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
175 goto on_error;
176 }
177
165 i = 0; 178 i = 0;
166 j = 0; 179 j = 0;
167 cmap = NULL; 180 cmap = NULL;
@@ -178,10 +191,8 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
178 line = malloc(lsz); 191 line = malloc(lsz);
179 if (!line) 192 if (!line)
180 { 193 {
181 fclose(f);
182 xpm_parse_done();
183 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 194 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
184 return EINA_FALSE; 195 goto on_error;
185 } 196 }
186 197
187 backslash = 0; 198 backslash = 0;
@@ -189,8 +200,8 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
189 while (!done) 200 while (!done)
190 { 201 {
191 pc = c; 202 pc = c;
192 c = fgetc(f); 203 if (position == length) break ;
193 if (c == EOF) break; 204 c = (char) map[position++];
194 if (!quote) 205 if (!quote)
195 { 206 {
196 if ((pc == '/') && (c == '*')) 207 if ((pc == '/') && (c == '*'))
@@ -215,56 +226,38 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
215 if (sscanf(line, "%i %i %i %i", &w, &h, &ncolors, &cpp) != 4) 226 if (sscanf(line, "%i %i %i %i", &w, &h, &ncolors, &cpp) != 4)
216 { 227 {
217 ERR("XPM ERROR: XPM file malformed header"); 228 ERR("XPM ERROR: XPM file malformed header");
218 free(line);
219 fclose(f);
220 xpm_parse_done();
221 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 229 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
222 return EINA_FALSE; 230 goto on_error;
223 } 231 }
224 if ((ncolors > 32766) || (ncolors < 1)) 232 if ((ncolors > 32766) || (ncolors < 1))
225 { 233 {
226 ERR("XPM ERROR: XPM files with colors > 32766 or < 1 not supported"); 234 ERR("XPM ERROR: XPM files with colors > 32766 or < 1 not supported");
227 free(line);
228 fclose(f);
229 xpm_parse_done();
230 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 235 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
231 return EINA_FALSE; 236 goto on_error;
232 } 237 }
233 if ((cpp > 5) || (cpp < 1)) 238 if ((cpp > 5) || (cpp < 1))
234 { 239 {
235 ERR("XPM ERROR: XPM files with characters per pixel > 5 or < 1not supported"); 240 ERR("XPM ERROR: XPM files with characters per pixel > 5 or < 1not supported");
236 free(line);
237 fclose(f);
238 xpm_parse_done();
239 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 241 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
240 return EINA_FALSE; 242 goto on_error;
241 } 243 }
242 if ((w > IMG_MAX_SIZE) || (w < 1)) 244 if ((w > IMG_MAX_SIZE) || (w < 1))
243 { 245 {
244 ERR("XPM ERROR: Image width > IMG_MAX_SIZE or < 1 pixels for file"); 246 ERR("XPM ERROR: Image width > IMG_MAX_SIZE or < 1 pixels for file");
245 free(line);
246 fclose(f);
247 xpm_parse_done();
248 *error = EVAS_LOAD_ERROR_GENERIC; 247 *error = EVAS_LOAD_ERROR_GENERIC;
249 return EINA_FALSE; 248 goto on_error;
250 } 249 }
251 if ((h > IMG_MAX_SIZE) || (h < 1)) 250 if ((h > IMG_MAX_SIZE) || (h < 1))
252 { 251 {
253 ERR("XPM ERROR: Image height > IMG_MAX_SIZE or < 1 pixels for file"); 252 ERR("XPM ERROR: Image height > IMG_MAX_SIZE or < 1 pixels for file");
254 free(line);
255 fclose(f);
256 xpm_parse_done();
257 *error = EVAS_LOAD_ERROR_GENERIC; 253 *error = EVAS_LOAD_ERROR_GENERIC;
258 return EINA_FALSE; 254 goto on_error;
259 } 255 }
260 if (IMG_TOO_BIG(w, h)) 256 if (IMG_TOO_BIG(w, h))
261 { 257 {
262 ERR("XPM ERROR: Image just too big to ever allocate"); 258 ERR("XPM ERROR: Image just too big to ever allocate");
263 free(line);
264 fclose(f);
265 xpm_parse_done();
266 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 259 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
267 return EINA_FALSE; 260 goto on_error;
268 } 261 }
269 262
270 if (!cmap) 263 if (!cmap)
@@ -272,11 +265,8 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
272 cmap = malloc(sizeof(struct _cmap) * ncolors); 265 cmap = malloc(sizeof(struct _cmap) * ncolors);
273 if (!cmap) 266 if (!cmap)
274 { 267 {
275 free(line);
276 fclose(f);
277 xpm_parse_done();
278 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 268 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
279 return EINA_FALSE; 269 goto on_error;
280 } 270 }
281 } 271 }
282 ie->w = w; 272 ie->w = w;
@@ -398,24 +388,16 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
398 ptr = evas_cache_image_pixels(ie); 388 ptr = evas_cache_image_pixels(ie);
399 if (!ptr) 389 if (!ptr)
400 { 390 {
401 free(cmap);
402 free(line);
403 fclose(f);
404 xpm_parse_done();
405 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 391 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
406 return EINA_FALSE; 392 goto on_error;
407 } 393 }
408 pixels = w * h; 394 pixels = w * h;
409 end = ptr + pixels; 395 end = ptr + pixels;
410 } 396 }
411 else 397 else
412 { 398 {
413 free(cmap);
414 free(line);
415 fclose(f);
416 xpm_parse_done();
417 *error = EVAS_LOAD_ERROR_NONE; 399 *error = EVAS_LOAD_ERROR_NONE;
418 return EINA_TRUE; 400 goto on_success;
419 } 401 }
420 } 402 }
421 else 403 else
@@ -631,13 +613,21 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
631 break; 613 break;
632 } 614 }
633 615
616 on_success:
634 free(cmap); 617 free(cmap);
635 free(line); 618 free(line);
636 fclose(f);
637 619
638 xpm_parse_done(); 620 eina_file_map_free(f, (void*) map);
621 eina_file_close(f);
622
639 *error = EVAS_LOAD_ERROR_NONE; 623 *error = EVAS_LOAD_ERROR_NONE;
640 return EINA_TRUE; 624 return EINA_TRUE;
625
626 on_error:
627 free(line);
628 eina_file_map_free(f, (void*) map);
629 eina_file_close(f);
630 return EINA_FALSE;
641} 631}
642 632
643static Eina_Bool 633static Eina_Bool
@@ -663,6 +653,14 @@ module_open(Evas_Module *em)
663 EINA_LOG_ERR("Can not create a module log domain."); 653 EINA_LOG_ERR("Can not create a module log domain.");
664 return 0; 654 return 0;
665 } 655 }
656
657 /* Shouldn't we make that PATH configurable ? */
658 rgb_txt = eina_file_open("/usr/lib/X11/rgb.txt", 0);
659 if (!rgb_txt) rgb_txt = eina_file_open("/usr/X11/lib/X11/rgb.txt", 0);
660 if (!rgb_txt) rgb_txt = eina_file_open("/usr/X11R6/lib/X11/rgb.txt", 0);
661 if (!rgb_txt) rgb_txt = eina_file_open("/usr/openwin/lib/X11/rgb.txt", 0);
662 if (rgb_txt)
663 rgb_txt_map = eina_file_map_all(rgb_txt, EINA_FILE_SEQUENTIAL);
666 em->functions = (void *)(&evas_image_load_xpm_func); 664 em->functions = (void *)(&evas_image_load_xpm_func);
667 return 1; 665 return 1;
668} 666}
@@ -670,6 +668,12 @@ module_open(Evas_Module *em)
670static void 668static void
671module_close(Evas_Module *em __UNUSED__) 669module_close(Evas_Module *em __UNUSED__)
672{ 670{
671 if (rgb_txt)
672 {
673 eina_file_map_free(rgb_txt, rgb_txt_map);
674 eina_file_close(rgb_txt);
675 rgb_txt = NULL;
676 }
673 eina_log_domain_unregister(_evas_loader_xpm_log_dom); 677 eina_log_domain_unregister(_evas_loader_xpm_log_dom);
674} 678}
675 679
diff --git a/libraries/evas/src/modules/savers/Makefile.in b/libraries/evas/src/modules/savers/Makefile.in
index 6d64b4c..28236d9 100644
--- a/libraries/evas/src/modules/savers/Makefile.in
+++ b/libraries/evas/src/modules/savers/Makefile.in
@@ -211,8 +211,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
211PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 211PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
212PIXMAN_LIBS = @PIXMAN_LIBS@ 212PIXMAN_LIBS = @PIXMAN_LIBS@
213PKG_CONFIG = @PKG_CONFIG@ 213PKG_CONFIG = @PKG_CONFIG@
214PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
215PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
216PNG_CFLAGS = @PNG_CFLAGS@ 214PNG_CFLAGS = @PNG_CFLAGS@
217PNG_LIBS = @PNG_LIBS@ 215PNG_LIBS = @PNG_LIBS@
218RANLIB = @RANLIB@ 216RANLIB = @RANLIB@
@@ -229,6 +227,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
229VALGRIND_LIBS = @VALGRIND_LIBS@ 227VALGRIND_LIBS = @VALGRIND_LIBS@
230VERSION = @VERSION@ 228VERSION = @VERSION@
231VMAJ = @VMAJ@ 229VMAJ = @VMAJ@
230WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
231WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
232WIN32_CFLAGS = @WIN32_CFLAGS@ 232WIN32_CFLAGS = @WIN32_CFLAGS@
233WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 233WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
234XCB_CFLAGS = @XCB_CFLAGS@ 234XCB_CFLAGS = @XCB_CFLAGS@
@@ -310,6 +310,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
310evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 310evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
311evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 311evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
312evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 312evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
313evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
314evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
315evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
316evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
313evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 317evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
314evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 318evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
315evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 319evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/savers/edb/Makefile.in b/libraries/evas/src/modules/savers/edb/Makefile.in
index e319b56..2ed29ec 100644
--- a/libraries/evas/src/modules/savers/edb/Makefile.in
+++ b/libraries/evas/src/modules/savers/edb/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/savers/eet/Makefile.in b/libraries/evas/src/modules/savers/eet/Makefile.in
index c80e946..6564c18 100644
--- a/libraries/evas/src/modules/savers/eet/Makefile.in
+++ b/libraries/evas/src/modules/savers/eet/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/savers/jpeg/Makefile.in b/libraries/evas/src/modules/savers/jpeg/Makefile.in
index 3c1bd8b..e57c4f9 100644
--- a/libraries/evas/src/modules/savers/jpeg/Makefile.in
+++ b/libraries/evas/src/modules/savers/jpeg/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/savers/png/Makefile.in b/libraries/evas/src/modules/savers/png/Makefile.in
index 3b905a5..da04ff2 100644
--- a/libraries/evas/src/modules/savers/png/Makefile.in
+++ b/libraries/evas/src/modules/savers/png/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/savers/tiff/Makefile.in b/libraries/evas/src/modules/savers/tiff/Makefile.in
index 27acddd..8f4411f 100644
--- a/libraries/evas/src/modules/savers/tiff/Makefile.in
+++ b/libraries/evas/src/modules/savers/tiff/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/static_deps/Makefile.in b/libraries/evas/src/static_deps/Makefile.in
index 94f534e..514e79c 100644
--- a/libraries/evas/src/static_deps/Makefile.in
+++ b/libraries/evas/src/static_deps/Makefile.in
@@ -207,8 +207,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
207PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 207PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
208PIXMAN_LIBS = @PIXMAN_LIBS@ 208PIXMAN_LIBS = @PIXMAN_LIBS@
209PKG_CONFIG = @PKG_CONFIG@ 209PKG_CONFIG = @PKG_CONFIG@
210PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
211PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
212PNG_CFLAGS = @PNG_CFLAGS@ 210PNG_CFLAGS = @PNG_CFLAGS@
213PNG_LIBS = @PNG_LIBS@ 211PNG_LIBS = @PNG_LIBS@
214RANLIB = @RANLIB@ 212RANLIB = @RANLIB@
@@ -225,6 +223,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
225VALGRIND_LIBS = @VALGRIND_LIBS@ 223VALGRIND_LIBS = @VALGRIND_LIBS@
226VERSION = @VERSION@ 224VERSION = @VERSION@
227VMAJ = @VMAJ@ 225VMAJ = @VMAJ@
226WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
227WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
228WIN32_CFLAGS = @WIN32_CFLAGS@ 228WIN32_CFLAGS = @WIN32_CFLAGS@
229WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 229WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
230XCB_CFLAGS = @XCB_CFLAGS@ 230XCB_CFLAGS = @XCB_CFLAGS@
@@ -306,6 +306,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
306evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 306evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
307evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 307evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
308evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 308evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
309evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
310evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
311evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
312evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
309evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 313evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
310evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 314evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
311evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 315evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/static_deps/liblinebreak/AUTHORS b/libraries/evas/src/static_deps/liblinebreak/AUTHORS
index 523106f..22786d4 100644
--- a/libraries/evas/src/static_deps/liblinebreak/AUTHORS
+++ b/libraries/evas/src/static_deps/liblinebreak/AUTHORS
@@ -4,3 +4,5 @@ Nikolay Pultsin. Put forward the original requirements on liblinebreak,
4performed tests, and made a lot of suggestions on the initial versions. 4performed tests, and made a lot of suggestions on the initial versions.
5 5
6Thomas Klausner. Autoconfiscated and libtoolized liblinebreak. 6Thomas Klausner. Autoconfiscated and libtoolized liblinebreak.
7
8Tom Hacohen. Added word boundaries support.
diff --git a/libraries/evas/src/static_deps/liblinebreak/Makefile.am b/libraries/evas/src/static_deps/liblinebreak/Makefile.am
index f386455..68e9c4a 100644
--- a/libraries/evas/src/static_deps/liblinebreak/Makefile.am
+++ b/libraries/evas/src/static_deps/liblinebreak/Makefile.am
@@ -1,13 +1,15 @@
1MAINTAINERCLEANFILES = Makefile.in 1MAINTAINERCLEANFILES = Makefile.in
2 2
3#noinst_PROGRAMS = filter_dup 3#noinst_PROGRAMS = filter_dup
4noinst_HEADERS = linebreak.h linebreakdef.h 4noinst_HEADERS = linebreak.h linebreakdef.h wordbreakdef.h wordbreak.h
5noinst_LTLIBRARIES = liblinebreak.la 5noinst_LTLIBRARIES = liblinebreak.la
6 6
7liblinebreak_la_SOURCES = \ 7liblinebreak_la_SOURCES = \
8 linebreak.c \ 8 linebreak.c \
9 linebreakdata.c \ 9 linebreakdata.c \
10 linebreakdef.c 10 linebreakdef.c \
11 wordbreak.c \
12 wordbreakdata.x
11 13
12EXTRA_DIST = \ 14EXTRA_DIST = \
13 LineBreak1.sed \ 15 LineBreak1.sed \
diff --git a/libraries/evas/src/static_deps/liblinebreak/Makefile.in b/libraries/evas/src/static_deps/liblinebreak/Makefile.in
index 909f75e..9d44327 100644
--- a/libraries/evas/src/static_deps/liblinebreak/Makefile.in
+++ b/libraries/evas/src/static_deps/liblinebreak/Makefile.in
@@ -61,7 +61,7 @@ CONFIG_CLEAN_VPATH_FILES =
61LTLIBRARIES = $(noinst_LTLIBRARIES) 61LTLIBRARIES = $(noinst_LTLIBRARIES)
62liblinebreak_la_LIBADD = 62liblinebreak_la_LIBADD =
63am_liblinebreak_la_OBJECTS = linebreak.lo linebreakdata.lo \ 63am_liblinebreak_la_OBJECTS = linebreak.lo linebreakdata.lo \
64 linebreakdef.lo 64 linebreakdef.lo wordbreak.lo
65liblinebreak_la_OBJECTS = $(am_liblinebreak_la_OBJECTS) 65liblinebreak_la_OBJECTS = $(am_liblinebreak_la_OBJECTS)
66AM_V_lt = $(am__v_lt_$(V)) 66AM_V_lt = $(am__v_lt_$(V))
67am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) 67am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -200,8 +200,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
200PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 200PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
201PIXMAN_LIBS = @PIXMAN_LIBS@ 201PIXMAN_LIBS = @PIXMAN_LIBS@
202PKG_CONFIG = @PKG_CONFIG@ 202PKG_CONFIG = @PKG_CONFIG@
203PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
204PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
205PNG_CFLAGS = @PNG_CFLAGS@ 203PNG_CFLAGS = @PNG_CFLAGS@
206PNG_LIBS = @PNG_LIBS@ 204PNG_LIBS = @PNG_LIBS@
207RANLIB = @RANLIB@ 205RANLIB = @RANLIB@
@@ -218,6 +216,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
218VALGRIND_LIBS = @VALGRIND_LIBS@ 216VALGRIND_LIBS = @VALGRIND_LIBS@
219VERSION = @VERSION@ 217VERSION = @VERSION@
220VMAJ = @VMAJ@ 218VMAJ = @VMAJ@
219WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
220WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
221WIN32_CFLAGS = @WIN32_CFLAGS@ 221WIN32_CFLAGS = @WIN32_CFLAGS@
222WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 222WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
223XCB_CFLAGS = @XCB_CFLAGS@ 223XCB_CFLAGS = @XCB_CFLAGS@
@@ -299,6 +299,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
299evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 299evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
300evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 300evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
301evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 301evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
302evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
303evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
304evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
305evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
302evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 306evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
303evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 307evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
304evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 308evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
@@ -376,12 +380,14 @@ version_info = @version_info@
376MAINTAINERCLEANFILES = Makefile.in 380MAINTAINERCLEANFILES = Makefile.in
377 381
378#noinst_PROGRAMS = filter_dup 382#noinst_PROGRAMS = filter_dup
379noinst_HEADERS = linebreak.h linebreakdef.h 383noinst_HEADERS = linebreak.h linebreakdef.h wordbreakdef.h wordbreak.h
380noinst_LTLIBRARIES = liblinebreak.la 384noinst_LTLIBRARIES = liblinebreak.la
381liblinebreak_la_SOURCES = \ 385liblinebreak_la_SOURCES = \
382 linebreak.c \ 386 linebreak.c \
383 linebreakdata.c \ 387 linebreakdata.c \
384 linebreakdef.c 388 linebreakdef.c \
389 wordbreak.c \
390 wordbreakdata.x
385 391
386EXTRA_DIST = \ 392EXTRA_DIST = \
387 LineBreak1.sed \ 393 LineBreak1.sed \
@@ -446,6 +452,7 @@ distclean-compile:
446@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebreak.Plo@am__quote@ 452@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebreak.Plo@am__quote@
447@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebreakdata.Plo@am__quote@ 453@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebreakdata.Plo@am__quote@
448@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebreakdef.Plo@am__quote@ 454@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebreakdef.Plo@am__quote@
455@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wordbreak.Plo@am__quote@
449 456
450.c.o: 457.c.o:
451@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 458@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
diff --git a/libraries/evas/src/static_deps/liblinebreak/wordbreak.c b/libraries/evas/src/static_deps/liblinebreak/wordbreak.c
new file mode 100644
index 0000000..bbbb7f4
--- /dev/null
+++ b/libraries/evas/src/static_deps/liblinebreak/wordbreak.c
@@ -0,0 +1,435 @@
1/* vim: set tabstop=4 shiftwidth=4: */
2
3/*
4 * Word breaking in a Unicode sequence. Designed to be used in a
5 * generic text renderer.
6 *
7 * Copyright (C) 2011-2011 Tom Hacohen <tom@stosb.com>
8 *
9 * This software is provided 'as-is', without any express or implied
10 * warranty. In no event will the author be held liable for any damages
11 * arising from the use of this software.
12 *
13 * Permission is granted to anyone to use this software for any purpose,
14 * including commercial applications, and to alter it and redistribute
15 * it freely, subject to the following restrictions:
16 *
17 * 1. The origin of this software must not be misrepresented; you must
18 * not claim that you wrote the original software. If you use this
19 * software in a product, an acknowledgement in the product
20 * documentation would be appreciated but is not required.
21 * 2. Altered source versions must be plainly marked as such, and must
22 * not be misrepresented as being the original software.
23 * 3. This notice may not be removed or altered from any source
24 * distribution.
25 *
26 * The main reference is Unicode Standard Annex 29 (UAX #29):
27 * <URL:http://unicode.org/reports/tr29>
28 *
29 * When this library was designed, this annex was at Revision 17, for
30 * Unicode 6.0.0:
31 * <URL:http://www.unicode.org/reports/tr29/tr29-17.html>
32 *
33 * The Unicode Terms of Use are available at
34 * <URL:http://www.unicode.org/copyright.html>
35 */
36
37/**
38 * @file wordbreak.c
39 *
40 * Implementation of the word breaking algorithm as described in Unicode
41 * Standard Annex 29.
42 *
43 * @version 2.0, 2011/12/12
44 * @author Tom Hacohen
45 */
46
47
48#include <assert.h>
49#include <stddef.h>
50#include <string.h>
51#include "linebreak.h"
52#include "linebreakdef.h"
53
54#include "wordbreak.h"
55#include "wordbreakdata.x"
56
57#define ARRAY_LEN(x) (sizeof(x) / sizeof(x[0]))
58
59/* Init the wordbreak internals. */
60void init_wordbreak(void)
61{
62 /* Currently does nothing, may be needed in the future. */
63 return;
64}
65
66/**
67 * Gets the word breaking class of a character.
68 *
69 * @param ch character to check
70 * @param wbp pointer to the wbp breaking properties array
71 * @param len the size of the wbp array in number of items.
72 * @return the word breaking class if found; \c WBP_Any otherwise
73 */
74static enum WordBreakClass get_char_wb_class(
75 utf32_t ch,
76 struct WordBreakProperties *wbp,
77 size_t len)
78{
79 int min = 0;
80 int max = len - 1;
81 int mid;
82
83 do
84 {
85 mid = (min + max) / 2;
86
87 if (ch < wbp[mid].start)
88 max = mid - 1;
89 else if (ch > wbp[mid].end)
90 min = mid + 1;
91 else
92 return wbp[mid].prop;
93 }
94 while (min <= max);
95
96 return WBP_Any;
97}
98
99/**
100 * Sets the break types in brks starting from posLast up to posStop.
101 *
102 * It sets the inside chars to #WORDBREAK_INSIDECHAR and the rest to brkType.
103 * Assumes brks is initialized - all the cells with #WORDBREAK_NOBREAK are
104 * cells that we really don't want to break after.
105 *
106 * @param s the string
107 * @param brks[out] the breaks array to fill.
108 * @param posStart the start position
109 * @param posEnd the end position
110 * @param len the length of the string
111 * @param brkType the breaks type to use
112 * @param get_next_char function to get the next UTF-32 character
113 */
114static void set_brks_to(const void *s,
115 char *brks,
116 size_t posStart,
117 size_t posEnd,
118 size_t len,
119 char brkType,
120 get_next_char_t get_next_char)
121{
122 size_t posCur = posStart;
123 while (posCur < posEnd)
124 {
125 get_next_char(s, len, &posCur);
126 for ( ; posStart < posCur - 1; ++posStart)
127 {
128 brks[posStart] = WORDBREAK_INSIDECHAR;
129 }
130 assert(posStart == posCur - 1);
131
132 /* Only set it if we haven't set it not to break before. */
133 if (brks[posStart] != WORDBREAK_NOBREAK)
134 brks[posStart] = brkType;
135 posStart = posCur;
136 }
137}
138
139/* Checks to see if newline, cr, or lf. for WB3a and b */
140#define IS_WB3ab(cls) ((cls == WBP_Newline) || (cls == WBP_CR) || \
141 (cls == WBP_LF))
142
143/**
144 * Sets the word breaking information for a generic input string.
145 *
146 * @param[in] s input string
147 * @param[in] len length of the input
148 * @param[in] lang language of the input
149 * @param[out] brks pointer to the output breaking data, containing
150 * #WORDBREAK_BREAK, #WORDBREAK_NOBREAK, or
151 * #WORDBREAK_INSIDEACHAR
152 * @param[in] get_next_char function to get the next UTF-32 character
153 */
154static void set_wordbreaks(
155 const void *s,
156 size_t len,
157 const char *lang,
158 char *brks,
159 get_next_char_t get_next_char)
160{
161 /* Previous class */
162 enum WordBreakClass p_cls = WBP_Undefined;
163 /* Strong previous class. */
164 enum WordBreakClass sp_cls = WBP_Undefined;
165 utf32_t ch;
166 size_t posCur = 0;
167 size_t posCurSt = 0;
168 size_t posLast = 0;
169
170 /* FIXME: unused atm. */
171 (void) lang;
172
173
174 /* Init brks */
175 memset(brks, WORDBREAK_BREAK, len);
176
177 ch = get_next_char(s, len, &posCur);
178
179 /* WB3a, WB3b are implied. */
180 for ( ; ch != EOS ; )
181 {
182 /* Current class */
183 enum WordBreakClass c_cls;
184 c_cls = get_char_wb_class(ch, wb_prop_default,
185 ARRAY_LEN(wb_prop_default));
186
187 switch (c_cls)
188 {
189 case WBP_CR:
190 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
191 get_next_char);
192 sp_cls = c_cls;
193 posLast = posCurSt;
194 break;
195
196 case WBP_LF:
197 if (sp_cls == WBP_CR) /* WB3 */
198 {
199 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_NOBREAK,
200 get_next_char);
201 sp_cls = c_cls;
202 posLast = posCurSt;
203 }
204 sp_cls = c_cls;
205 posLast = posCurSt;
206 break;
207
208 case WBP_Newline:
209 /* WB3a, WB3b */
210 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
211 get_next_char);
212 sp_cls = c_cls;
213 posLast = posCurSt;
214 break;
215
216 case WBP_Extend:
217 case WBP_Format:
218 /* WB4 - If not the first char/after a newline (W3ab),
219 * skip this class, set it to be the same as the prev, and mark
220 * brks not to break before them. */
221 if ((sp_cls == WBP_Undefined) || IS_WB3ab(sp_cls))
222 {
223 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
224 get_next_char);
225 sp_cls = c_cls;
226 }
227 else
228 {
229 /* It's surely not the first */
230 brks[posCurSt - 1] = WORDBREAK_NOBREAK;
231 /* "inherit" the previous class. */
232 c_cls = p_cls;
233 }
234 break;
235
236 case WBP_Katakana:
237 if ((sp_cls == WBP_Katakana) || /* WB13 */
238 (sp_cls == WBP_ExtendNumLet)) /* WB13b */
239 {
240 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_NOBREAK,
241 get_next_char);
242 }
243 /* No rule found, reset */
244 else
245 {
246 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
247 get_next_char);
248 }
249 sp_cls = c_cls;
250 posLast = posCurSt;
251 break;
252
253 case WBP_ALetter:
254 if ((sp_cls == WBP_ALetter) || /* WB5,6,7 */
255 ((sp_cls == WBP_Numeric) && (p_cls == WBP_Numeric)) || /* WB10 */
256 (sp_cls == WBP_ExtendNumLet)) /* WB13b */
257 {
258 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_NOBREAK,
259 get_next_char);
260 }
261 /* No rule found, reset */
262 else
263 {
264 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
265 get_next_char);
266 }
267 sp_cls = c_cls;
268 posLast = posCurSt;
269 break;
270
271 case WBP_MidNumLet:
272 if ((p_cls == WBP_ALetter) || /* WBP6,7 */
273 (p_cls == WBP_Numeric)) /* WBP11,12 */
274 {
275 /* Go on */
276 }
277 else
278 {
279 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
280 get_next_char);
281 sp_cls = c_cls;
282 posLast = posCurSt;
283 }
284 break;
285
286 case WBP_MidLetter:
287 if (p_cls == WBP_ALetter) /* WBP6,7 */
288 {
289 /* Go on */
290 }
291 else
292 {
293 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
294 get_next_char);
295 sp_cls = c_cls;
296 posLast = posCurSt;
297 }
298 break;
299
300 case WBP_MidNum:
301 if (p_cls == WBP_Numeric) /* WBP11,12 */
302 {
303 /* Go on */
304 }
305 else
306 {
307 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
308 get_next_char);
309 sp_cls = c_cls;
310 posLast = posCurSt;
311 }
312 break;
313
314 case WBP_Numeric:
315 if ((sp_cls == WBP_Numeric) || /* WB8,11,12 */
316 ((sp_cls == WBP_ALetter) && (p_cls == WBP_ALetter)) || /* WB9 */
317 (sp_cls == WBP_ExtendNumLet)) /* WB13b */
318 {
319 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_NOBREAK,
320 get_next_char);
321 }
322 /* No rule found, reset */
323 else
324 {
325 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
326 get_next_char);
327 }
328 sp_cls = c_cls;
329 posLast = posCurSt;
330 break;
331
332 case WBP_ExtendNumLet:
333 /* WB13a,13b */
334 if ((sp_cls == p_cls) &&
335 ((p_cls == WBP_ALetter) ||
336 (p_cls == WBP_Numeric) ||
337 (p_cls == WBP_Katakana) ||
338 (p_cls == WBP_ExtendNumLet)))
339 {
340 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_NOBREAK,
341 get_next_char);
342 }
343 /* No rule found, reset */
344 else
345 {
346 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
347 get_next_char);
348 }
349 sp_cls = c_cls;
350 posLast = posCurSt;
351 break;
352
353 case WBP_Any:
354 /* Allow breaks and reset */
355 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
356 get_next_char);
357 sp_cls = c_cls;
358 posLast = posCurSt;
359 break;
360
361 default:
362 /* Error, should never get here! */
363 assert(0);
364 break;
365 }
366
367 p_cls = c_cls;
368 posCurSt = posCur;
369 ch = get_next_char(s, len, &posCur);
370 }
371
372 /* WB2 */
373 set_brks_to(s, brks, posLast, posCur, len, WORDBREAK_BREAK,
374 get_next_char);
375}
376
377/**
378 * Sets the word breaking information for a UTF-8 input string.
379 *
380 * @param[in] s input UTF-8 string
381 * @param[in] len length of the input
382 * @param[in] lang language of the input
383 * @param[out] brks pointer to the output breaking data, containing
384 * #WORDBREAK_BREAK, #WORDBREAK_NOBREAK, or
385 * #WORDBREAK_INSIDEACHAR
386 */
387void set_wordbreaks_utf8(
388 const utf8_t *s,
389 size_t len,
390 const char *lang,
391 char *brks)
392{
393 set_wordbreaks(s, len, lang, brks,
394 (get_next_char_t)lb_get_next_char_utf8);
395}
396
397/**
398 * Sets the word breaking information for a UTF-16 input string.
399 *
400 * @param[in] s input UTF-16 string
401 * @param[in] len length of the input
402 * @param[in] lang language of the input
403 * @param[out] brks pointer to the output breaking data, containing
404 * #WORDBREAK_BREAK, #WORDBREAK_NOBREAK, or
405 * #WORDBREAK_INSIDEACHAR
406 */
407void set_wordbreaks_utf16(
408 const utf16_t *s,
409 size_t len,
410 const char *lang,
411 char *brks)
412{
413 set_wordbreaks(s, len, lang, brks,
414 (get_next_char_t)lb_get_next_char_utf16);
415}
416
417/**
418 * Sets the word breaking information for a UTF-32 input string.
419 *
420 * @param[in] s input UTF-32 string
421 * @param[in] len length of the input
422 * @param[in] lang language of the input
423 * @param[out] brks pointer to the output breaking data, containing
424 * #WORDBREAK_BREAK, #WORDBREAK_NOBREAK, or
425 * #WORDBREAK_INSIDEACHAR
426 */
427void set_wordbreaks_utf32(
428 const utf32_t *s,
429 size_t len,
430 const char *lang,
431 char *brks)
432{
433 set_wordbreaks(s, len, lang, brks,
434 (get_next_char_t)lb_get_next_char_utf32);
435}
diff --git a/libraries/evas/src/static_deps/liblinebreak/wordbreak.h b/libraries/evas/src/static_deps/liblinebreak/wordbreak.h
new file mode 100644
index 0000000..7b7bea7
--- /dev/null
+++ b/libraries/evas/src/static_deps/liblinebreak/wordbreak.h
@@ -0,0 +1,72 @@
1/* vim: set tabstop=4 shiftwidth=4: */
2
3/*
4 * Word breaking in a Unicode sequence. Designed to be used in a
5 * generic text renderer.
6 *
7 * Copyright (C) 2011-2011 Tom Hacohen <tom@stosb.com>
8 *
9 * This software is provided 'as-is', without any express or implied
10 * warranty. In no event will the author be held liable for any damages
11 * arising from the use of this software.
12 *
13 * Permission is granted to anyone to use this software for any purpose,
14 * including commercial applications, and to alter it and redistribute
15 * it freely, subject to the following restrictions:
16 *
17 * 1. The origin of this software must not be misrepresented; you must
18 * not claim that you wrote the original software. If you use this
19 * software in a product, an acknowledgement in the product
20 * documentation would be appreciated but is not required.
21 * 2. Altered source versions must be plainly marked as such, and must
22 * not be misrepresented as being the original software.
23 * 3. This notice may not be removed or altered from any source
24 * distribution.
25 *
26 * The main reference is Unicode Standard Annex 29 (UAX #29):
27 * <URL:http://unicode.org/reports/tr29>
28 *
29 * When this library was designed, this annex was at Revision 17, for
30 * Unicode 6.0.0:
31 * <URL:http://www.unicode.org/reports/tr29/tr29-17.html>
32 *
33 * The Unicode Terms of Use are available at
34 * <URL:http://www.unicode.org/copyright.html>
35 */
36
37/**
38 * @file wordbreak.h
39 *
40 * Header file for the word breaking (segmentation) algorithm.
41 *
42 * @version 2.0, 2011/12/12
43 * @author Tom Hacohen
44 */
45
46#ifndef WORDBREAK_H
47#define WORDBREAK_H
48
49#include <stddef.h>
50#include <linebreak.h>
51
52#ifdef __cplusplus
53extern "C" {
54#endif
55
56#define WORDBREAK_BREAK 0 /* Break found */
57#define WORDBREAK_NOBREAK 1 /**< Break not found */
58#define WORDBREAK_INSIDECHAR 2 /**< A UTF-8/16 sequence is unfinished */
59
60void init_wordbreak(void);
61void set_wordbreaks_utf8(
62 const utf8_t *s, size_t len, const char* lang, char *brks);
63void set_wordbreaks_utf16(
64 const utf16_t *s, size_t len, const char* lang, char *brks);
65void set_wordbreaks_utf32(
66 const utf32_t *s, size_t len, const char* lang, char *brks);
67
68#ifdef __cplusplus
69}
70#endif
71
72#endif
diff --git a/libraries/evas/src/static_deps/liblinebreak/wordbreakdata.x b/libraries/evas/src/static_deps/liblinebreak/wordbreakdata.x
new file mode 100644
index 0000000..c7278ef
--- /dev/null
+++ b/libraries/evas/src/static_deps/liblinebreak/wordbreakdata.x
@@ -0,0 +1,858 @@
1/* The content of this file is generated from:
2# WordBreakProperty-6.0.0.txt
3# Date: 2010-08-19, 00:48:48 GMT [MD]
4*/
5#include "linebreak.h"
6#include "wordbreakdef.h"
7static struct WordBreakProperties wb_prop_default[] = {
8 {0x000A, 0x000A, WBP_LF},
9 {0x000B, 0x000C, WBP_Newline},
10 {0x000D, 0x000D, WBP_CR},
11 {0x0027, 0x0027, WBP_MidNumLet},
12 {0x002C, 0x002C, WBP_MidNum},
13 {0x002E, 0x002E, WBP_MidNumLet},
14 {0x0030, 0x0039, WBP_Numeric},
15 {0x003A, 0x003A, WBP_MidLetter},
16 {0x003B, 0x003B, WBP_MidNum},
17 {0x0041, 0x005A, WBP_ALetter},
18 {0x005F, 0x005F, WBP_ExtendNumLet},
19 {0x0061, 0x007A, WBP_ALetter},
20 {0x0085, 0x0085, WBP_Newline},
21 {0x00AA, 0x00AA, WBP_ALetter},
22 {0x00AD, 0x00AD, WBP_Format},
23 {0x00B5, 0x00B5, WBP_ALetter},
24 {0x00B7, 0x00B7, WBP_MidLetter},
25 {0x00BA, 0x00BA, WBP_ALetter},
26 {0x00C0, 0x00D6, WBP_ALetter},
27 {0x00D8, 0x00F6, WBP_ALetter},
28 {0x00F8, 0x01BA, WBP_ALetter},
29 {0x01BB, 0x01BB, WBP_ALetter},
30 {0x01BC, 0x01BF, WBP_ALetter},
31 {0x01C0, 0x01C3, WBP_ALetter},
32 {0x01C4, 0x0293, WBP_ALetter},
33 {0x0294, 0x0294, WBP_ALetter},
34 {0x0295, 0x02AF, WBP_ALetter},
35 {0x02B0, 0x02C1, WBP_ALetter},
36 {0x02C6, 0x02D1, WBP_ALetter},
37 {0x02E0, 0x02E4, WBP_ALetter},
38 {0x02EC, 0x02EC, WBP_ALetter},
39 {0x02EE, 0x02EE, WBP_ALetter},
40 {0x0300, 0x036F, WBP_Extend},
41 {0x0370, 0x0373, WBP_ALetter},
42 {0x0374, 0x0374, WBP_ALetter},
43 {0x0376, 0x0377, WBP_ALetter},
44 {0x037A, 0x037A, WBP_ALetter},
45 {0x037B, 0x037D, WBP_ALetter},
46 {0x037E, 0x037E, WBP_MidNum},
47 {0x0386, 0x0386, WBP_ALetter},
48 {0x0387, 0x0387, WBP_MidLetter},
49 {0x0388, 0x038A, WBP_ALetter},
50 {0x038C, 0x038C, WBP_ALetter},
51 {0x038E, 0x03A1, WBP_ALetter},
52 {0x03A3, 0x03F5, WBP_ALetter},
53 {0x03F7, 0x0481, WBP_ALetter},
54 {0x0483, 0x0487, WBP_Extend},
55 {0x0488, 0x0489, WBP_Extend},
56 {0x048A, 0x0527, WBP_ALetter},
57 {0x0531, 0x0556, WBP_ALetter},
58 {0x0559, 0x0559, WBP_ALetter},
59 {0x0561, 0x0587, WBP_ALetter},
60 {0x0589, 0x0589, WBP_MidNum},
61 {0x0591, 0x05BD, WBP_Extend},
62 {0x05BF, 0x05BF, WBP_Extend},
63 {0x05C1, 0x05C2, WBP_Extend},
64 {0x05C4, 0x05C5, WBP_Extend},
65 {0x05C7, 0x05C7, WBP_Extend},
66 {0x05D0, 0x05EA, WBP_ALetter},
67 {0x05F0, 0x05F2, WBP_ALetter},
68 {0x05F3, 0x05F3, WBP_ALetter},
69 {0x05F4, 0x05F4, WBP_MidLetter},
70 {0x0600, 0x0603, WBP_Format},
71 {0x060C, 0x060D, WBP_MidNum},
72 {0x0610, 0x061A, WBP_Extend},
73 {0x0620, 0x063F, WBP_ALetter},
74 {0x0640, 0x0640, WBP_ALetter},
75 {0x0641, 0x064A, WBP_ALetter},
76 {0x064B, 0x065F, WBP_Extend},
77 {0x0660, 0x0669, WBP_Numeric},
78 {0x066B, 0x066B, WBP_Numeric},
79 {0x066C, 0x066C, WBP_MidNum},
80 {0x066E, 0x066F, WBP_ALetter},
81 {0x0670, 0x0670, WBP_Extend},
82 {0x0671, 0x06D3, WBP_ALetter},
83 {0x06D5, 0x06D5, WBP_ALetter},
84 {0x06D6, 0x06DC, WBP_Extend},
85 {0x06DD, 0x06DD, WBP_Format},
86 {0x06DF, 0x06E4, WBP_Extend},
87 {0x06E5, 0x06E6, WBP_ALetter},
88 {0x06E7, 0x06E8, WBP_Extend},
89 {0x06EA, 0x06ED, WBP_Extend},
90 {0x06EE, 0x06EF, WBP_ALetter},
91 {0x06F0, 0x06F9, WBP_Numeric},
92 {0x06FA, 0x06FC, WBP_ALetter},
93 {0x06FF, 0x06FF, WBP_ALetter},
94 {0x070F, 0x070F, WBP_Format},
95 {0x0710, 0x0710, WBP_ALetter},
96 {0x0711, 0x0711, WBP_Extend},
97 {0x0712, 0x072F, WBP_ALetter},
98 {0x0730, 0x074A, WBP_Extend},
99 {0x074D, 0x07A5, WBP_ALetter},
100 {0x07A6, 0x07B0, WBP_Extend},
101 {0x07B1, 0x07B1, WBP_ALetter},
102 {0x07C0, 0x07C9, WBP_Numeric},
103 {0x07CA, 0x07EA, WBP_ALetter},
104 {0x07EB, 0x07F3, WBP_Extend},
105 {0x07F4, 0x07F5, WBP_ALetter},
106 {0x07F8, 0x07F8, WBP_MidNum},
107 {0x07FA, 0x07FA, WBP_ALetter},
108 {0x0800, 0x0815, WBP_ALetter},
109 {0x0816, 0x0819, WBP_Extend},
110 {0x081A, 0x081A, WBP_ALetter},
111 {0x081B, 0x0823, WBP_Extend},
112 {0x0824, 0x0824, WBP_ALetter},
113 {0x0825, 0x0827, WBP_Extend},
114 {0x0828, 0x0828, WBP_ALetter},
115 {0x0829, 0x082D, WBP_Extend},
116 {0x0840, 0x0858, WBP_ALetter},
117 {0x0859, 0x085B, WBP_Extend},
118 {0x0900, 0x0902, WBP_Extend},
119 {0x0903, 0x0903, WBP_Extend},
120 {0x0904, 0x0939, WBP_ALetter},
121 {0x093A, 0x093A, WBP_Extend},
122 {0x093B, 0x093B, WBP_Extend},
123 {0x093C, 0x093C, WBP_Extend},
124 {0x093D, 0x093D, WBP_ALetter},
125 {0x093E, 0x0940, WBP_Extend},
126 {0x0941, 0x0948, WBP_Extend},
127 {0x0949, 0x094C, WBP_Extend},
128 {0x094D, 0x094D, WBP_Extend},
129 {0x094E, 0x094F, WBP_Extend},
130 {0x0950, 0x0950, WBP_ALetter},
131 {0x0951, 0x0957, WBP_Extend},
132 {0x0958, 0x0961, WBP_ALetter},
133 {0x0962, 0x0963, WBP_Extend},
134 {0x0966, 0x096F, WBP_Numeric},
135 {0x0971, 0x0971, WBP_ALetter},
136 {0x0972, 0x0977, WBP_ALetter},
137 {0x0979, 0x097F, WBP_ALetter},
138 {0x0981, 0x0981, WBP_Extend},
139 {0x0982, 0x0983, WBP_Extend},
140 {0x0985, 0x098C, WBP_ALetter},
141 {0x098F, 0x0990, WBP_ALetter},
142 {0x0993, 0x09A8, WBP_ALetter},
143 {0x09AA, 0x09B0, WBP_ALetter},
144 {0x09B2, 0x09B2, WBP_ALetter},
145 {0x09B6, 0x09B9, WBP_ALetter},
146 {0x09BC, 0x09BC, WBP_Extend},
147 {0x09BD, 0x09BD, WBP_ALetter},
148 {0x09BE, 0x09C0, WBP_Extend},
149 {0x09C1, 0x09C4, WBP_Extend},
150 {0x09C7, 0x09C8, WBP_Extend},
151 {0x09CB, 0x09CC, WBP_Extend},
152 {0x09CD, 0x09CD, WBP_Extend},
153 {0x09CE, 0x09CE, WBP_ALetter},
154 {0x09D7, 0x09D7, WBP_Extend},
155 {0x09DC, 0x09DD, WBP_ALetter},
156 {0x09DF, 0x09E1, WBP_ALetter},
157 {0x09E2, 0x09E3, WBP_Extend},
158 {0x09E6, 0x09EF, WBP_Numeric},
159 {0x09F0, 0x09F1, WBP_ALetter},
160 {0x0A01, 0x0A02, WBP_Extend},
161 {0x0A03, 0x0A03, WBP_Extend},
162 {0x0A05, 0x0A0A, WBP_ALetter},
163 {0x0A0F, 0x0A10, WBP_ALetter},
164 {0x0A13, 0x0A28, WBP_ALetter},
165 {0x0A2A, 0x0A30, WBP_ALetter},
166 {0x0A32, 0x0A33, WBP_ALetter},
167 {0x0A35, 0x0A36, WBP_ALetter},
168 {0x0A38, 0x0A39, WBP_ALetter},
169 {0x0A3C, 0x0A3C, WBP_Extend},
170 {0x0A3E, 0x0A40, WBP_Extend},
171 {0x0A41, 0x0A42, WBP_Extend},
172 {0x0A47, 0x0A48, WBP_Extend},
173 {0x0A4B, 0x0A4D, WBP_Extend},
174 {0x0A51, 0x0A51, WBP_Extend},
175 {0x0A59, 0x0A5C, WBP_ALetter},
176 {0x0A5E, 0x0A5E, WBP_ALetter},
177 {0x0A66, 0x0A6F, WBP_Numeric},
178 {0x0A70, 0x0A71, WBP_Extend},
179 {0x0A72, 0x0A74, WBP_ALetter},
180 {0x0A75, 0x0A75, WBP_Extend},
181 {0x0A81, 0x0A82, WBP_Extend},
182 {0x0A83, 0x0A83, WBP_Extend},
183 {0x0A85, 0x0A8D, WBP_ALetter},
184 {0x0A8F, 0x0A91, WBP_ALetter},
185 {0x0A93, 0x0AA8, WBP_ALetter},
186 {0x0AAA, 0x0AB0, WBP_ALetter},
187 {0x0AB2, 0x0AB3, WBP_ALetter},
188 {0x0AB5, 0x0AB9, WBP_ALetter},
189 {0x0ABC, 0x0ABC, WBP_Extend},
190 {0x0ABD, 0x0ABD, WBP_ALetter},
191 {0x0ABE, 0x0AC0, WBP_Extend},
192 {0x0AC1, 0x0AC5, WBP_Extend},
193 {0x0AC7, 0x0AC8, WBP_Extend},
194 {0x0AC9, 0x0AC9, WBP_Extend},
195 {0x0ACB, 0x0ACC, WBP_Extend},
196 {0x0ACD, 0x0ACD, WBP_Extend},
197 {0x0AD0, 0x0AD0, WBP_ALetter},
198 {0x0AE0, 0x0AE1, WBP_ALetter},
199 {0x0AE2, 0x0AE3, WBP_Extend},
200 {0x0AE6, 0x0AEF, WBP_Numeric},
201 {0x0B01, 0x0B01, WBP_Extend},
202 {0x0B02, 0x0B03, WBP_Extend},
203 {0x0B05, 0x0B0C, WBP_ALetter},
204 {0x0B0F, 0x0B10, WBP_ALetter},
205 {0x0B13, 0x0B28, WBP_ALetter},
206 {0x0B2A, 0x0B30, WBP_ALetter},
207 {0x0B32, 0x0B33, WBP_ALetter},
208 {0x0B35, 0x0B39, WBP_ALetter},
209 {0x0B3C, 0x0B3C, WBP_Extend},
210 {0x0B3D, 0x0B3D, WBP_ALetter},
211 {0x0B3E, 0x0B3E, WBP_Extend},
212 {0x0B3F, 0x0B3F, WBP_Extend},
213 {0x0B40, 0x0B40, WBP_Extend},
214 {0x0B41, 0x0B44, WBP_Extend},
215 {0x0B47, 0x0B48, WBP_Extend},
216 {0x0B4B, 0x0B4C, WBP_Extend},
217 {0x0B4D, 0x0B4D, WBP_Extend},
218 {0x0B56, 0x0B56, WBP_Extend},
219 {0x0B57, 0x0B57, WBP_Extend},
220 {0x0B5C, 0x0B5D, WBP_ALetter},
221 {0x0B5F, 0x0B61, WBP_ALetter},
222 {0x0B62, 0x0B63, WBP_Extend},
223 {0x0B66, 0x0B6F, WBP_Numeric},
224 {0x0B71, 0x0B71, WBP_ALetter},
225 {0x0B82, 0x0B82, WBP_Extend},
226 {0x0B83, 0x0B83, WBP_ALetter},
227 {0x0B85, 0x0B8A, WBP_ALetter},
228 {0x0B8E, 0x0B90, WBP_ALetter},
229 {0x0B92, 0x0B95, WBP_ALetter},
230 {0x0B99, 0x0B9A, WBP_ALetter},
231 {0x0B9C, 0x0B9C, WBP_ALetter},
232 {0x0B9E, 0x0B9F, WBP_ALetter},
233 {0x0BA3, 0x0BA4, WBP_ALetter},
234 {0x0BA8, 0x0BAA, WBP_ALetter},
235 {0x0BAE, 0x0BB9, WBP_ALetter},
236 {0x0BBE, 0x0BBF, WBP_Extend},
237 {0x0BC0, 0x0BC0, WBP_Extend},
238 {0x0BC1, 0x0BC2, WBP_Extend},
239 {0x0BC6, 0x0BC8, WBP_Extend},
240 {0x0BCA, 0x0BCC, WBP_Extend},
241 {0x0BCD, 0x0BCD, WBP_Extend},
242 {0x0BD0, 0x0BD0, WBP_ALetter},
243 {0x0BD7, 0x0BD7, WBP_Extend},
244 {0x0BE6, 0x0BEF, WBP_Numeric},
245 {0x0C01, 0x0C03, WBP_Extend},
246 {0x0C05, 0x0C0C, WBP_ALetter},
247 {0x0C0E, 0x0C10, WBP_ALetter},
248 {0x0C12, 0x0C28, WBP_ALetter},
249 {0x0C2A, 0x0C33, WBP_ALetter},
250 {0x0C35, 0x0C39, WBP_ALetter},
251 {0x0C3D, 0x0C3D, WBP_ALetter},
252 {0x0C3E, 0x0C40, WBP_Extend},
253 {0x0C41, 0x0C44, WBP_Extend},
254 {0x0C46, 0x0C48, WBP_Extend},
255 {0x0C4A, 0x0C4D, WBP_Extend},
256 {0x0C55, 0x0C56, WBP_Extend},
257 {0x0C58, 0x0C59, WBP_ALetter},
258 {0x0C60, 0x0C61, WBP_ALetter},
259 {0x0C62, 0x0C63, WBP_Extend},
260 {0x0C66, 0x0C6F, WBP_Numeric},
261 {0x0C82, 0x0C83, WBP_Extend},
262 {0x0C85, 0x0C8C, WBP_ALetter},
263 {0x0C8E, 0x0C90, WBP_ALetter},
264 {0x0C92, 0x0CA8, WBP_ALetter},
265 {0x0CAA, 0x0CB3, WBP_ALetter},
266 {0x0CB5, 0x0CB9, WBP_ALetter},
267 {0x0CBC, 0x0CBC, WBP_Extend},
268 {0x0CBD, 0x0CBD, WBP_ALetter},
269 {0x0CBE, 0x0CBE, WBP_Extend},
270 {0x0CBF, 0x0CBF, WBP_Extend},
271 {0x0CC0, 0x0CC4, WBP_Extend},
272 {0x0CC6, 0x0CC6, WBP_Extend},
273 {0x0CC7, 0x0CC8, WBP_Extend},
274 {0x0CCA, 0x0CCB, WBP_Extend},
275 {0x0CCC, 0x0CCD, WBP_Extend},
276 {0x0CD5, 0x0CD6, WBP_Extend},
277 {0x0CDE, 0x0CDE, WBP_ALetter},
278 {0x0CE0, 0x0CE1, WBP_ALetter},
279 {0x0CE2, 0x0CE3, WBP_Extend},
280 {0x0CE6, 0x0CEF, WBP_Numeric},
281 {0x0CF1, 0x0CF2, WBP_ALetter},
282 {0x0D02, 0x0D03, WBP_Extend},
283 {0x0D05, 0x0D0C, WBP_ALetter},
284 {0x0D0E, 0x0D10, WBP_ALetter},
285 {0x0D12, 0x0D3A, WBP_ALetter},
286 {0x0D3D, 0x0D3D, WBP_ALetter},
287 {0x0D3E, 0x0D40, WBP_Extend},
288 {0x0D41, 0x0D44, WBP_Extend},
289 {0x0D46, 0x0D48, WBP_Extend},
290 {0x0D4A, 0x0D4C, WBP_Extend},
291 {0x0D4D, 0x0D4D, WBP_Extend},
292 {0x0D4E, 0x0D4E, WBP_ALetter},
293 {0x0D57, 0x0D57, WBP_Extend},
294 {0x0D60, 0x0D61, WBP_ALetter},
295 {0x0D62, 0x0D63, WBP_Extend},
296 {0x0D66, 0x0D6F, WBP_Numeric},
297 {0x0D7A, 0x0D7F, WBP_ALetter},
298 {0x0D82, 0x0D83, WBP_Extend},
299 {0x0D85, 0x0D96, WBP_ALetter},
300 {0x0D9A, 0x0DB1, WBP_ALetter},
301 {0x0DB3, 0x0DBB, WBP_ALetter},
302 {0x0DBD, 0x0DBD, WBP_ALetter},
303 {0x0DC0, 0x0DC6, WBP_ALetter},
304 {0x0DCA, 0x0DCA, WBP_Extend},
305 {0x0DCF, 0x0DD1, WBP_Extend},
306 {0x0DD2, 0x0DD4, WBP_Extend},
307 {0x0DD6, 0x0DD6, WBP_Extend},
308 {0x0DD8, 0x0DDF, WBP_Extend},
309 {0x0DF2, 0x0DF3, WBP_Extend},
310 {0x0E31, 0x0E31, WBP_Extend},
311 {0x0E34, 0x0E3A, WBP_Extend},
312 {0x0E47, 0x0E4E, WBP_Extend},
313 {0x0E50, 0x0E59, WBP_Numeric},
314 {0x0EB1, 0x0EB1, WBP_Extend},
315 {0x0EB4, 0x0EB9, WBP_Extend},
316 {0x0EBB, 0x0EBC, WBP_Extend},
317 {0x0EC8, 0x0ECD, WBP_Extend},
318 {0x0ED0, 0x0ED9, WBP_Numeric},
319 {0x0F00, 0x0F00, WBP_ALetter},
320 {0x0F18, 0x0F19, WBP_Extend},
321 {0x0F20, 0x0F29, WBP_Numeric},
322 {0x0F35, 0x0F35, WBP_Extend},
323 {0x0F37, 0x0F37, WBP_Extend},
324 {0x0F39, 0x0F39, WBP_Extend},
325 {0x0F3E, 0x0F3F, WBP_Extend},
326 {0x0F40, 0x0F47, WBP_ALetter},
327 {0x0F49, 0x0F6C, WBP_ALetter},
328 {0x0F71, 0x0F7E, WBP_Extend},
329 {0x0F7F, 0x0F7F, WBP_Extend},
330 {0x0F80, 0x0F84, WBP_Extend},
331 {0x0F86, 0x0F87, WBP_Extend},
332 {0x0F88, 0x0F8C, WBP_ALetter},
333 {0x0F8D, 0x0F97, WBP_Extend},
334 {0x0F99, 0x0FBC, WBP_Extend},
335 {0x0FC6, 0x0FC6, WBP_Extend},
336 {0x102B, 0x102C, WBP_Extend},
337 {0x102D, 0x1030, WBP_Extend},
338 {0x1031, 0x1031, WBP_Extend},
339 {0x1032, 0x1037, WBP_Extend},
340 {0x1038, 0x1038, WBP_Extend},
341 {0x1039, 0x103A, WBP_Extend},
342 {0x103B, 0x103C, WBP_Extend},
343 {0x103D, 0x103E, WBP_Extend},
344 {0x1040, 0x1049, WBP_Numeric},
345 {0x1056, 0x1057, WBP_Extend},
346 {0x1058, 0x1059, WBP_Extend},
347 {0x105E, 0x1060, WBP_Extend},
348 {0x1062, 0x1064, WBP_Extend},
349 {0x1067, 0x106D, WBP_Extend},
350 {0x1071, 0x1074, WBP_Extend},
351 {0x1082, 0x1082, WBP_Extend},
352 {0x1083, 0x1084, WBP_Extend},
353 {0x1085, 0x1086, WBP_Extend},
354 {0x1087, 0x108C, WBP_Extend},
355 {0x108D, 0x108D, WBP_Extend},
356 {0x108F, 0x108F, WBP_Extend},
357 {0x1090, 0x1099, WBP_Numeric},
358 {0x109A, 0x109C, WBP_Extend},
359 {0x109D, 0x109D, WBP_Extend},
360 {0x10A0, 0x10C5, WBP_ALetter},
361 {0x10D0, 0x10FA, WBP_ALetter},
362 {0x10FC, 0x10FC, WBP_ALetter},
363 {0x1100, 0x1248, WBP_ALetter},
364 {0x124A, 0x124D, WBP_ALetter},
365 {0x1250, 0x1256, WBP_ALetter},
366 {0x1258, 0x1258, WBP_ALetter},
367 {0x125A, 0x125D, WBP_ALetter},
368 {0x1260, 0x1288, WBP_ALetter},
369 {0x128A, 0x128D, WBP_ALetter},
370 {0x1290, 0x12B0, WBP_ALetter},
371 {0x12B2, 0x12B5, WBP_ALetter},
372 {0x12B8, 0x12BE, WBP_ALetter},
373 {0x12C0, 0x12C0, WBP_ALetter},
374 {0x12C2, 0x12C5, WBP_ALetter},
375 {0x12C8, 0x12D6, WBP_ALetter},
376 {0x12D8, 0x1310, WBP_ALetter},
377 {0x1312, 0x1315, WBP_ALetter},
378 {0x1318, 0x135A, WBP_ALetter},
379 {0x135D, 0x135F, WBP_Extend},
380 {0x1380, 0x138F, WBP_ALetter},
381 {0x13A0, 0x13F4, WBP_ALetter},
382 {0x1401, 0x166C, WBP_ALetter},
383 {0x166F, 0x167F, WBP_ALetter},
384 {0x1681, 0x169A, WBP_ALetter},
385 {0x16A0, 0x16EA, WBP_ALetter},
386 {0x16EE, 0x16F0, WBP_ALetter},
387 {0x1700, 0x170C, WBP_ALetter},
388 {0x170E, 0x1711, WBP_ALetter},
389 {0x1712, 0x1714, WBP_Extend},
390 {0x1720, 0x1731, WBP_ALetter},
391 {0x1732, 0x1734, WBP_Extend},
392 {0x1740, 0x1751, WBP_ALetter},
393 {0x1752, 0x1753, WBP_Extend},
394 {0x1760, 0x176C, WBP_ALetter},
395 {0x176E, 0x1770, WBP_ALetter},
396 {0x1772, 0x1773, WBP_Extend},
397 {0x17B4, 0x17B5, WBP_Format},
398 {0x17B6, 0x17B6, WBP_Extend},
399 {0x17B7, 0x17BD, WBP_Extend},
400 {0x17BE, 0x17C5, WBP_Extend},
401 {0x17C6, 0x17C6, WBP_Extend},
402 {0x17C7, 0x17C8, WBP_Extend},
403 {0x17C9, 0x17D3, WBP_Extend},
404 {0x17DD, 0x17DD, WBP_Extend},
405 {0x17E0, 0x17E9, WBP_Numeric},
406 {0x180B, 0x180D, WBP_Extend},
407 {0x1810, 0x1819, WBP_Numeric},
408 {0x1820, 0x1842, WBP_ALetter},
409 {0x1843, 0x1843, WBP_ALetter},
410 {0x1844, 0x1877, WBP_ALetter},
411 {0x1880, 0x18A8, WBP_ALetter},
412 {0x18A9, 0x18A9, WBP_Extend},
413 {0x18AA, 0x18AA, WBP_ALetter},
414 {0x18B0, 0x18F5, WBP_ALetter},
415 {0x1900, 0x191C, WBP_ALetter},
416 {0x1920, 0x1922, WBP_Extend},
417 {0x1923, 0x1926, WBP_Extend},
418 {0x1927, 0x1928, WBP_Extend},
419 {0x1929, 0x192B, WBP_Extend},
420 {0x1930, 0x1931, WBP_Extend},
421 {0x1932, 0x1932, WBP_Extend},
422 {0x1933, 0x1938, WBP_Extend},
423 {0x1939, 0x193B, WBP_Extend},
424 {0x1946, 0x194F, WBP_Numeric},
425 {0x19B0, 0x19C0, WBP_Extend},
426 {0x19C8, 0x19C9, WBP_Extend},
427 {0x19D0, 0x19D9, WBP_Numeric},
428 {0x1A00, 0x1A16, WBP_ALetter},
429 {0x1A17, 0x1A18, WBP_Extend},
430 {0x1A19, 0x1A1B, WBP_Extend},
431 {0x1A55, 0x1A55, WBP_Extend},
432 {0x1A56, 0x1A56, WBP_Extend},
433 {0x1A57, 0x1A57, WBP_Extend},
434 {0x1A58, 0x1A5E, WBP_Extend},
435 {0x1A60, 0x1A60, WBP_Extend},
436 {0x1A61, 0x1A61, WBP_Extend},
437 {0x1A62, 0x1A62, WBP_Extend},
438 {0x1A63, 0x1A64, WBP_Extend},
439 {0x1A65, 0x1A6C, WBP_Extend},
440 {0x1A6D, 0x1A72, WBP_Extend},
441 {0x1A73, 0x1A7C, WBP_Extend},
442 {0x1A7F, 0x1A7F, WBP_Extend},
443 {0x1A80, 0x1A89, WBP_Numeric},
444 {0x1A90, 0x1A99, WBP_Numeric},
445 {0x1B00, 0x1B03, WBP_Extend},
446 {0x1B04, 0x1B04, WBP_Extend},
447 {0x1B05, 0x1B33, WBP_ALetter},
448 {0x1B34, 0x1B34, WBP_Extend},
449 {0x1B35, 0x1B35, WBP_Extend},
450 {0x1B36, 0x1B3A, WBP_Extend},
451 {0x1B3B, 0x1B3B, WBP_Extend},
452 {0x1B3C, 0x1B3C, WBP_Extend},
453 {0x1B3D, 0x1B41, WBP_Extend},
454 {0x1B42, 0x1B42, WBP_Extend},
455 {0x1B43, 0x1B44, WBP_Extend},
456 {0x1B45, 0x1B4B, WBP_ALetter},
457 {0x1B50, 0x1B59, WBP_Numeric},
458 {0x1B6B, 0x1B73, WBP_Extend},
459 {0x1B80, 0x1B81, WBP_Extend},
460 {0x1B82, 0x1B82, WBP_Extend},
461 {0x1B83, 0x1BA0, WBP_ALetter},
462 {0x1BA1, 0x1BA1, WBP_Extend},
463 {0x1BA2, 0x1BA5, WBP_Extend},
464 {0x1BA6, 0x1BA7, WBP_Extend},
465 {0x1BA8, 0x1BA9, WBP_Extend},
466 {0x1BAA, 0x1BAA, WBP_Extend},
467 {0x1BAE, 0x1BAF, WBP_ALetter},
468 {0x1BB0, 0x1BB9, WBP_Numeric},
469 {0x1BC0, 0x1BE5, WBP_ALetter},
470 {0x1BE6, 0x1BE6, WBP_Extend},
471 {0x1BE7, 0x1BE7, WBP_Extend},
472 {0x1BE8, 0x1BE9, WBP_Extend},
473 {0x1BEA, 0x1BEC, WBP_Extend},
474 {0x1BED, 0x1BED, WBP_Extend},
475 {0x1BEE, 0x1BEE, WBP_Extend},
476 {0x1BEF, 0x1BF1, WBP_Extend},
477 {0x1BF2, 0x1BF3, WBP_Extend},
478 {0x1C00, 0x1C23, WBP_ALetter},
479 {0x1C24, 0x1C2B, WBP_Extend},
480 {0x1C2C, 0x1C33, WBP_Extend},
481 {0x1C34, 0x1C35, WBP_Extend},
482 {0x1C36, 0x1C37, WBP_Extend},
483 {0x1C40, 0x1C49, WBP_Numeric},
484 {0x1C4D, 0x1C4F, WBP_ALetter},
485 {0x1C50, 0x1C59, WBP_Numeric},
486 {0x1C5A, 0x1C77, WBP_ALetter},
487 {0x1C78, 0x1C7D, WBP_ALetter},
488 {0x1CD0, 0x1CD2, WBP_Extend},
489 {0x1CD4, 0x1CE0, WBP_Extend},
490 {0x1CE1, 0x1CE1, WBP_Extend},
491 {0x1CE2, 0x1CE8, WBP_Extend},
492 {0x1CE9, 0x1CEC, WBP_ALetter},
493 {0x1CED, 0x1CED, WBP_Extend},
494 {0x1CEE, 0x1CF1, WBP_ALetter},
495 {0x1CF2, 0x1CF2, WBP_Extend},
496 {0x1D00, 0x1D2B, WBP_ALetter},
497 {0x1D2C, 0x1D61, WBP_ALetter},
498 {0x1D62, 0x1D77, WBP_ALetter},
499 {0x1D78, 0x1D78, WBP_ALetter},
500 {0x1D79, 0x1D9A, WBP_ALetter},
501 {0x1D9B, 0x1DBF, WBP_ALetter},
502 {0x1DC0, 0x1DE6, WBP_Extend},
503 {0x1DFC, 0x1DFF, WBP_Extend},
504 {0x1E00, 0x1F15, WBP_ALetter},
505 {0x1F18, 0x1F1D, WBP_ALetter},
506 {0x1F20, 0x1F45, WBP_ALetter},
507 {0x1F48, 0x1F4D, WBP_ALetter},
508 {0x1F50, 0x1F57, WBP_ALetter},
509 {0x1F59, 0x1F59, WBP_ALetter},
510 {0x1F5B, 0x1F5B, WBP_ALetter},
511 {0x1F5D, 0x1F5D, WBP_ALetter},
512 {0x1F5F, 0x1F7D, WBP_ALetter},
513 {0x1F80, 0x1FB4, WBP_ALetter},
514 {0x1FB6, 0x1FBC, WBP_ALetter},
515 {0x1FBE, 0x1FBE, WBP_ALetter},
516 {0x1FC2, 0x1FC4, WBP_ALetter},
517 {0x1FC6, 0x1FCC, WBP_ALetter},
518 {0x1FD0, 0x1FD3, WBP_ALetter},
519 {0x1FD6, 0x1FDB, WBP_ALetter},
520 {0x1FE0, 0x1FEC, WBP_ALetter},
521 {0x1FF2, 0x1FF4, WBP_ALetter},
522 {0x1FF6, 0x1FFC, WBP_ALetter},
523 {0x200C, 0x200D, WBP_Extend},
524 {0x200E, 0x200F, WBP_Format},
525 {0x2018, 0x2018, WBP_MidNumLet},
526 {0x2019, 0x2019, WBP_MidNumLet},
527 {0x2024, 0x2024, WBP_MidNumLet},
528 {0x2027, 0x2027, WBP_MidLetter},
529 {0x2028, 0x2028, WBP_Newline},
530 {0x2029, 0x2029, WBP_Newline},
531 {0x202A, 0x202E, WBP_Format},
532 {0x203F, 0x2040, WBP_ExtendNumLet},
533 {0x2044, 0x2044, WBP_MidNum},
534 {0x2054, 0x2054, WBP_ExtendNumLet},
535 {0x2060, 0x2064, WBP_Format},
536 {0x206A, 0x206F, WBP_Format},
537 {0x2071, 0x2071, WBP_ALetter},
538 {0x207F, 0x207F, WBP_ALetter},
539 {0x2090, 0x209C, WBP_ALetter},
540 {0x20D0, 0x20DC, WBP_Extend},
541 {0x20DD, 0x20E0, WBP_Extend},
542 {0x20E1, 0x20E1, WBP_Extend},
543 {0x20E2, 0x20E4, WBP_Extend},
544 {0x20E5, 0x20F0, WBP_Extend},
545 {0x2102, 0x2102, WBP_ALetter},
546 {0x2107, 0x2107, WBP_ALetter},
547 {0x210A, 0x2113, WBP_ALetter},
548 {0x2115, 0x2115, WBP_ALetter},
549 {0x2119, 0x211D, WBP_ALetter},
550 {0x2124, 0x2124, WBP_ALetter},
551 {0x2126, 0x2126, WBP_ALetter},
552 {0x2128, 0x2128, WBP_ALetter},
553 {0x212A, 0x212D, WBP_ALetter},
554 {0x212F, 0x2134, WBP_ALetter},
555 {0x2135, 0x2138, WBP_ALetter},
556 {0x2139, 0x2139, WBP_ALetter},
557 {0x213C, 0x213F, WBP_ALetter},
558 {0x2145, 0x2149, WBP_ALetter},
559 {0x214E, 0x214E, WBP_ALetter},
560 {0x2160, 0x2182, WBP_ALetter},
561 {0x2183, 0x2184, WBP_ALetter},
562 {0x2185, 0x2188, WBP_ALetter},
563 {0x24B6, 0x24E9, WBP_ALetter},
564 {0x2C00, 0x2C2E, WBP_ALetter},
565 {0x2C30, 0x2C5E, WBP_ALetter},
566 {0x2C60, 0x2C7C, WBP_ALetter},
567 {0x2C7D, 0x2C7D, WBP_ALetter},
568 {0x2C7E, 0x2CE4, WBP_ALetter},
569 {0x2CEB, 0x2CEE, WBP_ALetter},
570 {0x2CEF, 0x2CF1, WBP_Extend},
571 {0x2D00, 0x2D25, WBP_ALetter},
572 {0x2D30, 0x2D65, WBP_ALetter},
573 {0x2D6F, 0x2D6F, WBP_ALetter},
574 {0x2D7F, 0x2D7F, WBP_Extend},
575 {0x2D80, 0x2D96, WBP_ALetter},
576 {0x2DA0, 0x2DA6, WBP_ALetter},
577 {0x2DA8, 0x2DAE, WBP_ALetter},
578 {0x2DB0, 0x2DB6, WBP_ALetter},
579 {0x2DB8, 0x2DBE, WBP_ALetter},
580 {0x2DC0, 0x2DC6, WBP_ALetter},
581 {0x2DC8, 0x2DCE, WBP_ALetter},
582 {0x2DD0, 0x2DD6, WBP_ALetter},
583 {0x2DD8, 0x2DDE, WBP_ALetter},
584 {0x2DE0, 0x2DFF, WBP_Extend},
585 {0x2E2F, 0x2E2F, WBP_ALetter},
586 {0x3005, 0x3005, WBP_ALetter},
587 {0x302A, 0x302F, WBP_Extend},
588 {0x3031, 0x3035, WBP_Katakana},
589 {0x303B, 0x303B, WBP_ALetter},
590 {0x303C, 0x303C, WBP_ALetter},
591 {0x3099, 0x309A, WBP_Extend},
592 {0x309B, 0x309C, WBP_Katakana},
593 {0x30A0, 0x30A0, WBP_Katakana},
594 {0x30A1, 0x30FA, WBP_Katakana},
595 {0x30FC, 0x30FE, WBP_Katakana},
596 {0x30FF, 0x30FF, WBP_Katakana},
597 {0x3105, 0x312D, WBP_ALetter},
598 {0x3131, 0x318E, WBP_ALetter},
599 {0x31A0, 0x31BA, WBP_ALetter},
600 {0x31F0, 0x31FF, WBP_Katakana},
601 {0x32D0, 0x32FE, WBP_Katakana},
602 {0x3300, 0x3357, WBP_Katakana},
603 {0xA000, 0xA014, WBP_ALetter},
604 {0xA015, 0xA015, WBP_ALetter},
605 {0xA016, 0xA48C, WBP_ALetter},
606 {0xA4D0, 0xA4F7, WBP_ALetter},
607 {0xA4F8, 0xA4FD, WBP_ALetter},
608 {0xA500, 0xA60B, WBP_ALetter},
609 {0xA60C, 0xA60C, WBP_ALetter},
610 {0xA610, 0xA61F, WBP_ALetter},
611 {0xA620, 0xA629, WBP_Numeric},
612 {0xA62A, 0xA62B, WBP_ALetter},
613 {0xA640, 0xA66D, WBP_ALetter},
614 {0xA66E, 0xA66E, WBP_ALetter},
615 {0xA66F, 0xA66F, WBP_Extend},
616 {0xA670, 0xA672, WBP_Extend},
617 {0xA67C, 0xA67D, WBP_Extend},
618 {0xA67F, 0xA67F, WBP_ALetter},
619 {0xA680, 0xA697, WBP_ALetter},
620 {0xA6A0, 0xA6E5, WBP_ALetter},
621 {0xA6E6, 0xA6EF, WBP_ALetter},
622 {0xA6F0, 0xA6F1, WBP_Extend},
623 {0xA717, 0xA71F, WBP_ALetter},
624 {0xA722, 0xA76F, WBP_ALetter},
625 {0xA770, 0xA770, WBP_ALetter},
626 {0xA771, 0xA787, WBP_ALetter},
627 {0xA788, 0xA788, WBP_ALetter},
628 {0xA78B, 0xA78E, WBP_ALetter},
629 {0xA790, 0xA791, WBP_ALetter},
630 {0xA7A0, 0xA7A9, WBP_ALetter},
631 {0xA7FA, 0xA7FA, WBP_ALetter},
632 {0xA7FB, 0xA801, WBP_ALetter},
633 {0xA802, 0xA802, WBP_Extend},
634 {0xA803, 0xA805, WBP_ALetter},
635 {0xA806, 0xA806, WBP_Extend},
636 {0xA807, 0xA80A, WBP_ALetter},
637 {0xA80B, 0xA80B, WBP_Extend},
638 {0xA80C, 0xA822, WBP_ALetter},
639 {0xA823, 0xA824, WBP_Extend},
640 {0xA825, 0xA826, WBP_Extend},
641 {0xA827, 0xA827, WBP_Extend},
642 {0xA840, 0xA873, WBP_ALetter},
643 {0xA880, 0xA881, WBP_Extend},
644 {0xA882, 0xA8B3, WBP_ALetter},
645 {0xA8B4, 0xA8C3, WBP_Extend},
646 {0xA8C4, 0xA8C4, WBP_Extend},
647 {0xA8D0, 0xA8D9, WBP_Numeric},
648 {0xA8E0, 0xA8F1, WBP_Extend},
649 {0xA8F2, 0xA8F7, WBP_ALetter},
650 {0xA8FB, 0xA8FB, WBP_ALetter},
651 {0xA900, 0xA909, WBP_Numeric},
652 {0xA90A, 0xA925, WBP_ALetter},
653 {0xA926, 0xA92D, WBP_Extend},
654 {0xA930, 0xA946, WBP_ALetter},
655 {0xA947, 0xA951, WBP_Extend},
656 {0xA952, 0xA953, WBP_Extend},
657 {0xA960, 0xA97C, WBP_ALetter},
658 {0xA980, 0xA982, WBP_Extend},
659 {0xA983, 0xA983, WBP_Extend},
660 {0xA984, 0xA9B2, WBP_ALetter},
661 {0xA9B3, 0xA9B3, WBP_Extend},
662 {0xA9B4, 0xA9B5, WBP_Extend},
663 {0xA9B6, 0xA9B9, WBP_Extend},
664 {0xA9BA, 0xA9BB, WBP_Extend},
665 {0xA9BC, 0xA9BC, WBP_Extend},
666 {0xA9BD, 0xA9C0, WBP_Extend},
667 {0xA9CF, 0xA9CF, WBP_ALetter},
668 {0xA9D0, 0xA9D9, WBP_Numeric},
669 {0xAA00, 0xAA28, WBP_ALetter},
670 {0xAA29, 0xAA2E, WBP_Extend},
671 {0xAA2F, 0xAA30, WBP_Extend},
672 {0xAA31, 0xAA32, WBP_Extend},
673 {0xAA33, 0xAA34, WBP_Extend},
674 {0xAA35, 0xAA36, WBP_Extend},
675 {0xAA40, 0xAA42, WBP_ALetter},
676 {0xAA43, 0xAA43, WBP_Extend},
677 {0xAA44, 0xAA4B, WBP_ALetter},
678 {0xAA4C, 0xAA4C, WBP_Extend},
679 {0xAA4D, 0xAA4D, WBP_Extend},
680 {0xAA50, 0xAA59, WBP_Numeric},
681 {0xAA7B, 0xAA7B, WBP_Extend},
682 {0xAAB0, 0xAAB0, WBP_Extend},
683 {0xAAB2, 0xAAB4, WBP_Extend},
684 {0xAAB7, 0xAAB8, WBP_Extend},
685 {0xAABE, 0xAABF, WBP_Extend},
686 {0xAAC1, 0xAAC1, WBP_Extend},
687 {0xAB01, 0xAB06, WBP_ALetter},
688 {0xAB09, 0xAB0E, WBP_ALetter},
689 {0xAB11, 0xAB16, WBP_ALetter},
690 {0xAB20, 0xAB26, WBP_ALetter},
691 {0xAB28, 0xAB2E, WBP_ALetter},
692 {0xABC0, 0xABE2, WBP_ALetter},
693 {0xABE3, 0xABE4, WBP_Extend},
694 {0xABE5, 0xABE5, WBP_Extend},
695 {0xABE6, 0xABE7, WBP_Extend},
696 {0xABE8, 0xABE8, WBP_Extend},
697 {0xABE9, 0xABEA, WBP_Extend},
698 {0xABEC, 0xABEC, WBP_Extend},
699 {0xABED, 0xABED, WBP_Extend},
700 {0xABF0, 0xABF9, WBP_Numeric},
701 {0xAC00, 0xD7A3, WBP_ALetter},
702 {0xD7B0, 0xD7C6, WBP_ALetter},
703 {0xD7CB, 0xD7FB, WBP_ALetter},
704 {0xFB00, 0xFB06, WBP_ALetter},
705 {0xFB13, 0xFB17, WBP_ALetter},
706 {0xFB1D, 0xFB1D, WBP_ALetter},
707 {0xFB1E, 0xFB1E, WBP_Extend},
708 {0xFB1F, 0xFB28, WBP_ALetter},
709 {0xFB2A, 0xFB36, WBP_ALetter},
710 {0xFB38, 0xFB3C, WBP_ALetter},
711 {0xFB3E, 0xFB3E, WBP_ALetter},
712 {0xFB40, 0xFB41, WBP_ALetter},
713 {0xFB43, 0xFB44, WBP_ALetter},
714 {0xFB46, 0xFBB1, WBP_ALetter},
715 {0xFBD3, 0xFD3D, WBP_ALetter},
716 {0xFD50, 0xFD8F, WBP_ALetter},
717 {0xFD92, 0xFDC7, WBP_ALetter},
718 {0xFDF0, 0xFDFB, WBP_ALetter},
719 {0xFE00, 0xFE0F, WBP_Extend},
720 {0xFE10, 0xFE10, WBP_MidNum},
721 {0xFE13, 0xFE13, WBP_MidLetter},
722 {0xFE14, 0xFE14, WBP_MidNum},
723 {0xFE20, 0xFE26, WBP_Extend},
724 {0xFE33, 0xFE34, WBP_ExtendNumLet},
725 {0xFE4D, 0xFE4F, WBP_ExtendNumLet},
726 {0xFE50, 0xFE50, WBP_MidNum},
727 {0xFE52, 0xFE52, WBP_MidNumLet},
728 {0xFE54, 0xFE54, WBP_MidNum},
729 {0xFE55, 0xFE55, WBP_MidLetter},
730 {0xFE70, 0xFE74, WBP_ALetter},
731 {0xFE76, 0xFEFC, WBP_ALetter},
732 {0xFEFF, 0xFEFF, WBP_Format},
733 {0xFF07, 0xFF07, WBP_MidNumLet},
734 {0xFF0C, 0xFF0C, WBP_MidNum},
735 {0xFF0E, 0xFF0E, WBP_MidNumLet},
736 {0xFF1A, 0xFF1A, WBP_MidLetter},
737 {0xFF1B, 0xFF1B, WBP_MidNum},
738 {0xFF21, 0xFF3A, WBP_ALetter},
739 {0xFF3F, 0xFF3F, WBP_ExtendNumLet},
740 {0xFF41, 0xFF5A, WBP_ALetter},
741 {0xFF66, 0xFF6F, WBP_Katakana},
742 {0xFF70, 0xFF70, WBP_Katakana},
743 {0xFF71, 0xFF9D, WBP_Katakana},
744 {0xFF9E, 0xFF9F, WBP_Extend},
745 {0xFFA0, 0xFFBE, WBP_ALetter},
746 {0xFFC2, 0xFFC7, WBP_ALetter},
747 {0xFFCA, 0xFFCF, WBP_ALetter},
748 {0xFFD2, 0xFFD7, WBP_ALetter},
749 {0xFFDA, 0xFFDC, WBP_ALetter},
750 {0xFFF9, 0xFFFB, WBP_Format},
751 {0x10000, 0x1000B, WBP_ALetter},
752 {0x1000D, 0x10026, WBP_ALetter},
753 {0x10028, 0x1003A, WBP_ALetter},
754 {0x1003C, 0x1003D, WBP_ALetter},
755 {0x1003F, 0x1004D, WBP_ALetter},
756 {0x10050, 0x1005D, WBP_ALetter},
757 {0x10080, 0x100FA, WBP_ALetter},
758 {0x10140, 0x10174, WBP_ALetter},
759 {0x101FD, 0x101FD, WBP_Extend},
760 {0x10280, 0x1029C, WBP_ALetter},
761 {0x102A0, 0x102D0, WBP_ALetter},
762 {0x10300, 0x1031E, WBP_ALetter},
763 {0x10330, 0x10340, WBP_ALetter},
764 {0x10341, 0x10341, WBP_ALetter},
765 {0x10342, 0x10349, WBP_ALetter},
766 {0x1034A, 0x1034A, WBP_ALetter},
767 {0x10380, 0x1039D, WBP_ALetter},
768 {0x103A0, 0x103C3, WBP_ALetter},
769 {0x103C8, 0x103CF, WBP_ALetter},
770 {0x103D1, 0x103D5, WBP_ALetter},
771 {0x10400, 0x1044F, WBP_ALetter},
772 {0x10450, 0x1049D, WBP_ALetter},
773 {0x104A0, 0x104A9, WBP_Numeric},
774 {0x10800, 0x10805, WBP_ALetter},
775 {0x10808, 0x10808, WBP_ALetter},
776 {0x1080A, 0x10835, WBP_ALetter},
777 {0x10837, 0x10838, WBP_ALetter},
778 {0x1083C, 0x1083C, WBP_ALetter},
779 {0x1083F, 0x10855, WBP_ALetter},
780 {0x10900, 0x10915, WBP_ALetter},
781 {0x10920, 0x10939, WBP_ALetter},
782 {0x10A00, 0x10A00, WBP_ALetter},
783 {0x10A01, 0x10A03, WBP_Extend},
784 {0x10A05, 0x10A06, WBP_Extend},
785 {0x10A0C, 0x10A0F, WBP_Extend},
786 {0x10A10, 0x10A13, WBP_ALetter},
787 {0x10A15, 0x10A17, WBP_ALetter},
788 {0x10A19, 0x10A33, WBP_ALetter},
789 {0x10A38, 0x10A3A, WBP_Extend},
790 {0x10A3F, 0x10A3F, WBP_Extend},
791 {0x10A60, 0x10A7C, WBP_ALetter},
792 {0x10B00, 0x10B35, WBP_ALetter},
793 {0x10B40, 0x10B55, WBP_ALetter},
794 {0x10B60, 0x10B72, WBP_ALetter},
795 {0x10C00, 0x10C48, WBP_ALetter},
796 {0x11000, 0x11000, WBP_Extend},
797 {0x11001, 0x11001, WBP_Extend},
798 {0x11002, 0x11002, WBP_Extend},
799 {0x11003, 0x11037, WBP_ALetter},
800 {0x11038, 0x11046, WBP_Extend},
801 {0x11066, 0x1106F, WBP_Numeric},
802 {0x11080, 0x11081, WBP_Extend},
803 {0x11082, 0x11082, WBP_Extend},
804 {0x11083, 0x110AF, WBP_ALetter},
805 {0x110B0, 0x110B2, WBP_Extend},
806 {0x110B3, 0x110B6, WBP_Extend},
807 {0x110B7, 0x110B8, WBP_Extend},
808 {0x110B9, 0x110BA, WBP_Extend},
809 {0x110BD, 0x110BD, WBP_Format},
810 {0x12000, 0x1236E, WBP_ALetter},
811 {0x12400, 0x12462, WBP_ALetter},
812 {0x13000, 0x1342E, WBP_ALetter},
813 {0x16800, 0x16A38, WBP_ALetter},
814 {0x1B000, 0x1B000, WBP_Katakana},
815 {0x1D165, 0x1D166, WBP_Extend},
816 {0x1D167, 0x1D169, WBP_Extend},
817 {0x1D16D, 0x1D172, WBP_Extend},
818 {0x1D173, 0x1D17A, WBP_Format},
819 {0x1D17B, 0x1D182, WBP_Extend},
820 {0x1D185, 0x1D18B, WBP_Extend},
821 {0x1D1AA, 0x1D1AD, WBP_Extend},
822 {0x1D242, 0x1D244, WBP_Extend},
823 {0x1D400, 0x1D454, WBP_ALetter},
824 {0x1D456, 0x1D49C, WBP_ALetter},
825 {0x1D49E, 0x1D49F, WBP_ALetter},
826 {0x1D4A2, 0x1D4A2, WBP_ALetter},
827 {0x1D4A5, 0x1D4A6, WBP_ALetter},
828 {0x1D4A9, 0x1D4AC, WBP_ALetter},
829 {0x1D4AE, 0x1D4B9, WBP_ALetter},
830 {0x1D4BB, 0x1D4BB, WBP_ALetter},
831 {0x1D4BD, 0x1D4C3, WBP_ALetter},
832 {0x1D4C5, 0x1D505, WBP_ALetter},
833 {0x1D507, 0x1D50A, WBP_ALetter},
834 {0x1D50D, 0x1D514, WBP_ALetter},
835 {0x1D516, 0x1D51C, WBP_ALetter},
836 {0x1D51E, 0x1D539, WBP_ALetter},
837 {0x1D53B, 0x1D53E, WBP_ALetter},
838 {0x1D540, 0x1D544, WBP_ALetter},
839 {0x1D546, 0x1D546, WBP_ALetter},
840 {0x1D54A, 0x1D550, WBP_ALetter},
841 {0x1D552, 0x1D6A5, WBP_ALetter},
842 {0x1D6A8, 0x1D6C0, WBP_ALetter},
843 {0x1D6C2, 0x1D6DA, WBP_ALetter},
844 {0x1D6DC, 0x1D6FA, WBP_ALetter},
845 {0x1D6FC, 0x1D714, WBP_ALetter},
846 {0x1D716, 0x1D734, WBP_ALetter},
847 {0x1D736, 0x1D74E, WBP_ALetter},
848 {0x1D750, 0x1D76E, WBP_ALetter},
849 {0x1D770, 0x1D788, WBP_ALetter},
850 {0x1D78A, 0x1D7A8, WBP_ALetter},
851 {0x1D7AA, 0x1D7C2, WBP_ALetter},
852 {0x1D7C4, 0x1D7CB, WBP_ALetter},
853 {0x1D7CE, 0x1D7FF, WBP_Numeric},
854 {0xE0001, 0xE0001, WBP_Format},
855 {0xE0020, 0xE007F, WBP_Format},
856 {0xE0100, 0xE01EF, WBP_Extend},
857 {0xFFFFFFFF, 0xFFFFFFFF, WBP_Undefined}
858};
diff --git a/libraries/evas/src/static_deps/liblinebreak/wordbreakdef.h b/libraries/evas/src/static_deps/liblinebreak/wordbreakdef.h
new file mode 100644
index 0000000..331cd01
--- /dev/null
+++ b/libraries/evas/src/static_deps/liblinebreak/wordbreakdef.h
@@ -0,0 +1,80 @@
1/* vim: set tabstop=4 shiftwidth=4: */
2
3/*
4 * Word breaking in a Unicode sequence. Designed to be used in a
5 * generic text renderer.
6 *
7 * Copyright (C) 2011-2011 Tom Hacohen <tom@stosb.com>
8 *
9 * This software is provided 'as-is', without any express or implied
10 * warranty. In no event will the author be held liable for any damages
11 * arising from the use of this software.
12 *
13 * Permission is granted to anyone to use this software for any purpose,
14 * including commercial applications, and to alter it and redistribute
15 * it freely, subject to the following restrictions:
16 *
17 * 1. The origin of this software must not be misrepresented; you must
18 * not claim that you wrote the original software. If you use this
19 * software in a product, an acknowledgement in the product
20 * documentation would be appreciated but is not required.
21 * 2. Altered source versions must be plainly marked as such, and must
22 * not be misrepresented as being the original software.
23 * 3. This notice may not be removed or altered from any source
24 * distribution.
25 *
26 * The main reference is Unicode Standard Annex 29 (UAX #29):
27 * <URL:http://unicode.org/reports/tr29>
28 *
29 * When this library was designed, this annex was at Revision 17, for
30 * Unicode 6.0.0:
31 * <URL:http://www.unicode.org/reports/tr29/tr29-17.html>
32 *
33 * The Unicode Terms of Use are available at
34 * <URL:http://www.unicode.org/copyright.html>
35 */
36
37/**
38 * @file wordbreakdef.h
39 *
40 * Definitions of internal data structures, declarations of global
41 * variables, and function prototypes for the word breaking algorithm.
42 *
43 * @version 2.0, 2011/12/12
44 * @author Tom Hacohen
45 */
46
47/**
48 * Word break classes. This is a direct mapping of Table 3 of Unicode
49 * Standard Annex 29, Revision 17.
50 */
51enum WordBreakClass
52{
53 WBP_Undefined,
54
55 /* The following break classes are treated in the pair table. */
56 WBP_CR,
57 WBP_LF,
58 WBP_Newline,
59 WBP_Extend,
60 WBP_Format,
61 WBP_Katakana,
62 WBP_ALetter,
63 WBP_MidNumLet,
64 WBP_MidLetter,
65 WBP_MidNum,
66 WBP_Numeric,
67 WBP_ExtendNumLet,
68 WBP_Any
69};
70
71/**
72 * Struct for entries of word break properties. The array of the
73 * entries \e must be sorted.
74 */
75struct WordBreakProperties
76{
77 utf32_t start; /**< Starting coding point */
78 utf32_t end; /**< End coding point */
79 enum WordBreakClass prop; /**< The word breaking property */
80};
diff --git a/libraries/evas/src/tests/Makefile.in b/libraries/evas/src/tests/Makefile.in
index c598c3d..8790c33 100644
--- a/libraries/evas/src/tests/Makefile.in
+++ b/libraries/evas/src/tests/Makefile.in
@@ -203,8 +203,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
203PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 203PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
204PIXMAN_LIBS = @PIXMAN_LIBS@ 204PIXMAN_LIBS = @PIXMAN_LIBS@
205PKG_CONFIG = @PKG_CONFIG@ 205PKG_CONFIG = @PKG_CONFIG@
206PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
207PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
208PNG_CFLAGS = @PNG_CFLAGS@ 206PNG_CFLAGS = @PNG_CFLAGS@
209PNG_LIBS = @PNG_LIBS@ 207PNG_LIBS = @PNG_LIBS@
210RANLIB = @RANLIB@ 208RANLIB = @RANLIB@
@@ -221,6 +219,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
221VALGRIND_LIBS = @VALGRIND_LIBS@ 219VALGRIND_LIBS = @VALGRIND_LIBS@
222VERSION = @VERSION@ 220VERSION = @VERSION@
223VMAJ = @VMAJ@ 221VMAJ = @VMAJ@
222WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
223WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
224WIN32_CFLAGS = @WIN32_CFLAGS@ 224WIN32_CFLAGS = @WIN32_CFLAGS@
225WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 225WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
226XCB_CFLAGS = @XCB_CFLAGS@ 226XCB_CFLAGS = @XCB_CFLAGS@
@@ -302,6 +302,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
302evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 302evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
303evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 303evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
304evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 304evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
305evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
306evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
307evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
308evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
305evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 309evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
306evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 310evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
307evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 311evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/tests/evas_test_callbacks.c b/libraries/evas/src/tests/evas_test_callbacks.c
index 675ee1c..164851e 100644
--- a/libraries/evas/src/tests/evas_test_callbacks.c
+++ b/libraries/evas/src/tests/evas_test_callbacks.c
@@ -28,7 +28,7 @@ do \
28} \ 28} \
29while (0) 29while (0)
30 30
31static int counter = 1; 31static uintptr_t counter = 1;
32 32
33static void 33static void
34_obj_event_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) 34_obj_event_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
@@ -37,7 +37,7 @@ _obj_event_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
37 (void) obj; 37 (void) obj;
38 (void) event_info; 38 (void) event_info;
39 39
40 fail_if(((int) data) != counter); 40 fail_if(((uintptr_t) data) != counter);
41 41
42 counter++; 42 counter++;
43} 43}
@@ -83,7 +83,7 @@ _event_cb(void *data, Evas *e, void *event_info)
83 (void) e; 83 (void) e;
84 (void) event_info; 84 (void) event_info;
85 85
86 fail_if(((int) data) != counter); 86 fail_if(((uintptr_t) data) != counter);
87 87
88 counter++; 88 counter++;
89} 89}
diff --git a/libraries/evas/src/tests/evas_test_textblock.c b/libraries/evas/src/tests/evas_test_textblock.c
index 6a28353..cf6a78b 100644
--- a/libraries/evas/src/tests/evas_test_textblock.c
+++ b/libraries/evas/src/tests/evas_test_textblock.c
@@ -21,9 +21,7 @@ _evas_textblock_format_offset_get(const Evas_Object_Textblock_Node_Format *n);
21 21
22static const char *style_buf = 22static const char *style_buf =
23 "DEFAULT='font=Sans font_size=10 color=#000 text_class=entry'" 23 "DEFAULT='font=Sans font_size=10 color=#000 text_class=entry'"
24 "br='\n'" 24 "newline='br'"
25 "ps='ps'"
26 "tab='\t'"
27 "b='+ font=Sans:style=bold'"; 25 "b='+ font=Sans:style=bold'";
28 26
29#define START_TB_TEST() \ 27#define START_TB_TEST() \
@@ -61,7 +59,7 @@ while (0)
61START_TEST(evas_textblock_simple) 59START_TEST(evas_textblock_simple)
62{ 60{
63 START_TB_TEST(); 61 START_TB_TEST();
64 const char *buf = "Th<i>i</i>s is a <br> te<b>s</b>t."; 62 const char *buf = "Th<i>i</i>s is a <br/> te<b>s</b>t.";
65 evas_object_textblock_text_markup_set(tb, buf); 63 evas_object_textblock_text_markup_set(tb, buf);
66 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); 64 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf));
67 END_TB_TEST(); 65 END_TB_TEST();
@@ -95,12 +93,12 @@ START_TEST(evas_textblock_cursor)
95 Evas_Coord x, y, w, h; 93 Evas_Coord x, y, w, h;
96 size_t i, len; 94 size_t i, len;
97 Evas_Coord nw, nh; 95 Evas_Coord nw, nh;
98 const char *buf = "This is a<br> test.<ps>Lets see if this works.<ps>עוד פסקה."; 96 const char *buf = "This is a<br/> test.<ps/>Lets see if this works.<ps/>עוד פסקה.";
99 97
100 /* Walk the textblock using cursor_char_next */ 98 /* Walk the textblock using cursor_char_next */
101 evas_object_textblock_text_markup_set(tb, buf); 99 evas_object_textblock_text_markup_set(tb, buf);
102 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); 100 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf));
103 len = eina_unicode_utf8_get_len(buf) - 9; /* 9 because len(<br>) == 1 and len(<ps>) == 1 */ 101 len = eina_unicode_utf8_get_len(buf) - 12; /* 12 because len(<br/>) == 1 and len(<ps/>) == 1 */
104 for (i = 0 ; i < len ; i++) 102 for (i = 0 ; i < len ; i++)
105 { 103 {
106 _CHECK_CURSOR_COORDS(); 104 _CHECK_CURSOR_COORDS();
@@ -284,7 +282,7 @@ START_TEST(evas_textblock_cursor)
284 /* Paragraph text get */ 282 /* Paragraph text get */
285 evas_textblock_cursor_paragraph_first(cur); 283 evas_textblock_cursor_paragraph_first(cur);
286 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), 284 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur),
287 "This is a<br> test.")); 285 "This is a<br/> test."));
288 evas_textblock_cursor_paragraph_next(cur); 286 evas_textblock_cursor_paragraph_next(cur);
289 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), 287 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur),
290 "Lets see if this works.")); 288 "Lets see if this works."));
@@ -294,9 +292,9 @@ START_TEST(evas_textblock_cursor)
294 292
295 /* Paragraph length get */ 293 /* Paragraph length get */
296 evas_textblock_cursor_paragraph_first(cur); 294 evas_textblock_cursor_paragraph_first(cur);
297 /* -3 because len(<br>) == 1 */ 295 /* -4 because len(<br/>) == 1 */
298 fail_if(evas_textblock_cursor_paragraph_text_length_get(cur) != 296 fail_if(evas_textblock_cursor_paragraph_text_length_get(cur) !=
299 eina_unicode_utf8_get_len("This is a<br> test.") - 3); 297 eina_unicode_utf8_get_len("This is a<br/> test.") - 4);
300 evas_textblock_cursor_paragraph_next(cur); 298 evas_textblock_cursor_paragraph_next(cur);
301 fail_if(evas_textblock_cursor_paragraph_text_length_get(cur) != 299 fail_if(evas_textblock_cursor_paragraph_text_length_get(cur) !=
302 eina_unicode_utf8_get_len("Lets see if this works.")); 300 eina_unicode_utf8_get_len("Lets see if this works."));
@@ -308,7 +306,7 @@ START_TEST(evas_textblock_cursor)
308 evas_textblock_cursor_pos_set(cur, 0); 306 evas_textblock_cursor_pos_set(cur, 0);
309 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "T")); 307 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "T"));
310 evas_textblock_cursor_pos_set(cur, 9); 308 evas_textblock_cursor_pos_set(cur, 9);
311 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<br>")); 309 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<br/>"));
312 evas_textblock_cursor_pos_set(cur, 43); 310 evas_textblock_cursor_pos_set(cur, 43);
313 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "ד")); 311 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "ד"));
314 312
@@ -414,12 +412,12 @@ START_TEST(evas_textblock_cursor)
414 412
415#ifdef HAVE_FRIBIDI 413#ifdef HAVE_FRIBIDI
416 evas_object_textblock_text_markup_set(tb, 414 evas_object_textblock_text_markup_set(tb,
417 "testנסיוןtestנסיון<ps>" 415 "testנסיוןtestנסיון<ps/>"
418 "נסיוןtestנסיוןtest<ps>" 416 "נסיוןtestנסיוןtest<ps/>"
419 "testנסיוןtest<ps>" 417 "testנסיוןtest<ps/>"
420 "נסיוןtestנסיון<ps>" 418 "נסיוןtestנסיון<ps/>"
421 "testנסיון<br>נסיון<ps>" 419 "testנסיון<br/>נסיון<ps/>"
422 "נסיוןtest<br>test" 420 "נסיוןtest<br/>test"
423 ); 421 );
424 422
425 for (i = 0 ; i < 8 ; i++) 423 for (i = 0 ; i < 8 ; i++)
@@ -568,6 +566,32 @@ START_TEST(evas_textblock_cursor)
568 fail_if(evas_textblock_cursor_compare(main_cur, cur)); 566 fail_if(evas_textblock_cursor_compare(main_cur, cur));
569 } 567 }
570 568
569 {
570 const char *buf_wb = "a This is_a t:e.s't a";
571 evas_object_textblock_text_markup_set(tb, buf_wb);
572
573 /* Word start/end */
574 evas_textblock_cursor_pos_set(cur, 3);
575 evas_textblock_cursor_word_start(cur);
576 fail_if(2 != evas_textblock_cursor_pos_get(cur));
577 evas_textblock_cursor_word_end(cur);
578 fail_if(5 != evas_textblock_cursor_pos_get(cur));
579
580 evas_textblock_cursor_pos_set(cur, 13);
581 evas_textblock_cursor_word_end(cur);
582 fail_if(18 != evas_textblock_cursor_pos_get(cur));
583 evas_textblock_cursor_word_start(cur);
584 fail_if(12 != evas_textblock_cursor_pos_get(cur));
585 evas_textblock_cursor_word_start(cur);
586 fail_if(12 != evas_textblock_cursor_pos_get(cur));
587 evas_textblock_cursor_word_start(cur);
588 fail_if(12 != evas_textblock_cursor_pos_get(cur));
589 evas_textblock_cursor_word_end(cur);
590 fail_if(18 != evas_textblock_cursor_pos_get(cur));
591 evas_textblock_cursor_word_end(cur);
592 fail_if(18 != evas_textblock_cursor_pos_get(cur));
593 }
594
571 END_TB_TEST(); 595 END_TB_TEST();
572} 596}
573END_TEST 597END_TEST
@@ -723,7 +747,7 @@ START_TEST(evas_textblock_format_removal)
723 747
724 /* Range deletion across paragraphs */ 748 /* Range deletion across paragraphs */
725 evas_object_textblock_text_markup_set(tb, 749 evas_object_textblock_text_markup_set(tb,
726 "Th<b>is a<a>te<ps>" 750 "Th<b>is a<a>te<ps/>"
727 "s</a>st</b>."); 751 "s</a>st</b>.");
728 evas_textblock_cursor_pos_set(cur, 6); 752 evas_textblock_cursor_pos_set(cur, 6);
729 evas_textblock_cursor_pos_set(main_cur, 10); 753 evas_textblock_cursor_pos_set(main_cur, 10);
@@ -749,14 +773,14 @@ START_TEST(evas_textblock_format_removal)
749 fail_if (fnode); 773 fail_if (fnode);
750 774
751 /* Two formats across different paragraphs with notihng in between. */ 775 /* Two formats across different paragraphs with notihng in between. */
752 evas_object_textblock_text_markup_set(tb, "<b><ps></b>"); 776 evas_object_textblock_text_markup_set(tb, "<b><ps/></b>");
753 evas_textblock_cursor_pos_set(cur, 0); 777 evas_textblock_cursor_pos_set(cur, 0);
754 evas_textblock_cursor_char_delete(cur); 778 evas_textblock_cursor_char_delete(cur);
755 fnode = evas_textblock_node_format_first_get(tb); 779 fnode = evas_textblock_node_format_first_get(tb);
756 fail_if (fnode); 780 fail_if (fnode);
757 781
758 /* Try with range */ 782 /* Try with range */
759 evas_object_textblock_text_markup_set(tb, "<b><ps></b>"); 783 evas_object_textblock_text_markup_set(tb, "<b><ps/></b>");
760 evas_textblock_cursor_pos_set(cur, 0); 784 evas_textblock_cursor_pos_set(cur, 0);
761 evas_textblock_cursor_pos_set(main_cur, 1); 785 evas_textblock_cursor_pos_set(main_cur, 1);
762 evas_textblock_cursor_range_delete(cur, main_cur); 786 evas_textblock_cursor_range_delete(cur, main_cur);
@@ -765,7 +789,7 @@ START_TEST(evas_textblock_format_removal)
765 789
766 /* Verify fmt position and REP_CHAR positions are the same */ 790 /* Verify fmt position and REP_CHAR positions are the same */
767 evas_object_textblock_text_markup_set(tb, 791 evas_object_textblock_text_markup_set(tb,
768 "This is<ps>an <item absize=93x152 vsize=ascent></>a."); 792 "This is<ps/>an <item absize=93x152 vsize=ascent></>a.");
769 evas_textblock_cursor_pos_set(cur, 7); 793 evas_textblock_cursor_pos_set(cur, 7);
770 evas_textblock_cursor_char_delete(cur); 794 evas_textblock_cursor_char_delete(cur);
771 fnode = evas_textblock_node_format_first_get(tb); 795 fnode = evas_textblock_node_format_first_get(tb);
@@ -1091,9 +1115,9 @@ START_TEST(evas_textblock_wrapping)
1091 evas_object_textblock_text_markup_set(tb, "a"); 1115 evas_object_textblock_text_markup_set(tb, "a");
1092 evas_object_textblock_size_formatted_get(tb, &bw, &bh); 1116 evas_object_textblock_size_formatted_get(tb, &bw, &bh);
1093 evas_object_textblock_text_markup_set(tb, 1117 evas_object_textblock_text_markup_set(tb,
1094 "aaaa aaaa aaa aa aaa<ps>" 1118 "aaaa aaaa aaa aa aaa<ps/>"
1095 "aaaa aaa aaa aaa aaa<ps>" 1119 "aaaa aaa aaa aaa aaa<ps/>"
1096 "a aaaaa aaaaaaaaaaaaaa<br>aaaaa<ps>" 1120 "a aaaaa aaaaaaaaaaaaaa<br/>aaaaa<ps/>"
1097 "aaaaaa" 1121 "aaaaaa"
1098 ); 1122 );
1099 evas_textblock_cursor_format_prepend(cur, "+ wrap=char"); 1123 evas_textblock_cursor_format_prepend(cur, "+ wrap=char");
@@ -1113,9 +1137,9 @@ START_TEST(evas_textblock_wrapping)
1113 evas_object_textblock_text_markup_set(tb, "aaaaaa"); 1137 evas_object_textblock_text_markup_set(tb, "aaaaaa");
1114 evas_object_textblock_size_formatted_get(tb, &bw, &bh); 1138 evas_object_textblock_size_formatted_get(tb, &bw, &bh);
1115 evas_object_textblock_text_markup_set(tb, 1139 evas_object_textblock_text_markup_set(tb,
1116 "aaaa aaaa aaa aa aaa<ps>" 1140 "aaaa aaaa aaa aa aaa<ps/>"
1117 "aaaa aaa aaa aaa aaa<ps>" 1141 "aaaa aaa aaa aaa aaa<ps/>"
1118 "a aaaaa aaaaaa<br>aaaaa<ps>" 1142 "a aaaaa aaaaaa<br/>aaaaa<ps/>"
1119 "aaaaa" 1143 "aaaaa"
1120 ); 1144 );
1121 evas_textblock_cursor_format_prepend(cur, "+ wrap=word"); 1145 evas_textblock_cursor_format_prepend(cur, "+ wrap=word");
@@ -1134,9 +1158,9 @@ START_TEST(evas_textblock_wrapping)
1134 evas_object_textblock_text_markup_set(tb, "a"); 1158 evas_object_textblock_text_markup_set(tb, "a");
1135 evas_object_textblock_size_formatted_get(tb, &bw, &bh); 1159 evas_object_textblock_size_formatted_get(tb, &bw, &bh);
1136 evas_object_textblock_text_markup_set(tb, 1160 evas_object_textblock_text_markup_set(tb,
1137 "aaaa aaaa aaa aa aaa<ps>" 1161 "aaaa aaaa aaa aa aaa<ps/>"
1138 "aaaa aaa aaa aaa aaa<ps>" 1162 "aaaa aaa aaa aaa aaa<ps/>"
1139 "a aaaaa aaaaaa<br>aaaaa<ps>" 1163 "a aaaaa aaaaaa<br/>aaaaa<ps/>"
1140 "aaaaa" 1164 "aaaaa"
1141 ); 1165 );
1142 evas_textblock_cursor_format_prepend(cur, "+ wrap=mixed"); 1166 evas_textblock_cursor_format_prepend(cur, "+ wrap=mixed");
@@ -1156,26 +1180,26 @@ START_TEST(evas_textblock_wrapping)
1156 int wrap_items = sizeof(wrap_style) / sizeof(*wrap_style); 1180 int wrap_items = sizeof(wrap_style) / sizeof(*wrap_style);
1157 1181
1158 evas_object_textblock_text_markup_set(tb, 1182 evas_object_textblock_text_markup_set(tb,
1159 "This is an entry widget in this window that<br>" 1183 "This is an entry widget in this window that<br/>"
1160 "uses markup <b>like this</> for styling and<br>" 1184 "uses markup <b>like this</> for styling and<br/>"
1161 "formatting <em>like this</>, as well as<br>" 1185 "formatting <em>like this</>, as well as<br/>"
1162 "<a href=X><link>links in the text</></a>, so enter text<br>" 1186 "<a href=X><link>links in the text</></a>, so enter text<br/>"
1163 "in here to edit it. By the way, links are<br>" 1187 "in here to edit it. By the way, links are<br/>"
1164 "called <a href=anc-02>Anchors</a> so you will need<br>" 1188 "called <a href=anc-02>Anchors</a> so you will need<br/>"
1165 "to refer to them this way.<br>" 1189 "to refer to them this way.<br/>"
1166 "<br>" 1190 "<br/>"
1167 1191
1168 "Also you can stick in items with (relsize + ascent): " 1192 "Also you can stick in items with (relsize + ascent): "
1169 "<item relsize=16x16 vsize=ascent href=emoticon/evil-laugh></item>" 1193 "<item relsize=16x16 vsize=ascent href=emoticon/evil-laugh></item>"
1170 " (full) " 1194 " (full) "
1171 "<item relsize=16x16 vsize=full href=emoticon/guilty-smile></item>" 1195 "<item relsize=16x16 vsize=full href=emoticon/guilty-smile></item>"
1172 " (to the left)<br>" 1196 " (to the left)<br/>"
1173 1197
1174 "Also (size + ascent): " 1198 "Also (size + ascent): "
1175 "<item size=16x16 vsize=ascent href=emoticon/haha></item>" 1199 "<item size=16x16 vsize=ascent href=emoticon/haha></item>"
1176 " (full) " 1200 " (full) "
1177 "<item size=16x16 vsize=full href=emoticon/happy-panting></item>" 1201 "<item size=16x16 vsize=full href=emoticon/happy-panting></item>"
1178 " (before this)<br>" 1202 " (before this)<br/>"
1179 1203
1180 "And as well (absize + ascent): " 1204 "And as well (absize + ascent): "
1181 "<item absize=64x64 vsize=ascent href=emoticon/knowing-grin></item>" 1205 "<item absize=64x64 vsize=ascent href=emoticon/knowing-grin></item>"
@@ -1214,6 +1238,13 @@ START_TEST(evas_textblock_wrapping)
1214 evas_object_textblock_size_formatted_get(tb, &w, &h); 1238 evas_object_textblock_size_formatted_get(tb, &w, &h);
1215 fail_if((w > (nw / 2)) || (h != nh)); 1239 fail_if((w > (nw / 2)) || (h != nh));
1216 1240
1241 evas_object_textblock_text_markup_set(tb, "aaaaaaaaaaaaaaaaaa<br/>b");
1242 evas_textblock_cursor_format_prepend(cur, "+ ellipsis=1.0 wrap=word");
1243 evas_object_textblock_size_native_get(tb, &nw, &nh);
1244 evas_object_resize(tb, nw / 2, nh * 2);
1245 evas_object_textblock_size_formatted_get(tb, &w, &h);
1246 fail_if(w > (nw / 2));
1247
1217 END_TB_TEST(); 1248 END_TB_TEST();
1218} 1249}
1219END_TEST 1250END_TEST
@@ -1223,7 +1254,7 @@ START_TEST(evas_textblock_various)
1223{ 1254{
1224 Evas_Coord w, h, bw, bh; 1255 Evas_Coord w, h, bw, bh;
1225 START_TB_TEST(); 1256 START_TB_TEST();
1226 const char *buf = "This<ps>textblock<ps>has<ps>a<ps>lot<ps>of<ps>lines<ps>."; 1257 const char *buf = "This<ps/>textblock<ps/>has<ps/>a<ps/>lot<ps/>of<ps/>lines<ps/>.";
1227 evas_object_textblock_text_markup_set(tb, buf); 1258 evas_object_textblock_text_markup_set(tb, buf);
1228 evas_object_textblock_size_formatted_get(tb, &w, &h); 1259 evas_object_textblock_size_formatted_get(tb, &w, &h);
1229 /* Move outside of the screen so it'll have to search for the correct 1260 /* Move outside of the screen so it'll have to search for the correct
@@ -1241,15 +1272,15 @@ START_TEST(evas_textblock_various)
1241 /* Items have correct text node information */ 1272 /* Items have correct text node information */
1242 evas_object_textblock_text_markup_set(tb, ""); 1273 evas_object_textblock_text_markup_set(tb, "");
1243 fail_if(!_evas_textblock_check_item_node_link(tb)); 1274 fail_if(!_evas_textblock_check_item_node_link(tb));
1244 evas_object_textblock_text_markup_set(tb, "<ps>"); 1275 evas_object_textblock_text_markup_set(tb, "<ps/>");
1245 fail_if(!_evas_textblock_check_item_node_link(tb)); 1276 fail_if(!_evas_textblock_check_item_node_link(tb));
1246 evas_object_textblock_text_markup_set(tb, "a<ps>"); 1277 evas_object_textblock_text_markup_set(tb, "a<ps/>");
1247 fail_if(!_evas_textblock_check_item_node_link(tb)); 1278 fail_if(!_evas_textblock_check_item_node_link(tb));
1248 evas_object_textblock_text_markup_set(tb, "a<ps>a"); 1279 evas_object_textblock_text_markup_set(tb, "a<ps/>a");
1249 fail_if(!_evas_textblock_check_item_node_link(tb)); 1280 fail_if(!_evas_textblock_check_item_node_link(tb));
1250 evas_object_textblock_text_markup_set(tb, "a<ps>a<ps>"); 1281 evas_object_textblock_text_markup_set(tb, "a<ps/>a<ps/>");
1251 fail_if(!_evas_textblock_check_item_node_link(tb)); 1282 fail_if(!_evas_textblock_check_item_node_link(tb));
1252 evas_object_textblock_text_markup_set(tb, "a<ps>a<ps>a"); 1283 evas_object_textblock_text_markup_set(tb, "a<ps/>a<ps/>a");
1253 fail_if(!_evas_textblock_check_item_node_link(tb)); 1284 fail_if(!_evas_textblock_check_item_node_link(tb));
1254 1285
1255 END_TB_TEST(); 1286 END_TB_TEST();
@@ -1260,7 +1291,7 @@ END_TEST
1260START_TEST(evas_textblock_geometries) 1291START_TEST(evas_textblock_geometries)
1261{ 1292{
1262 START_TB_TEST(); 1293 START_TB_TEST();
1263 const char *buf = "This is a <br> test."; 1294 const char *buf = "This is a <br/> test.";
1264 evas_object_textblock_text_markup_set(tb, buf); 1295 evas_object_textblock_text_markup_set(tb, buf);
1265 1296
1266 /* Single line range */ 1297 /* Single line range */
@@ -1327,7 +1358,7 @@ END_TEST
1327START_TEST(evas_textblock_editing) 1358START_TEST(evas_textblock_editing)
1328{ 1359{
1329 START_TB_TEST(); 1360 START_TB_TEST();
1330 const char *buf = "First par.<ps>Second par."; 1361 const char *buf = "First par.<ps/>Second par.";
1331 evas_object_textblock_text_markup_set(tb, buf); 1362 evas_object_textblock_text_markup_set(tb, buf);
1332 Evas_Textblock_Cursor *main_cur = evas_object_textblock_cursor_get(tb); 1363 Evas_Textblock_Cursor *main_cur = evas_object_textblock_cursor_get(tb);
1333 1364
@@ -1346,7 +1377,7 @@ START_TEST(evas_textblock_editing)
1346 evas_textblock_cursor_paragraph_first(cur); 1377 evas_textblock_cursor_paragraph_first(cur);
1347 evas_textblock_cursor_char_delete(cur); 1378 evas_textblock_cursor_char_delete(cur);
1348 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), 1379 fail_if(strcmp(evas_object_textblock_text_markup_get(tb),
1349 "irst par.<ps>Second par.")); 1380 "irst par.<ps/>Second par."));
1350 1381
1351 /* Delete some arbitrary char */ 1382 /* Delete some arbitrary char */
1352 evas_textblock_cursor_char_next(cur); 1383 evas_textblock_cursor_char_next(cur);
@@ -1354,14 +1385,14 @@ START_TEST(evas_textblock_editing)
1354 evas_textblock_cursor_char_next(cur); 1385 evas_textblock_cursor_char_next(cur);
1355 evas_textblock_cursor_char_delete(cur); 1386 evas_textblock_cursor_char_delete(cur);
1356 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), 1387 fail_if(strcmp(evas_object_textblock_text_markup_get(tb),
1357 "irs par.<ps>Second par.")); 1388 "irs par.<ps/>Second par."));
1358 1389
1359 /* Delete a range */ 1390 /* Delete a range */
1360 evas_textblock_cursor_pos_set(main_cur, 1); 1391 evas_textblock_cursor_pos_set(main_cur, 1);
1361 evas_textblock_cursor_pos_set(cur, 6); 1392 evas_textblock_cursor_pos_set(cur, 6);
1362 evas_textblock_cursor_range_delete(cur, main_cur); 1393 evas_textblock_cursor_range_delete(cur, main_cur);
1363 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), 1394 fail_if(strcmp(evas_object_textblock_text_markup_get(tb),
1364 "ir.<ps>Second par.")); 1395 "ir.<ps/>Second par."));
1365 evas_textblock_cursor_paragraph_char_first(main_cur); 1396 evas_textblock_cursor_paragraph_char_first(main_cur);
1366 evas_textblock_cursor_paragraph_char_last(cur); 1397 evas_textblock_cursor_paragraph_char_last(cur);
1367 evas_textblock_cursor_char_next(cur); 1398 evas_textblock_cursor_char_next(cur);
@@ -1376,7 +1407,7 @@ START_TEST(evas_textblock_editing)
1376 evas_textblock_cursor_paragraph_char_first(main_cur); 1407 evas_textblock_cursor_paragraph_char_first(main_cur);
1377 evas_textblock_cursor_range_delete(cur, main_cur); 1408 evas_textblock_cursor_range_delete(cur, main_cur);
1378 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), 1409 fail_if(strcmp(evas_object_textblock_text_markup_get(tb),
1379 "First par.<ps>")); 1410 "First par.<ps/>"));
1380 1411
1381 /* Merging paragraphs */ 1412 /* Merging paragraphs */
1382 evas_object_textblock_text_markup_set(tb, buf); 1413 evas_object_textblock_text_markup_set(tb, buf);
@@ -1406,6 +1437,27 @@ START_TEST(evas_textblock_editing)
1406 evas_textblock_cursor_paragraph_first(cur); 1437 evas_textblock_cursor_paragraph_first(cur);
1407 fail_if(evas_textblock_cursor_paragraph_next(cur)); 1438 fail_if(evas_textblock_cursor_paragraph_next(cur));
1408 1439
1440 /* Insert illegal characters inside the format. */
1441 {
1442 const char *content;
1443 evas_object_textblock_text_markup_set(tb, "a\n");
1444 evas_textblock_cursor_pos_set(cur, 1);
1445 content = evas_textblock_cursor_content_get(cur);
1446
1447 evas_object_textblock_text_markup_set(tb, "a\t");
1448 evas_textblock_cursor_pos_set(cur, 1);
1449 content = evas_textblock_cursor_content_get(cur);
1450
1451 evas_object_textblock_text_markup_set(tb, "a\xEF\xBF\xBC");
1452 evas_textblock_cursor_pos_set(cur, 1);
1453 content = evas_textblock_cursor_content_get(cur);
1454
1455 evas_object_textblock_text_markup_set(tb, "a\xE2\x80\xA9");
1456 evas_textblock_cursor_pos_set(cur, 1);
1457 content = evas_textblock_cursor_content_get(cur);
1458 (void) content;
1459 }
1460
1409 /* FIXME: Also add text appending/prepending */ 1461 /* FIXME: Also add text appending/prepending */
1410 1462
1411 END_TB_TEST(); 1463 END_TB_TEST();
@@ -1416,13 +1468,13 @@ END_TEST
1416START_TEST(evas_textblock_text_getters) 1468START_TEST(evas_textblock_text_getters)
1417{ 1469{
1418 START_TB_TEST(); 1470 START_TB_TEST();
1419 const char *buf = "This is a <br> test.<ps>" 1471 const char *buf = "This is a <br/> test.<ps/>"
1420 "טקסט בעברית<ps>and now in english."; 1472 "טקסט בעברית<ps/>and now in english.";
1421 evas_object_textblock_text_markup_set(tb, buf); 1473 evas_object_textblock_text_markup_set(tb, buf);
1422 evas_textblock_cursor_paragraph_first(cur); 1474 evas_textblock_cursor_paragraph_first(cur);
1423 1475
1424 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), 1476 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur),
1425 "This is a <br> test.")); 1477 "This is a <br/> test."));
1426 1478
1427 evas_textblock_cursor_paragraph_next(cur); 1479 evas_textblock_cursor_paragraph_next(cur);
1428 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), 1480 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur),
@@ -1447,17 +1499,17 @@ START_TEST(evas_textblock_text_getters)
1447 evas_textblock_cursor_pos_set(main_cur, 5); 1499 evas_textblock_cursor_pos_set(main_cur, 5);
1448 evas_textblock_cursor_pos_set(cur, 14); 1500 evas_textblock_cursor_pos_set(cur, 14);
1449 fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur, 1501 fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur,
1450 EVAS_TEXTBLOCK_TEXT_MARKUP), "is a <br> te")); 1502 EVAS_TEXTBLOCK_TEXT_MARKUP), "is a <br/> te"));
1451 1503
1452 evas_textblock_cursor_pos_set(main_cur, 14); 1504 evas_textblock_cursor_pos_set(main_cur, 14);
1453 evas_textblock_cursor_pos_set(cur, 20); 1505 evas_textblock_cursor_pos_set(cur, 20);
1454 fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur, 1506 fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur,
1455 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps>טק")); 1507 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps/>טק"));
1456 1508
1457 evas_textblock_cursor_pos_set(main_cur, 14); 1509 evas_textblock_cursor_pos_set(main_cur, 14);
1458 evas_textblock_cursor_pos_set(cur, 32); 1510 evas_textblock_cursor_pos_set(cur, 32);
1459 fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur, 1511 fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur,
1460 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps>טקסט בעברית<ps>an")); 1512 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps/>טקסט בעברית<ps/>an"));
1461 1513
1462 /* Backward range get */ 1514 /* Backward range get */
1463 evas_textblock_cursor_pos_set(main_cur, 2); 1515 evas_textblock_cursor_pos_set(main_cur, 2);
@@ -1473,17 +1525,17 @@ START_TEST(evas_textblock_text_getters)
1473 evas_textblock_cursor_pos_set(main_cur, 5); 1525 evas_textblock_cursor_pos_set(main_cur, 5);
1474 evas_textblock_cursor_pos_set(cur, 14); 1526 evas_textblock_cursor_pos_set(cur, 14);
1475 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, 1527 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur,
1476 EVAS_TEXTBLOCK_TEXT_MARKUP), "is a <br> te")); 1528 EVAS_TEXTBLOCK_TEXT_MARKUP), "is a <br/> te"));
1477 1529
1478 evas_textblock_cursor_pos_set(main_cur, 14); 1530 evas_textblock_cursor_pos_set(main_cur, 14);
1479 evas_textblock_cursor_pos_set(cur, 20); 1531 evas_textblock_cursor_pos_set(cur, 20);
1480 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, 1532 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur,
1481 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps>טק")); 1533 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps/>טק"));
1482 1534
1483 evas_textblock_cursor_pos_set(main_cur, 14); 1535 evas_textblock_cursor_pos_set(main_cur, 14);
1484 evas_textblock_cursor_pos_set(cur, 32); 1536 evas_textblock_cursor_pos_set(cur, 32);
1485 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, 1537 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur,
1486 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps>טקסט בעברית<ps>an")); 1538 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps/>טקסט בעברית<ps/>an"));
1487 1539
1488 /* Uninit cursors and other weird cases */ 1540 /* Uninit cursors and other weird cases */
1489 evas_object_textblock_clear(tb); 1541 evas_object_textblock_clear(tb);
@@ -1492,6 +1544,97 @@ START_TEST(evas_textblock_text_getters)
1492 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, 1544 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur,
1493 EVAS_TEXTBLOCK_TEXT_MARKUP), "aaa")); 1545 EVAS_TEXTBLOCK_TEXT_MARKUP), "aaa"));
1494 1546
1547 /* Markup to plain and vice versa */
1548 {
1549 char *tmp, *tmp2;
1550
1551 /* Real textblock object */
1552 tmp = evas_textblock_text_markup_to_utf8(tb, "<br/>aa<\n/>bb<\t/>");
1553 fail_if(strcmp(tmp, "\naa\nbb\t"));
1554 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1555 fail_if(strcmp(tmp2, "<br/>aa<br/>bb<tab/>"));
1556 free(tmp2);
1557 free(tmp);
1558
1559 tmp = evas_textblock_text_markup_to_utf8(tb, "a<item></item>");
1560 fail_if(strcmp(tmp, "a\xEF\xBF\xBC"));
1561 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1562 fail_if(strcmp(tmp2, "a&#xfffc;"));
1563 free(tmp2);
1564 free(tmp);
1565
1566 tmp = evas_textblock_text_markup_to_utf8(tb, "a&nbsp;");
1567 fail_if(strcmp(tmp, "a\xC2\xA0"));
1568 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1569 fail_if(strcmp(tmp2, "a\xC2\xA0"));
1570 free(tmp2);
1571 free(tmp);
1572
1573 tmp = evas_textblock_text_markup_to_utf8(tb, "a<b>b</b><more></>a");
1574 fail_if(strcmp(tmp, "aba"));
1575 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1576 fail_if(strcmp(tmp2, "aba"));
1577 free(tmp2);
1578 free(tmp);
1579
1580 tmp = evas_textblock_text_markup_to_utf8(tb, "a&amp;a");
1581 fail_if(strcmp(tmp, "a&a"));
1582 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1583 fail_if(strcmp(tmp2, "a&amp;a"));
1584 free(tmp2);
1585 free(tmp);
1586
1587 tmp = evas_textblock_text_markup_to_utf8(tb, "a<newline/>a");
1588 fail_if(strcmp(tmp, "a\na"));
1589 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1590 fail_if(strcmp(tmp2, "a<br/>a"));
1591 free(tmp2);
1592 free(tmp);
1593
1594 /* NULL textblock object */
1595 tmp = evas_textblock_text_markup_to_utf8(NULL, "<br/>aa<\n/>bb<\t/>");
1596 fail_if(strcmp(tmp, "\naa\nbb\t"));
1597 tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp);
1598 fail_if(strcmp(tmp2, "<br/>aa<br/>bb<tab/>"));
1599 free(tmp2);
1600 free(tmp);
1601
1602 tmp = evas_textblock_text_markup_to_utf8(NULL, "a<item></item>");
1603 fail_if(strcmp(tmp, "a\xEF\xBF\xBC"));
1604 tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp);
1605 fail_if(strcmp(tmp2, "a&#xfffc;"));
1606 free(tmp2);
1607 free(tmp);
1608
1609 tmp = evas_textblock_text_markup_to_utf8(NULL, "a&nbsp;");
1610 fail_if(strcmp(tmp, "a\xC2\xA0"));
1611 tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp);
1612 fail_if(strcmp(tmp2, "a\xC2\xA0"));
1613 free(tmp2);
1614 free(tmp);
1615
1616 tmp = evas_textblock_text_markup_to_utf8(NULL, "a<b>b</b><more></>a");
1617 fail_if(strcmp(tmp, "aba"));
1618 tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp);
1619 fail_if(strcmp(tmp2, "aba"));
1620 free(tmp2);
1621 free(tmp);
1622
1623 tmp = evas_textblock_text_markup_to_utf8(tb, "a&amp;a");
1624 fail_if(strcmp(tmp, "a&a"));
1625 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1626 fail_if(strcmp(tmp2, "a&amp;a"));
1627 free(tmp2);
1628 free(tmp);
1629
1630 tmp = evas_textblock_text_markup_to_utf8(NULL, "a<newline/>a");
1631 fail_if(strcmp(tmp, "aa"));
1632 tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp);
1633 fail_if(strcmp(tmp2, "aa"));
1634 free(tmp2);
1635 free(tmp);
1636 }
1637
1495 END_TB_TEST(); 1638 END_TB_TEST();
1496} 1639}
1497END_TEST 1640END_TEST
@@ -1500,7 +1643,7 @@ END_TEST
1500START_TEST(evas_textblock_formats) 1643START_TEST(evas_textblock_formats)
1501{ 1644{
1502 START_TB_TEST(); 1645 START_TB_TEST();
1503 const char *buf = "Th<b>i<font_size=15 wrap=none>s i</font_size=13>s</> a <br> te<ps>st<item></>."; 1646 const char *buf = "Th<b>i<font_size=15 wrap=none>s i</font_size=13>s</> a <br/> te<ps/>st<item></>.";
1504 const Evas_Object_Textblock_Node_Format *fnode; 1647 const Evas_Object_Textblock_Node_Format *fnode;
1505 evas_object_textblock_text_markup_set(tb, buf); 1648 evas_object_textblock_text_markup_set(tb, buf);
1506 1649
@@ -1652,25 +1795,25 @@ START_TEST(evas_textblock_formats)
1652 * verify them visually, well, we can some of them. Possibly in the 1795 * verify them visually, well, we can some of them. Possibly in the
1653 * future we will */ 1796 * future we will */
1654 evas_object_textblock_text_markup_set(tb, 1797 evas_object_textblock_text_markup_set(tb,
1655 "<font_size=40>font_size=40</><ps>" 1798 "<font_size=40>font_size=40</><ps/>"
1656 "<color=#F210B3FF>color=#F210B3FF</><ps>" 1799 "<color=#F210B3FF>color=#F210B3FF</><ps/>"
1657 "<underline=single underline_color=#A2B3C4>underline=single underline_color=#A2B3C4</><ps>" 1800 "<underline=single underline_color=#A2B3C4>underline=single underline_color=#A2B3C4</><ps/>"
1658 "<underline=double underline_color=#F00 underline2_color=#00F>underline=double underline_color=#F00 underline2_color=#00F</><ps>" 1801 "<underline=double underline_color=#F00 underline2_color=#00F>underline=double underline_color=#F00 underline2_color=#00F</><ps/>"
1659 "<underline=dashed underline_dash_color=#0F0 underline_dash_width=2 underline_dash_gap=1>underline=dashed underline_dash_color=#0F0 underline_dash_width=2 underline_dash_gap=1</><ps>" 1802 "<underline=dashed underline_dash_color=#0F0 underline_dash_width=2 underline_dash_gap=1>underline=dashed underline_dash_color=#0F0 underline_dash_width=2 underline_dash_gap=1</><ps/>"
1660 "<style=outline outline_color=#F0FA>style=outline outline_color=#F0FA</><ps>" 1803 "<style=outline outline_color=#F0FA>style=outline outline_color=#F0FA</><ps/>"
1661 "<style=shadow shadow_color=#F0F>style=shadow shadow_color=#F0F</><ps>" 1804 "<style=shadow shadow_color=#F0F>style=shadow shadow_color=#F0F</><ps/>"
1662 "<style=glow glow_color=#BBB>style=glow glow_color=#BBB</><ps>" 1805 "<style=glow glow_color=#BBB>style=glow glow_color=#BBB</><ps/>"
1663 "<style=glow glow2_color=#0F0>style=glow glow2_color=#0F0</><ps>" 1806 "<style=glow glow2_color=#0F0>style=glow glow2_color=#0F0</><ps/>"
1664 "<style=glow color=#fff glow2_color=#fe87 glow_color=#f214>style=glow color=#fff glow2_color=#fe87 glow_color=#f214</><ps>" 1807 "<style=glow color=#fff glow2_color=#fe87 glow_color=#f214>style=glow color=#fff glow2_color=#fe87 glow_color=#f214</><ps/>"
1665 "<backing=on backing_color=#00F>backing=on backing_color=#00F</><ps>" 1808 "<backing=on backing_color=#00F>backing=on backing_color=#00F</><ps/>"
1666 "<strikethrough=on strikethrough_color=#FF0>strikethrough=on strikethrough_color=#FF0</><ps>" 1809 "<strikethrough=on strikethrough_color=#FF0>strikethrough=on strikethrough_color=#FF0</><ps/>"
1667 "<align=right>align=right</><ps>" 1810 "<align=right>align=right</><ps/>"
1668 "<backing=on backing_color=#F008 valign=0.0>valign=0.0</><ps>" 1811 "<backing=on backing_color=#F008 valign=0.0>valign=0.0</><ps/>"
1669 "<backing=on backing_color=#0F08 tabstops=50>tabstops=<\\t></>50</><ps>" 1812 "<backing=on backing_color=#0F08 tabstops=50>tabstops=<\\t></>50</><ps/>"
1670 "<backing=on backing_color=#00F8 linesize=40>linesize=40</><ps>" 1813 "<backing=on backing_color=#00F8 linesize=40>linesize=40</><ps/>"
1671 "<backing=on backing_color=#F0F8 linerelsize=200%>linerelsize=200%</><ps>" 1814 "<backing=on backing_color=#F0F8 linerelsize=200%>linerelsize=200%</><ps/>"
1672 "<backing=on backing_color=#0FF8 linegap=20>linegap=20</><ps>" 1815 "<backing=on backing_color=#0FF8 linegap=20>linegap=20</><ps/>"
1673 "<backing=on backing_color=#FF08 linerelgap=100%>linerelgap=100%</><ps>"); 1816 "<backing=on backing_color=#FF08 linerelgap=100%>linerelgap=100%</><ps/>");
1674 1817
1675 /* Force a relayout */ 1818 /* Force a relayout */
1676 evas_object_textblock_size_formatted_get(tb, NULL, NULL); 1819 evas_object_textblock_size_formatted_get(tb, NULL, NULL);
@@ -1714,22 +1857,22 @@ START_TEST(evas_textblock_formats)
1714 } 1857 }
1715 1858
1716 /* Make sure we get all the types of visible formats correctly. */ 1859 /* Make sure we get all the types of visible formats correctly. */
1717 evas_object_textblock_text_markup_set(tb, "<ps>a<br>a<tab>a<item></>"); 1860 evas_object_textblock_text_markup_set(tb, "<ps/>a<br/>a<tab/>a<item></>");
1718 fail_if(strcmp(evas_textblock_node_format_text_get( 1861 fail_if(strcmp(evas_textblock_node_format_text_get(
1719 evas_textblock_cursor_format_get(cur)), "ps")); 1862 evas_textblock_cursor_format_get(cur)), "ps"));
1720 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<ps>")); 1863 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<ps/>"));
1721 fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); 1864 fail_if(!evas_textblock_cursor_format_is_visible_get(cur));
1722 fail_if(!evas_textblock_cursor_char_next(cur)); 1865 fail_if(!evas_textblock_cursor_char_next(cur));
1723 fail_if(!evas_textblock_cursor_char_next(cur)); 1866 fail_if(!evas_textblock_cursor_char_next(cur));
1724 fail_if(strcmp(evas_textblock_node_format_text_get( 1867 fail_if(strcmp(evas_textblock_node_format_text_get(
1725 evas_textblock_cursor_format_get(cur)), "br")); 1868 evas_textblock_cursor_format_get(cur)), "br"));
1726 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<br>")); 1869 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<br/>"));
1727 fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); 1870 fail_if(!evas_textblock_cursor_format_is_visible_get(cur));
1728 fail_if(!evas_textblock_cursor_char_next(cur)); 1871 fail_if(!evas_textblock_cursor_char_next(cur));
1729 fail_if(!evas_textblock_cursor_char_next(cur)); 1872 fail_if(!evas_textblock_cursor_char_next(cur));
1730 fail_if(strcmp(evas_textblock_node_format_text_get( 1873 fail_if(strcmp(evas_textblock_node_format_text_get(
1731 evas_textblock_cursor_format_get(cur)), "tab")); 1874 evas_textblock_cursor_format_get(cur)), "tab"));
1732 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<tab>")); 1875 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<tab/>"));
1733 fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); 1876 fail_if(!evas_textblock_cursor_format_is_visible_get(cur));
1734 fail_if(!evas_textblock_cursor_char_next(cur)); 1877 fail_if(!evas_textblock_cursor_char_next(cur));
1735 fail_if(!evas_textblock_cursor_char_next(cur)); 1878 fail_if(!evas_textblock_cursor_char_next(cur));
@@ -1749,7 +1892,7 @@ START_TEST(evas_textblock_style)
1749 Evas_Coord l, r, t, b; 1892 Evas_Coord l, r, t, b;
1750 START_TB_TEST(); 1893 START_TB_TEST();
1751 Evas_Textblock_Style *newst; 1894 Evas_Textblock_Style *newst;
1752 const char *buf = "Test<ps>Test2<ps>נסיון"; 1895 const char *buf = "Test<ps/>Test2<ps/>נסיון";
1753 evas_object_textblock_text_markup_set(tb, buf); 1896 evas_object_textblock_text_markup_set(tb, buf);
1754 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); 1897 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf));
1755 1898
@@ -1850,7 +1993,7 @@ START_TEST(evas_textblock_set_get)
1850 fail_if(strcmp(evas_object_textblock_bidi_delimiters_get(tb), ",|")); 1993 fail_if(strcmp(evas_object_textblock_bidi_delimiters_get(tb), ",|"));
1851 1994
1852 /* Hinting */ 1995 /* Hinting */
1853 evas_object_textblock_text_markup_set(tb, "This is<ps>a test<br>bla"); 1996 evas_object_textblock_text_markup_set(tb, "This is<ps/>a test<br/>bla");
1854 /* Force relayout */ 1997 /* Force relayout */
1855 evas_object_textblock_size_formatted_get(tb, NULL, NULL); 1998 evas_object_textblock_size_formatted_get(tb, NULL, NULL);
1856 evas_font_hinting_set(evas, EVAS_FONT_HINTING_NONE); 1999 evas_font_hinting_set(evas, EVAS_FONT_HINTING_NONE);
@@ -1923,7 +2066,7 @@ START_TEST(evas_textblock_size)
1923{ 2066{
1924 START_TB_TEST(); 2067 START_TB_TEST();
1925 Evas_Coord w, h, h2, nw, nh; 2068 Evas_Coord w, h, h2, nw, nh;
1926 const char *buf = "This is a <br> test.<br>גם בעברית"; 2069 const char *buf = "This is a <br/> test.<br/>גם בעברית";
1927 /* When wrapping is off, native size should be the same as formatted 2070 /* When wrapping is off, native size should be the same as formatted
1928 * size */ 2071 * size */
1929 2072
@@ -1932,7 +2075,7 @@ START_TEST(evas_textblock_size)
1932 fail_if((w != nw) || (h != nh)); 2075 fail_if((w != nw) || (h != nh));
1933 fail_if(w != 0); 2076 fail_if(w != 0);
1934 2077
1935 evas_object_textblock_text_markup_set(tb, "a<br>a"); 2078 evas_object_textblock_text_markup_set(tb, "a<br/>a");
1936 evas_object_textblock_size_formatted_get(tb, &w, &h2); 2079 evas_object_textblock_size_formatted_get(tb, &w, &h2);
1937 evas_object_textblock_size_native_get(tb, &nw, &nh); 2080 evas_object_textblock_size_native_get(tb, &nw, &nh);
1938 fail_if((w != nw) || (h2 != nh)); 2081 fail_if((w != nw) || (h2 != nh));