summaryrefslogtreecommitdiff
path: root/legacy/evas
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2012-11-13 23:52:18 +0000
committerCarsten Haitzler <raster@rasterman.com>2012-11-13 23:52:18 +0000
commitcd926b304dc8f072d99d55f90ef4bd6ad9d3a62f (patch)
treeab108ceeb5d9b72e9998c7e5c58d7ba3aaeed5e7 /legacy/evas
parent30965869f0e3aaea6adb2765e98a6797e9f03749 (diff)
move libs already in EFL into... IN-EFL - this will stop/prevent/limit
thnigs like people using them and patching them, etc. SVN revision: 79255
Diffstat (limited to '')
-rw-r--r--legacy/evas/.gitignore71
-rw-r--r--legacy/evas/AUTHORS44
-rw-r--r--legacy/evas/COPYING25
-rw-r--r--legacy/evas/INSTALL236
-rw-r--r--legacy/evas/Makefile.am167
-rwxr-xr-xlegacy/evas/autogen.sh38
-rw-r--r--legacy/evas/configure.ac1461
-rw-r--r--legacy/evas/data/Makefile.am6
-rw-r--r--legacy/evas/doc/Doxyfile.in136
-rw-r--r--legacy/evas/doc/Makefile.am41
-rw-r--r--legacy/evas/doc/e.css273
-rw-r--r--legacy/evas/doc/evas.dox.in0
-rw-r--r--legacy/evas/doc/examples.dox1073
-rw-r--r--legacy/evas/doc/foot.html20
-rw-r--r--legacy/evas/doc/head.html70
-rw-r--r--legacy/evas/doc/img/alignment-hints.eps5688
-rw-r--r--legacy/evas/doc/img/alignment-hints.pngbin10254 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/any-policy.eps5683
-rw-r--r--legacy/evas/doc/img/any-policy.pngbin7563 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/aspect-control-both.eps5712
-rw-r--r--legacy/evas/doc/img/aspect-control-both.pngbin12503 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/aspect-control-horizontal.eps5712
-rw-r--r--legacy/evas/doc/img/aspect-control-horizontal.pngbin12644 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/aspect-control-none-neither.eps5714
-rw-r--r--legacy/evas/doc/img/aspect-control-none-neither.pngbin16217 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/border-effect.eps6040
-rw-r--r--legacy/evas/doc/img/border-effect.pngbin17970 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/clipping.eps2339
-rw-r--r--legacy/evas/doc/img/clipping.pngbin161778 -> 0 bytes
-rwxr-xr-xlegacy/evas/doc/img/e.pngbin30052 -> 0 bytes
-rwxr-xr-xlegacy/evas/doc/img/e_big.pngbin30052 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/edoxy.css486
-rw-r--r--legacy/evas/doc/img/evas-box-example-00.eps23909
-rw-r--r--legacy/evas/doc/img/evas-box-example-00.pngbin2627 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-box-example-01.eps17678
-rw-r--r--legacy/evas/doc/img/evas-box-example-01.pngbin2241 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-box-example-02.eps29334
-rw-r--r--legacy/evas/doc/img/evas-box-example-02.pngbin3056 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-box-example-03.eps28345
-rw-r--r--legacy/evas/doc/img/evas-box-example-03.pngbin3159 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-box-example-04.eps9223
-rw-r--r--legacy/evas/doc/img/evas-box-example-04.pngbin1559 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-box-example-05.eps20919
-rw-r--r--legacy/evas/doc/img/evas-box-example-05.pngbin2552 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-callbacks.eps5799
-rw-r--r--legacy/evas/doc/img/evas-callbacks.pngbin29770 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-00.eps8155
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-00.pngbin1318 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-01.eps8155
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-01.pngbin1317 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-02.eps8155
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-02.pngbin1313 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-03.eps8155
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-03.pngbin1311 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-04.eps8155
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-04.pngbin1317 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-05.eps3124
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-05.pngbin1172 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-06.eps8155
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-06.pngbin1224 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-07.eps8155
-rw-r--r--legacy/evas/doc/img/evas-stacking-example-07.pngbin1311 -> 0 bytes
-rwxr-xr-xlegacy/evas/doc/img/foot_bg.pngbin173 -> 0 bytes
-rwxr-xr-xlegacy/evas/doc/img/head_bg.pngbin214 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/header_menu_background.pngbin192 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/header_menu_background_last.pngbin637 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/header_menu_current_background.pngbin1200 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/header_menu_unselected_background.pngbin1596 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/image-borders.eps6544
-rw-r--r--legacy/evas/doc/img/image-borders.pngbin13947 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/image-fill.eps5725
-rw-r--r--legacy/evas/doc/img/image-fill.pngbin15367 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/logo.pngbin3825 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-3d-basic-1.eps9620
-rw-r--r--legacy/evas/doc/img/map-3d-basic-1.pngbin1142 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-3d-basic-2.eps9620
-rw-r--r--legacy/evas/doc/img/map-3d-basic-2.pngbin6238 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-3d-basic-3.eps9620
-rw-r--r--legacy/evas/doc/img/map-3d-basic-3.pngbin1418 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-light.eps917
-rw-r--r--legacy/evas/doc/img/map-light.pngbin1226 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-light2.eps337
-rw-r--r--legacy/evas/doc/img/map-light2.pngbin708 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-light3.eps759
-rw-r--r--legacy/evas/doc/img/map-light3.pngbin407 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-light4.eps337
-rw-r--r--legacy/evas/doc/img/map-light4.pngbin407 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-light5.eps883
-rw-r--r--legacy/evas/doc/img/map-light5.pngbin2420 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-light6.eps917
-rw-r--r--legacy/evas/doc/img/map-light6.pngbin2551 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-light7.eps1605
-rw-r--r--legacy/evas/doc/img/map-light7.pngbin3532 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-light8.eps770
-rw-r--r--legacy/evas/doc/img/map-light8.pngbin407 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-point-order-back.eps529
-rw-r--r--legacy/evas/doc/img/map-point-order-back.pngbin5108 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-point-order-face.eps529
-rw-r--r--legacy/evas/doc/img/map-point-order-face.pngbin5293 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-rotation-2d-1.eps5698
-rw-r--r--legacy/evas/doc/img/map-rotation-2d-1.pngbin880 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-rotation-2d-2.eps5698
-rw-r--r--legacy/evas/doc/img/map-rotation-2d-2.pngbin5663 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-rotation-2d-3.eps5698
-rw-r--r--legacy/evas/doc/img/map-rotation-2d-3.pngbin5534 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-rotation-2d-4.eps5698
-rw-r--r--legacy/evas/doc/img/map-rotation-2d-4.pngbin5518 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-set-map-points-1.eps12036
-rw-r--r--legacy/evas/doc/img/map-set-map-points-1.pngbin33918 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-set-map-points-2.eps12036
-rw-r--r--legacy/evas/doc/img/map-set-map-points-2.pngbin37189 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-set-map-points-3.eps12036
-rw-r--r--legacy/evas/doc/img/map-set-map-points-3.pngbin37944 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-uv-mapping-1.eps13405
-rw-r--r--legacy/evas/doc/img/map-uv-mapping-1.pngbin80939 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-uv-mapping-2.eps13405
-rw-r--r--legacy/evas/doc/img/map-uv-mapping-2.pngbin65533 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-uv-mapping-3.eps13405
-rw-r--r--legacy/evas/doc/img/map-uv-mapping-3.pngbin59265 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/map-uv-mapping-4.eps13405
-rw-r--r--legacy/evas/doc/img/map-uv-mapping-4.pngbin78360 -> 0 bytes
-rwxr-xr-xlegacy/evas/doc/img/menu_bg.pngbin192 -> 0 bytes
-rwxr-xr-xlegacy/evas/doc/img/menu_bg_current.pngbin1200 -> 0 bytes
-rwxr-xr-xlegacy/evas/doc/img/menu_bg_hover.pngbin3278 -> 0 bytes
-rwxr-xr-xlegacy/evas/doc/img/menu_bg_last.pngbin637 -> 0 bytes
-rwxr-xr-xlegacy/evas/doc/img/menu_bg_unsel.pngbin1596 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/padding-hints.eps5762
-rw-r--r--legacy/evas/doc/img/padding-hints.pngbin7919 -> 0 bytes
-rw-r--r--legacy/evas/doc/img/text-styles.eps3435
-rw-r--r--legacy/evas/doc/img/text-styles.pngbin205868 -> 0 bytes
-rw-r--r--legacy/evas/evas.spec.in573
-rw-r--r--legacy/evas/m4/efl_attribute.m4107
-rw-r--r--legacy/evas/m4/efl_coverage.m462
-rw-r--r--legacy/evas/m4/efl_doxygen.m497
-rw-r--r--legacy/evas/m4/efl_fnmatch.m431
-rw-r--r--legacy/evas/m4/efl_path_max.m436
-rw-r--r--legacy/evas/m4/efl_pthread.m4130
-rw-r--r--legacy/evas/m4/efl_shm_open.m470
-rw-r--r--legacy/evas/m4/efl_tests.m446
-rw-r--r--legacy/evas/m4/evas_check_loader.m4232
-rw-r--r--legacy/evas/src/Makefile.am3
-rw-r--r--legacy/evas/src/bin/Makefile.am75
-rw-r--r--legacy/evas/src/bin/loaders/Makefile.am51
-rw-r--r--legacy/evas/src/bin/loaders/bmp/Makefile.am32
-rw-r--r--legacy/evas/src/bin/loaders/eet/Makefile.am34
-rw-r--r--legacy/evas/src/bin/loaders/ico/Makefile.am32
-rw-r--r--legacy/evas/src/bin/loaders/jpeg/Makefile.am33
-rw-r--r--legacy/evas/src/bin/loaders/pmaps/Makefile.am33
-rw-r--r--legacy/evas/src/bin/loaders/png/Makefile.am33
-rw-r--r--legacy/evas/src/bin/loaders/psd/Makefile.am32
-rw-r--r--legacy/evas/src/bin/loaders/tga/Makefile.am32
-rw-r--r--legacy/evas/src/bin/loaders/tiff/Makefile.am34
-rw-r--r--legacy/evas/src/bin/loaders/wbmp/Makefile.am32
-rw-r--r--legacy/evas/src/bin/loaders/webp/Makefile.am34
-rw-r--r--legacy/evas/src/bin/loaders/xpm/Makefile.am34
-rw-r--r--legacy/evas/src/examples/Makefile.am160
-rw-r--r--legacy/evas/src/examples/aspect.edc17
-rw-r--r--legacy/evas/src/examples/cube1.pngbin183167 -> 0 bytes
-rw-r--r--legacy/evas/src/examples/enlightenment.pngbin17541 -> 0 bytes
-rw-r--r--legacy/evas/src/examples/evas-aspect-hints.c249
-rw-r--r--legacy/evas/src/examples/evas-box.c382
-rw-r--r--legacy/evas/src/examples/evas-buffer-simple.c228
-rw-r--r--legacy/evas/src/examples/evas-events.c413
-rw-r--r--legacy/evas/src/examples/evas-hints.c378
-rw-r--r--legacy/evas/src/examples/evas-images.c353
-rw-r--r--legacy/evas/src/examples/evas-images2.c311
-rw-r--r--legacy/evas/src/examples/evas-images3.c196
-rw-r--r--legacy/evas/src/examples/evas-init-shutdown.c56
-rw-r--r--legacy/evas/src/examples/evas-map-utils.c321
-rw-r--r--legacy/evas/src/examples/evas-object-manipulation.c235
-rw-r--r--legacy/evas/src/examples/evas-smart-interface.c790
-rw-r--r--legacy/evas/src/examples/evas-smart-object.c756
-rw-r--r--legacy/evas/src/examples/evas-stacking.c329
-rw-r--r--legacy/evas/src/examples/evas-table.c120
-rw-r--r--legacy/evas/src/examples/evas-text.c411
-rw-r--r--legacy/evas/src/examples/im1.pngbin467518 -> 0 bytes
-rw-r--r--legacy/evas/src/examples/red.pngbin225 -> 0 bytes
-rw-r--r--legacy/evas/src/lib/Makefile.am213
-rw-r--r--legacy/evas/src/lib/cache/Makefile.am21
-rw-r--r--legacy/evas/src/lib/cache2/Makefile.am27
-rw-r--r--legacy/evas/src/lib/canvas/Makefile.am67
-rw-r--r--legacy/evas/src/lib/cserve2/Makefile.am31
-rw-r--r--legacy/evas/src/lib/engines/Makefile.am3
-rw-r--r--legacy/evas/src/lib/engines/common/Makefile.am111
-rw-r--r--legacy/evas/src/lib/engines/common/evas_convert_gry_1.c6
-rw-r--r--legacy/evas/src/lib/engines/common/evas_op_add/Makefile.am13
-rw-r--r--legacy/evas/src/lib/engines/common/evas_op_blend/Makefile.am46
-rw-r--r--legacy/evas/src/lib/engines/common/evas_op_copy/Makefile.am18
-rw-r--r--legacy/evas/src/lib/engines/common/evas_op_mask/Makefile.am13
-rw-r--r--legacy/evas/src/lib/engines/common/evas_op_mul/Makefile.am13
-rw-r--r--legacy/evas/src/lib/engines/common/evas_op_sub/Makefile.am14
-rw-r--r--legacy/evas/src/lib/file/Makefile.am25
-rw-r--r--legacy/evas/src/lib/include/Makefile.am13
-rw-r--r--legacy/evas/src/lib/include/evas_common_soft16.h100
-rw-r--r--legacy/evas/src/lib/include/evas_common_soft8.h184
-rw-r--r--legacy/evas/src/modules/Makefile.am3
-rw-r--r--legacy/evas/src/modules/engines/Makefile.am52
-rw-r--r--legacy/evas/src/modules/engines/buffer/Makefile.am44
-rw-r--r--legacy/evas/src/modules/engines/direct3d/Makefile.am72
-rw-r--r--legacy/evas/src/modules/engines/directfb/Makefile.am45
-rw-r--r--legacy/evas/src/modules/engines/fb/Makefile.am49
-rw-r--r--legacy/evas/src/modules/engines/gl_cocoa/Makefile.am47
-rw-r--r--legacy/evas/src/modules/engines/gl_common/Makefile.am145
-rw-r--r--legacy/evas/src/modules/engines/gl_sdl/Makefile.am47
-rw-r--r--legacy/evas/src/modules/engines/gl_x11/Makefile.am48
-rw-r--r--legacy/evas/src/modules/engines/psl1ght/Makefile.am48
-rw-r--r--legacy/evas/src/modules/engines/software_ddraw/Makefile.am49
-rw-r--r--legacy/evas/src/modules/engines/software_gdi/Makefile.am48
-rw-r--r--legacy/evas/src/modules/engines/software_generic/Makefile.am35
-rw-r--r--legacy/evas/src/modules/engines/software_x11/Makefile.am91
-rw-r--r--legacy/evas/src/modules/engines/wayland_egl/Makefile.am48
-rw-r--r--legacy/evas/src/modules/engines/wayland_shm/Makefile.am48
-rw-r--r--legacy/evas/src/modules/loaders/Makefile.am93
-rw-r--r--legacy/evas/src/modules/loaders/bmp/Makefile.am33
-rw-r--r--legacy/evas/src/modules/loaders/eet/Makefile.am35
-rw-r--r--legacy/evas/src/modules/loaders/generic/Makefile.am36
-rw-r--r--legacy/evas/src/modules/loaders/gif/Makefile.am34
-rw-r--r--legacy/evas/src/modules/loaders/ico/Makefile.am33
-rw-r--r--legacy/evas/src/modules/loaders/jpeg/Makefile.am34
-rw-r--r--legacy/evas/src/modules/loaders/pmaps/Makefile.am34
-rw-r--r--legacy/evas/src/modules/loaders/png/Makefile.am34
-rw-r--r--legacy/evas/src/modules/loaders/psd/Makefile.am33
-rw-r--r--legacy/evas/src/modules/loaders/svg/Makefile.am34
-rw-r--r--legacy/evas/src/modules/loaders/tga/Makefile.am33
-rw-r--r--legacy/evas/src/modules/loaders/tiff/Makefile.am35
-rw-r--r--legacy/evas/src/modules/loaders/wbmp/Makefile.am33
-rw-r--r--legacy/evas/src/modules/loaders/webp/Makefile.am36
-rw-r--r--legacy/evas/src/modules/loaders/xpm/Makefile.am35
-rw-r--r--legacy/evas/src/modules/savers/Makefile.am27
-rw-r--r--legacy/evas/src/modules/savers/eet/Makefile.am34
-rw-r--r--legacy/evas/src/modules/savers/jpeg/Makefile.am33
-rw-r--r--legacy/evas/src/modules/savers/png/Makefile.am35
-rw-r--r--legacy/evas/src/modules/savers/tiff/Makefile.am34
-rw-r--r--legacy/evas/src/static_deps/Makefile.am3
-rw-r--r--legacy/evas/src/static_deps/liblinebreak/Makefile.am20
-rw-r--r--legacy/evas/src/tests/Makefile.am29
-rw-r--r--legacy/evas/src/tests/evas_suite.c106
-rw-r--r--legacy/evas/src/tests/evas_suite.h12
-rw-r--r--legacy/evas/src/tests/evas_test_callbacks.c135
-rw-r--r--legacy/evas/src/tests/evas_test_init.c19
-rw-r--r--legacy/evas/src/tests/evas_test_text.c493
-rw-r--r--legacy/evas/src/tests/evas_test_textblock.c2219
-rw-r--r--legacy/evas/src/tests/evas_tests_helpers.h40
243 files changed, 0 insertions, 420174 deletions
diff --git a/legacy/evas/.gitignore b/legacy/evas/.gitignore
deleted file mode 100644
index 542535ff87..0000000000
--- a/legacy/evas/.gitignore
+++ /dev/null
@@ -1,71 +0,0 @@
1*~
2*.o
3*.lo
4*.la
5.libs
6.deps
7*.pc
8Makefile
9Makefile.in
10*.so
11*.sw[po]
12/README
13/aclocal.m4
14/autom4te.cache/
15/config.cache
16/config.guess
17/config.h
18/config.h.in
19/config.log
20/config.status
21/config.sub
22/configure
23/depcomp
24/doc/evas.dox
25/evas.spec
26/install-sh
27/libtool
28/ltmain.sh
29/missing
30/stamp-h1
31tags
32cscope.*
33/config.cache
34/ABOUT-NLS
35/config.cache-env
36doc/Doxyfile
37m4/libtool.m4
38m4/ltoptions.m4
39m4/ltsugar.m4
40m4/ltversion.m4
41m4/lt~obsolete.m4
42src/bin/evas_cserve
43src/bin/evas_cserve_tool
44src/bin/evas_cserve2
45src/bin/evas_cserve2_slave
46src/bin/evas_cserve2_debug
47src/bin/evas_cserve2_client
48src/bin/evas_cserve2_usage
49src/bin/dummy_slave
50*.gcno
51*.gcov
52src/tests/evas_suite
53coverage
54src/examples/aspect.edj
55src/examples/evas-smart-object
56src/examples/evas-stacking
57src/examples/evas_aspect_hints
58src/examples/evas_box
59src/examples/evas_buffer_simple
60src/examples/evas_events
61src/examples/evas_hints
62src/examples/evas_images
63src/examples/evas_images2
64src/examples/evas_images3
65src/examples/evas_init_shutdown
66src/examples/evas_map_utils
67src/examples/evas_object_manipulation
68src/examples/evas_smart_object
69src/examples/evas_stacking
70src/examples/evas_text
71
diff --git a/legacy/evas/AUTHORS b/legacy/evas/AUTHORS
deleted file mode 100644
index 11e948c511..0000000000
--- a/legacy/evas/AUTHORS
+++ /dev/null
@@ -1,44 +0,0 @@
1Carsten Haitzler <raster@rasterman.com>
2Till Adam <till@adam-lilienthal.de>
3Steve Ireland <sireland@pobox.com>
4Brett Nash <nash@fluffyspider.com.au>
5Tilman Sauerbeck <tilman@code-monkey.de>
6Corey Donohoe <atmos@atmos.org>
7Yuri Hudobin <glassy_ape@users.sourceforge.net>
8Nathan Ingersoll <ningerso@d.umn.edu>
9Willem Monsuwe <willem@stack.nl>
10Jose O Gonzalez <jose_ogp@juno.com>
11Bernhard Nemec <Bernhard.Nemec@viasyshc.com>
12Jorge Luis Zapata Muga <jorgeluis.zapata@gmail.com>
13Cedric Bail <cedric.bail@free.fr>
14Gustavo Sverzut Barbieri <barbieri@gmail.com>
15Vincent Torri <vtorri at univ-evry dot fr>
16Tim Horton <hortont424@gmail.com>
17Tom Hacohen <tom@stosb.com>
18Mathieu Taillefumier <mathieu.taillefumier@free.fr>
19Iván Briano <ivan@profusion.mobi>
20Gustavo Lima Chaves <glima@profusion.mobi>
21Samsung Electronics
22Samsung SAIT
23Sung W. Park <sungwoo@gmail.com>
24Jiyoun Park <jy0703.park@samsung.com>
25Myoungwoon Roy Kim(roy_kim) <myoungwoon.kim@samsung.com> <myoungwoon@gmail.com>
26Thierry el Borgi <thierry@substantiel.fr>
27Shilpa Singh <shilpa.singh@samsung.com> <shilpasingh.o@gmail.com>
28ChunEon Park <hermet@hermet.pe.kr>
29Christopher 'devilhorns' Michael <cpmichael1@comcast.net>
30Seungsoo Woo <om101.woo@samsung.com>
31Youness Alaoui <kakaroto@kakaroto.homelinux.net>
32Jim Kukunas <james.t.kukunas@linux.intel.com>
33Nicolas Aguirre <aguirre.nicolas@gmail.com>
34Rafal Krypa <r.krypa@samsung.com>
35Hyoyoung Chang <hyoyoung@gmail.com>
36Jérôme Pinot <ngc891@gmail.com>
37Rafael Antognolli <antognolli@profusion.mobi>
38Daniel Zaoui <daniel.zaoui@samsung.com>
39Christophe Sadoine <chris@indefini.org>
40Igor Murzov <e-mail@date.by>
41Sohyun Kim <anna1014.kim@samsung.com>
42Boris Faure <billiob@gmail.com>
43Eduardo Lima (Etrunko) <eblima@gmail.com>
44Leandro Dorileo (dorileo) <dorileo@profusion.mobi>
diff --git a/legacy/evas/COPYING b/legacy/evas/COPYING
deleted file mode 100644
index 8ba768812c..0000000000
--- a/legacy/evas/COPYING
+++ /dev/null
@@ -1,25 +0,0 @@
1Copyright notice for Evas:
2
3Copyright (C) 2000-2011 Carsten Haitzler and various contributors (see AUTHORS)
4
5All rights reserved.
6
7Redistribution and use in source and binary forms, with or without
8modification, are permitted provided that the following conditions are met:
9
10 1. Redistributions of source code must retain the above copyright
11 notice, this list of conditions and the following disclaimer.
12 2. Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
15
16THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
17INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
18FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
22OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/legacy/evas/INSTALL b/legacy/evas/INSTALL
deleted file mode 100644
index 23e5f25d0e..0000000000
--- a/legacy/evas/INSTALL
+++ /dev/null
@@ -1,236 +0,0 @@
1Installation Instructions
2*************************
3
4Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
5Software Foundation, Inc.
6
7This file is free documentation; the Free Software Foundation gives
8unlimited permission to copy, distribute and modify it.
9
10Basic Installation
11==================
12
13These are generic installation instructions.
14
15 The `configure' shell script attempts to guess correct values for
16various system-dependent variables used during compilation. It uses
17those values to create a `Makefile' in each directory of the package.
18It may also create one or more `.h' files containing system-dependent
19definitions. Finally, it creates a shell script `config.status' that
20you can run in the future to recreate the current configuration, and a
21file `config.log' containing compiler output (useful mainly for
22debugging `configure').
23
24 It can also use an optional file (typically called `config.cache'
25and enabled with `--cache-file=config.cache' or simply `-C') that saves
26the results of its tests to speed up reconfiguring. (Caching is
27disabled by default to prevent problems with accidental use of stale
28cache files.)
29
30 If you need to do unusual things to compile the package, please try
31to figure out how `configure' could check whether to do them, and mail
32diffs or instructions to the address given in the `README' so they can
33be considered for the next release. If you are using the cache, and at
34some point `config.cache' contains results you don't want to keep, you
35may remove or edit it.
36
37 The file `configure.ac' (or `configure.in') is used to create
38`configure' by a program called `autoconf'. You only need
39`configure.ac' if you want to change it or regenerate `configure' using
40a newer version of `autoconf'.
41
42The simplest way to compile this package is:
43
44 1. `cd' to the directory containing the package's source code and type
45 `./configure' to configure the package for your system. If you're
46 using `csh' on an old version of System V, you might need to type
47 `sh ./configure' instead to prevent `csh' from trying to execute
48 `configure' itself.
49
50 Running `configure' takes awhile. While running, it prints some
51 messages telling which features it is checking for.
52
53 2. Type `make' to compile the package.
54
55 3. Optionally, type `make check' to run any self-tests that come with
56 the package.
57
58 4. Type `make install' to install the programs and any data files and
59 documentation.
60
61 5. You can remove the program binaries and object files from the
62 source code directory by typing `make clean'. To also remove the
63 files that `configure' created (so you can compile the package for
64 a different kind of computer), type `make distclean'. There is
65 also a `make maintainer-clean' target, but that is intended mainly
66 for the package's developers. If you use it, you may have to get
67 all sorts of other programs in order to regenerate files that came
68 with the distribution.
69
70Compilers and Options
71=====================
72
73Some systems require unusual options for compilation or linking that the
74`configure' script does not know about. Run `./configure --help' for
75details on some of the pertinent environment variables.
76
77 You can give `configure' initial values for configuration parameters
78by setting variables in the command line or in the environment. Here
79is an example:
80
81 ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
82
83 *Note Defining Variables::, for more details.
84
85Compiling For Multiple Architectures
86====================================
87
88You can compile the package for more than one kind of computer at the
89same time, by placing the object files for each architecture in their
90own directory. To do this, you must use a version of `make' that
91supports the `VPATH' variable, such as GNU `make'. `cd' to the
92directory where you want the object files and executables to go and run
93the `configure' script. `configure' automatically checks for the
94source code in the directory that `configure' is in and in `..'.
95
96 If you have to use a `make' that does not support the `VPATH'
97variable, you have to compile the package for one architecture at a
98time in the source code directory. After you have installed the
99package for one architecture, use `make distclean' before reconfiguring
100for another architecture.
101
102Installation Names
103==================
104
105By default, `make install' installs the package's commands under
106`/usr/local/bin', include files under `/usr/local/include', etc. You
107can specify an installation prefix other than `/usr/local' by giving
108`configure' the option `--prefix=PREFIX'.
109
110 You can specify separate installation prefixes for
111architecture-specific files and architecture-independent files. If you
112pass the option `--exec-prefix=PREFIX' to `configure', the package uses
113PREFIX as the prefix for installing programs and libraries.
114Documentation and other data files still use the regular prefix.
115
116 In addition, if you use an unusual directory layout you can give
117options like `--bindir=DIR' to specify different values for particular
118kinds of files. Run `configure --help' for a list of the directories
119you can set and what kinds of files go in them.
120
121 If the package supports it, you can cause programs to be installed
122with an extra prefix or suffix on their names by giving `configure' the
123option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
124
125Optional Features
126=================
127
128Some packages pay attention to `--enable-FEATURE' options to
129`configure', where FEATURE indicates an optional part of the package.
130They may also pay attention to `--with-PACKAGE' options, where PACKAGE
131is something like `gnu-as' or `x' (for the X Window System). The
132`README' should mention any `--enable-' and `--with-' options that the
133package recognizes.
134
135 For packages that use the X Window System, `configure' can usually
136find the X include and library files automatically, but if it doesn't,
137you can use the `configure' options `--x-includes=DIR' and
138`--x-libraries=DIR' to specify their locations.
139
140Specifying the System Type
141==========================
142
143There may be some features `configure' cannot figure out automatically,
144but needs to determine by the type of machine the package will run on.
145Usually, assuming the package is built to be run on the _same_
146architectures, `configure' can figure that out, but if it prints a
147message saying it cannot guess the machine type, give it the
148`--build=TYPE' option. TYPE can either be a short name for the system
149type, such as `sun4', or a canonical name which has the form:
150
151 CPU-COMPANY-SYSTEM
152
153where SYSTEM can have one of these forms:
154
155 OS KERNEL-OS
156
157 See the file `config.sub' for the possible values of each field. If
158`config.sub' isn't included in this package, then this package doesn't
159need to know the machine type.
160
161 If you are _building_ compiler tools for cross-compiling, you should
162use the option `--target=TYPE' to select the type of system they will
163produce code for.
164
165 If you want to _use_ a cross compiler, that generates code for a
166platform different from the build platform, you should specify the
167"host" platform (i.e., that on which the generated programs will
168eventually be run) with `--host=TYPE'.
169
170Sharing Defaults
171================
172
173If you want to set default values for `configure' scripts to share, you
174can create a site shell script called `config.site' that gives default
175values for variables like `CC', `cache_file', and `prefix'.
176`configure' looks for `PREFIX/share/config.site' if it exists, then
177`PREFIX/etc/config.site' if it exists. Or, you can set the
178`CONFIG_SITE' environment variable to the location of the site script.
179A warning: not all `configure' scripts look for a site script.
180
181Defining Variables
182==================
183
184Variables not defined in a site shell script can be set in the
185environment passed to `configure'. However, some packages may run
186configure again during the build, and the customized values of these
187variables may be lost. In order to avoid this problem, you should set
188them in the `configure' command line, using `VAR=value'. For example:
189
190 ./configure CC=/usr/local2/bin/gcc
191
192causes the specified `gcc' to be used as the C compiler (unless it is
193overridden in the site shell script). Here is a another example:
194
195 /bin/bash ./configure CONFIG_SHELL=/bin/bash
196
197Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
198configuration-related scripts to be executed by `/bin/bash'.
199
200`configure' Invocation
201======================
202
203`configure' recognizes the following options to control how it operates.
204
205`--help'
206`-h'
207 Print a summary of the options to `configure', and exit.
208
209`--version'
210`-V'
211 Print the version of Autoconf used to generate the `configure'
212 script, and exit.
213
214`--cache-file=FILE'
215 Enable the cache: use and save the results of the tests in FILE,
216 traditionally `config.cache'. FILE defaults to `/dev/null' to
217 disable caching.
218
219`--config-cache'
220`-C'
221 Alias for `--cache-file=config.cache'.
222
223`--quiet'
224`--silent'
225`-q'
226 Do not print messages saying which checks are being made. To
227 suppress all normal output, redirect it to `/dev/null' (any error
228 messages will still be shown).
229
230`--srcdir=DIR'
231 Look for the package's source code in directory DIR. Usually
232 `configure' can determine that directory automatically.
233
234`configure' also accepts some other, not widely useful, options. Run
235`configure --help' for more details.
236
diff --git a/legacy/evas/Makefile.am b/legacy/evas/Makefile.am
deleted file mode 100644
index 85f34c4280..0000000000
--- a/legacy/evas/Makefile.am
+++ /dev/null
@@ -1,167 +0,0 @@
1ACLOCAL_AMFLAGS = -I m4
2
3SUBDIRS = src doc data
4
5MAINTAINERCLEANFILES = \
6Makefile.in \
7aclocal.m4 \
8config.cache-env \
9config.guess \
10config.h.in \
11config.h.in~ \
12config.sub \
13configure \
14depcomp \
15install-sh \
16ltmain.sh \
17missing \
18$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \
19$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2 \
20$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc.tar.bz2 \
21m4/libtool.m4 \
22m4/lt~obsolete.m4 \
23m4/ltoptions.m4 \
24m4/ltsugar.m4 \
25m4/ltversion.m4
26
27bin_SCRIPTS =
28
29EXTRA_DIST = \
30AUTHORS \
31COPYING \
32autogen.sh \
33evas.pc.in \
34evas-directfb.pc.in \
35evas-fb.pc.in \
36evas-opengl-x11.pc.in \
37evas-opengl-sdl.pc.in \
38evas-software-buffer.pc.in \
39evas-software-x11.pc.in \
40evas-software-gdi.pc.in \
41evas-software-ddraw.pc.in \
42evas-direct3d.pc.in \
43evas-psl1ght.pc.in \
44evas-wayland-shm.pc.in \
45evas-wayland-egl.pc.in \
46evas.spec.in \
47evas.spec \
48m4/efl_attribute.m4 \
49m4/efl_coverage.m4 \
50m4/efl_doxygen.m4 \
51m4/efl_fnmatch.m4 \
52m4/efl_path_max.m4 \
53m4/efl_pthread.m4 \
54m4/efl_shm_open.m4 \
55m4/efl_tests.m4 \
56m4/evas_check_engine.m4 \
57m4/evas_check_loader.m4 \
58m4/evas_dither.m4
59
60pkgconfigdir = $(libdir)/pkgconfig
61pkgconfig_DATA = evas.pc
62
63if BUILD_ENGINE_SOFTWARE_X11
64pkgconfig_DATA += evas-software-x11.pc
65endif
66
67if BUILD_ENGINE_DIRECTFB
68pkgconfig_DATA += evas-directfb.pc
69endif
70
71if BUILD_ENGINE_FB
72pkgconfig_DATA += evas-fb.pc
73endif
74
75if BUILD_ENGINE_BUFFER
76pkgconfig_DATA += evas-software-buffer.pc
77endif
78
79if BUILD_ENGINE_GL_X11
80pkgconfig_DATA += evas-opengl-x11.pc
81endif
82
83if BUILD_ENGINE_GL_SDL
84pkgconfig_DATA += evas-opengl-sdl.pc
85endif
86
87if BUILD_ENGINE_GL_COCOA
88pkgconfig_DATA += evas-opengl-cocoa.pc
89endif
90
91if BUILD_ENGINE_SOFTWARE_GDI
92pkgconfig_DATA += evas-software-gdi.pc
93endif
94
95if BUILD_ENGINE_SOFTWARE_DDRAW
96pkgconfig_DATA += evas-software-ddraw.pc
97endif
98
99if BUILD_ENGINE_DIRECT3D
100pkgconfig_DATA += evas-direct3d.pc
101endif
102
103if BUILD_ENGINE_PSL1GHT
104pkgconfig_DATA += evas-psl1ght.pc
105endif
106
107if BUILD_ENGINE_WAYLAND_SHM
108pkgconfig_DATA += evas-wayland-shm.pc
109endif
110
111if BUILD_ENGINE_WAYLAND_EGL
112pkgconfig_DATA += evas-wayland-egl.pc
113endif
114
115.PHONY: doc coverage
116
117doc:
118 @echo "entering doc/"
119 $(MAKE) -C doc doc
120
121# Unit tests
122
123if EFL_ENABLE_TESTS
124
125check-local:
126 @./src/tests/evas_suite
127
128else
129
130check-local:
131 @echo "reconfigure with --enable-tests"
132
133endif
134
135# Coverage report
136
137if EFL_ENABLE_COVERAGE
138lcov-reset:
139 @rm -rf $(top_builddir)/coverage
140 @find $(top_builddir) -name "*.gcda" -delete
141 @lcov --zerocounters --directory $(top_builddir)
142
143lcov-report:
144 @mkdir $(top_builddir)/coverage
145 lcov --capture --compat-libtool --output-file $(top_builddir)/coverage/coverage.info --directory $(top_builddir)
146 lcov --remove $(top_builddir)/coverage/coverage.info '*.h' --output-file $(top_builddir)/coverage/coverage.cleaned.info
147 genhtml -t "$(PACKAGE_STRING)" -o $(top_builddir)/coverage/html $(top_builddir)/coverage/coverage.cleaned.info
148 @echo "Coverage Report at $(top_builddir)/coverage/html"
149
150
151coverage:
152 @$(MAKE) lcov-reset
153 @$(MAKE) check
154 @$(MAKE) lcov-report
155else
156lcov-reset:
157 @echo "reconfigure with --enable-coverage"
158
159lcov-report:
160 @echo "reconfigure with --enable-coverage"
161
162coverage:
163 @echo "reconfigure with --enable-tests --enable-coverage"
164endif
165
166maintainer-clean-local:
167 rm -rf coverage
diff --git a/legacy/evas/autogen.sh b/legacy/evas/autogen.sh
deleted file mode 100755
index 72e10332c4..0000000000
--- a/legacy/evas/autogen.sh
+++ /dev/null
@@ -1,38 +0,0 @@
1#!/bin/sh
2
3rm -rf autom4te.cache
4rm -f aclocal.m4 ltmain.sh
5
6touch ABOUT-NLS
7
8echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1
9echo "Running autoheader..." ; autoheader || exit 1
10echo "Running autoconf..." ; autoconf || exit 1
11echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1
12echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1
13
14W=0
15
16rm -f config.cache-env.tmp
17echo "OLD_PARM=\"$@\"" >> config.cache-env.tmp
18echo "OLD_CFLAGS=\"$CFLAGS\"" >> config.cache-env.tmp
19echo "OLD_PATH=\"$PATH\"" >> config.cache-env.tmp
20echo "OLD_PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\"" >> config.cache-env.tmp
21echo "OLD_LDFLAGS=\"$LDFLAGS\"" >> config.cache-env.tmp
22
23cmp config.cache-env.tmp config.cache-env >> /dev/null
24if [ $? -ne 0 ]; then
25 W=1;
26fi
27
28if [ $W -ne 0 ]; then
29 echo "Cleaning configure cache...";
30 rm -f config.cache config.cache-env
31 mv config.cache-env.tmp config.cache-env
32else
33 rm -f config.cache-env.tmp
34fi
35
36if [ -z "$NOCONFIGURE" ]; then
37 ./configure -C "$@"
38fi
diff --git a/legacy/evas/configure.ac b/legacy/evas/configure.ac
deleted file mode 100644
index f47e866a83..0000000000
--- a/legacy/evas/configure.ac
+++ /dev/null
@@ -1,1461 +0,0 @@
1##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3m4_define([v_maj], [1])
4m4_define([v_min], [7])
5m4_define([v_mic], [99])
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']))])
8##-- When released, remove the dnl on the below line
9dnl m4_undefine([v_rev])
10##-- When doing snapshots - change soname. remove dnl on below line
11dnl m4_define([relname], [ver-pre-svn-07])
12dnl m4_define([v_rel], [-release relname])
13##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
14m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], [m4_define([v_ver], [v_maj.v_min.v_mic])])
15m4_define([lt_cur], m4_eval(v_maj + v_min))
16m4_define([lt_rev], v_mic)
17m4_define([lt_age], v_min)
18##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
19##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
20
21# rw_PROG_OBJC_WORKS
22# Check whether the Objective C compiler works.
23AC_DEFUN([rw_PROG_OBJC_WORKS],
24[m4_ifdef([AC_PROG_OBJC], [AC_REQUIRE([AC_PROG_OBJC])dnl
25AC_CACHE_CHECK([whether the Objective C compiler works],
26 [rw_cv_prog_objc_works],
27 [AC_LANG_PUSH([Objective C])
28 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
29 [rw_cv_prog_objc_works=yes],
30 [rw_cv_prog_objc_works=no])
31 AC_LANG_POP([Objective C])])], [rw_cv_prog_objc_works=no])
32])
33
34AC_INIT([evas], [v_ver], [enlightenment-devel@lists.sourceforge.net])
35AC_PREREQ([2.52])
36AC_CONFIG_SRCDIR([configure.ac])
37AC_CONFIG_MACRO_DIR([m4])
38
39AC_CONFIG_HEADERS([config.h])
40AH_TOP([
41#ifndef EFL_CONFIG_H__
42#define EFL_CONFIG_H__
43])
44AH_BOTTOM([
45#endif /* EFL_CONFIG_H__ */
46])
47
48AM_INIT_AUTOMAKE([1.6 dist-bzip2])
49m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
50
51AC_GNU_SOURCE
52
53AC_LIBTOOL_WIN32_DLL
54define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
55AC_PROG_LIBTOOL
56
57##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
58##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
59m4_ifdef([v_rev], , [m4_define([v_rev], [0])])
60m4_ifdef([v_rel], , [m4_define([v_rel], [])])
61AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version])
62AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version])
63AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version])
64AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison])
65version_info="lt_cur:lt_rev:lt_age"
66release_info="v_rel"
67AC_SUBST(version_info)
68AC_SUBST(release_info)
69##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
70##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
71VMAJ=v_maj
72AC_SUBST(VMAJ)
73
74### Needed information
75
76AC_CANONICAL_BUILD
77AC_CANONICAL_HOST
78
79case "$host_os" in
80 mingw32ce*)
81 MODULE_ARCH="$host_os-$host_cpu"
82 ;;
83 *)
84 MODULE_ARCH="$host_os-$host_cpu-v_maj.v_min.v_mic"
85 ;;
86esac
87AC_SUBST(MODULE_ARCH)
88AC_DEFINE_UNQUOTED(MODULE_ARCH, "$MODULE_ARCH", "Module architecture")
89
90want_fontconfig="yes"
91want_fribidi="yes"
92want_harfbuzz="auto"
93want_pixman="no"
94want_evas_cserve2="yes"
95
96want_evas_engine_buffer="yes"
97want_evas_engine_software_xlib="no"
98want_evas_engine_software_xcb="no"
99want_evas_engine_software_gdi="no"
100want_evas_engine_software_ddraw="no"
101want_evas_engine_gl_xlib="no"
102want_evas_engine_gl_xcb="no"
103want_evas_engine_gl_sdl="no"
104want_evas_engine_gl_cocoa="no"
105want_evas_engine_direct3d="no"
106want_evas_engine_fb="no"
107want_evas_engine_directfb="no"
108want_evas_engine_psl1ght="no"
109want_evas_engine_wayland_shm="no"
110want_evas_engine_wayland_egl="no"
111
112want_evas_image_loader_webp="yes"
113want_evas_image_loader_gif="yes"
114want_evas_image_loader_tiff="yes"
115want_evas_image_loader_svg="yes"
116
117case "$host_os" in
118 mingw32ce*)
119 want_fontconfig="no"
120 want_evas_image_loader_gif="no"
121 want_evas_image_loader_tiff="no"
122 want_evas_image_loader_svg="no"
123 ;;
124 mingw*)
125 want_evas_engine_software_gdi="yes"
126 want_evas_engine_software_ddraw="yes"
127 want_evas_engine_direct3d="yes"
128 want_evas_image_loader_svg="yes"
129 ;;
130 darwin*)
131 want_evas_engine_software_xlib="auto"
132 want_evas_engine_gl_cocoa="auto"
133 ;;
134 *)
135 want_evas_engine_software_xlib="auto"
136 want_evas_engine_gl_xlib="auto"
137 want_evas_engine_software_xcb="no"
138 want_evas_engine_gl_xcb="no"
139 want_evas_engine_fb="auto"
140 want_evas_engine_wayland_shm="auto"
141 want_evas_engine_wayland_egl="auto"
142 ;;
143esac
144
145case "$host_vendor" in
146 ps3*)
147 want_evas_engine_psl1ght="static"
148 ;;
149esac
150
151requirement_evas=""
152
153
154### Additional options to configure
155
156# when used, that option makes configure script fails when
157# a requirement is selected, but not met.
158use_strict="no"
159AC_ARG_ENABLE([strict],
160 AC_HELP_STRING([--enable-strict], [enable strict checking mode. @<:@default==disabled@:>@]),
161 [use_strict="yes"],
162 [use_strict="no"])
163
164# Simple X11 build/link
165AC_ARG_ENABLE([simple-x11],
166 AC_HELP_STRING([--enable-simple-x11], [enable simple x11 linking]),
167 [
168 if test "x${enableval}" = "xyes" ; then
169 want_evas_simple_x11="yes"
170 else
171 want_evas_simple_x11="no"
172 fi
173 ])
174
175
176### Checks for programs
177
178m4_ifdef([AC_PROG_OBJC],
179 [
180 AC_PROG_OBJC
181 _AM_DEPENDENCIES(OBJC)
182 ],
183 [
184 dnl#AC_CHECK_TOOL([OBJC], [gcc])
185 dnl#AC_SUBST([OBJC])
186 dnl#AC_SUBST([OBJCFLAGS])
187 ])
188
189rw_PROG_OBJC_WORKS
190
191AC_PROG_CXX
192AC_PROG_CC
193
194# pkg-config
195PKG_PROG_PKG_CONFIG
196
197# Check whether pkg-config supports Requires.private
198if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then
199 pkgconfig_requires_private="Requires.private"
200else
201 pkgconfig_requires_private="Requires"
202fi
203AC_SUBST(pkgconfig_requires_private)
204
205# doxygen program for documentation building
206EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
207
208
209### Checks for libraries
210
211# Evil library for compilation on Windows CE
212
213case "$host_os" in
214 mingw*)
215 PKG_CHECK_MODULES([EVIL], [evil >= 1.0.0])
216 AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if evil package is installed])
217 requirement_evas="evil ${requirement_evas}"
218 ;;
219esac
220
221### Checks for portability layer
222
223PKG_CHECK_MODULES([EXOTIC],
224 [exotic],
225 [enable_exotic="yes"],
226 [enable_exotic="no"])
227
228if test "x${enable_exotic}" = "xyes"; then
229 requirement_evas="exotic ${requirement_evas}"
230
231 AC_DEFINE([HAVE_EXOTIC], [1], [Define to 1 if you have Exotic.])
232fi
233AM_CONDITIONAL([EVAS_HAVE_EXOTIC], [test "x${enable_exotic}" = "xyes"])
234
235## strong dependencies
236
237# Eina
238PKG_CHECK_MODULES([EINA], [eina >= 1.6.0])
239CPPFLAGS_SAVE="$CPPFLAGS"
240CPPFLAGS="$CPPFLAGS $EINA_CFLAGS"
241AC_CHECK_SIZEOF(Eina_Unicode,, [#include <Eina.h>])
242CPPFLAGS="$CPPFLAGS_SAVE"
243
244# Freetype
245PKG_CHECK_MODULES([FREETYPE], [freetype2 >= 9.3.0])
246
247requirement_evas="freetype2 eina >= 1.6.0 ${requirement_evas}"
248
249# Eo
250
251PKG_CHECK_MODULES([EO], [eo])
252requirement_evas="eo ${requirement_evas}"
253
254## optional dependencies
255
256# FontConfig
257have_fontconfig="no"
258AC_ARG_ENABLE([fontconfig],
259 AC_HELP_STRING([--disable-fontconfig],
260 [disable fontconfig for finding fonts. @<:@default=enabled@:>@]),
261 [
262 if test "x${enableval}" = "xyes" ; then
263 want_fontconfig="yes"
264 else
265 want_fontconfig="no"
266 fi
267 ])
268
269if test "x${want_fontconfig}" = "xyes"; then
270 PKG_CHECK_MODULES([FONTCONFIG],
271 [fontconfig >= 2.5.0],
272 [
273 have_fontconfig="yes"
274 AC_DEFINE(HAVE_FONTCONFIG, 1, [have fontconfig searching capabilities])
275 requirement_evas="fontconfig ${requirement_evas}"
276 ],
277 [AC_MSG_ERROR([Fontconfig not found])])
278fi
279
280LINEBREAK_CFLAGS='-I$(top_srcdir)/src/static_deps/liblinebreak'
281LINEBREAK_LIBS='$(top_builddir)/src/static_deps/liblinebreak/liblinebreak.la'
282AC_SUBST(LINEBREAK_CFLAGS)
283AC_SUBST(LINEBREAK_LIBS)
284
285# fribidi support
286have_fribidi="no"
287AC_ARG_ENABLE([fribidi],
288 AC_HELP_STRING([--disable-fribidi],
289 [disable bidirectional text support. @<:@default=enabled@:>@]),
290 [
291 if test "x${enableval}" = "xyes" ; then
292 want_fribidi="yes"
293 else
294 want_fribidi="no"
295 fi
296 ])
297
298if test "x${want_fribidi}" = "xyes"; then
299 PKG_CHECK_MODULES([FRIBIDI],
300 [fribidi >= 0.19.2],
301 [
302 have_fribidi="yes"
303 AC_DEFINE(HAVE_FRIBIDI, 1, [have fribidi support])
304 requirement_evas="fribidi ${requirement_evas}"
305 CPPFLAGS_SAVE="$CPPFLAGS"
306 CPPFLAGS="$CPPFLAGS $FRIBIDI_CFLAGS"
307 AC_CHECK_SIZEOF(FriBidiChar,, [#include <fribidi/fribidi.h>])
308 CPPFLAGS="$CPPFLAGS_SAVE"
309 ],
310 [AC_MSG_ERROR([Fribidi not found])])
311fi
312
313# harfbuzz support
314have_harfbuzz="no"
315have_harfbuzz_ft="no"
316AC_ARG_ENABLE([harfbuzz],
317 AC_HELP_STRING([--disable-harfbuzz],
318 [disable complex text shaping and layouting support. @<:@default=enabled@:>@]),
319 [
320 if test "x${enableval}" = "xyes" ; then
321 want_harfbuzz="yes"
322 else
323 want_harfbuzz="no"
324 fi
325 ])
326
327if test "x${want_harfbuzz}" = "xyes" -o "x${want_harfbuzz}" = "xauto" ; then
328 PKG_CHECK_MODULES([HARFBUZZ],
329 [harfbuzz >= 0.9.0],
330 [
331 have_harfbuzz="yes"
332 requirement_evas="harfbuzz ${requirement_evas}"
333 ],
334 [
335 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then
336 AC_MSG_ERROR([Harfbuzz not found (strict dependencies checking)])
337 fi
338 ])
339 if test "x$have_harfbuzz" = "xyes" ; then
340
341 CPPFLAGS_SAVE="$CPPFLAGS"
342 CPPFLAGS="$CPPFLAGS $HARFBUZZ_CFLAGS $FREETYPE_CFLAGS"
343# must have for usage with harfbuzz although harfbuzz may not have it.
344
345 AC_CHECK_HEADER(hb-ft.h,
346 [
347 have_harfbuzz_ft="yes"
348 #Depend on harfbuzz ft for harfbuzz support
349 AC_DEFINE(HAVE_HARFBUZZ, 1, [have harfbuzz support])
350 ],
351 [
352 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then
353 AC_MSG_ERROR([Harfbuzz-ft not found (strict dependencies checking)])
354 fi
355 have_harfbuzz="no"
356 ])
357 CPPFLAGS="$CPPFLAGS_SAVE"
358 fi
359fi
360
361if test "x${have_harfbuzz}" = "xno"; then
362 HAS_HARFBUZZ=0
363fi
364
365# Pixman
366have_pixman="no"
367AC_ARG_ENABLE([pixman],
368 AC_HELP_STRING([--enable-pixman],
369 [enable pixman for software rendering. @<:@default=enabled@:>@]),
370 [
371 if test "x${enableval}" = "xyes" ; then
372 want_pixman="yes"
373 else
374 want_pixman="no"
375 fi
376 ])
377
378if test "x${want_pixman}" = "xyes" -o "x${want_pixman}" = "xauto" ; then
379 PKG_CHECK_MODULES([PIXMAN],
380 [pixman-1],
381 [
382 have_pixman="yes"
383 AC_DEFINE(HAVE_PIXMAN, 1, [have pixman for rendering])
384 requirement_evas="pixman-1 ${requirement_evas}"
385 ],
386 [
387 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then
388 AC_MSG_ERROR([Pixman not found (strict dependencies checking)])
389 fi
390 ])
391fi
392
393have_pixman_font="no"
394AC_ARG_ENABLE(pixman-font,
395 AC_HELP_STRING([--enable-pixman-font], [Allow pixman to render fonts]),
396 [
397 have_pixman_font="yes"
398 AC_DEFINE(PIXMAN_FONT, 1, [Allow pixman to render fonts])
399 ]
400)
401
402have_pixman_rect="no"
403AC_ARG_ENABLE(pixman-rect,
404 AC_HELP_STRING([--enable-pixman-rect], [Allow pixman to render rects]),
405 [
406 have_pixman_rect="yes"
407 AC_DEFINE(PIXMAN_RECT, 1, [Allow pixman to render rects])
408 ]
409)
410
411have_pixman_line="no"
412AC_ARG_ENABLE(pixman-line,
413 AC_HELP_STRING([--enable-pixman-line], [Allow pixman to render lines]),
414 [
415 have_pixman_line="yes"
416 AC_DEFINE(PIXMAN_LINE, 1, [Allow pixman to render lines])
417 ]
418)
419
420have_pixman_poly="no"
421AC_ARG_ENABLE(pixman-poly,
422 AC_HELP_STRING([--enable-pixman-poly], [Allow pixman to render polys]),
423 [
424 have_pixman_poly="yes"
425 AC_DEFINE(PIXMAN_POLY, 1, [Allow pixman to render polys])
426 ]
427)
428
429have_pixman_image="no"
430AC_ARG_ENABLE(pixman-image,
431 AC_HELP_STRING([--enable-pixman-image], [Allow pixman to render images]),
432 [
433 have_pixman_image="yes"
434 AC_DEFINE(PIXMAN_IMAGE, 1, [Allow pixman to render images])
435 ]
436)
437
438have_pixman_image_scale_sample="no"
439AC_ARG_ENABLE(pixman-image-scale-sample,
440 AC_HELP_STRING([--enable-pixman-image-scale-sample], [Allow pixman to render sampled scaled images]),
441 [
442 have_pixman_image_scale_sample="yes"
443 AC_DEFINE(PIXMAN_IMAGE_SCALE_SAMPLE, 1, [Allow pixman to render image sampled scaling])
444 ]
445)
446
447have_tile_rotate="no"
448AC_ARG_ENABLE(tile-rotate,
449 AC_HELP_STRING([--enable-tile-rotate], [Enable tiled rotate algorithm]),
450 [
451 have_tile_rotate="yes"
452 AC_DEFINE(TILE_ROTATE, 1, [Enable tiled rotate algorithm])
453 ]
454)
455
456### Checks for header files
457AC_HEADER_STDC
458AC_CHECK_HEADERS([unistd.h stdint.h sys/param.h netinet/in.h sys/mman.h])
459EFL_CHECK_PATH_MAX
460
461### Checks for types
462AC_CHECK_TYPES([struct sigaction], [], [],
463 [[#include <signal.h>]])
464
465
466### Checks for structures
467
468
469### Checks for compiler characteristics
470AC_C_CONST
471AC_C_BIGENDIAN
472AC_PROG_CC_STDC
473EFL_ATTRIBUTE_UNUSED
474EFL_ATTRIBUTE_VECTOR
475EFL_ATTRIBUTE_ALWAYS_INLINE
476
477
478### Checks for linker characteristics
479lt_enable_auto_import=""
480case "${host_os}" in
481 mingw*)
482 AC_DEFINE(EFL_EVAS_BUILD, 1, [Define to mention that evas is built])
483 lt_enable_auto_import="-Wl,--enable-auto-import"
484 ;;
485esac
486AC_SUBST(lt_enable_auto_import)
487
488
489### Checks for library functions
490
491AC_ISC_POSIX
492AC_CHECK_FUNCS([siglongjmp])
493
494# alloca
495AC_FUNC_ALLOCA
496
497# fnmatch
498EFL_CHECK_FNMATCH([], [AC_MSG_ERROR([Cannot find fnmatch()])])
499
500# dlopen
501dlopen_libs=""
502case "$host_os" in
503 mingw32ce*)
504# managed by evil
505 AC_DEFINE(HAVE_DLSYM)
506 ;;
507 mingw*)
508# nothing on mingw platform
509 ;;
510 *)
511 AC_CHECK_FUNCS(dlsym, res=yes, res=no)
512 if test "x$res" = "xyes"; then
513 AC_DEFINE(HAVE_DLSYM)
514 else
515 AC_CHECK_LIB(dl, dlsym, res=yes, res=no)
516 if test "x$res" = "xyes"; then
517 dlopen_libs=-ldl
518 AC_DEFINE(HAVE_DLSYM)
519 else
520 want_evas_engine_gl_xlib="no"
521 want_evas_engine_gl_xcb="no"
522 want_evas_engine_gl_sdl="no"
523 fi
524 fi
525esac
526AC_SUBST(dlopen_libs)
527
528res=no
529AC_CHECK_LIB(m, lround, res=yes, res=no)
530if test "x$res" = "xyes"; then
531 AC_DEFINE(HAVE_LROUND, 1, C99 lround function exists)
532fi
533
534if test "x${want_evas_image_loader_generic}" = "xyes" ; then
535 EFL_CHECK_SHM_OPEN
536fi
537
538want_evas_cserve2="yes"
539# cserve2 only works on Linux so far.
540if test "x${want_evas_cserve2}" = "xyes" ; then
541 AC_CHECK_HEADERS(
542 [sys/epoll.h sys/inotify.h sys/signalfd.h],
543 [],
544 [ want_evas_cserve2="no" ]
545 )
546fi
547
548shm_open_libs=""
549if test "x${want_evas_cserve2}" = "xyes" ; then
550 EFL_CHECK_SHM_OPEN(
551 [ shm_open_libs=${EFL_SHM_OPEN_LIBS} ],
552 [ want_evas_cserve2="no" ])
553fi
554AC_SUBST([shm_open_libs])
555
556if test "x${want_evas_cserve2}" = "xyes" ; then
557 AC_DEFINE(EVAS_CSERVE2, 1, [Shared cache server.])
558fi
559AM_CONDITIONAL([EVAS_CSERVE2], [test "x${want_evas_cserve2}" = "xyes"])
560
561#######################################
562## GL force flavor gles
563gl_flavor_gles="no"
564AC_MSG_CHECKING(whether to build GLES flavor of GL)
565AC_ARG_ENABLE(gl-flavor-gles,
566 AC_HELP_STRING([--enable-gl-flavor-gles], [enable gles flavor of gl instead of standard]),
567 [
568 if test "x$enableval" = "xyes" ; then
569 AC_MSG_RESULT(yes)
570 AC_DEFINE(GL_GLES, 1, [GLSL runtime shader GLES2 support])
571 gl_flavor_gles="yes"
572 gles_variety_sgx="yes"
573 else
574 AC_MSG_RESULT(no)
575 gl_flavor_gles="no"
576 fi
577 ], [
578 AC_MSG_RESULT(no)
579 gl_flavor_gles="no"
580 ]
581)
582
583#####################################################################
584## Engines
585
586EVAS_CHECK_ENGINE([buffer], [${want_evas_engine_buffer}], [yes], [Buffer])
587EVAS_CHECK_ENGINE([software-gdi], [${want_evas_engine_software_gdi}], [no], [Software GDI])
588EVAS_CHECK_ENGINE([software-ddraw], [${want_evas_engine_software_ddraw}], [no], [Software DirectDraw])
589EVAS_CHECK_ENGINE([direct3d], [${want_evas_engine_direct3d}], [no], [Direct3D])
590EVAS_CHECK_ENGINE([psl1ght], [${want_evas_engine_psl1ght}], [no], [PSL1GHT])
591EVAS_CHECK_ENGINE([gl-sdl], [${want_evas_engine_gl_sdl}], [no], [OpenGL SDL])
592EVAS_CHECK_ENGINE([gl-cocoa], [${want_evas_engine_gl_cocoa}], [no], [OpenGL Cocoa])
593EVAS_CHECK_ENGINE([fb], [${want_evas_engine_fb}], [no], [Framebuffer])
594EVAS_CHECK_ENGINE([directfb], [${want_evas_engine_directfb}], [no], [DirectFB])
595EVAS_CHECK_ENGINE([wayland-shm], [${want_evas_engine_wayland_shm}], [no], [Wayland Shm])
596EVAS_CHECK_ENGINE([wayland-egl], [${want_evas_engine_wayland_egl}], [no], [Wayland Egl])
597
598# SDL primitive
599sdl_primitive="no"
600
601AC_ARG_ENABLE([sdl-primitive],
602 [AC_HELP_STRING([--enable-sdl-primitive], [])],
603 [sdl_primitive=${enableval}]
604)
605AC_MSG_CHECKING([whether to use SDL primitive when possible])
606AC_MSG_RESULT([${sdl_primitive}])
607
608if test "x${sdl_primitive}" = "xyes" ; then
609 AC_DEFINE([ENGINE_SDL_PRIMITIVE], [1], [Use SDL primitive when possible])
610fi
611
612# if software generic need to be build as part of libevas.so
613have_static_software_generic="no"
614AC_ARG_ENABLE([static-software-generic],
615 [AC_HELP_STRING([--enable-static-software-generic], [Build software generic engine as part of libevas])],
616 [have_static_software_generic=${enableval}]
617)
618AC_MSG_CHECKING([Whether to build software generic engine as part of libevas])
619AC_MSG_RESULT([${have_static_software_generic}])
620
621if test "x${have_static_module}" = "xyes" -a "x${have_static_software_generic}" = "xno"; then
622 AC_MSG_WARN([Forcing --enable-static-software-generic as engines must be compiled statically])
623 have_static_software_generic="yes"
624fi
625
626AM_CONDITIONAL(EVAS_STATIC_BUILD_SOFTWARE_GENERIC, test "x${have_static_software_generic}" = "xyes")
627if test "x${have_static_software_generic}" = "xyes"; then
628 AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_GENERIC, [1], [Build software generic engine as part of libevas])
629fi
630
631
632######## Software Engine ########
633have_evas_engine_software_x11="no"
634have_evas_engine_software_xcb="no"
635have_evas_engine_software_xlib="no"
636build_software_xcb=
637
638## XCB Checks ##
639want_xcb="no"
640AC_MSG_CHECKING(whether to build Software XCB Engine)
641AC_ARG_ENABLE(software-xcb,
642 AC_HELP_STRING([--enable-software-xcb], [enable Software XCB Engine. @<:@default=disabled@:>@]), [want_xcb=$enableval]
643)
644if test "x$want_xcb" != "xno" ; then
645 EVAS_CHECK_ENGINE([software-xcb], [${want_evas_engine_software_xcb}], [no], [Software XCB])
646 if test "x$have_evas_engine_software_xcb" != "xno" ; then
647 build_software_xcb="yes"
648 have_evas_engine_software_x11="yes"
649 AC_DEFINE_UNQUOTED(BUILD_ENGINE_SOFTWARE_X11, [1], [Build software X11 engine])
650 AC_DEFINE_UNQUOTED(BUILD_ENGINE_SOFTWARE_XCB, [1], [Build software XCB backend])
651 fi
652else
653 AC_MSG_RESULT(no)
654 build_software_xcb="no"
655fi
656
657## If we are not building XCB, then we can build XLib ##
658
659if test "x$build_software_xcb" = "xno" ; then
660 EVAS_CHECK_ENGINE([software-xlib], [${want_evas_engine_software_xlib}], [no], [Software Xlib])
661 # if software_x11 is available, define everything needed for X11
662 if test "x$have_evas_engine_software_xlib" != "xno" ; then
663 have_evas_engine_software_x11="yes"
664 AC_DEFINE_UNQUOTED(BUILD_ENGINE_SOFTWARE_X11, [1], [Build software X11 engine])
665 AC_DEFINE_UNQUOTED(BUILD_ENGINE_SOFTWARE_XLIB, [1], [Build software Xlib backend])
666 fi
667else
668 have_evas_engine_software_xlib="no"
669fi
670
671if test "x$have_evas_engine_software_xlib" = "xstatic" -o "x$have_evas_engine_software_xcb" = "xstatic"; then
672 AC_DEFINE_UNQUOTED(EVAS_STATIC_BUILD_SOFTWARE_X11, [1], [Build software X11 engine as part of libevas])
673fi
674
675AC_SUBST(have_evas_engine_software_xcb)
676AC_SUBST(have_evas_engine_software_xlib)
677
678AM_CONDITIONAL([BUILD_ENGINE_SOFTWARE_XLIB], [test "x${have_evas_engine_software_xlib}" != "xno"])
679AM_CONDITIONAL([BUILD_ENGINE_SOFTWARE_XCB], [test "x${have_evas_engine_software_xcb}" != "xno"])
680AM_CONDITIONAL([BUILD_ENGINE_SOFTWARE_X11], [test "x${have_evas_engine_software_x11}" != "xno"])
681
682AM_CONDITIONAL([EVAS_STATIC_BUILD_SOFTWARE_X11], [test "x${have_evas_engine_software_xcb}" = "xstatic" -o "x${have_evas_engine_software_xlib}" = "xstatic"])
683AM_CONDITIONAL([EVAS_STATIC_BUILD_SOFTWARE_XLIB], [test "x${have_evas_engine_software_xlib}" = "xstatic"])
684AM_CONDITIONAL([EVAS_STATIC_BUILD_SOFTWARE_XCB], [test "x${have_evas_engine_software_xcb}" = "xstatic"])
685
686AC_SUBST(have_evas_engine_software_x11)
687
688
689######## OpenGL Engine ########
690have_evas_engine_gl_x11="no"
691have_evas_engine_gl_xcb="no"
692build_gl_xcb="no"
693
694## XCB Checks ##
695want_gl_xcb="no"
696AC_MSG_CHECKING(whether to build OpenGL XCB Engine)
697AC_ARG_ENABLE(gl-xcb,
698 AC_HELP_STRING([--enable-gl-xcb], [enable OpenGL XCB Engine. @<:@default=disabled@:>@]), [want_gl_xcb=$enableval]
699)
700if test "x$want_gl_xcb" = "xyes" ; then
701 EVAS_CHECK_ENGINE([gl-xcb], [${want_evas_engine_gl_xcb}], [no], [OpenGL XCB])
702 if test "x$have_evas_engine_gl_xcb" != "xno" ; then
703 build_gl_xcb="yes"
704 have_evas_engine_gl_x11="yes"
705 AC_DEFINE(BUILD_ENGINE_GL_X11, [1], [Build GL X11 engine])
706 AC_DEFINE(BUILD_ENGINE_GL_XCB, [1], [Build GL Xcb backend])
707 if test "x$have_evas_engine_gl_xcb" = "xstatic" ; then
708 AC_DEFINE(EVAS_STATIC_BUILD_GL_X11, [1], [Build GL X11 engine as part of libevas])
709 fi
710 fi
711 AC_SUBST(have_evas_engine_gl_xcb)
712else
713 AC_MSG_RESULT(no)
714 build_gl_xcb="no"
715fi
716
717## If we are not building XCB, then we can build XLib ##
718
719if test "x$build_gl_xcb" = "xno" ; then
720 EVAS_CHECK_ENGINE([gl-xlib], [${want_evas_engine_gl_xlib}], [no], [OpenGL XLib])
721 if test "x$have_evas_engine_gl_xlib" != "xno" ; then
722 have_evas_engine_gl_x11="yes"
723 AC_DEFINE_UNQUOTED(BUILD_ENGINE_GL_X11, [1], [Build OpenGL X11 engine])
724 AC_DEFINE_UNQUOTED(BUILD_ENGINE_GL_XLIB, [1], [Build OpenGL Xlib backend])
725 if test "x$have_evas_engine_gl_xlib" = "xstatic" ; then
726 AC_DEFINE_UNQUOTED(EVAS_STATIC_BUILD_GL_X11, [1], [Build OpenGL X11 engine as part of libevas])
727 fi
728 fi
729else
730 have_evas_engine_gl_xlib="no"
731fi
732AC_SUBST(have_evas_engine_gl_xlib)
733
734AM_CONDITIONAL([BUILD_ENGINE_GL_XLIB], [test "x${have_evas_engine_gl_xlib}" != "xno"])
735AM_CONDITIONAL([BUILD_ENGINE_GL_XCB], [test "x${have_evas_engine_gl_xcb}" != "xno"])
736AM_CONDITIONAL([BUILD_ENGINE_GL_X11], [test "x${have_evas_engine_gl_x11}" != "xno"])
737
738AM_CONDITIONAL([EVAS_STATIC_BUILD_GL_X11], [test "x${have_evas_engine_gl_xcb}" = "xstatic" -o "x${have_evas_engine_gl_xlib}" = "xstatic"])
739AM_CONDITIONAL([EVAS_STATIC_BUILD_GL_XLIB], [test "x${have_evas_engine_gl_xlib}" = "xstatic"])
740AM_CONDITIONAL([EVAS_STATIC_BUILD_GL_XCB], [test "x${have_evas_engine_gl_xcb}" = "xstatic"])
741
742AC_SUBST(have_evas_engine_gl_x11)
743
744# common gl
745have_evas_engine_gl_common="no"
746have_static_evas_engine_gl_common="no"
747if test "x$have_evas_engine_gl_xlib" = "xyes" \
748 || test "x$have_evas_engine_gl_xcb" = "xyes" \
749 || test "x$have_evas_engine_gl_sdl" = "xyes" \
750 || test "x$have_evas_engine_gl_cocoa" = "xyes" \
751 || test "x$have_evas_engine_wayland_egl" = "xyes"; then
752 have_evas_engine_gl_common="yes"
753fi
754if test "x$have_evas_engine_gl_xlib" = "xstatic" \
755 || test "x$have_evas_engine_gl_xcb" = "xstatic" \
756 || test "x$have_evas_engine_gl_sdl" = "xstatic" \
757 || test "x$have_evas_engine_gl_cocoa" = "xstatic" \
758 || test "x$have_evas_engine_wayland_egl" = "xstatic"; then
759 have_evas_engine_gl_common="yes"
760 have_static_evas_engine_gl_common="yes"
761fi
762
763if test "x$have_evas_engine_gl_common" = "xyes"; then
764 evas_engine_gl_common_libs=""
765 AC_DEFINE(BUILD_ENGINE_GL_COMMON, [1], [Generic OpenGL Rendering Support])
766fi
767
768AC_SUBST([evas_engine_gl_common_libs])
769
770AM_CONDITIONAL(BUILD_ENGINE_GL_COMMON, [test "x$have_evas_engine_gl_common" = "xyes"])
771
772AM_CONDITIONAL(EVAS_STATIC_BUILD_GL_COMMON, test "x${have_static_evas_engine_gl_common}" = "xyes")
773if test "x${have_static_evas_engine_gl_common}" = "xyes"; then
774 AC_DEFINE(EVAS_STATIC_BUILD_GL_COMMON, [1], [Build GL generic engine as part of libevas])
775fi
776
777# gl_sdl
778if test "x$have_evas_engine_gl_sdl" = "xyes" || test "x$have_evas_engine_gl_sdl" = "xstatic" ; then
779 AC_CHECK_DECL(SDL_GL_CONTEXT_MAJOR_VERSION,
780 [AC_DEFINE(HAVE_SDL_GL_CONTEXT_VERSION, [1], [SDL_GL version attributes present])],,
781 [#include <SDL/SDL_video.h>])
782fi
783
784if test "x$gl_flavor_gles" = "xyes"; then
785 AC_CHECK_DECL(SDL_OPENGLES,
786 [AC_DEFINE(HAVE_SDL_FLAG_OPENGLES, [1], [SDL_OPENGLES flag is present])],,
787 [#include <SDL/SDL_video.h>])
788fi
789
790#####################################################################
791## Font Loaders
792
793PKG_CHECK_MODULES([EET], [eet >= 1.7.0])
794requirement_evas="eet >= 1.7.0 ${requirement_evas}"
795
796#####################################################################
797## Image loaders
798
799#have_static_module="yes"
800do_module="true"
801do_static="false"
802
803#####################################################################
804evas_image_loader_generic_cflags=""
805evas_image_loader_generic_libs=""
806AC_SUBST([evas_image_loader_generic_cflags])
807AC_SUBST([evas_image_loader_generic_libs])
808AM_CONDITIONAL(BUILD_LOADER_GENERIC, [${do_module}])
809AM_CONDITIONAL(EVAS_STATIC_BUILD_GENERIC, [${do_static}])
810if test "x${do_static}" = "xtrue"; then
811 AC_DEFINE(EVAS_STATIC_BUILD_GENERIC, [1], [Static Generic Loader])
812fi
813AC_DEFINE(BUILD_LOADER_GENERIC, [1], [Generic Loader])
814
815#####################################################################
816evas_image_loader_xpm_cflags=""
817evas_image_loader_xpm_libs=""
818AC_SUBST([evas_image_loader_xpm_cflags])
819AC_SUBST([evas_image_loader_xpm_libs])
820AM_CONDITIONAL(BUILD_LOADER_XPM, [${do_module}])
821AM_CONDITIONAL(EVAS_STATIC_BUILD_XPM, [${do_static}])
822if test "x${do_static}" = "xtrue"; then
823 AC_DEFINE(EVAS_STATIC_BUILD_XPM, [1], [StaticXPM Loader])
824fi
825AC_DEFINE(BUILD_LOADER_XPM, [1], [XPM Loader])
826
827#####################################################################
828evas_image_loader_bmp_cflags=""
829evas_image_loader_bmp_libs=""
830AC_SUBST([evas_image_loader_bmp_cflags])
831AC_SUBST([evas_image_loader_bmp_libs])
832AM_CONDITIONAL(BUILD_LOADER_BMP, [${do_module}])
833AM_CONDITIONAL(EVAS_STATIC_BUILD_BMP, [${do_static}])
834if test "x${do_static}" = "xtrue"; then
835 AC_DEFINE(EVAS_STATIC_BUILD_BMP, [1], [Static BMP Loader])
836fi
837AC_DEFINE(BUILD_LOADER_BMP, [1], [BMP Loader])
838
839#####################################################################
840evas_image_loader_ico_cflags=""
841evas_image_loader_ico_libs=""
842AC_SUBST([evas_image_loader_ico_cflags])
843AC_SUBST([evas_image_loader_ico_libs])
844AM_CONDITIONAL(BUILD_LOADER_ICO, [${do_module}])
845AM_CONDITIONAL(EVAS_STATIC_BUILD_ICO, [${do_static}])
846if test "x${do_static}" = "xtrue"; then
847 AC_DEFINE(EVAS_STATIC_BUILD_ICO, [1], [Static ICO Loader])
848fi
849AC_DEFINE(BUILD_LOADER_ICO, [1], [ICO Loader])
850
851#####################################################################
852evas_image_loader_pmaps_cflags=""
853evas_image_loader_pmaps_libs=""
854AC_SUBST([evas_image_loader_pmaps_cflags])
855AC_SUBST([evas_image_loader_pmaps_libs])
856AM_CONDITIONAL(BUILD_LOADER_PMAPS, [${do_module}])
857AM_CONDITIONAL(EVAS_STATIC_BUILD_PMAPS, [${do_static}])
858if test "x${do_static}" = "xtrue"; then
859 AC_DEFINE(EVAS_STATIC_BUILD_PMAPS, [1], [Static PMAPS Loader])
860fi
861AC_DEFINE(BUILD_LOADER_PMAPS, [1], [PMAPS Loader])
862
863#####################################################################
864evas_image_loader_psd_cflags=""
865evas_image_loader_psd_libs=""
866AC_SUBST([evas_image_loader_psd_cflags])
867AC_SUBST([evas_image_loader_psd_libs])
868AM_CONDITIONAL(BUILD_LOADER_PSD, [${do_module}])
869AM_CONDITIONAL(EVAS_STATIC_BUILD_PSD, [${do_static}])
870if test "x${do_static}" = "xtrue"; then
871 AC_DEFINE(EVAS_STATIC_BUILD_PSD, [1], [Static PSD Loader])
872fi
873AC_DEFINE(BUILD_LOADER_PSD, [1], [PSD Loader])
874
875#####################################################################
876evas_image_loader_tga_cflags=""
877evas_image_loader_tga_libs=""
878AC_SUBST([evas_image_loader_tga_cflags])
879AC_SUBST([evas_image_loader_tga_libs])
880AM_CONDITIONAL(BUILD_LOADER_TGA, [${do_module}])
881AM_CONDITIONAL(EVAS_STATIC_BUILD_TGA, [${do_static}])
882if test "x${do_static}" = "xtrue"; then
883 AC_DEFINE(EVAS_STATIC_BUILD_TGA, [1], [Static TGA Loader])
884fi
885AC_DEFINE(BUILD_LOADER_TGA, [1], [TGA Loader])
886
887#####################################################################
888evas_image_loader_wbmp_cflags=""
889evas_image_loader_wbmp_libs=""
890AC_SUBST([evas_image_loader_wbmp_cflags])
891AC_SUBST([evas_image_loader_wbmp_libs])
892AM_CONDITIONAL(BUILD_LOADER_WBMP, [${do_module}])
893AM_CONDITIONAL(EVAS_STATIC_BUILD_WBMP, [${do_static}])
894if test "x${do_static}" = "xtrue"; then
895 AC_DEFINE(EVAS_STATIC_BUILD_WBMP, [1], [Static WBMP Loader])
896fi
897AC_DEFINE(BUILD_LOADER_WBMP, [1], [WBMP Loader])
898
899#####################################################################
900evas_image_loader_eet_cflags="${EET_CFLAGS}"
901evas_image_loader_eet_libs="${EET_LIBS}"
902AC_SUBST([evas_image_loader_eet_cflags])
903AC_SUBST([evas_image_loader_eet_libs])
904AM_CONDITIONAL(BUILD_LOADER_EET, [${do_module}])
905AM_CONDITIONAL(EVAS_STATIC_BUILD_EET, [${do_static}])
906if test "x${do_static}" = "xtrue"; then
907 AC_DEFINE(EVAS_STATIC_BUILD_EET, [1], [Static EET Loader])
908fi
909AC_DEFINE(BUILD_LOADER_EET, [1], [EET Loader])
910
911#####################################################################
912have_evas_image_saver_jpeg="no"
913evas_image_loader_jpeg_cflags=""
914AC_CHECK_HEADER([jpeglib.h], [], [AC_MSG_ERROR([JPEG header not found])])
915AC_CHECK_LIB([jpeg], [jpeg_CreateDecompress],
916 [ evas_image_loader_jpeg_libs="-ljpeg"
917 AC_COMPILE_IFELSE(
918 [ AC_LANG_PROGRAM([[
919#include <stdio.h>
920#include <jpeglib.h>
921#include <setjmp.h>
922 ]],
923 [[
924struct jpeg_decompress_struct decomp;
925decomp.region_x = 0;
926 ]])],
927 [have_jpeg_region="yes"],
928 [have_jpeg_region="no"])
929 ],[ AC_MSG_ERROR([JPEG missing jpeg_CreateDecompress]) ])
930AC_SUBST([evas_image_loader_jpeg_cflags])
931AC_SUBST([evas_image_loader_jpeg_libs])
932AM_CONDITIONAL(BUILD_LOADER_JPEG, [${do_module}])
933AM_CONDITIONAL(EVAS_STATIC_BUILD_JPEG, [${do_static}])
934if test "x${do_static}" = "xtrue"; then
935 AC_DEFINE(EVAS_STATIC_BUILD_JPEG, [1], [Static JPEG Loader])
936fi
937AC_DEFINE(BUILD_LOADER_JPEG, [1], [JPEG Loader])
938case "$host_os" in
939 mingw*)
940 ;;
941 *)
942 AC_DEFINE(EVAS_BUILD_SAVER_JPEG, [1], [Build JPEG saver])
943 AM_CONDITIONAL([BUILD_SAVER_JPEG], [true])
944 have_evas_image_saver_jpeg="yes"
945 ;;
946esac
947
948#####################################################################
949PKG_CHECK_MODULES([PNG], [libpng >= 1.2.10], [requirement="libpng >= 1.2.10"], [
950 PKG_CHECK_MODULES([PNG], [libpng15], [requirement="libpng15"], [
951 PKG_CHECK_MODULES([PNG], [libpng14], [requirement="libpng14"], [
952 PKG_CHECK_MODULES([PNG], [libpng12], [requirement="libpng12"], [
953 AC_MSG_ERROR([PNG not found])
954 ])
955 ])
956 ])
957])
958dnl requirement_evas="${requirement} ${requirement_evas}"
959evas_image_loader_png_cflags="${PNG_CFLAGS}"
960evas_image_loader_png_libs="${PNG_LIBS}"
961AC_SUBST([evas_image_loader_png_cflags])
962AC_SUBST([evas_image_loader_png_libs])
963AM_CONDITIONAL(BUILD_LOADER_PNG, [${do_module}])
964AM_CONDITIONAL(EVAS_STATIC_BUILD_PNG, [${do_static}])
965if test "x${do_static}" = "xtrue"; then
966 AC_DEFINE(EVAS_STATIC_BUILD_PNG, [1], [Static PNG Loader])
967fi
968AC_DEFINE(BUILD_LOADER_PNG, [1], [PNG Loader])
969
970EVAS_CHECK_IMAGE_LOADER([WEBP], [${want_evas_image_loader_webp}])
971EVAS_CHECK_IMAGE_LOADER([Gif], [${want_evas_image_loader_gif}])
972EVAS_CHECK_IMAGE_LOADER([Tiff], [${want_evas_image_loader_tiff}])
973EVAS_CHECK_IMAGE_LOADER([SVG], [${want_evas_image_loader_svg}])
974
975#####################################################################
976## Cpu based optimizations
977
978#######################################
979## Pipe Renderer
980build_pipe_render="no"
981
982# Let disable pipe render strongly as it doesn't massively improve performance, but
983# just hammer more watt for a few more percent. The code is kept as the understanding
984# is that with an async pipeline things will be better.
985#
986#AC_MSG_CHECKING(whether to build Threaded Pipe Rendering support)
987#AC_ARG_ENABLE(pipe-render,
988# AC_HELP_STRING([--enable-pipe-render], [enable threaded pipe rendering support]),
989# [ build_pipe_render=$enableval ]
990#)
991#AC_MSG_RESULT($build_pipe_render)
992#AC_MSG_CHECKING(whether we can build Threaded Pipe Rendering support)
993#if test \( "x$build_pipe_render" = "xyes" -o "x$build_pipe_render" = "xauto" \); then
994# AC_MSG_RESULT(yes)
995# AC_DEFINE(BUILD_PIPE_RENDER, 1, [Build pipe render support])
996# build_pipe_render="yes"
997#else
998# AC_MSG_RESULT(no)
999# build_pipe_render="no"
1000#fi
1001dnl AC_DEFINE(BUILD_PIPE_RENDER, 1, [Build pipe render support])
1002dnl build_pipe_render="yes"
1003
1004#######################################
1005## CPU architecture specific assembly
1006
1007build_cpu_mmx="no"
1008build_cpu_sse3="no"
1009build_cpu_altivec="no"
1010build_cpu_neon="no"
1011
1012case $host_cpu in
1013 i*86|x86_64|amd64)
1014 AC_DEFINE(BUILD_MMX, 1, [Build MMX Code])
1015 build_cpu_mmx="yes"
1016 build_cpu_sse3="yes"
1017 ;;
1018
1019 *power* | *ppc*)
1020 build_cpu_altivec="yes"
1021 AC_CHECK_HEADER(altivec.h,
1022 [
1023 AC_DEFINE(BUILD_ALTIVEC, 1, [Build Altivec Code])
1024 AC_DEFINE(HAVE_ALTIVEC_H, 1, [Have altivec.h header file])
1025 build_cpu_altivec="yes"
1026 ],
1027 [
1028 save_CFLAGS=$CFLAGS
1029 save_CPPFLAGS=$CPPFLAGS
1030 CFLAGS=$CFLAGS" -maltivec"
1031 CPPFLAGS=$CPPFLAGS" -maltivec"
1032 unset ac_cv_header_altivec_h
1033 AC_CHECK_HEADER(altivec.h,
1034 [
1035 AC_DEFINE(BUILD_ALTIVEC, 1, [Build Altivec Code])
1036 AC_DEFINE(HAVE_ALTIVEC_H, 1, [Have altivec.h header file])
1037 build_cpu_altivec="yes"
1038 ],
1039 [build_cpu_altivec="no"]
1040 )
1041 CFLAGS=$save_CFLAGS
1042 CPPFLAGS=$save_CPPFLAGS
1043 ]
1044 )
1045 if test "x$build_cpu_altivec" = "xyes"; then
1046 AC_MSG_CHECKING(whether to use altivec compiler flag)
1047 if test "x$GCC" = "xyes"; then
1048 if echo "int main(){return 0;}" | ${CPP} -faltivec - > /dev/null 2>&1; then
1049 altivec_cflags="-faltivec"
1050 AC_DEFINE(BUILD_ALTIVEC, 1, [Build Altivec Code])
1051 elif echo "int main(){return 0;}" | ${CPP} -maltivec - > /dev/null 2>&1; then
1052 altivec_cflags="-maltivec"
1053 AC_DEFINE(BUILD_ALTIVEC, 1, [Build Altivec Code])
1054 fi
1055 fi
1056 AC_MSG_RESULT($altivec_cflags)
1057 CFLAGS="$CFLAGS $altivec_cflags"
1058 fi
1059 ;;
1060
1061 arm*)
1062 build_cpu_neon="yes"
1063 AC_TRY_COMPILE([#include <arm_neon.h>],
1064 [asm volatile ("vqadd.u8 d0, d1, d0\n")],
1065 [
1066 AC_MSG_RESULT(yes)
1067 AC_DEFINE(BUILD_NEON, 1, [Build NEON Code])
1068 build_cpu_neon="yes"
1069 ],[
1070 AC_MSG_RESULT(no)
1071 build_cpu_neon="no"
1072 ])
1073 ;;
1074esac
1075
1076#######################################
1077## CHECK SSE3
1078## sse3 is still an option because older gcc's dont have support for
1079## intrinsics used
1080AC_MSG_CHECKING(whether to build sse3 code)
1081AC_ARG_ENABLE(cpu-sse3,
1082 AS_HELP_STRING([--enable-cpu-sse3], [enable sse3 code]),
1083 [
1084 if test "x$enableval" = "xyes" ; then
1085 AC_CHECK_HEADER(immintrin.h,
1086 [
1087 AC_MSG_RESULT(yes)
1088 AC_DEFINE(BUILD_SSE3, 1, [Build SSE3 Code])
1089 build_cpu_sse3="yes"
1090 ],
1091 [
1092 AC_MSG_RESULT(no)
1093 build_cpu_sse3="no"
1094 ])
1095 else
1096 AC_MSG_RESULT(no)
1097 build_cpu_sse3="no"
1098 fi
1099 ],
1100 [
1101 AC_MSG_RESULT($build_cpu_sse3)
1102 if test "x$build_cpu_sse3" = "xyes" ; then
1103 AC_CHECK_HEADER(immintrin.h,
1104 [
1105 AC_MSG_RESULT(yes)
1106 AC_DEFINE(BUILD_SSE3, 1, [Build SSE3 Code])
1107 build_cpu_sse3="yes"
1108 ],
1109 [
1110 AC_MSG_RESULT(no)
1111 build_cpu_sse3="no"
1112 ])
1113 fi
1114 ]
1115)
1116
1117EVAS_SSE3_CFLAGS=" "
1118EVAS_ALTIVEC_CFLAGS=" "
1119
1120if test "x$build_cpu_sse3" = "xyes" ; then
1121 EVAS_SSE3_CFLAGS="-msse3 "
1122fi
1123if test "x$build_cpu_altivec" = "xyes" ; then
1124 EVAS_ALTIVEC_CFLAGS="-maltivec "
1125fi
1126
1127AC_SUBST(CFLAGS)
1128AC_SUBST(EVAS_ALTIVEC_CFLAGS)
1129AC_SUBST(EVAS_SSE3_CFLAGS)
1130
1131#######################################
1132## MAGIC_DEBUG
1133want_evas_magic_debug="yes"
1134AC_MSG_CHECKING(whether to check magic for evas object)
1135AC_ARG_ENABLE(evas-magic-debug,
1136 AC_HELP_STRING(
1137 [--disable-evas-magic-debug],
1138 [disable MAGIC_DEBUG check when people pass in wrong object type. [[default=enabled]]]
1139 ),
1140 [ want_evas_magic_debug="$enableval" ]
1141)
1142AC_MSG_RESULT($want_evas_magic_debug)
1143
1144AM_CONDITIONAL(EVAS_MAGIC_DEBUG, test "x$want_evas_magic_debug" = "xyes")
1145if test "x$want_evas_magic_debug" = "xyes"; then
1146 AC_DEFINE(EVAS_MAGIC_DEBUG, 1, [complain when people pass in wrong object types etc.])
1147fi
1148
1149#####################################################################
1150## dither options
1151
1152## Small dither mask instead of big one (lower quality)
1153EVAS_CHECK_DITHER([small-dither-mask], [small dither mask], [conv_small_dither="yes"], [conv_small_dither="no"])
1154## Alternate Line dither mask instead of big one (lower quality - but fastest)
1155EVAS_CHECK_DITHER([line-dither-mask], [line dither mask], [conv_line_dither="yes"], [conv_line_dither="no"])
1156## No dither mask at all for 16bpp
1157EVAS_CHECK_DITHER([no-dither-mask], [conversion to 16bpp without dither mask], [conv_no_dither="yes"], [conv_no_dither="no"])
1158
1159#####################################################################
1160## valgrind
1161want_valgrind="no"
1162have_valgrind="no"
1163
1164AC_MSG_CHECKING(whether to enable build with valgrind)
1165AC_ARG_ENABLE(valgrind,
1166 AC_HELP_STRING([--enable-valgrind], [enable valgrind fixes to stop false reports]),
1167 [ want_valgrind=$enableval ]
1168)
1169AC_MSG_RESULT($want_valgrind)
1170
1171if test x$want_valgrind = "xyes"; then
1172 PKG_CHECK_MODULES(VALGRIND, valgrind >= 2.4.0,
1173 [
1174 AC_DEFINE(HAVE_VALGRIND, 1, [Valgrind support])
1175 have_valgrind=yes
1176 requirement_evas="valgrind ${requirement_evas}"
1177 ],
1178 [
1179 if test "x$want_valgrind" = "xyes" -a "x$use_strict" = "xyes" ; then
1180 AC_MSG_ERROR([Valgrind not found (strict dependencies checking)])
1181 fi
1182 ]
1183 )
1184fi
1185
1186## Examples
1187
1188install_examples="yes"
1189AC_ARG_ENABLE([install-examples],
1190 AC_HELP_STRING([--disable-install-examples],
1191 [disable installing examples (compiled or just source).
1192 @<:@default==enabled@:>@]),
1193 [
1194 if test "x${enableval}" = "xyes" ; then
1195 install_examples="yes"
1196 else
1197 install_examples="no"
1198 fi
1199 ],
1200 [install_examples="yes"])
1201AM_CONDITIONAL([INSTALL_EXAMPLES], [test "x${install_examples}" = "xyes"])
1202
1203build_examples="no"
1204AC_ARG_ENABLE([build-examples],
1205 AC_HELP_STRING([--enable-build-examples],
1206 [enable building examples (this requires extra denpendencies. if you don't have them installed yet, don't build with this option or it will fail. build again when you have it, overriding the previous installation). @<:@default==disabled@:>@]),
1207 [
1208 if test "x${enableval}" = "xyes" ; then
1209 build_examples="yes"
1210 # put in here the dependencies for Evas' examples. they are
1211 # meant to be 'real world' usage examples, thus one will be
1212 # using higher level libraries on these programs
1213 PKG_CHECK_MODULES([ECORE_EVAS], [ecore-evas ecore],
1214 [], [build_examples="no"])
1215 PKG_CHECK_MODULES([EDJE], [edje],
1216 [edje_cc=$($PKG_CONFIG --variable=prefix edje)/bin/edje_cc],
1217 [], [build_examples="no"])
1218 AC_SUBST(edje_cc)
1219 else
1220 build_examples="no"
1221 fi
1222 ],
1223 [build_examples="no"])
1224AM_CONDITIONAL([BUILD_EXAMPLES], [test "x${build_examples}" = "xyes"])
1225
1226## Unit tests, coverage
1227
1228EFL_CHECK_TESTS([enable_tests="yes"], [enable_tests="no"])
1229
1230EFL_CHECK_COVERAGE([${enable_tests}], [enable_coverage="yes"], [enable_coverage="no"])
1231EVAS_CFLAGS="${EVAS_CFLAGS} ${EFL_COVERAGE_CFLAGS} ${EXOTIC_CFLAGS}"
1232EVAS_LIBS="${EVAS_LIBS} ${EFL_COVERAGE_LIBS} ${EXOTIC_LIBS}"
1233if test "x$enable_coverage" = "xyes" ; then
1234 EVAS_CFLAGS="${EVAS_CFLAGS} ${EFL_DEBUG_CFLAGS}"
1235fi
1236
1237AC_SUBST(EVAS_CFLAGS)
1238AC_SUBST(EVAS_LIBS)
1239
1240# General CFLAGS
1241
1242EVAS_GENERAL_CFLAGS="${EINA_CFLAGS} ${EO_CFLAGS}"
1243EVAS_GENERAL_LIBS="${EINA_LIBS} ${EO_LIBS}"
1244AC_SUBST(EVAS_GENERAL_CFLAGS)
1245AC_SUBST(EVAS_GENERAL_LIBS)
1246
1247#####################################################################
1248## Fill in flags
1249
1250AC_SUBST(altivec_cflags)
1251AC_SUBST(pthread_cflags)
1252AC_SUBST(pthread_libs)
1253AC_SUBST(requirement_evas)
1254
1255#####################################################################
1256## Output
1257
1258AC_OUTPUT([
1259Makefile
1260evas-directfb.pc
1261evas-fb.pc
1262evas-opengl-x11.pc
1263evas-opengl-sdl.pc
1264evas-opengl-cocoa.pc
1265evas-software-buffer.pc
1266evas-software-x11.pc
1267evas-software-gdi.pc
1268evas-software-ddraw.pc
1269evas-direct3d.pc
1270evas-software-sdl.pc
1271evas-psl1ght.pc
1272evas-wayland-shm.pc
1273evas-wayland-egl.pc
1274evas.pc
1275doc/evas.dox
1276doc/Makefile
1277doc/Doxyfile
1278src/Makefile
1279src/bin/Makefile
1280src/bin/loaders/Makefile
1281src/bin/loaders/jpeg/Makefile
1282src/bin/loaders/png/Makefile
1283src/bin/loaders/eet/Makefile
1284src/bin/loaders/tiff/Makefile
1285src/bin/loaders/xpm/Makefile
1286src/bin/loaders/bmp/Makefile
1287src/bin/loaders/ico/Makefile
1288src/bin/loaders/tga/Makefile
1289src/bin/loaders/pmaps/Makefile
1290src/bin/loaders/wbmp/Makefile
1291src/bin/loaders/webp/Makefile
1292src/bin/loaders/psd/Makefile
1293src/lib/Makefile
1294src/lib/canvas/Makefile
1295src/lib/file/Makefile
1296src/lib/cache/Makefile
1297src/lib/cache2/Makefile
1298src/lib/cserve2/Makefile
1299src/lib/engines/Makefile
1300src/lib/engines/common/Makefile
1301src/lib/engines/common/evas_op_add/Makefile
1302src/lib/engines/common/evas_op_blend/Makefile
1303src/lib/engines/common/evas_op_copy/Makefile
1304src/lib/engines/common/evas_op_mask/Makefile
1305src/lib/engines/common/evas_op_mul/Makefile
1306src/lib/engines/common/evas_op_sub/Makefile
1307src/modules/Makefile
1308src/modules/engines/Makefile
1309src/modules/engines/software_generic/Makefile
1310src/modules/engines/software_gdi/Makefile
1311src/modules/engines/software_ddraw/Makefile
1312src/modules/engines/direct3d/Makefile
1313src/modules/engines/software_x11/Makefile
1314src/modules/engines/fb/Makefile
1315src/modules/engines/buffer/Makefile
1316src/modules/engines/directfb/Makefile
1317src/modules/engines/gl_common/Makefile
1318src/modules/engines/gl_x11/Makefile
1319src/modules/engines/gl_sdl/Makefile
1320src/modules/engines/gl_cocoa/Makefile
1321src/modules/engines/psl1ght/Makefile
1322src/modules/engines/wayland_shm/Makefile
1323src/modules/engines/wayland_egl/Makefile
1324src/modules/loaders/Makefile
1325src/modules/loaders/eet/Makefile
1326src/modules/loaders/gif/Makefile
1327src/modules/loaders/jpeg/Makefile
1328src/modules/loaders/png/Makefile
1329src/modules/loaders/tiff/Makefile
1330src/modules/loaders/xpm/Makefile
1331src/modules/loaders/bmp/Makefile
1332src/modules/loaders/ico/Makefile
1333src/modules/loaders/tga/Makefile
1334src/modules/loaders/svg/Makefile
1335src/modules/loaders/pmaps/Makefile
1336src/modules/loaders/wbmp/Makefile
1337src/modules/loaders/webp/Makefile
1338src/modules/loaders/psd/Makefile
1339src/modules/loaders/generic/Makefile
1340src/modules/savers/Makefile
1341src/modules/savers/eet/Makefile
1342src/modules/savers/jpeg/Makefile
1343src/modules/savers/png/Makefile
1344src/modules/savers/tiff/Makefile
1345src/static_deps/Makefile
1346src/static_deps/liblinebreak/Makefile
1347src/lib/include/Makefile
1348src/examples/Makefile
1349src/tests/Makefile
1350data/Makefile
1351evas.spec
1352])
1353
1354#####################################################################
1355## Info
1356
1357echo
1358echo
1359echo
1360echo "------------------------------------------------------------------------"
1361echo "$PACKAGE $VERSION"
1362echo "------------------------------------------------------------------------"
1363echo
1364echo "Configuration Options Summary:"
1365echo
1366echo "Engines:"
1367echo " Software Memory Buffer.....: $have_evas_engine_buffer"
1368echo " Software X11...............: $have_evas_engine_software_x11 (Xlib: $have_evas_engine_software_xlib) (XCB: $have_evas_engine_software_xcb)"
1369echo $ECHO_N " OpenGL X11.................: $have_evas_engine_gl_x11 (Xlib: $have_evas_engine_gl_xlib) (XCB: $have_evas_engine_gl_xcb) $ECHO_C"
1370if test "x$have_evas_engine_gl_x11" = "xyes"; then
1371 echo "(GLES: $gl_flavor_gles)"
1372else
1373 echo
1374fi
1375echo " Software GDI...............: $have_evas_engine_software_gdi"
1376echo " Software DirectDraw........: $have_evas_engine_software_ddraw"
1377echo " Direct3d...................: $have_evas_engine_direct3d"
1378echo " OpenGL SDL.................: $have_evas_engine_gl_sdl $ECHO_C"
1379if test "x$have_evas_engine_gl_sdl" = "xyes"; then
1380 echo "(GLES: $gl_flavor_gles)"
1381else
1382 echo
1383fi
1384echo " OpenGL Cocoa...............: $have_evas_engine_gl_cocoa"
1385echo " Software Framebuffer.......: $have_evas_engine_fb"
1386echo " DirectFB...................: $have_evas_engine_directfb"
1387echo " PSL1GHT....................: $have_evas_engine_psl1ght"
1388echo " Wayland Shm................: $have_evas_engine_wayland_shm"
1389echo " Wayland Egl................: $have_evas_engine_wayland_egl"
1390echo
1391echo "Image Loaders:"
1392echo " JPEG region decode......: $have_jpeg_region"
1393echo " WEBP....................: $have_evas_image_loader_webp"
1394echo " GIF.....................: $have_evas_image_loader_gif"
1395echo " TIFF....................: $have_evas_image_loader_tiff"
1396echo " SVG.....................: $have_evas_image_loader_svg"
1397echo
1398echo "Font Searching Systems:"
1399echo " Fontconfig..............: $have_fontconfig"
1400echo
1401echo "Font Rendering Helpers:"
1402echo " Fribidi.................: $have_fribidi"
1403echo " Harfbuzz................: $have_harfbuzz"
1404# FIXME: add non freetype2 font engine support
1405# FIXME: make freetype2 optional
1406echo
1407echo "CPU Specific Extensions:"
1408echo " MMX/SSE.................: $build_cpu_mmx"
1409echo " SSE3....................: $build_cpu_sse3"
1410echo " ALTIVEC.................: $build_cpu_altivec"
1411echo " NEON....................: $build_cpu_neon"
1412echo
1413echo "Features:"
1414echo " MAGIC_DEBUG.............: $want_evas_magic_debug"
1415echo " Cache Server 2..........: $want_evas_cserve2"
1416echo " Threaded Pipe Rendering.: $build_pipe_render"
1417echo
1418echo "Optional pixman rendering path:"
1419echo " Pixman..................: $have_pixman"
1420echo " Pixman Fonts............: $have_pixman_font"
1421echo " Pixman Rects............: $have_pixman_rect"
1422echo " Pixman Lines............: $have_pixman_line"
1423echo " Pixman Polygons.........: $have_pixman_poly"
1424echo " Pixman Images...........: $have_pixman_image"
1425echo " Pixman Image ScaleSample: $have_pixman_image_scale_sample"
1426echo
1427echo "Conversion Options:"
1428echo " Smaller Dither Mask.....: $conv_small_dither"
1429echo " Line Dither Mask........: $conv_line_dither"
1430echo " No Dither Mask for 16bpp: $conv_no_dither"
1431echo " Tiled 32BPP rotate......: $have_tile_rotate"
1432echo
1433echo "Documentation.............: ${build_doc}"
1434echo "Examples..................: install:${install_examples} build:${build_examples}"
1435if test "x${enable_tests}" = "xyes" ; then
1436 echo "Tests.....................: ${enable_tests} (make check)"
1437else
1438 echo "Tests.....................: ${enable_tests}"
1439fi
1440if test "x${enable_coverage}" = "xyes" ; then
1441 echo "Coverage..................: ${enable_coverage} (make coverage)"
1442else
1443 echo "Coverage..................: ${enable_coverage}"
1444fi
1445echo
1446echo "Compilation............: make (or gmake)"
1447echo " CPPFLAGS.............: $CPPFLAGS"
1448echo " CFLAGS...............: $CFLAGS"
1449echo " CXXFLAGS.............: $CXXFLAGS"
1450echo " LDFLAGS..............: $LDFLAGS"
1451echo
1452echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"
1453echo " prefix...............: $prefix"
1454echo
1455if test "x${have_static_module}" = "xyes" ; then
1456echo -e "\0033\01331;31mWarning\0033\01331;0m: You are trying to link statically one or more modules to Evas."
1457echo " You must know what you are doing, or else you will have a lot of"
1458echo " problems. And Kenny will be killed."
1459echo " Think about that."
1460echo
1461fi
diff --git a/legacy/evas/data/Makefile.am b/legacy/evas/data/Makefile.am
deleted file mode 100644
index 80a8cc6a07..0000000000
--- a/legacy/evas/data/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
1MAINTAINERCLEANFILES = Makefile.in
2
3filesdir = $(datadir)/evas
4files_DATA = checkme
5
6EXTRA_DIST = $(files_DATA)
diff --git a/legacy/evas/doc/Doxyfile.in b/legacy/evas/doc/Doxyfile.in
deleted file mode 100644
index 1c6dd11ae1..0000000000
--- a/legacy/evas/doc/Doxyfile.in
+++ /dev/null
@@ -1,136 +0,0 @@
1PROJECT_NAME = Evas
2PROJECT_NUMBER = @PACKAGE_VERSION@
3OUTPUT_DIRECTORY = .
4INPUT = @builddir@/evas.dox @srcdir@/examples.dox @top_srcdir@/src/lib
5IMAGE_PATH = @srcdir@/img
6OUTPUT_LANGUAGE = English
7GENERATE_HTML = YES
8HTML_OUTPUT = html
9HTML_FILE_EXTENSION = .html
10HTML_HEADER = @srcdir@/head.html
11HTML_FOOTER = @srcdir@/foot.html
12HTML_STYLESHEET = @srcdir@/e.css
13ENUM_VALUES_PER_LINE = 1
14GENERATE_HTMLHELP = NO
15CHM_FILE =
16HHC_LOCATION =
17GENERATE_CHI = NO
18BINARY_TOC = NO
19TOC_EXPAND = NO
20DISABLE_INDEX = YES
21EXTRACT_ALL = NO
22EXTRACT_PRIVATE = NO
23EXTRACT_STATIC = NO
24EXTRACT_LOCAL_CLASSES = NO
25HIDE_UNDOC_MEMBERS = YES
26HIDE_UNDOC_CLASSES = YES
27HIDE_FRIEND_COMPOUNDS = YES
28BRIEF_MEMBER_DESC = YES
29REPEAT_BRIEF = YES
30ALWAYS_DETAILED_SEC = NO
31INLINE_INHERITED_MEMB = NO
32FULL_PATH_NAMES = NO
33STRIP_FROM_PATH =
34INTERNAL_DOCS = NO
35STRIP_CODE_COMMENTS = NO
36CASE_SENSE_NAMES = YES
37SHORT_NAMES = NO
38HIDE_SCOPE_NAMES = NO
39VERBATIM_HEADERS = NO
40SHOW_INCLUDE_FILES = NO
41JAVADOC_AUTOBRIEF = YES
42MULTILINE_CPP_IS_BRIEF = NO
43INHERIT_DOCS = YES
44INLINE_INFO = YES
45SORT_MEMBER_DOCS = YES
46DISTRIBUTE_GROUP_DOC = NO
47TAB_SIZE = 8
48GENERATE_TODOLIST = YES
49GENERATE_TESTLIST = YES
50GENERATE_BUGLIST = YES
51GENERATE_DEPRECATEDLIST= YES
52ALIASES =
53ENABLED_SECTIONS =
54MAX_INITIALIZER_LINES = 30
55OPTIMIZE_OUTPUT_FOR_C = YES
56OPTIMIZE_OUTPUT_JAVA = NO
57SHOW_USED_FILES = NO
58QUIET = NO
59WARNINGS = YES
60WARN_IF_UNDOCUMENTED = YES
61WARN_FORMAT = "$file:$line: $text"
62WARN_LOGFILE =
63FILE_PATTERNS =
64RECURSIVE = YES
65EXCLUDE =
66EXCLUDE_SYMLINKS = NO
67EXCLUDE_PATTERNS =
68EXAMPLE_PATH = @top_srcdir@/src/examples
69EXAMPLE_PATTERNS =
70EXAMPLE_RECURSIVE = YES
71INPUT_FILTER =
72FILTER_SOURCE_FILES = NO
73SOURCE_BROWSER = NO
74INLINE_SOURCES = NO
75REFERENCED_BY_RELATION = YES
76REFERENCES_RELATION = YES
77ALPHABETICAL_INDEX = YES
78COLS_IN_ALPHA_INDEX = 2
79IGNORE_PREFIX = evas_ _evas_ Evas_ _Evas_ EVAS_ _EVAS_
80GENERATE_TREEVIEW = NO
81TREEVIEW_WIDTH = 250
82GENERATE_LATEX = YES
83LATEX_OUTPUT = latex
84LATEX_CMD_NAME = latex
85MAKEINDEX_CMD_NAME = makeindex
86COMPACT_LATEX = NO
87PAPER_TYPE = a4wide
88EXTRA_PACKAGES =
89LATEX_HEADER =
90PDF_HYPERLINKS = YES
91USE_PDFLATEX = NO
92LATEX_BATCHMODE = NO
93GENERATE_RTF = NO
94RTF_OUTPUT = rtf
95COMPACT_RTF = NO
96RTF_HYPERLINKS = NO
97RTF_STYLESHEET_FILE =
98RTF_EXTENSIONS_FILE =
99GENERATE_MAN = YES
100MAN_OUTPUT = man
101MAN_EXTENSION = .3
102MAN_LINKS = YES
103GENERATE_XML = NO
104XML_SCHEMA =
105XML_DTD =
106GENERATE_AUTOGEN_DEF = NO
107ENABLE_PREPROCESSING = YES
108MACRO_EXPANSION = YES
109EXPAND_ONLY_PREDEF = YES
110SEARCH_INCLUDES = NO
111INCLUDE_PATH =
112INCLUDE_FILE_PATTERNS =
113PREDEFINED = __UNUSED__= EINA_ARG_NONNULL()= EINA_MALLOC= EINA_WARN_UNUSED_RESULT= EAPI=
114EXPAND_AS_DEFINED =
115SKIP_FUNCTION_MACROS = YES
116TAGFILES =
117GENERATE_TAGFILE =
118ALLEXTERNALS = NO
119EXTERNAL_GROUPS = YES
120PERL_PATH = /usr/bin/perl
121CLASS_DIAGRAMS = NO
122HIDE_UNDOC_RELATIONS = YES
123HAVE_DOT = NO
124CLASS_GRAPH = NO
125COLLABORATION_GRAPH = NO
126TEMPLATE_RELATIONS = NO
127INCLUDE_GRAPH = NO
128INCLUDED_BY_GRAPH = NO
129GRAPHICAL_HIERARCHY = NO
130DOT_IMAGE_FORMAT = png
131DOT_PATH =
132DOTFILE_DIRS =
133DOT_GRAPH_MAX_NODES = 50
134GENERATE_LEGEND = YES
135DOT_CLEANUP = YES
136SEARCHENGINE = NO
diff --git a/legacy/evas/doc/Makefile.am b/legacy/evas/doc/Makefile.am
deleted file mode 100644
index 10b19d577b..0000000000
--- a/legacy/evas/doc/Makefile.am
+++ /dev/null
@@ -1,41 +0,0 @@
1MAINTAINERCLEANFILES = Makefile.in evas.dox
2
3.PHONY: doc
4
5PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc
6
7if EFL_BUILD_DOC
8
9doc-clean:
10 rm -rf html/ latex/ man/ xml/ $(PACKAGE_DOCNAME).tar*
11
12doc: all doc-clean
13 $(efl_doxygen)
14 cp $(srcdir)/img/* html/
15 cp $(srcdir)/img/* latex/
16 rm -rf $(PACKAGE_DOCNAME).tar*
17 mkdir -p $(PACKAGE_DOCNAME)/doc
18 cp -R html/ latex/ man/ $(PACKAGE_DOCNAME)/doc
19 tar cf $(PACKAGE_DOCNAME).tar $(PACKAGE_DOCNAME)/
20 bzip2 -9 $(PACKAGE_DOCNAME).tar
21 rm -rf $(PACKAGE_DOCNAME)/
22 mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir)
23 @echo "Documentation Package: doc/$(PACKAGE_DOCNAME).tar.bz2"
24 @echo "Documentation HTML: doc/html"
25
26clean-local: doc-clean
27
28else
29
30doc:
31 @echo "Documentation not built. Run ./configure --help"
32
33endif
34
35EXTRA_DIST = $(srcdir)/Doxyfile.in \
36 $(wildcard $(srcdir)/img/*.*) \
37 $(srcdir)/e.css \
38 $(srcdir)/head.html \
39 $(srcdir)/foot.html \
40 $(srcdir)/evas.dox.in \
41 $(srcdir)/examples.dox
diff --git a/legacy/evas/doc/e.css b/legacy/evas/doc/e.css
deleted file mode 100644
index 2dd6b44798..0000000000
--- a/legacy/evas/doc/e.css
+++ /dev/null
@@ -1,273 +0,0 @@
1/*
2 Author:
3 Andres Blanc <andresblanc@gmail.com>
4 DaveMDS Andreoli <dave@gurumeditation.it>
5
6 Supported Browsers:
7 ie7, opera9, konqueror4 and firefox3
8
9 Please use a different file for ie6, ie5, etc. hacks.
10*/
11
12
13/* Necessary to place the footer at the bottom of the page */
14html, body {
15 height: 100%;
16 margin: 0px;
17 padding: 0px;
18}
19
20#container {
21 min-height: 100%;
22 height: auto !important;
23 height: 100%;
24 margin: 0 auto -53px;
25}
26
27#footer, #push {
28 height: 53px;
29}
30
31
32* html #container {
33 height: 100%;
34}
35
36/* Prevent floating elements overflowing containers */
37.clear {
38 clear: both;
39 width: 0px;
40 height: 0px;
41}
42
43/* Flexible & centered layout from 750 to 960 pixels */
44.layout {
45 max-width: 960px;
46 min-width: 760px;
47 margin-left: auto;
48 margin-right: auto;
49}
50
51body {
52 /*font-family: Lucida Grande, Helvetica, sans-serif;*/
53 font-family: "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif
54}
55
56/* Prevent design overflowing the viewport in small resolutions */
57#container {
58 padding-right: 17px;
59 padding-left: 17px;
60 background-image: url(head_bg.png);
61 background-repeat: repeat-x;
62}
63
64/****************************/
65/* Top main menu */
66/****************************/
67#header_logo {
68 background-image : url(logo.png);
69 width : 61px;
70}
71
72#header_logo a {
73 position : absolute;
74 border : 0px;
75 background-color : transparent;
76 top : 0px;
77 width : 60px;
78 height : 60px;
79}
80
81#header_menu {
82 background-image : url(header_menu_background.png);
83 font : normal 10pt verdana,'Bitstream Vera Sans',helvetica,arial,sans-serif;
84 text-align : right;
85}
86
87#header_last {
88 background-image : url(header_menu_background_last.png);
89 width : 15px;
90}
91
92td.nav_passive {
93 background : url(header_menu_unselected_background.png) 0 0 no-repeat;
94 height : 63px;
95 font-family : "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif;
96 font-size : 11px;
97 padding : 20px 10px 20px 10px;
98 vertical-align : middle;
99}
100
101td.nav_active {
102 background : url(header_menu_current_background.png) 0 0 no-repeat;
103 height : 63px;
104 color : #646464;
105 font-family : "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif;
106 font-size : 11px;
107 font-weight : bold;
108 padding : 20px 10px 20px 10px;
109 vertical-align : middle;
110}
111
112#header_menu a {
113 display : block;
114 text-decoration : none;
115 cursor : pointer;
116 color : #cdcdcd;
117}
118
119
120
121#header {
122 width: 100%;
123 height: 102px;
124}
125
126#header h1 {
127 width: 63px;
128 height: 63px;
129 position: absolute;
130 margin: 0px;
131}
132
133#header h1 span {
134 display: none;
135}
136
137#header h2 {
138 display: none;
139}
140
141/* .menu-container is used to set properties common to .menu and .submenu */
142#header .menu-container {
143}
144
145#header .menu-container ul {
146 list-style-type: none;
147 list-style-position: inside;
148 margin: 0;
149}
150
151#header .menu-container li {
152 display: block;
153 float: right;
154}
155
156#header .menu {
157 height: 63px;
158 display: block;
159 background-image: url(menu_bg.png);
160 background-repeat: repeat-x;
161}
162
163#header .menu ul {
164 height: 100%;
165 display: block;
166 background-image: url(menu_bg_last.png);
167 background-repeat: no-repeat;
168 background-position: top right;
169 padding-right: 17px;
170}
171
172#header .menu li {
173 height: 100%;
174 text-align: center;
175 background-image: url(menu_bg_unsel.png);
176 background-repeat: no-repeat;
177}
178
179#header .menu a {
180 height: 100%;
181 display: block;
182 color: #cdcdcd;
183 text-decoration: none;
184 font-size: 10pt;
185 line-height: 59px;
186 text-align: center;
187 padding: 0px 15px 0px 15px;
188}
189
190#header .menu li:hover {
191 background-image: url(menu_bg_hover.png);
192 background-repeat: no-repeat;
193}
194
195#header .menu li:hover a {
196 color: #FFFFFF;
197}
198
199#header .menu li.current {
200 background-image: url(menu_bg_current.png);
201 background-repeat: no-repeat;
202}
203
204#header .menu li.current a {
205 color: #646464;
206}
207
208
209/* Hide all the submenus but the current */
210#header .submenu ul {
211 display: none;
212}
213
214#header .submenu .current {
215 display: block;
216}
217
218#header .submenu {
219 font: bold 10px verdana,'Bitstream Vera Sans',helvetica,arial,sans-serif;
220 margin-top: 10px;
221}
222
223#header .submenu a {
224 color: #888888;
225 text-decoration: none;
226 font-size: 0.9em;
227 line-height: 15px;
228 padding:0px 5px 0px 5px;
229}
230
231#header .submenu a:hover {
232 color: #444444;
233}
234
235#header .submenu li {
236 border-left: 1px solid #DDDDDD;
237}
238
239#header .submenu li:last-child {
240 border-left: 0;
241}
242
243#header .doxytitle {
244 position: absolute;
245 font-size: 1.8em;
246 font-weight: bold;
247 color: #444444;
248 line-height: 35px;
249}
250
251#header small {
252 font-size: 0.4em;
253}
254
255#footer {
256 background-image: url(foot_bg.png);
257 width: 100%;
258}
259
260#footer table {
261 width: 100%;
262 text-align: center;
263 white-space: nowrap;
264 padding: 5px 30px 5px 30px;
265 font-size: 0.8em;
266 font-family: "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif;
267 color: #888888;
268}
269
270#footer td.copyright {
271 width: 100%;
272}
273
diff --git a/legacy/evas/doc/evas.dox.in b/legacy/evas/doc/evas.dox.in
deleted file mode 100644
index e69de29bb2..0000000000
--- a/legacy/evas/doc/evas.dox.in
+++ /dev/null
diff --git a/legacy/evas/doc/examples.dox b/legacy/evas/doc/examples.dox
deleted file mode 100644
index 65dd513409..0000000000
--- a/legacy/evas/doc/examples.dox
+++ /dev/null
@@ -1,1073 +0,0 @@
1/**
2 * @page Examples Examples
3 *
4 * Here is a page with examples.
5 *
6 * @ref Example_Evas_Buffer_Simple
7 *
8 * @ref Example_Evas_Init_Shutdown
9 *
10 * @ref Example_Evas_Text
11 *
12 * @ref Example_Evas_Images
13 *
14 * @ref Example_Evas_Images_2
15 *
16 * @ref Example_Evas_Events
17 *
18 * @ref Example_Evas_Object_Manipulation
19 *
20 * @ref Example_Evas_Aspect_Hints
21 *
22 * @ref Example_Evas_Size_Hints
23 *
24 * @ref Example_Evas_Stacking
25 *
26 * @ref Example_Evas_Smart_Objects
27 *
28 * @ref Example_Evas_Box Evas box
29 */
30
31/**
32 * @page Example_Evas_Buffer_Simple Simple Evas canvas example
33 *
34 * The canvas will here use the buffer engine.
35 *
36 * @include evas-buffer-simple.c
37 * @example evas-buffer-simple.c
38 */
39
40/**
41 * @page Example_Evas_Init_Shutdown Evas' init/shutdown routines example
42 *
43 * @include evas-init-shutdown.c
44 * @example evas-init-shutdown.c
45 */
46
47/**
48 * @page Example_Evas_Images Some image object functions examples
49 * @dontinclude evas-images.c
50 *
51 * In this example, we add two images to a canvas, each one having a
52 * quarter of the canvas' size, positioned on the top left and bottom
53 * right corners, respectively:
54 * @skip img1 = evas_object_image_add(d.evas);
55 * @until ecore_main_loop_begin
56 * See there is a border image around the top left one, <b>which is
57 * the one that should be displayed</b>. The other one will (on
58 * purpose) fail to load, because we set a wrong file path as image
59 * source on it:
60 * @dontinclude evas-images.c
61 * @skip valid_path
62 * @until bogus_path
63 * This is how one is supposed to test for success when binding source
64 * images to image objects: evas_object_image_load_error_get(),
65 * followed by evas_load_error_str(), if one wants to pretty print/log
66 * the error. We'll talk about the border image further.
67 *
68 * To interact with the program, there's a command line interface.
69 * A help string can be asked for with the 'h' key:
70 * @dontinclude evas-images.c
71 * @skip commands
72 * @until ;
73 * The first four commands will change the top left images's @b fill property
74 * values, which dictate how the source image (Enlightenment's logo)
75 * is to be displayed through the image object's area. Experiment with
76 * those switches until you get the idea of evas_object_fill_set().
77 *
78 * The 'f' command will toggle that image's "filled" property, which
79 * is whether it should track its size and set the fill one to fit the
80 * object's boundaries perfectly (stretching). Note that this command
81 * and the four above it will conflict: in real usage one would use
82 * one or other ways of setting an image object's viewport with regard
83 * to its image source.
84 *
85 * There are four commands which deal with the border image. This red
86 * frame is there to illustrate <b>image borders</b>. The image source
87 * for the border is a solid red rectangle, with a transparent @b
88 * rectangular area in its middle. See how we use it to get a 3 pixel
89 * wide frame with <code>evas_object_image_border_set(d.border, 3, 3,
90 * 3, 3)</code>. To finish the effect of showing it as a border, we
91 * issue <code>evas_object_image_border_center_fill_set(d.border,
92 * EVAS_BORDER_FILL_NONE)</code>.
93 *
94 * Use 't' to change the border's thickness. 'b' will change the
95 * border image's center region rendering schema: either a hole (no
96 * rendering), blending (see the original transparent area, in this
97 * case) or solid (the transparent area gets filled). Finally, 'c'
98 * will change the border's scaling factor.
99 *
100 * While you have the border in 'blending mode', test the command 'm':
101 * it will set whether to use or not smooth scaling on the border's
102 * source image. Since the image is small originally (30 x 30), we're
103 * obviously up-scaling it (except the border pixels, do you
104 * remember?). With this last switch, you'll either see the
105 * transparent shape in the middle flat (no smoothing) or blurry
106 * (smoothed).
107 *
108 * The full example follows.
109 *
110 * @include evas-images.c
111 * @example evas-images.c
112 */
113
114/**
115 * @page Example_Evas_Images_2 Some more image object functions examples (2nd block)
116 * @dontinclude evas-images2.c
117 *
118 * In this example, we have three images on the canvas, but one of
119 * them is special -- we're using it as a <b>proxy image
120 * object</b>. It will mirror the contents of the other two images
121 * (which are the ones on the top of the canvas), one at a time:
122 * @skip d.proxy_img = evas_object_image_filled_add(d.evas);
123 * @until evas_object_show(d.proxy_img);
124 * As in other examples, we have a command line interface on it.
125 * @dontinclude evas-images2.c
126 * @skip commands
127 * @until ;
128 * The 'p' one will change the source of the proxy image to one of the
129 * other two, as seem above.
130 * @skip if (strcmp(ev->keyname, "p") == 0)
131 * @until }
132 * Note the top right image, the smaller one:
133 * @dontinclude evas-images2.c
134 * @skip noise_img =
135 * @until show
136 * Since we are creating the data for its pixel buffer ourselves, we
137 * have to set its size with evas_object_image_size_set(), first. We
138 * set our data with the function evas_object_image_data_set(), where
139 * the second argument is a buffer with random data. There's a last
140 * command to print it's @b stride value. Since its created with one
141 * quarter of the canvas's original width
142 * @dontinclude evas-images2.c
143 * @skip define WIDTH
144 * @until define HEIGHT
145 * you can check this value.
146 *
147 * The image on the top left also has a subtlety: it is @b pre-loaded
148 * on this example.
149 * @dontinclude evas-images2.c
150 * @skip d.logo =
151 * @until show
152 * On real use cases we wouldn't be just printing something like this
153 * @dontinclude evas-images2.c
154 * @skip static void
155 * @until }
156 * naturally.
157 *
158 * The 's' command will save one of the images on the disk, in the png
159 * format:
160 * @dontinclude evas-images2.c
161 * @skip if (strcmp(ev->keyname, "a") == 0)
162 * @until }
163 *
164 * The full example follows.
165 *
166 * @include evas-images2.c
167 * @example evas-images2.c
168 */
169
170/**
171 * @page Example_Evas_Events Evas events (canvas and object ones) and some canvas operations example
172 * @dontinclude evas-events.c
173 *
174 * In this example we illustrate how to interact with canvas' (and its
175 * objects') events, including the key input ones. We also demonstrate
176 * precise point collision on objects and canvas "obscured regions",
177 * here.
178 *
179 * The example application consists of a window with a white
180 * background and an image -- the Enlightenment logo. The application
181 * begins with this image switching back and forth into two sizes: the
182 * exact canvas' size and one quarter of it (when it's placed on the
183 * top left quadrant). Thus, we'll have an @b animation going on,
184 * with image states set to change each 2 elapsed seconds.
185 *
186 * There's a global variable to aid accessing our desired context
187 * variables from anywhere in the code:
188 * @dontinclude evas-events.c
189 * @skip test_data
190 * @until {0}
191 *
192 * What interests us there are the @c canvas pointer, our image handle
193 * -- @c img -- and the background one, @c bg.
194 *
195 * The first interesting thing on the example is the registration of a
196 * callback on each canvas resizing event, where we put our canvas'
197 * size and the background rectangle's one in synchrony, so that we
198 * don't get bogus content on rendering with canvas resizes:
199 * @dontinclude evas-events.c
200 * @skip resize_set
201 * @until resize_set
202 * @dontinclude evas-events.c
203 * @skip here to keep
204 * @until }
205 *
206 * Than, after grabbing our canvas pointer from the Ecore Evas helper
207 * infrastructure, we registrate an event callbacks on it:
208 * @skip evas_event_callback_add(d.canvas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
209 * @until two canvas event callbacks
210 * @dontinclude evas-events.c
211 * @skip render flush callback
212 * @until }
213 * It will be called whenever our canvas has to flush its rendering
214 * pipeline. In this example, two ways of observing that message
215 * which is printed in the cited callback are:
216 * - to resize the example's window (thus resizing the canvas' viewport)
217 * - let the animation run
218 *
219 * When one resizes the canvas, there's at least one operation it has
220 * to do which will require new calculation for rendering: the
221 * resizing of the background rectangle, in a callback we already
222 * shown you.
223 *
224 * The creation of our background rectangle is so that we give it a @b name,
225 * via evas_object_name_set() and we give it the canvas @b focus:
226 * @dontinclude evas-events.c
227 * @skip bg = evas_object_rectangle_add
228 * @until focus_set
229 *
230 * Still exemplifying events and callbacks, we register a callback on
231 * the canvas event of an object being focused:
232 * @dontinclude evas-events.c
233 * @skip add(d.canvas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS
234 * @until }
235 * @dontinclude evas-events.c
236 * @skip called when
237 * @until }
238 *
239 * In that call, @c event_info is going to be the focused object's
240 * handle, in this case our background rectangle. We print its name,
241 * so you can check it's the same. We check that pointer is the same
242 * reported by Evas' API with regard to the newest focused
243 * object. Finally, we check whether that object is really flagged as
244 * focused, now using an Evas object API function.
245 *
246 * The animation we talked about comes from a timer we register just
247 * before we start the example's main loop. As we said, the resizing
248 * of the image will also force the canvas to repaint itself, thus
249 * flushing the rendering pipeline whenever the timer ticks:
250 * @dontinclude evas-events.c
251 * @skip d.resize_timer = ecore
252 * @until d.resize_timer = ecore
253 * @dontinclude evas-events.c
254 * @skip put some action
255 * @until }
256 * When you start this example, this animation will be
257 * running, by default. To interact with the program, there's a
258 * command line interface. A help string can be asked for with the
259 * 'h' key:
260 * @dontinclude evas-events.c
261 * @skip static const char *commands
262 * @until ;
263 * These are the commands the example will accept at any time, except
264 * when one triggers the 'f' one. This command will exemplify
265 * evas_event_freeze(), which interrupts @b all input events
266 * processing for the canvas (in the example, just for 3 seconds). Try
267 * to issue events for it during that freeze time:
268 * @dontinclude evas-events.c
269 * @skip if (strcmp(ev->keyname, "f") == 0)
270 * @until }
271 * The 'd' command will unregister those two canvas callbacks for you,
272 * so you won't see the messages about the focused object and the
273 * rendering process anymore:
274 * @dontinclude evas-events.c
275 * @skip if (strcmp(ev->keyname, "d") == 0)
276 * @until }
277 * In this example, we start using a focused object to handle the input
278 * events -- the background rectangle. We register a callback on an key input
279 * event occurring on it, so that we can act on each key stroke:
280 * @skip object_event_callback_add
281 * @until }
282 * @dontinclude evas-events.c
283 * @skip examine the keys pressed
284 * @until key grab
285 * We do so by examining the @c ev->keyname string (remember the event
286 * information struct for key down events is the #Evas_Event_Key_Down
287 * one). There's one more trick for grabbing input events on this
288 * example -- evas_object_key_grab(). The 'c' command will, when
289 * firstly used, @b unfocus the background rectangle. Unfocused
290 * objects on an Evas canvas will @b never receive key events. We
291 * grab, then, the keys we're interested at to the object forcefully:
292 * @skip if (d.focus)
293 * @until got here by key grabs
294 * This shows how one can handle input not depending on focus issues
295 * -- you can grab them globally. Switch back and forth focus and
296 * forced key grabbing with the 'c' key, and observe the messages
297 * printed about the focused object. Observe, also, that we register
298 * two more @b object callbacks, this time on the image object
299 * (Enlightenment logo), where we just print messages telling the mouse
300 * pointer has entered or exited it area:
301 * @skip evas_object_show(d.img);
302 * @until mouse_out, NULL
303 * @dontinclude evas-events.c
304 * @skip mouse enters the object's area
305 * @until mouse exits the object's area
306 * Experiment with moving the mouse pointer over the image, letting it
307 * enter and exit its area (stop the animation with 'a', for a better
308 * experience). When you start the example, Evas will consider this
309 * area by being the whole boundary rectangle around the picture. If
310 * you issue the 'p' command, though, you get a demonstration of Evas'
311 * precise point collision detection on objects. With
312 * evas_object_precise_is_inside_get(), one can make Evas consider the
313 * transparent areas of an object (the middle of the logo's E letter,
314 * in the case) as not belonging to it when calculating mouse
315 * in/out/up/down events:
316 * @dontinclude evas-events.c
317 * @skip if (strcmp(ev->keyname, "p") == 0)
318 * @until }
319 * To finish the example, try the command bound to Control + 'o',
320 * which exemplifies Evas' <b>obscured regions</b>. When firstly
321 * pressed, you'll get the same contents, in a region in the middle of
322 * the canvas, at the time the key was pressed, until you toggle the
323 * effect off again (make sure the animation is running on to get the
324 * idea better). When you toggle this effect off, we also demonstrate
325 * the use of evas_render_updates(), which will force immediate
326 * updates on the canvas rendering, bringing back the obscured
327 * region's contents to normal.
328 * @skip mods = evas_key_modifier_get(evas);
329 * @until end of obscured region command
330 *
331 * What follows is the complete code for this example.
332 *
333 * @include evas-events.c
334 * @example evas-events.c
335 */
336
337/**
338 * @page Example_Evas_Object_Manipulation Evas objects basic manipulation example
339 *
340 * @include evas-object-manipulation.c
341 * @example evas-object-manipulation.c
342 */
343
344/**
345 * @page Example_Evas_Aspect_Hints Evas aspect hints example
346 *
347 * @include evas-aspect-hints.c
348 * @example evas-aspect-hints.c
349 */
350
351/**
352 * @page Example_Evas_Size_Hints Evas alignment, minimum size, maximum size, padding and weight hints example
353 *
354 * In this code, we place a (vertical) box with two rectangles as
355 * child elements. It has a command line interface with which to act
356 * on those rectangles' <b>size hints</b>:
357 * @dontinclude evas-hints.c
358 * @skip static const char commands
359 * @until ;
360 *
361 * That should be self explanatory. Change those values (possibly
362 * resizing the box, which will resize together with the example's
363 * window) to get how size hints are honored by a container object,
364 * which in this case is the Evas box.
365 *
366 * More on this smart object can be found on @ref Example_Evas_Box.
367 * The full code for this example follows.
368 *
369 * @include evas-hints.c
370 * @example evas-hints.c
371 */
372
373/**
374 * @page Example_Evas_Box Evas box example
375 *
376 * In this example, we demonstrate the use of Evas box objects. We
377 * cover changing boxes' layouts (with a custom layout, besides the
378 * ones provided by Evas), box padding and alignment influence on the
379 * layouts, insertion and removal of box items.
380 *
381 * The interesting part of the code starts, naturally, when we add a
382 * box object to the canvas. Just after it, we place five rectangles,
383 * with random colors, inside of it. Those rectangles get a minimum
384 * size hint of 50 pixels on each axis, which will be respected by
385 * most of the box's possible layouts:
386 * @dontinclude evas-box.c
387 * @skip evas_object_box_add
388 * @until }
389 * @until }
390 *
391 * Just like in other Evas examples, we have a white background on the
392 * canvas and a red border around the container object of interest,
393 * the box, to mark its boundaries. Resizing of the canvas will keep
394 * the box's proportion with regard to the whole canvas', so that you
395 * can experiment with different sizes of the box to accomodate its
396 * children:
397 * @dontinclude evas-box.c
398 * @skip adjust canvas' contents on resizes
399 * @until }
400 *
401 * Again, one interacts with this program by means of key commands:
402 * @dontinclude evas-box.c
403 * @skip static const char *commands
404 * @until ;
405 *
406 * Let's start with the @b numeric ones, each of which will impose a
407 * different layout on the box object.
408 *
409 * The initial layout the box starts at is the one triggered by the
410 * key @c '1' -- the horizontal layout. Thus, the initial appearance
411 * of this program, demonstrating this layout, is something like:
412 *
413 * @image html evas-box-example-00.png
414 * @image rtf evas-box-example-00.png
415 * @image latex evas-box-example-00.eps
416 *
417 * The vertical layout (@c '2' key) is very similar, but just
418 * disposing the items vertically:
419 *
420 * @image html evas-box-example-01.png
421 * @image rtf evas-box-example-01.png
422 * @image latex evas-box-example-01.eps
423 *
424 * Note the influence of the (default) @c 0.5 box alignment property,
425 * which will let the children line in the middle of the box's
426 * area. Also, because the space required by them extrapolates the
427 * box's height (we resized it to be smaller), they'll be drawn out if
428 * its bounds.
429 *
430 * Next, comes the horizontal @b homogeneous layout (@c '3' key). See
431 * how it reserves an equal amount of space for each child to take:
432 *
433 * @image html evas-box-example-02.png
434 * @image rtf evas-box-example-02.png
435 * @image latex evas-box-example-02.eps
436 *
437 * Its vertical equivalent can be triggered by the @c '4' key. The
438 * next different layout of interest is the horizontal maximum size
439 * homogeneous (@c '5' key). It will reserve cells to children sized
440 * equally to the dimensions of the child with bigger size (or minimum
441 * size hints). For this example, all cells would be just the size of
442 * our rectangles' minimum size hints and, to prove that, insert a new
443 * (smaller) rectangle at position 3, say, with @c Ctrl and @c 3 keys
444 * together:
445 *
446 * @image html evas-box-example-03.png
447 * @image rtf evas-box-example-03.png
448 * @image latex evas-box-example-03.eps
449 *
450 * The code for the commands inserting and deleting box items is:
451 * @dontinclude evas-box.c
452 * @skip mods, "Shift"
453 * @until }
454 * @until }
455 * @dontinclude evas-box.c
456 * @skip new rectangle to be put in the box
457 * @until }
458 * In that code, we exemplify evas_object_box_children_get(), to fetch
459 * a child element at an exact position. After the element removal
460 * from the box (leaving it unparented again), we delete it and free
461 * that list. The code inserting a new rectangle, there, is
462 * straightforward.
463 *
464 * Try the @c '6' key for the vertical equivalent of the last shown
465 * layout. Then, comes the @b flow layout, triggered by the @c '7'
466 * key. We make our box small to demonstrate the effect on the items
467 * layouting:
468 *
469 * @image html evas-box-example-04.png
470 * @image rtf evas-box-example-04.png
471 * @image latex evas-box-example-04.eps
472 *
473 * The next two numerical commands are for the vertical equivalent of
474 * the last and the stack one, respectively. Try them out to get their
475 * looks.
476 *
477 * The last numerical key, @c '0', shows the effect of a @b custom
478 * layout on the box. We wrote one that would split the width and
479 * height of the box equally and, then, place the items in the cells
480 * in the diagonal:
481 * @dontinclude evas-box.c
482 * @skip keyname, "0"
483 * @until }
484 * @dontinclude evas-box.c
485 * @skip custom 'diagonal' layout
486 * @until }
487 * @until }
488 *
489 * @image html evas-box-example-05.png
490 * @image rtf evas-box-example-05.png
491 * @image latex evas-box-example-05.eps
492 *
493 * Finally, the @c 'a' and @c 'p' commands will change the box's
494 * alignment and padding property values, respectively. For each of
495 * the layouts above, see the effects they make by setting different
496 * values on those properties.
497 *
498 * The full code for this example follows. For an exercise on <b>the
499 * effect of children box elements' size hints on a box layout</b>,
500 * try the @ref Example_Evas_Size_Hints.
501 *
502 * @include evas-box.c
503 * @example evas-box.c
504 */
505
506/**
507 * @page Example_Evas_Stacking Evas object stacking functions (and some event handling)
508 * @dontinclude evas-stacking.c
509 *
510 * In this example, we illustrate how to stack objects in a custom
511 * manner and how to deal with layers.
512 *
513 * We have three objects of interest in it -- white background, red
514 * rectangle, green rectangle and blue rectangle.
515 * @skip d.bg = evas_object_rectangle_add(d.canvas);
516 * @until evas_object_resize(d.bg, WIDTH, HEIGHT);
517 * @skip d.rects[2] = evas_object_rectangle_add(d.canvas);
518 * @until evas_object_show(d.rects[0]);
519 * @dontinclude evas-stacking.c
520 * Like in other Evas examples, one interacts with it by means of key
521 * commands:
522 * @skip static const char *commands
523 * @until ;
524 * At any given point, like seem above, you'll be operating one rectangle only.
525 * You may stacking it below an adjacent object with "b":
526 * @skip evas_object_stack_below(d.rects[d.cur_rect], neighbour);
527 * @until evas_object_stack_below(d.rects[d.cur_rect], neighbour);
528 * @dontinclude evas-stacking.c
529 * "a" will do the opposite:
530 * @skip evas_object_stack_above(d.rects[d.cur_rect], neighbour);
531 * @until evas_object_stack_above(d.rects[d.cur_rect], neighbour);
532 * To bring it directly to the top/bottom, use "t"/"m", respectively:
533 * @dontinclude evas-stacking.c
534 * @skip evas_object_raise(d.rects[d.cur_rect]);
535 * @until evas_object_raise(d.rects[d.cur_rect]);
536 * @skip evas_object_lower(d.rects[d.cur_rect]);
537 * @until evas_object_lower(d.rects[d.cur_rect]);
538 * At any time, use the "s" command to see the status of the
539 * ordering. It will show the background's ordering too. Note that it
540 * also shows the @b layer for this object. It starts at a @b
541 * different layer than the others. Use "l" to change its layer
542 * (higher layer numbers mean higher layers). If the background is on
543 * the same layer as the others (0), you'll see it interact with them
544 * on the ordering. If it's in the layer above, no matter what you do,
545 * you'll see nothing but the white rectangle: it covers the other
546 * layers. For the initial layer (-1), it will never mess nor occlude
547 * the others.
548 *
549 * Let's make some tests with those commands. The rectangle which starts
550 * selected and which will receive our commands is the @b red one. It
551 * starts stacked above all the others, like seem above:
552 *
553 * @image html evas-stacking-example-00.png
554 * @image rtf evas-stacking-example-00.png
555 * @image latex evas-stacking-example-00.eps
556 *
557 * Stack it one level below, with 'b', and you'll get:
558 *
559 * @image html evas-stacking-example-01.png
560 * @image rtf evas-stacking-example-01.png
561 * @image latex evas-stacking-example-01.eps
562 * Note how the rectangle which laid above it, the green one, is now
563 * on top of it. Now change the rectangle to operate on to the blue
564 * one, with two consecutive 'c' commands. Note that it's the lowest
565 * one on the stack of rectangles. Issue the 'a' command for it, thus
566 * re-stacking it one level above:
567 *
568 * @image html evas-stacking-example-02.png
569 * @image rtf evas-stacking-example-02.png
570 * @image latex evas-stacking-example-02.eps
571 * You can send it to the top of its layer directly with the 't' command:
572 *
573 * @image html evas-stacking-example-03.png
574 * @image rtf evas-stacking-example-03.png
575 * @image latex evas-stacking-example-03.eps
576 * Now put it back to the bottom of that layer with 'm':
577 *
578 * @image html evas-stacking-example-04.png
579 * @image rtf evas-stacking-example-04.png
580 * @image latex evas-stacking-example-04.eps
581 * Like said above, we have two layers used at the beginning of the
582 * example: the default one (0) and the one immediately below it (-1),
583 * for the white background. Let's change this setup by issuing the
584 * 'l' command, which will change the background's layer to 1, i.e., a
585 * layer @b above the one holding the other rectangles:
586 *
587 * @image html evas-stacking-example-05.png
588 * @image rtf evas-stacking-example-05.png
589 * @image latex evas-stacking-example-05.eps
590 * See how it now covers everything else. Press 'l' again, taking it
591 * now to layer 0. It's still covering everything because it lands the
592 * layer as the highest one on the objects stack. As we have the blue
593 * rectangle as the one receiving stacking commands, hit 't' and
594 * you'll see it again:
595 *
596 * @image html evas-stacking-example-06.png
597 * @image rtf evas-stacking-example-06.png
598 * @image latex evas-stacking-example-06.eps
599 * By bringing the background back to layer -1 ('l'), you'll get:
600 *
601 * @image html evas-stacking-example-07.png
602 * @image rtf evas-stacking-example-07.png
603 * @image latex evas-stacking-example-07.eps
604 *
605 * The last two commands available are "p" and "r", which will make
606 * the target rectangle to @b pass (ignore) and @b repeat the mouse
607 * events occurring on it (the commands will cycle through on and off
608 * states). This is demonstrated with the following
609 * #EVAS_CALLBACK_MOUSE_DOWN callback, registered on each of the
610 * colored rectangles:
611 * @dontinclude evas-stacking.c
612 * @skip static void
613 * @until }
614 * Try to change these properties on the three rectangles while
615 * experimenting with mouse clicks on their intersection region.
616 *
617 * The full example follows.
618 *
619 * @include evas-stacking.c
620 * @example evas-stacking.c
621 */
622
623/**
624 * @page Example_Evas_Map_Overview Evas Map - Overview
625 * @dontinclude evas-map-utils.c
626 *
627 * Down to the very bottom, Map is simple: it takes an object and transforms
628 * the way it will be shown on screen. But using it properly can be a bit
629 * troublesome.
630 *
631 * For the most common operations there are utility functions that help in
632 * setting up the map to achieve the desired effects. Now we'll go through
633 * an overview of the map API and some of the things that can be done with
634 * it.
635 *
636 * The full code can be found @ref evas-map-utils.c "here".
637 *
638 * To show how some functions work, this example listens to keys pressed to
639 * toggle several options.
640 * @skip typedef
641 * @until App_Data
642 * @until ;
643 *
644 * In this program, we divide the window in four quadrants, each holding an
645 * object that will have different map configurations applied to them in each
646 * call to an animator function.
647 * @skip static Eina_Bool
648 * @until evas_output_size_get
649 *
650 * Let's first create a map and set some of our options to it. Only four
651 * points maps are supported, so we'll stick to that magic number. We can
652 * set a color for each vertex or apply one for all of them at once
653 * @until evas_map_util_points_color_set
654 *
655 * For the first object, we'll have a plain rectangle. At its creation, this
656 * rectangle was set to be semi-transparent, but whether its own alpha is
657 * used will be defined by the map's alpha setting. If the map's alpha is
658 * disabled, then the object will be completely opaque. The map's own color,
659 * however, will use any alpha set to it.
660 *
661 * So we get our object, initialize our map geometry to match the rectangle
662 * and make it rotate around its own center, then apply the map to the
663 * object so it takes effect.
664 * @until evas_object_map_enable_set
665 *
666 * The second object is an image. Here we don't have any color set for the
667 * object, but the image itself contains an alpha channel that will not be
668 * affected by the map settings, so even with alpha set to be off, the image
669 * will still be transparent. Color applied to the map will tint it though.
670 * Since setting a map copies it into the object, we can reuse the same one
671 * we created before. We initialize it to the new object while all other
672 * options are kept the same. Notice that no rotation will be done here, as
673 * that's just an utility function that takes the coordinates set for each
674 * point of the map and transforms it accordingly.
675 * @until evas_map_util_points_populate_from_object_full
676 *
677 * This time the object is a bit farther into the screen, by using a @c z
678 * value higher than 0 to init the map. We also need to map the image used
679 * by the object, so Evas knows how to transform it properly. For this we
680 * use the evas_map_point_image_uv_set() to tell the map what coordinate
681 * within the image corresponds to each point of the map.
682 * @until evas_map_point_image_uv_set(m, 3
683 *
684 * This object will also be rotated, but in all three axis and around some
685 * other point, not its center, chosen mostly at random. If enabled, lighting
686 * will be applied to, from a light source at the center of the window.
687 * @until evas_object_map_enable_set
688 *
689 * For the third object we are doing, once more, a 3D rotation, but this time
690 * perspective will be applied to our map to make it look more realistic.
691 * The lighting source also follows the mouse cursor and it's possible to
692 * toggle backface culling, so that the object is hidden whenever we are
693 * not seeing its front face.
694 * @until evas_object_map_enable_set
695 *
696 * And we free this map, since since we messed too much with it and for the
697 * last object we want something cleaner.
698 * @until evas_map_free
699 *
700 * The last object is actually two. One image, with an image set to it, and
701 * one image proxying the first one with evas_object_image_source_set(). This
702 * way, the second object will show whatever content its source has.
703 * This time we'll be using a map more manually to simulate a simple reflection
704 * of the original image.
705 *
706 * We know that the reflection object is placed just like the original, so
707 * we take a shortcut by just getting the geometry of our to-be-mapped object.
708 * We also need to get the image size of the source.
709 * @until evas_object_image_size_get
710 *
711 * For this we'll create a map shaped so that it begins at the base of our
712 * image and it expands horizontally as it grows (downwards) in height.
713 * @until evas_map_point_coord_set(m, 3
714 *
715 * Since the reflection should show the image inverted, we need to map it
716 * this way. The first point of the map (top-left) will be mapped to the
717 * mapped to the first pixel of the last row. There's no horizontal reflection
718 * and we want the full width of the image, but as we map its upper side ww
719 * will only take two thirds of the image.
720 * @until evas_map_point_image_uv_set(m, 3
721 *
722 * Finally, to fade out our reflection we set the colors for each point in
723 * the map. The two at the top need to be visible, but we'll tone them down
724 * a bit and make them a bit translucent. The other two will go straight to
725 * full transparency. Evas interpolates the colors from one point to the next,
726 * so this will make them fade out.
727 * @until evas_object_map_enable_set
728 *
729 * Close up by freeing the map and do some other things needed to keep stuff
730 * moving in our animations and we are done.
731 * @until }
732 *
733 * The rest of the program is setup and listening to key events. Nothing that
734 * matters within the scope of this example, so we are going to skip it.
735 * Refer to it @ref evas-map-utils.c "here" however to see how everything
736 * fits together.
737 *
738 * @example evas-map-utils.c
739 */
740
741/**
742 * @page Example_Evas_Smart_Objects Evas object smart objects
743 * @dontinclude evas-smart-object.c
744 *
745 * In this example, we illustrate how to create and handle Evas smart objects.
746 *
747 * A smart object is one that provides custom functions to handle
748 * clipping, hiding, moving, resizing, color setting and more on @b
749 * child elements, automatically, for the smart object's user. They
750 * could be as simple as a group of objects that move together (see
751 * @ref Evas_Smart_Object_Clipped) or implementations of whole complex
752 * UI widgets, providing some intelligence (thus the name) and
753 * extension to simple Evas objects.
754 *
755 * Here, we create one as an example. What it does is to control (at
756 * maximum) 2 child objects, with regard to their geometries and
757 * colors. There can be a "left" child and a "right" one. The former
758 * will always occupy the top left quadrant of the smart object's
759 * area, while the latter will occupy the bottom right. The smart
760 * object will also contain an @b internal decorative border object,
761 * which will also be controlled by it, naturally.
762 *
763 * Here is where we add it to the canvas:
764 * @skip d.smt = evas_smart_example_add(d.evas);
765 * @until show
766 *
767 * The magic starts to happen in the @c evas_smart_example_add()
768 * function, which is one in the example smart object's defined @b
769 * interface. These should be the functions you would export to the
770 * users of your smart object. We made three for this one:
771 * - @c evas_smart_example_add(): add a new instance of the example
772 * smart object to a canvas
773 * - @c evas_smart_example_remove(): remove a given child of the smart
774 * object from it
775 * - @c evas_smart_example_set_left(): set the left child of the smart
776 * object
777 * - @c evas_smart_example_set_right(): set the right child of the
778 * smart object
779 *
780 * The object's creation takes place as:
781 * @dontinclude evas-smart-object.c
782 * @skip add a new example smart object to a canvas
783 * @until }
784 *
785 * Smart objects are defined by <b>smart classes</b>, which are structs
786 * defining their interfaces, or <b>smart functions</b> (see
787 * #Evas_Smart_Class, the base class for any smart object). As you
788 * see, one has to use the evas_object_smart_add() function to
789 * instantiate smart objects. Its second parameter is what matters --
790 * an #Evas_Smart struct, which contains all the smart class
791 * definitions (smart functions, smart callbacks, and the like). Note,
792 * however, that @c _evas_smart_example_smart_class_new() seems not to
793 * be defined in our example's code. That's because it came from a very
794 * handy <b>helper macro</b>:
795 * @dontinclude evas-smart-object.c
796 * @skip EVAS_SMART_SUBCLASS_NEW
797 * @until _smart_callbacks
798 * What it does is to @b subclass a given existing smart class, thus
799 * specializing it. This is very common and useful in Evas. There is a
800 * built-in smart object, the "clipped smart object", which implements
801 * a behavior mostly desired by many other smart object implementors:
802 * it will clip its children to its area and move them along with it,
803 * on evas_object_move() calls. Then, our example smart object will
804 * get that behavior for free.
805 *
806 * The first argument to the macro,
807 * @dontinclude evas-smart-object.c
808 * @skip _evas_smart_example_type
809 * @until _evas_smart_example_type
810 * will define the new smart class' name. The second tells the macro
811 * what is the @b prefix of the function it will be declaring with a @c
812 * _smart_set_user() suffix. On this function, we may override/extend
813 * any desired method from our parent smart class:
814 * @dontinclude evas-smart-object.c
815 * @skip setting our smart interface
816 * @until }
817 *
818 * The first function pointer's code will take place at an example
819 * smart object's @b creation time:
820 * @dontinclude evas-smart-object.c
821 * @skip create and setup
822 * @until }
823 *
824 * The #EVAS_SMART_DATA_ALLOC macro will take care of allocating our
825 * smart object data, which will be available on other contexts for us
826 * (mainly in our interface functions):
827 * @dontinclude evas-smart-object.c
828 * @skip typedef struct _Evas_Smart_Example_Data
829 * @until };
830 *
831 * See that, as we're inheriting from the clipped smart object's
832 * class, we @b must have their data struct as our first member. Other
833 * data of interest for us is a child members array and the border
834 * object's handle. The latter is what is created in the last
835 * mentioned function. Note how to tell Evas the border will be
836 * managed by our smart object from that time on:
837 * <code>evas_object_smart_member_add(priv->border, o);</code>.
838 * The counterpart of this function is exemplified on the smart
839 * object's interface function to remove children:
840 * @skip remove a child element
841 * @until set to
842 *
843 * At the end of that function we make use of an constant defined by
844 * the #EVAS_SMART_SUBCLASS_NEW: @c _evas_smart_example_parent_sc. It
845 * has the same prefix we passed to the macro, as you can see, and it
846 * holds a pointer to our @b parent smart class. Then, we can call the
847 * specialized method, itself, after our code. The @c del, @c hide, @c
848 * show and @c resize specializations are straightforward, we let the
849 * reader take a look at them below to check their behavior. What's
850 * interesting is the @c calculate one:
851 * @dontinclude evas-smart-object.c
852 * @skip act on child objects' properties
853 * @until setting
854 *
855 * This code will take place whenever the smart object itself is
856 * flagged "dirty", i.e., must be recalculated for rendering (that
857 * could come from changes on its clipper, resizing, moving,
858 * etc). There, we make sure the decorative border lies on the edges of
859 * the smart object and the children, if any, lie on their respective
860 * quadrants.
861 *
862 * After instantiating our smart object, we do some checks to exemplify
863 * some of the API on smart objects:
864 * @dontinclude evas-smart-object.c
865 * @skip ret = evas_object_smart_type_check
866 * @until "no"
867 * The evas_object_smart_type_check() one will assure we have the
868 * string naming our smart class really set to the live object. The
869 * evas_object_smart_clipped_clipper_get() exemplifies usage of
870 * "static clippers" -- clipped smart objects have their global
871 * clippers flagged static.
872 *
873 * Other important things we also exemplify here are <b>smart
874 * callbacks</b> and smart callback @b introspection:
875 * @dontinclude evas-smart-object.c
876 * @skip EVT_CHILDREN_NUMBER_CHANGED
877 * @until ;
878 *
879 * Here we declare our array of smart callback descriptions, which has
880 * one element only, in this case. That callback will take place, as
881 * the name indicates, whenever the number of member objects in our
882 * smart object example instance changes. That global array variable
883 * must be the last argument to #EVAS_SMART_SUBCLASS_NEW, so that it's
884 * registered as the <b>smart class</b>'s callbacks description.
885 *
886 * After we instantiate the smart object, we take a look on those
887 * descriptions and register a callback on that unique smart event:
888 * @dontinclude evas-smart-object.c
889 * @skip for (;
890 * @until focus_set
891 *
892 * The code of the callback will just print how many member objects we
893 * have, which is an integer argument of the callback itself, as
894 * flagged by its description:
895 * @dontinclude evas-smart-object.c
896 * @skip callback on number of member objects changed
897 * @until }
898 *
899 * One of the points at which we issue that callback is inside the @c
900 * evas_smart_example_remove(), code that was already shown.
901 *
902 * As in other examples, to interact with this one there's a command
903 * line interface. A help string can be asked for with the 'h' key:
904 * @dontinclude evas-smart-object.c
905 * @skip static const char *commands =
906 * @until ;
907 * Use 'l' and 'r' keys, to create new rectangles and place them on
908 * the left (@c evas_smart_example_set_left()) or right (@c
909 * evas_smart_example_set_right()) spots of our smart object,
910 * respectively. The 'w' command will remove all member objects from
911 * the smart object and delete them. The keyboard arrows will move the
912 * smart object along the canvas. See how it takes any child objects
913 * with it during its movement. The 'd' and 'i' keys will increase or
914 * decrease the smart object's size -- see how it affects the
915 * children's sizes, too. Finally, 'c' will change the color of the
916 * smart object's clipper (which is the exact internal clipper coming
917 * from a clipped smart object):
918 * @dontinclude evas-smart-object.c
919 * @skip d.clipper =
920 * @until .a);
921 *
922 * "Real life" examples of smart objects are Edje and Emotion objects:
923 * they both have independent libraries implementing their
924 * behavior. The full example follows.
925 *
926 * @include evas-smart-object.c
927 * @example evas-smart-object.c
928 */
929
930/**
931 * @page Example_Evas_Smart_Interfaces Evas object smart interfaces
932 * @dontinclude evas-smart-interface.c
933 *
934 * In this example, we illustrate how to create and handle Evas smart