From 56b5e15f26e16ec835fdcdc7649347f23fb6abf6 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Fri, 8 Nov 2002 08:02:15 +0000 Subject: [PATCH] code move SVN revision: 6445 --- legacy/evas/data/arial.ttf | Bin 0 -> 143300 bytes legacy/evas/data/backdrop.png | Bin 0 -> 5697 bytes legacy/evas/data/bg.png | Bin 0 -> 474071 bytes legacy/evas/data/e_logo.png | Bin 0 -> 7092 bytes legacy/evas/data/evas_logo.png | Bin 0 -> 22834 bytes legacy/evas/data/grunge.ttf | Bin 0 -> 53204 bytes legacy/evas/data/morpheus.ttf | Bin 0 -> 68044 bytes legacy/evas/data/notepad.ttf | Bin 0 -> 31312 bytes legacy/evas/data/panel.png | Bin 0 -> 791 bytes legacy/evas/data/panel_shadow.png | Bin 0 -> 449 bytes legacy/evas/data/panel_top.png | Bin 0 -> 196 bytes legacy/evas/data/sphere.png | Bin 0 -> 2099 bytes legacy/evas/data/sphere_shadow.png | Bin 0 -> 1344 bytes legacy/evas/data/t1.png | Bin 0 -> 1002 bytes legacy/evas/data/t2.png | Bin 0 -> 1131 bytes legacy/evas/data/test_pattern.png | Bin 0 -> 19122 bytes legacy/evas/debian/evas2-test.files | 2 + legacy/evas/debian/libevas2-dev.files | 5 + legacy/evas/debian/libevas2.files | 2 + legacy/evas/doc/evas.css | 55 + legacy/evas/doc/foot.html | 2 + legacy/evas/doc/head.html | 16 + legacy/evas/doc/img/evas.eps | 149 + legacy/evas/doc/img/evas.fig | 25 + legacy/evas/doc/img/evas.png | Bin 0 -> 11395 bytes legacy/evas/doc/img/evas.xcf | Bin 0 -> 523182 bytes legacy/evas/doc/img/evas_big.eps | 5170 +++++ legacy/evas/doc/img/evas_big.png | Bin 0 -> 47962 bytes legacy/evas/doc/img/evas_small.png | Bin 0 -> 2983 bytes legacy/evas/proj/Makefile.am | 3 + legacy/evas/proj/win32_gdi/Makefile.am | 11 + .../proj/win32_gdi/evas_software_win32.vcb | Bin 0 -> 820224 bytes .../proj/win32_gdi/evas_software_win32.vcl | 130 + .../proj/win32_gdi/evas_software_win32.vco | Bin 0 -> 81920 bytes .../proj/win32_gdi/evas_software_win32.vcp | 1628 ++ .../proj/win32_gdi/evas_software_win32.vcw | 41 + legacy/evas/proj/win32_gdi/evaslib.vcb | Bin 0 -> 214016 bytes legacy/evas/proj/win32_gdi/evaslib.vcl | 292 + legacy/evas/proj/win32_gdi/evaslib.vco | Bin 0 -> 37888 bytes legacy/evas/proj/win32_gdi/evaslib.vcp | 16453 ++++++++++++++++ legacy/evas/proj/win32_gdi/evaslib.vcw | 29 + legacy/evas/src/bin/Makefile.am | 76 + legacy/evas/src/bin/evas_directfb_main.c | 132 + legacy/evas/src/bin/evas_directfb_window.c | 382 + legacy/evas/src/bin/evas_fb_main.c | 41 + legacy/evas/src/bin/evas_gl_x11_main.c | 140 + .../evas/src/bin/evas_software_qtopia_main.h | 65 + .../src/bin/evas_software_win32/Makefile.am | 10 + .../src/bin/evas_software_win32/ReadMe.txt | 59 + .../src/bin/evas_software_win32/StdAfx.cpp | 8 + .../evas/src/bin/evas_software_win32/StdAfx.h | 25 + .../evas_software_win32.cpp | 323 + .../evas_software_win32/evas_software_win32.h | 12 + .../evas_software_win32.rc | 152 + .../evas/src/bin/evas_software_win32/newres.h | 39 + .../src/bin/evas_software_win32/resource.h | 23 + legacy/evas/src/bin/evas_software_x11_main.c | 229 + .../src/bin/evas_software_x11_perf_load.c | 181 + .../src/bin/evas_software_x11_perf_test.c | 162 + legacy/evas/src/bin/evas_test_main.c | 1986 ++ legacy/evas/src/bin/evas_test_main.h | 43 + legacy/evas/src/lib/Evas.h | 449 + legacy/evas/src/lib/Evas_Engine_DirectFB.h | 23 + legacy/evas/src/lib/Evas_Engine_FB.h | 22 + legacy/evas/src/lib/Evas_Engine_GL_X11.h | 35 + .../src/lib/Evas_Engine_Software_Qtopia.h | 31 + .../src/lib/Evas_Engine_Software_Win32_GDI.h | 29 + .../evas/src/lib/Evas_Engine_Software_X11.h | 48 + legacy/evas/src/lib/Makefile.am | 104 + legacy/evas/src/lib/canvas/Makefile.am | 40 + legacy/evas/src/lib/canvas/evas_callbacks.c | 139 + legacy/evas/src/lib/canvas/evas_clip.c | 174 + legacy/evas/src/lib/canvas/evas_data.c | 74 + legacy/evas/src/lib/canvas/evas_events.c | 470 + legacy/evas/src/lib/canvas/evas_layer.c | 151 + legacy/evas/src/lib/canvas/evas_main.c | 897 + legacy/evas/src/lib/canvas/evas_name.c | 41 + .../src/lib/canvas/evas_object_gradient.c | 373 + .../evas/src/lib/canvas/evas_object_image.c | 1234 ++ legacy/evas/src/lib/canvas/evas_object_line.c | 399 + legacy/evas/src/lib/canvas/evas_object_main.c | 833 + .../evas/src/lib/canvas/evas_object_polygon.c | 407 + .../src/lib/canvas/evas_object_rectangle.c | 346 + .../evas/src/lib/canvas/evas_object_smart.c | 330 + legacy/evas/src/lib/canvas/evas_object_text.c | 802 + legacy/evas/src/lib/canvas/evas_rectangle.c | 95 + legacy/evas/src/lib/canvas/evas_render.c | 326 + legacy/evas/src/lib/canvas/evas_smart.c | 87 + legacy/evas/src/lib/canvas/evas_stack.c | 216 + legacy/evas/src/lib/data/Makefile.am | 24 + legacy/evas/src/lib/data/evas_hash.c | 161 + legacy/evas/src/lib/data/evas_list.c | 263 + legacy/evas/src/lib/data/evas_object_list.c | 172 + legacy/evas/src/lib/engines/Makefile.am | 11 + .../evas/src/lib/engines/common/Makefile.am | 58 + .../common/evas_blend_alpha_color_pixel.c | 142 + .../engines/common/evas_blend_color_pixel.c | 215 + .../src/lib/engines/common/evas_blend_main.c | 44 + .../common/evas_blend_pixel_cmod_pixel.c | 119 + .../common/evas_blend_pixel_mul_pixel.c | 202 + .../engines/common/evas_blend_pixel_pixel.c | 334 + .../src/lib/engines/common/evas_blit_main.c | 95 + .../lib/engines/common/evas_convert_color.c | 1 + .../lib/engines/common/evas_convert_gry_1.c | 5 + .../lib/engines/common/evas_convert_gry_4.c | 8 + .../lib/engines/common/evas_convert_gry_8.c | 17 + .../lib/engines/common/evas_convert_main.c | 479 + .../lib/engines/common/evas_convert_rgb_16.c | 1012 + .../lib/engines/common/evas_convert_rgb_24.c | 8 + .../lib/engines/common/evas_convert_rgb_32.c | 294 + .../lib/engines/common/evas_convert_rgb_8.c | 209 + legacy/evas/src/lib/engines/common/evas_cpu.c | 97 + .../src/lib/engines/common/evas_draw_main.c | 782 + .../src/lib/engines/common/evas_font_draw.c | 169 + .../src/lib/engines/common/evas_font_load.c | 239 + .../src/lib/engines/common/evas_font_main.c | 147 + .../src/lib/engines/common/evas_font_query.c | 226 + .../lib/engines/common/evas_gradient_main.c | 274 + .../src/lib/engines/common/evas_image_load.c | 1143 ++ .../src/lib/engines/common/evas_image_main.c | 376 + .../src/lib/engines/common/evas_line_main.c | 230 + .../lib/engines/common/evas_polygon_main.c | 255 + .../lib/engines/common/evas_rectangle_main.c | 73 + .../src/lib/engines/common/evas_scale_main.c | 6 + .../lib/engines/common/evas_scale_sample.c | 409 + .../lib/engines/common/evas_scale_smooth.c | 740 + .../engines/common/evas_scale_smooth_scaler.c | 1753 ++ .../evas/src/lib/engines/common/evas_tiler.c | 361 + .../evas/src/lib/engines/directfb/Makefile.am | 38 + .../lib/engines/directfb/evas_engine_dfb.c | 938 + .../lib/engines/directfb/evas_engine_dfb.h | 182 + .../directfb/evas_engine_dfb_image_objects.c | 806 + .../directfb/evas_engine_dfb_image_objects.h | 49 + legacy/evas/src/lib/engines/fb/Makefile.am | 40 + legacy/evas/src/lib/engines/fb/evas_engine.c | 1017 + legacy/evas/src/lib/engines/fb/evas_engine.h | 59 + legacy/evas/src/lib/engines/fb/evas_fb.h | 95 + legacy/evas/src/lib/engines/fb/evas_fb_main.c | 584 + legacy/evas/src/lib/engines/fb/evas_outbuf.c | 402 + .../src/lib/engines/gl_common/Makefile.am | 32 + .../src/lib/engines/gl_common/evas_gl_image.c | 1 + .../evas/src/lib/engines/gl_x11/Makefile.am | 36 + .../evas/src/lib/engines/gl_x11/evas_engine.c | 775 + .../evas/src/lib/engines/gl_x11/evas_engine.h | 13 + .../evas/src/lib/engines/gl_x11/evas_x_main.c | 10 + .../lib/engines/software_qtopia/Makefile.am | 40 + .../lib/engines/software_qtopia/evas_engine.c | 1040 + .../lib/engines/software_qtopia/evas_engine.h | 103 + .../lib/engines/software_qtopia/evas_outbuf.c | 238 + .../engines/software_qtopia/evas_qt_main.cpp | 109 + .../engines/software_win32_gdi/Makefile.am | 6 + .../engines/software_win32_gdi/evas_engine.c | 0 .../engines/software_win32_gdi/evas_engine.h | 0 .../engines/software_win32_gdi/evas_outbuf.c | 0 .../software_win32_gdi/evas_win32_buffer.c | 0 .../software_win32_gdi/evas_win32_main.c | 0 .../src/lib/engines/software_x11/Makefile.am | 42 + .../lib/engines/software_x11/evas_engine.c | 1158 ++ .../lib/engines/software_x11/evas_engine.h | 134 + .../lib/engines/software_x11/evas_outbuf.c | 1297 ++ .../lib/engines/software_x11/evas_x_buffer.c | 190 + .../lib/engines/software_x11/evas_x_color.c | 337 + .../lib/engines/software_x11/evas_x_main.c | 10 + legacy/evas/src/lib/file/Makefile.am | 22 + legacy/evas/src/lib/file/evas_path.c | 356 + legacy/evas/src/lib/include/Makefile.am | 13 + legacy/evas/src/lib/include/evas_common.h | 837 + .../lib/include/evas_engine_api_directfb.h | 8 + .../evas/src/lib/include/evas_engine_api_fb.h | 6 + .../src/lib/include/evas_engine_api_gl_x11.h | 10 + .../include/evas_engine_api_software_qtopia.h | 6 + .../evas_engine_api_software_win32_gdi.h | 6 + .../include/evas_engine_api_software_x11.h | 7 + legacy/evas/src/lib/include/evas_mmx.h | 584 + legacy/evas/src/lib/include/evas_options.h | 68 + legacy/evas/src/lib/include/evas_private.h | 458 + legacy/evas/src/lib/main.c | 70 + 177 files changed, 59661 insertions(+) create mode 100644 legacy/evas/data/arial.ttf create mode 100644 legacy/evas/data/backdrop.png create mode 100644 legacy/evas/data/bg.png create mode 100644 legacy/evas/data/e_logo.png create mode 100644 legacy/evas/data/evas_logo.png create mode 100644 legacy/evas/data/grunge.ttf create mode 100644 legacy/evas/data/morpheus.ttf create mode 100644 legacy/evas/data/notepad.ttf create mode 100644 legacy/evas/data/panel.png create mode 100644 legacy/evas/data/panel_shadow.png create mode 100644 legacy/evas/data/panel_top.png create mode 100644 legacy/evas/data/sphere.png create mode 100644 legacy/evas/data/sphere_shadow.png create mode 100644 legacy/evas/data/t1.png create mode 100644 legacy/evas/data/t2.png create mode 100644 legacy/evas/data/test_pattern.png create mode 100644 legacy/evas/debian/evas2-test.files create mode 100644 legacy/evas/debian/libevas2-dev.files create mode 100644 legacy/evas/debian/libevas2.files create mode 100644 legacy/evas/doc/evas.css create mode 100644 legacy/evas/doc/foot.html create mode 100644 legacy/evas/doc/head.html create mode 100644 legacy/evas/doc/img/evas.eps create mode 100644 legacy/evas/doc/img/evas.fig create mode 100644 legacy/evas/doc/img/evas.png create mode 100644 legacy/evas/doc/img/evas.xcf create mode 100644 legacy/evas/doc/img/evas_big.eps create mode 100644 legacy/evas/doc/img/evas_big.png create mode 100644 legacy/evas/doc/img/evas_small.png create mode 100644 legacy/evas/proj/Makefile.am create mode 100644 legacy/evas/proj/win32_gdi/Makefile.am create mode 100644 legacy/evas/proj/win32_gdi/evas_software_win32.vcb create mode 100644 legacy/evas/proj/win32_gdi/evas_software_win32.vcl create mode 100644 legacy/evas/proj/win32_gdi/evas_software_win32.vco create mode 100644 legacy/evas/proj/win32_gdi/evas_software_win32.vcp create mode 100644 legacy/evas/proj/win32_gdi/evas_software_win32.vcw create mode 100644 legacy/evas/proj/win32_gdi/evaslib.vcb create mode 100644 legacy/evas/proj/win32_gdi/evaslib.vcl create mode 100644 legacy/evas/proj/win32_gdi/evaslib.vco create mode 100644 legacy/evas/proj/win32_gdi/evaslib.vcp create mode 100644 legacy/evas/proj/win32_gdi/evaslib.vcw create mode 100644 legacy/evas/src/bin/Makefile.am create mode 100644 legacy/evas/src/bin/evas_directfb_main.c create mode 100644 legacy/evas/src/bin/evas_directfb_window.c create mode 100644 legacy/evas/src/bin/evas_fb_main.c create mode 100644 legacy/evas/src/bin/evas_gl_x11_main.c create mode 100644 legacy/evas/src/bin/evas_software_qtopia_main.h create mode 100644 legacy/evas/src/bin/evas_software_win32/Makefile.am create mode 100644 legacy/evas/src/bin/evas_software_win32/ReadMe.txt create mode 100644 legacy/evas/src/bin/evas_software_win32/StdAfx.cpp create mode 100644 legacy/evas/src/bin/evas_software_win32/StdAfx.h create mode 100644 legacy/evas/src/bin/evas_software_win32/evas_software_win32.cpp create mode 100644 legacy/evas/src/bin/evas_software_win32/evas_software_win32.h create mode 100644 legacy/evas/src/bin/evas_software_win32/evas_software_win32.rc create mode 100644 legacy/evas/src/bin/evas_software_win32/newres.h create mode 100644 legacy/evas/src/bin/evas_software_win32/resource.h create mode 100644 legacy/evas/src/bin/evas_software_x11_main.c create mode 100644 legacy/evas/src/bin/evas_software_x11_perf_load.c create mode 100644 legacy/evas/src/bin/evas_software_x11_perf_test.c create mode 100644 legacy/evas/src/bin/evas_test_main.c create mode 100644 legacy/evas/src/bin/evas_test_main.h create mode 100644 legacy/evas/src/lib/Evas.h create mode 100644 legacy/evas/src/lib/Evas_Engine_DirectFB.h create mode 100644 legacy/evas/src/lib/Evas_Engine_FB.h create mode 100644 legacy/evas/src/lib/Evas_Engine_GL_X11.h create mode 100644 legacy/evas/src/lib/Evas_Engine_Software_Qtopia.h create mode 100644 legacy/evas/src/lib/Evas_Engine_Software_Win32_GDI.h create mode 100644 legacy/evas/src/lib/Evas_Engine_Software_X11.h create mode 100644 legacy/evas/src/lib/Makefile.am create mode 100644 legacy/evas/src/lib/canvas/Makefile.am create mode 100644 legacy/evas/src/lib/canvas/evas_callbacks.c create mode 100644 legacy/evas/src/lib/canvas/evas_clip.c create mode 100644 legacy/evas/src/lib/canvas/evas_data.c create mode 100644 legacy/evas/src/lib/canvas/evas_events.c create mode 100644 legacy/evas/src/lib/canvas/evas_layer.c create mode 100644 legacy/evas/src/lib/canvas/evas_main.c create mode 100644 legacy/evas/src/lib/canvas/evas_name.c create mode 100644 legacy/evas/src/lib/canvas/evas_object_gradient.c create mode 100644 legacy/evas/src/lib/canvas/evas_object_image.c create mode 100644 legacy/evas/src/lib/canvas/evas_object_line.c create mode 100644 legacy/evas/src/lib/canvas/evas_object_main.c create mode 100644 legacy/evas/src/lib/canvas/evas_object_polygon.c create mode 100644 legacy/evas/src/lib/canvas/evas_object_rectangle.c create mode 100644 legacy/evas/src/lib/canvas/evas_object_smart.c create mode 100644 legacy/evas/src/lib/canvas/evas_object_text.c create mode 100644 legacy/evas/src/lib/canvas/evas_rectangle.c create mode 100644 legacy/evas/src/lib/canvas/evas_render.c create mode 100644 legacy/evas/src/lib/canvas/evas_smart.c create mode 100644 legacy/evas/src/lib/canvas/evas_stack.c create mode 100644 legacy/evas/src/lib/data/Makefile.am create mode 100644 legacy/evas/src/lib/data/evas_hash.c create mode 100644 legacy/evas/src/lib/data/evas_list.c create mode 100644 legacy/evas/src/lib/data/evas_object_list.c create mode 100644 legacy/evas/src/lib/engines/Makefile.am create mode 100644 legacy/evas/src/lib/engines/common/Makefile.am create mode 100644 legacy/evas/src/lib/engines/common/evas_blend_alpha_color_pixel.c create mode 100644 legacy/evas/src/lib/engines/common/evas_blend_color_pixel.c create mode 100644 legacy/evas/src/lib/engines/common/evas_blend_main.c create mode 100644 legacy/evas/src/lib/engines/common/evas_blend_pixel_cmod_pixel.c create mode 100644 legacy/evas/src/lib/engines/common/evas_blend_pixel_mul_pixel.c create mode 100644 legacy/evas/src/lib/engines/common/evas_blend_pixel_pixel.c create mode 100644 legacy/evas/src/lib/engines/common/evas_blit_main.c create mode 100644 legacy/evas/src/lib/engines/common/evas_convert_color.c create mode 100644 legacy/evas/src/lib/engines/common/evas_convert_gry_1.c create mode 100644 legacy/evas/src/lib/engines/common/evas_convert_gry_4.c create mode 100644 legacy/evas/src/lib/engines/common/evas_convert_gry_8.c create mode 100644 legacy/evas/src/lib/engines/common/evas_convert_main.c create mode 100644 legacy/evas/src/lib/engines/common/evas_convert_rgb_16.c create mode 100644 legacy/evas/src/lib/engines/common/evas_convert_rgb_24.c create mode 100644 legacy/evas/src/lib/engines/common/evas_convert_rgb_32.c create mode 100644 legacy/evas/src/lib/engines/common/evas_convert_rgb_8.c create mode 100644 legacy/evas/src/lib/engines/common/evas_cpu.c create mode 100644 legacy/evas/src/lib/engines/common/evas_draw_main.c create mode 100644 legacy/evas/src/lib/engines/common/evas_font_draw.c create mode 100644 legacy/evas/src/lib/engines/common/evas_font_load.c create mode 100644 legacy/evas/src/lib/engines/common/evas_font_main.c create mode 100644 legacy/evas/src/lib/engines/common/evas_font_query.c create mode 100644 legacy/evas/src/lib/engines/common/evas_gradient_main.c create mode 100644 legacy/evas/src/lib/engines/common/evas_image_load.c create mode 100644 legacy/evas/src/lib/engines/common/evas_image_main.c create mode 100644 legacy/evas/src/lib/engines/common/evas_line_main.c create mode 100644 legacy/evas/src/lib/engines/common/evas_polygon_main.c create mode 100644 legacy/evas/src/lib/engines/common/evas_rectangle_main.c create mode 100644 legacy/evas/src/lib/engines/common/evas_scale_main.c create mode 100644 legacy/evas/src/lib/engines/common/evas_scale_sample.c create mode 100644 legacy/evas/src/lib/engines/common/evas_scale_smooth.c create mode 100644 legacy/evas/src/lib/engines/common/evas_scale_smooth_scaler.c create mode 100644 legacy/evas/src/lib/engines/common/evas_tiler.c create mode 100644 legacy/evas/src/lib/engines/directfb/Makefile.am create mode 100644 legacy/evas/src/lib/engines/directfb/evas_engine_dfb.c create mode 100644 legacy/evas/src/lib/engines/directfb/evas_engine_dfb.h create mode 100644 legacy/evas/src/lib/engines/directfb/evas_engine_dfb_image_objects.c create mode 100644 legacy/evas/src/lib/engines/directfb/evas_engine_dfb_image_objects.h create mode 100644 legacy/evas/src/lib/engines/fb/Makefile.am create mode 100644 legacy/evas/src/lib/engines/fb/evas_engine.c create mode 100644 legacy/evas/src/lib/engines/fb/evas_engine.h create mode 100644 legacy/evas/src/lib/engines/fb/evas_fb.h create mode 100644 legacy/evas/src/lib/engines/fb/evas_fb_main.c create mode 100644 legacy/evas/src/lib/engines/fb/evas_outbuf.c create mode 100644 legacy/evas/src/lib/engines/gl_common/Makefile.am create mode 100644 legacy/evas/src/lib/engines/gl_common/evas_gl_image.c create mode 100644 legacy/evas/src/lib/engines/gl_x11/Makefile.am create mode 100644 legacy/evas/src/lib/engines/gl_x11/evas_engine.c create mode 100644 legacy/evas/src/lib/engines/gl_x11/evas_engine.h create mode 100644 legacy/evas/src/lib/engines/gl_x11/evas_x_main.c create mode 100644 legacy/evas/src/lib/engines/software_qtopia/Makefile.am create mode 100644 legacy/evas/src/lib/engines/software_qtopia/evas_engine.c create mode 100644 legacy/evas/src/lib/engines/software_qtopia/evas_engine.h create mode 100644 legacy/evas/src/lib/engines/software_qtopia/evas_outbuf.c create mode 100644 legacy/evas/src/lib/engines/software_qtopia/evas_qt_main.cpp create mode 100644 legacy/evas/src/lib/engines/software_win32_gdi/Makefile.am create mode 100644 legacy/evas/src/lib/engines/software_win32_gdi/evas_engine.c create mode 100644 legacy/evas/src/lib/engines/software_win32_gdi/evas_engine.h create mode 100644 legacy/evas/src/lib/engines/software_win32_gdi/evas_outbuf.c create mode 100644 legacy/evas/src/lib/engines/software_win32_gdi/evas_win32_buffer.c create mode 100644 legacy/evas/src/lib/engines/software_win32_gdi/evas_win32_main.c create mode 100644 legacy/evas/src/lib/engines/software_x11/Makefile.am create mode 100644 legacy/evas/src/lib/engines/software_x11/evas_engine.c create mode 100644 legacy/evas/src/lib/engines/software_x11/evas_engine.h create mode 100644 legacy/evas/src/lib/engines/software_x11/evas_outbuf.c create mode 100644 legacy/evas/src/lib/engines/software_x11/evas_x_buffer.c create mode 100644 legacy/evas/src/lib/engines/software_x11/evas_x_color.c create mode 100644 legacy/evas/src/lib/engines/software_x11/evas_x_main.c create mode 100644 legacy/evas/src/lib/file/Makefile.am create mode 100644 legacy/evas/src/lib/file/evas_path.c create mode 100644 legacy/evas/src/lib/include/Makefile.am create mode 100644 legacy/evas/src/lib/include/evas_common.h create mode 100644 legacy/evas/src/lib/include/evas_engine_api_directfb.h create mode 100644 legacy/evas/src/lib/include/evas_engine_api_fb.h create mode 100644 legacy/evas/src/lib/include/evas_engine_api_gl_x11.h create mode 100644 legacy/evas/src/lib/include/evas_engine_api_software_qtopia.h create mode 100644 legacy/evas/src/lib/include/evas_engine_api_software_win32_gdi.h create mode 100644 legacy/evas/src/lib/include/evas_engine_api_software_x11.h create mode 100644 legacy/evas/src/lib/include/evas_mmx.h create mode 100644 legacy/evas/src/lib/include/evas_options.h create mode 100644 legacy/evas/src/lib/include/evas_private.h create mode 100644 legacy/evas/src/lib/main.c diff --git a/legacy/evas/data/arial.ttf b/legacy/evas/data/arial.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2cca31563bd2660cc38fc3c4f3bf63551cf5e0df GIT binary patch literal 143300 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

I&vuwo||dzP|b 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⋘( zkZeMpz8w1Q7HGU(31*oPAS$4A(;dvJ-UGX#D#je5#XK;p;@G#n&S*djRxk}Af++o4uiWm6=!SGs_<~ASR)O?r=mD1PHCZ7G0 z`)tG733>jA=2`0D(1_zYj&C*2K0aU|XK=ixE~7X}v=u25GxR|V~*QA`*#W=uiJ zY1J{q3s%bV66m&DL(Egu(ZOwD9mI@vMy9dR!i2_znG@zsSUzF(1O!`FCXB*~?Guy< zq$Z?ET|$Z9q5J4c<1r?&Hys>&26$p%b+;FVv3j}61bvAlAqr-M>dC#N>Vp6sQkXRhHx_H@wuOb>!X>>JT{NS(6S371l9rod*Nvy{F_t?a)Msw!Q`(AnDhcEqT z^MAke;)_4|$*Y7PE(YMwd@Sa0e7F`8|M7gTozO_mbr@!uCUznxPeQ7xMkfl4+6`~D z%I3k|vIX9$(;ay0a*N`=6RW>U2U#{3@9sm4zqf2&+r$31=Sw&5eu;#4>Bd-qC(Jw) zEkn?ZkQBbqC>3;_Iqp6*hFvq^CtNEFGeCp}lUFc|ztz|f56vCo!-LEO0 zSQMl{E%uY`F~m8!(UJy%+c6LADPK7I^m}@G?q9w1se|SE%a>m;YdrgJ%<)IZE_?hO zwCH+h4Zq^Bxw~-)`DZS4BnpI`!J}Z;aWke)X2KX`T5VM9%s`WBBbP%o@@$}Bi-lOq zP>m>PM}tj8rx#+Yw=baPw`-4n_8`ST_n&Y@xDTQ5Cu}A=Y3;n1P1iFD6>C zrLz}#bhx7i<z(oQ1LY1{rNe;iK@6 z`pAvsef_*>&8Hx~F*fbRD9GjDyNIj<-whEL9hG&lGtS%?nl`AN(`lN12lqpxXsJq{ zAKECG6-RGJ`ENq=kwgQqABv7?Ijpw2C3(uDteFr)=};l-0`2U8Jo+RH5NRhY1hCUk zbD>x5?p{P*N>r_ZocE!CabbhURxOI{cxgEa6DuTj8E-JL=3!z@SYhT4jy&#vny}d1nGkvec~}Eg3?|G42GjK z_7d>MTG1F;*454^k`yEy=u9LeGubf{p^c(zvU#ogg0gA4U|rL*id*B6WL&hSNV1B& zP2Pdzh1218g-)PP15K;s+<-A_bx054kCSJij<>+_@c(r-}P}o|3IThqXzai`5@R_ zzam2n-Xb)(%{7sju-E3g5}xVnp}!_!Wc)#6ktwsW*~79Y=yQ<`<>>I}?A-jE@_G6K z`?SO<;VIb#`SZ$8$*;&imw)d5BK&#!7unbIua$o%{uVe4*e)E zWD>c&;Mi#olU?Y9mJXzWkr1vt=s3CS#D)^86|YodIE;~A*>vXI?%8*4-#YvF+t)n* z6q^Vqi|&=*`aaDRcGu{ue#c5z_+ifl*FL)D)X&YG4Sb4g!@^&_RlD^DVLM1;p@Ai< z4RC%jXCl~M68FZ=ccW-Hm=2~=eriZvB^GNQmxw*K1qrF*q7}uzFIv&gOGYXk zaANHjG-{{}U#V@Y?ZC=F8EZzmDmz7iHZhP8bV zuYyV5>k!P~`T36uGhMxcUA>9TYCbgi?o&2=_v?#ibhVAGjO<#p=#+17lApWi^2;x3 z{^9UxPyV*I_NS{+psDK{;?FL-?Ao7F9mv@Js%(X=pc@PqIRutq?!p@s&g-qne@Hr* z-|t}V=7jqjlgfodGsnuuX3nwCbDT)AO}F0{iSuaqYuCM<){P$weJgFd0F7RmBOkoPuofun$4-S=LUV#bx5qUt%-}_Yi6ea&LBOJ(Vn1QQjSk0L3_vzcyJBy%ci6H$9po>j=>wc|yU9h2>(j9~ zfJw>`Xh6qfPjh06u_Pm1_1jzmmrw5@!S&hotIyf|x_IvWUqkIxsN3i^RPWtq z%sA%Y(@2KJ#_3WX9%5z5PT4hmoIXWYE)K2@#59#16eASe%Bxw02a-~`+5AtHTn?Nn zSuiy>W6Bj+bG@3wsgc9BAaG+k?=;uWDHdp9ab0m^aSw_ni&2eHQkxh68Q7#MNO!XX z-i9pzpo;^E&|V7E`#0rgIRT;?ynCrnf8qep`#}R}P7kLwE10tXUSfl4voVzc38ERq zt&E(~oVpLC>8q+n*Ti)vsLB)h8Ik4k34o7VF53!L5;kl^D-W<-Ueo+Z%kr|MF$hTq z#e~)gS94S7oC^nrOR)lrlt?v;!_8uQ;LQ>nV0h`FeGM=$A@xITAL%hJ=D62spM(KO z`Y<%|fPZd7Ade0Fi_6zE?<5mU^Ct{qEJ^sW9&@DpL*bYjXsOmxqwlqVj zs1so|iH(-D(nUr1`0d(#anJhRC$LD*Zs~m%J|LS3o5rXJdNH)$?|V<}sw8`JuK27JW%bA#Mo{7>_8zBQo+u zq2LOwxuGuGe`uGoAAap?P)&q&$WGEgGYse_Rq)wgHuf9D2CE|nUCUOe4_n_%JRIs1 z#M8wK#H++rnzBDq#i^+E&5d{n!iV!&c_@4UPj6JSLz73gw~gzlT>vv4QpAbKdQw5Q zT(jdvul8d4BskE_M~dl_yn_aziUU$7|Fuq;8%czJzxVw(eF>aqAf@o-AgUVB#25P- z%Sn70YE^SVq0BO=bXh1Ruvf9Mm-n+}Aqw$UbjxK{weSYV*SRw;!I2j z+v@vN7Qn<<_q_P(Q(JpSen?s6iAY&=taE6`xdfHVDxlNR5ZL}lyIn_ z>aDI}QYqxgf(`FjNrfve-^Wc%+QF@nhYVNa2K^hBT;X8WztQhyT%ucO0AfSpFA!iX z$v^|#7VB{Ib9|*+ri!cZbEJb1HCzvKrHFtMEWY6JqKHe-Sn5h^!+H#UOdi7g9yp7H zX*l4g>8{AxOxc^`r;2EZOh3RW886CR%8z*qsA&p6i>l}_HKV8?o{X>1Jv{g`Y??(I zT8bPmxGM**j=V22jKnhj_+4W-peb?VDS9T}VDVJYU1}x&irU#~B`o14I;X1^J|vTG zI0l?(mtcalAqrB)i8PRa6dF#=r!Hd`KUB#15AXbgK4H?q7dVG|(=S9M7(@^_enbth zk>Qp1pKig=p#g@b126y~e#Gw(LzixWe|j?C!`J8#L}t21u^dCN@lS*rfPrJ6tZ0Of zcvfqR_iYV*pv?ADct{zqeEM9|Zn`DWuzwx!`Jvo8mVx|;}fGNJGM$M z)sFkcdl*0a-+I?<+VEi8!Fmc%0oF@{@X?C#5iLUFs7VCrz87_nHWkaBXlvi;xSf4R zz!fZ&YJ@YAWzY-9=wu&0qV_U!3>aA1p?eb;;sGTn;4HdHZx|EwoPPq(_!j^X0H@>e zjtyD_oWmV-i=aZ|i@VTCL$@r#NCFHd3Hm{U&Y=XHLmzQ7T&B_)5Fzx&GHEbX#RhG3 zTvMRbF_glc@DWx<;6(q1*@TBW9K=|`LY`yILMdsiSD_USo`S16KH?YX1<<4qA7vUw zJP|Sp|Fy|m)VeXjwEr0d0s1#g)4{Wy)|DzS5%kf-WRT)1OzkioTfOgI+k6L9npV=o+SlJQ^mSxxhzQRDfqOg)wjzm`-Cu_>K>SV^fT%cqin; z;}Z^86@i>iVMoV32<&(WU<7=`Nr##UPz}IG8f2WbY~Uk$M1xLU0*RrgC=Tj!yR>L8 z0|L5Z!p#O%HBf(GFW*7y@iZ4*z$ys(pqXHp$RdU#({S+>;Ufl!HvEk6k$_C8cy*$m zI`l={0TYJUQvXIU?LQzXjedcCAXSm>+QgQDfoL`whDihVf<12%+(yL5f0%0Kar}1ur}q;M74zOdS_WlsTC8 zY#jz{>;WfL{td1~reIJZh(gYxg7`CI@wj}{z z_=!YAi_sx;LLY#hH2;Aw1Pc(*77?^*ylfMI1C%w-b$}AMfo__}osK=i3OYmNIN{n@ zA8-M24qJYQc=UmboPGj{W6+{+2R`DbefS7Yq2NkfkD=rneTykZ3Jz^F%HT|3S->?L z`O*xpb)^n*g76WjMkq}iwZnG}T!nTKuffpa=V-srae;0Ne8m0$d^9*JN+bqQ6JmS> zH^FHdOPnDX(j3DFZYkpgfMpwmkANxgk&Zd3qNZu40_;IOcb#6kXY;85lJHqJ+e8{n z&jUtyzH8%I7%#AI6QoChzziAL;D|AyyRnKIT$b9u@aD%Fm%2L zd?YyICkd0@Y1V_C#QfYg&~!kNh>7GnG1_~ejegP* zFhsxx*MbTHU=x$?-{6>tnS;@e@e#N+03UIhhL86`=Gf1NtN12e{{aJ z;a3A5LR2630Kl+hZuky$1dRnI0v{a^XEcH+5O0U?8Mun@5wL{S0#_=s8sj6~Hpa(3 z9ShPk$46ZO%~T?hu{Cv?htpP9%~zopcj)4rJehuBkzwuvL6d z(-G}(lYy0l%m*dez!b;zkcN=dS&7*T3B}fL8 z%~aC005D8X#|bRLFTx6l!Z?|5P$bWH5=p?;1YUu^;bvgq!~~Fy!a_&w1m5XuX#8-% zbnyjdKr-bBVdTNVONF|ZOknhN8_E<>^VSychfcx;3VI3EO4xqFOL#7gUkD_{Z*?2G z9Htn$tN>CT%@p7$_&M4DNfjgI!oM7irH#`O0!vI#Xe=?n;8hmj6hf^EJuomL$F7gY z=w6bGI{=n#hmPZgDH~UT4kG`e3rsZSm zd7k5F zlO8f-CVUr3PF?g58V6=Z!oj5qEFdYu4B%)2i~>(ob>On^`N^1s(b&a=3^WrPZl9o8 zhI_a{kbzp2iLV6WryOwOAaq@wuEqSzxNb5NIk*aZ9MYx?-3f>aEiQ+q#Iqk%2aJ$3 zq}JxB7%*G)9gG~cOxKa@!$~G^+Q$n|rn!wNjoD9}Omnd0#p) z!Sh@n6Bwh3KNnOc8K_XN2uDHJNXo<~AKM^+P7QRWTBV>-*-SctE(5VVFO8lja0A=| zpa|T+gLh)+`5Dki#{d2Y9dLCwcfEyQ}QYzXJ z=CdxY!p{L71w)5fsjEhjCVxQC2Gs#dLNMV13*KBc05sH;8zcfi5NDz&!tB+9L<%oF z88CEHeu_R^gk!iy(oN!ml#w!m1X5B#gh&E{zT<{z5O3cKAW{_b33?@RAaB?(9-n1P zd3oCK!$KjON@1jt3or$J&deClay%0)LgT1O0h&TDY6Ka->E)nLh$czG(SyFCcKSM9 zKxYb=HEQ7IGoh~*lJvqc^mueTBA^6eWQOS!Dux7spVWgON(Lb&u^0I1lpX-JfvO1` zumIfzohH^1gd_-sK?IZq%_!z0P#F9kG$e~sBp&V&2B^&I1CD++8)kxJJ_W2WJvYD| zY>$sVs8$*Vl5`sMGl8#Nux?;NCJh4XI##}z6pH0E@DWS>UM@+pm=CK0;b3dibdLXA-mVRowy61o$B_KLrq)_oD3gcVS ztR$o`;zRxpK8Sk+VOYda6yq!XM40iwjng@JBKWu<@TeV8G4J6j@MX+11w)5=zF0QE zH`s_90q8(UuJgtMtA}9=5_;%Ck^-5>Nf0J4@-)IZlnDm9c}XwCkl+K@2Yf&@87>IT zkT6kCT67F-rkFNR(ZCKo*D4oXdbx!Vvl8%Xym~^zHSIk9$UJB`zgy0W?g^fUx zj51a_lhz1gL5L5GCjJ5(MmP&bqJh$Z@`1pBtYP1C!$`vrM9Hid0?KZ=h=d$8@4Zwq zkDmLu0d9etr16%|M@Uvu1dVhp-%H_64i%9Gl7Pj56Ga(fdTE>hAwrjO889ZyfMPi% zRN6BF$*e(82qE&>NfKdc=ER#}P@^khh*3^uBLm}>kFsHwcLAs2pJqU)0M25heTXNX zmJfi!7Sg!52nd4_$^tH}UZ?MsAv)L@s0n!%Z4I#2#%GD#lAOy^D5`-zp z`bb7b1C1wx-uqE1qK`lejKGS52p2?F1WZgC@J+#S3X~_v=0IywP6#5>UP0NCiszLh zKnNq5BJ%U^Z^;U6_+hoJn8|?kcplQyB~`0nqKTLSJ~fV-6e1Z5UT8uTPzSLA%9!1O z7PpgHiY^*-M6XH|x?1R0KzNNxL@yj$AXwN4Bw;phXLA{iAeM>@ij1cLO<|n!86!+4 z00hwMzy}I~6M!2Bew5KL>oQ@%j{s$_t&&dyV5!hghoxi$;s~rDLY2ydnXp*O7D7B0 zSb_2tY0%I_GEKt`HkZZCa=9dA2=G0K@ifH>*#L|l^^M!oLbW4H_z2;pmz(u8Q$d1wNuzgpX<3=(f3B4s>82d`x3@ z>NF?QF+LUwg&-FgX^1!(Ai91F9q~gWwCOnIq2w(f8RMgG zcfcVVFTavWrjjWP&cBa~xH6Nf(gumHt-X}Z2I-XVXW{Ut+C?jcI5j(N95pHJ=g`_5 znvm(oM_)^OXlvX~YAL#C&=I}b2>;T4wU|p8Z4tdVKBmxZ_y`imDLA=2(t=`3WsGzh zoE-y-NM;B_EqnyM20p?a7$g!**^jb>kJ)rF$NScz{g^a<71+Vqz1LY1p#at>RvSq zYLq}K6Uc1+n`xraVLhA8=d)myMlu_g^TlitNBL|WlnC@6DMeGD)kq)`YDQ8k(~s@I z4E;RK0K-n>*V%kAPx5q%#x6xv74x!xbFt^7kiVjap{N0l6y_b|N-0Q(g=&Ok=QNYU zu$IjhYwaPff>Ht?sUge)$qybU@ML}rwrW1>8%BC?72k()^+6N76>dL=u+ zZn5PeOoV@b%cpC!;fM7>ZG{3RLlU{wytL+2?X=^h9kd9Iqb6ljMKlJ@!HYVGO-mYC z^jnMDNiC&z(hwlv~lGr$TAa+E1x ztlQd))l9yY$1f7;R2Fye(f}=P>iZ?If>J5Ur;^}%sNNR9^4L}aYlrw=8=Mn{j;IJg zLl*(K1s(EhmW&>Ir#f1XMt2qpr4sTQm+Y_*wU?@eDvnBpq4`1%{X?KOxOo&ggq@+; zLBCFjN*cz2^*xjZzHh=#^jX5ft)K^(5sa=8Qn zD;GsW3x(>?!4a;4QWAy*ElMOH4A@2jEyPB*1=T5)N@NFXZIMw(7H8Yr z+oNh^7g8i!p{<3e5S7p$d;t6GC{c<^xS*7P4_GQ^=R7*jg}E@Qwq>GZ&If~YM+^<= z6%GM;!-n5~maUu}N*jLIIc!j+k}hP!uu@KDb+?wtf~&b`5gJELDxfL!qDD{$u>r~j z^xKTvNiC&z(hCP6G$vI~XwQl17h zSID=Q?LsCAAV4_>EW!}o1uc)#rK*V`s1`b+5}+Io8`_b{m+II;`M?3o2%t^)?7om{a`X6gx!O^U@5<>20d?;~z>RV_FI#A98-bx1(NV=POr zo`or)eMq5@$Y*m|0Bl6L+%cjvhpS8zC|ZJ<2NNj=<2Al%&Hj##4xl926I)x(EMrXJ zYFI+!^Ld=D*Xy~CoQ)g@c;&KgIakhMj?qWX%sDx?nycc1s#|sOQ>Wn5F(C#rFXVIK z|5w_Z0Jc?K`NQ`qTM{6IkU}WacA$USG7MdY>9jz%v@evEx`) zrhwacsh&)xHkk7aCOzH?phhd=Y+=-@M1v|+YLjlcN?ur&U0PO*cVMCmV&s*T6_u7~ z4WN}8)a9jG%(2BzyIHQ(s#WSz%pnTAc0`3;>!1+(%)@sqpYO`TQsa9bzn6+jc8MH2RQjE7EMJ^UC&}%S3WtZYbz}Rw2S13yL zC8ecUMMFy&v<9;wE)k4i6~px6CN6FA-bAc2z0Bg`1MnQf;OJS6!tFtaPFTn-FU@o6#k)I-0mxRV>q%s!Nv}6j~UsRDz6& zNnuv3(3Tpo!&dY~g&1SV6w4JdMXo_%0D~ddkc+B0>U?pG(3dLAD6NT`I|R`%H_m{Db-zLH<>U$m6e)|MJl|^bEOJ5-FdJG#tD=c&5&K2TF>@K~wbh%dHsx+&YyYyn$mM+W1goRB6MQgU^o2{m7 z5izx4g;r}ZP=jL5u^Lxsl|_ndT#^+j6xp~u5_yTd%wWz&6PUFXas#4VTH~%zYQ(sg z>$G;2!Jvc;^a+DnW6~P6_Nwwqt-)Pt)7|_aEt63&D zsBC7d!HOfZ!K2q}G2Tj4c`B7$rIM+Xm`-zSXdP9aT&9$p%jCFH#piEetJ!LfO9dlX zu?aSnO00UQih$%RwdLg=G=(S5sg|27RVxb$EDpRZPXlJ1O64&atRA-tT+1rqu?RZ4ByQK}CLKVv+#uJMtuU+fFkYhp#b&eNY$7wr&Dde9L1j>h zF@{WqH;1e8%u2J;sxs$c9+6{~ED*aBHJEJ}QsUT!Hb(Prm6a<#bW&WA-XPMBnXtzs8O2nVqt${4e%9FXEg zWT#*dyT`0Yxys|PYGod?*!A+|c`6Ouwuzt^thPdHr6os1Oly`I3^ub~G^kdux0TEE z>JkJ2mz0QwTrP4oE@jNt9JGAiq$fsW#&_wpb??;b<*_z{-_6olaA4HlvmGHmgi&)>K(-W*d}S&2>hT9*amN z8Z2HYHCX-7Rxnue zF^?z>D-A{BSg+74G&Z|VQ)VbOX_SSHbxN@-YppuHPOrBZEPu~t)z{%g&b63N>jO2F zl{itVl$8}_`elXge0^b|z7Q6{IAM|*rifh_Asob(qs%d@l$xBlox)PMxKbR6z0P8i z=a@Bh)i%AX&LVak=WFzE+aZEtwmFMzj>;SnF}+o0Hdk3qqCpKNqoYD*(v=|yxH(5G zluD6n6&jVrmV+j+nO$m3N-|}j-la2I%_g(jZ1(7_R-FmG0*!1iRvIhJH6FX$WUaSq zwCX|~UTLq*5Nf4 zl$N;t7E6&C3>KrY#b&E+X*7aMCNpZawq>|M)#;4+vLcjV6Va}&u14IkfI_#u07jWj zXVK<5j5e*!Xf}i5^ZAU`#(bO3fgLxwHlxkxfIrBLGGl?U$YFGV!BONWLe+drsW`T1 zEm~uBjoGNOlvNmYC2LxAV%G&7=5lj+d6l*5@7bK?EkSJM<>jrb11^`LvRtQgIaTF3 zCG|z+B_-u0un5KplWZ_W?7|2vT8kY~w!v>%+)iPsuu~j~Jy>Pa%526Kf3+nqSS5BG z7a7apwoe4bR^uzH_PNB!MJwjpY+gsDXi$r-!sp7jnNFVAQF#UX4lb@md{voy%Y}mgsai9|t@}B~J5-mXMuwZ16GMs>!X^7S{?~FH~X$ zsZd;L#J9r2%F0S>rwi{|a@p%Vg(jCZ;Hh)fd0aM+tHbHEW2HuC#m%D0in~o*o|tkQ zMa@#Yany)^i85kEpc1uRo;pulA{fDnEq+K)T-ubC+r8e7(o#!DT@7X$YlX3{d&u%j&Xv>>iO>bMd)~QjgUG22ZJ{)Mc_2+7#m0 zZnPUMb^Zz~E|{E{aW-_A#BN&SsYJWjYO2Kf_ix_3wvKje=n-9O+kC!qr_E&Yd9}6` z@?eQgF1N{H5sVWixnPReg%QF*Y>2W8e&@#R6qdrpLUAPajvA*i*JbT!sk0Y$)QBC& zrB)ls$<#buxt~Q&;Q|UynKqK26wN9_AZB>2H>FM-XE6U}SR+r9d z)mB!cy49pJHW(_*{)Q@#+2pfWt#XqI>;0_(s}|FZx?^26>)G5OKFg=H+uOZ(ma1{! zHnN!R{Rk8nW3sXLdcA(X*WK(dwtDSt{$_8p-&^hX_V_$*+(Mh|xLLH??Im`59{$gG zHQhK`i|v+rtGQfJpm3nJ*Wc`qO9dl37`FH!K`o%t<_-jU6bgG!bG;xsEcLDSVzsKN z-R&-QfZ(#*d%WJ}o^Ct1^78B!vu6cvP_0&bah?Jt*o4^T=4O29rC3ptxLva6d9Cj9 z0>9m3_Szi|klWhY?9KLKuhowoH@RNB*Y0=wMP|=~8w$VO4+g)&ukc!{ORCl4*j?@} zw>JkJcB5PCv0GJ}d#qx&uJ=1!4wtLGy8iFk0THgz^MRC=6NYeT^3TB%$k zcPW)FB`kt*!Xz(D5xX!#IEXFJn(wW!+VkRe3QOT)u{aVtK4NOl^V)mbo85&y^uvLU(4g*WkFTwv*yAwT^K1^Q5wWmZ9Tp?*PHdI+ z&3QJvt=Sv0`Mp?o>+fCdsPW^ymo}fb%jNewJm?i@r_z=ygPx7zKtyWR3?cR^uQ zK^H1ltL)T&?LaUTj0**$+btfY#t#V^0X0rvYwMs|?H-JC*4Tob?oyp@ z^#-3$;c>a$wQl!dAP^ed?cP{TrOVhJe}3gJXpqE?9I46(Tj z0(PIRIOq=80(b!kC|zA$?of4Ez#hczcB=#KfIA3(khu%oa<@9@4!T3`pgO1y*lWvb z_2SrP^V!^?H8pNat-xKvIVz+M&dVC(AuelBb;cwqse1luC;S9Pp+}qaX^n0u9 zZLJnxu6Di3r`7tjun5KplLD|6J4^_=%kUHgdx5<$P-S-)1l=vLQ&d?r!E-q2V4z-K3_2C@uOFuk!$N#HM9nL zH?CRl4_+2@*En?^cZ1dKF84IL-7dG?YU{MsINCewf{v;-w5hJjjwg&g9qw|Q+h!UZ zYGlKc9Smc};PVZ%k6N9HC8lmTUv+OEurpETp}2KJ}l_SS|2^9p z|L_nt%;Y2EgB=|;!Fso=V@;($Uq7Jn>-By;EP`>uq!!qU9VUc)xIq*+n{u?k+|Xbhm8ugb-!d&PZQfQ>Z1_;%RLe^oK%q zLG%hVazj&Ru)Sq)>)L@}C=&A3))?x1Eq0%;vaZdGQR}ihH#lpn*KKGFRl7Sdip3ZE zWi<2l zOuSnJ|7}n2kN}1}qv6wT){=Sl)7nqnnYSlPL^W*Eq4Xt^REwi{IwpOOZB31`LZmer zO16-;k@fQ%*kJi7_ zeOc6nj2R(^@+jM!sbB%O-LB2z=--q%c&>leEkK>1d52Bu93D3$n#7aTSLP`hS0y#G!37^d=uQN|-H1+{}8Gy`o zr0bz$9r9I39pK4F9z?okwj?cjH({*?OA^*Fv6x_*<0lW1=o??bz8K->KnaEAIlNUPBQ$jyStX>v%M19CIF7?AB7jt$5Jckh1A0tmiDik&( z67@6D?~qXTb;v12N=H&6*^z#VbOdP^QXSGuNae7HL2nA|6ZSNUzKOhC^o_J{AcnAw z`fS{X2XK7D(wKR8NtV!~O@Es0T1r|W6Lw7^55kt?3E8l11hUs9a+KpW6QbYqPlTU1 zZcpYId#S%-tA!1ye*|S6i5&P{uvv_UyQDsL0Qq6`<69v2KHxVbauFLGx8hjXx_>G6 zC+vZ*4%lZ9c?x5CQ4aoV6L}&Q$$X4G0-4*>cVJF=h=o$;SSaNSY)9(HtTn~L>}d|r z;17H}CjE+S$UMv3Xv?)YzUQy`cj|kRF7-X0miAQa zTpHtVradKHMfiWqQ7(9riJy)0id>{i%Y=--hkj|@zZI9hoAwmu%%@_%OnWaDgFjys zVC5B+tX=&ygB zqc1$N)Th+Q(=qT%8M5O2^G)_B zXg4MLXCfEF)>YvLK{qcXx>D+?(9reT;N>gsYcmy43P{f4V0`HU&=LO(pDR*Md6X&Eu z?Any~alIhwx>+urFB;h<*#0KbqL72KbkNc^u_NifVy@Ia%(Z9PFl-ovEw2fCAk&*U z&vG&gF;Be5oT*QOr;ufX?;(mo6MG!|cTwG4c!v&Rkuk(F&}X~BBji0yb(&b-Qar?b zGZe3nYZ1}EL@XdPy^w7{{j9WKu?N%o*d~mjhcg!0!|8n(bA{}Qv?lf_>h%d*P)}S3 zwWr?6wqSf6z}$2IbB?%P>PXuhyO8n}{Mn0n9VulI{q-qUlD3E#?gF2PPkfHO0sgH^ zIm%4Pwdr@_oG-2??qoOOecWy7yVxPn4y9qtL+?$XU5D}Oz}P*A`eN*eYXp2d1;>R{ zw-Ie}0CCF_<0Yes<)<&w^#CIqphM_SImaGOX=ew}kDD{^L>%{vw-1Sn#==3yQw}Z1 z^=4K#-Unrf-3sW9y$|RYkbfd5{5-)60!o}J2+0G>>Y^Z{q7XXEvDw0#h>IfHds_?~lQF;=bZg9R2 zDEstJfVl(>;He=mYEbum;B^FrM_%Ihl149E2?<`(>t%S48gLasA;F8UZwUTYqO2kq zBG?J-UbcboKEgK=-cR^uk~s)i3oWgHLJL08L%0$=wa_A<&{7Ne0)~jE6B=tFS?~+V zxDF;L{H=quTLD*srw-Btt|VMV&_Fz`1Vcm-_YrlFCiwdZ_7fb8{hIkH4t|Q8A2M4( z5z+HQ=B0|?-i~;5XZl==BR60oXL88CNUW9~`)CW$ojf9^B{0GSv+Yaa<*hz4G>qS^+Nzh<+jN49e^1u_0d)`YKcKFF_Sh;wCqXyC zKe3~roQH%zz;{6SE?}DAmvUkc0Ok=TKlTFf62i*}mlLies1ec-$sK?e;D3bncK~I8 z=h1ez0%COY^W@8U^5s1Fa-MuSPrjT7KX}NO^W@8U^5p_axIlF;P^}B7b&y}6S{Fnu ziJ|m$KwIoqKzr=xfK>#Y1lEKuL(oLfLa+i5-$H~;F0|u~u!uh( z;tz=U0}AbFqW=J1Kq=l~DR7j&3W)wAWkACFfU-~j445mRh&do)E@g2k;WS zn*s4MEb!yCFEKSB`Y@o9ph`ekf>L-Ypq(fVf=+^Nf`7uDXclS7A}v{@B@6bW7Ft%o zm4Z_u`BFiw8+Z}HlGsk*Xk|bp;VMKROVSX(KDG`xW@bPmm70YvshsLsh{p;%o4m*- zukp%|*eXzj@7ZEj0TeQ`;maXF^iM$aPeAlfK=e;Q;YBuikxgFUTcLF9j~_&z8_j0ntkV(Mti%>~cW#QfWCfo&c;O=p^VC5RnnEH1-2P4dEt& z7J?OkIcVQ^0MWzo#XQkoGV(=6zR1WI8Tle3Uu5v*D0oD>%g7geh)m$*i;R4ckuNgx zMJC1?N`)6P@>XMe|TB2)-VjwLB(qcda-joc8 z03c~GkQM`M78D`h0BZ#lS`6^|P02(uO(fGqx=bY5LUaq!Ekw5vy@Kc!M6V!v1<~zH z7E71xESKPuXem28O7KMNU8x$g?slmLa6zgAJS5dg4XhQgId%@PjoAQ0;H;C@5T%1~ zoKHdNiaiF{9XkWKo+z8BbTcakWrFZYsx?KF1xTxx>Oik2`Sp-|4tNK_&e$WsyU>F5 zkSXYEiE};Can=T96VV3HzBG^onHt_hNMU-|B?1ZO&Xb}`)xgS~{ z0~A{PxHdQhI6(BRRCk2n1W|-9ercNEZlYWcJU|f+P=o_aL^wbZ4lohn0Bi#Vwh7ow zls0GyNUPv!0JaId1KIIKbrn=2iC-gQW@`5hfw;47FifGMN($z}*t;F9-*0zH4 zwA4oYZFmc9G4M&iRYX|@3Fm+d8&*l%2nt_TNxKNfId>D!0w^Ksdm-v4AxZR;5ZM`m zRRUj&RtS+*Ay_3STM3Gu7NT}<$Jy#isU7Dj0hK6i$9YP?qlj}mwRJnSbvxvr14XoW zJG6+>RYVb^shxamM@$|8F0{9kN9|-oJ85r6PdEemR*bB6MEEhlF@g)ke>qA!$fFMO zsDonI0bPPFbahbMbwG=th(6x|`G){;B@Eb$*mlsE>Yx~QNZZk-9g>JxCwjFK5cgSt zPeN}ed=yah>Q3lA1K2>Y39;=Y?VZprN<;9g6CMd35y?*YA}E7G0(?0HxP$Ovf)Oem zA$$z}c1q)fi(cJ{-YDQC!D*sL3Co{=`vSz{yFu#x)SM)Y>jsSj*~J*R=Mg0zh!Z6h=ayffwo6r*e-EZhz#=JSn^ z`G~ZMeAxs!KL;+(KAXs|P2fKbT=b$%7z<|rx3gkE;nyZf%+H%7F%S1spX`U6$AF8` z-46+m0E)9rKaIG4ic&w>&`+bFA2J1x=z;wtZL<^x|7JRWZAMH4z8liEpbx(TDEPOa z#m@n5Cm5zuAz=$72u?A7ZlQQ?k){ZrhP7KDN5DCP3q-#h{DY8u4sZ)Wao!mu`GX{X zkn9G*nsxCXcky50p8UR(w( z0vG;X2KfRXBe;v8i0W3zc^6R3pWDd7ZK(S$aN+wl)D^gBi*2w(KoPNRm@Nfe_`99v z?d>#gZwKWZD0AphVUiXmX<_m=OqPTp?Ho!)pA3_aVUigp@4_TAOjZq3FCB(_n>0-G z|1i#I#lRy3#kpXZ&IQBL1mWV0FigHg=&Tokw0H47auN9v(mq0Vj*(Ski~8^`vSAnKf+8Y3ftFGN zidlDpdc_1Jp8+oV+XQO00*aQJp!iHsd?v`|Nz`=%%O!Xe(k4m5B*lM{ya#(G*2#iXt;bb*IS3De`fOyqhAssyjoRGsHPVoHN83C3=)7QSx*T>TZ|zpw@!4K=v$9>n~8< z1+r~{V!J>VE>Qdz$hN)2zn5BeFLCar2<#=!y~Mef?75!ec|FDR0F9snG=dJ$dH(H2`Z{}Fx0mRx4Al7!In{mxAAl7yOv9<$qp5G>J))gyXVN}SuS{Q?KAHY#hCAch%<{~C${NSZPoBYB7SAl-y8Pzl zzsjl18P0ipg$5r+|IW&ul^^DA%)K}Fy}ZS|Z{nX6MhjLIOciz(ey^yr=;7j-l5YIN z$@M7ON)G6wpXs*J4fIp>Mr+Zt!Umr89H@s#%Ysxb{ zX?B}mE8kT9Gs`OL71j?bMk^h*=j^vuUF#TfeCW({9(4Y|`A1i-tID;`b-C*f*9q6# zu3xyBTj_3eZ*gDkKI}g2{wMc;RLiQXs#jHSt-iAQ?&?$3->E)Vv!bT5rnP2k&F5;q z>Pho_>itLGL%y%quB=O~xBE^0`}{u)-$==7HvK2Ui8348Grz z*YbF4ZR@_a;40JV+e0ftU7`8Vch+oguWJ8%`@eNGbj)_#*71DDJDmr+db?)24tA@$ zUs$_r?PY79U01xWc3tnf#r2Byee18;kh$T&hClV>_H66FuL#=aN(zT08(w_=r{K__wVcfTK|QC=7EKQcQzX~H*D_T zJhS=6&0pWrIha3KIk;xK%#>-8S^Z(AlBy5B+*LWB9R1Wh59GitLZvA9*qI{Sn*9fsvylUmH0$ znmMW)tsCthjgEeC^w{V-qyIjZJ!T!dV_Y-dIR4i7N8^9lS+>)+b71HE&f9h#-}$e* zuA69_czg2ZDa+JjQy))XH~sST+cS#Y!QDG{U$gtj?$>vJJgc7FI6E@?ezYRGDmoec zV)Uix*P`!6KZ^e6T*_SjoN2Chu5)hN+``;Va}UnFIQPxDpU(Yxe&u|{eAE2K`Q7u^ z&)+-$;{4n5Ki`wJN4uwf&)}Xtdv4uxY|mSJK3qsyFfN1^_AFet@Wq9P7M@)=vp0JA z`&Z;&p}oR>h5w57EBdb(x#Es1j$iS!&v$(O-Ye6uTy^D*SAO-XoU8m-ZM*80t6sb6 zM^|TGt+~4U>WM|&;(d$97hhX^Z}F3T#rwSb*6$nNw{PD)`<~zT&3zy3yKqhZH5J#i zT(jkx=ruQ8^W|$!U;FuM@3{8q>#Wzka^1Vv{c^vwzjVKIe`x<3*SoH7zy62U|L%t6 zH#~I1OE_maaohc0hyG>H`0$Qj-s!w6{jT}De)1*Pmrmb(-#vr(yn4^q z@A=l@(BXB5`wwqFJa%~I@DC1uaQNK4`g<$xjodqV?}zvP^4{Ox`{(->?^oULy??{~ zllSkx|Ni^W-v7@JEIjbxgIgc`)eH*A-uCpbp9wtE_Dt6^eb3zT%w5ks@XTY+7C-y+voAdRo99+N zclUGWk8M8okH^i&Ymc8i{@(E)o)|w7dtUYYHP7Gp!tF1HUVQS!*H4a|eDkI7ODA4B z{Zi~y#wppUHK*3UEPJ{5<-wO9J-y=e{#Vjp+5O4~ul(nk8^4nE6~k9v`^r17_Pn~~ z)uC6fc=g&>|Le7x*M4_4{jBQj?Ab4!ef8{nukU;Pq#d9?96cA4{;f26grgjltMD)uDF9p6Lb)0ZH z;R}Q-iDy6IYQn!jxQ%%37kDPwiRYaHkIQ^X;LGFmHwcg0{O#V$XCfovp@`;5P48Gl z(=|OcJqMDeWqNjIdNw>aK0T$GnHaKbTElbU{}-kzAxzUVJuxq;MKx=tP|sOg>#za1 z?3(6@3C)J_(XqLxW~wT`WX?h?T|Jti>Dh>8WO{0@Zleo7Nsp6zDSJZGI~yL3OonH7X{Ja1uij~9BctQd zxyWo}STjDQnL{A@dNk|8a~hMTw@b5jWW=rsPYr7#6Vb@R7})Hrn@zJ>Hp#+l0@x0A zInQAcwv$b=}Y#(8q~G0~r&jZ%5r$ND?~#|4FJ!TBcz=&@sX0liH$? zy#{v0^*QlSw3a!Tjm0q+S<#Fd6X4qb3rFG2922!Rz^f?IEZYM(%$k9X!`2BZ8HJ7s z9L?fmY@hYJ?h?+pl#9G|Y$HjGCS&1*rgF#_hlR6{6h#_=1(r*sbipeP%0)|wsE?4w zIXsx%$b<(D>=&);LNqQOJq!L`)CdMSRI9}B1R%Y8XQjn z&MozbKC*iqbkBimB7I$eYoU9DA|LN<8q}VkST9gbA?>rh_F@kf@gM(8k4}_*fRY3* zxFXPgu|JEJ!jAzdhVhYbDL#chd&zOCD%F|Vk-9oH09cEXF#3Rq;1ud#!uJ_m#C#UL zVv4l>Z(RQy9cKe^=E4>;v%BKhXQ6ZmCo+869y6jiONld5CVuIgjc-6LXF2%#tqfR-BilTn4Br_9dZ@E5UOEXd@E3oUr`v*9A|tzU=29mHlbq$F|1qhCF@meHNLgEhPAT}Jelu8DAuxd zY&`}?4?0{Qy5=U@;P<|`#ignU4?V^BHPEV!B+sUWBc)KxEt_gvxDqLoV#zvcdTz=x3b&V z7uXls?d%SACw}jh%I;?Ou){o!-N)`{5AbyM5PO&%VP9sCut(Wr>~Z!4Ca|OIDfSF| zmOaOgvE%Fnd!D_(Uc~PQUSg-%%j`6J1=j#yVXv~+*je^E`zm{b{R8_N`#Spu`$zUB zdy9RO{U7!=t_{A;zQf*O@3Mc!wZV7U_t^LGCAxoM@3VhpKV<)guaW+keZW3sAF-dX zpR%8^pR-?J^8F?I75jJgAMDrcH|%5f3HvSkPxd?Zd-ezRNA@Rnp8c6!VE@Jb!aij& zjvtZnOrFKF`7*wo=kOI=##i!Op2zcf0Wai5yqK5pQeMX8T)~xG#qr@XuH`ze=LT-% zCXNrUaSONNHw~5eg@T<|aR+ze7YJ@%&1<-ad%2I-@;YA6{XD=Mcq4D(%{<6kcq?z? ztN3aj;%j(2@8F%hi+A(2d>voUH}D?b%lr67zKQqq0lt}U;e+^|=2pIqZ|7mYgAegx z9^oT=l#lUozLW3b6MT|S@o7H8ck@{u<#T+V@8Ju4FTb3Bj$gq)&#&ZH@vHeF-^Z`v z*YfN5ettc_fgj)p`HlQ0eltJBZ{fG{+xQpw7y0e{4t^)Ui+_pV&F|rd`Mvx;em{SJ zKgb{A5A!4Z%lr}kD1VGU&Y$2<@}vAI{xpAvKg*xv$M|u6f^KbEQ^Y8F?_&@P?`9Jgb z_;>mD`1kn__`mS?`M>fX@_*w$;y>me@DKS%{3raU{Ac{<{1^Nj|0Vww|9Ac${MY<9 z{A2t|`QoxXv7y= z%~H8!k*rdMR4LgcyHq7PB&Xz(+)}kvBY7mRXP8w_v3aYl>L$+m1E69nuh1 z*&`}l(612Bkh)ErKmKAZvgJW>djv1a_Mu@71HOWE2XQXtEEM0 zpLC6Mt#lo}5O}?GgLFVTDBURCgmscb(k;@h(rwZg*u81?sriYCl~dDG;u30nYIHU- zH$OX-GCA)|nHhJctR0)o7@iE{ifk%tdJitr#I;!Z8Z%BjBq?pZygGwR{C%}YmH8XqhlFuOH7d^rnY!#B%XDKhvw%Z=@ap+GfteKEVUCF zQzwMl?s)N3JnN2gO;MJ$c6dj;cGh$POWzP@oQ-E2;{3DmtS3&4QkK~}6d4|$make?i()wl*p|p7cv-%S9v*r_6`sTQ_&rz1TSy=ozfV9=&$;ogUF1_c%DeK0@ z)4~%oW8t*n$i!SYBQg^mpO~IXi;j;@hEwLk^C>f9<2mzF!%M-2@T|z*p^5OMz^0<} zGm+Wx>DlxdTwKqEv%<5p(+d-kk+}@Q=4Y}gpA}c&@xtNhg{e5UV|s2Zj?K>uPc2`n zFg&#*8p)oXof{Kv5}sH-K81_qXk*Bv+nLKqN75^*mT;Xgs+JosnvCB&CNY7>Yjfp`;0 z%@R_bkmE{JuSuw=Nl11lKKeJf&Oz+K(W3y=Sj5*w@jn2=+^Vy~2;i>rX#7O$k`0UU` zBx`(X&koERkvV}a(V~;%=!dw=LpP7gVKHP!K~#z{wRclPv5WGZfdMss{}%LvEwWi7&+`N@%q$lhf` z7xB~cn(2x`ZqX zUF2Ifb`ehv?Fi4Njsc{vnH!%Nj--!Mma%5ZmhmN9*2HZYkI%?!mL}Wrc)qOtqQqr8 zFXEXU2|IQzAGs`HBuQ+veibtToe1*z&cLV*O?+&fIqi zbN1TF$Y`8BcO2}W(U3+OQiC|9rM1#|aY;|=W^vMlo>ZYCts^`$6Hf08Pwp5FOI`C) z_q^0Uj$TJPrFG*e8^)&7dgxTz8=lWt(x1{YHlDIBI=)=UNa&R<6()|e>8u>Ld+DSc zcM=8=k|nGrtYALwSE4ErQ+EjCN5!c=^>e~#afnqWm@X=&?IP209v7xh%}aa7Gp6Hq zr_7E`r_=f0i5Z`qE{CndX+F>oh!xRW~ENgeK_4tG+AJE@~O zsRIL5oSqP&>ZFe9q>k#Oj*D@rPU@&m>R39p2`Nb(o}^WtWDQTUh9_y2Ct1Urw91>b z#hbLno3zE7lkF8 zj@qP-+N6%!q>kF8j@qP-+N6%!qz>;zDG42j?^0_y9f?w>Bca3TNa%1n5;~lYgbt@8 zp~LA&=x{m`emEUT9nPeVi#FFJXpY)=4Gh(#x*n&y#&t@1{dq&4I@X*ky@sbLYQQR_ zMx?b!+mLQWN|#=fbSH+@dCkkDSJ+$l&m*;Tf}NxMF?J-AHSJV4nedXYCXE25x&SbM z2Q?3xq$bl{_uxn}G>n`rJNX0+=TD029D8yc3uJrp?=c31C{=3k=|t z^uS4jS-o}_*EGxUqYMX96Vf`QRNSy)XXo*cSZe9s6IQGGlytbM!eUh~p5}{Z_~Hh> zc!V!T_~KQ3aUWmw^Tn-vv4Sru_@at0Hu1$*xDSz71w3kAf=Nzzkw+dn+6mnK1YUC0X8D76-Uw=*mc;olD0{Kx6W3q z45i$v;4&3otBR>4R#b$QQG7%v_Y}`L`Ny0;{V|7SHD`&{0IYMWu_6%9Z#{8dsXoQ; zK4E%A-CW4O#8j#1a=ezAxDmOJMd`SPDKZ7Unkl5Gkh@MOHlmvB1m3B7ny(PGPO8r< zexg37I3)r7h2jNl%SWrA|Xbc!Q8ts&Nz6+ZPdZxQQ0 z6dXRGzDi^#)mJK3t9L1=AQCUw8pTnQOufOhSsjABR>cl=Qxq~!sv8ws)&4kFji_@{ z?SKgtanuT9EecYqSG^(}Vtst9sWRiPjQ)(Z8J-MRMrDRJL!F__kZ0gKHTak)K6@oT z4}&k_q~b&FEVJNL?8i+NSX^cW=_^Gh{)LsZRKizcRhrY%G{*`x&y=v>dn`YtL+a=W z@{VI?hgioB&9Oi9=uh$N^_!2S>4W@OUI**w4IcAVbezhFZ8+ww=s1?KZcG1h&Tkn2 z^_Xl4 z6&JUXi)cj&)GCkN)zQ;`?5J|!m`flrX5R>!c1W(S7!E;F{|LVjIw(Hv>NZXIyv}dg3*y0Y2=J?QnD9{{BF>T*5G$!(JNxYPxbz) zcu*AA>sybr!M5K1%jA?*HwEzqw8Q&SM|F8LDxDVtXk+=P4)gt zmsb?87P`DbmsjXo-L#r?G3w>(`j2O_;6Mx7Pvp-_%d*j9x68Ey!J?Hj4b*+>wIx@{ zPp2~e1Y1@yaBR6gcq|7=^lZF=s#z3aREeS$Aj_7DO0KHc%1`qrmWoz_oU0Eq^xe7n z=sYWF8*h#OMX`Z2H!m6^4#6a-|KkRxwqs4<*618#9mlLa9mg8iZ|*;ykpb%V)&bD! z60~K@+D^sJ#))jYy;N|I5~{DPL1wZsU;|7|0?Kt+sR#;XBdd7d|^IG&>pq#RRq z^h%f#dN(5&gPZ$LW35`8Dxw3dVlIk*xy1hvAK4nTprI;-eDtBUS^uK sEIk#g;F5$O;dc?2Y~mq2o=Iu&FMjWSx}Li;8u*DO#vc69_W;@d1N}b+@&Et; literal 0 HcmV?d00001 diff --git a/legacy/evas/data/backdrop.png b/legacy/evas/data/backdrop.png new file mode 100644 index 0000000000000000000000000000000000000000..08e2ffe8d424e503bd3c2e0d4ba83a617aa45585 GIT binary patch literal 5697 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 A4*&oF literal 0 HcmV?d00001 diff --git a/legacy/evas/data/bg.png b/legacy/evas/data/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..3f63b4adb8d1c06f527df24e89046f76130c08bd GIT binary patch literal 474071 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%0AunCKdt=! zlBS%!6UeJ}))cgS#+>R^y0JhdVH9NLZ zqH082_%HUc&dWgJg4RH*!m*{;Hhx)5`@WkZ@3a}ws;K*sWZbHS+jL14`|ewzcTQ#( zJw|5KoD-=;r<)HPh0nyA9ZMDULMIJ?QGw0f=(|$eN zPHYMl4f}*&V5AVvfdc9xPihxKw`D6Fq){HtKD6UFpqUhJl5`5(!!v_ACR1)-7gy#2^6eJ zJ!4B7)=lyG(*tdTg6V*O**tS}?Ck+h4;u>QGT66`&;N1bwknD_ z_@1dQwAMc8uy`qK+vfDM2S9}GWi9Oc#m^L;!DBF1A@q>hjTo&G*?xU{L1_iigBl1d z=|cbey3nVfWTFn@y0wzv)k_=z71QMm71axw=UQlu)LxXwf24ueGF&dZ|Gadyn#Ry) z?sV*Et)brrq!c2oaLr(f#s+Ti(f@jSgZZeSI;!#h`i537$azD*EtI^`j4&tZojdyt zKwzE%Z%#+m!iI&8z#vlIp6K=;Vk*7IN^8r6^x@gUS>v6-rH;i#$%NtaQwB0p2 z`L7Hshl`fgc$SvPE?f(J9O$>hmrRf*_ZlSqPzD^8Whwgr?aoZ(%(jO|>P#6MWcdF5 z8@_z~!so6wHV~}k*^CKl^Nf$+StdZ{g0l236S?bFnRN)s)Nd_ADaP~9mn$=-oX|6eGKX-jq;XK8C??5>Ymm}Af zcqN?$qV<8*N+|(3!{jb%4Q~U1Evmre%tvj62HyY$oHw*gRtieJQ% zJ+Etd$Q_~6xa><#SW+NP>9CH52bCl+$=nY&h@s%#BgJ<2Or7CcKdfY<&rCO z)j#K2w(~n#v5gBG#ti^Gduw^ENF=PsUu#W=x^WJGwXyFl9zYQ~&z9W-H-kzw6W7~S zFQgW)Fk&T0E!77vB4B+*{tBEHjl6mOKIGqBAg&XZlMf_t+lHN?f+cT=9>?AXaw?eO z!7LKYDg;=*9YVK9@bwhf{MsuM{vnl;#FXuIoY0LRNyf=7(_^GK3&L&QEGl{bx)xDJAhd zp%4ZeQQoQRPO0fS)4K5?IVem$IU67ak{Uz`uJ04I-T(~jmuD6T3z0(d%|w6_n3N4+ zW>G33KOr*v>FE()zx;&v_ZQ@9Nahr{QFo~-XV0W1!R2znmfLoyK5Tb!GW zbZFi?$b|xEDdBD2ko^3oBb-Z>s$!X-Rqv|h_T|qG?%F6vk017eRyT;S^mxsQpMUw; z2W}?UM|ki!ZpgLLz3Hg_T`~}8aXQc2SQ1NVE-+7kEsDHN?=qe>z@$oFh(Id8_l`gP z`7ik2|F>V^^XJdF*~GUmKVz+h?co8k1g&n!jc&hI3xj+Kk;4-6)Dnz!Qn^A@aXsEp zN=B_a7xuDY-yV?DhRfv%A`36?f5z?hg4efSaP(InDm_-l3L;P&7MYarbBJjNaTidp zc7K<`iLQRG1*(bc?!vT?Q#rdTMS*G=m?6*bg7hTV%Eo!b6mwjClkoS%Pu=33!F}CO z*6J{cNCM-7DbzkCPgz#C;RdAu|6-{5iUTHSD|0GMoCi0*&?x*(E}kcaCcL~(OEG-Y z3j6GG`ohKYIi0Z!aS1X}HNi5)!BZD%Vmj|#)C}D7lob2EF+dcoM-YHcmg2CK@PgMx z?lwL}=1nE6?5NR-0gi(0S~oDGixglW5!0(pQjUrVMJ=Rl_`*lD0v$Qwl2i50Lw{+) z3LOttBpS~(;3hOe?MBK$NlONFh4w27q`z?-x5SbpCI0Zdic#HqOv}amdX%<2Vl2;mL{grkp-x zgLzz_M^%I_DW!b=Z_C3w*IY=xF$T36!@fv5Ap>EU?(SAPg z^8SW3Sp_0aBbCbcpymy;6Jbv&qve9La;FwjQ96OOs4Z#vTyCHfYcP*b40yckfGQp~ zirV+fhEfD`-00p7G}*!w5T7&Af$E<_L~isxT%gVvfKvEfh1=+Qy|PR`Qz8%pY)bHR zGNIHk5Rg*mS)eD~&6IIk{HN>s3IxT?3?ZuDGGI4qWN0|?LTN2*TR`%mDk_WkSrgTX zK1%?;FhdNcjJuE|r06okp-Fx7*HYv1rOW>_IOOYc^uS1`q?DnHH8i919V_h-ttIq% z!_|jux(_`-RgCDBKkGvUZQJm}r)K~QU%vc=T7ma*R+r zeS5&Z@A$)i{wMzCx4*;F!y~K@yuQBygEVB8j8-a2CC!hue3GOyRU~8f1G67^d-;aB z4lLm?`}q8c@h-@&No^>(;QjWB*SDYW_WliO2h;`^+Ve1{BXg2(*?`*6m-+=;QM zcT)Am)D2>s2dF_>e$P>%lFolGOTt3(oVhzIaB98OU>>rZQa(FEmm_&eNClUam`7Ce zhT|Zg%;6!jhceU29VQhQebQC$T7aDWf#4xRVJ}}4ZVL?m

    >#go)D_XTB5CIh{Iq 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Ϳ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 z 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 o}O|HTF{h|CZ7QACzf}@->x>|IklmO)#a;nmR zK@~IeK}l90>SRt{t3%EQigH)$s7Qeso=%uT5CZ8SHn!};MnepZj!S}f5$p*ALRhdo zHbqN#F!WZZaphHpcTF_s2u6 zc=BJ2Ji8X>IcEiBWUjBG1=(l7!v4;_F5fE^8qBTo^F(c2V|?YGn!~;k{X+;B0HN>S zJhp5?*5?^KCU7x6y&tB)2%5AxLj3=KU1M9D;$0u@LcmPP>Hp{d`1lw5kT$Qh_!}6O zC07UElwc-uxrx)$gO#n*B4>6FpdX951YxPHFDODxnT^Qfg1$4=#4T*@S$EL5Sp5qoL?NFcvG5~ zp&mOk#+{e}nW<@JH>VqV>uPzS=#&}mnYri~z-Y`26z!zqU*_clAtu83gX2viEhOkp zs1!ibg4t_l=A1)5kI4n8wV`zq8LLJ!WOY=w4v3utuc-yLQg!1I0u2>kUS82!$FUz6 zpm|)a1&_xK=egrJ_v!ajawe%=3FM-mi)yR|mW9O;oEo|fXi?(f1E0?^23}rYVBxY^ z1IklM91}Tu`G|E%kuKrS=dRs}z{CU0>+4g5a31FzKb2DO+@Gi=Lp;aLW&}9E6#Cw~ za@M%;vW{}-Y^{|%#`JulCzhWI6e3{4=noM^c=@b%Fb}ex9l+9d~ z%isPT{>Oj+zu~|8=YPPL#~1wL$G_oieZ%Tjq!E$2N9rE#Y#5o@aJB6C<6r*^{`}+r z#=ws6&u@@Ggo)Ko!AnFt3)~oZeOd8%+!5jn*7XJJ`if?4I@zmUUxZX8(v>uCYm9GLD3e4HK69MdSKSxr(a`? zSNsgeYjW*BgJJIU6%2TJyukaU92-H&9ldc69zzg(n0s4SvtYL9ZUPH-KvRLpeZYCI zaYXzcUVo|%sUQrx{;TFKdL4PQkPDIL%yI0KZ#5?;?m|$gl61YVyV>J1Q1i zj3-vYT)uu7g5IER#q_2cIzGh)x=`zQrE7~I1ump~oXVr>D(&

    mS5 z(0!ZPh9wu8%mHYQe1H@>ay?PXz?wGnK_a)00`Jv?veh{sxBRe_Xp~vn6V3(X;+aY1 z2A=0TN-pev;ijbp$-jc_7I5Zwv{8UguPcbgrSwE1eei(L{sQ3G?(ul&Lkiq(i+0Nc z+qN=qY;|U3{L^1Pu&SLz`CpYWp0o2KFdw+k&k~Vc;PFU6r z`*C3Sfv^PZc?SlVvnV83ZY$L=wG~~6R6R;?IM0IpBO|4aW9t1K`~HFZ{f1%JOq9*7 zZ~LqnT|HYw$a}~&LnL5y4f-D7=ISFv$A@tQtjhw(iL*SB&*K^?M~@*LU3q2B2}TSU z(c$&&pZMv=zvHL3zvHp}fY;kk`11BMTI~ouW3+;#V_xq%N-HSpGb18+&+qu->mTT? z0CB-tDk{=M3}Xx&KaUOx!u?@*csTUZkt8B6iNV*c;(ezXZtxYak5`NaHJ*iXm56>U zt4Y5z_I<~;Zb(Z+A8H+95hb3Zb{o~~$5YKBDL`;8@z8CySqlLEyV2F=!ZDW=qtiLP zoa%DV2%>?=P?B45`L5q ze0=ev4Zrm*% zgvM*M7!*591q_jZ^KekRm^KguaHFB+13pFw3QGMzDevm}Muc=fIfC?lpm(UzDEG<~ zNs!O=L>u;+kzB(_uB%TVLNYS?I1oJfT(ws9_2TG`A->?~FFFlMC$)p0Ezp!#znla# z1f0(ULo|7$0;6%P<1sL#KvGA}AJ=q7=>tVYP@^VDSaDkuwsljVz^)@NMY@_IasWmL za<-T+uj4#6O0ANR@5C&QbP6H^&*MaGbS3xRq4o^;ftMd{`0ck}(R#(Yydua#e>#9D zoa@M~0D}ltQ2UnJFN-B3&o3(tQjhaMa7p>I;PdMOYHmo$LxxkE3O-*HN{JRBfJnfq zYjuArupmy6Asesis7|i53@ew096&)Q zAJ~ky#3?bhBP=AP@*E`+0^Z+_J3l^gFEN@Ubg$rv5o>ugy>550lT zr$J#!lY&lbF@=af%~oY_yd%JN+i)J|f@oF{^;^ZW$~RY!56yaE|Q-x%;ZJI{r|O_TQ~Er}bga-QzDI|L5<@nmOSPK@4> zRz9#)u3Tsu^bVMh&QK1{KXc(4$HJ`cxnU<`V*^wDu&SM|WkGh{g^&*?Z=P%Z1K zu(1j?#=x(?{Wp%g9TWkfgZboqI3VW}kH;&XAJ54@dU<_8t>*33VMc^DMi~f1Ro&$q z<5c(nQP>|%uQeUD2YATW!OTo}LCbuu;5xx>c zy51}L={e5Z_Z>0P(DtkaxlmZLZ5#P4>XiQd`HtR{^RucH+z`D+1=ZvJqHCt<*oCID z;`qHWE{a^#YqYgLXGfk=nn*W5((3JY$G2}^mAliCmHHu1ya?g1{Jc6hHo>#=W^^R>xY)%!m`1buz)P5oc&NQs3%%vds zs7(eCbo57MZpZt#?|6HA!;uSKUSB7#byF)02(1r{=zHpThM(i|`(e}*5s+58aQSd0%GPP>nB4W7_q!W@efW!_cMLCg-y^zGjF? z1q?K0mT_5U*t2cujujg*E^IbxRrH8WNi`mBtCPZG0IIZ+?1)=bgU=K*N^5;~uAZs~ONH9Buh ztr=|qDQ=9x0D!JM9dYU+u2j|m7+^R0zz}YTi`d_H(6_Wh+~pR_StcLspxJW0Rgy>z zvU34I#qdExZ@Caf55qYU5Sb$-bm`u2*)SA{9#ghUtAwlPLyUAVX*P|qIgXfR_^_?{_@FrHKh{7kLdL2=S< zp%g&##%k-xXV+)hQRUcA@-c#7jDnN`06)9^QZkx&JRW!Ce82~%W}knJF9I-gyhK1F zRj@-FXdrKxrkn#xhIAIsLfD?&x}el2oGT<5hYh(>(ZyKC1wXv~gx9w(`10i!-0pY0 z-5y9GA;krc^^P^(n8DQqh>TA;kMBqe6_Wej@Sp$7e^xb@U|UzDC7}(*Ac+Xd;B#Q| z=Y8La*2ajb;88ffciyw}JkVjJPmW@q&+jN_28N)NhWqvck)a$YHAEdc0xwj4?fVYz zgZkESG~~cWgjO00Vq^&U_iyhr@YXhF+t_kGN!}h~O1sbVp!+#kpbP-5)LFpQ%KOFw zSxr$zFyMhmv^(d5C;@5Nur3Mf8nL7sS_2Xsa&CwbsHLGrcIO=(y;YoxF_UCupZkr}l6x<(oq9AG$vF|&a zTjnzpLPS0f)K+l2-;e+t#}4m-ZCl{9!FE2Nx2FDlEO1j?;6s`Qn1*tTi1M`pixgGC zS;0BRRc!Hn=qN}4fJM);E)1=Ir||0I`NZgS!S}kxn;y8{dnENcGL^k^W{gZ)ORWv? z9FIFExZSrYY&woZ8-{@Q_doFZ_KI8N8cu1!zCZEh$6q)_X(yJ=p${fuP}N#>?CABg zCdS$Tvp8^CudRY^Rj#Ld@FSRH) zIiL+TO+m9>C!+U>du6r7sS^p2%Z+_{Z?%g3e1dAcsMj_qGR1?!`!SpGT4)o}dY|Vw zX;IghFSszd)b{zIbQ2pz@+@rHI4ink#n|{O-*bMJ0iKV*@7Jtp<&(N0U&#mcwN_3Slt<&|^tD zG}|sH3DgWg`QAj)fz~gNDwB=!b#&|`4&5{i3Y|Lvns#ce?K;PrfJ%1F85U|gaHZYP z_uzw~gEnZSY+Wz_xhx(+AkPQjwKX*xJ4Yn~DqkV3QDJ^={^my(f+c(pSio}0`&64i zH1a@4xK5mQ`z%;;QRB#%V1!qbji2YP4;mj!**M-Kc5I8 z;@h|HJg9?X(F#Ef+aytQbVL)xQci>=KpYWE@0EWcM5~_rcLdMC?UI@9XR6s!%M6Nc zRiAHR;mO6)VGh3}f3rwA^8pw5>=7Go3a&Qz=#ad?4Uc8HA;t~&+Z(?8_&2;fe#HIp z1uri@V6*{03Klb~9fF<@Km|Neoryv{MIhVOPx^la!qHsW| zydL@B=&H4X<^b<+h<-uvNvRL?TM9lQ#%=B!aKHe=&wu~pR~^3(?8gUUj9AjDyhj!e zMCNuCfW#RjYZ7^)Vgn)?lCFHEWl6f9_POspKc4ipng?ps?tc75C2gK!R!DHq=Rt&0 zF*+UZjVEdxDnuTLEJlZ#w`$&AYe;FC|8y3qI#P!5 z75jzyj4@c`JCC9JcvmFNCOHO1(CFB~1(_zGef-s`qBl}UY@GszpqXcs0O+WlGz)UP znJsEoL52toBlrj#=iV>pbq=UBpBNqTDK&*Eb84PM~>T+!#!2ETrnk3JPhl4pFo0B`U&R9iryn$IfglH;-D>Tvy zu@1n6z;y3Q$d7Y>NAHYIQ?zl}RoL?ZBfa(B;5$jr7BK=5R6UG`*nipki8E3GV@x-8 zyXq6Ia$dPg3rUK)fss?=<_#Y9x!?dDzd7|qBk!co_iZCg5g_`A+8P?h#W6U?d6K2)ALpU& z(H*stB+q+SVc70xo&l@?5vpj}iIX(i&Ghh-dWnx6pS{|+ndB_E-&WjiFZkO}U-0(B zk9geQkm4ONY*?2UIG318=z%dZj^~b&59IT}c^-KGct>|meSrc>D_Cy}zJ2@3 z?pp?8WHw-_8h-6)t{GD#Dcz6+amcx-T1KHpaP!^w9U=}@3*#6Vdg}nqq4V?%N)fr9 zs^*MJYED`(sghJB)^;ze7Hc^d97je}{ve=+i%s;;C0+Lu^)*$h8kRu)xO^DQ$>pRdhi!Oa(M(?FFSC zIP;GCebF)6i+TYGp3eizvSPh&vs3oY;oJA`+H|?uBm$bepzG$dIpoL3J9_8OW>sba zbTw}sIt~vIjS8|ciCOKmT6H`mlZQi#kpSl|seji!EQAOQsMj3#s&!rP{_#$G0Pi5e zLZc}!cUjXsXkT7mIbJ?9hBUMj6E$EkcS1f3yt~Gkw$DeGbYkIQUWlcb_mj*6(~zug z$ay0|ZqLg8Jd`Kp!AY^3Xo@}M=FbFR1`~517u~xuTD!i7d$R5IL&uRE$$QV|Dc6iz zPYku87!cexhx_dny>pLo-uOS719;mwM)pY$aIPaClD?127Qp<*h9WFiV{wi5Xzx&! z@NWK5P*g6!tP$+`tD!l1=NK{P_UTOE*gI*&RadJS6MPx6#Dc?J*Rz{h1GGS@aBe92 z&(|mL(@+YVgy<8+GP)#~exS(*V8FYDE%#1(j1MX{FssCISsvLL$PTu3RR=FE*I28W=PY@K64fW?SeGYsJ-Ydx)V zPWf4S5v}l2xX}B+f~=2O-8$%oq&LQt8NGE}Fd@}=wKXMHI?Zk(TskXbXu+vDWn+Ma zsiH$P2+abYyZ_Smt;j$gw^onT#7+-?so*&Ehn!*QJCQ>+_CCjrqrDmfxg zV?y1EOc`=X)g=!F3&*C~h(kRQho(_M0>HVT>N38@RLr2mg-B?-GFHXl=@7Xg=91A{ z!{dHuH_ayT0VE0OAgVH)^fr- z!Snf~3J@gZ+G9UQ;xf=%p(@RDjLU^BbDf;0#Xdwe0%gc2EfqRU&dyD70BU|X;OM#2 z1+6-~y!?ch$4~hAr+eZ!(s*bLM79uthHLtw+8p^S?`$aU% zCK^``T`jbopfRe(*%7RVD8{5yn=AgtoY-xgd{GK`CI>@rtGNz@PiOp? zLn*o`U_OI$nl(X=zZ#TYsG_O}DXYc2I0GFRyg2iX>BX;u@hO0EhhPvkiMy>Ac1r;B zKn%a?FgsdjiiZ#k3o5}JwIPVjOF2?;j=nSlL#s&5GHeY_LqNUw>4kJ1h%B0d;{~ei z>V~VcfJ{bhKpdQQhozQjIpNe~jK+ejP|tj75f`*GQ$?YVh<-siG|UoO$kl>n4J^9E z>jJsn>lhaL+g0{^prJ9mQ~4pK706&#-RK>nw6udQ`d z8E~Uxlyf>Ni~FnNufXQ&TEK`s^jzRpM6k0EU^pCm;lhj&GKL;34e&r449pf?G<TIDsgy=!l z8jV-Ke|;jRfSW*v`|~#(`9P}``~HFL zzTv6HrX3#Z`hZI-#SqGsEH!IPRYULz-Up(8Iw~T9$U|Y-7Pvm}%%=2YLCWsG!#GaM zl5m`vg`6i3aP)$pJk7G7h@N8+3``zPQZdbOo;s4de9-2)RXYJ&cea5UcY_6jtw;5R zt3%gZg^}`mr&*_0pB`p%3eeSN#WPYQ#fZI?nG2X}#}YkSbNKl96X+|VPe|#87}XZR z2Y8uGIK z)KY|>zvRL^KVbU)m@NU9UZ3RKKDtJ4IYl9elA2n|=^iIK?lR;p#sK!YYz(b1-_~vJ z6|_eHQskcXQ8Gs1;hADU*Cxb)$noRxfO7%P%Y4TE`14Ql8$CyyeK6W++g42lVI%*1 zK1pJ4GC5~(jTI7c&&i{ta?j|>f7jaTKQ<< zAQ*_jqXzB~qGOt&hz5PN^m|2%P;n?VD?i9-nnr+MBfJZY5W~Q}Qz08ef_GG-0u@dQ z4RlL}c_x}mf2~?X4fB3vh9XfHj@QiY=r4tj_i(DzUAIk5zYWb{v+~@Z(}trD7E+d9 zxvn&KhMhyo-JYLapOw#!`7tGo!RxlDAL$ZTvuhJ0Ex5p_Iiu|`F+@QO zI5bmK>g2|C_ZLykXL3KC1$gdEm8BliCJ=!Z)V;A0FuzXF@IYxumvGBo2l(t8=Mi|} z$Lx^C5R$jGrL;=UejzU$e}?jAp>IxW+N}&lTLAQq=;-i@+8G0*T%n+&sa%N!%^Lzi z?G0lzh+Ld0%M9!~&JpEhltv2)7d$#J)kt0hX-O=Ax)msZxT|aHssadsRd8?uG>)OD zRI!(L^Mc2~>?*1Z_&G}{2+Ch!psp=RzHjI422tgu7Y829W$N8}n@+A+Hf930olzv#FX&ayM+$F9k~p3x9>>NA^1ge zCp(;vwDD*(d=&_Z%g*cEo`_c0_@v&9w8&A^{;^|KGOImjA$aKIj0jc;Sk@KCL2gP{ zBr&O>Av(Ar1$7y21@{L7rMt?nkK;MJjkA`S-}rdE>H$SN4?9ep3rbQP)Af1X7LHyU z5mcf+=7WOyz7%05pFso`_e39^h6cg?D;|DpZad+$@;+_d}Z(C}P-VN9;qu{(RDm z(s|@_*8`*K7%<@23!G?vo1!p?4v>aE3XZd5#0tm@L`OKSQJL&~VDkqxP0c&rKfdAn z`!}>!P;$e0>xRyujNj+g?RQZh_=XF`ghyqZ3Snoz2Fq4yM{Gzw>0s|X<} zFKa~zG~_gtg9ptumKnXH!IWNXQYo|daGqj}Qn)5^E>w$a!?>gc&dbbFt+nBH--zJ5 zs7)m_uHa}3vi1CcR(yq1*U1IP1TJl@YT&y$$a3{bubBL~ra@M^ZBlBxyU8wuve zanK}Kd1v;#G;I`8N>|9dA{pzt>Lg^$v;YC7FB^T52t=@O1uP}N)MUMJoIF%D>Allw zghPyrI>WQkX*xy7nZ*Bq1-VN>#X7YJR%jH207=D5{rKa654B_K*B5i zgkyg01#CRn1bNLj>>XHAQUuM<^<;Js;-JORp~X5k?koRR6{YiT+Z66n5*x~8&6Uz` zXMyFMS-Vs?$NQCYg+;)%MqO!KZfk5fPbn03g8zk0zVFJ1eq3lD~CUre~UDqfnI*;qG?Mho@?u zm@P^Ph(cv%gonGC+B*jl|8DrU_hYp>MsJE#1h4QU-<;?s%hOPYgLmrMVWb)(7och7 zE)vCHFAhIE?H?1zTquLCyTbB{s_{nG4ajr?oRT>?bHiYKfw+KF4T0g%5X7_8ws!;< zAXQL~1FjJb^8kmG?vT3sSw(Y1XBTOq1nf(bbKy(2TBKTF@n8eYZjw*nQ5HIK`@P2}yCS@bPnnH1;_S{8xMf5Uw^@UyQ5bke#ksL+!#0KHzb`W1TO!EEjCs z6Gk045eOP;InZk23Di%xyj=12_COWVaBiC5*9F(xinm|BXqr9|DlSZ-n_a{-Pu$>3 z){T%jlSgz=sH_Om}~Kd__mayhQZkv;bDnT0v`W(1K=2Ng7*F zaz+P+@x=>`9i$7Qb{G;}&Z)tBI>z?>31A;uMq7^ffBKmO?E-RUIdpHHTWOep9#9L= zyo2{MoQr61NJf8D9xT%Fz{_QU3!esZn@i^RcMeBB;KbwQ^@2FjnfCVfhQ}iT;%L9G z=Hy~uper3IbC8GQ0r0G0iDNx|-0x!}HY!UT2P0C}91JGyV=W~sYM8O*r@oJBr*9s- z#kviN?&e(Zd_E``4-r$~eXwm$h_Dp+vR<(5Pe6z;Z%Y!E|$bTO*tRd)hhh1QmFLgFdPtgbC|%!Ma}HJq<4@ZA3MDK`mqr znCEs7R_|vBr*%v+1eoq$h9dJpG0o|4-w8nthFFP8ad_X=RFy_P0f87PHrKgPDP$AE zaQ-ko*V&N_SiDkeMA2-RG0hpe0YrXCntD4UoXlZwZp7YCnUR_Bsvcf!6z&X;)0s$q z1+oA%Pc#+%+xMj;%0LpLhQUfdp&?=rhRb<(o(^-#h|>ubQ`lZ8pw1OR90Hi%)H4 zRRtwgI2Ymi*&k(tl!(BaKsxXy*`7(!53A2$&mHya12v<(-xlB{QFE3ISf|LMa-m>AehFc<@ml zS~jhJc>Ro$E4KTF&!0a6Qc=ahM~C%t;U)+{X+@nqL@`E=%e%JrQW=c8UM@KHof%T9 z6|$x~tL6}Knp@;XI)2FqLLg7yO`qa*@h%7Rt#pHO(ep&74kW8ou=}R=hM)(H-YYr^ z#4~mT2&n2pi*bdY7JT>pZ}8jS{)i8^A8}hg;WjO}%_}DFG1;lhIlR67g6H-#w(S>) z^Z5Gh4bM%hKU{!cRy<2V2n|kv?RbubsOdnLOTl_s;1Te=KOj0R^0c4PdchRvrfmSc z2lnlWS{pvRexgHknY5eo8>VT2C5D?wHb&~-E|&{W-uniJt~3U)EGu4a5%3YN@t{?bvbqa6>wFY;SjFyERraP1CHO>x{EHNVOlH3%${-rBFJt%q$)T zI$mx!wBZWo!E&0^F{Z<|ct>}c?gXu|l)1L78aS^~18({?H|*)aGR>$pW79)u5+?88 z?+?|91_cz_owUZ7M zVGM`%-DNHCZM_s zRrxb{*4!a{_gwgCTNTe3fl}+3P%TXK3?Y*t_8b9Zb|rg1VLtFi@0v=*qcn7Q^2crN~QMDY9PS`l1F6jH+CSr%=ljdNi$|0_?s ztv5LE6hxgKPhlnVlxg9or7#5adb=vzPEqPK&v@J)!x?Bli=l$NLruiY&&a`paO~r8 z2S7*FmJ*^`*n873LUsG}*7SZ<_fd2Z2Rxq-T(4JZHG0L7Dx}k%E>1Y}HoazD?dzq$ z36p-iqN}M_crZqyz#}(@+6DQj@NUA(?E^l3{2o94_V@Vo={wBxir3o*tZ_lh{Fyx$ zY&k>JY590QupM_Wp`JRnX__$k8O}#if#zCNV}fXQ*EF-f<=eM!%s$Eog7dgsDXwlgg|k0(5siFCi;;k`#n3G+OUXPOZg z9zF!sMzAcow~k{^czu24hIb^i1|l1m726KfnuZNL9d#_G>$?7G*fB>~$r%=&*SR^&SeF&cyl8gO z%9<+i5DBols^BN2A@_iwVb`{aDe}IaVk9Ni8e>i#N_6Xg)KkpiSKi0B0m)ZEjqmm9$Z&wFD(5?U$n6PrUQjF*wV-daYf31uUycfGLk zCq}OV^o|&=xZbWfjstIR-_Q%t9N=R>^q%)*n2=M(+xAdeoybkmLB!-h_WU}?s5bgl zP%AJ>$g9$1F~pIXM!jZHkObpv$1fFv+a6+Td>wx$XLONcN$h+$(`n4MM-~g}B zf@N?y=MXrbpPCXb+z!E=5Sl$i?*((cpE(l2(|u92`-nLdYF+K8RrC~8pRT-CENki< za>maQNBxz4Xy`n3LpM_nWSaky51#P6gLfST);V-4`-3OmQJV=l>)>B&HMb7y8ALZZ z==A_dQ7p?sduBUJDv1i|_3MHv7OTnVh^`+@ccQ0XZE@FO4>-gBOnbntDv#&3p_YOv zM))Zr?FU3O`=fU_6`XQ%hi)Vu)@sjdn$?-2*CTk$Au3l62)v#K9sIk2x|E7pGh}i~ z=#_%+5OgS%uAeWolZzYPvP?)vQ7bDmpuA_YdQeB04Pi0Hvld4MybgqSYptUyr<8(u zS%!;f3X!J|;lshQ>oy)1@g6xb{oQ%d>?*nf>p_%~^$P{1)gcHK@6?j6_pImr0jIpW zbAb0KV43()8@AjK;}su1eZY60e!#!{_9r?4uOG0)73dC58hYB%Gs|L2E9f=j%a<>B zyMINP1FAaJ;J68FM}l;Zv=IfNc7tv`z{B+pz+;*`?)PtC-BrMHnX$|ZQ6*`t{=j*E z1B`!F&9X>2r=L!3<C2ZdMD)U>W)kL(mD12^$5TTl=Q#}R(5!-U(Mp_Fi57<# zu*MlF9oU{vO!I_k3Oe9KrNej#4KZR8QK58Eoshi`)_g%30v{ZO|Cu_hTsFjcf(Q|? zkxM8tf=SoQ1?c*{(Z{{Bs}2po2t3{PW8`M#!b9o0ULa2J_Qp_IaYQej^H`TfjVC-5 zOK@~ODm}z|HI3Xr>nGjS^$Kmz7*Q`F&;^;a=T&5&sOKS*n#DQJsJg${;4k()dxxkS zZ;FdLS)s!V;~=W**wY4qIvg8;jMgjV43Si9?*-58L0Z&Zu&xW%b;Z7KDwqdE0IT*njH27Y|;Y9Vt zlqc}-+H7Nk)tE`D)&sgT+Twgq79!2zio+!7WYO8C_YSm5$9LLvD@GvBL-y^**5K=G%LN*T<&jI*=!xG`MNkTDf5>EZXhE0Z>{U8;sN8 zuhptuM|!dQDI_i3suh%;w1*LHL{Tua2IG2|R%^HrVmOPHg^sdyS3;@1{auZmeg7107YgKbxDVS8fD`azc0* zASIm9yFvGb8m8X#Bx^;>1n9ajoUS{HV8wHQ`;v8$1H1DVOu4qp~Iu7KV283?KyvK1UZO4J*@wnshxMQA|v5@ARG0ig#5vAZb z3a*zMuGbg5eS1SG8AsZY3yYC03cxJP6xTMqzP=8}l~veSB!%Vd5NT)t81BliXR&X# zY%SHo&>?oZp@y?dYc+DtWBBwTuxe(CBeKDQGN;L_P6#9QKc@q&Ga6?6>Zgvw^jNK# zE0`$KWnJ;|azXSF>$Ku_eZ>@4tn(Gqbc2ttxLiMAo^J4g@dCXzELtV?eEfpapQyEB z+c!nRGtCcbqM0UE>sSgl#qaFrgSeq_Dz(6D-z;EuXtg8dJal8WIb3fy#EJ14&*x(Z zuK|aB-(k+({W!*Flog36wIEJR7-ytQ0M8TDRRzy$Z(?P850}eDzZdBp>hkJ1U|Tpc z`svOFtiFmGOu8|n9%j`Xq=$U(NVC<}@VHZ3)xp4F6E~+LVc++`Tm(f{`T0WE1q-L8 zUTD3L#*=PQJ~-JHeh8#C_1aozFF+?EYs09`ihM@Yi7PxKlOLK|BJpR=<~K(Rd@loo(a;n-jEagOropYlwx)f5wMiCBBN9;A8A*Fz6r4$W{bPn2K z(e|N{*Qh;{BM4NV3)@%D3M6+@eK-*~0zKMa3^y3H_ZfYrt>Qmr;6kU4tPSR;w+{d3 z|LgWQpefox*|W|%19dVk)j|PVuNV~?wT=evfkZjcfX|a6>-tofZp6gNVw*g8W7tM& zI*i_dBd3w9E@F;GYc6*TjdSEyMS!k!-FYK1nN@m6%?vuEnp`iiE?$sEtFiL)K1Nt! zvrWM7uH|rA*^LIpt*V?He+M-`-UV15R&8`#1V?91Z*7Ea4%E-RyYqynzSEI)ZbITc z?cw!wTy~-3FwPnPx*yDa5@Al3@$ey_)`b1}WR6$}w7G^!i%y$nU2$>nUXTth#?)!` zk(bgNhmzX(@Wsf*haF?Ub}%h_S()i#H+a$4XQ)Wdnb$_&9|S{;3Y51L||PA*mjnkNAGdHUeQ`T?dV>#C_2J4K^##P4)j1$`+uA!B4Vu$+P$g<43MFZY1(^OYvZ7r z^LXAw7-%zWu3+1K!Q1`6upe)v#gr0c z?%RZ@sLin-Iy6;?8Zt_$xLj^ro^(B><4xVO5X{p;t(j^LscmBp9Lwsdn~PdqV#w?J z47}U*ss~w8H?=cnVqI3KngY%VYR<4UZ|j#cq(4MD1+yl<15hoR21u&&v8Wh0*OFr8LMoMslB=QOBGYbG9+LhQgTBI>LqQpKS_REpEaVI632(jnfy&RpnFwnVd`8V{aX-PM*_ZwG60?LN0n z^SxwH!qj~+Ptt1E%sCvit}g5MT$V)*2xJjbW`7~+JVlX&D6-{%S-#;AqIWYMo$VtA zLfD@0p2{=lr|24B@2l#e-bO3SR%7&qC@7>lvLXLDxp*{hEOz4h?l?kA0sfbIYPDoJ$ae}TFrBn@M8%r8#8gtdz3$;b_eUyH$=60dz z&Bj7QQ`Tih?QQV;%yLnoTO+yx2ON7j1)aSkH?Ri5c|s5Ue1K}v=@(r0d#ie3ImJ5V zgb(F_Ypd}6)NSQb(WH}>bQ;R4l@)40B#NWZJ494BMy*?LGKNxyq|%ec2pIA76FS_N81cMWq?{#{huD^0n4ZoYI&c35~WPx9|V z^gwFm`R$H%e!&mleTVNp{}$hW{t+*)pK-mu;JREfIo$|aMcQ{fj{~lE)I_xD>-Gg- zpFbn|0Ny)PMr?&dp|;CZILuMm0Uie-v zS7!UEo9;Lgg6i$oWkuF_m7J4y*^#c__MOgMl^HC{GEVK>lu5_O;Cby-n_^Wa%uM1n zUYBLiY3n-EJ?WUG1dU5+wICN#Z>2OiP0b&XI~rnIv<>9gPYtSbHbC_;EY!;4V<>~b z4N(uVx`CV9?>G)^{s4lHkVtf7o)>)$M5cQOw#S1yEL$rKjRN!crkT$(BPnReK<~Ie z?ht6^p>E#kIJ66M!LrOq$A$3t!Vn3yzkN_Rj4K^M|Y^#z+T%M zn+|vOtefVS2j;41F=^goKTfbj?*Z$!^ua5V))Bo9Ve0bZp~GTTIP8g7)QSysWxRi* z5p7_!A;!=mf-`E+>Oj#MBL=c1&igSmnwHkyuhGFaVA)V-)Vy(sr%ufcT9E@H00+(F zf*sX?UJ(Qh4o&0ZEsI9A2Bx19H?nY?ICQ5s%NU&G-OIo^AXQq|8NO(peBm6h`pJd1 z-Wm76cQ=qP(lVx*u#PEp5@_m|Q?$nmoq;|?+K)S!iY|_+@y)}}T9xzeWY9Zdcju@j zQVu~wCOMHiui=}$qk9%prdp^`3dRSEhLtkn01hnTg~M@Vh%`7De|&a;>02Iy1~+v* zY3o#csMF?lxd8z7V@KZwr2`N~4xkm}+6RK;gU38YNa{$Holo=iWemCV90ncSM@zZd zQ!9~5bcRF5=us)&laF^!qZbOiP#<>eJ2Qw`SrgAPQy#UjU7`(<1L`7sHObIZ>1!2Ab z!qZemMrk{~e)~J__kTis!91^u8ghUub25p`Ybr2I{z34IZ8SN`1?BMY3B+7QnS8P{~!>J8p;s?3#nA(QiP z-8gqHDC9P|fkFh;3tBHqRcdp#)&f9>FhbqrXc3?H~-BGHuV(yeNEH;RIT6YSlU9$h&hqQLCliiQu{I z=&B`(hRD^5%X~pE6}1bJX2UcGipmqyey4>eUJ*gC1nX3>E;m%s9wpBP^xl99##}&Q z)~=RV?-@913lpn>fK97U#Cs;03-h9S@2XE?j~K+tQ*GjJD7ldyDI8#9h+~L@$moSE z3de%afI`!tPEe~b06`4eKjj_vV}qS@I#>i=aNbXbqQGhMK=&v`PcwS|IPZ~a1>6iL z9+w#L`STC>?&ELpyB~jt>vF|qx#G6GK$>8g7WC5b^~*nS9Ct-kD~@Bsw{O3omNfbi z5on$W-m{oB6}0ZK%t0SWhu(MiAlNoieABYx_410GE8f1nA;f^_9b%Z-q|m7)soQyC z+@3p1X$YRDIAnNzvgnes7|8{8pB*;C9^ik-lv&4 z#5?#Y;Mfzpww;I51-2AMAJnEAAm~~E4zeh0Nhp;WLAC20)GI_t9bK0TZnsx>7vcSi z_4)}CFQ{;Aj}VqsqgSMyvF{IvZ@8{2j@)p+zadT$J`z>VrQoqq|0Kb~yMUC7-s66B z&QZHct<**19a`(u)On9xyC7qn;hm_MzG$(ogXQ%w^T$N&W?WKQ1p=!vdOn{ht>NY6 zWdvo$;L#K%bgGqYssk$J94_o|Wy3M4pF*9WqEsB9%{{s6fk2ev!x-3tI7O3BB+Ay` zX_~NaJ7SE;DPdlw^H8U+gF&ARHb(C#O7)GX6)&n`q`Q(P_J-P-UC1aKZs^;#p|?tu zuT!YaJTKEjnQPI(`>wGryk3m{$iu|MYt+}D;UrlF%Zrs8)+(1HN9<)NF*tw2E8ifIsyL1?XM`g$KjgNGll zGp9UUa)%aOL*Elaa3^>XG*mpdyAC~Mal8(8&QStXTT#i(33`|w(`Z%GYxYJ)&3g}N zGIYGuL$~u@>loPl_;{Rd%qYRI_;2u8-4f=G6Kx?Wc&20{V!5EAjO z%J}7$5a1&`;^2W%IE)a62iQ{H(50yT84!4&F@K{sPwR1TNFCga^@ftpsup@~_~X4& ziu_ltxe>l7=%VU9yX4I6k-DJj3A|UjQ=B;Xr~{$XjsZ_imcXhnz*G`J0 z)mnL47orMYJW@VrK@X(!oKQSpTSjjJCqaW71xyqVJW;A$SbCt|p$qa(gerQ{f=s9H zNUEFiXqW<%i8ZwfE(D%Hz!r0TDoY#9`i}riR|b2ny}3 z!)ZD%1b_!}ZV17tdq^QuFF116)BDU}xEA=x>>pCInn^0mCg}o5bLf>}iB3F9FRV_2 z!@ebTE-|=|Cu^RjqG#b|)AHle`xr3M4K{Cp2_wObvLizsE={3tknHOnxir8Ms2ht- z=V?MkMNW;utpJ*Ea4fl^=88C7u+E?H-FH9X`|p3kr`PZC@#Q0yX-4$KcI&ajqvOb5 zasT=aN8M2*;n)tPs|uba<9c~fs%pV=+b~bBx)4;zS*lYO?B)u&xV^Ju%}8gxgCg2riPQKqf59L^`(92?Xy@69xC{<%W8{qqJ>koxCD0L_W+$E%1R_ zy{gv#oHMpdE$FNAxGUwjT$2Bc<*HN?lX{1tB<; z+W9$n=s*M1%t35fCM;7#6n;jx2drU6*Y_HugY|8iqykDU zvA(5aniq+r)kERiJa})GWRP)4`~^KM%Qr%5jtUeg?Drvd+)LD$I#wd z&s*Zv7hS6SC z83aC)O53SC#OeKCN=0oHN&8@>=NuwR0mKE&v%|JM05JW(wSsMbqBf6da#*exOcgke z9j#~7PK2tVG3XirE�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 literal 0 HcmV?d00001 diff --git a/legacy/evas/data/e_logo.png b/legacy/evas/data/e_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0fe20dc6a58b34f95f173f780ab562e7cc6ec366 GIT binary patch literal 7092 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 z

    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 PEX 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 Q&Qg<7C(ri5ZJSd60x+3$vH$=8 literal 0 HcmV?d00001 diff --git a/legacy/evas/data/panel.png b/legacy/evas/data/panel.png new file mode 100644 index 0000000000000000000000000000000000000000..de03d44c878f89752b4b33b0e8c26a3b152afc50 GIT binary patch literal 791 zcmeAS@N?(olHy`uVBq!ia0vp^A3&Ic2}o`MftE3bMlG~H@tS>W6Z zHh~4C;P9mBPT5&sgED;A`tjWXo68{u)aH0$!;_^KW<~84i3(mlnb{m{N|PH{flj67 nmSti3t=F!MS~CIy?LTAOgA+$uR086GNtnUY)z4*}Q$iB}I?yv& literal 0 HcmV?d00001 diff --git a/legacy/evas/data/panel_shadow.png b/legacy/evas/data/panel_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..97b5a8c4074389406e35a99cdcc5a34a03375e41 GIT binary patch literal 449 zcmeAS@N?(olHy`uVBq!ia0vp^AAq=mgAGWY*;cO(q}YFdgViJgN@LBoMdcp?J>qo1dXV@SoVw>M7nHU)^dUSz&e zUw-A_0SV=J?t&){^QNx}J>*+^=iESTeMH!ob!3Bi}Mt!-0l|#`6v4 z=?vUF5kMY9gpskiq47UQMLFAs0}ZTfItC!Ah6YB)!%La$<}kAG%vn>;1e5}bGy^fS z{bPL-h?0Zm1__No5hk|#Ae}5c^Dcm?3a4g}IY2pX9x(|4g9n_vViIt}fzD!LvsrkM zi5VoQkZ?d)3M|LX!y)mZg$+bm+@G+d7~~v~o%so19V|RdY`3K6Fz6V7oUM=m3{X_C a;tB836V8zn+170UNqD;YxvXFdgViJgN@Q6*q`-fy5#pr?ytNX4zUR}XR?FyLWvlxC{? zF+J*1J^L!pe>>U^9OPNi*y^0ju<@C#!i8df4%rWr7>n5Vq&D1P+;8OYuEAbX;qsez m(-@uX3qn^iu<`tP%W&*7r`ya5*~>t~89ZJ6T-G@yGywp%Xh8h{ literal 0 HcmV?d00001 diff --git a/legacy/evas/data/sphere.png b/legacy/evas/data/sphere.png new file mode 100644 index 0000000000000000000000000000000000000000..bde2d542c1f3dcaff5c63ee165547d2fcf7723ce GIT binary patch literal 2099 zcmV-32+a41P)2}}K{a5{U z>aQx{b1v`w3E(tv66#}SDUeRh_BYKY7nhd4v-^3zC%3c7%Az!0-t%sgfXsHQA0`vU4$ zVD$x&r^lb$05dxSoHw)en_CqyL_oCwW|(Eb5RnmPbIits5HJe-e1kieWQSGvq{z?T z`Xn6pDd1;;3udeXhzKHzNc)Oeg-8J?(mupYFl#V#I9DUChln!YnXGelc)`lY&)${+ z9r#OTL@l^=l+ytgh%`XJxe7>uq61do&r2UiNN{$cv!_~rF8pJ+gL z;LfXRWM&=cjemjYmTSR`2P({FZD_;+CHMwY!Fhvp4)^vMe0hoOVHW-F{rUOd|FF0A zNer9|p;~XfTTohdAd9W8yKfnQ0_O^l8r%qM4CcXk=zH)9<{C_MY#APUV2M6%eU@|X zBU#Yp`PC360}*fz%obiQypB8Y0!V-avl+&)%?2GpJ;u^Gq;oWzp@WE!%7q^Ko6jbpkd{sg4neJMZNNxS8G( z`>G2;iP;=1L+TNh&5sss%li7G@I#5YJSI3K8UPg4eH6lq{M<X z2RV3er(?6x$pyWtb*F57%navZ%s{o%f2%RA!E%fe3pq3?*2@qrF{zPdMOHk%P{Imm z7NJQ+V>Ma^db5D5z}Mg#PR3@_V^HCo++e`D_8h1#;=j-Z1yOJ%bSzk0BO0R`Lo9^G zp}~PEYKjHHj~hY(r9!QSC{Q}o>#tWwj)Veja->nz zHQ;MP)rt^hiTVQd0b5q;V?v!O)ijW=LbC=(#xN})HtS78=n+Lx>jfavLnNSTo#>Px zC5Yn&e|d!kYXRek;QOG8mJNO$2tiOE)6@<1OehWNzESldU4hwsO07)e5Ke5io|ZTl zBeI4_iRuLBJZ2TnO~Iy6?4jihvK%zV${I^%SXO}Rp-1n+4`OW9P#*|IL0x1tRZ3ZS zvdlA2Ayr5s$E>fLvFeG7tE&%_B*QKf8dM9+?!jyc=ORMzAOV&gvQom`*HCs)5@0|e z#+ahnE>_I(#gwL0>O7&WOR{M~G4+%q$Of(bMGligF2=`?KeB6f?Y$7LpE8SyqE>oE zmT@lbG9UtLYlMXYwWEl01j~?kh?ZB->X0zrg`;aU4k|N>TuJ*Y6kl2`&aI+0!1ek>{TLqwoXk1_N)a-I1jh(vjOAO9?t(9n-d)Ja zM^PMMJjQ#&uLY{SCNG5S;Z4%!9j5ODE^QcF@ao5k(XXx!n_?ineO!5&DA|ByhiEt< zE=n}12or}7f~zBYq5pyr(agVuEv=@O@Xj7Bqo~9ntsHbjV zZ(5OO5FCVPi8}6sJIdkq0b7@0s&J*H{1ssTBTcFOW@T-%kzX1`cdW;E2=U!V==JX; zT3JCRp7_IrVs4~)L>6ksSg$=2J;XFhndJYOEL9%ax>V3@-7AzU9rmcii+vKq=75`(;J z*793xSR3;vZ>9aVN3-94o3+2rIQPdLd1l|sU|vIEN*y2=G}d~!0M$kBsvuBUd)i-E z9Jv2_eF5%&0G?ZhOMS2yOm5a_!`=Mt;1cj0aR2{pI{w%oal(YtW}F0$bsw1;YyuZ) d&)jXVe*sdONNfh4IpF{R002ovPDHLkV1mat%C-Oi literal 0 HcmV?d00001 diff --git a/legacy/evas/data/sphere_shadow.png b/legacy/evas/data/sphere_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..70a0429ceda35aafb2ee74d1b459788a083317c4 GIT binary patch literal 1344 zcmV-G1;6@b&NW`-e26YO2Bgb=QCce~r&?)HP5 z|EAZ={{sR3;I;BQNbwiX=}%HXzKV!=0dQ}S(L+Ffhnx6|fd}C`()Y3gzKqFGLjIcs zcx6Q30f2i$4Gg^WWDs$fgm@6V20Re>U=ZO9;A#6^B9Q4Umxw1>9ebcY2qXlBfJET4 zb8dzA9!Npb{9YpbN#F~x0mjk;y$%%uN?!r|3O&P^l$ep?Q$tlNw^Dwyv~~eo`Uep(k_woBV*O(AaeMs~lrszWnkX1nN!Y6Z z_W6-OV@E;?S%IvHksqx;Zez`LvXD!hq5ugvOCK%&;hg*2#s`e$@1p?53I0FBZ@v__ z(K1HP8%!ehxInoPlsWBu2xKZ5liN}s^` zEd)p_g#>;f0xT7D5#S9XG!iC-hz}zGYKf5M^B5#cpj=?y)u=m&WW*iv_Y?#tVeRM7 zEcvsAgJOA1kR~9Z#EKd2t=SD?qx_v<{Xtj>IQtug=#<`P_`=m4GXR=vfI3h(M7tnb=hAQM1o?nNLXb;O=#0y1qT zG^@{BZjPIjms0%=ikq=Z%`}(vUQ>e>2f7GA;F3JKcsU9ilpvI^Th9dwQ0!0Pvjt*9 zHUeT70lDI%r~tGI*6_Sw-PVE#s_F~+6G%XJkldhY$sIbj!Y!$)mI2m+=pwjNAruMt zwRI#!a);(P&=Lc@0st*F7?#ZhvZpBeBJdjUwUQ4UiUCep0Ro)Y1q0Md#f;Xn_zaRq z5}pbHtFa6oDu}QO&{CGp2?3 zSn#X_L0$#iQ5UEY;h_FDSC+FP=ibB77yK3pDRWBY@UD$fuM0@0u+E4Rc*1++cwFl1 z(ExZv0jvb+bIujcctD~h1wLH?JfTxmFEejGi1~K^Gj literal 0 HcmV?d00001 diff --git a/legacy/evas/data/t1.png b/legacy/evas/data/t1.png new file mode 100644 index 0000000000000000000000000000000000000000..f818de332f347467707960d3af6a08771098214f GIT binary patch literal 1002 zcmVsjO_d0~iTx5`R?tRYl9G!dal>o{sKHe_>sG7$i zBI^O5C?bNYjt$#);YM7!Fay3q z0Ms7EKmvp>BEG762EAs2fu4e&VD)JLF$hmYdaCLe0#KHLv4WTMd@6t#gd-y3I96Vg z0oBOsPdf9>b8o^pPZVtr{wUrgQyxflL77}o>fz^adBZC|-Ws)5uS2^H%_dZ zxZ{p%t{E`kgcF7gjdrVws-iy>?J3$()K#>W2%_}XYN_`7n)T>wUt8Kzp8Lh>Rj6r{ zz&aYePJd_|BjqL3?ZVj^Y;IO>D76pFSIGya0gX z<6K@(W8;|PH3R5&jSM~sqNtqm18B7}%Vsv45d;CV*({TsTC~;xU}q=ut)A!Mc^(%R z7uig+V;Mlbo>@Bk`}>&(o|ICZy2V7+Zf6>F5EQS8+O%^ex_k^Yo2i$}4j!OM(;@@a zYU<_f?QL8)D#9)=FWKAM%MGAPH9r7}rhUsfxBJ(-E0t7ZjYfk;qfv^13Xl3wDa(Mw z6Y5{Uf0k#L@>}S9=>V|HZdM8Dvh2HBJ1SS%KgOA4hHt7GLXk~4^} zukFw8=kvL}JTMs82QZyZ?EyGBu@7J}nb-p`9K!eS_68q@A-A`;cIQH0zuE&ZD4@~Y z0M5_h+c)!rAB{%b+}y0EsQ>&K-oH#hh9QTChlOQhd|~VSJZev@Ya#NR#bUvH zK4&_eGMP+rzbdT*Nal&*|7wv==Zn?E_phvt7T+S+-Q`6YSgy|(ZAlLlZCa24853PtuhbXu3u}30^E!bXR;PoDV Y047+tGI`u9?*IS*07*qoM6N<$f`ymGWB>pF literal 0 HcmV?d00001 diff --git a/legacy/evas/data/t2.png b/legacy/evas/data/t2.png new file mode 100644 index 0000000000000000000000000000000000000000..9f12761bb702d6fb6aa5972142921f687f630722 GIT binary patch literal 1131 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 literal 0 HcmV?d00001 diff --git a/legacy/evas/debian/evas2-test.files b/legacy/evas/debian/evas2-test.files new file mode 100644 index 0000000000..a6dc9376d2 --- /dev/null +++ b/legacy/evas/debian/evas2-test.files @@ -0,0 +1,2 @@ +usr/bin/evas_* +usr/share/evas/data/*.png diff --git a/legacy/evas/debian/libevas2-dev.files b/legacy/evas/debian/libevas2-dev.files new file mode 100644 index 0000000000..d228b4af25 --- /dev/null +++ b/legacy/evas/debian/libevas2-dev.files @@ -0,0 +1,5 @@ +usr/bin/evas-config +usr/include/* +usr/lib/lib*.a +usr/lib/lib*.so +usr/lib/lib*.la diff --git a/legacy/evas/debian/libevas2.files b/legacy/evas/debian/libevas2.files new file mode 100644 index 0000000000..ddec034f42 --- /dev/null +++ b/legacy/evas/debian/libevas2.files @@ -0,0 +1,2 @@ +usr/lib/lib*.so.* +usr/share/evas/data/*.ttf diff --git a/legacy/evas/doc/evas.css b/legacy/evas/doc/evas.css new file mode 100644 index 0000000000..1b37f90bbf --- /dev/null +++ b/legacy/evas/doc/evas.css @@ -0,0 +1,55 @@ +H1 { text-align: center; color: #333333} +CAPTION { font-weight: bold } +A:link { text-decoration: none; color: #444444; } +A:visited { text-decoration: none; color: #666666; } +A:hover { text-decoration: none; color: #ffffff; } +A.qindex { text-decoration: none; } +A.qindexRef { text-decoration: none; } +A.el { text-decoration: none; color: #555555; } +A.elRef { text-decoration: none; color: #555555; } +A.code { text-decoration: none; font-weight: normal; color: #555555; } +A.codeRef { text-decoration: none; font-weight: normal; color: #555555; } +DL.el { margin-left: -1cm } +DIV.fragment { width: 100%; border: none; background-color: #dddddd } +DIV.ah { background-color: black; color: #eeeeee; margin-bottom: 3px; margin-top: 3px } +TD.md { background-color: #aaaaaa; color: #000088; } +TD.mdname1 { color: #880000; } +TD.mdname { color: #880000; width: 600px; } +DIV.groupHeader { margin-left: 10px; margin-top: 10px; margin-bottom: 10px; font-weight: bold } +DIV.groupText { margin-left: 10px; font-style: italic; font-size: smaller } +BODY { + background: #999999; + color: #222222; + font-family: times; +} +TD.indexkey { + background-color: #99aaaa; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px +} +TD.indexvalue { + background-color: #aa99aa; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px +} +span.keyword { color: #008000 } +span.keywordtype { color: #604020 } +span.keywordflow { color: #e08000 } +span.comment { color: #800000 } +span.preprocessor { color: #806020 } +span.stringliteral { color: #002080 } +span.charliteral { color: #008080 } diff --git a/legacy/evas/doc/foot.html b/legacy/evas/doc/foot.html new file mode 100644 index 0000000000..308b1d01b6 --- /dev/null +++ b/legacy/evas/doc/foot.html @@ -0,0 +1,2 @@ + + diff --git a/legacy/evas/doc/head.html b/legacy/evas/doc/head.html new file mode 100644 index 0000000000..b0668cddd6 --- /dev/null +++ b/legacy/evas/doc/head.html @@ -0,0 +1,16 @@ + + + + +$title + + + + + + + + + + +
    EE : V : A : S
    diff --git a/legacy/evas/doc/img/evas.eps b/legacy/evas/doc/img/evas.eps new file mode 100644 index 0000000000..dccb8e998c --- /dev/null +++ b/legacy/evas/doc/img/evas.eps @@ -0,0 +1,149 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: evas.eps +%%Creator: fig2dev Version 3.2 Patchlevel 3c +%%CreationDate: Wed Oct 23 16:18:00 2002 +%%For: raster@dugong.fluffyspider.com.au (The Rasterman) +%%BoundingBox: 0 0 404 396 +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 396 moveto 0 0 lineto 404 0 lineto 404 396 lineto closepath clip newpath +-8.0 450.0 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def + /DrawEllipse { + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def + /savematrix mtrx currentmatrix def + x y tr xrad yrad sc 0 0 1 startangle endangle arc + closepath + savematrix setmatrix + } def + +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +%%Page: 1 1 +10 setmiterlimit + 0.06000 0.06000 sc +% +% Fig objects follow +% +% Ellipse +n 3450 4200 3300 3300 0 360 DrawEllipse gs 0.00 setgray ef gr +% Ellipse +n 3825 4200 3000 3000 0 360 DrawEllipse gs col7 1.00 shd ef gr +% Ellipse +n 1725 4200 600 600 0 360 DrawEllipse gs 0.00 setgray ef gr +% Ellipse +n 6238 4200 600 600 0 360 DrawEllipse gs 0.00 setgray ef gr +% Rotated Ellipse +gs +3225 4200 tr +-90.000 rot +n 0 0 600 600 0 360 DrawEllipse 90.000 rot +gs 0.00 setgray ef gr gr + +% Rotated Ellipse +gs +4725 4200 tr +-270.001 rot +n 0 0 600 600 0 360 DrawEllipse 270.001 rot +gs 0.00 setgray ef gr gr + +% Rotated Ellipse +gs +3225 4132 tr +-90.000 rot +n 0 0 545 545 0 360 DrawEllipse 90.000 rot +gs col7 1.00 shd ef gr gr + +% Rotated Ellipse +gs +4725 4268 tr +-270.001 rot +n 0 0 545 545 0 360 DrawEllipse 270.001 rot +gs col7 1.00 shd ef gr gr + +% Arc +n 6306.0 4200.0 545.0 180.0 0.0 arc +6306.0 4200.0 l 5761.0 4200.0 l gs col7 1.00 shd ef gr +% Arc +n 6170.0 4200.0 545.0 180.0 0.0 arcn +6170.0 4200.0 l 5625.0 4200.0 l gs col7 1.00 shd ef gr +$F2psEnd +rs diff --git a/legacy/evas/doc/img/evas.fig b/legacy/evas/doc/img/evas.fig new file mode 100644 index 0000000000..a58590111b --- /dev/null +++ b/legacy/evas/doc/img/evas.fig @@ -0,0 +1,25 @@ +#FIG 3.2 +Landscape +Center +Inches +Letter +500.00 +Single +-2 +1200 2 +6 150 900 6825 7500 +1 4 0 0 0 0 48 0 20 0.000 1 0.0000 1725 4200 600 600 1125 4200 2325 4200 +1 4 0 0 0 0 50 0 20 0.000 1 0.0000 3450 4200 3300 3300 150 4200 6750 4200 +1 4 0 0 0 7 49 0 20 0.000 1 0.0000 3825 4200 3000 3000 825 4200 6825 4200 +-6 +6 5625 3600 6900 4800 +6 5625 3600 6900 4800 +5 2 0 0 0 7 30 0 20 0.000 0 0 0 0 6306.000 4200.000 5761 4200 6306 3655 6851 4200 +5 2 0 0 0 7 30 0 20 0.000 0 1 0 0 6170.000 4200.000 5625 4200 6170 4745 6715 4200 +-6 +1 4 0 0 0 0 40 0 20 0.000 1 0.0000 6238 4200 600 600 5638 4200 6838 4200 +-6 +1 4 0 0 0 0 40 0 20 0.000 1 1.5708 3225 4200 600 600 3225 4800 3225 3600 +1 4 0 0 0 7 39 0 20 0.000 1 1.5708 3225 4132 545 545 3225 4677 3225 3587 +1 4 0 0 0 0 40 0 20 0.000 1 4.7124 4725 4200 600 600 4725 3600 4725 4800 +1 4 0 0 0 7 39 0 20 0.000 1 4.7124 4725 4268 545 545 4725 3723 4725 4813 diff --git a/legacy/evas/doc/img/evas.png b/legacy/evas/doc/img/evas.png new file mode 100644 index 0000000000000000000000000000000000000000..886ea0a1fca99d39dcbf449596506127c9db8908 GIT binary patch literal 11395 zcmY*fcQ}=A+&>OkAqm+lp_09Kwx1nB$KFDA_7+k0mJza!y*CG$$Cj0qz2~v#d-uM7 zz30NYTs+TnpZorf&-jL^smS5uQs6=$5PSuB>9^qBAAI{^V}hT|SN&KJ2pvR0`i-Xh zpFJOsWGbzeGgv;{GczNj#?p{TQW85XHCTd}xU?bs%R_DPGBNj=eUg@!zK8VZ{U$W* zbdSDN{wiQ$sgz$%Fv5r}H+y!SVLYkC6qhoPx|OokVpDc?C$Ht)m?zvvh|O(0gi6b2 zPT${#qgprIeE)rkA~aK8YM8^75(>Gr^7{Y(FPHMf>(6e|@~?Nhty}qJ{KL+a6qDG@ z+fGaDJ*Wsm>+0(Tu<7KnUzm{PNldx&MdTSvXlY3$u6?1yes<*U?QUgd^&=p9^n zdJDIv;86~O!zULjvspT`SqQ#lPctaIH5H&*@VPi#I>VxIr<+?`EKB)8nNQbEj3!p# zwODS9-elAssH>8X%G61`wS>?z2V;ULwf6>=%VMAqsN-xr#}#v-WMb z-bu()twi(t&xBl9{^QWO?XK`_3H5lF;UO8!9q!3{-6}}@E7}%4Hqs;X_4UIQLiB>c#&|Uh4-KhUYH3Y8#iqYk!ET`P zpMs`iYEGTvjel%mM{-H42h(B8GZKA~&Do-e>WTR;mrj9*SSG-jj4s%p5Sl-ZlZ5=- z+$^%Xw$^@do^NAdK+|l%?w%1^x)V!>eJzv!^i8q@h5Z=gO~`}S^s^FDESa08O!*~gfm!@{^aZ|yQztCetv%Q;6P4*Dzaby|ZXZvO33Juf&4Zpdi4qZNK>&Tr-R8$m1 zIpS<@HX<)CZyJG+(BMk3eMg+zxjV!2L+C+>1^3j+h69nRxH576c;8T(pz}L@{rSKY zZcAUM{kevALFe`8%1W*;*#aY@qelq4y7{v@aHpRU*jJ%jtSXF94iJouol6(b=~urd z7S>T!+lm^*G6r`VSJ%~lBMn*=~>afb+bz{cjByHrp)wbnkAGBD zjB?sc7W-N1p7}wDM~A5K8y_^YBELv8SXo=Qr}EmAd!W{>w6&)`suQ0>$Z{p>5DCg$ zy_#ADoPab5P8ZSvPOEAO~I5p_CF$H_$KuiVQQ}c4s`QB-1kyPm5+1c6YR9WCpmcX70 zd!B5P>L#8;V}!7$#WU-XQ0n@JhRK%D`*SO*hd8+kcAdys^~MduaP~ z)QZ^ae80Ba!Yyqc7X-To2s)izgR(Esn7sknHt;1Dnir7ivCCz=a8DM97Am+GxpehF+pIHZ{#BBqXRl zk-VGWz>|$-EP$s*w!mbjT(JZFYis#LPy^f-*NgYQJVar|P!6StgKQj^K)3>|tnU0` zd~eHgEOLeweUI|6R@+!+aT02T17^BfJ=|xabP-|snB}s6! z->7T)W0}X{*+0F6@qI;TdWO=4kG>k-bhz);Ox5PTEo?*k^4%YoX_^!A7-Ed#{ou=F zymR}3!1?}7La`%sR+GoHc64zu)7HvLhu?X9An@wy>K=)@$=l!G*CdVQii?H(d)V^w z@>3l8DXY{F&6f|fw5lS{mmJ9KTTV%7JXRljOqJ@h+oaZZVHj|Exy@nB60|-LnMVzi zZssduipml8N1N*|R#^_Wf_txUTMpgWhjvyp6cs7LV=SJKy4B=oDYT3Rvkj9iHPjq{wG98mu60?d(# zGD5<_h7gDN)Jb#hOU^jrz`@_D)45Zu65G1i0qg7QY8+&?`sGILgXrk!O|o)wHIMqS zF6h!FWYyzmbrWwt=UFT9Pz-WhC$8l02!X#>eA;`@3ae$Eo1ecG@%No|r_CK`D7ONRwHWqo%83juOI>Jx*j~$bLcAbJuR|)@J6jNdM>$u)IY}j5|miqGHZ&b1flfE z+4*l{z4y3?V1#<4w{8aqLP^=X-^Ba&M9@YfSn`Mte8KeQ3$0NP<_ z>ja7fHch+%x#%6Mif~)-VD<%xQIw?Tq;R*;;$`||0c&%2*M)?Xv=!UvqW~4?GrbM5 zQ)6R+J+yv$_EuKzI0*XwUD)5KKiyto&_#q`e1;E~jl<#J_KUd&X9cblO<7slg(*wF zHXjJsyC$8)7IumVu4m7lnRYbcbpqUUa(ZffdA#PnmY~g70B>B_y`1D>x81qqxwsM} zXr1T(VYpZIg*$`X;b0?znJ7%Pob@_R^JN#_qeuDZqC6KN#&kqse2QAhVrB++0P3Fe9#eEKjFI$_xAP(BMFbPOrcJ}ftUZ)-@?q|ZNp7A#{uUh_a z-S$LMcP`$Y@wepXZ;(8(`g0;z`R$Tc=CCTjrViR2TmiYgy?xG#TzK-ei-U_RHsfHt z;S>U{ukgL~+?}mEpzh>&{~~{Q`*xDY9`~j~+NiQRfb%gnB0ez@fY*ubtgNh)F*dt1 z@{oXR7AqT@&YiM08r9sl_C~f}_&;!8(>}1jZ+RbdUJ}jSf*2W56Qo}ie-_hAHg0cM z3h|d`4CG(*egZ(2{dWQy>fJDU?&>0?)0--dp?HXrvGGy~9F7?h8k%MOp2DRO4i8UE zB(+^^^-){?NZ92(HNmyE1iqWq&fgB=~;e2%gA&ihcTK{fO z0jdP-@FQ8${wJjk2L6s#20vjX7=fdmtR%2Zm)wmaX%4~KuqdA%7Yz3zEOd=b|N1yF5AQ|oyk zof-8t4n3jF%*V`;vZ_$_$0*V(T6 zgE!MrZdD!+%q$L6QttXJ&;r~4f~srsh7iGlr;|7c$u!q3fQJLn>f+*ZLLTxsJ53x3 zRr0uvn}C+HdL@+Ze9LC}EASBy4V#`20}US^pNyK??pG76P8#@v)$kyLJw0d=HN%Cr(pC&4&rG+|>&gHuVk{E4Q@Mhz^pzeC)5!!9H zt^$tf-HP~K(DUE{?v&`5S^EI{y~C~D-QVWAVir}9hEE3^kQ)fDgXE|NqNxGx1YJe` zsLN}=A#~1tCBoy#y&0ruea>is!)kBL=3d>R%3_<3vY*H>0uK+*or*w?ei&u&hA`ei zfU0FJ5ytSH-+q#lPaAO|!HP(CThN94=siM*Q&XdKht+C6Ds#7q?Sirf(hZyu6yKT3hd&@jB-i z!hbWkjXg-NXF^@)*lan_T{P+_nVJifhe|*arsEVq=Jkg2D@X4qhraTj1HS0ZCX_~ zw)llhq4S(y&nBsMT*Rbb(Al>gHk^5uQDA7-& zKIil25QHJ1a`*d(mwEe2&rRhhTN{YwtfFaUJa61QrOTJg}RdL~l&u@&dqRRT3% zevXNG+*?V-XWtR)SV7}y;o))l^{Iiov7?>c>;DuLmr$1y*a56ad8RnPS3zhS=_Zl} z6py*ys>U+99o94Uf3SM*>r?hS4LP}Gp)eHaBw(B>(&4U&$B+)wM2R*~v9baSGoeBPG@2)wh{m*H!^i8#R#3nNwd{ zO5p11n#^ZMvAw;mrmr7yeC$L_LPAf7jo3i7@0{itiqbsNW77r<4zMZo!;}aU>jMse zJ^-x{a|U5V-Jz2ksqwy9`8yx46P4RU%lQJ*{8DWE_wQ8>Jk!gPx`k~I07u&LSo#f> z5u)oY^-2sswK}BLe`}W++)e=!HLt6!t=;Uf)RB24l4a&WA@xWU_X=yjmEkYX`g*4y2V-Odo70Vokij<5f7rOXS zAeaZqgNAL%2p}(BytvG7Z*P~15u^|=bkN#tS?>| zLjxekDAdyVwK@#;70_64O#UkZ_46ME(p3bg2pp*R^D3DWDcVek5cX$cSP-^^|9tjG z@?0pnX$&nL930xRSqvrfMxLM{ewkEIW_Ta>;m0zT@cE4!Lru}_3zHcg8D_fr z-T#9UX1XtjJ>A*a`EEIo>{xOsip6UieRFeD#?Q-p>9#w4q>XCgX)yY(9#)$&LAI4L zPTx__>d&Y!WX6?Jbq-5>lW4x#$VRV0(6w{wDQ^#kfH|I&7oCu==@nuvR5QiqmGwh?F4vM!=esji zRsiCtruxIA9u?FOP~33Vl$EikDluiI3%l(zW7D&l!9yyjdh{ziP!`e*F{ez24Tw5) zRpfl6jia5OiqXr2V^HC+10lMJ+$sy@tFy{S%<~+0Bq@~SJ_MmTznyl?bTR2MJUl!$ zx3>ecS<1(d#Zpwevwbf(3mK~3Z<(2BX(g}|gJa)TK;X}Z!t5t{}@wdr1R$Q3maXc)4%OO-*>jR_Zfo^8%tq{;n!DFZ9_G+ zwUaG?Ea9ry#%Xhxhs zIy%y?#s>>6WMpI#EX0zGL~j7HFK0Y^W}w7yn74KQo*+5T`p$~yeLn|YR7GP;J~g%1 zW>%@Lk7EI%fkr{-sHv&V zKqFQCI9Gq^+Fkma3(0AmAa7s zPGa^Q-;rnnTByES{6ttXE4l^|Zy^02sHj~g*5XpJjPkMZccRWs4JK#N)z2oTrwiD0 z%70XY)@XMVjeGZy1tvs!yq*1Qb5@~Aa!c3qwJrv^Rx*&0pw`76P90^Gl7 zg@lAKIyoYrNJ?*44FsTLt)gQQ+_eAtW%rIc#bj#xMdAo~i1EiiEnesOh8}APypYC% zPrVdR$)?^*h|oMOFaUI3K`a31@!dZm|HYMWZKygZZ_ zXS; zB_ooia;8^&f&PbT;@U~FD!RQnrXv+r<}g$gWWiBGBkllT=sN{BxARQ<*2{HMK#9e>ns67%E6#7P&lLfMp1qh|y!+JcPO4Yz z1e*OYB@KF#3NqPX9kH!m_!dot@)jJ&r9QP|DhknjQV)%Ep# z=4DG9RD5AV0uyrmH|UXphMHRWOPVMt^?1C$C2g+ya$a7-Ks`M_t1#`!$ax119dyJA zj#h2dD`lSl=vGm)X}X2A)kqLxtfrxXUN?)MXigu_0MtVspsO43;N>jtk~=zEd-UE! ze7O{Bz35^$_=h*d2fy=|>5W%+0|dMQ1Xlc>C|X(`JgIt+&-I|*RF)SMY-R$bXdlR~ z>^Dn~{H8~zr!VZ%)L3e;(VM>`tp?kU03_2oIXS_0n|Ia5o9Qa(A=c7*Xi|}!Q(o?n zOpzf^nm@d`zdyvz#+ETUGBQ%{eq{1uiZ_YfP^Gl(?us2BNcLw~;uis?^Np_eI7V@T zyq{9)b%iU6eaOgzDW0P313=ZFrKQ!RQAqp>=_GqlcgKf^-qO;dQ}7c12I1!{)eyXgl6!t z{5JbiT;DguU8`UVGI(t!gFiOy@!9>OXCagyS%ByF5J*g|bv9F_!{VpEHN0kLXAdw& zWR>X!QK<}EZpP+#&sXRnmqTu?Pi}zx=L-Z5B6Z>_A_xRr_fPE(1-JmEp+ALHpy$uR z8#;`x2L1b=Wbac*+9NtZ^9{y%J`)m|lH~!H;WotBWwzN=@r}!L@naMkNtL<>DuP7o)AtOd&&n&;TDv*8eCYUX^_}2M& zpjN^>$rpKX12TC7*h*!f3eAWNUuzUrIX zQOmP%x42PF%%e4+jv3tEH|1p+PO>knWtQYHq>7QR@u1`0j%4`2&u)C+^8 zyF%1Z4#8Gc8|tW0+%!(pkl78?T4<-SHfS}aEaAC@Mlq9bBCdaUwn+%anNsyR%0QpR zd?^JwOwY1DNVtWx9DLcUE%--Vdy`($86y z>EFW;<-9!e_7Th79^)Z&*up+yi*>q*%9)kQ!U6B_F@soGSdzsA1TOfvqTZSoVCFuxW%Zx` zeZ?P_E622lEUw)l=hIL==eSn#k8Ix36qw5B$UrtnY1beH1`jBhbw?_SzCMA~ClS!j zKF$Aj-bfm)VogI%KBKLtS9~Zk49mA2? z#o1X)k=SpNYCYbqW)^K1(J|}!(6kAwi?3#Y#H)^$NpNAouhG-*%+%5epR)0_veKZ_ zy=60%Eg&exy5qhJ9vi2JBI1Lol{0RbPb3MkG1P#Aw|#yc^sn*k`1}|sQAuHKx0tl@ z-+g7%5G#of6QjaEOy0~Gd^r5++iu^$wU@FYfA{zn2VaC<-D9Y(#glwjzN7lO5MDmM z|0-GAsIf7e0R0)7`2Cv$R0tI8{rkx2K+dxVB+F%u_?v0b?SA*$mGYcE5TI>qt5q-K=8!=%>uXt+6o37 zY~A%Z8%TJ5SU&X(-55wg*|Q}fAJWaE_JrP0_0UrhT!R-d?fQ(ri4MJP6SJHN-fS46$ZE8Of5`2GX#Pv9Ir)%p@+I{%hd8VkwWyvk<@a^75jL zPI>Vi$xVGgymf1Zh_aueoi9P zr{_GHAaM;{HXGEi4l~+_$WM9b4U37-e0kLKRuQOVX)`us= z@xO&M<%iKsZ@}Lxv$M0CK;v-^knpckA>_n+R>H`DUsQw`?u2@`V=Hl$w*jPkgQmJeAT15{H?B~wac~fJf?-{^R zGtW&H6<=P3N3+ zb5ltY2heOPJo}<^XlRI5^l~*$!R%?1=i=KnF+%2OCI|$O{Tjf6w&6v?%VzbTO421_eFu$qX_#sVIiTb1TfA(nd!OxLNQ`j z6C)W6CzSe^@bU8Q9bbAUG?uFJ;{{a+2Pb0J$Uq?g^3?xmY`k(xLQVi1TiBD0$OwSC z8i>K>-rj3q0ME9S=rwQ!RLpMqSC9`p@x|^nD$Ztk@8xw(ld&NRhY#`L1@%^nSiGY{ zI=!a~Hzos6VhqFuyOy@LO=oB4UZLiH!cYDEwhQy?h4<@M46(4VwErzezsh3pe5%Zl z-5hPPmy?%|2_20~{)cs{FObCDAivCY@9Il;nseC;Sidi-#*+ z{tly(wIHApP#bWZdvtwubK9TOZ2@vw-JjW6dmAgO&0*+WA+cn{Ib~XvGE}jm6N@gB@U12ccHIT) z;!aSzk*~2aJy1P`LJ_T}bMK9oJr)=`!2nhfn60?GSdCMyrEBuNn_)snhk(h4lGE#3 z{ukj+rZzS<6JWq3TUlB85zut*UeHAC^eRQ=*Fd-IwrQt*yQ%~YES?1*83Sk~S{Dy8 z4GazaoH@vvtBZ@jfpVqj;xthD%my8fTnn7tt0nG|*3xq8UOCzT^Cve~pwyDpK5qXg z7V&7AT)S9jDFe9iBvd`~Kdk?3MA3+Dd#yz9f1?)u)I2de>otr(KuRz_Mx1^!4t+#* z^9X62O~S_7ZdoSCctIY5qp7LM3MQEvfht;D3zSjdF93<#G*+o(T-u5u**7=~{(&b& zsT4p18$f=}Co9d7Au;-?r?+%a)E}F&%OGH-fokv}W21}|gC1byE-?Cm1A<(53_RVC zh4_8hj!^rw-EsALmP;+-ogw%4a|UX2 z$C}ejRE)wk)?{(J=OYM@vWB_t$5?ZZd^+qVFn87otjDOclapS#NGf%36qO#6x|BBn z{co%fr6Y$^d5iitQ2MK%n%I{F_TMI&Zxq3|zscqZIIUuT+Mf#(^*TE_Jv(E26x!*> zjVINq6N6_{#NT55u3L95@6K2yg=`kD-8dE@^(4T2MglaS1c0hC|Bc?j3k&H1Jpd_V zEgm3NH|;xu;a~mbL3$j7u5jmyQ-8|KRsUeh)n{5{^F0Til$q|N5m|SiW7^k^OGuBS zjL5LI1C@3c${U}a5y7E!^|LxFiynB6e}UHF35x&5-@kvW`pleajLEpV`-iq`X)^I| zs)$Z+$~Oj-66xC&9@7sq21OArmlYOXN-HZ5k^m*Us;H=F9xMtQ1L`1@PX1p`Vtk3m zoL+a>vrpDAA*nt#cXMmn@yrT&CIup3&|qR=fkq#Yn3$;P=XbvkI9x2F!mKjkUW|xm zS{-ekvf@H>nMO;P5~Rsl9)@nyXr+r$cDap%0ZkwwA$bVSJ1{mjHZ?YuNDkx%NE0J- zI`R;-t1qxWTq8XrKkWk5 zGS!k{`su61k>^hmAPvQ6q8jC_fk~dO=nmJnci|l!9S=dXU^}_=uJLUX|9gHNHnsEl zxv?o4E**ZW)*i->=k_J0wok%>U26lxgoG%P>{-Yy4gYCe@pwkgY(68+1Tc_#I& zGE8%gsHi{px6JU;bC?A4R90lSG-pGynKWJR@7`RTrSiv!(tJh58cSjIfl`J%_|&adI@L zOAJ|pa^?q{8x&|xqK}-3oai1N&Wx2rP_@3{`#i3Ie$}Alukm=fMdW(x!;R_{<`qlA m`SF}aQ+)ov$=wZ|%X{&;daqnl-ElJ_BQvWjGjByqoj!9;)8D52-1O(^zy2f$0^5mWEB>H= z)o?I||J1-?J>*1DBRcSRO&m%bJ#o~+(HTdjsVJ)Bl-V<9{xoX=t_1?t{&3z;lNS8+ zW7Eac7ffsV`Lv&!4*z(}c>1$?HX0A6>xP*mHJJZw`$Y2UAwkzTDNT8v~hzv)hj53 zRzke8ZnM_yJ9q8gqi3(4J-T)6(y?8emdzT~t5sPgG#6s)HSh3#&%Of&4IVP&gAWD| z?BAznH%PQ<*0^5H%0g2izh?7}-TMw6I^yF|W7wFC(IY<|{?U-Z{rYr&zf;?m%^KDb zng~&i+jZ|ZWW?xCKKt^kufP84%P&6rWbCNnLkAD&-J^4dR?Qm=jfC7P%{%uQ^6~i3 z|MUG1lcumK>60h^@clPmeKu~)hz|$$>)Ewqo9048A-qQGZUcvp`|{gKKTZF2<}8fj zU#9;&<%jRS`fTi|VIK_W)vaSYp@EQ7t4+_rBR~6g^0b+A7cO2RE=ga!VBVZxr%w6d zn=d~ZJz@yS3H62S8f|)gIOeM#rp{cjWa-M)YuVbgHLI5Yv3UOM89z-%kz+`*t58n} zsnWXVhhx8B$c-M(Y{)-4;?uUfWb!JJ=zp7iZkpN$^=LH}MP*rNN8G5?wT z>%wL0w(Q({;LyQ?`}geFx^dmgKNijX<)?|?LHn@5{e-$gaO3v}js9x#%tb3UZr^|O z#L3gAPaZpRVDFC2>sBsVID7h!6aVwYxRFB#3U!2_TJ8Id_+rv8i&kygefZS5i`|(iR)B@{w8aV3fpXMyxu=~ilYj++zdH($AV|T-wi>Hq4+p%%g z9}8zqg9knt{Soe)0jicgKl=2C8H?9!KXmrmohSCMogCl1eChGv+WC_QcW+&{eDS;) zKTi1ivoXU-xL(HrqrUoS?y^mLPh7h5*ug6%A?kO65VZ68Nt7rFaTsV1X_vSTA7tWqK>Dw>Ijl{hyqgvZO z!#|%i>-Y7$k6*a`#GFasOsrKN$PX)cGs695{LT z?sG@~46VL6E!fBP<&!&C&mP^keckdUbAS19!dK%*<7dXdLdzZ>j{k1@qE%ZDoVs-T z=^KyG)Qsea052!|$9JxrJ;n>4J7dcCUymQXLLQ9rV3Y@=JQ(F)M){Xf{$-?}UDGe4 zO{So?t}WKqD}}B?k)r)Chg~y^45Fc^AkE>>lqRCkR?x6PN3#r-4cge9orIQxRy{4o zP}89G`Cg4DPpx`RmZ7deAB{&$UB3`R14Cm$r`l|2WN0Ml8n_u68yX6_*6D^Oh6aLe zP^O`&p}wGNm1SsVs3+(erW@Wf)P=lN8!7MJ>8aaw^X94a?J&{nf$LO(%Mw|Yf| z&{rsFRJTTDwa`Z>ZqcYt^-5}?w@}osc|-nZFQKqg>t+pVRjsJP#I@l44lNtkt5Mlj zDfAHXdvtEsyg}`1m28;MUC8g#tz*k3^=nqKRpTnJf6p#$-)mT_S|vQ|cN204_2~v= z-RhNXtr)zUJGgJp&TX33uT`}IzQ^^D0lnXcJPNZ`;X3ETfxWx7Z_&68RH+rh`$En~ zgZp;t(4q;R@hey<@j>>m!F_vlYKVaK|ccB zx`ILHA);GWq)UFf$4@$KL#!87GU(??CkKAg6;&2G36%}{p*a2HB?ZeR0{Xk$GC@tj zuU6Y$A7KiIdBy${7j8awaPbZZ4i4~kd-LMK&C92c?A^K^^Ek}5zWihirXhay+V>g$ z>4X^zS8myR^xU;Kp@AMAKHgq#jt)=mUAu@G)D}J^!c1=bC=zebq3^KIXo9$T*P+vw zVl=sKjxH`vZycUJxP9g9@dG|feHfAZkYwF{UhZr`vHlewQKe)~D*XAp1PsqaVQznwbgkF{HNA3FKO$K~O}$B!R9 zxO?l`r8CD4?%KR=+2T1fe){3-Psj4o8+Yt8bliV_oVj?#`t5rUojiN#`psLn@7%n0 z<@}lB2X}8eJD~xiKAj4;l0Iq+b^`z8no>`aKxwIO!;;GlC@{{Z{NB1;GrYzNXp@Z`}gkJM&b)GRh;+cvG|(!Wfd^c|+eBQS@D zc_2%)VNJoES-Gv z^$$~~{W^QWq9uR)v3%L`WlNVXSu}s{tQkL}Z1k5AA7L4V#8vfMbnH1`*yvBco-p}m zEQZdVzi9Dqix(|kFn`X>8B>3hq(^@A!NA_#XkuKuS-bap4<0`D^KZVN_~X>+zhKp6 z_MADhX8k&S+Rsxae)pfxJ{dD|*pNZ}d%O?nw5knTb?VXY!x3XY`}(^H6Q}(2^R#Kx z+4R(DQ-A(xGGEUbKW60cA%h3>?a9T}b(^*A(rW<8fBE&d-~BLg@?@<2q)wjn!vrk; zeDUeHQ6q*8`Ct&lyVH6>jfO2cbnQI=D@o%%{o>32eDm#h-+%Z0x8HvA)t8@tI)2Q@ zBR(23WbojD1N!!YaJX&VCapS>^stXdkNf1)&%gNc%dft`($lA(j2k_2_(vZO9x|8> z76S6PI(F;XZ{P<&<_U>9N4elfPsUD4jVRnIIYT5 zuHC3b+Yayd=+ke&2OkU_`q4+jhJN(nhg7TneS7!l)wloP4~LH$GY+Cz%Bpo5y+1a zt=qPLzt5nL#(p{JS1gC++E%Sur$OUpEwDt`p`+N5bx3dDwsotP&6~g1qC>a-9}FG! z#l+c=3uQJ{s@JO5piz@%@3m;zs%5KIEnBpBuUV5u4I8)U+S*#n)O?B88mYE;Qsyl^%oiokxH8il`2=O2DzHGYSye#qh`IjwX4-`+J4ZC zp?$h_>d*m?fCWr#ZCjyYrOK77uqv!_MwME18`Y^+yxIO&Zp%T^*~P8d0fMTdAzFDpspm)mCj)xmt}H)vMs~ ztCdi~M1@kN6qPwD8(V87gQS&}l3`_4!I-E~h$0hKSkYRQd>@zZ(Of{qpPv%Zd@9WKkBbT##oEXkmN z4C&-5olZ)ppQTeXoUjZWFRcdekWTG!!b)+lv|#)>Kj{?FSVpcb=)dD99eaaC<~o9| zofd1)Sc3kApLF6KtVm;px=ILEsIg*QGZrh>Six=`jumXIXx9wEiZ)ibZ7yMj8!O+F ziVO`6O$A+(2Ur1bCTQ8mzJ@vmo&E);Guk0f^oHtKIlJ5oGZ;<%c^)N(iUv*o)9ICk z_Cj&Rp$m??MC6LO#s04k&hM|n{6!^Xe>AusR(jv7Pm9BR%{B|Hg&rMgrMDVZdKC<7 zVcA0m_3PfTWizZO(??h{!zX>ac4&zeWBP>F)UrOrB6GWzjj)DnYo)^MsI!puL4T}6 zH*drjrj^o1w65H$8OSJ=Y^J^%0`;xmYgnfS zq4*~`y}Gn*(bx>a8g^Gn!id2Kow)!O#nl9PU&!s)x>=(-WH1$qW%2f{s7T}YU4^_3 zpt*oRQ?-JcRuc0%!>T5YP$4YNW0AdUXUwA8v}w_>y0u7Xtg(0O(xqpQ)^)MWkL!Vb zdw^3jaAL=L{5lT{=DmCN?A4=HtqN4y*b!Kj@7l3dqiR%I{#T!j=-;hl>&CS!(CYrA zZ^sVm+O|pE$|9}`=1v*^LD!ZIYN)ZkS-AVBaRWQOSI-t}o<%=?HN0or#+9)QT0DAK zpN`F{U}3bRZ}$%GRmMuGrd_K>R@iUQHmWXS1y!#WR#*>|+gEO1dHnuAJbtnLuu$5C zI3}H5N~dt?l=c^=K%eCTX{XM?np`VIVMT4%WIzQ{rA}zXBe>_;7ivy%uCme5Z(7zvXOyPeCXnFy?f&VkJjLWg1d(gN4Q*3BX z#g^>r^qq7z+lf}}v=q#4PaL5*63c$yd9)yWI$IDHw-tn=g@WLcDhS0B1=f1Dz`E8H z*hKuj{-MCGItna!haiGIEp}Kch&>AhaT3lu9}D7(5sP3eUYXu{!kaQqBi(aT`U%{!dAw=#6o?6rn&io73lLd%`7gp`FVMo zCKex*;Dg*8O(Ww+tdJG3{NlXa+??zzO?|G1%BN2YrBAamHFe8;o-ci#nURsMsa@uq zTojFRGBeWC(o!`w%Y2uO@3N)uQd3frHPtP?P3K18OG2imBqt>%YN}d%pKAIZDy8oe z;^Q@yEhLiPArTiFtEp%qlV~>FTu5A8Y)o{t#?~wqTaXVaQzf`53GrMgDl$@I&E;5; zSQstInd$?JxmZjz#3CZXHEOeDy}iGlin66$1(cY;V0fP0LW z4`Wa~$p-}m1_rPIg};qiK3sA!Z$`3*JSWLR9MS>){(dSyE3gm%bHc!}72C(-FJ9~$h(%ndEH1Y{*M|QfpI5|q% zUI6su35XW#k@BJVNPO)6pIG0+1JcA0tPEv^4k-Eo^9zM8#|K7d3?5^q#yDQ#vzyILDL!b%F2PF3? zT!R|I)HknRI@rBC+wwalDT(oLnok@FI~EL;lg>V^Xvk<=yvJy6@YKvx^ow*pFE?nhpvMb zL4&|tQVN|C?&5{>=gyrydq#bRon_}d&R@8A>GIWUH*Vg(bC0mp38ad`T$4s9gu3(R z&VuW5ik(uQWT%|LdpUa!;44?J-?$}Vd8Z@a!qx}(q4LIcSSkTepE`Ns#PQ?DRL9tH z=MyJEn<4b&E7y$R=hT`eYpIsku3o-$;rv-BJbB{yv13P%9678y%#Ju6J$9VnXU|`_ zWCTBc`W#5^-TQa%pq^wcjFpf_j~qU9=-|Nv$^-16)1kvhfIoTa%sC_a{=>&lIg}gB zwO+iyp~s=}@S%eT_V3@fZ?AGM+vl|Zz(L@T;kBBx=SlbNyZ0YHdG><$23UOk8drPf z^vM%|5^~?(J$rWV-lg2dc02CbyKn!2Lx+zZH==Lez6*Chw?hw<{6v*Ked@$C36k!^C^3|i6l zoxAp!@t3dOxFuEIf%gle>VpS3csn>qn>TITuwlJ&J=@^8kyuGPIQr=EQy^Gfxn`=o z1A3HHXHvXpH|gC18(*R9{Maq|`lfB5K$Q{;McQ$>&u2`|0 zEoUp(O2<`e)~+)au>atZWANR@%e>(+QeN1<g!!2b{ZbncAKl zKzR9~o&TE25AF1rT>2O;J%`H=?FI5fJI(Fnhj#g)ohCu@L%aOYEH zov2?TXTY!mC%&Cs=J}Bb1QG|sNKvrZMW+op+OsS!A_B)N)4sNmYJta3PH!N>0w@UB z>m&k&J$?JEQt0?H1}wNdcxR@Vaxfk#Iu~-&}cFI2^z|U?d{Yu03}l9B+Z<%o8Kp zSa*~4s6Cl)A~Klp62aze-Gr71G~_(Vd*$%hu72epQAYS9fraG~nnkh*7S6(0C<|f1 zKHLB^lY%n=ur<${j5CQ!D^740MR3s!2Yn_mglHv3CWhpJ*V4v6=P4PT9uv)?#V9dS zgl-YKMd)ThSn4C^o4^u%fz+0>ngOYRS}{yCB3WQmIkjLglvl{26o4th6&5fS5Nq}~ zF*=}Asv>%ZR71k3!j-@%xRET71tgYQ$uXsUflO0IsKeD^3JdvUqdc)wKu+PEmYR;C zY@2ZFFcqpH!U0L#0q`CkU?J<_ZfapM!Zy4T7vmfym{3S&b3x`MHG?9&F_cQ4WPwEz zyNBpK)IwHaR-qNb6gZ1$Xwt<3#Q@P?<40YmMyNWhlF^-Fuo$EWWT90CgPzNXjMgAokI1HT( zUy4!Hqt#LRNPo4zA^;`?p+3N(|KV$fuhB1Js>G^e^wD5GDg2pPC^s}LEId3SA~G^6 zDmsS6uvm4RGTu5)5v%YKeMLXUWl^u-%#cu$g(xJWV`5|DSezJNIYAw-@D_cTFEh#} z1qBC_C`#pJ#>B?O#m6TkBq|cEldKbU37%feOZ0{VePjLn{R096Ie?0W5xiiCCnhGb zq{_+aB<8_9(H2}j#?L<>z$k8#M&Tr!l$@L*rdX${QWVL|T>?dV`}p|!0Ru<~3^JAv zKmq|$Qc_uJ#WYnaOA*~d-90=!y}Z1Ae0?neWDhBj#M4+>rF5&b02fy`H+OfVyoI<~ zn#xW~OHa?JoS{w+aCQNJ%cFRcIC&>pDmytPHI;-jGQ~_)mMT-75#Z$POcX6WMwO|#T<3EGE2-1c;iUA zjH&>FtGFVVX2d`ZAlW$;bClVNtbo^qAmhk3KmWiWqY^TV>mU^n&&jQjtH@Dh`@fP9 zP~qi`>H|OuB%{bCvwUuzb)FI!F+1=jfuKdgz^Kr$2<|S}#38T<8glb0 zU%@QMdwTi!q7tx)RKzDp)kX~@ah7MBuLOkU1cEvB+5~}Bq#+Uw0#8XsQ5~QlFTYa0 z0*JsII{@A|!Bw89MmZIz1X;x8S-wqy3R(gR5DSMRJb>W!F0VlXQEY|21`ruL!>_fwIAMs0@zIR1u?1QmatcqWYKGWL2muF40#2 zfIMabkVVl_!&^Emzkn5}3w1>reIRj4n~SJ8);sR26gJ8QrS zl)U_^BwuO|oJ#T*-OAV!tUy7jk@>~-GXjD5#EdZfNxL?)CJ7Z#d@Eyus{ej$yVe2u=QK0pWA zg8bKx(l{$~wR`MR(`~ZcI4&e%l#HIt@+00Yoou|Xr-Z zcj@(bydBT>D)%UMi@Ov%#T|<6*4tvYmx^EK;`DYom&dE^Y`iHp#RH1{A}}H_id{B4<4ods=^pR;^C$u4AOYfG#UaH(@qoCW?GvHK zW_P?4kN_{*(>wYUkAO!N0OI&Dc1&?paYQ^U9uf~SV8nekdyVpC0~i2u`qZhD?4)=? zaa=qm9uV_{GvaB*DG@mFI6KCUGOkU1FrH#M zz^5E!4C+8p9Vn~=J1?FS&x$~br${3Mk~At0#~UM804BwefVyi}Eka3L5YIDU*%@ZU zirm^{9wC7uS8yckl&HAuI=hD06<5T|2tsjDyui$82Ah>9;wbb81xP53&LPFwAUNV> zTo;XS1~_6-7~y1iM!85L2noU-u>0&DyUXsd+w2y*Dc%r``Vj!bSb%s=aW>o-yacMD zo5Gh+C=w~C2n7fs6Q~67CYivlG1NdRL8SUSg#r)lFC8e{iWE3SDx^#qCM!zI5HBk( zF_%0FB_qX!dG(ULWDd+e)l^6sLoBPJrBEPbiFl4|`bZ5iK=|(IuYDLqxzG(UrL%2#!+-8H0c`ygED#Oj(zhJ)*n?UX7RNDSCj< z;>KJ&jVxFf6d0rq$_oh%4h`i*u&894WJMB7WB?UO zpy((C{Go}6j39Cy>KUCU@pn>El2S9WSQg9H=cH6jVaW`@B3juZpduzYHYP4E0qhlG z?PO$T=j0U>l$2=o)_QBsyJE>n#CYX^curDEOV0vN1?-fXdfRkG8Us0tC1;Zmv60d; zv*{PTfxc1(OJ`~N)D)Idz>ChxE7Iwk=+zl&FrmcsB9Mx*^9oAzE%a8I$}E;y#F;Z- zIkeGN%qq#w%_}I@chK8pm%t=wYpXBTX^Qg;^0QU^qav-ol|C1rM zHy;Hw*Qe`>3Uk5uO-+&5x-l_PIgEd+)i=|}>5B8Svog}sk`c9w$gt8IR5`$sg|XU_ z0x(A@L{tg_SxIDB;^~HlfLGC2AFVCQ&(F!qOwT|8@Q%dBmAJeJU8QfR57!nUdR|s0 z=}1i_7AL38^46uGU5Hequct5678T@WBdAn5OBcBp(c zwyni95(UGP^n!)UV>Cg`-SM>@hz`Zt;({DFgu(ktF3OTqQHeN;76yi@m+Kq*XAf>% zI;XFuFVqy~=4MkYJq2W`9g~ui;^Pt8Dl9n2*Td!2v-{UC9No2X>3n@<2%}0l6ah=j zP#Bv%F*zYNHaa{c0HwZoaP9PgO)KY5|K^in{XqFC)M*Oxb19G?%Txd%rp54(7jZEW zp+QK<{P@9v}QJXs{$A?Jw}QN78e;B=7qbVR7H+pC9{4{usB^{ZjM z+qIxnj1?R-PY+__P8gw9sk!pL4j zznD6I&Gy5muiSd@_yq{;1$it_%oV{36tlcC(oz!RW5RsiJh-syw}~UVHLG1grLwA6 zvuWpnI1Fa8~J4AEiP*NI*4w{mLM(}=h@8s5bUkq$pzp|C6vZ~U! zUEeWN=C9v-=El9}FW)#jyD>M>UGGNRGOksT?U|XLniLlm>S=%D(CQguyEm?3!xBWG&?;FHTHG9du;jlgW4iqx4^gkH z;w>j{K6&Nlf}lMOz?O43j;-B-e-{a8RUJ2(rpTw zGpw*)Aml3R4*2fJwOg*<@(a`<18t#Im#-EdeH@%?urah2iW`pl{j6UB2u|+_C6z}n zvrjeDMyA_h*691)e#M6R$cC$_Jnld+^551GH0>8WEkuUg8iGdAXL}S<>Q)o9{dPnn z8*gPn+i6XVp@X4vjTDMIf*GA^L&IV2Tg$eZpTcLwN zUpmqIRCA=rpHfY^OGogjRwu?w9!jP7P?Qz+=4~a>T z*+fc>!ZWj+LsA%IltDHcWV4}UHcya%hhksw_!@5RJ9g|e!P#DyefyCZg)*ZYJw~Zn zD6vaf{6iC-;%zunh?1QsG_be<#ekTJdo@E*I_ZgCGo zQWmz~l`H3YU5sdChOw|7+Mjakxpp2Q#lv&2xK{+$iLhjOscH#~D1At#a}OzmkbDS9 zkN74eMKB@do}T+b6hk^0cF5!K5eu_4uh+9#DiR228#SYJoylJ7gg8-i!d@Co=R|v6h}coJI+q{o;=0#?@0Di z)*+s?2&tAR(-Iom>?#wIxvNgFlYXa88(Y_uaESL0?j&j;>LA8&G9I34DAa-pbqW-= z)1afB4We!#0m)P;O%gYi+-rfP;5{PH%w3BxP-hiq#dCpx8nJ*%EyH`2Wi_c~yp$j? zF^^)RV7WM-2N?|ck=UhBo*>EOA<5t}6}7-J_hQ02J6!@940)NtuNw0*nJlIb!8@ZV zbdIN&nrj8|izgy;bi4va9Wp{iz_rGVP?X1t=g*?Lnw?}q=1KPQ)MD2`szV~GNDE;3 zX5kyu-o*7{p4mp)6enE0etk>41!f%5XT_N^V4*LRH5Va^RGjF=JhF`zbDr0$S9cY6 z*}YhctXtf@JW3Al_#7#Er5TAyM4bZ5i&O3HgW2~0e6~kPQob(g4(4ve!yYk&e3A%e zX=am+dckZ%qA~GtygA93Wsjg3OWs%^BXF`wwL~y8vHYI0ry`P@rJ$;$x3o9my$Ell z;iCqDLIN^-N_ofpL}L&!F<2iGtO(8v;_>MS=mDxm#@ia1 zy|tY_3L(bCSTRl!&*CCuq7dvZA{1_Qj4x+t{od!XOa=~3tZceDvJ1cEGnC4Bt!x|p0V#WASLL#uixk^>fI6HhLGv08L9C}#3hS_ zB1Bh1Tqt5DhJXhdK)Lr^UC3z|zK%e7p-x240p%@&QX-Lgks*P>LEv`y`2_}mnHUll zN)3iIfw);YGiQaKX@f`?=s?7G%E-vd0Amkv$*6wuu^=yn1tAQV5A|r~qxT2HBpTtx zC_|(#n%q4vn*u5Fv_s&7@c@oulp9(Y6-6AXxEQnn=wxBxK|Yi$kRq-51O%c6Aif0! z`T6o3s8I;23`$}N3iYSn$b5BvzF@)>`y)tPNHFM*NeHNb|AEH|c8j;SCq=vR2@DAi zXW=Pfp`1lW%r>Zy2$$}zNLT6h(%lrWjbdt1)T;1E;%TA~nBnb#sB8#(79I`lq?-3d z6Q9%(yk9#w_7(Y;LXsgSnWwjZP*6yCII<>&1LB9VgL3=>(U6q05xU*oC~YGjITR|A zIcRY!8Gb)mjONIm@52Cl1A9VXre@0?MXTovLG&1l#!F`xLRXua1 z+dtikK~D1W^A8TCP<*k`=-YmX6Gs^ase9Wa0VCxJyp4QvAe3JbuZY)6@Z*IvZ|uGY z9t`mNj_SC&fh!ao8W9s06&o8K6y)yW`0~ZGNB3`EzjEpP$>T>4Bl+C!o!hq~?cCb! zJ9bdcIwZ_HjmOFBx9>iD{0u*vD8efsI3glC4jjm54{l$*aQevpU0c?#T)Jr9oL^^5 zoib_S4?p0TJbB9GpMIY4>#Vs8maJH_dB>gu$Ie{5e*3}m7q1*$y?g^hA`z?Y*q+U6 zmM@(3^ABHtHfF@o4+jqD*Rx0W?%jH@9;}zXPjA-StKXnO9}N9?)F)qlJL$(+3w~d{ zao7Ii=dRv<_~Ny*hi`Cr)Grgh8asSo@9v%2w{Fp_S<^sD<$cIwu%Z~y)u4IlOC*OR8tU9x8D{*#w(J+yOl^X<{TWsAo3>eQ|&)?6ug z)~;KxZrytI8#HR%xXF7>nl*3Us(Fi+ty;Ed)wWIB4(&U2?A)ny?|y@aef;^ilYg1N za`XPNRWCtXscf)8?()weQrWd#~R82MqjR(4e71hI}yi!y%~Gz`nhD zb?efpYuERCbnVfjd%uB0MvVVv%CC#oY(HA9R_%ICnz!xPtxvxp!$yt!rcmz898G3-~oMl_3qsR75Z@4_-`it+O~6#0mDX) z|9axInG60{zIN@#ox72(5KqM?@VZ0EDV}_h9dS9hZ|Baf8`iD(ZT{@3Q@;EB)6v5| z9MrFG-~K~}j`(`w^m%`*TDNWY{$nT3UBDCY?VC66+BfG&gxbCV&gZ`#Z`sdg(U`Lc)wJ_1P0+2L2)e+)PW?dqh}KLnI&rw$@y z=fLtDSe^sRb6|N6EYE@EIj}qj<}-A84s6^;w%o{-_kpE-PTKtY^G#%VA6VK}HSMa> zHl^kMn+INCmG^<=ePGkhDs8ONPLjM2Y~JgX_krbo;NT!^NXq-b(egg9ybmnz1Izos z@;2_J(48+~wKb)Ivp}i$Rlnb7~X8M(AcJ(fe;5YAvXQ zUItCh)vqcEqR`h+l7H>Xih`lPL6?8cu!7Yx=u^YgVfrla%ky%>o*!Mi=)3XV+g4OC z(5gTM*NgZouUgx_<0miLeC%aRp`n_guqfc%nhAp%Si{0X+oprQUvnj_1O#{8`_@7i zp}1nNNjsjW8jmHTq#212=XnqQiAmb&j5Ydx}(pDND5sV@B z7%a?(st4l3oJWtrA0poA3p+e`n}Njm1QL8ej^x1%jX=di1%T{P&f_N_O%vDE&K^2x z4i`f@O;AKJv~|# zY5MAQS=2jV)@GQ$1?-I@g##pxC4ZbR<4_`RiH}vliCkS^8Jwe&iDfJ`A+>}lOeTAx zL=!5EIQE>q2sYXI#*uTgB~quvn=Ng^r%%`u8#5|^nhvgfMMPRcf#_ni(^S6~M!&Ep z*6@k=)Q8&bZJ3)occ!VsnA<>nqBd(|VBdz8Q%9*!O@1kD2KH3>M0~7(ItH>YdlAIz z#)*$cGo_TN#^9f&)niX>01}`1N;ZNI_cqAen_FqoIoVU|vZ}a8Xg+FW>l(SfzQ*Ce zYsa36Pt{x*Sr|wbN{)OR=I2j+OycW3W6vrWYXxSneX!BOcYy)|OGhnxW{qlz(8TP5 zNt3x=#5$C`fjP4=gRG>BJr^mKCOjy<2(Yw|lcwHAg@p3q%APBqp#hA_n0*i_LkBUL zSjs^*=c^41r;f><+i;L*=Wn*q1d`sTplQ7YC?b-htbj5xvja$#)EUhcqmcJyVNuZl z+L%EI-TErXXy9L>Vi2m#3NR6#XAVAQT~affnD1{XBSO-P=ZfdxL~|hNW3Q1N*VIAG ztn7Cu2!5dgP=rSI(u-=xox%+*1(r!gEUh*Zl?jw}6O_I3B&boR)aEAFSfnv7#ipd% zm0~6Oxew9h_}eYgDvOlSxHJc{B{(hJUIYzVsw{isPKqszrsTuCEzJp(%Yrj9>_Kfc zp%ER|$&*x@>^8%RI!A;yiO)vKY^C&>Aem82UL$Xw`0vcc%ShGb%zLA+{~Vr`Wv1N| z+>4Z3wy`POGS4ne#&fQkS$me4B{@yf?Jeo%i&NA?%;-|n(O#u!1Qvb699<=cm$& z=#jnU99^ceDnwBwXj-bb7k*wnkZPHabt9BWixy4%4ro44ix~{6zb{^Q2`%lH{}o9} zDeXKF$U}ny0?;jxQgUn)GZSN=4KupMx$k^mGM4U}Wa9AWa=ZVBwrkZyN_je!z z{9+O8H8C2oUeQdUu}NtN?nLi-}r3RHstR?= zcjzbn{_pGep1bwTIUphdDXTM5(RITkBa_p!@=*eU_hwM+-akh>IeziOv_IDFJ%7*M zBP1>Z=*K zB;r9QC*b9maJ<7puWOV?KYMy&|HfsrrcV0i%WuD%FlFwt9j9+O_(din;&L>C2m6JG zgvYYjm25%`-iE=V={pK|{K(Pn{*{yaHvTbx)|7Am^X-%wzpvYS>5*q>d~#fbzpJ~K zt9M95cog1y2sFO2QEEJ1pLq1}ene=XugA-Kmyd5>wqVxu$rGkbTeN=Pg~u*|ArYb8 zp02N*J$?Q0RtjFdFutV4<#zYd59 z^7C+dgV}-y-f!{o#F8%_t;y}B=-an2v=QAoJ|;ZS`_044hqkVq|I5^Azsy^)<>XyQ zPrm>U$JZ~O*}rk2_q1G{-e3Y)27U87{7nNcm15QUyE)uDzkk!RdDEx=4h*kV4pWnuASVmYSElozsz5; z?eNv7PHv9R9^QR`7eQXrjK>aH6W}#uX5i?{m$DfG1GCJHcmXRZ0dac$Jzqb)adPMC z#j}5zy>P{zQ}^s%y?FZY9^OiR^!&N~i)T-GIs+5>!g&m{EQ%kEfkOA-sEFVIFUO}h zPw!d($Nbr|7q8lW{N}?aFCN^ue*Na1M^B$TdMIU4faRBwM&jHVd6sON*wMUPo+X!E z=#Xd0czTm($2&yr13inpdQ@+?`NCDWu+o+XzqhP*w&mS@R$nOdGD zXCOg|JWKx5nW{WXmS@TGELolWzc9}3>Ss2f~`U8 z{j(Z8?urI&!td3EPC{jaHg9`fp@UG>pw0TDlF&}5ZqTOvUPWjlX!iu_5X~G{R=CnM zpME>XP{p8)`kV=E1&z(nZ4rjb2Ay3uL_*gndTx$1piu3hnnFiG+k1D4p@Ko1vp|I_ zjbi-O5`(Ql=hIc_ENJU5ivXQmtJ!ITD~&kfrruy}(1i>a-WRk@4`v&z3|jr^nsin3 zw?tg&5{JWbt<4Xi2DL$}+ipu&%84Pk()n}(S>BP8UwLp`a4Cu8XADzYhV6+paU+?E zqR3_PtlLT?y>;evR-#4HjvI0G-uawvBR%RB^EQeC&I%a2C5}2h~577(DQS?ki zE=f0-H%N)hvRRf(CQX_+t@1AnFM}rSDnQ-9K;U%FGIpCtZxZLtf(FJz=Ye5FP-jkF zFse0I`5pYxQt}ztNkqG#6(Ki?U__K{Zu6h`3*I(S5&^a%rAB5_qD2_uck*4Ohkhy8 zUpdNKLLAL4c?17bDDkoWJrv2w%kRaOWflH8N00KFhn3yN{ku>j4XQkKxpaf)&$XHv zRORW*#3=p?50|B_nf9Ikp~0N-hB&%!Kc@c;gF%)<^yL2ysE1p5%IDwK>VelK{#9KO z))!DGM>Ch0lP}-dhs%1H>MB8Bzxqe*D!Iu7eQE!X+SO7k_*pOhL6;~GefIQk_a-CM zNaZ75*ONyQt$%5-#6tU5bu|&#jBav~ z9_%>@*n(y%^`>_iOw759K>l;pQ`pE-T1yw|pDCf)1Su3b~U z#r_$3&FcSR`CsZ@vzo1bRi4gly02Znga-dFaK&nnlQ|!`94GkifK{uV{w-9!+IbEA zOqL}g{~e|3)#4hre+y)5J^r0WwwA5)`ll^RrV@~?_p!Wj5@q?XI@Frgr9ig9ue3S; z8IWxZD5Y5c6OC*m+Y}`Iy8Tm);-=uuCRX;}uOizhZep85w@7U6e~J^gMEr9z*=BJI z+Zy%H+(K50Tg0u=+y1$YY^!3MJh8S|5RfO{VzT)GqaT^*7C&KykaY@?3JBpy=yU}>?E&jcPop2 zYbt=Hkg{lbVl7Xs|LyEpo>;#%E&v`X{qv# z^*`AZm3OR7VV(Z|R;;{Z{r5LTF(;RItod%LDGb!xTWj*fng?u=;z!9l)^B%^veUG8 zP4eU&>wn`l%gL?0WBtFk=ls8imUpb>9qYfje=P4gsXb9yP!c3PkF5mEob|%8;8wAR>w|nutlmm(j@ZN}rDy`)`fBFO=)=XFU z>hVJavoo#p;c?>ub|LOa%oe($NOiYwNyJR)>gLTG*EyArzPp8sYgeyGk`i0v3P>;{ zX}r30@xq1krYn4P;oP~iXH2{fB6Q(aa8e>`7zueNP8=r+hUx0q(W6JqSI3VX1!L}@ z@jG1M;=qCZ5|K~3+P8P_9-{T}tNr`-Vg&7!u0R>vi;EpQwiE46B9QIG>eJROmRDGd z+Ehv|<114eB%+#m7_KAQTIto=wH8+(RIOQU{*GU<)p?c+T#D5NChFCi)vDD+5({h1 zYOB>HM8{gQ+Ge$uPFAaxYphl))`)9~P9v@r*C{z4M_eba7tMdM4f@q<7-%{oXgVTR z%uIi?4I+3j(&zNIViN;U8Xk(xM%hi`X2ljsQsmSS!q8vJt=f&7Hf?5`8TcZ~ZQ4zn zH*cXo)!X#aAL2IEcKSfvrr567A)Qq_^jo*FZ6ZEU?xeH0L$On_OFE0Y#NF~xl!qc8 znDS7RhobzeXbwOt|0=Hj|M*vNg;EgGq(_GJ>(;DZwPN|QrGNas zC4Vekwqn)lwd*%-*|uZ%-u;J;96x#H+{Me+Zrr|m|KXEoFYI5wmL4iNoTC>lTBuye z7CA2d4d~@7R;^jLVbj*_JNN86aQNtnQ)ka#ymIa4?Yj>iNoYKINSaCUqJ;|=ESS&c zvjuFS)1t+{{r<gV7;Z|2RPzo3l%t6CW z{cr$xA64M|CGG)}|K3oY2@I@a7U5my0$#>`sy_LTyl+{5xZjbhojq&TOvOwFxW^nq zFSK-?q@29Rt>^VO`QH&hHdFm8o9RAlwh6j~{4RM;(#&1Qo6fT4j=v~=5od_MxcoYE zCcu(fQ=_BNjC#4(V79T=Mz=XlS50R#7=cN#*B3RW>QUj5arQ8nl|zG{rOq zxYI9Yw5hwHyP&}dy>~wv3{8$6a|JDC>@slK8>gvkDnkJ))r)7ms|0iz$#^n=yvD8P zeg5%N-sv5kf1WyZ+O+9LIBzd>SL*Mp(c?B6?KfF~KEo?u>NKwPq;Biv0`*2X+MD-wG#WW?9l_yx?mo!@rRt5N&e6%mY&?hmMuP=yZiXBEXRdvD z^IfM)+R%P*zx--!c;0kx!Qp#Y&z)cD zJ?W<5=a?YvD+lM+W7J$O?SA~8* zI*&TP)OTpaJG;7jcoEvN>XPG2;fIg%%A@Dmw& ze&!r?9pm6J4qQ_2>E*L%G2LQ#t4p1Rdk&7@yYB#8$F*}fue_!8Q19jKiys$0UQC^a zs!onaw?V_9?k7(ZoQAGcdEWHgdUsE6A3s7%Zi_dIJu5m&IFg5 z&fC{7AaDhSi_~Muc4~F>Im@c^hQn=(Tt{`6v~%A99?H??9&5IpMx10jJa-)_+3!)m zp?j9ec&UC~A zerIUNqt}w>so`OKPJWJ1jX4 zUG6#Mn16$+!|`N1hX;j3B;*7Cih7)Bs7qDHV8d;mY&SN#(RNgwhmwGHWIzgw$sjqmyn49U7UcSL)rNxcprL_qcc2ZPXkP$O21(g2UtU0rwy< zjdF8~p|fF}@y=#;x!G*Wgro@6hD4?5ReDbeNw-#hXE*k8OK+QO=0+1#6B3qC1gtM^ zYZf=AzqHstz$!o+8l9n6>-`8M^{q0);w?+bN$P+S|Df>1Lf`^1lBq}XTd-*?(s1B? zf~=I<#m}GlivbG%5J z06hpJm-isvf4MFKsQ^;=YJ;M3peiK&;-$;RK3m@Z)beP0!YF_deVI>*w{Hkn7M>e( zvf>cYTjLWLNq!91B!pbQaq|}MCl+JVZC~x@pg4#E?H7+7!KiDB#2}dK@={`S>x^(QwT-L1u+4z&BcY1PD(*=xEe({%S0E^ zxx~rEBRJJUQyvnGLXBja6{=2VNi`vP(W%7I%_k}!YBXF8b15VhJctYPQlraA$yBN8 z5`97+A}h48DZN)-e)eq zQ7rE>%lpiw+tl(tGi_7L`^=?NZh4u(>8+vDRwm7bvXACbZQR+GxQbo3k;$G zm(BC}S%1}_F!UC5gY`J~5_C#8gA!-`WP{4kQ_xjO;b;9;WU%QW=o%LCv;HJ<-E)?KZmS1-2`159Y5>OBWF%mLDyEp&-m8X@V=mHp~X4c$P5HSixQhhMo}UNQ^=E? zLVb0;R##kDpej)0$8b@w_#hfuPBf=PU(F<`%8!*KLHi1lB%>*72!)hP&n_lGEs9hY zsPkj zBHxxw%_`AXfo4rnekDl7=VpVP<^gURN<_jBQ;8`k4`Q0ag8T~k3W#N85RHuFKq52C zrDW^$mGv53Nnw5-%d^T?K{6vPNn%<0S&AlSX(5RM^YfH>N(jcG$dvfdw?z{(HIOVR zF38Kx&8w6bmy?;15*zqh;y#v^8Izcy(N`j8=jSSNZSz=eTuw$>Vx-s8}p9^1MCr)rwajZG=k zSJap23UacuAYPF~QxYOP@9&#AtcgOfv^OR>529L4eomH{rOdX<$<5A6ONkG2zP0P8 z-gN{fWP_T-n+sM%C*_lHNq#m`(JQiSv-7gjl465jUtag0julC^D(4-dA%a7rl5)w0 z!klcR-QbDqvlUr+nW>4Gzu)b+y?^T-rkUPgLKN@}Ilyp+U*m=Nb1o4)B_OTrC4n0MrfXION6 z0tS6JsGb${n!Jp(

    #^6$!^j2Rq-`@J&Y&E^Ih_(Fr^6(3k|4P~smL8kfoKK$9e^ zlWkI>ljEX-oNsOVwo3&;5Sxr#de*@&6a^>52ZTnYl1H?88L3ICB-`Yaq`1gHryE=T z(*dHa>F8w_?0sQ_B3=^|nN-Ln(^C=^i4~KQ6JsL-oNjLaz9S@+&Bw34_|i8tDh{IB za8N6GnaK%?go=qN2{92tF1NN#>{q1syKZH2^OR$#m9+p731^cq9a4xAMBgbqY5ft&|t*U3opGx zAc-PN^fr)8ON@)PinWT%kBy25_IR{^W}liQ*$9$$T+%8I1r}!{#>d#isACJFBZ562 zADQ(bjf#SXAOCUA-YYmFCe}I@g_UF^#zj|-W-$fP;lW-nPA?qZ2vT|VhAuq$)H5hN zIwl6Hto0ggMq+GK)u@!n&>(Mz^UFsy5e1>Tv6bl<<%sKgXM!ziV#|u}%|r-*tglG>cZp zC}Ke_%S()o46_YWg{OuF`8nU+{d4y!f?(DDtIfBa{6nLn#b~P-F&0Fx!sO_P(2Ajo zuoUDMbbEMg_Mn>R2rWNbbM>`dOO`e z^y`4?=ripnZolp17aS2;D#~zQPYMqS@UP&n3`q0yc71YY>F|cARf{jyUwi2j93IIc zMWYE!uStmv^7mB}$I(9}z|Y&=?#hO*aGw$y4Ez0@y+78j#qMg{x%So?rI z=$Gv8=k4Kmd(Y3*d#m=IaqzKwKxl+XUID*}aV7b2!2v$rR^E7W@=Zd%EKkQr$L4=f z7pAxSe#dP`-=HuvLX;5k$zlFJURGYBH+Y)B_;|WKzqDq2Q*@d}W7k}E@D9QcgQP`_ zmM|<{8yV>BY2_&b#e7nr#_iS3T~oSY0M;0=;Pg}X0AN^z7|Eg}42u)vwF!Z~9%>JT zCzycV$v)m*?r$EQSU9+jAXMr+anB=H|B!G3QS})VF;s`eiwQbkPj{8O=mGYi7xRwy z@%C_iae2e%%|(H|H*U@K*WQ7lz)3A4;Yb-vV2L^pcQ=I_$d(=;5_-jX1M2qr&fe+W zY|uRhEj<0wGvI9~<4~5QcXI{p5NPJ%COwRLxjR2S^V>)D1ffEg$@?F;`r#K-QXCac zV=p!?E*`hC#Ka^#4!J4;W&mpm%)EU(TpVs}{-&Lkpm=ZGx@#6zmjwfhXDRSBMOVi0 z%u`QzZ%=o}heu}isU`^3`!6_SUut?Op6e!fYMP7a!gvABl(rDl2`>*f_<=cx%_Bj#h%I#n+qexcK8a2qPBZ_5T-p?;Rgkb*&AbeP$$CE*Ok$N(c}_2_XrA z1kwZCo7_tv1kw{ofFy(xT0$`x>BpqGx6gIqDf3og$W;u2drSCLrsOuOwm`+H?J&;8gl)(dCpH)_u7Ux9m z`O{bDNedo%{ZLX#ZL=bslvmNX!4e5UnaOEHJN;{?e>&2)Xs3Ve^sk-%wbQ?L`qxhX z+UZ|A{cERx?ewpG_pg2TuYLEgefO_@_pg2TuYLEgefO_@_m6M`L%4y$2HJQ3+IRo| zXMgv9pJe`4rFFUWUdjC71?w%=dnEG>!PeWXUy{uCS6Oej-YuD57`A@FdZ#ogZ?ahL zuzpc8FO9O^X}tr~p;GHz)-Oor#|+lHt+z|&=SQtyvfd_{|21j7$9juo*6p?4Yh8}= zsP#VUGL*-x_gj}r<^{O2yZY$$W&VGs9C~eeM_LXB z7^+)#(W{pT7|sZIw}~p`xzKA}D!p!BLRCJam!=2s()`#2tZAP3g>;K#sl&f5+oW41 zG!QGJM6K4P(rprIoPSih9i`=U=?l``R&z8%d6(7Pd5d(1bSIQ}TKXbN%RcE&>5Eo# znKQ~e(C(wsT`1A$-O?AV=7#wwZ?~Gw{~>(|rRA7(k93>W+_i+4mY1Y2OSf9hIgFQ< z$E16uTdbA<={{*Wta1l0EuTsEOUs~_3ok8iNDoMs^JDT@^C-9_eTK%8q`)0-{_LyE z5OJ4pxcBkjez5&$bXtB%Rb5>JYhd-~>yX19neZ!-{+^ZV%5+oNKiYTo zOFz8R6~MMdcRcp%f9^e=kXu^Q(1_S}lgP}kN|h^I%Z+28Wr5~XmKL<}Z%^Jw9HJ4| zFMQ|M|Jr*zF~6*~fdcd+Jik9A3X!Z*Uoo$|lz3lY!bE!h>$$Jr#L&ZK5C80~?Li6o z<#j;OjRBBG7Xffo6@qk&Dn^I;yIabW{nx(uo!guss^x}<{_C|Z$Ij*;T-=O!9|zIx z0q7lduc~r!<@tUCq`1HR^aDgA8J&OEkN>*{$c&G_`Isdwsr$E4B%RX z))q1W7ehvxQ3zxg`D4M_=0Dmw@1AJD4~_;+lpQ467=H)!tB}t7Ua^y@iN0WApF-uXjBnGAoiECKn6ct-$`R_HvJ(NK?Cbqi5j z2K7X4WK#QWKY9~gsA%fw=l@fIR# zKnAgLWT+#mUuy4wjoLc61e}WupkrWOfzQz*qxxc0m3h_kg8ES2q-euBLEGqH?Xpr= z-{jh;Q|bcWZX~imS4#(1gftONQ*~X7u6Yrv5^aR4UgTA~x=9JSiy8*S1xn~p)45sK zlt<6Y0&%5Bh-;w zK-m%0o0&CSMl7a|AAL9kf_sbU^) zkquv_dt&-JbRF{yx=tOJK4;xayl!s~YCEI0+(kMlJyNbzg!$B#FDSLUyE@pl)E}|c zr+o~Qh9r7E>1g@b!@ zXn$>MB@m7C+@O9HB(BWi8-FvF`jt^Vb`+SHTvQA0$T83Yv~_EyhMlv)z#gmvGe$Uc zWRB~=)z(}QSLz^7To1%Qp&R&FN30%Yc}y|nG#K3@#19Z0R#_n!M10j<6Re)jIAHjd z(sI5!j9+#q4o4hTR#I$RG0GHi<@38-jJ7)5ijp`-sIa2Ksq6NdVFmeoeO^f#U7sYB ztf9V@m4d>Di;!~c^LSQiGhiij^-*4Kc9uH*XNTEta)K#IngXLsk^~ED4wy|zx{+xL zEIp0ZjewO*wWPR33e%DXPQZ#t$sB%NQ%W-SEU`#u;96T0n_vjII0sxRE_PCIMbqWM zm~_(Q6Gh+(xx6fXJrv#gG=hyAyJW$YkQLOyqUp%^xDh?a=3N7}fO?sg$uFgX)U)xi zG595dY|5Uxl58tp(OHo^3pzSV^FlN)MDs$h5ouls+y%`GQJK@47ovF~bm-?aaP`oy zc_FIn(xQ1GiaVzq@HH<4=ig~Q&kT1$^Fp`>uX!O;eHhIP(PAN5EQE)2G%rN+LL7d- zsd*uq7ovF~B7maBLarX2(7X`M3(;aB|6U{|I%=tPvf(c>7+OoLlZ~%BNnep}v`(5n z)JtELZm>>X_E{=@O+Z2v8j9+q6Klan4dN{>kMtmc{@OW%^5t&|`j_E%&;vpg)VUARV)OLfQ` zf*aeA(S%jA8U}Vwdwm1ah=~LXl%9c;Anf@Kn9<23^Asg=C0&&_3kZQ}HLZb?l7T?X zDDzY(b`S_Y4V^YobD@w(3JFwH{p7kf(oaobK|yemMY%7O*td|yhRs8RAa%)5QRe+3 zX{^zpCY}(9Bg8kaYS7#nN?yi54i4~J00}39dc+#qRV|V3f|F2Y;x2Jqe;;wYK#F1< z$3WugR8v*V0c6AKH+;C3k=Rs1(GFEn`w-Z=Xf%yFvqKZVmD1{YZ=%^z`7TJb18B|@lRcA#y&=&B$0w`AkN!+7uo)Uv7LbjY1Q-nIu z7w9XAW?~s~bvqrCaj5Aqra;B&5-bM#ylH9_{43E>n8+qnnQ=yw3pY`*t)t*1P&^z# zRVDLF8_!*0%fMj+$|lQ*NuCp3SHlz5C}_(5!6zRKjPGrY1RT+s3e@1JO1z-hIKsJz z9y|1PI+mGq2&^)r5)7V(r67K}EosSISS1{+V%sR(tq=gpO8IiZ@X*LQ%qG)_kSnnL zeJWW*!BRLMapWQ~^{)}zN?ZU6UlYxNV)Hgbs|%HgK6bf$KC0jJI$*(dK*T)PKBW{p zo0JeXbhZt#h(XggT}qgqWAk#dZ9^o+=*n0cBns7wxOsL~2JJ1j^`l~oXO-)KMdX`@ z%@r(XYdI+_q*9y8oq|fjL;Xb3AUlKpkV`a%wA2(X_R3J2R-E6Va2W(AAvGl_5i4j4 z)Nw6{LmMX;a3YFePax2rk)E28j5xm_pgCbaPM^zyRl>vk#Gnv17JW@gPCAzmA4elA z$O*H|WHBo^i9)q7kqZcUHZC?sMHV_P`3~haw3Qh#U*Xh4AtpUCe z_{!&_%gHU=&S~6Q=yP;bWO!KU>5vhV$!O$g5Vq8%Am}4BB{`#lGin4K1LP6T#)yiH z2s?B7)X5Wbq6Phjm>_~!!^s@>t`j=s#PJ}T?4E8rfs4jjnIVElB5W@D9wYjGI^^W> z;J|?C3z6@50!_1ovrvFmCK$Jz=s3_p0scqTkEBjPIpg~l-#-ME$j-J=rV5#jcRV;K z(Epg<5tZhqI3#?As`HGN6isfLXu@nX=4V2A$2t1&L1oWWSW|ZDjWXu^`(vOnW8z{| zH1GJaqel)O^!4FGHUq5=xZUVLW6IEopFF`k?sxc*ug?K5Zgkpn#Rr9bz-e*OZeW{m z(>i|Wpw9tsPY;;Q5l!2!ARA3VW1V2WC>;+Fsvq$7@^E*vF{)^?@rCU;WQx(JbzD*1 z)5C55K85LIM|1KI2ApQPV)Pjuhw5IQ9`5`1?cKvSK?m*_Cmz{{%w{%B_2Xj14;}Os zsuO&-ZA-GPaq*SE7&5WU#8k&*RmRNQ%hMgI1HEgPjoU>7j!z96TC8%#Y<$H1kD}v> z>TW<2e5c9`Q|N29A){?g7+oE4OxCHY@7}eO?aXi>h|!4CLLsYTZxdFhMb78Cm~S@S zxpd%n*x6nLcQ8BVI_8@&9J+2BHKp&Qy>4fg<04hTiq&m)Q+v*53>j|EZbIvK=87#@ zA;hW6L|LQQUTCJH-?UJmIHsElcG<;0@NBD7*;MW3wgdT8At1(!?RMQ&Xrrb<9*xoz zJ7ZZZ!(ayKVyL7utl{G~`8X(2OSdy4q!bE&>2~E*YwrBosc~6-bRfl1*+ZCpv zVHFeFZ9i9&?U}b*zo%@k<5-F{KsyiSA-4%Fe^p27oNkZ2+i8z}Z-ugOXb{Ajr=6DU zff>M8y|Co|eS~t||yD4T`C;fzp&#EG9b7`+?D=+VgmAom(Rx7^+QEka`VM@lB6v zV=hqjMf>#oUEG@8mCbRAeQa7#Rkq(1I?Qv^xwm0jD>Kt(6jfiUsoPK5I=Q*JOCFl9 zJLSx;`MR2~OWvyH>xy41XudA_tD3Jn^#?PWugibo;NW^_zAkqFG+$TwK2`aaPx*1n zG{=d1$}?O(I)rMzuKLA_{mTu9uO~ELSMzmMCt34#HD6crb&XnFSBvXXP)dvI+Rjcm zLWsDK7T4vmcQrOUdra6NHp_oruKBu}uWS2xy%yJX3=(Q_UGC&7F+we_Yon)#sIV5- z<)L^juFGR|_VBD4!W2PaEv{>ea8j^ai|fu3_x^t%uDkX|ZCMfX4sne0s6nZ{&QbGG2abWZj&y+|!;4YOE7v!YIo%Y+e zdCiIsK3%uNJK%KaiNJusz~iS+hnx;Um|a~x_9R^ta{!vClel-UC_g(rG3xliz3W$f z`YAebDDdRT0KY>=1A>B1oCpf?Kc;XhY?Lt@8q_BcVX#+cr6SFY4wWF*6#E? z8hF(2pzon0e*VD$0bm6PMnYZZQW;|tz5tRz>&kg zK0e+)hx|kkpZFZ^oHAx-xvIoKVk4%fB_}1sN1X~f=(c(7r=P9f>UQvuueY~{r=jrX~ws)_)w-@tTCnb7< zKd^U?pg#$xNab(Z8I9PjqawpXf{*y@+r0LZm8&*x-|Mk|_s-pW_PV>f?IRWoG4*UN zmC8*NG#bH4i3~pzaw71k@BZx@)_%Tb!{(j4c5d6TZToIw5AEEsLwpr3hR#Ub$+`W}vsQE#|G;cd#An*c02gZJk1yRT++)J!Rtwo;nG> z#nB@^Zo4+FS^3FlYqxCMx_RTKOOgP6FdFM-3=qR zWBZm3YgVrK@I$n+^3#>8Rx8X>l`3enyRuW*m|rA+&#oQYw{6+De$A>+KmPcmk9h+& z@~+Kt3inE(DJpC|Lhs(WWBb;vn>TG(zjpPfpM3PuCo4Z$xmvLtXHaoolFHBIG)2xE z<8(VrItbsoW%K5Z8#k<7y=vvBD^`5^*=L`t6kbP~q9Dw1+88Iyfty5A7HEw5Cg9hv zU9o;y#w|4EiwQJUp)i{yMM(!lG5NA7at{yEmj#a?A4Z4l; zrebtq-8z-bJI!L89f^-%zD$M5AlC&j{bqSXl>?nqp)wImjTn_gOC&o@!LZG`EtajD z+2*?G^GYGNfzRY%pv{}uCTEC}H?u9et!!KE*6p+sITgyz{-iCG&xl<+w{PQv3YdPQ zj>8yWRrvSz?K>2zuR^9%D2R?-!*tj*4=8yHq2%r69kjVLsf16Wn@yQQqH~0D*`$Mt zGEi*0yo2p*-m!D1!t7NXp{Zk!(PNvP0U}W{2gy5iyV}J^A`Ka5`l;Pg#%w;SlMI>5 zkax+u+jluE3hWi5&@hQ07;N{5d~fJkGUDS?UcSzMHf`0 zUg;oQZ>uP~G50Y{Y%Y7p_U+r)HvLw;(k0STzemR<^NJp#BBsgqZLVldbVWa<67#s| zsW!*9yG)U(->X9>s43>bJTG~n7x<{$J|7K{S~|{ibgaU>#=S)y*D1pE`*gNunAe2& z0iT_i*e2WzCnFp@boj^-zoW)KeRzn!Ph?9zU^X4``y!`&_`Hl-+gEQ1aqoOz|bIhM?JhgdthK0>Tbv;*|9bi7pw;S5bU0)8fguCn9odMBt zE26iLK!#~!dVa+n-GkJl%Sm`|tDVKM5n*Jlx$=j5Y#PMYVWc}|+=qTo|EP|X)z}e>d|6OTFgm{ zIjQj>E#@?54C(*gn9~=fNvBuatxnd-3-2=|FP)tKQ4gNXF-wuabaKJQF{>U)OCOUS zlP14(++x*P&Esz%rK$PJGJ3;j0lmTA=%+Ud?w~i8out>jKSjDz^K)%hq&&UwXS|+V z>^)&+NQAnU(K|n`qjwHF(d!%i=ylR!s>OcOk6PxMyQJ?*<~tMVbrZe5q+c;US{CVjIqr4!krVn0wgu57h}?B8 z`V%`t&?>H{zMxpF-=Lpk($d73s?kM--mq?ie9f3q8zo}x`VHWV&9*#dO6szqj`)4P zZapZHn>TOSvUMwXRBXGts;&$>dTjM-0IwhBAFyW4hK-PSHEC@QN(w5)+BNGp0=Jde zUOSK#j@JIwv=p?Cwd>ZQlc4jMx6ci1oFNe3Z=E3S=EluJ za%E=+&g>#dJaIB41V}*H*6|%XA#^uVtWBRShFP^G?5We6xkery;)zIwBBzVI> z%iG6yfq}etACj7>9I0!8voH%~3}idl_KPsyp1mN*xG{xfbuA6ZVHd*5=1AQ~_N(Fz zxVgJ~czAkxd0nORf@~t=BdKf`SY*3*@7up`|8-$mgoTFNLTUAA?9ly2H}`9ojjvxL z_4vrCf!=%flk98NnnlQwmMD;q@VT(BX+OH`d2QV#pd4k{w_lGB6xv_gJUzT-o^!>_ z7PKN^Cjn&9G{WQV!p6+g;5~zuH5XKlw#4wkCHhqdv^_A5&owttj;X)CK^4l%(Q*un zZM>e@Ux&Vl4MpAD96fit=BV*b{LCqzn(!9m4<*i zCdbQXSwhcL9^SQpXHj@-R#!^r0b?5@|fLRjLE$`HJE2um`GPoHat$VsMTq9I-% zA|>Ve5vi%yDAu_YBACaANEiwjd zT4iQs=j7&whMqYS#y}5rT%%%2svVgQ$;ee%D=RCnsI1Z)J@xFWIeORQh-r?V=IALu zQE>EP)lX;5(VOaSX^!5NPKcVLr#X68ItFWw-W5*znxm(lsx?PXbM&}7NnV@g=n3Do zq*QbCriM~9M^AI~riZR)hOe}U-i%O}=ICh=JuRZAMf7-vhAa7NT14+kffFsFr$ie? zEJTawX%RieYttfnjy~JJ8PQwoBuSRXK;<-d-6j1{nzS_E33}(m+vd8(RQ|(~>_l|W z-(Cu$cb~nuo);Hh?QVn|WhY%JrVy7Dr4UC;S@4zKsr{vS4Hl6@|PROC7%7-aEg`Sbm zT(ZaaozAe3N%3hSpV5aYFWDJgm@eF654GzeR4RZ|gu;D_&_`0j9TuUB)J0iD2wNBF z6eU90x+s0L2)65@bumP6(M3DOSR$hsm@c{)eJqu7j4oCeCrYO{OLPna1x6RAkEc?O z)5Yt~iqh$%8z2@l!XIfDI=o{^b_ zJqAnz+H2_vZ{_CY<>xC;cnc2&1%+tD_7zfLQBkq|2@fSDrNmYci?q0;6kn~VPk5`W zyu6}9UBGy%sI082BKm;(6--rib&dTA54E**>U-5SHMMnh_4VS*8va&&eM3Vd#puNo z9-5k(ZBLDjP0g&?*rL2ik91w6)T%8$b+u`WPo_nvEk0UA+TuHUO#9>mLst9b`~T}F z-&#HLtQWHqxzxE#E@dTnUBn9I0y$sKlXG=BEPEoiq|s<`vP_)ss4gyG1rzv)FDaEv zoo1;o=jgL9=M+|TUIt)tprO1_E@VZP;xf6+sZ{2T;~z@na*hi%-Y|r^qZd1>N($-l zP+U@0s@7!=b#>WJS(mf(%R4Tj`uX9eic(&=q*SjoOjUMT2^bzSqn1dEb8VkTA#SkSyuraF7b0uWl^E1Eax%aw4AjF zl`rQMR2U{udt|7kx{QaS=vV~PQ}@)Gy3BbQGS$w`Ev_F#?cs@@hDxpmouR7p^Yerb zEL+Z!GZ&yT%VHRv{Ib>ysBRkTsI8#Wm)PcWX|UyNmZi&FXseo6T+>T^9Bi(s;72o@ zziMi86}6pmse2MFbGX12U}{YSk(pPUp` zl5{{!*QGC1svB*s}SEGnt#7>9(R ziM|%(gI5sEEv;>-3sPkTG2|$ssJNn`4?+gccQrTQoJ$g@etSo1YKokqx1m_p5SN3~ zIMz^cacNbH5xAk@jwX(RVnDTb7*d?cN8qx0>2$B0%+Vb>W0%)1;?TaNti-DNHZpF`#DIZJDzpW3 zaBzs6F5w)h{*Z#?ehwB|O=IUJQu$JUmjOss=-|-sut3_qEN&ykL!u>GQ`_7Jm2)o) zbdyY>Edh;2VWMdr<=QIis?lI1=xE;*iMVyoBpg8Q*wN%sZ7X&Kn%B);7XUSy`g$BC znwY76#9=DfEQAe3D2w^s*w#OZ&YH}ofxfxZUE@pYxuw|abe8Du#hM7@ZU}zc2XZfu{IZSW9 zy^7sL!L%ECM+tRt6jxsgOg%0cA%xu$e7J35Fv+_5F9I}qVbo}HHc@ilI({*UFnwqwzyi%=SNIV9CJyz%%qqVx6#@YJGwBOSnC}$DZBf}2zFt_q~owE1=igqJ``zg zr~{?K_=Fs~KpmSHGszrRVZ(JA)TN`2(-d6afN=uI{P8i9$!HuNa=>-8tDjI))f5Y$ zuYYg^sscCz*4j)TnX`+dIW>HqfETApqdQs}U`S;)IcmvgKc=FQ1|n}_YSW%y$%ez#D0H(5E+?tR$E5NB(%L3=PCL$M95a)7#)goXOI+u| zadf9jO(p-rLsb;pf+Nl}LcJ^-9qQwEopEve&M({pQ$~wLe3(qzPB6VpW+3NT%FV{U zE`BYgxcLV1sw*qX3h|YSZNKI6u+*>*F{9pOAzbA}Y;V*%bWYs-Qi-cyiVN^ni~7NU zy_QxsN699g(J}^H^+>Nl-1Y(#bR<-1aY3%_9=VTw84BXAaFXiFL1l*7k8x?*^LH15ZHq_TQ8AgE3 zy3ko$OvY4tca9^YqryW^@{MTfPGnzm^=-ozW(k-yn@8I!3v;+}xW;tBNpw_XL}*A5 zHl&$wS`3(IRW&Vxla|XDE?zRWmgb53Y+xj4%`a#SJ9Fwpfaa2EE}7<%X)c-Ol4&j( z|1wJXq6P;{%_Y-ZGMkH}xn!D4rnzLAOQyMGnoCCEDJ@E-Mai@%nHD9pMRK$#83ls0 zC>h1&)VPKgB~ycO6d=%|WV3|3M9f5sl4(&gElQ?E$^O3@C3{4&xLX%kzbTm)U*x4_ zt#zUGVae=j;HBkN>moc_Do}hwvi!(;0~LWNzK-ABoad$GpVr0JuSsTBz)Q=wtvBM) zau~%!XlRI+mY-X1!XuzJS-&co7nyiz`J;6S9xV|l9)u1TcxidjdNUp^0VuvAnVq_M zX?e`L6pxlQqR2+^fMmJJx{QjKL=k}Ee#tDi@Y3=H>vB9={ve8dq9{gjpJZNmiIc~NS>2R~dQu`fQqEwZq#h10t@6M$30#4*xj8gUr` z!=ySAl6F%6Ld1Y=47O9(hP zplFKlL2Y$uR>-RVyiL;I^}>$0(#8&9QaeG5Oe&icTz?-Ci-^Zr51vX%qVL}xS|}}i z{2%_A^=+N%P^b*8DY(8~I&VT?eM5asMPB&UXTK=Rcf7DIp}e_M8A3abamrA+_+GoW zr<<5Gobgy+Q=01c&f_<-1>gL~(VY4YZW_n2=Rk!s1YlPuSG55I#;&@m;<%l^{<1S$ z{>;|cvX)NA!N;tbCX$#g3Xc<%kgA*$AOCo%q<`>lhqLMoeN(0z2bS1$6%-kjXxUs} zp5*$?M+S*u^>HqGx7O}`nOGN7tbj|kGhQjbQKV2>_dh{Q`#qIsWSdyZrg*Ie2 zsq28OsTM?_j@G)YV{bh=pWXWO=7ieLK?v1j>gDq(>&V*>L@5$V3?vZZuuj@rs*~M* zbB~kjgMaqPYV8~1&|ERwZPYB4W5uDIdBZtDordPph}BQrs=w)nAD*dz;1L;ebLIxC zY@`xe);(Q@rhNa`AGuNgh39vsH1-XTFlA`hIs45RTtR}eHBekcB(2`Aj=EHjU*GHM z`qkHu!D^-vg>u4s&F3*6UolKXPqI^uXbJT8v{gi}eexEk#XnjTUDGu*H(HRJ1X^&8 zunY$Jx?2l_{_*fampgvBKdrHMi1SsZ$yV4~s%*hM0@H?ANB!N6SqJ`n|AK|zcq6c= zt=~>|ah#cAytw8Ha|!6o4D6!={hc*Qo1ebbY3UQ6N7WbxRL-A3JC1f$B{*Os{60*ns?LpRz#GwcF#nsM&p`;45i5C zG$GT-@L*?E^!g{4x!(S>tqIlbT~lRq#qGmwLkn8e+4zwWs9$p8y@zjDc+ZR8>9y^h z%4R^C&m3+po9J6asyZ7V8)HKETe7|Xc+b2W9)9C!Zhf0Uv6{*abet?UdKB@v1VzbY z>^IaV?s(>o`OAO!Swu-gs{_@K_uFB>RO(n#A}3dIf|GHeucIt%kFXMLK-pC4F!^Ecl(l2K7FNQw$CZ?*x0Y|iTf`t+%glYO17m5IBbzw?IMez4+X zUL`)>9M-4czH!YROirw@@UT!qpE%yt(Nr9^`iW%=?tFT4WMO5E4Q*RtSs;a}EI5Tz z77oRMJ{}wt*xA;Q7x?bCZeDcnZ}-F%lvjy~YFi_AldA(3$-8|jI#pKj&fyNz4Ewu$vTb{Y+#@nA-5s*?)B4p2)<$_A5m>g&*e(WgFhYr?NWS{)x ziQ5<7{j;?vGxCd6k|OO5s>!Ds?Zk2Fwu1Kc!HMGN+uvDs(|y0$ekK#FcOomI->S)# znWh?zo7@3?;6P<@g6ChpxqRu@U)mL(mXk+lg&=90r%JaSjK($h^*P|}?Nyc^z5Aty zmMnYpHIJy&Y}>Y!tQajunWucNC?8Y$~WmQg@ zB8s{m?k?`KM`>cnw%>n!>GDTk-VqcTqf9NnCd7JlurbF$o-1G_p7DVje)+)7w?6i_ z-NE6}3b%6(<3LLf_xVT;Eqhi(`+ffNFE6>{M{n*64vP?GQRc!7NgnRZ-PuisG}*J< zE8KU*)Aua9^NF|i1%-y$wwvi46d=;&;9;Ly`U^`+aeQ|2ZXsf;f54akz~ogL&zY2&3ib)>j|9ec1y)`*{Ch|GJadItP^Otvk?uWaEq9zHQlq zzxZUIuisP*qyXY#yA_BmK@jHCvF`Ve+!it=>ch})$*qF73pTHx!#4BmfuJZN=vNfG9521f0e!}-DEYlyYSMoN_t4T z(P|!D%uCB&>1)zrtNHQ+ytJH@zK%!BPf^@pHMi<`3CuU7MOO2~9lW%JOAq7G@-q|* zt>#WWFD+iuH}PnB3dI7exrg!6;vqePN6V8a=36a|(xX(ki{cp+u2%B}S6*6TrElTU z@}4N}Lov^4X^_56g}W&Jh{DBcHs8rhONaCr9xXwlcwZFXK;djPkGSyCk|#ZmM~km0 z-VwzQMX>~hlhxeCcxj1|zJo{09#On0if2Ue5DGm^a1$>rgVJ~LXek!O2~l{8V!bFn z6va!TcvcjTiQ*nn++Z&(BcR=`(_Iz}*8aXJj6?@spF;E!R4vXi;~W~I!i0m@$f@Gj zgXSzTjt)C>jc6r(9j6W1XgEZtA)5L$*^Ychh2X~NjDqN8FcRLvb^&qN5xQ8BslZPo>RKYl@sv; zew?$Jox`0xbLQZ2+CmR}yrNVKzO0TzhD!UV@!H5eTt1^vxNC{(A44>9|g*F4YJ z=(ghUsc>G2m*zEx;NDs(*L18AeFhALdbDd$}b zF9~(UHBCi!mMPypl%R|qX5+OHgUr{5kPEzv4os(}@+o|p7B8pWaTGTVU;?K1c%kMjZ9r&J~II-o+ZT2CB59!xNfBcMPYI>-*{ zd|iDyXNV#N1&9U7f%*XEFCUxW^4MYdkbH2SZ=aorNoH38ELa!B0(C)_z#u}72Kf6Q zLl1>KcF5)6pxx+%;!;?!bC4V?AGZV_*B>`>MFF#;^aqDki*pQhW*!ji1UqR7Ii))# zhnT3Ppdi>qn1vnIA2NznOH$B(bl)X#j4q=(8G<{eaQ&J-Y)GhnA{bLmsCk(BH$sb@ z!?>-T0~iMa7kVZvB7$EV)gKiZ8IE;Ht2!u99SwGPiqXRqCYa= zM^}9X9Y1+GEHWnkTyko9W>$_ar-^T^smX~6anX@sp{MXkAm*Z<*x6`CvP0}}7QZ+w zC>Zdl*t1Eg8Cf}blr+4k5KBK7>nSw}`DG)+)fS+$vJz-kvO^_wf7vl;e=000?p$(O zR&G9SuP8(EYixEP3gu>Hq@^UPEznNEj*asrf6!Own?=`}`5p5QIv#Q+GWJ|bMs{8i ze)or8#MR4@lrl#JZMl8WlO z#^#nbudn-~4mlow_r6r$>iwZw;3Osoh%)Dez=9NwOLx&;!IIJF@oS9!#UJbaRySJZy z>Vtz?Pge&Ts4OYS&PYju^-27R<0m|IfOh~6-9^V^64SDaN~`LcS`FQO14H!dvQDFE zc%aA7-dtZ*R+I+?(0hzOwvG@`ukk?!1r+(gr_MlrMqY7wO+!mZSMT7Eab$G#;-!n{ zhx@t>iU!D}Oa?#;A*Xl)xpeuRFIg`T9f&=bnpIF*S=ZFo*)stA*x0xkUWc)_ySt;g zuBxmsH#0TyY%HxJcG?n(7Ml5GdcuN1CqpA*6Vq}E%c`M4ci$iyI6rP>)(rFLAWn>i z)`psL^a4u6VH$^phMw`DyZLM;3_f`#GCnCI7hPy<>+BsEHjR#5w#wGb3&^V9+lx-r zRFveyjES@k!^6VD)vNvZ_y-1K2+ooTD(jltyZT8!hhOUJ?(XmJHMBM1N2mokGz?gY z5#iwxkgkZQF`)T#HYGE!w6earqX**0E?ITfp59i&!0LF4E+@Ld;?hP-chkVdho7QYszd2sG5ol{s;tCu&-=gx0m$#n_e-cJ{d+oEoALA5l0vK` zj*mqH41{v#+pQ`r8Nz$n1iE`-+K9oM_OC|P(R6UtgEiT5N4)fGsahMu`w|R zd}cHd4-;YxS`9t@m(YNrc%ye==ioqZHx!_qpa@Hmw&SyLaj`76onIP>dm?H3^bb59 zaylX|8Iz!@4ud#^4jBACI9Ab(-w{&(>+qv%j6gbm_yY?Np83eW>|ig49}C0|79N|3 zIb2cK)ZRS|@g0{xc_*Z?r?00I3E1mvu#uAfDLAaCcm_N>)F-xYJ_*k8Rn*wlHG&3O zDqnstwxt{RwkD_#`MKE1$N=%wLadK3HPCbDFmC`GICcWEVOdpuOXmeLz=>zxJJ-_H z+0l->Rj>~i(msrjvxKuak+3*REEY#Y<8FHEd)*89|B64Pr?-0+(35lXetLS{@-PZk`$K8+ zyB1IS&wlGK@%{vBw%$$UgVs^r;#<}-=?%t4Eh7=y&9DaUz;piRVwe(ai}JoIHC4ec0xbsgf4q{dpeq zJ$t9GD*Ni=e-& z=Rzb#G)-%FzPq!>JiO!LJ#xU-bAq@6;(|BkdFv0135$rfT-@~@&YrGbi|~fdXB?Ii zc{ZH@(BuCLyyt;N3JQof$UL44@IM!?h2HZigCR&2;(t0%XRrC*i|{|9im*eIhoPn` zs_Gzb@c}3N8&yF8G#~NwnCGFx|6RNn9&q*1@#^d_J7V@b>Y;}@>74}!=HnfKU`HlE z`a6bPrFxi32W4*Xal(5tTDy3}kKXeS@KoPhrUvTzwZD z)S;uIr9R%0Dh#zwpAHQ@;G_4M=j(dVnX5zs2cZ&_CR(e~*6C0dYB}R0`?#Q@i>)F% zHY}7^G^6%dsC>p8=Hu(^JMZAULpnt=J7y$1a;7Z0pjMQ_EaAR-UuV>GIxO?vLO9hV zi%~yF!!zuRE=(6b|De+$=fk=qvR{|2yIez5Is>X(ctm7mgdAZZ-kCGH<8)Y$y2M!R z=lxMz3=Kmj)ySx5ee`%#baYfy-ls&c8sjUg7wEcf{C*XLn)Rb zB=LFAo=ZwjO=D?t`o*+VA|ahSdzep?qZf&Ldz{RwJ2eqPWMmm^XBN_@ij9c_I3+DT zBQq;IJBwvqqFlzHjUSPZWPtib%-xVvL|2Xs=PV7-l23`zB&|s}!80E_d$FuSDbu8d97`3F7jI7*(qLMOB3}&_CHFb@h!;>I+X88vOouCFlz|AN2 zE-uli1z9gYI~Al;qP|cAXA_gtse#gRA_wDcvL?gOgjH|N4Gc!-Is3D)yr#anm1w`s z4b|mExfvTGQR2OgX~Fi*1!D{7l@$45^ut}OuB zvZ5##T+@U&Ic|V7PtVRT1hlrHskO~8XtB<-4j&HzWfYXn!t%Nn&<|z@%$yT#XNrTylJS{&{R{J zmywcuj-4Cf%5v^?LrV{UeKnrHzf+RVM1UEanO9cV+C4CGVFKf2v|PS43b`$H75Q28 zb0?NK%FT<8);4xthGi!%`Tt^}BumEds2E|SHmD3VIFS=$#{TZM`tm|>Ig^qSu`V)m zVWX6tKZ zc~xC6kmjJr035jIw^3lwr)Fbdps{J}!Z=ZB$Ht7H;ntS}no3Aw*b~vbvXzjVmPk6O z?<;S3A_H~&xirvdYmvSNaxW4KxcdT)PF;B+7mF2^mXV!bR9ZWX*=N4|0ifMqc*Q$D zr;xxYS$QSZjU7Gx!y{wdT0P@EAU{@@7J&JgjE#%XxrL=|1UA11aOacTV+wFhPE71s zaOZQ1Du_J_3b8PDZ+~?a)}*;tNV^zimUIz&3-+Lr0gR$K@iyQqm#>H^t>QUF(Lh{6BK>rrsI001 zEO>*VYv6*_T6;P)S?raf0W8C68W8i~PtZWe;tyg=YL%prHIH@} z$E{r4`Lc%Ip|Ok& z+fF9nmmpktM#TismVW^}@xboXvP!vfoJ+5Wm18?0p78Yhi~NFu!orHSK4a~=6$hfu zaphTxF*UQvYMr#!V`VwLA5&PtDp;ktqOyXEk7H-g(}z?#e*S@-nB|-=Z0sKF+41`3 zQwbOVmdsKvq^9L}TPG&0yP?7OlYTj+xG71luvDTYOC^zt<5>I!d`4oTrKP85$Qh%# zb=?C-k3YQUe-^3asg3s3^dgh>;$_oMBVooHb4{GPj{oA5uko24(HUMIq2larpeNlT^4C9yY1w}E)o zPNB2BN2FV%$)|&46lQ%2kEYF|w@WDv@v;C|Cgm@lKDGk3OJdbfT&52 zNG9D3SRwz{_oX|f$uEsRi+@?(r2kC(R=Qi73@yA0}V0K8ycY{zi2o zWcrWGXgvL=3I;I`-%kCGFn>`(Hy^j)UkFg$D^32(`Z4}v*+X?I^z@&ntQqLHnKe+I z-%IyN6Sr6|+$b%QEca8T4juhVH*EcH`q%4JX$@Ks^dT7;e<)*4*TF-SvWBNDBZkft zk_$T{hsohAfdtS6ygC+`x^qNdVu92h=opGcA%ZHWP2Nx;~_F1vyXIcH9s9K!&UVZiH!#ga7H z*I-j}O4n4@&{Qqu7&+Dw$1@xeZ>;;U%_c-P;)JQWfpQ$N%{qDC_%Pf0W{+sh6elBY zNV3@Ber0ypV4QfxP7?=8Ob=m7QWCP_yUvm*m|q=eJHu*jkbD-MQfO-S$)R>?c0ux4 zmcaamZ1gmuNpaehU5p$tRX6#poX~%63WE1WFuJHWvmxYj$Ofp;*BoYq&}w!7OJsq@ zsbeD;UUNwRAn7^*a?)6`t)0R&dee+(m+w$I;`NCZ5thGXXk)) z#jaR=XiD|mJdmttkaUsySy~rydzLy%s)Ik40|r=rI8(II&Co`zZ*;6*P#6vhAE`e# zV0bE^s2F@dnIm+{I#Z3QiWr=ZC@GD+GNNxLqO3eRN`_jx7#&~C(}i@;1}U!qt!r*f z$LyHOD&%d8j*%frhizlJq?Wl*)ipegbqpvPv*8-&#?{t|bgi**vjH2f1gxv41hGi8 z#^Q7{RBgI4vY`=t7w}Dzz^+OJIcp*TYM`VgPYe#0x=sqaQWN#WkZUd}1t$X;lPU9C z0WqJ@7?FrLg~MSsQm#?>1}VSE<@hE+-#O@$thq3=KLIRFxN>NK$Ed8hv^D%f?qQ=(cXU1IMCVJ zR8>|+3@YS*jEhT1%gN0F15;g0bD&#+1`TO)eEdAoDo7j<8zkl zSN{9e57zD2>$ZRA#ucx>@WeOoyYrq$pZ_E{uOMXW2k)*wQ&dySDWEVCb(0Shf%}OV zm%Yj}I3kv^_ktiC7j@Ei)9XL`&cl!W_gh|Rg`peYd}CvHX=VT>?`F#GT|9bN2*Y+kChkW+RUpFPxG&W7g_Vo|Lt&ofJ3k!(fn+IlX zVIk7*<|O)m{_=CbdSh>D@zJ+```3LLb$nV0g`qK|4uB@-WW6*< zq4@fJPkiHdCmN8yRS{}5n#|;^ohS01rMyfoE5(MVYD|n`J|)@=9i@>0;T730e)ans zO1r_NB#i+!k!W-BLqO}wL6)0=q>0#ND2+Lj(X{cK_xQ)k~H(4%|+6}(~y5d=gofS$Mi+hcR{Iu$h zS8lt1Re2wv&L(GTNyI&p#8y{T)5bo1xhm6Pc%&h}Y;g0Px4e?oPXd|ILJO&Qe78=L zzUFrYWMALFn6a*^JMzIBpN>M#VHw!T;UN<#-24`G_ZQ)s_lUzJ9mO>7(dId6-lOUZ z&+ZIr-Xs62K=U5e^SXPn5X5`ICokl5ZOS z=Fi^suA2n2*c`T0x<|6yB!Pi^+uyUTE>?5tQm}X}Z%8*vllS^vrl_&u0Wf{d?^vWI z$kG_V!_du3ky3H;9kUe#WAhIiC}LW=Sh`)Bcy`ii1#NiJ)!#x?;uErTt7QHP5iwA{ zdl~;j)1V$NEJH^?JN`8#DKd}WD=n8S+wt!0>c65HHT@7}T>_!`O-j3Cc@F=wWKbKG zU?^L560}SQwJbk{29}=?^?6>7sEL2ZQ_Te8NPm@5Kj9^K$zM0qf1g5+EZgu;v*j-I z6f9%>Gmj|NH}q50Pl$}{Y@q+XLFQOV|I8*n@?-d)`NA^%b9|xEYQ4Awlw`b(is@uY z532YK{V$IGw}GO_k^CNLyZfb*0-L9DnRtFQ&PAXsWr&kUMd7N_>xb3W&I)U|inLl# zr=oE+sbICL^fWoCb}DX4B!jaEfNN+(qB6MK4!pK&1vWO#09IX-M3B5%DBq8rN+&0k zUk&L%B8ZENXEtiv^+DU(r$9@tLn=679sFW%g&10RomfLBGOV$G8{FAt1Ls}0WFlN7 za3Y_al=*L=dwP+XDG}MAt`F`=8~Pu@`}-k%9b0u>>O0COMh+68U4=$C2UkU*0{zd> zL&I05FkV?Uk$UEK_vU2TIFOi(rmJut1rf=?w zPA1A>IXCCgPO6)swiDPv`TstY4LkDN=3+t3DizS7fjMZFS5cTl`}-XEu~(lSMicc_ zf%bIGLCSlq~R9)LT zm=#)4`fv5MvA(9NqO`bRDyL52xJ_Aob4V>N$jhEa44r#6_4grHC|zu=NX^U6Oe4~+ z%17<#>mM94jf|K^Or~KYwhU!T)DI2J22Dv+pcFM!2CT78j4IjJ5q0zk4&Rf8^^ZzUQian^ zU%da3AOG~1udnos$tkI+uf=ug<(LWrl)!ruav~_;=#fJ{AfHZ_{Ov|03oTvtji>+k z<_D|Rt^NGdPgkzq;d?3xSy#(Sit<%l3@o7HyghM3p6q*TK9Y78Er05b9f5JFNO)UZ zkehZk{P@u$M^DA1WaQ@MWM|Ngd~tLO2tkiQq_?NrK05UJ-3#o+yZ_`CTZjy!U979x z(19M-l;@|PjXWJ1jXbrnvq@T@yt^UG>5^z;o3^i#Up z_Ey~OUWxpoNl3Sg6r^X7^EN8t%;}TI1CRL~@+HxGc5dHlwKhLT=;wX1n|eTMRl#CZ z(B-Vu#MsD)h^WX2>htj+f4{@N2Rz+5c+&=J^^?fAnfb*JW9xhRho+%Riwj{eB>at{ ztJgvm%@6u`x$obzYx~yC8`iCE`cHyCvL~lwhHOITWZ~Bd=i;NGcgV?;5PtM9X})*& zj%}Mau3NKeHFn#!EQi&>dmbJZN@!f> z6pT5`4X|(b_RZ^8ul)Ff_uhWF&~YzVxvm%S(&YwS~C~(LCcdhVBH%a|62X z+qG@e+Et%?_&(r&dF4;PKUa^;%(Pt+IyW0hX|Zu2$uxlp>U<)f3qNx3fXBXFTQ{y* z`SHKree3UkdHJP3x|cT2L`H_6Iem&0)&;ZUj52ngD1h=u5BqomzG3yJAHM&O*Z=y; zOMm!XOjSdDE&ptwg-v3k0fwz`13@6=8NbXku!pb^cB=H`@qnWTz1((h-SGJ*AH4hK zYp?$4kH7nMPBl_em#G_y*zZnZqT+@D-LVV!tsk;bhnzlx-*uH@=>_`vxbNAv;qw*$ zdgqP5zWn0vfAg!NDxfjXX%7?I5tg^O{Xjl4hV+1e!6!mOk>mibTzPc(sh}g?`?jNj zf4=?tU;g~Z-~RfAqH?TJEE6R6=35KF{rTkv^1-GTk8? z{DNefgQvOBoC~))}qk=`=iinUCSiP zjmz0`%QEosFS-8b+S6sjm%(khWErjx-}$S>(pRMk*FQ&%SQl9*#(;)1Wg6E)$rw zy~((jTtOutcl~|*g!>Jk*PHK1CK}J>!0&(wKk-0N!*_^Y|C3()(_H+0yqwU`O zeF=n}$x9#UiIVTM0-4a3NvP8DT}s*gy)8PRLFlQzmGX7p_OXl%-eA%vEe3(zyx=K3 zfv!`%1Sz-8uJ;n@-`a62eo$bUhu7wbA4oq0;a&QXWO0_(%0HG^Z4jLUiH=P_k7#SR zKj8sE4)r}jE;DqBn)DW^T%BEAO0pB>sk@t}KB1>BSe;h~|yL7tS34UZG^sK1Y=nPbE2 zTrFsodH*iyOhgH zRF(}$BcOv7<_pRjr;rrp=jLQN(Ef6=GSX8WNPr*{C7pAitbyATA4{}Eg;U1aHnu0u ze>rp7&Nl<61s7upng~(Ih-4DzFNklP69(3Y-(iJ-LJTp#!v}p25K|9q7UGNf9`N$? z5Ue$N^7eFh+qc)wVRPTNclXX6f(ggDVY_y0+q#8#aVk@6^QH~!9iBF>U%O_t`rf7u z>(+d}YUQVbQ^ub@`*g*}9}&Y0PpemfYW3j<|9s!!>0j@^`_9|Sdmnx9&-dQ>$6If_ z&TERNH(!74Z+``jp5A`zjlcixudlxHvi<2Vul)H>FTJR~ho_hR_=n&B?!9-YCV%?< z?|$>^Url}b$Db z_8Iof1vE-PRMkDpp1Js&U-5^ZKkNMLI8_5k|E&D;@#n;A8L!!M>=)zD(>u@pobf02 z{3N}t!^7oYJpcR)FZ@#arMA>5r=_;kIf+YK>e^DLG-dod4ee8%lE-SF>ViG3eX9ST z^r^m9j~vUxY-pYCA`YnhMA`{vKMtOa4fQx*R#ldlS2gutxO`!3?EFAO5%TCGvws55 z3(R+DXul(uAWUKV~jDu1`IYf z!K8=5fC+|&9~juY%feTb=~_tvdj)m?qRs(bzV!?B)R4xJL>=Jg0boG)Ai51?H-hXMkX=qUCNHh+ z9vdGT7#`}Z%uNTndZL&r9z{9hL4iP7ck2hy3!-6@{DPv&w&9Wf-huwM(oA4LW3?$? zof7r~{CvGUoO^o^-L4}Wb|x<^26SF-Zb5l-|6n%^l?}zRB#_Nl8yVyNe!f0H8h7Zz zY6H3nG_M8C0S!B}Y4zgrd<|01bP=7Xlj69B{rOP0OxmXsoTS zsV!ra6N_OR#CVDbz=YdctUR8&ktT3$hRMy6aAAL8qY7T3zQw6HKY zH#IgaLdDTpu)!!=(?ud+=jzy$tn3U)s!SRk;02Q6qRU^8OYX=-egk7&NdQ1~o7 zEQEw~M~Kt1WRhe_Qly`|^IW`{DKRA``G&bU8a&^>xxs{ zBgpNcu{hs5wLQeg%f~-74wmOc#YP3X!|V^R041hNOhl%oMvzwo)lGt>Alw=j=vkV+ z;o<2M6cryG9v&6x?*{9E5NB$#6hxMpnHo#AIKD?>pF-!N?&0AZ8XXY~`Ko-JZ7j?I zModJ;B7m}H6{gAPSKJ7OV-Vk+Fqbs6t+R_~V0cJ?UqFDDqczNMO^g>CvnF6;GuFJy zR7{5-9CfuxsJTuI-O$0o$=yFJ*w@?7-_sFRFBvZ}CLocR5%UVDG*plqw|J}K5)ABt z)F15ZoxKAByuG}Ay&Pcekr6Qx0T`tcb7D~eMvIBYK~FRAU=IW^dLlNawT**^uaAeT zo0o@!6}S^IBD~TFXDutuBe^9yTHCt2Q8(s1!P3gc$;;c_#l_v7!i|ZJaAHZUDlM&G znGFs+S`!0Y>&ND1=9Uf~-fk|go*s^trbhSRbFHncDH_Ku-q0KzeF>Y@)Y8t)!^O$T z-QCd&J}VfTn3$THnVVZ!SfYGloo!g43==44}m zH#9Zl@Rn9q*2J2%A%4Yl#MRiG>w+L0q!}3*8kt%-!Ll_cH&0hPOYk%;npm;c#HQQU zh8y*`7Sr?~4s9qhoHVv{!1i$UbhWp#fL^UKw;&e8k_FvCwr!7%rw5E%Xmm~Q2O*%h zk)h!=_L{=b*xcUD&Dqfvn!v`=oNG2tG;2FxXY0m|JBZ~>hFTjE!^PKz4UNt0+}xZT zoZUTO`I5OA*v!%jZN}QLw#07G)|nr$G}hvTF1D~z>cn7ULKCNR#vm(SUc99*eP^u3l)U=iLSEOh#@gjn3&tTczd|GczAod z*js~|Xk6Bo;v9(e6djPMVZbir+F~9zVr*h=x4tq8>wi+DkcpX7n6jwQ}*NmB&TRVDsxjVah`+31&YsP0 z;e#DuP!x}GVXrNta#*O-?0}-Mw6S;d@o{%@_3`s|wWo3jRqu|oi;Jt<)%hS6h7n>p zX>AVxPd7JjKsnlr>&~f4KXVUQ6kF@KzaGWaOLIe=YgZ0gM*`^lM{@z z2y*whx@Z9y3q7a9#?A?B;qL0`@9*X8U~i8&fPsPl^YpsP{s53zD{SnYJbZmU+&%pR zd|aIz(Hv70>4r#eAMiA^>QK*YERFP(F)wC_>tamxNdy(b-9JpBT^Jv{wFg8jWc zh{q&{Lm;ebghwVmyynVd?L>fc_VN#bH!0uX&_Ewg;yH=ZcvNU8JlolOQ0T^!j?V5r zK>fB+Hst9Y~uSV-)m?? z2Zcn$ixVP4BNHVlxZazGLCRNQ0xV2`g$b}Q0nX+=SqKwg?&FX!0Tw2}!UPy+dBOx( zm;ehCU||BxeTLPYf)P7m0xV2`g$b|_0Tv>_LIhZd0BiXn5aARez(NF=3m^*-U?BpG z(Rv{QEJT305kZIm3lU%;0=z&>R)_%qzYqb2K#<`-HE5fffkgC1^HRm~+L~T=5tb ze`Zv*u;D%wu3WK_7Rm?isDG_~kx|LGLXRt6riGHUs~=Ur#Hd`jVkIq<%O)Ttz{`xv zk1LkbLb-HM{fPP%M&-m6pU^_NxL^HC^mqVx-3Hw4&#rmpi6>rNbJEP-g=f~{&xy?p+6oG`I*H~rWC=iCq1tm`tqeGpM3f2Lk1>D zKt$HbLIA8P-k$ZGx_sb^7oT|Im9Gz6G&Z+jdCKCwB4!a2UY8F33m`8qKZp5U!<*R+?jm&j19LG&l6BcTs!4U6WpNspy`U{}G*h^8! zvMHR$8(>v!SMidTR8 z-SH+@ac|o#uh+K#ERVuBj7e@LRvA7XBBkm`1-&8{>pd z`QI-+^ZeW2o;J4RntZnNX^<@(yN;_M%=ZBp9uXO7e16a8e|hHFx4tB2iDVj) zgx0Y^t18rx?&42LS5Z;M7Z0v@Kr2Yj`r?EQt*XVw6J_V|Mk#`gi~M?5kfLq+kbNEuzW< zIVPSH9_dj2G?&VLmpEtL2K)gnLH;U(JkO90$ zaSg>OPh#1)v3M&pgZ*E<@rM^b*mTYehIS`sV7<<2&%t#JhwZG@p2V^7V^$Vd4zGUu zg%{r4ppQ2I;wEuvMee4COv$@Rh{jE{a2DVt3D%a^^ftWv!V7P&Ic{tN@_}kfnV&rM zlasCWF$yLzs5=|aCREy5o1EGF!Ha)|ZvA4Cnc68NSFTD22*7KH5u2f^~kTKh%=G9gN*%9mP?W|2see?cHFMqJ%v;{zc zK+5+Eu1C!}7@A2$&BOwbBoT)eTk~^UKYs1y_tu>>b9DEd3)FNd&PJSlS+NKbB-T4P z+FM@Q{l%NF{B^}46DN01j_In?gJ*q$jhoH1PLi8}dT({@@T#|8dE)&KUr*WUPKhk*monCE(MRP9L!FvegBPjmLIe5@DI{*PiK1=dMRf`E?Xp#!jr{)$i@2H)_=V5*5~_--2y^F zIl}5}oj4cMXa{nnL!Mrqu+YP3|L1SN^^YBwodQC_uqR@LIP1+qM0|=!lB)6s#_xo; zi^a*+@4xlIcV`^@L&6p|f(FB;D${&?S>G`)yYrhredmKUC#-!#!g)8;bR5nC2oXuR z)QtTybb5bZXQRDeyz~B-`^>yTA|ionienUZ7&HOahQqK@lFC9hdR0Im8>sO2Fh9QL z{dYdydc`d;JSyg1L!%fCgrpB6qc}Lg$Km{zPv8B=27SkXuqaLp8&7yKXlY%{Kt?7s zC#}z{!{l_1CwcF4u zBr-NGE`GK~^HC(DKQk*!j^k{2cvyg|!IuAi|Fex}or5A{egxG;w``SX=b$4*M1%)= znjT#F;U}w(+4x7r#x0mmmB>hXy9Snl@h`nyj)UcTGRCp;#8p?s={o1Dev z<)cH4z>>R&VD~FK|L4Phes{q&1fln&Mnz83~J zu+WkksoETh6|va<@Ysus3HQ9Vd--R}cN_Wup*wjt$?3h|qS*wD)Okn(fg3~x*dG7p z^DnoYa|ugGf=pn1rqTuA#hPtetE+3M7ZLF|ENu(*xbpp%pRYe+6&RP8JO|yUqdCYf z;gTs<*Fb_nVY(DB0BxnO#OuEB2H+9>7p=Qyl2)UOc%M=GGV$XOc&>UxtTW) z6Q+yv=Ip|BQFrPmOcz=BY%n{U6{d^Abdk<*b?2JGbdie}3eiO&x~L7p3DHGOm{5o= z3eiO&x+p{!`B*N7nlu3rA-X6;7lr7e5M7)*$rPfCLUi%}D7v^vt@;J?F63UJg-ER$ zVBUk&E2{pVTPTM`v-r7pn>~Ax`^no}v5G4;am5*~xWW}4ToKI`Wn3{u3+2pX%-@*B zYSo)uv5G5>aD_crq|rh-Oqh3=C2G~V2-zm^YaR z)T*z!!k-pO#Zu-C=0UY;Iam16LOHgSd7XJkt=h;HS+r2j{E2yu`Gs0#MGNKdeax%O z!)n!PC^Vt4VUArC92ymym@3aNsjO@2x~*o_-Fx3Tncdpe(FQqLsw+#23v#n@8(-KX zR+5qek$A$hP&N3Fh#0XXBd4gWs;>PO;QQ9Tsh88z-U^#$S67r47UaT4M7X0Z>@iDH z*!ghS$SgV`IV~%%xT3oCCgdRMpZ@2odYKKd?{#fec}ZbjUN$bnOogp&i3IV;vn5`{ zdxUb8f`Y@N;*z8pIRzyZjTGMZ;h&CX)WDwEl@*xm1<`4MM);x>!h?r-q7%?&V#Uca zc}`(T{S*iv>iYZh`%)@l@8`0j0@#8W_f7`Yf!iZloTBo8{rONd@u{WUH{hOxN5_M7 zd0s))sQRwD>-}f9#uRf|W}wy?fJLwfBy&pFYS^Q}z&`=IC#Pm)=a%)~QmA`B{Ozis zykgiU8>FVARCwA+mq}EfUc{>gNv;~Y9niU=V&an|X&LguPQ~E#@aIqbw@U^jz`@;? z!O(1~2ymR9&Dvc7LxENl6&)uATzXE^Kx^;B)~Ek!n4E-QgS@Pj?|1^)4NFSB5sl=}i@2g>xB3&y6NE-18 z31V?_Mp=GZaqXrT-#QXZDHab&7o}FG!SAW!RC7w@L;yu3N^<2%vL?f~|FX^@9!VMZ zNtXawsZYy3<3fS(#*I7>gb=YJS)MBvmnE!x_2Y99lnAm!x)?yLtY1q$1FjZ*PoG7N zCMKoliX&6YPrv`pW@m8<3R?u~A&#VvW7W}6S{&@zN4ZKQaa<}-42dcZ|K|PA^+Rd3 zL{bsOvFXzp8W@;?3)*R6;*?BDkY7^ql`lTtWD}Dtk+NDC$xvj1Gz}{jDmP1w8cj-0 zlZCnm-*Y8n#1 zSfKP=N19ajd~zK!97RbZDQU^Rw$6!J7TeZ*Zyc5)O{MvVkqJaHN!BfSc6QEOhMkD= z6xrkni8S2S+(jxe+PV3NWw<1bq^V@-Bz+9oM<5S4M7exBU?bWl1Ov^}5mt|yVK)_j=!%P!_mPq{?NtQ~&EH7U5&P=e>KX%qGTn3wZlS~CC zDlb33pb$MpV@wW)%)!yLB#(=FmwhvnT`r%yY9EpYThEj1X*uOMA=`)pah60`2x^f^ zq>>oxlSj^bXQT&OnwUETCFQ_A>aYYK5J(cD^demlj49F~Ntp4$Jtv%{@&rF82iJhO ztjdPQ#s<b;DjoGDMjpvQUF>KY8c9<@>E7v#VOVhbM2$K=wG5 zI1z<#hSo)p%zkK1d3I)u<*rX(fAO`CHlB41Pc5u!>g*pRgQ{N2ljHc4b737Edn`9E zJ0;-4x_4f9`q@9d{pGgP#*SXFpQ^iEViLzaMRw<`e(2wwTB=(?PLlhn6|X=2$O8{N z{Mc{*@aLCb{`1q1QHC740}D9pPMUr(fH<1i8=RrEBsbArfBieZe~4w4!b+%Qw8g!c zZoqIp$8*#w$_g_gY>%#f|Aj}FGK-jnQBCtvmB=ltsVL5h_p{XByK&7||N7TgvxGXX z&sXt%aIU<{s%l`R)z>#b9*3$jOqL-@k;q^)1WqnrKQ>(hsm$|%~}rW_*z@r z+S=it_O|wpIneUio{tHv7lHz$15#CR8ThytWlrO=IanTC!E4;0%?7Q-4h&Kjo~BJo zbw&>z$ynV5!Gl9me46tuTC^~lT8o2&-ZU8zO&o}c0*7II#ZHJ0ahXj1tQ(;6vo{zS z!J$@`o<3*j(@|bmJSV>gGZkWLLdZopGCHb3^9)4Z9p|+dHrTB8I_R-65Dv2Eq36Lh zXsSBqIt1CnARCh#g6cmDOgc;-}FX)zM$5>VW1GD^4ijaY#9%ntIRIe2(e> z*O-mVs;HQpTo^s;Gt_K+M#uqZbWU|h>IkwY$z=>Zseg0IV(WH==1agv{BDn>8 zKhdbZ02*r!y5A#RH1z{u+E-9@&fRpuV;a>LPZe>Fro&c+jxrBA-{iE`OQ&eZo(pWE zUdB7=f^9W9Ikjx6w4`(a+=A}O=PpM(-#1k@SyqM_-YKgVJ2W>6@nZ??6nx|Az?Mz1 zlNAaMR?Ce8x-jgD)Su_ID#BPrH63|=1VwuwNTa^MPA;J+cA}oPARTki{rF~>?e<#t z1s7l^7f*>m7AE(q9RpcE00YOJqa)}ywTQ>DWA&qa!`&l}b9m^gyvN?B#gI`lBFs67 zw=m}v=A6QuQ{ z`2!PHA^D@&og1Luk*K%u_#E2UcfJN(P2TD=m>PPN(v%Vf2> z9)IbeMh5YFjA{qaR8?kp^b8y+N0#AXHD26{M}~N@<3V6TD_>IKRYSa5gja9809RG3 zfugG{SO)xOrKkdqfg%i7H{ey(QM^hdczkC)9>0WyUgh0waID%5WU3j}MHZ;eN;X)% zNUe-}43B?Nj>nyA@%Yht^Z|vVx-!LyR%578JCdki5(M^zN$mfOXU#MSaWP{>t2b@H0JcdF?nmt}15?mZ+IU$s~nHW`Ix#Y}Q2?)7dqBJ&KsGmYXD`Wsr;k zWX$9?-o353ZO1U81LER}N{G2v*N~dK7z(ExDxep`{&h3>&5@*6$+D{Z`xLUzJ~$nf z##2Y~TW6*f*S9jvpRDC&KoH;=0x+)W;Mp{htU9Y^WN51BBgOR+-&AK610-ttU75$tW%_A9%$hqd8A7zcrRu=;B&ifrX`Ej3IljI=^#j zSu}WSd`9xj1Iv9g`TgH2 z2X73IL_EU$Gq{u+^tD6?AeeI0FBaaWDl@XmCvH!vLmplFRX`SHa21zS^ayyL6BwqdYUa@y?xFYO|%H6+ziNMY3k#*648XGr!rDQpIsgv>(ENpNjM= ztSSpc)5@&E9`I!KeuiBap3CpSR@-}Hcp&z*=MSaT=t%8`k7zs=xveC#EK8nKIi*&r z?|#B8+7_G7b7^WiCx`lFAHIAvt!~Z-xZXY_Zeev1d>db=3tOQ})wVvv+;=d!h$EU* z*LF>h50$t2zt2Cuw_4E8#mZQ}oJFij!_SHU@AeM8&uNKeDXFZ9xy+BxQ#h6e;)f#c>9 z`AzyuP*?j8mbG00u4xK2fuRn&Lh0G!h0 zeh}LJX<%g=<%v=MpmeW+p^>4!mYUkOp^E2nbfkCmmij*R%pJ$yLltYj1ux`TqtqGrFX*FVBclVoUA;qqoR~n^@E|;w zX4)?N3Qz-I1y{GDELt-i<{~>jHa0pm&^I_T%7X^_K-gVn%C`h?mCFMw+PMzHt2o<& zAZBc2aBz48Wx*|ay6%8oW-86zWJJuJuY)SVTS>nH9hTP--G)po0-Bd%Y%FhRFyp!p6urnGgXn zQKT5qS_OeEjX)Q^a&YaN4>60G>wi8HQPDX-E62fD3PaKynHT|qn(D!7qq^$KvZX+Y zzVX6tue|17>_>=Uc~Ofdfd@G;j7nnVdb-+Mn;YwDV2x1`NSb>1qmzEQO%ydUiVC76 zRTubvHbP!z-6-C<& zQI&v#njuQe^CKy57eGWInp^~&MQnf?t^o%6&?%t>z?e`sL}nl|POBo0BuHCCvLjJc zb0&exfu33*w4Fv|T#Qyr4!3lQP=VDbaCi``LMzBgq%}mlq$I}2L~;aUe$ugw;;MLg zV3*!*a7$j(a%#`4^fXCQLTpsH4gvH&4UCGTdd|f`^T{*Pu!_+Up*%?v>89*trDimN zRsb!#JE=Hqhze?%?9BAk6e=%->PRNvrPd4! z4w#(M$f^PjsVrzX6oz%9(zwb|EwSC96~co2r_dZkQO*fN6}2!F2P+CWE$7wFZ)z#; zUFA5|jttKQqCl`FngtYvb#l;rTr&jvO)ch;r4$JwsZ3tic4&7n%{**ULR?gMNTBbO zh{rP~X zus>Cu1G4~TK{gAr>vd#f!_O)Y9YW*Sw9;fmG%V6VlAabFu?^7fe9P%nJ7{!-rLaXH zkfj1Ctdp}hC$N&Xmu^p@23|b0WKhI|+H~898fdnSagc!iAk1lnIju0K73Q?UoK`c@ zz&AT#PAkl5;q_XW)57#wn9~Y#TA02Gb6WbLMVQm#rv+h7E6izyIjs<<72>o)oK}d_ z3UOKtoC~kV%Ns3UOLZfImct(+Y9g*;x9* zaoWe3nIZKV<{{>evs$fuf%!8tldJZH^Se^Dx{P@dPjm6KN3FKwPTTNwSgrmSp7yIp zm-H-V5U(TrW@%*G(-2iu-8CFN( zX`))4iKlI9KS1AEG^SR2;JH|x2Is2fDCjs|umw0=2*nGZ;Dv4KM&?h<^7~olIY#-*7T}YqKENw0)gLpz2PSzWUP)tq#mum!K5#{44i}WlcbP|- znRU~@VV+@>`YQa5H}e>yOfqMlW>oq}!yJ7SF3kLS_$lToW@fPy{zj?#ig}z-?hIm{ zWRy?mBHPl0d4icC0iQ9yVP+QX97hhMcq#mO=Aqa}Q3UxQA1UhvOPSv?GrzJ~%KVa< z5q*`1w8es7gRGf9?jg`RcklnmatJwz0DcyJxScS|n7cBTd3Y7Qz)XMbtfC#@tJ##DkUEs%y)OV+(2Ooyb#qY>n^*&t8 z7%Y9CDbX@g=ka(cBX#V$YOuM#<)eq*@@gBS>RbK8)89S#ylLYoPhcFH0#mlAqTgVcM+`HNNvkDy>X3Ljs#(A!c*W@L(+@pyrke8T zfB-h20GGd^Y%_V7VP0^~`e8V}VZd)^Ce`+jJaV9T5I@#J6sLDct?sMKbNmqW&;HOi z>xZOsblAx|YV{p;$gdyRp53QmpLI_RWqa&<1!#?(--Kt;4L>PUbnaG!$R=YIDqPMm zEP3jIjhWpTLPEY_OIKac!PfxZ^~5=GmWF3~FIuEfPTT-^N%k`jY)tEb_!CFdYN!Z5 z^40?k^Sf<+X<7H$oKt);fTsamR`mM^x1_bslBX&%y!1D&*>b^8BA3r4K6B(bWX0Zv z51LZ|uE=`kk?+$Q;d4Kdf@-QODoW(Z(UEaU8QIzLxwL1E)Z3Ivg^clm#NR!BAgvaV zwZMd`tSB#o?S%_~vQP3y@^bF2?qbDFiX9mq1N3<4bIPjfmJ}Bk z0i#NnFwGNyIV|v*Mgd)C`}C{VGRjeC8SH9YQVJwrxCI^;70hz2Ip~xY+SfA-L(26V z`p4wjPP! zK<=7tBcS#o7Y_sjVGt;M?H!{4?{8TCxj}4JHn)@`zo4kJyt=lrxvjH{?YiBeX`})j zY+p}LH$-%R|EyNJf3evyF(VUqO_k^5%Ou0v1kos|uI&W;Y;@fKWoU|pklOugf! zsmZY2b6HYKYI=4-d3{^Y;MnB#o40P=zI98dp@9!dX=be*T|NCn!=s~<;Bh^2N3Vob zV0(#SLu=TIKBus)fF@5v)ox9|2=N(<~*pG4GZ0`p4{P@ImC1}voC-#e#rKcq) z#>K|QLxKW%QB`x-;MmlS+jnNznen?C%Yk&@EH~7X`s)oX9X$ghT9-qE-2Ntgo^@Iw#mj+)8Of^z|y%G&QGI9MD)}d>n zt+uwgwlqr;9~~YV92OCin4XWfn3%qK2e-!V)qz)(mcmMy^6Dlq)6|W-0Pnap+S%3B z(NvO|92*%L=pPgs8K0V4-qbxf0V>>4f|;{^a%)0kQG$7_QB@ix9;4fRpfc!lpLLzE|X zb#`K8ppUz=ql>#wP;`pCys>Lwbn-el(%l&qrHupa71^?>utT*pJqKvnJ;Ms{v>P|B zD~7t8N@TGi-foU|*0zpr-obIH`PD7m;LO)=-n>O_#Zd-1u#l0yoFq<2NR-HO%NyFE z6{e=AC&!0-n=9psq28_zR_12rHV$sS;o{7aI&@~m^z`-X(-j)BHLxP%Vj%1C)%c{e z{EGUvZsd3m^>;N_VmLAzA^aDCxdmbp z)ACBIo7%fzAZl$W&rON+b+I+OcIo`Ni&u;+>|FgLB{^kvKqJSocMzz%98nl3hao|M zBrpq7f+T>umcc+*TU}n5nG^wdQ-kyRr%s+acj=nBom&8yv81}8wFAB_c2jRo6E* zH#ce(2oCh~_HcJ|b#wLb_74h=f*ww1=Imf=V`a%&%B*Z`?Cl*L>})K+cxO%=-uwNQ zO&d3D-unH{y$6qcw-Xk008%bL+wjFy89ML;tU}SFR?C#?q6dc6kQG0tEOEcqZSFRXb zym;Z_`Sa(_oY6ae0GPkyMa&~rs%7b`- zgP&TM8eKKGaQ>|R=~H?qP8>UO=)m4x-*4IY?fNyVSCLiOtJkbu|Lw*t+js3fcl@;7h$9`FYa9X)pZ#L1J; z@}6#BI;cAe2a6rtw+BRXU{HMd*I$42)z{?fJk1Th+q4z$uy6mt!$*!DJr)SsL(7Bd zuNr{zh~K?q8(0nMjlu!We#OIAuZ1@FZqt^n+js7U8yq-z= zbwU@;OD6y)%L_sO)oa$R-|+3mO3fgRBWj=@g22}^?pt}}+#2b{ifu_5BK}S5|LH^1WWCdACRuxd; z0RL{|<}DmvqyCYjV10XQb7Rn7|Kzbl`*-iy&Ncj+)vH%6T18gpqv8}xWq*%`<8(g) z9^eIS59q64I$nE3E`R+uylh=GG(4hDoYVvP8a&r@=(iic`*s6#c-4CNhiu4)YHyoTATNpzUXAY6$JG51j{ZuxrQn+qZ4qvSbU{n*SrnO9tTi zj&@eqb{BBaIC|&+bo*U90ls~kXdBs1zAw<&o7PxI>?MOM*L=NT$h85-hd~SQIBdWT z_P`x>?pVBo?9AtyYCiO$!Ii6q#{M|sYKFXX`ln#H=}PBM924&chN4B^d##rRslRLB!o&wK@PUsUF4k z3#zB^QixhzfS3M;KbnSh6n77()tz`{C0?n+D{rdR<8!Y(tmLj78WD}C0%5hm%phEV zd;@JJlZo=|^=CveLUQ}pc=3T- z5qP#${Sg$(#0)%nZRUL_i0=o?%wGn64GSt%i(%En3@clXi!R8oaXH5}b6k4y*dJio z#>{ge%V24S@{eyZzhh>W*e`=Z`N?X!TI1|vxUS=iGq^Zo@ycbm?BjE|$;{&SmVtET zlKU8gWxE+*m=_o1a@({5y$~2~fqp(-o|tlDa|7ISGd)d14)pi+@^Eu;c64yCw|8)Ka&hYP9T3j|j=N<7oH83-ogM9MZLF<`)tI%7odez=I7%$b zDXwb7ZPgpQ3*v)ZEw7#dq9gGAHmqL<%ud|#682UNfN#bwh_X$i)q7VI7>Ot1~bm0c~zZ%*Mt7z4#X!Xz*eDwARS0Pmgc4=#>AMIAl}x& z#lt5sJYFg}kTrHSFSE0?caGd8z&aPtX@h)YhF=NFZhRl&+QU|Z)MyPshmSaT9s zT)-jQ4;(PEr?R)JwW+!!SC$YS;BIea0#&$t#n8mU*4Zl{JT4_8rx21LRJH=&e0sVs z@Smu`bKjpjeUdU)_wQr(RSx%ew>MUm$Wvm1y&SE8Wd=qtG_?XIHu!#eUP&dS)M$dV zD>KtmrI((78(e??0Ptpy0`>L4es+K3fr-(1XpPQWpnDLsSv4xG3XFvpa zPe~=D5oqay;r`Cd&A|vS?Jh$&y9~c{y5}nXo3~ z=D_3j364(5Dypn+>1gi*GW{Lpt%?h{6q&OYcMRX5M!wR^W!hK5tee2a7$4?#ywCD&q+6>ghJGXC4jSX}* zROHFTkpW(=jt-8F&aR$*!BI&Wg_X^{lZYKMdmgcmtUP=Y!J?z&SThn6XYSm(J~7Jt+dnuw25IBX*KyTe?rOyTY4dS-xF0``NJ_NRKdYX(ePeR8 zzrDUJCp{?!#$JCvUtj;gkcen;YEJbqVym|z_BU&eo<4Q*#0f+q6;l7~xeMS5Hv!xM zb(C68xXwY9|!b-FQ~`rO>422uR=4n-x}*~EHB7Plfj~& zoJ@&0J}y2vx3+)k#!XoLb~ENPL@)Zs{xcVV-z_>l&C9(ETu4|6*m+~PtFf#A29-uw zRZ>w@R9acz4y!ae`X{EEOkM!&&843lI1A+PGx|iIoSCFbBiPg&mZgZ)H*b&iwl=l& zO+rP+ly`1SO^)`o*45NCb=Ld;Ycb#(AN~CB`HL6Np99YJ*>mTi${gC#dTMk4TnYNo za1Xe}QuXwWq4qk+bW`ZJ@i9mq(D2;a;}5>5qJ6K5+2TyL#&bG$N?BoFJi~8pbonuNH zyLvhr3xm$AdgT|GuVC>Xzu0~1!es!94C*iAm`9;@6zc8UP+L)wBaL)7I=*$?iZ8$T z?Bn-d|Ko2Tg5{n!9)11m9Vahbx^m^R=rXxdbk)$v1Z8S~{(+^1IWQte1-Vqg~_HSLk{PRyf`ryNVe7=1B_I*cBpSxginOtVCcq15}a#o0T)u6*7;-e!& z{C(VKy$LT<$r+50azW$jrXUSP|z6+${Lz$YJYCR8oJ0?0BMz-Tij@Q8$bqXaz z&!g4Vz^JVd76P`4ijIznT^x(BsK}$oM90|Ucpw|vviLSs-}5>o`~M!-lJ5==Su+(sV{JBRD=Nm{(=SGZKso138$@3Ks3Jmb~_0f>L7nb_N zP(NQEZ!h`;0gwFmq*AD-2QlNCqW%M@wG|BL_xLdFaz7>28fH)b z3#hpnHz>~OIg6m@kmzDf*IB5tDAwG}#272P0JiDpU}54TOvZ)DxG)(PCgZ|nT$qe| z36pVQGA>NUg~_-u85btwn$HdkOpArdxbBCCpD`^KCgU1!`k6CoVKOd6#$nGNAu=vR z#)ZhZ5E&OD<3eOyh>T;1TZoJck#Qk1E=0y>qkF<+T$qf<{#1-wh>Rn>gNv&F%*eO_ zImoE)dsOtO>LKQDjLH~TbShswa>pafxku@E?Fe4$!=uk&|9|CgkiMz`1hx8;o%0n=!Ac75;1QB@19=WgNJMqy?h@W zt9D{mgs<`HE7J%I!oy$I;tx6=g}emHhYRrd&fn;90{(g%9{#ET4=*#nW>hTXMNodw zf#+8-DMQHfNa|mrhb(I4%n?`_aQCHxb4zhmz=sv^E9J=7K=i-!kVnV9Wtel}qqG^k zn)@u|T)6YkhEb=tnO`t7j~^-mdgRQ=VZ8l~`;PXhJH7V&*TX=^yS?;JUs@F0!M{%1 zJb`Nt?mu1w{KT88!QSlbhQTS!!O&;<1f;H*`I}XZ`XTk*4xg`B=4Iv~0I(LZq;c5eTc{dP*T z^(Sn=xnm=N{WzyJJAv-pwQDokOtwsGcIVu^XU|r$brN^nSb%a5=AP=(9iw1>%&EF;K8HSuUryFYx?=G|W!Q zlnec?F<8ErtNGyp1G9mxB zB|yNrOYeXrHc_;SBZu9Ij*5zmq{OycKx_kMTX?J}cADeXA=qvmh0LI!A3_I4bOJF~O3vC$B>fI@}KP^{=$8cL{w6H5yV{+IA4y3oUvBU|xj zCdS4{z0#f;85(NOaI@@dSFdWAN=9%3+*<>Vx5S@ax_A*;OxiQxoNCUH#d_}C*|Xf= z=o#>vPoKuSXwOdRF?vG37y7->?}dIZJnv5n&wIL}Li>alp7;MheBK)@Vi?wjwPo#C zd*Z-4)?=y+7gskocMnf5Z+MCH^M^Ob;4oOqm>3lro*w2(A=!9Uf}My8C62_2I1`t8S2y>$QbXV+H9RslDJ3B?G&D{ED@Ehu z;Jq`R#Ip&U!at71m)aO{N^(qSXmm=dBrz^7mSTyRwPzhTY#*+;)5`UywMDsrB@tr? zPfd&pi%d+FBqt<5t|XGcidBgY8hAN{d+^4Z1CNM|#JomHX_EM;NYEbE87IUiK*A|fi5`xL zjZ2b({-KcxX}C^WEKW>JB1x^uTq{GxJ$?+&#*D?rC8WsG65!ojk|C2MCn20o?m!>; zX*7u)je)g!snVqA(1CQS$f8^|Dm zP)c%g3Q18(+=+Yt&w!Kok+_7!6qzhJIwCqrmH{fHB&SG-q>ok{9sEaxv*2eFNhz}Q zl-P)f7-OO>Xj(VE`lB)THm zL>8PwBF)H@#zjWNr)Fhmq{-4`vcRCA;NXx@+AB29H6KTkN0KC|vP>DeTT*&fRt997 zN)IN%*M9=YCbKD%sc9fHHasFOH7h4GgUy)cK;aQTBo0yIk`yTtuOebtXui?3jO?6@`0&u!)ZES&rQJxiVz7Zw_qmQw%;ylB5*EcywZBeo55EwUVc_eba;$3ucWLr`lk`&8R?mj^R6H(F*;U~U0hxo!^Vhk+D=^$ z{eUwTD#ghl8Kaq5m?y75E{TbVmBN+|@D#v4`coK4?gx3#@-q{oBE|BuDtL0RKZ+R! zIr41Su_7Om2^PtdV&YQ^tKxnfGst6d^B{>}ad|~idVH)nt0G?XBlYRm!4wu2msVAm zJ?$dv$Due27_K^qgGCUI`f)F&`x0Dj}&OBxY=YRlRYE z3u)Q=BREoftD(8IxguMdB)Z2n8h->>S62_oAlusNO6By?fjw~6sp@|m3CUiYn_D~E zYV(ulyJOo=BT4h^miDf$mg*GI9HG@e4TU_fZEYQ$J>6~aw9!?#^58pH!sneWm{f76teA4@!v^UHtE%dwTo&1_t3_!_v{^-;|B$e$uZRfYh2S z3{FK02ruW|5xj%8F_@d03{jzB~U6{1Bw>lclF)a?t+_Ju))- zzeA6X!Sm=cBmIxXk3s@e1Y=Lm*YxC{S9MSx(GwE@{?E~5B1e$}sa^j=;bekUki5eD z0)7zs_f#hnixi}Q6qeEf?BB&MRuoMX6+y<%QXDer*!LsO2F{|f7@1hCAQL6ykcAha zl^nGG2mN#b=-4PX;QmL@kzra@9IRpJ{Gr~lpj6Bljrz_)TNdb8KM3vb1*BH$zX|Q` ztgS@@qr(3-w7r#9^*@6)gUm)uPy2J~N)!6h%-E2ExV5>Vu11*s3bWrIm;(y4Ut#tu z%zjykF#Cn~P+|6qZ{x!3SD5`S{AFSO+qE$J6=uJ}>{pom{<~9HVfG834t2hR{m68k zo5BjS-`V&r7p>;QphE0di2Vw&Um^CZ6I>HwzYtRqV!tFqi2cqD#0s%r2z<;2BZb(n z5c~aKMUI8ouMqpyhEkDDGN0b?1JgQT_WOT1`~3@}{PT?ZVfCwwDxE8~(L(vaxcV3B z*BF%pEtIb*Vaep{j4FpKR?|W$YEnO_euGgRq=jKcE1FSu@poQ|6W03d*7OU#hLbhPL>t=w_hGb%Aff}B%I10oqf zN8@N^JQs!XBao;7OofI7q&ABZ3&aU=VQ%L(uUxTF&ptRlMVguhAvDUvnG4oZ(zwSi z$BRxXNKArF+g7jIamh1Al9n;A(j4yzM+RMHM-q^t*%XnaASF35#?S2V`c<2bS%)Ob zGP5Z4M?;^PLt_E0+uA#@w@^wnM(K(rDT(1O7q_ilxAU4;f(!_rTK=DgZ^bc6sLqJ( z?(X3UZb0^umPq3LEf0UQew)61bb3}!-aNUyt+}y`Vtad$56ux*Noq-QlG(g}HIVR{lbw^D7UObh|F*psJ(F_Fs%khdxfcy!%2(2K4oa8J&13Vj<*DJ;CwJ^V zVHKWHQe9iG(R_|<4SH;h>l{2fzkn2E6&2SM=32E<#ltUG%ewLREY(sOKAVc#AXD5wNqUfI(AFBq28+0t)5fuEBbPjd3 zHXU43CUWOehe#6!ayETL2xcudAsgwM}ye->z=-&d!E{I446RGvAEr z?qP7vS>z2wjtqlg>quRr?y!xY>3e&7`g%GVa>E?W4DF%{S_j5Z>J%D@C`vf!&;T&K z8(RB14DyD1N|N4DFK$oc7d|G-qG=i$*C!*GOK9e;KM_M{e3+JweXC>#|5&IwOw&= zhzyZo#ZZ4+Ns^bXrBirr^WZr2D1?t_;RF4>JzZ(VwUC32ZI|o9sZ)(WckF8^P4Kj~ z@`x+x7#dS3CKMA;Z8RB3ALs*kM?z+0Ygb1n+Zm%70cYKLWOTT%B|qBP!rm{XqH72R zgS`Pg1n7Q*ceW?X3TxYYXgkqiU=|JgR@6<5jr7-N20Pfe1j}l>hex1`ak3Fk@ogzd z>7^}QJ*0>9w$1HK;3V+h_;7cPEYQipH7v8P8!StPss;xJ`YFD z3U+cx0hR7=ElTvaweyV6ukV10Lj;}eX1lrp-PY1nEl(25ikkXi5J9x2U$FolMT?IP z_crFodD=So#pl+yLx)gxbS~;79Ruxct<8!!1ubFOHu>vtsHz4 zb1Lhb*=DwtZ5wZGX>P0^=&mnJO-?Uv?i(E=V`N-4p;!XI0os#>26}tD+ZzfJeQa$V zd=lj4b&aG^32#!OmZ9dRhT6fwu8OSWq}0M@=u8v9VO9VUc%p;D4x&GHwl`Ph#Cq9V z+xx`il-Ix;Bs}TZrm;rga}I$+S7fJ1GOIdACeWQH=>Oww=#k)2U{`F7rkc|9PMzz%d5u^CXGVyxN{ou0NndV_$^U#P$GqbyY=CR#J$Ixsi=`bVhzD z42r-ut|%`p2Ils}cyE2aRGgAm-wVD~KQ;=TiFQR`t+q5Z*4NflSCp5P7U!kM2iTjK z+jvH%WETNtnJtwU7v_WfiHWh^I=MJLDX*?)aAX9)RCSH)$_fC(@}j&fX{?W(nW?o~ zSW0GoVG+Co%;e{0LqijV;RLv}EK!_RSlih*i11Ey#D@A>P`$jg1mU?k+4A(1C{Js= zMQCCszQxGpnd!7wDJBM*izM;U$?yp5#fpP#K*g&nXTe$U+64>b!aQuujLe(^<5FcA zux?B$p$(Ta4wb0SN(c#y%dTjIK@iZj)u4JwF^bNXX8|}ZEfv;g#)i0C8C^4T^ovZC zq)H`;32+0|1eoqJ6FfT5S)Ljd6daRQ2(LtN12i0W1HfZ^1YX-=Wnw~1ppymc%VO;w z5+hDbh>fNL+34u-U{6zFVt}_#cw%-@Wo0>6@oaf!29HfjOvJUJad8p8&KB1$UA1ub z508$D2%}yDt=`|$R+k&&@8RJWEzK<|%FoL|6Uov*ZW2tm02vz_O`=JZJTk=B$^6R2 zE2j4D{;=Fjb*9f?sj%=VUQ6tJBvz&)sz5+6}5CH71-*84KoT2^t3ZI zIB#&(#L>&g8`1r}-C%fd_snQ78#61{;CN}OREkSEVWx&yx`9e)2yBG{8>$2a`ncK{ zUO0F5oRO8i3q^y+HPzQbj?$D+7fTa!ThGwg1TiFCi~%gazX|{Y{E0vDP4w~g_40rW zxff39oxga^5`=R!>uPAU!mI>;TjML&ES&r!KyYM4n07lBU)WfM+mXfH!_C#j!NTCo z33B4{|HIyUfJJq6ZNsx?u(w#EG0h|zO*4r}tkEQzZtper-ssIjvC>4afKn6@>1_Z( z5W5tySHx~?vBr`_69wkG*WTyM42THBfBo0@zTdg>JTeF7K5OlI&f4o|GhL0iG`NU6!s04vR!G7YGhR=}Ml!1sPnB!UZW-{Qdk^ty=EpY;QShmX%<6 z)2LCYh70X_+>=nyinC6OQuUPi{NJFvg70X_+>=mEAKH~;=B+I^B*@dI{ z>=mEA;< z15{zFc#f{6t~idqtffyr^!Em5=OU7x(zVhR7R_R)16J&$dtX=Vi*FRq$EPA~ zZTh7jeLTs}7f%FN^*L{%n?y2vxI|R}P7|5i}61+!%YL)=0@37mK zz~n8>($`bADIFAkx|?qs*C-(r`q zOMFzB(9g+@BJU{#Ro4r8EI_w!-MU%hCP0G4FGT?ugVYZ-`Zhfw5XhFdzz41M#~;)Q zk{rQ&HD+LHc#Hl4UyDOP9c6#izH$2xPCMu1ZDL?cq)qmqCja_FJg2L9G&$UvLGlUA=nc%I~#)XII!&qRsv-8X#oIE#N9iul!&K z{(kxLr5cymWhSBiy3V5%B$_NSRW)FLixixK+e_TqOP4@St_JET1N3hiQLw5xNuCtb z07X;twnYEr1WrPM&a%Ce&akuW96SGj zPgouwab22h)gbU@DaI#wlK>SIoUV476|gh+k(XLbbxfvf*Z91q=>~#2f`DYclCUCV#*Wr+Vw|b zdK&}5&g2wHP)k81H9N|VvE%o6GFW1*>!FVjcJT1JOim<9D$zR6fcgp?xcP^x9cD-F z@Iz0Tpf7?ju02AygMQ4g|%>I3S7x8$$_4i|!E4T6)wlz{0YaaSgXvlT z?Fny4cgveBp+TM{?kjOYDGDnm6U7R4?&5dYPx?axbRL?2@w&^)YvV79&Po zj&6hEyP!AGUqPJ(|5cO7wAo3h%aVq=7leoYLOOz<04KILZ#TLPnu9@_3Dz!nx4aZ# zJZeC&_#9M6#4S=$b7T8Xlt_>jz}!Rk2|PH@=r(A+Z7YKOIP;cj9-5(8MJ|dXqRxtd zqxmEsv0v2q%U3YjpgMukY_u9!a7g3hVu(Cz7MX<#Ik9mGi5$Ld2N#aMlhNmSr$O`V zy;Oc=%Vwxeq}@o6i^DguO)Q*6?rDn`P>a!^wwn%@BhK%fE|aQGd5gHgK^jEf zgpF#8GtMo}HQL zBt9xUY{Pm&uU?UJQjO;Ekl9QReo!O)}slr3CXD$+eib$G&r~~o0^}J7#9tEaKM_?D}9$Q6O`qp zZtm`$Ubw;PHPnR2n1m!$&EbQ{rxA4lhHnSTKWXDgJhWf6g3zElFIF#Jv;=qXq~fOj z0l_8lm_=d?(fOHMHfu@x`k=LbD}BAaJlv=l=0enEMJ-l0cQ0?>m44`fu!xxWBouvu zd@%=j575{{dUSXw;Hy{qEc0|EJ9?}<~fTyz)b6V_7^L{dV7*|7bnyNRnN`h zwQ8XNbpeK8eQ0OYe2AFyr%%|Of`x&MUzSZ{u!--YUP9334rfagjTcmc=wNfSsK zKbpa!`DfOwp>|`?CDlCQqAfJ;!Oj6T(Uy1Y9rO7*2zS2Rao(X=&fJf#Sk8*&tXR&9b5?xLa9t`s zXCf>pK4+r3NIqwm2H&ZQ`ywrWVWGPj()Kf5(VEJ>m9soKi;gIK;Ie^|rA@e1=aw3`*W9F>wU>w~ zEWS=GRLb=U(jBqSh`NTfn78WPG6VZsjc;F~{JP@Hr8JSKYB$YpR=-vEw)z%W&A9hv z>Dw0s-4u5wCL`%hw?>9+%}vd%>bI-iF}n?hG9XuALDBue+7(1mu1hXbF%kkKYXWF) z*8}yO0KaqMa;fig3E=H*y@BtmZ>sTq&7E2xo)hLGPcbY+@a7UTQz!)pxagE;nW1|$ zcQkivaB4ieebzu;HYg?y!S0NAeSv`~ZPXz7)mRU^eTT^3 z>U(wmR0DQO@VAY-LC&CxA(TK;N_J59|Ezsq4GRBBkpP)@2S%Q9@`AfbnNKm4Ih@80 z1tsP?`%`_t<^wh7{u={9eUvh`N1kB8D65c11H3Rz)Y!S3C7z74ml{JkUsT8RD6S(ihO@uaf7kp+&4H&x=2_lAS^+#~Fj%Ok zP8h*>p7Fo_W`EZOib32-@S{OACKONhOSEoKmGe)Q071XM{{H(P_D`+H>VH^CV5!Cd zCsIwL7oj1+{&`&YF@wBQe}RuJbL6GA5l6n@v@r;>xG2rz>Q6Mlk+=eh$1SNzglay^ zuHV3@(NI(Fb;yE->~U>9?3A%M!w8f_aRnbgsry9Dg`F;;q&SSB1uIk(lDLMC+2i^g zbMkNGPnSDi>J8|3;T)GED<_H3JgM=o<_R;jOWz-2%&_c`FC1y?r8Y@0^^;l>?39ou zjhV>MOjD$M6#M%ubTo9nv_)PjiNZ*+#~Ln*I^*>o314rXYI*u)5P#TWznKkW=0!*^Hgc$IA|% zIg%89c^?;zZpEgE_oOcxFK!QqP)PL3H82&UWxk+Kmrob2@K~RtMV~^@dk6L!Wz-ZqP zyF3quK}?*HBmt@okow^%Qmq7t$LWYD76VFps@LPM0;vBW-XZv^#M11dPUZyeG)9NudMOl}^3`(yWN<292aK2J&;8-Ff{A_MeZ zbogLt6ulzVzNZ0%-Od+sXp85qGQ6bo*cS>^!z(H;Uc>Ixk>0u4%~L!ek$RAx{RS%| zSCT~oM{kVu8dvL%MluG(V}XO{^1&If{8CHXOw~Qp_VV zsuc4`dh^7)w_+a2)1kD%r)d~$c#p_=rg)F&Bu92RDc&P^74>gbiub6J-XoV+RH|!IUMosa3-(X9qepvZ8SE_mf7XnbFi}u@>S{e4h*KuXCMJ0uUQzf zQz1VTbpg-tB;_iibVF+U9DwJ}n_m_>GKwc=Lt?bh^++&9d6qv8+Zo@1GK9G= zrCab)$_sLkCTyvj2jwYy4z1OKNy%>z9}|fzSv)@)&u>N<$`)xBT|-rING=0PQ%i8)jVJTEwTvft zqZDyG&7IU}Z8hzcL`sOr!My)SIHnM!qpb9DZ{~e-xsNZ>%lWMd2r7;JJux96muR8J zaO9Q?KytZND_5>iuego8bbgTf9P~1v@o~ibB(ywu$V|6hq}B7&_}%rFlIro?fMS%O z@I{V{jnR`jY3@)?Ksl#hV1PQ{USLoV(M zzKPRUMGnfXXf|b2jHM#zETT9Z|NI>p#q&AFCm^F_b?uoF*o~pGTT`%Kk%Tfyly7G- z#nCYgnI!*1Viyf!hB*PhoTutc@iEJ>|B`5bQj zI$}slPz)K8Z}R%_$;nAIlFX9TNlbg93{Y?ov4??!FE(3L)kD_KEr7DrYMV7FESV)8 zAo-#OJu1*k!$7kDWXEH4n6iH#rC8mKRHw*Rid?1XbOV;gQeCUPwK)YzJhl2F_9bty z#vjy2+ylN~w3%*##4U6eaT`(tX*?+hXj$SZJ0rN0XaMD=OPoNOqvqYeKfC zyW3LutqmH8nIyBt^>7H^5Mn^nzD3&}&`TDBUZTGPPcn=dEYsfcynyohRG>n33G||c zpcDud(2M+NPw?Q8h!lxb0T+o#*98ZPT%M)St}YHa?(DY*E|m?2?v@YtK@bI^!#}gCLrV! zkN=n?9;qmiN0c77wBMrF{mMqqog)srNq^2d65_XG+v874zFh~>X1_u_YIvW^vMEua zL<=GkvMe5XIFSic8&BCJc^Xp)_r;S=8Zl$Ey&d8CS-UKrlDO)Vs6zPw%0r3=t(V9J zS`uw*1HABDNa87nYbMv8zv~FNc+Apsn)kVsV$lvSURK89c?MpQLl)ZORfVMUhb(_j zC$x}r}q@(Ar)y%%S2mR7+Q}Mx;zCgwC5>c#XAOviG8+ za?PzQEiITuHfP=G2Tw|YiyW-{Rg=V18dRRhl-{%qaG=dBa-ZuvbiLGeo{N)S6Y+wC zoR+1q)hzZ|%j1SwYpgl?P2}<9*aa?fN=vRa!~$w*Z3|YIUTgH4NS+!UL78Lu>#YZ6 zKZV#58dt*`_I?|CMQXKjFXni&F9Ef(wVUJQy4avJLRv~?e1%o9Sb8OwMhI<%R4Z#c$9XP`-8_jp zhg8eR^qaMtG7W3vd4om5Re_!3Xm1CFVU!Rw57q>dVlG(f<>Sj6te+!T-Z7Cp*DDz# z64pW1*i6DguIpk?pOvdtQg6{P@d<*(9n15~ibS!bG|UJ)TP~Nd`^buMoa?m6!)Nu{ zwQE+;&L(dSa+2G?H9X7g;)Mj}N~4!G0CN+_9-Xyh*{ZccK>>ctXJr;q=-kdR=1?DG~5CA=g|1HXB;_@hjO;I4dxtsmU6**R3=9pAjtvi9vDj%Y zWhBR@j^UO%F2EnXF3@uv#CUPdt!?Z8hwkn^YeFLMrWU=LvqCny-E&3Y#u#mCYI5xQgn*mb(dSHI;#F-ZpFGk+ta6}={nuT z&*)RT%R1c!{?|!=<997o9aKg2f_2D!dzgRjbcR0XHc(YlJ$#P*%o16`0Rw?kCQ-^{ zLWvf~OGPhQSc3g*rmYlqfh!7x%gpJQVkI)4Bo{mbD*&y!fpCdj3y3nvAeh;?)T z1=?h+y`6;3d+``O-&ckwqE^jEDc3Z#wUw4>T~(PSxXGobNO|Ik^aO^lkug_Uw53JW z(99ys)V33|O=FQ0E3uO+uQ?I6_6cgUX<%lx-$FUptoxS)ywY;9xA2p6Pk2`rIK zX=NE^3k{bM*w(%@BfC;yhdE`Dq6M{>LQBe(Oq=%ejOt2&on4ib$rK+y)-G zv4gJyYKwy2CiFJ7S%5v4JpxbtT8yptcCHF{#5yZ4sYiU^7=z zZ3^yLzoAl-M4U#;lGkt8xT#W;gyO)A!4XkJgf>ZSocTq?#68cVF0~|$CrL@kF>wi6 zqP>^1p34U(Z>|zJExiho)6%zYGtiMM)#l{Q1m3Zm2kUWuZ;3tZWo;JVz1f12Y>=EM z_^PGnHq9_GR0&#H^4{#+JR+JB*isFet)&%b+E!F_Zr*`I0!=hqX60#JY50+2BpmUT zR=@&n!(V&l-Q@X+VyyasLr0FCI7N*2XNb?Vwo%(00N>SUGpYzYzX13`z-=|Q%s$J( zQNNYF2)%PR^_vi$UvT!kg(Z62*1^G^+3#_j1CI0aYm-)p-0h{|7cYbPZtno5tRr)D zWj1r?J1yYRk`TFbve(;Wxq@NfiePWuT_8-$6mQSZ^1IZzzv(^rIk?` z?8OTUz5IeVhDVEKSxM}YPK1QVB$|pnb|fM$ zY4aA70PhZQs4WJ_Ez<4fDaI8CJZ&6nH5iWv_(TruMnGhQ*{6*E39z2fGyV#Zgz zuM8%!V#ZUFt(SV3OM3DZZ+v;Ihq8|k$iJX?q%BZf%oK zAA}D|@y45M4_9z*zsRsuyzwTxwH0r?;*D3l@rpNI@y5%%i;9|;iZ|XAkNW?s-guW< z4OGP%BJsaw1`>Z!n$D!s`CDK$Y%q-MMtj{dz zC$nPKMK&_??msZlZ0+nUDC;D%a#dG{^MJA#I^t+tCdcu7_=YQ<9N*PIoO1$|XVGH4 z(}8l|FL85|T@VW>7rlp9t(bfRwgY) z$HpfnC8unb=~K8$Nln|5ZXgGxZpql1xy?Y?*_ye1$F5!SRs}-iuHAdGvSqg0j$OFO z*_S8r_Hc!Z{Rag^T=xGlFtQSGYjobwR+R zD_o!`x`B>&k*eBXBW57|O|F-2bj1sk%YT#VaNVJA%49UEbS_=pL?v=uv3rmCA8(@I z#$9$-bMIfm(cjozhMMS4|DclPcdMb&x%zf7efXCuxZk>Y=dKwFrvEEytlzjx)zcqy za?JH>*RB%yj;rd9^b5)wE$YSpaf4DoQx0qKHz^@8@<~&XH90*o<@gp?oMnSl)hCV{ zb8aYix8b-E3E7cLT+hehDc1A$QHp1ME>xdJLsFpCZ3(e zvypGhl&^O2t7q zfA}-q#Z0AQXW2P+{_2H`mo8oY{R-Z{P>Tz1NO)i3?@zpF8+%agA$xF;iag%Aee;j& zSAV~B;T+F4c<%i93noGj?g!E|sg%H-kR~WBa=!yvep|1W(N+Q7zV-Jj?8===_LGcF zPrY*0WN3;OgCiH^t;pyYq*A#s8dqM=xAM^F2q16X;zjH3QsLYC55$}}Q%*mnr-~wF zn?i5iVz>UGf_EjbWzDCO8dH6;kYJjL1pU(>wj>m9!l0>_1r1y)2{i@kw~Fg)fF3K+ zST0pxAjZ&G)Cr+tV9W3Q$^K;b)qLq3F-B6+34LuBD$XKzlZ;&E`R9EZdAO2Dwk#vw6q>chz(@`36?z4<9_J z0(#br`&B|un|zP&tT$+9eaTo+0U8=B6pKKu3QO}@Gp0?RIG(Ic)6ru`V^hBdyY=O= zselY*Q=JT1_Sn&*MsVx3LTCh=J%=7PR1}|q&HBOxg?2-B+33LosbG`o=mGtuYEe?P zr_xKZeAxr~_viqwd-tMpZM#uw$uuO znrfo1Smh=6?bm+*3aV`iqx4{vRhz&A2T>V0lfi?BfZP#;s#;W8s+{#fb5sl!?=T^G z@Q|Uy0;%|;so>!w{CPPqDh*}4GN)okqFrIw(7^*=D0%pZk)x;%naSYaMpKvq6_zsW zC>56c+vqW4;ps>4dl}#%q;}u3JB-vO@VN05bsoqlTU20=svrJrJ;mvtDS z80fr+oxyxm40QHDG0;oD|4W74@sgt$=!V0~ml&#sP9qcBiksMqfqntKX1a;380dbd#RbM80d*K!3@>M0q|w#e=?oUykBIhcDU`C%EE4S3KyYT+uJ{-76k+#e;65 zjjedl4eocvgI*R*0lDz?7Iu|A=q|6QRF^;x&fc?2@|VVerM597$j{5kV)FQLlV&@( zEcIX>#qMs*?GcqX1hr>@tBZ@XvlDYt&u8=Y&!6jPXM_h|4ES|HYyEu|+D;!ka`>1j z=5t&SJi2J%LI8oIg#2^aT+JMfqk7I!$2~g@o>~dHdgbz^&Q_B~3?4LO^i(T{c}`9g zJ4=NC937a0nZ4RhW6vB8I~oB)L)Ha?uC>C)+skdyT=NMd2K5^-V*GR~I|oM;F|fC@ zvqc21b#-gCjoOykoqWz2=;MvtC`%U1x0^L?NWb2F29B68!<_0bSXv=_WOXT|mf0}d z)1@fMKFf$`wP=CMJO_&@Bl`dP)6YEzjGQoa)~wlVc8ytVHZx}yuIg44XN&MzV+JAF zHxfq+U1&9P!iau9_UQ3bpTVQXPnt4qD*l@`efo?UGr>|JY7VakVW1F7){&lPWie~Y z*ulT{`1afHaEFm&>2zk&6cBsB?3oE=a080wmD!6j8dO>0N?BRVo;732_z?qs?a{4E z=Wl=RJ7mgvU-#%aaQLXP<0njtHAOjSYB-2x$i9lf)z% z0{Z2!p@aJV_zlLgeaEgp^&dWN>de`eR<^c6cfD*0+Z#+Gb??7qCehGgBSws5BlCx2 zI(*Z)!&mLQ_V{(+s0q_%TiV#skUtMsb0Slo#6%i8Z1~7gqsCxPjTqefr*0j;`l{pC zJ$erwGi9cwO<8CS(EIxIHAeq7X6#r@>CwXn{L;Nk`!Cyf{^qBC!^cmzcwRJt!PGU7 zpg^M}7Ucx2;fdo%j~LkVyRSR6@7U$LU;2-l{8FbFxMuYFiIqdkf6A0e<3{xVr8^c? zhp)S%4_;0@{cSV|oLG096gXr0)JbEpEqvFdV~0-NzJDoemD4}@$*{EQ%xBG zj5W^)TY~dj5o|)dUTzuKrF?zR43~9|jnmgQ$)g0FQhQ5b4KMNKVPm2V+-z)TQhO_k zjf%uBY@*yKRLQ6cc2ii%F{-%ERN7->D1Y0jbbAGMLr5k1YQJ$3Ri4!|xB~sGt%h2z zWk7=h#dI#Gxi5wWtfiG;B6N*^6`-qEnJjhns+BAB9^cZ-puD!O@h7OSk6gB~)C#Hy zbh)=k5o8k7%d_Nu!PjlYqm!!8^siif>wKJu!e6%YIK-fGTYQ9SIW7zMK7ta#Yn zEA9VPJnR)dVGyQsrF+=eVf{bU!~UA8X!qSQQyCG@9ADw6@76{_pa^@Rnc2V zb?@ljR24N!)3wmOr7Eo9Q>=SS*Fse^_CMX5x_4AXpIy|wp?eqArZRM|>)ulpnzE2frHQ%CZs%xz()L8zbYohx=RrK*uU1Qycs=}JS&vXrSAFGPG73f~k zeWEI?z34w(ech+3qPDrZdb-a5v3aDcqid%sY7wcct@~0{^z|WKP2E=zGU>Xmx~_w& zu%Y`Cotdtas_?C-XF9d6i|Xme5k)#3Rk!*mvQX7cRs504rPjBqzb&UvnlN$Vl$loG zt1w6AK#Y3)oO24LpEw0&iMyw_&q}|w!66&NqvH}&(lWN~+>^a;|DhvPpvcZ*=F|yn z!qdsqEv+3K)sAX=HQ*j|=9Y#Bm4qKS#H$@S*jdj;j+Y6Orq8xyY}Yf zq4?5?Q>P2;C?>$#9PIB&Q)Zak*w170s?E*kSXY_+x5^*ju!xxWq|IA0ckIr}1sD~W zP8Yz<#2oii(eKL5mv#lKG0Xc6zo4-qz&b=@zR<8+Mw_#IcY(jEsI`v-e{)3{1 zldY{i`rXmN)@s&t92jF190^H56+6KfMR_f-VnqAbQ}=6A(nx*Y{l`w6%s*|5f?oDS zPIa)gK*mtq!NzVrkgfo;1^MVddTN5U8L)0cSY%8>(<D0qy5CrQ{npIH2oxg2N9r zX3m~%;W*!U!9t4FSWIpt;$Hf#EinM-1G)i~ui_e@5$JO^_aOop%*|)cwy~Szv}nna zrEKY1cMsfPIS$=2cjYQx zOAJ(-2uxuN!q)9OsRq}+{RdE>>&Vfg;ubXXfEWEYfBsxMTZg$W3q5>R_=C2JI%K>~ z7#e^=d?*Blie9-W_k}wgI?Oc?6PHgs*M*DNqKB>& z`qr(PJ9eTL+1{*d+=A|bX@Hf3K_E1djWK)askqF08C%A@@1hN%QE{88G}*SyZTM&V zj-71h9^7Nk-o06L8*u|#I2`Y~05nby&*fPA{(b>#{MW1v3<-~r^_de-h;xW^97 zj@{5@CtS8%c|F(->Z2qa%^MVCi;Y9fOl*8Ya&r34U6_9R^Y&8}uU$KKY~QBYwr4x1 z+d*+jvYQ9m?!%9I`MgJowzSQgQ<66)CvQ#9#MtdSus?6#zN|facHstWn_H$mi6=ZM z&fzrc)&vHJgwniAPRrQ7BQtYbW?E``S{jPP(JIQ#%gfEl+KZs6?b~eZ=U~{VBAx-g z7M15hFl(YQZ#QG(*^a*2nYld^Md!ApVK1Soa4g4FwJA3{8@HKdg?rE)+}y;|Rw`si zPwKe1L@m{s!|uBa^~rXj>KHPDr>19QK$SgNm(Q8Xaq;nq z+9b3;4Ksk0N2|AGY)L~Iv(2e#8Cx+OcJJvmWbAaCIWCLb!JwrD6D)DlVmLRAX}2dO z<3FmPm$oGXeX$KnWTb9R!HqYkVqT_y`(vNs<7eABE%NZju%q$lI-)#tBCIwkNvlmH zwq#;Lf)-PGGn$i*;%VvW&MCz03>Vq+7uNi6BQHaWTfuRXec-L=Qh{YFi-arRglus$ptT}Og6iGL-; z6PkQg5#eDhta#%Fwt%rT!ldT_5Fzxxh)3>`PyVWGDl z77+DgOjLAKR3yn4&a(CEg24=2vv%zoKYxEezt#SJSf#$+OBXoI95=M@uRnJG?)#pI zV6$*ov}`3-QP`$U;Xrcih7exzp7RQ+kUCrW3=R?>U*?;=JYcQgYF{@O+v%eR_x!#` z_Z~m~+Hb^Ub4OQqpH*}|ux>ral4wX4Mch|#@5(auGJh`*kM$uNLN}}n@Lf9BV$#U| zKY#a4w{AUt={t1v6bpN&#U4JZQ1THvllKZci{O63HM7i%^BO^H3=2n1$H?%F>;0E6 zw3|9=K<^*AcIn)?>vz8l7&>OkEIX$KOYlfr?yK=VDWn4G>A@+HOR!rmL`TKOVpO9x zZ3tZH;cPQyMDHIFIm0^K>HPJ#KlU9uX5v%}`*|*|c(l2DxFe`h?ar1y**ZHeYK2(2r^<&(j zL#NK)^!TZF-vL90j{+-xB1P#okeo{-Ql#Av-xwMav}W~kcW1j<6EGOxcIo&< z+mGA4|9s;wW3H)8=BMfKK=-~r1|kX2hVrJ%8xdrTyn^KWyEyWedp1eOy)l8mn)(fgk57Bk<6J;x!i_ z>mFWJ@ZvUM%&@`zdj9hLw_U$Rh*-N%KK{tC$e%+?^j!)S#bj}`x3jUBjRf_R5YaVs z@PK}OdiVVKrymUtakO15QXyL=|3bVg;paHm+fmpi;x>`;ed0vqd>=FBx8L+TL^)`R zrN!$u6tK3kv@pjlX3k(U*v#S?Gug}o(hgG*JVn%6Sz20Hm^1U7+2%Yz(b`r}=wGb7 zUc3x9Ls{B9iq%3S$eb5-+Y;VzBdj$SEn|uJg{OFVod&GF!fshumj&hOToPN&VjqvE z#5*`K_VLaoobm>5Gq0dP0neqyJ`Z*CFgBS5$D7AWmxh*VEs3SKbg`8h_~Dho`mCsc z$}f;hb$ey!`U{&|4t7m|sXFtw`gJlNzH;pq*pSf5_cO0kj0YiJ48u)pufRq|qqs&{ zQ={CzlCiPzFT|e5Dw0-$JU5JW#yb%zA1ju>V)>KFr&#_tJWwouVY(}pzhe0-mcL^8 zE0(`v`SYTCisf%?eJhrKY4cmL{1wZ;D%N{dutAFDPsew*@N?4f8=V>`mcQcjSA718 z&tLKRgX^OB{1ujdU14!_Q`J|hn!2L< z6I5TSYU_$JTdCTq>HsmXhUzm_Jzdf7gH)fY>f@U`KUaOCdPP@Q7|=xZk*bld@UNw> zsy}{rJE}Kz&kEzaFx6YC7P`Wm zv2|2$sNU5*ySJ)6Q@y5Yr7Ju*rGcucsYhD{7*I>~is}>HvxhO` znyKokKG!`vw76?^RV~$*x~F#%EjrauRa14;J$pJMFtDc$t8uv{1rLLB$@HP7jx^}ucs%Pq-H$BmP zs;jSh*5J2oMY@l54OP#YPT&4i_kpg7>RGdCTc7CO*ELf;tJ}x_65>JLP(Az5YV$+g z+q$<^PpfsDnQ$4g9xYW*TMrA${zvyJf;#?te~?rB=^|YNU0cOT7}3@>MR?zEwRqd+x%;%fDZ_dhPm+8&oe)eXGW8%`Np!_6NI>fBo9E zt5<%%eCgta^XJYMoX$Ua{MeC02l7yG!2l!NA2;jWR0F`SpT2h0fH+f-f9k~XqlXV3 z;1!?XuLLlYr8Ip41*pb5rscO{jo!icy7oaOwuU@-$ zy*|FquCglyzh9QLA^-^ydhOl4V_U}Aa{}}Gl`B`-)!NrISJhY8@9gsVOBZ=VIE0!a zgn&n#nVxorKv0ieR{vi2iUwb2m)ON~7tW*Q0&wEk(ZgswSBq*tB%gsG4q}(;U)JE; z>;j{&8@_+!5So#T0@FLTZQYWZoLB$|Vc3NR7u6Tk=h->jT)O-5V`#&{{pj4iyLXaC zDM<;jrwaf%dybuJa9(pxefHd$0yH=O)X5Y0_F?{Ql-AnC@1CNKkBvH&pMSc56{yeD zKdU~&3fO6u&rV(BUq2#$pWi+sZF6#Bd`x8ciIXQ!oyuqVn$xulG^f@1XHT6xd4g_F z-v?WrnC7HU26*4vggC0NaqRf<6YPZgWP?-clk5aLe&N_r`P;;=2TvRdrE>wXytMR@ zBS+a$^)b!yS|>Ee*)jFe^G6PgyYC}5JpkJUfC~r@3tb<4@ZceKNPSp+q|Q?%c(8sdsDk)ZUA5h23ly+j$i?r|)m! z1oFfLaAqL@2uKJH(gYQ4%iONsuHI2^r+Nq5er;Q(^kqa6Bnf_QBq*+-8$eeyTmM%` z=*El;gl6DNTQlosvaRZjTj^l>gCd`tq~+ho?Kvk_9m+P`58X(y0SQTjfD#$$nsm0M z5Xx*(Z&9bQRJQrP1dNZ1i5ARr7H+obc6dZYY;0mOVu3IKJ1`~EGq$F0VOv;gaayW6 zwRm$1OJT_@shIfo{}LaTi0h!eM;1jz;OE_FaNd(swqzm-CMWkm76x+n4z{BRJdlTpQue#6P20n0wO!eV~NDw&j1>MV0j4S*?(|%RyO|+Gl*+M_sO`k z1u+V^4+1Z!2a=KzIj}hu?aFw95Fo@cWM^a4*?yMy1W`0wx9>ny4cmQx527;mVy+|3 z0l(R~6C+T(EmMR3EY94{wm;jk6ERe5Pa%b^sIyt_pZoIi4jedm0@LCe5^ zY=zLrTetBM-I|Fe-NIx+^vsU!J9Z&(1~D`H_8&ZS=*VGq`0oQCZG-uol!!PDwf3)s zM1)D8y|`aWGD|*zupRV43ZgI4(=yVxA^K<6p1s*v7kLK`(l(y8BO@NP@q~EHL4+Hy zcy-*r@#u0y4dC)*VthhEywGk7g?vDPy}%>(2Sc}KXJ&e;HhR;>@bHMJsAv}bUo669 z@P8Jojwz0fV{t6DI3Bn8D_)zN1SJr4fm^Wc#XIoNWwdV#qAwC+!oin!UlSOF*NyeW z;olgxF)VCTxH|kEf*TNd5RKRgMBt#IDan`{H_;@tPpeG;O+9i`XprBE#q%x4QVfB5 z#osGe`K?Ao!kV>f)&{VEqM%?3by)v+1HUf<5fBY^B@$5+JeneGW61h|H7h+AI?Vp9 z@3)_Lc;Y{I=3eYcC5Jq{)LzBQyqUM!hxrz*T(z35e&mO{1_t7$!NKd+U8~m{EL}p3{zd9VY=LGWTf`RshwKg@{ChF40)&+Lu7H9Ret@tE@MgU| zm%7-`o;G&gXkWfUS7-9%L@=Kv7Bnq zEOfH9m^8e1kB*p3Cp3uTI^P7wvgv3YDhbNY*iCLyM3iJKcWj=BB5 zWTA_bqxFo5zxDsQ+h?s?G^t;+TJ>r*8@%48J&>Zr(IW>btc&8hoDgA!JSRJ&sL3kVD%TW5r z%5pa1HOCA?NtLc&wQck6>x~=Ks#(2y-G)tDeEjv#!)MN07BCgXLZ(isF@;S%GHp6t zOrA7p{J7D-0YepSzWB6ti{?!m)~{Q$R_)pinlx|qX_ua(X3p_gyD2Fh1!LG?vmtD- zX5fuM15uKtZ_i(U`uC~lD=T03Ft#PFNm+e0LwCzV9y#HQ{H(zhoesDXuTI^D zufG0Ho6o!a&~NN4$E7RQM<%3g+mn0X@bS0V+v*nV9oFLR+bvqW^Y&YBG;h}I)mIxg zZuCln2KDQy>lM^*)VS&EEn0rszUxl|Mo+a_;Js#JOmf<`-3SIfb|U{wlg5qkKYU-) zNZqjbl?Lht>Q{UkHfr3YS<^S(dZ*RLpMKT#hyDm+aa`!NdVNG}O8T~4*?EZLJbC)e z+4IesHfz@O)h10EH^%>fY1;I)*WY*xdLYW;^Dhxn)PKlt6KC1GQYhf27;S3Cb_B8Q zKSVL8KwrGvngTLf;y-n(1Mj!~5Rn;Qbm-XSn{R*Y*>~{BF_ULm&s*T`y*hBirs(*j zR77xQA%c?!q2g`n;^iw>d$1mRzU$tjd-onc{P5$?zxM4vVDQk9qsC60ikQ~9u8R@6 zvvyr*cyxl6$A1ES5aF97T)?m27|lkzs-B@(4GKO@M42Bd(ql{EXiMC^miZ!v5Aml_ zv06l&A#9D}e-9p(Zh*JeD_5`I_~RCe3n7lh8c{Le!n-1P6G3b%coZ4}v7%xS_=vzu zY~5M3Z9a#-eVa!BQskqk8xB^vNRJ*C!3oQo5pxF7FGAnBJJ*1v(7m<7Y!cv~7YJ$WIXkC@haFvb0rYWK}sx9{A!Yj!vH4l(#kT8gEx z81SQF$Sz#sJuYL}oxIzoVsr1@zJ2RvrRClhIurJf>oSvGSg0l1TT*9OHqf~Q_S#ir z>$VhDo}$!Vf#rQg?IpR_uKs@6U>TRf8u!%;uoutER`qk(<9un9BlqI@b7#tGFT%*tsQb zw-RRpik-{P1Pu0O$-YwTT*aTO_;VG1uHw&C{JHSyD*jx>pR4$D6@RYc&sF@n!rdo3 zvdKlM_;V%3aY-Ah40}`Y=W?Iy|EvC7muf}eRDW*=7Wv=o)ghh-AM13(+EfEo{J&al zN4uq6)78*Dd2%3n@#OCB)d2(iNxct#n!Gsr*ndcN|IfeI_QnP;v>(~O(}(QC;wGBv zn&Rg8^iQY$+p)44ETUD3Ivy3V?%XWc$msdVjiPm4}2X{T1H!T)~tSK^cw zs_LrGbWfk2@a$d^S@XQshQ+0%XFxdE z!9WN4uk!WwbYCJ8ht5@lSC&Hwrx&{~TNM-*pSBY@tq){v4fn8{G-}MWx!!@{iK$z+ zr-6+u;A>W|SdQeUkWR@c)u5#1I=e1d?6z!Wz{c3r9a#qs9XgPm7P4Ua=;5Pg%=ZqC zO4_n*=k5}4O24{@@EYfAO0>Piec6gNq0uSZv-Tf8cJ#pRL_hnng9i?!Cf)eROi>-u;J%+BMv+@of2TyumTEM(X1Apy3 zYNo4Sgf@M<$S)7hGi0yzTjfhhTal}AvDxArq(xu8a?QH%#Ed<8RKphei`O3BHBNNm2KyZFR!Kp*rLl=(g)uVgw z(N^w(aa*>7PR4WVpW;;E+Y;qpov*TCa z_MPOkIy@zF4@hOAw7}W(bOXOtB1iHvB+~csUA-naEOzs@z59=-1cgK;K)g+e(}=jL)!xF zf9w8P+b_NuV(qamF>`mWRMvnPZC9=$X*^F!%6wf_=_@FOe@J*tQaZ?bM^EOTIe+28 z`4hV%+$a6i{*#Z||1f&qs_>MZ*?B~2%P$Z&xPC)qmqzw}WD{SvF)A@_Th_iq$4}%J zoV$4O{K?!TpVvTicc`Kkhcva@mIDZP^D(p>N$L?&{JYq%n_-OQFFzh;jp`PM?G7 zrw{K4aUS2}lNK#neg5NkSO2IjdodwO2nV(6F6Dm*?JhY3O~bPjB^%D1Ie+oO=_5NL z+$Q||<$JHc)uziJbNA3Bbn7wH(~uj^$v?zNi-?L#PTjg|?>-bNIEwq9M%2Q&{DT=` zZd3bw{_g9|-u~?8@pD&2rS0B-_&GST6Rvco`2j}6)#xrgYFeAK|?qXT!&NuyF1V60K84CsCC?CBFZ>0ur-`gdyeTI0rV zwEbzU)0&v{y$6myk7aiXZ}XF;BS%m0MxQM>d2mnKx+OCQbb0T!di9#N=`zIHYh&8( zeMe55E-hFPybd2iv;qX5K2vb=@V;%afr}>h?$okby#`I*Y2Ro1;$ZEzeMgQNuoAIM zCWjq4MiU7kEJyNoq(rQAn%=)-t7i3T)qmrY9^>Y(irSiW@F?b>@f)AnU3TYRiL`{M z3U=z$@xyt$x5lqu<~X)zr&f*Y)vDL*gKk5umWQS8-hcGO^I!uj?Zk=0dAYkYk~jG; zu^#o)7w9o-IkUV5#&90+MsXSzVS+p zYBd|R>ezSsqIKGBxrdLJk3DxLO&cD(a-rq8UY$Q^R@cm|Mx)kU22NWP7`Hw5!14TY zyy*hvVcB9%gs?})t`p4f5o4q(NuHx9k2j6Z| zuST_MwHm$s*>@wX+=AmU!pAEn7r{q)HO#8lXwbZMr=H^+yh9VV)?ZdD8PIPb&icZ^=cj!cZrLenp{5r?7Kc{^N#F;$4-_zuk>R?fm$*)V@sqq0}J^0DO0d%n|EdJ$CISI zbtHLmq$o6lTm%Cp9Wvf^N-ciAj$WWMVH4wxcC2!-QrH;pD;|UdY;25v!!iLI6;aOG z*XvxiT;%f)6I|=kEL!Xv6~KmWAfC3V*!96x!3GAHE|=a!=!ulW*~)_XTe0>c8jZij zz@E=C8SLwWC$Xz$dlhcr?RB?GXb*S6wJtfcUpz|?^Cq?27jLgrub>oz7;CCB=tT=m z>2+B)OcrM&%_(+OzmFgsP!8@x03pQ#>NQ7lIMSTZ^XKYkxJl?a4hFAq%tu(K7s zYg05Qw6!I%woOM{%&r=G=8USyMrE-nruCY&rNwMQPo5}0H!3>bqSs{f_;F(QHx)hR zH^q=QItNe;dBu=d40*+nR}6W@kS}rgAQ=&gA+H$nWN?)=H%cBL(964G$iKL+46n^d z(?Ny~KR{3nc~i|<#gJDF`Kp=XRYNO=ykf{J9(lzhuXyAYkG$fMS3L5HNB)IIqT-QP zJn|JgKu|pLf^SuMqge6Cn{Ey(9{H;I)T@S8Jo5jqd*nY;6;_}3M8}Y7zJaQ}s_5Na zI<>ASxEj*X7plkK#~%ud92l;O-pi!FJQ+!U(b)V=7q`06A3iy#)98v$evFLuh4q#{ zrHlAFsxN?_at9ZMg*F;o6@7b9hm7~Pf1tm-6H`bRd2b=RePN5h|8&TK?^{##xvH?q z(!c29#;^Rs?V+x^t|;|2klH#kL)%n@ywC)vM(XP+%*P@I^x`w*K zV}lqn?IZX8@j)8g0@?V_4Iwee&wpWR4d{Z~nb@?=GH<`!etrQqC8-4Q zy(BMD9-|jx6XT7T=at6BmCuK~KnJddxgq+QQoyIc6@sMkky3jl)_I9H#+PCxKI99r zQpO9)uq`;8lzLv03$7XQAx*}D4_O6lP=H|BKi}S$>AXHT2%#0i<+RU`Ws~<+#jvYa z!i~c2x*HLJ*e3hcprGD)^8l zqvy}V+gBCPc>Agn+FtM>^*esqt4qvOgh1(gjUwOXIM~}-TY(R$M++{x>>i~;60|ls z8WBikp}~i&5_%T+kTUae~B$G(~elj~Q)BpHsU9 zdejKhH6Js2)QI6jP1l^zg9lcA#AMA0J)ocdIZ%PQX54Op?$cX(ikOJ*`3rycnT-DF zhl;I|vNZ4c%TGV__)cD9f*)_p)J9b+&RDjX{bKYtUyBuLD!OyW=NamP=UoxmojZKh zPR|mT`0XXpf^$ssT+EgM{rdD4?f&L#LVxy2d78f*{b6g0jV!y@DuQnHZu#i(q4Nu{E#A@Z1ut%|9(!NvD)IMFZ2B* zuWs3Q5-g(74Up4=F z)zFG}Uh&SC<*k;vFQw@S25+_Eo$pft54+4p`2WV7cX>sna#de6CPr%$6XJ=EE@;x) zg!s7F82KtOAucvLDl$T%P$$I2L`O!1ZwljtYFtG{hHu&!x* zdauP>Z@!LiimP{9y!rZTO<(0#oNCs**{h8kHN-ddR}CA~uP0wgRGT_PN;4dZ)~;3Z ziq-nt_>Y=ek7bHZ?ON(u>e^2QF^bhLt_5-xtHbIR5|5@@?SJdkty`~teL<=D7atqE z@=8Mxs92rH{Gwr_#!WcFRh5ZffF#to$*WD9)vi-Vrol9A_FD7T^;fuf)!xe%v37Yi}hxGT-BZW_Uk`j;Gn@nh7KD(V&tgbMvoag zZv2FalO|7@I&J#QS+mV8EUm0qrG}SmH_)?ryA9|?OWZu9 zb_;Y=v;mE7GwL-$n_HmQZ0)Gm=A-r*p}o9)SFT2ZC@woHIyO$0EjnH9bAh(B0@~hj z4$v+V+6Q&50)p0&=7f$<7+PY;#E8l0=Z4H@#VY@`LF+;Y9TOXukeH|)UTVOnO*f#q z@VQhnj;qcGJTN#UG>p*k35nVymc&M68BZ9@7h}AGL3vCVA$`Nfa4KF%@T6px%tmG# zPq>nJG=8qsc!8&$3k#2miHiq3IXQ);WG9a@#!oFF-`)XuNq>*#=U+9XYqLAE?h`~VuVMLkccrYR_= z{9srd|IXouyw*u-z+F{OaR81pZyAqaep#=f950;`TU#Y3qxmJ^G)V|fEypZDK~vJ5 z*Mr3@p^if}UI}e!Q5w$Y*t%fRar&lq*dm;GUv2E8sAVXIl}qeCS+W1vGN`Fx`cv0IQF zPKH{M%GE6LN07r^F?*t)6WF{O zu+&)<=_^2Y?a9j7xBuYbqkx*vR?lYU`{Z*hI!!5|cF6%2-L*HHqmQ37pUq~oS@=KQ z07FI1etx9*VG{M(<}^}VmX3PZr)SSHo0Y{+@Bl7rnE5L+?{H%Pc>MQEo zE3g?`M5dXN*t>V{v3m?@I*s6^ayA-r_(>1g^T?$tbv58>!1wXQ8i*6SLir*^mfoX> z4;~O1QFm_7+{!bt9zQ8%fW3xcsJ*hYuad+n1BI zXZOzS+kj0?Nzx{8?4{qYVvvEockfU2pX^=^@~b0+NQ9`N-KX^huyeBa?xsG=*pj+A zS(_LiOLGK@-?(`T=s*9w&+fB7-R|AJD-whX>1T|k?-kOwaOt2!iaB-z((nCw|Nesq z_wWDt=e@gkcmz`k<*DI9d1^S|U{iuWi79#&;%`Ix{Rf%{$LESy;W-y;HmbVuX{Vl_y2#9SC!?r3joV}%%q8Plgu zo+Pz=7-A9-g&=eXyt6*kLkih=5xiv6x%BSecJ0zpSpt+nx~v7HEP)rL)>W23>BPIr zQ^3SPYvn2Mf5lUPUWU#}S;|d_o1~y99_D5u_Jfb~1bGT|Ltgh!5v11g-M2*sXnjWH z((#%kmqN4jA#~+n_sL;oJd3j-tn0JS^#ONf%0*NgL!xdGk|u?g8PK18{>7I(Ko7xt z2+$Lub+XoVYEw*{gl=FImneS=+`Lgb$tZQ3A6{v2D!oG4C)wS;?M`s0{?1#k zH*Jh&*RENkMs;=d>>AKsNC%u^{h)eFQk~-R+M(eD|K{87|A)P=fUYXrwmj$D2<{#v zcmgDZ0D%w^0t5&_f@^Sh*TUW1T?==2cXti$PH@ZXIoCet=7y?Q|M%$b(cNP_{=fB- z+_l};nrp5S1%0J-NuDr%Tvr!o!&!H^<{Bq%JgK}{dIq*UJ6rC>mKQ8kn574o2>H*v z|IfVt&%DPbqT*>dFz^54zWbm3{y+Qu|Cjr{D1Nm4Jb%qo%)dxL(Lnoe_$8=VaB+td zF1UD!k|FlW^n>Cmup_^vV?#Oz;Iu7clc)k3b2tr(79;fYkIPN_1Xl9a#Fm2AL& zn(+U?DD>C%Yxs8@pQHQ%|C-{{M1Il`r&L40PWh)#fLq`g{HWuTpklKg?&TZxYSuYx zetzqM58MW|0r*a zi~Mu>I9vT-ucwpd@^P2unk)*RXw5Y_%f~E__bma|@rB`25gZ zKF7z$4WHcj1mIH+pSt+8!RHUn<@-3z<=1!3B|08H>F~*gPZ4~=G}ky)HP@t#@#&1u zAbcj_vk0G!_#DLNB0dlBi9+2Be3Idl1s`90O5jrkpT_uf#%B;dlki!D&qjO>;&Tz7 z2W$;FTmFxJ(93iPwSWF!Dlcw+ErIT(IqUI_T$)Wc44W;klZR&DC*5W^8P0KBvg7YM ze$$=4I=i^I@>1>^HycEB9-(TDKXa1G%mLy4&CQFvwNUkSy zmv3L0-^NcMZyLNxK;+?+Had-#QPYv@3-x`x_z4py<;6c8UOeFLuw~ZWDex3^baHl$ z6E8ucB*{{w!g~m>0z3jeb2;UT_SD=^#$!XWh>IMOrAVDFgL~HO9=Uku2VaL#@K=HS zS~@A|v6&I2+%jg)?vW?2Z$Uf?ux*#nOX$U;gSE6Gc*o}C;u<%8qNKi?=& zS4%CDw{6alOqe8jYB%?6o)9b+5*A*yRz$-l&BZOaJ-BYPR3dtxqVW?ZO_3%;mYiO` z{>4g_t6Vdpaf>z`x&Zmtr?1iXSD)UHjpX=IG*Qx&X)|W^%4{Iq#XR<7H;eK(^BA2p8tI&w%$hTLzlE^*^0PM#)X_B;gwOINDXw0+M(qo>SS zvTDP&-TMz8KY8Zd`3uH{U+2$4{*rFCGg;~kS##$v3h`zgdJh>leZlhe+x8qhcIw>4 zE7z{yxOwZ=%^TOXq{#m=I+2x6<(9?MH=tB_on{^X7&c+nlGU4cA3T2M!jy@!vVJbU)sc>e3z zQ!53ENQ5e7_woxaSEF(J-oqx%UAAH8!4v1M+`RMP@l%0M2zny=HIiJDR-lhkx@F0g zKd?;I25ou{nJ{PBhFynFUAz`~|M9aIuiw0T9~Je%_@GCbm69UTWXyp&h1YG_ZP2(` ze{R@y`1GY4cOE`{@%rui4+U?LBl0c&58JJ2^oByMgYl=?UIbWf8~xv-~xWrYC)y1SCV$N8n}dj2tPQ zOM9L=Rmv2}C5)P+F~30w>=&6brguv#N)Rd&kRJ+RqMX_jj~rk;%9H`LMpRS8j~fRy zkQ@C%_Uawpp*|R{Cpf08?Q6UAxz^d6NbaHLF%E zTQbN$zqd!$Ovpt_F-0DRM!o2K=uS1etukWa2`8Phrn zWzZu3T)be;jLBn%59rmob>li!$`<$c&236ayL4Skuif6faqY@K7tWbFe)xc%9h%p# zUcO{N{yf<;A+rSWEHO9j_JMu7wr^gyV)5LmV~6(X(z;>I3L!=FBfB&y5~CBGIX>8Y zZ=E@L?C}0wTi35#JbTi}0o~g+u2r#A0OT^HPM#>f)yQ<(EkKCQojP`K_ttgG=1&_t zxM%w&wJU}M_~y!zK2_3$EElr`+w{%5k+-g2xp4Z}fnA$cEt)xgNU!!yYE>xd@8gj< zUCJc(g41d@pFDbSFY?Bf3#X3k-MV(ktO-MVwQpRrT=7EQIWnb5p4coJ`}qxkiJm^X zA9>^Q+2i}SuUk5M!jPVA8&)eDR3LX&vutTg8tumWcW++3c>3tx?W^Zc9^A2h>8x>s zy0@xVxpY825BGE_?0Kfqu7CUx_5SUv7f&ACxqcC%>z2$IGoVZJ+7(I^^2(kebuuT3)J;yKJy#Mr-CHwPNT*%^x;gOL5wLlw7 zS8Lp{|F}6Tw;eij_0HoLZ=*h;4nKbW{N?n^7Og}47Q|JTxO?~pm8;dF`_L(i*6%)c z;pT&9uit;POFKtL|I!kmCXuSz=#<X&cmiI*|_f%>hSU%s{Di5I!C+yE1`B<^#(>f zlSlqyB9K6%B7 zC0*|n9S7Z{>vu5x=71J0TeErhp&ZbYmm@i#W=++Aast|CN|7?vn{*yDalzVM$J9(w z!}KfKCE8}r6s|H(LAR`!f|VO~=r?u_r{MK_7=Jap9i|{xf{c}#*&}ECxq1JoE0K?6 zW~0JfHm=cX(V)9zR{3HAHt#lM^1^kyuxPLx-+we$fzvNpGznvtBxiS#(p4LE>_2wS zimeAvUq#k$9G0XJZCI<_taKi~5)~s__ZmKRG1ugcdrw}z#kQlCFju?dHsawMShhyf z&I8BKUAgtZsmr$?Jmc0N!rVse8&ra%sE2pqkV@SCrY>H$>&RKzpv(~$m`cDJfpWF>)D@o03SV*OMt$PlgG=J6B z{UeFe28O!(L9SGYc3l+6WQlpL4&yoHOGui3bLuc5d-ui3iy@Tv1xZrr{LbnsK$ zhMzyfW!Qe-maA=Mk9<+a223*-YzmakT?dHWvyhmD&uYr)bLYv{eT z&Di#9>*n8{QV`GW>tDQV<=Tx}b?VuF*qDjaX3tx+WZCi+E9vR)@JhpL1eM8_%coFK z=?c{&nzZiJqwk>MW5!ROI%DRn+4RPjr{Y~{C?1u3DSCJp2q+O6UL&GO%l2J*_8Bl3 z#8RX6(LX^H;P|ejbn5h(bL7rfD6nMN@alCMG;P(cBOjK37=Qfg)zf^gKHy^!58LFa z(q+o(;g!E|V2RKQm21?g->7NxmaW?uZGN?G>F@@|a}JNtH0j;5dwTm8DjFOTTE0@% z>a}XujW8m9)vX=#tj5DHJ|4lT@LbOB>6Ncw;iAP#Kt)Q0X$3H?;s$8wk2v5gUEbdr z+_UA(<(;p9pTB5njo@F!f^d!1`RYd{nP1|h&^BPh%I~XXfRt`L zliWlsdCJrPSr0iBrPp1bD&V5-qA0 z9rjBd22|I$N*RL}m?&d%Lm30TjLq38+NOEop%&lpg$Ad;HXzo;@cNg}pFVzg|K{bh zM|W@FLb`p;qG==hv~N@`G%&wsX7lRG3pR8S-)?;U^7&)byI0RCdt(3ARr4ne>Cq}8 zykuc-++C9e<6P*DjhetY>RvT*xb1`c$~Q%aaF_G5QxSb+;h?<@1Mkubw@)b@|l( zEh}b^L(bJhi{{IjDUEf5hOqI=l>PMK?aL?kZk#{5YaKG~(Xvj3;DWicNaIu`QffBH z-e$g^qTW1z6nW*;fi25tjp^IIVU<$;-ckp=NceC`sX0M3^2hhDpFh5P^_02pT(e-} zpe{{oltl$HvKv%wQ))bs^q+TreETZ7-oAWt-^QiWhWBh$r+l#jp6+RrCsMb4W{Ugd z?Vqdwa(#05+L?n}SIipSr(OL@CH(S8Rn2!n3e6d!kq~93&mP>ofb!>!AJDN;RjFyp zBv#L+fPVD$ub)4^fBXF5?TbgZFP+%4e$nK?U7J=94al241G?30QVK2lU$~s1kibKHWL&fti=jg~^QvUnbPw!njb71qIGe-1mRl8h} zuLt|zY++eSdbh4yzF2-wcSlL%Uo8IaPjo8UbpOV=!`smMKiWi8 z2u45s8_5rEolP$iHimgXH^HPcfe8 zrRgJjwp6_oGfDoT@0-^&Csa(|+lQVb`tbIpz7FCX7Ut~=K*oIJEU$`3A(OZF;rjil7BVcv6B;imHH>HS-mPVU=`_1v#x z<7#CBd}NzYn-#VRhyCZ(vxkva&K%mYX2Im4JzCYRSfWs#tm&aVP}&H}B2VmV+ytLJ zymRf`(cK%C&K!+wtA_^qdc>?~9kSQIeZ{8s5wCrSUcYdB-Y+t*0 z`sjY0n$;>_+|SI^u0Xi)?(OTB&!0TJd+W+MC@|J8nK^b~*On2LLW=n0bWiK3mAC=F zrza2Z-M)V5%+Y<@AUJMtk2Vde;tWul4r^miquqpe)ZN?HFP}SkX!n-Yiy_#vZKLX8 z!G2!ZGp4cYZE$MeymR~JwM*wt9ofHQ!-@sd#}4Y*u2IeMB?{-w35AHYqw5g7b>-6e zGbfJh-?@3s(z#Pc5A5EyQBA0A@_A-bBcgNXk|s z@y(Sred=V6`l8$W_UzcYVa>9IvnG!o+`CiD22fK`ECY2raa}C+Q{={VtCugCKXdY! zq5ZnIYZg&8tOTT}q!L|`D3#J{kxLfNn>BU9=%M|3bZptMR;AG3!ufJ#6(MS#L{pPq zyEApt_|d}$_37TRRpYu<%ZCK|<@H2))Uk=q5B1NW-5ol(f1e(m+qG<5w|d1g!A0_W z<;P5TE);3Mg4qoWp{T=O}(I%O(yMO^QMjJ)vjK-e3=qO z3;E{BnFadCWHA!DyY{GN^(x`zLqm!M`1yKyWOH{*lOky%Q$LAYO=j&O(C8(K1r#pe zlLuczISC*ZRHtThvS^Qr7BMkmS@A6(Vgy>5>QCHC9_J&sJZa&9T~lA$HJi|#=E$Bc zi+jfO>A)ZV7q#n)j2Yb0rQtWktSOBw`w;3{J=IGR&L@HT7dl>)W-3BGwAV>3r7+aH z*59EOew!e^0N0eNSm}zPLym*nkPB`_&_B~Q<*gaeMdMb4|M$^sqN2_ZowbwhhZ|CV zZFj8e&_C(S?BD%Q=-KRP{y`V_U&{R7E)RH5;voKyeP9-+Y25n2()zz(BBvEyGx#6; z`@dx>_f*B>zplxTs-GQ9<*vz}Xs)04<8vCH>#@FfO|eyTO>tCnO_g19&Cp15&9*~x z^&E@OTzuAOuDOe8uKt@e*Wxg=Hzd_uw-(S`51-Ink5(!bF?{JucbLA~qv;?fS4O@1M z)!nW|V5P@s;~nUwx$re;^T1#D7_{L%meobS3ij;`Uf%lE<#Uk}k zU;uWDzlz+ECT&{83x4@fkUgaFu8zG5W+xoXzNhNTjo z5^(|1Sh-f~-%7<63R-;zkdJP&iY1X`@W;2tXQZ)slLW)eCmL=x! z%ne0Ip(267B}dJ5a*etTo3?7-rAMCuLq{U*%()8|FI%~W*ai|~?LTNIqc`nkhOokb8!Hjg~{ z3Kl6AQnq5%TJ@Wt=$`!sj~F{~+N}ADk$B^l?Ys8w7v_u8P-b4Zc zrn;|81r*z~b;s_13>-dY;`BKSm#$n(Whj$@5Q_vMfKdQPaT{j5Tl&q@H?B*uxsW=j zWZ8<<>NIT84(O7hqb5w7y#R?fZQHf);F04X7rBHG(l>71z8!hT>5d+G@;0Fu*RG<< zNb4UI5>}~3MB|nny8ST-Xp@=qmaJI25lIgn1&3a9tF6}o2#R7b?dc#&EJ$CZU`Ab)?-@Fa73TT#X5A^%T?;$l=H7c`E<3|qe+r49J z$+DGd5{(0d&G>0^7Oz-~q7MPA!ji!Zf}~HLJbn5Ej2@%|LCJh?!SsG$&(3X|)~{I+ zUZY-9rXD$A+T0~8*KgUyk_Eeh#E+5mnf^?FdQ4Gz+`4h~@`bZB-0#`3WdqOvi|5ad zXws%L3ZF22p1^7j9A()zZ<87X>U&^Wj)D;6@k7vwz&;OC{_(^6cO&tda0JAxL{_^!(cbNFu^B1-kN6F`b#CT0!<~#8K3SPf@`QrJrrcD|< za_GRmJ^BwHkD9OAuzk-Vf^L-E0BK(uFC&FagsE>_C5YhA-kn=FAo0AJQzwiWKDb}+ z?w#AmK07tdLr;b0L0VfJxTPe~oSjkvh~jLcpGbVo$t8`elZ(w6=cvsI$EAyAi))LQ zG`>?jgtI~doTu{G;8AL5(Fqdj32ljzCblIq5*i6`pvJ?&%6#!Y;hTgfYjo0NdNMt^ zEk&Y~MhZgT^rU(cJ@KnV2@@s|w;q6Gh?3#Mhv)X!)Mjq=$IWYa>t1@Ei@9^<^7P1wH(u5(ncXuoxuj;n3b+#|4zY6x zZ&ldezldJMHNYsM`|E`-6!I%rut5HNK6w$PEEgh^WkWPF^%_hi&>p5Hnyw@P)1}Mk zWn4pzGJ5HAr9wg&7%d3F(EJPg6+{l+c@WtwdsaL$GYIqtkIBR^0;mua)vD{&U27QC z^=juNARB_Pg_SJ>uPX#oL0mMX=i?R0feez=b*y+3O`7UWU78t9^(K1ba|jJrAMxMd z{!JI^^6>hC<5eJ^#rY6Q%|j&z`i_w;z@ONqtI^fyX6veVIn^2DhzLxFn2O?vT^~N= za6qqEzHFHgxNgD!39eg+#g+x!g?;<=A24vxpuvNOxC}7{pBgmKB6RM7Fm>=lZw-)8 zqxum7CMt&-1P2xo_o5?ejPq2FP=FeZSU}2nv`T~9aSs_UVPw`ao2_Fq__(22u{?W5r zmyYdPH*eCgUhNuH!pnt*6sN5Tz`ZqV*1E3M*XXPDRp(c(AXPJ1rb*OHhx$oygB~$# z@PNL(dvxv8zIBTx4I^q*uUujCmaSX2ZQs5l&JKOMzD?hHam(h-o5+|9wrBEG!=)Zh z?bDfj)bJq#`~A_QYsYr2nl-9lXW#w<2M+27oemiXjRWWQ@7uR`@1EVeb^#9v7NJe_ z#8v?f7s4ffI+QSDN3rx?0-QQ=;-u?IdGvhdjq4q(Vyi99I(141NyH^o+gY#UUXq%vqcbZ^K z)F&B}^(n4XBlqswv31jiwX0VwL&r&_g^j_YHXky0@F3Sg`e1#CKJ@&s;loFa95s40 z*37u^<0s(ATe%Ecy*cb{nXd>&DHQBvHwBxx-qop#(N*tux_b`T$9X5Of zjyt5AJOT3*%cLKcSvRcI4(%9v6454`H`ANhni|dY=6Z|MCU?IuhN=iGGl0ZX6P(LS z);DP;5OxxgCTrEIS+j<74Ws6XTD8sSKaCnUY1RTJ({_kpGZIKYtcyOKGH7rYL?Ft-*v$*%_w~(}&nJ$L zk?)mnezoU|p|v=iT=1lcb*{z<=951VkHsQdG&FuV_zG!wn&SOt(+g;ytdk0_Gegg( zMJbpk&paG?_>;HxR$!qPU{w7zxAvBrM9~;pT0lPVJhc}RzVf%Pm{AVx1(cKcmTt3F zLcxq8T{i8pcoHKNCUlYb-VQ`%dAgoOduY1OB3h>CH=!9Nh!v_+CE>2!$0lv}ua)SR z%*Ii3nNho2wseW0fIg3#h76oJx@* z2gP{f`gN43f~1OjEE=G+uQ8Hlez~n4D8+mxc_)w%e&)tELU>)~v$pS?k<6v$~t!l9cCg zGIu=kFN_^IY;gZSdUWZ~rg>u&5iVfa0!TrHv?E|wrAVS(lvOu`yL+d$Et@o`Q@s*Y z;DP>@5}RqDQjV!qV(l!0(aMVJ+q*mK)}U?;>dk|gNL5YL*D;BpAvnjAZ~}N?a1tR| zXK9i>8CsMnJ^GfTB^q}(f# za^v70)W1(pbRpFLXj{3`#fuioPkb=}%A$d%l3j|6tNp-^Mu>(!>H=dDASsSq^ks`C z_1TxDf=$&wIv-WV^b_qpyWUm%!b`{CAw!1_(}(FpFRA+i3YNjH1w?X4u_6V1*ifs& z_CD2|wNF9;toB6Pz{{Yr?gQSOE*)sKP`wMxv#Pe~p=~ePNsDT!^bIN)S6^G->kJ?P zn+L8MY8J5O`Cye`CrfA98*S6x)a7Q@q80Z;(jfQj*-P(rgKXB=Own|dU!_7Q@YDtJ z=E|X9*)V&krc*niy$Y{fwMMNv^%`JHWG-Y=?q+nmjsOxJ+qG#4yGkvy^YX!NVpaiA zbaPSsom%ssRP%9*anCCX)d)Y)1~i^Ou{&u+@Y^rLrupN4e?n=2AHL)7P8l2XeLIVet% z6OdMEtY3*V15yiWRbBtYZ|PK#E;D}rAQ=%f1(+}V(RBTz^jUM`4^h~%Rc>%% z@PQ^)*FR7~GR)@XC#u*ekulL@f##oxeUfaw3zyX313>MpluQ&`fuJz+Z-8vYPn0}O zrkp+i8AFS!>+h5tYmld4aQRyJ;~P~?2&Q%S$QMwiYD3ZOLK3~hx@ODcSG+=<7LKP7 z;Wm$u6?DIL6{}Z%|KKte;m*>oTVEjRIZqx@dkbZXINU&a>lYZJd|3V%JX#!&?n6%n z^_&2g($di;f05#$m1;r{+jHQ^i8BQ}bk8g&q2Qo^$3iaUt3@-N(O>B^qxu0Q!m8A5+K&0n zTC{TGj{V2ZT!aDJ0ESytkZwX5vU=q83oJzkold<6k3o)Wx9&N7^8A&XQ12Sz+QNyM zC>d~H*>b^4D6~>-dglzEICIgejXMtBbG!qQuEkxw*qjs7Q&hsu9gP z&^Ko;vIYL{0x*UTp9*SDH?DKSVaSpLewNen66*ZN(D5@Cu8^EB-?#$^<4eKt>BcqF zVM?%VdHsUmCe)}+xBeq0&0ex*%N~_C@QbhC3aC&wu3BDG=-pgCsCZ@NCp2~5vh~~d z9|L-kxf38MKu6uU65~6Sjkvt9s`Z+8gs0Gqg)2AhI&@O-kh}G|Xay>T6wx09kA5zu7`Mzhz5Rm9&_}A* z;Bf#|Zr*(u6+_c451@}9quy)rQMt2bDh^-foO%61&&CjyspMLSt_P192{1yeygtiM@^l-ViUUM5+J$HUW#AT zXZTw7f<0_*7f7)CGpaeF|pE) znZ9uKmc7T$T~U1mmkywUQDGqd1Z#5gAbfkRg0Y3COy{1{yHIdhG`HJ;G1C{V-n#GD zxvRG^3EsR%mA~j;-kYf(L|!|8;=m5r9aM5T0gyb0w_h>zvpxCo^H(DupqtI)@9fF1 zobYb4wys$W(*?)t zCYOte#4Q+9rb@k*UHhZsQ2*aDcq19Scyj;tm9xk8Zdtu(hU73nTgq`0Z$W~814~zq zXwjwrsF*C^5@b?Q4}%7Rr}R0FK!`qx7MVOr^r?Af$p z{*+PuyGrqD2rzYg#J8}+A0sBuU%45hj~@Kn^k*KuJG&MBmOW>Y@GUK5Wu(w)Dajs3rjLIm7tMp+uYy8b2G3h)2#`LHd`{`(KT(hd%=VMx@qN^u9{o zsd+@@P;8hu)7XE&dSmojb{#l&=F;^$51+Yw>wZjf#2FJ*7&AC`Z13h3^HF}M=5;HV z3E~t=m?UL7>A;E{ztPhduiXI$r(5^oJD~iV2K*ipx(SPyy?hW9?wys_{byUC3Eg~d&4&K4o{QO1Bp!a&f?Q{92y~obe zR^`*&gbpn_gG+=;DE=kDQCBqY3U3v?gcK;eJ|M+@bE z_4OOm10svjzYpl`!5wQC!+ou5%X(EpnLblG-Z3*u^J_Kj)Nj=E#p}@h7(F^u(0xIr z7wGQoD`yVxT)z~Uv~I2HR}BsFL;2}aCKTt}0&r<))V}xdDGOF_litVdk@Uv5!>B*H zPeyQ@Yh58C(d25W#5U5;`jkak+0v3Zv*rq%zzyT zRPx?U%jZs{Qy&m)g}i}GOPMsGaz`kM;fIIBtUovIVFx~z{-^r|fy&ZyPnk(6-mG$7x08k4v3Q@Nt}duaK z#Oe!}8hFOd%jZlO+@p2V z_u2tISd8#NAQI`N>15z}0RNP3gC=13_MgPsv%K_JJ{ka|=%dK1X#d*9(?<5~*raB8 z@!g~ws(P&9ErIS=4Z!HJ{o*HN*y}Hl^o@Vc91GveIu%VPQRPjFC$@5K9H#2e+5aZ$ zBfS-+d;-s(-oJV2B!K6{bGC+?XHoG+O_s>=%`IM`c60G}l=_P=Al-e8?}s^i0CXkF zbo-ix0`jCoX&!jJI-nRst2JuhXVmm18+M!37l%e92c8$*Pw?x}-Rqak0P?h{*?ROo zaKZ}RsD($g>M>-}{MFmxxG2@9*OT%6CTEY-{^ALa-uQuCTht9l>rG511`qlf9ES&M zH0{)X?5t&*Fnw-e@yg`=PE5a4ANY7wpQG2a4Mv}>x3HR2P#}Xt_1nTbY7xAnFn>7x z#32*l*{|q6Y(Ce|v;NaZ_3hBOMp&_ezcn9Eb#|Y4V!@#k-7j8S`j4B$$G_+Fk?xlU z)TsziX^u?dQUDDJ%eQGq*nLak<9R`RJn2*h-%%8g?!)Ydj{z~hQhoU70%GgnA?&2R z?lyR$>OAH3iJ^m^>P{Ou}pmFlz z)tiy<@P7*1^M*Mmmtx*Dlk!de8PvYnCsXJAKla;RE~hpn}cRDVC(C6rO{UT5$~+4AX$BKYDQI z77@Nj5A5E$0Y%T6GH%4+zC^fE3stE+j7HFf?%1!G4emceYQ}kBl!lito<3GE;!{WW z@7l6{<&t?bCXF82zjxR6tt4@|G9>{}CCwpUnDic#)NhTqhY_X01S_NFfDLb1w_?$p zY2!zt=uT~#HKgv0>Pn@A&7Kvn&fD--W7%)t>F|~Vo0s%8DS*6cKhB#ye(fN!o+(7nSh`7v&Rqa+`KBD=3CY+UpRZp*kS#9 zb#B|dL7i&hO7jWDDipiaGp9;{2Nd6e@7^2lkJtg(*DjtpPLFmob7Mw9iiZc zn;yLM^r*w{RpF>Q8h&Ko_6;i+&zU-Qm?W=TJ)A@Y)TM&Zz>R8alNU0M>l-{{ji{ka zE*|cv`mqB$H?3YeciOmN{aJWjqLqc}fZA+JF)nsw7@*&QY9cC%4)V|8^nQbN-@SG1 zviUP6j2O_flbIS&W-rl23zdT~Qc}N6y?WFK{liiC%)f?<(!JZ)E}lM$y02I?YtpDe zy*syV5>dTkXz`+c)Ywr~3e_xC*-ASt`clLAa9p|EKSa~dojACQK=Y|%hV<#$wrRZ@ z;RIS!>Pu7K^g^*hG+@f(8RX^*EofQA4 zog!TS<zB`;K5l5=u5FvttyaENG0;YMW}|vtl+o04nx*P`9PKRMqxWxLy8xIzi<~rSV9yRM z>Z7&AixkM~nLQ>QmAj&rH=vF_&pxKNzySg6j{|)}8_+?7l>`D0&v)8^{a&y z_s>Vlk(72X1a@am?N!yX!G(R`D3LZrQj0$YmG#tKh88Q7mrN$gIRev~336$#g8aPU zGa(KU;*rBY=hj~Huedw&_Gq>ky5P5XPRNB?T?rxSt-Zq&fmd|%)ykld_RY+y zu=ZV*0ZRZ9z&yZY0nh~m(sIz>=ojlMaldXYu*#GREyYj(fT9%4?@KgI9>8flJaXpD zVas7;x8=}t>K^9=x#I;KtI1s(6kH(;2o}&K1AhYM8$sX*h9|Rorc4<#W{8(T&!}h8 z-7jWV&{_{q#hhD^n3ICOz})2W0G&>j%)kt#cLQc9Z5o1(Y^iK1ol@zk^)!0gtLfZ` z;04r3G4B=-q)ZMtgOH;~p^OBhlq{){G=35zsR7v24Z#Nk){CTo^#T|}U`~2S3*!%9 zMFcb@B91CS-1xQxz)>Z-Mc}bOi{VF`4yP>6t5o7ULhKX4Pl^pWNgP{TLtxB$!l#K6 z6OWvnhF>14l%rJKIK*Q)yCif5tP441H?I341ef+0qKknykWKU3rpVU!XGzECxmfpuTLtK$9KK#B(_rxdG}Td>Y>%ktcxK zunpnhaMBCnXIRTI5fa3n2+!&FT)rZVS+!vj14aPGECP}API|{k!U_nT5f35D7RN)v zzDHq=Jq21hD7Zwa(69=XOf0ZCXSYS5(gE5)M!;x_JYZE;)<9TGGr5^&NOPY9N*bVN zK#@Ui=9o(h;2v7HYSj{MO7-j3tV+YK9PT)(XwoycRKpfOHPnhwv@|q^S7}jR&2t;>h$p&WZJj^2o*j%#?Fb_aZ=uOZN2JxsaX2lkJ@XJ~IpESBxxK+m7ZAjTFpKInj2Z`kK!Zn^ zWB}V}7PBJ>nnxahTZ3N@kZA??MlH|~KN%Hd0Z!4Xdes9}Dp#ri7#L9lG-k_Dnh+pJ z0h_ZT@CiU3%1vG%-#+=xQ6X!oQR!7UV02~74Cu86E-OrPz(3$Qa7WPlDhswG1EAYh zLxeo9dAu5X8G1|5)Ts^S_XibU_L958n%3>+<{$@m3!YzECc{1V%|jC7b^}l zqh2a1gtYC#7ly8bO~c|zyevrxIp+Y{YmLrVP)GtF@eC5=1?)8{*#kk?lTHAYMJj^i zJu!WSkFZ#<9{i~o`OAnd$qw@q`{=5G+u>Pa0_#b1D8o#*g`$B$fdKUsE{Hde2TWqB zlt-!*Iv{XRRRWSJz%L>|5BQ1$h*a*d=i$&oKivMSJVr2Ieo)^Q_AiXn%GbwBY>I|K zGDY^cv|HuP(e}Y%5vzT3}wt1Xn~2z#rwyD`r&PxNnz>@f*OB z<^kvn$SEwc%n*bJ!SeYkP>&L{9sVw$(ARp!uQ?&C_tzl)QTRnJsu#E`BVQI66na3`Xu-E9gUBVy3k zjZb#DM7RP`=!^UXbrTGMZhTb|adGJ}h(wTIap|EfJh+@)1jN9p5$yzI1OE&r3W6VW zqbPn2#7{wTygBWQbk z+9%%0O|b&nN8a(QU-N4ptP8H>;;Tg|7g_6$mQQ=n(~e2ZyPA*oP7XkaT=HsfWfybI z*;{*KN1oV=^U_`u#$%nqW}WhAuN2rx9nDsYa%*pLkCiqIe^Z1kee8wnAUq}&%E+@=9KskDU-#bF3hRDz;)6?J>wCd!8)xm zW;wN|ylBGhmw_MT8Hh`;3jDDl6k`+9M#>vu4eLOQa|@1k+~k*sR(Uxo~E77c6*clx%-up~_jchqzZ} z1RD!(xBz>bkT`qtEZR2-7Lh)Kp5diMBWcfowacu1lSmrr+zhu@yp#(5j_j1?AZFIS z^3cOYG_8^LEuipJoZx7-x<-e9Iu}!=wxxcJORapbuwyd!+_ld3_@d$Mgo zMm+a;vsM5|ipT=XqPI2Su@uK77Kc9Hhb|?#(VfXl|{Mq8fb%O827kqE76ufFt zobk=PgXpd{@%;WGtznA^_hAOgHPPna70#)_V^QwixXt6@ZF-B7SBHPM;ZlMRHW@-j zdD5fiqSPU}R59x~;k(?pLd3;g-AhXhm&Zgu_?Qm>+vYNYP4FY1qE+=viPOu`mCE=iB0AxQJbMkhn6OQ&Ud&9s%i2N(DI|>CF*(*X%rc{>FXr3w{D@AR4MjBhjZlhfiB7{C*oi;z*UgAdH6l4rCeSSb6F z*^-Q%!hvauNJWIpuuL@v{zW0GgvdR!CRTHQr{^?9%&LGvQ?ZCH-+GWE{`x&g94(L{ zyFG@w5sa8fG8bdy-q0&BUyc-WRbL9#oEGg}SZDn7R#X>cKOaH)!Wi{`a=j+Rk!^VXfEk|WszZ90am1jNB$^7uoWr4)5KzK^0{p7uF^`hjblS#kXT-E#JKVCv#}jMkW%hFh zvo%7<`269mi^unDz#y^TNc4tM?6WYjc7fL(MV+h)c@KiTYiAE_Up069fX<}HwAz9~ zFmID+7sw*b(*Z|~w4Pj!mrr7lOsu>v;?kFipU!WnCfHDG=fs`$d1** z!B>;x0;W1r07?-_wXbqe<1AAgm?Q!u1th8XM*Y#QKB)M>@9EH4NFk)oC_zzSa=+m) z?pn8S@{n%LYn3Zz67rcvAh?ENtv0I!7>&tsIeSdM4h^f6E`rI7MQ4phGVPm5Ty9cr zngo`LaIlr)?{rg(jeAOR?VH)DR(-HKZ=6Sy!Hh|2&;UnjP|APDfh!FLlP6Xe8+`RN z8a!iUZ!jN%chr&hFNOA9T?p*8kzoe;qO>+F2y~Wq`a^PLe&=Dr&JpfU(qw`va@)!| zW7*hJ{^V-31`Hy&EjBIzT`373F`f=BgsiFr z^Ti$-Q;E*(>{uL+skL7*RfsaXf>i*wsoBpAxxmQ|QHL75k~z33hA`E!21=A2tmsW2 z-o6Mj%mtH#WHP`9v&l}cm`01Xy1-%=-Oiz~x`2$Ss{9y9?C+SNS5K4MbY!pAb-_a# zs{>5QyQ-@mMP3$e)gj%QnVg+=9@4a$&8j0h=`UQZ3CxmBF~!zNT2a!UVj>n-6rAzR zU5a9Ne*nL%YPX-A)5GKx73N!R0l0BcN(S*!Bv@Z9j?jR-Ijnhy&IVs{OwGt5yL#@p z{v8^UcQdP-5QNH@m|`GiH7Q(I%o;_y)#3$XbqK{!GfXn+x8G}KGF>9%l2xZSNv4{pHD*r%=9 zH)QRza>p`9l2Z3%>PqEzteV3G5nduz{o0er*l}Q#4EGLm@G#$FNPN|>P=C9GxZp5mkxQD2jE2YD_0PF{KV? zbEV$|za12_&QMQ&vmB)1Xl~FgQ?#h$H6v{dRG)U;DD^tl_cY+z;(ZY4n5h~Sm4|M( zvq{J`a%IN2Y>O^JH%tOO>U(VoqwKm~RGTVgU57%08e!2s13>{G23b4p78ezT4W=To zhf%L=Bzdp2$~2tFGBslNYuvramehanhqW7p{G{K0LX!)-jp~)3G$7^2-{Hxs>L9+V zj%FzOrm7~8GA~gQc$pe>MU@)E(3wn`x9Ey0Zjms@fdSBD1%#^yoJB~`=avaapDS=| zhWMG%>5jaB=@8`&CwT%rF1~onJm`&w$ZF&O%!3<*Ge*}%Ct;gV2grRJ5k5?)p>I^iD6$D$^s>$1k9GX#}{d zD*lb;K#JMj23n*Cn43(4wV)hR;cg0UL~xi9#9$^djgn$j&=Y(kfCtHJE-&M-UhsQ^ z3oRJL$^gMp#VUqV+{7o?5`LE{j)3E@X`f~6JJt(583vq#UYT(+FoDp~Gyu~Eq9@i9 zeOE>hJ?9;PM=GCQCY;sELuqRWRl zKI8kxIj$vzS;0w9j46{D|4UngBEN9bGr&elqXg_2P|}zLQ_yb#KnTxlW&I$I!vNe# znLu=B7)mj|SjK5J8hp_nbb)l63yd-EiF;DyP!Pjt>#4OUwiyzHJ^?BP3aX?AXsF(D z#oKodC7e=wXLgSmq=?`$Qt2u66faHwUX$)Z<&Bl{o=^p4CIisRExl9v=WgkQH_9a0 zh}oBPP(ug?19of#aTnuXwrnr}0;eWGFR|g#fXKa2_NgS=8!^<|gFEKVohP@R`w@+m z*@fnbW;=p{V>T`Z&3Q+LK)^(ZLPCIgMt*nzNCDAtLT(HzryYpO-qhjxiYw+V^VJtRZ+J zAPRw|0i;QxWoZVNvYnCg6*sFO5l$4qP zr9L7Et6Jp>VWj{@lVkwV3aFFGjCXQ^B}mNTkf?5i9ucpuEkdvR1Pov*lAq$*wu0-i zG}{MrKU57g>gct9lEcRa4xgXo@Gfrc)8L75*O$!OzJXq0i5EAkt`JhHtV(Y zn%`Lz_<)rZHK{J6 z1y&GXs4Y;gtM0no^2le|fMy9S6&!7a3z7Sc5v@xSUnr9f`NJs#VD~%%%0(x@)Ef`S zDV^Ij8!4w0;L+*x1VCkunvM|PKJw4B3vNo(eE33JHLW^qqi0Z+jtyUkDUPS1b7r% zySr&gjxT6W?%>MW3@$)~&$ZzQ=RMMf?U+ZfWx1wh+pur#v{ch7o!pdx$==%D)_{Lco~YdtQtb+)wCxop83nf-k2O_ft%2wZZc$gi8w!4mlG9FaT6RawlOY zd}C+&<3v`=PA4mX>^4k-Q^W!^q$W1lNc~jMyu{tA16W;Txu?bzGqar00&yUiLg2v8 z=^vY*Vd5bqT}*jU=fe7{E_x<-4#dDXE;47)L2anJKNid}nC1c4umd4fU7>(x++b9b zDFyS$u?C;8kyFp{fKU{GO@KuKrdSGgyf(XNFL>FN+ocKZ%1P{39zBnq`=L5=6fvPV z@1WWa=m{6?CDRHMHIET>^!Vh{^XWeK^Lh*NMx9u6{V|!IR9B&Qowe7jGFhk@fS6H= zLAqrtcpE@C99jyXEv$wt+5thrZg$e%;O+wc5D;7E6j)xN!u~e@NZ|4mAlx&jN!zb5 zE`+dfH>;_GP*F(#h1>tPvTfQ?lAvT1Qd=N~gFrGC z988QN7rcU&gAG#p{BL><$&-W6B%23fJ^_@9y-5*5GDNE^csb?;1};Np5oB>{qT6g* z6bVVd@rskI1h^&j(w9n=EI~3yCeN)Jj>5?XDexQ_G})x(eqm^bRQke!!5}sZEgK3N zG=XLM=0ylu0k}(QVbK)a4Li>|k-%?oD5HdJ#&H-LR*vU(2uQsO6Fo^d6>A=wgVTQB zvdZUGm>15l@{DvPRE{{diTlcu2>}%de@{W!kOgd4#hcR|<%8k{L8EyCK>TS1!X?%d zmleRGO!80OSh1t=u4_FM)&0uQuJcyS)3_4&=72*k4ji&@dr53vUi#!|m@t7Z9H$>m z7>~I%*tFX|2pERsm8;+!2rErjF;a1k;iZ^>A!C+GuH)hs}B- z!3&VHhbDE*Psx?4s%*4-Ortdw-m&r%fPzqTR=HVGKk1kMvb|=%(8m35`X!#dpF0Tx!nB3|rJqGE z&wpdw63KiqZSd=M|J!+hz@z`Yc?CIvLU5k0`8V^_4CbnW&h{H;&U+Js0*HV$Ph*0< zTI=ZO->)Nc{l=`zBPulQ@9WZ9=Kwmi5kSXZ*E#kf`@Z2DRK5-X5i=DaBKE$a_A9{s zxDN%I_=>;ZhXiz>_O-I+zIH%CWlS6f+bj7w3pgP=zzH>)0i3YJgmoxb3MRfOM^J@PsS$$ntpH|+aMEXW3@fwf&B z0&whYEe0ooFvWn)m^hK&c2lcRwdqRWV{XpqSq33|#zoy3Z~8yH3m%k)11GrDGn z83{N=iN(fssIIftxE(lS_FOiBKM`LeOAT9^xizB+vC%qeWyntI&?CP?e;7QupA|e= zkY+H%S^y!5#cL1SJlX+XBg^)$kR%JMg zwhk5=TJ#v$6^;Rf9wzL{98YyTIwH92ftPVM5*$S6pv+xU$Uc@TlClb7ZKCA>^HTUU z2ywMY-7&ibq9fQQ>3d5krs|loIGYqs$~-$wAqA$A4T+d5#*L0a-u?IsWKK{`Gc5$4 zEGAQi^-h{P({FLQ6@q~I==yyNF+^lhEW{kqX%@^+AuvtoonwXAOTQrs5xpDpeI!7d zY9b4w&;gfdRtHh0v91AjG7oUmUSJ0lGI%<0WVj0m)RYV$mPvt-DPVmOow*W#uw!OB z#0ifDv^24MJ%>*ReoO#`RpkMQ&c8S@drLX^KdU@r|)I8I{v+SQGmXT4aha947*I)+x^rpUSe%S0!>0 z^Bm%EB4Q`abFJz~6wuUyZipoU1d6iYNuW>$fh1zZQG{_n4{cqBSfVlJOVd1V6{LcQ z{)33!49HyUu}fp+@;4#?WBhLrL5pJLLbD}J`TtN|%d+{8BG3QpuKVW!`0Fqh`+XSg zBIbOl3nTMiCW9Ds)s(`l`#mk$2Yg9;Zy+CXm2kdIOI` z>+&uHw&fxz`L~M%tC34>0S(Z9v(&g?U&Sog#(!C`*52?>>t4yc1{6e$=0mzRtMT{y zhh=^LH@4;2HtJYY+*}2ATelj^6;_~J`zT=TQzq6($>Ikzg?$_^#%9i)NMR=k>HyH? zw{0dPAp;5@A~t+>q2McGZ1@&rfKU_Qa8B-BzevCiYG<^^7>6q$RnC1uCR2vWfw=GYvW^aQ_{`z7%z7UV-9 zKIS121Af5($~j@yJ|=9h?3orsMu2OmJ(ZsOl|q>FeT;Kt!Bj( zD#tu9DJ8%)RWTewvl$WFic4(8xsDC762#4f0i7CG#Z+~Sa-CMez)WD2jQNJefWZLf zgAmsexLWmxDJUhIv73n+LX>BO4M&_|3tOavOgR>^4AH2M>{x{b2aq4ZN@nC>jzk(k zw#C5J1Uo}q76(njhT9QiO4Nkm@md00;wCN`fB_}WaZLHYLF*)NHlb~HbRU4e=8=@z z0kJ3Xz==~e0drD=Oai}@JvenN$Oc~=f~ug#oc@K$jAZYXVq7UX(L7$D=|&8r6m{eD zQ`A$uqvGDd7t*>Mi{(ok^;4!2yMUw9CWPM8*i9G!^z#hOXQX}yHmg`dd>{y}gQ|G( zornA7J9uBBKoGD9K3A5dNHHsfHiNS@f+oF%x>U@;4r1@5M9B*d^{^!98Qv*pRIw3K z4{E(hOq(D5y6IO+r&KcR3vksz3PnnA$@B<82-CIV@D~HALtdZ@RfrPMN5I7G4uvQg zGH6DPkunQRl{N!7Cg3Ow7h4pmq}1Lc4kLIX3t>5k59n=6=Uxyj5JoLSnqGNGuv&ny zAi!LXoZyVf4)0(ZLeXWE;=1HBANmCoXhQQi0zSc4m^@34QI=!mOv3;oMZtPTnh;gF z*!huG7x69`3eXz?pujSQf>rg{RF-?2gHHa~)al(3x6j)LMh%defoTGc*j5G8Itl`| zk{zK5^MMBdR0r-t3?u`AmQWBp=PJiE88YX{1#2KICDdDs71ZA5G_fVKAoQMZL6}8A zy5N{6YDq~lqDw8)0AG^__WVMHz=PmL9w-{It$Ko7LO?_4NHC&Oly(!{{}pH%K%ZgR zkyWoFsJAG2DVsVyWkKZ-5CD57b=GEwa)b=V|29R1M4O`iMFYX!;74ka82TkA8$?-K zOdpcM3S~W}ypc!w3W)2DmU7OvIv;fw4$Q(#a8CnPjhqy#Y2? zgaL!0L~5&e&XOjPA>gnAh?E4Nn(Vpr`5`nUtTJT;j9}UofZVVoIh8pAAg>3S2&Q1f z%0VQqK$GhZKIfP!H(5_b9!xrVlwP8A*>dH{H)0Zoz*gcebBeQ+g{Md(O#A`Cq*-B* zvCvX%7R)NSa*811!*Urp!jgy=`XDqYkYyw=nfT&N8!OAQf=2oXlRk_!z-SaH6l-N7 zOS6^==>*t7IM5uW5nwDvKO{`ds@DOcf&qnw{Awauwu~i)8gj@nj)*FNwje$yVIDPz zMS!hGHod1@MXDk0m>GhWBD$hxEu+>CKtZaD6nHVzPDPIX9EgR>;FT4H!KRL_PIPVA z{Nbl5B@%WZh%+LuOr!=u7la(%H)XI*$+E%tmI4M0fjdCS6H!l;9=h>R)rmrxiKxTS z5{;%XA9$CV&_!BXx!+;==PiIaRf@4s85jv#1aTW>os|dz{(AW$U?)aiqOoeG@2W^} zYh{dI2?z>m9ikE}=UPjEJ2V1sD%zV8A*JD)D=~W&_>iGB-7;FNGBAQ#KEvv3+Jr$! z!Vs@s2=VG?`Xa*yPm3{5FF+UVd?n)jtQ(9nY@WB|tie%(148_%Eg})c_d;qJ2E!F1 zk>8E<|9${~fOZm{c%g7Ut-b z)64zDY7^9*h3&N8Iqr)!5(Y(qW~g~>E_(*hicLbDiwm&T~HETkW~So4#22{HGnq_mlV_y z7bG5so_Vc3k@yoINn^#_z`X|G1Q1xbDa&+n+=bF&CUdrfyGt+eP159!sU4>>=MiHh zXMkN8#&|vD3;eE7rP$J8b}x!@^5m3648LN|f6^9ZGBQ0R?jdz5@M5KxNY{Qv0(oNi z%gzoMDKAP)LP#Tshcab0GCu^;0_JNp4%6S$o5WFph_vVjUdyZ*k>suHtpXec`XCe7 zJoKy&Y4k>4q$84nX>i;XAw3f5A7j!GnwkpPVp{9jA2MDfEah&Dt(%J+SN@0x2|F~< zJZYpkjIAyAE_Q7exdvqySb?7YB?zT>11KQJHCRr02arS@A?|Ky4{t>to`4VGS_C`* z_{A7}7`#f>WdJ9!l}4^^a`PcM5QtF-13;%U4PbrufeT@sUVK1LRank(NPu5yKj6f4q!Yi9m6bS6!39r-kbW z!dIEWa%8_wmkE#yZy(*~D}f3)!C00+9>ICUTNpXna0^2+6;4MTZ0c6!tNVV<=S`3R zlYIj_8CnXM%O`cqPI0RrXH+`r0m$8BK zU57JOMWY5WUuiP1kxP&qsK9X~QT%&+Abv23dE$WEF-c-0v7Y1&spzrBgu4)Wmji!^atbe&9P)Lh!{wMN)!f=N37Az}28tS4M-!GpBP%XPy)MSM?s>ydAxly4_gNQJwu#Z zTvt5u@Mt8MEgSd^u>%#twFLJ}1a=e-K1UQJTtmLeu}t5Kk32GQO((ynhvD%S7)ahG z3JIZL7((Rg;csxI1OUeohzZP1+#5La3H-J^Jb(&AY)7AbAP~joEVPJ(asr6?5V2$d zry&qiy<*}5Nlth#eT(7rE#MFp`qP(YXk=7SF}7|!?a3fu_B z&$yomzaktqtZbMbb`u>(6sllq0bK_4SnxoCB*hj%MSv5?ew=qWCi`og+N5E zQ{}G~9@nV#OyO}$6~{En#rKxH`3RJgHK)5cyMpM|*@@viooWKtTidD569S$cLA(gG zAdh@th|MdLa>_6woa;I()UhN0(8@0#&o}I3gbnkxXuuhOwecRzin*7!WmfOB*hFagED5apJ%~qX+PeAo90tDeDY$h zm~5~vD95J%kl@Wm)&J4ncScopb?xr84~VfP8ci|2i6zDsTkO48?AR4WY=~VHJ78Dr z4LkOZy?5*&ilU;31;pNaP2RlU^USsP0g~MN-7)U?{@igh#*T+`_L{4&HS05P!2w$1 zL{dP4_-i9g!e?0&848J{(y8C;(#6?qkN{^oh&^=XqvXXSRZFVQw=;q1RL1XBt0Aql zSu+ufirBej04z@(1WzGBdBzG5eFd~+xELz9R7iqHKb#Y(fk=Uq#+4%PeP{e$6ncje zW{D(;7+^+coyb!IqdD=xzBm5BHCE82;9cHjzpaXd~o@hE~ z0rSpERSx41=KXg0L1llE!dEdxECgaj{`eZlx=XevRx)r&VXB=Gg~m_D9}MqsL1@Qw z?d(TiL3T@={otYeXF4280NNE#;ISC(>{5zg@EdohpQApgu>LVi z>dS|eekokjrVylCe|^Xr>9!ZqqA1Te%qRISO=8XP}PYw;LINQTP%5O*2Vuc3Ci z_a)0KeJ0IJ$K@{3A{e+49@sz)rO3eT1SJfvN8Bh>V;~700pFP&Q`~G39%H6Ej>C^} zE8l>Nq^Bx-QBz-7W#z(xM=wMza4pCeSCxz**b{0;#S;-Dn)Vb6#DDoOrll4D8kjKf%tbSE$NyLSPKTbwPIU=d0CV#f`2mpph!*-$5+hcrB}|!|0^Bm1 zH9IHrv2fKn^A^NKTdo3}k~L=rwk`)emc@5f&QIq7B0y_SMFgaJvV*GJhcY%lsB%0* zNyNBSs-8kQiY%|{u2Wnfw+jZ;(*Fq?sd7ArJOhnb`6_b2b4!7b7qmBv`6q7;F{G3# zb+?30wm`0xO9pE$Sr5y6eiyYk!<>O!5k)PT0%;D=GwB*T%!@>hq_0rql2gb)Jq6$( zj>E}H2!VqG;Hgw#ICYdPaoOq*L>UST6eo%xcLmb?LZ$=AsCbK0iOjBK(O_euYNp}^ zaZt84ms?SN`^rLSwcC^hH6W2;vfu-NW347;nuu=@I7YcMR~}ny%J->A(&{EgU_y3) z=m1A$`U->Jd`*@$$B+L|z|w0&Y7haA8h7sbH)Jut``%K6e~k+C6f*V&3YlE+`v){7 zjuP(XuW-t|Wl&o-tH)U>@lr^}*04lT_49)~5H{rI0JlZ1>8s4n*JD#jyVUCgx>EG| z(22sc8gPgiGCJReBa1CgW8X{s0xk%Ru8EVu0Wk7UoL-DQTTb;E#*+FfjGOTNyiEiP zI<1?F+eho}mX~eeo@WB31TguGY0!2Q9{B(xXT&jxb7pliRtOxlr-0eWoeSSt*L?LfIPqX?Q5H5=Ue22QoWwUu2Slv zjs}N2cyht^q-_LmyQF^GChk-Ny|Q?5ZJ;8Pm5RC!5~it&x+XKrYs@_31Es-am+-dS zxiT>NZ61%DYxAo&;Ifm030;*FjF$bx>f)Ki7?_NiGHHI=zM)l`)bCpH*TOnyG{HH) zBU!5ve|uNs?`kI538%@~!~8+{=3?a%U?VhPoU4rXF_UpM;nV=TN>(>5zW)=9FMi;AI`Tdp_&V5qRXQ+_8NheuFw*d)G>RwZPYA!t zOl09)i0ck?X_1QiNUT(|KH~f+2LM?fVRbaIfRPo^jX|*v*Njp#Kt7Gz)#@~C+5+lu z#1Pc1jKm9a*>QpTc>BM5EWixQJ(<46D1+OL< zbs8dKuvJSBq}-`g+7_cUgNsRl{NgHs;SP1LUSki00RqXtHgbqiUeeKfvaQTa7`}8e zviDduI@G8hQ<6w73|gY}?n7u6RkK`{e_}|{HDowOU<9lIO&T!SNkPfnW(g!%OVlCR zs$4yPcO0fW><1oA8zNUuslqxty2? z=SV`AWrgBURA4rfBxr?^dPr4KtpYNQATtN>yR7TYS;pR5W~M|&e_(teS_-d-1S(8o zmt2qT2@q?k2_eLN<}519ZHW0~zH8L3Q>T_Nm>k#C6>-P249+&_dd+W=tkVax+===bd7777#V^h^SePH6xdA4nXCT0!(BA=I250&=IE{&Jp+3Q5$WTwkTi zs4~wHkI1ztNdZOnlZveS5!YR+>kD!f1IeCK^Oo8Y3N$S14if`0u6g?srmYsp<_Lij zJFqP;T5ABBQEEAAX zo1_*yXna5pgBq2}6vK+n$gCu91P{ZK&}4qVw$bP;^+439iV*0=Skl%u00WRByh=vR zHhD=}@Z|o%#XfHt~VFZ zL2MTebH^>dP3B81!iepv2f{exnl(gbs^5@B@>`twUmz3==akD$iUyQw#HNT$?TF}- zL)LD_57}@>WZ?Fl8|!PV`|sRZDXf;_Q-hT24}^!=Oz` z=SZ(IoDv?B+E7>sp)ALO*OB#1$^m5-KFBS7o~Q(gW+6Nn1Z>I6L4_t1siAqWBt-`2%-J`z7o^ zk|2fIO_&sfv6L{-S7vA*RB_t^ z@c{D)Y&^)gp_6;48Yh7MK-(H@0X&Kc4Zu5F_MWhtLV&hgn9c0+qK}1eZdN@mX+Chg z=F0;`B#UdYh%Jy?QWl)ZOEin1`4I1@&n;KJV#P|T(us<&xxskiRI-r)=HZvz0t_Lq zGd6$(qyw;rA$Hg-_podkSZt`q(ONfFFU6HQZZ&~7sCZ{-<20;m5E!X9D_OEsDaqeq z>DQ>>ah4}*n8fqP9s^#eV%`3QO+dPiVvb_>U<<>=g#cK}OX7jWI}&BdzJSF^Nq`1$ z*f%)|)W#KZ6uM8C0Gi*BqEWoT^j#svg%7=NmA86e&0=oGi6h5W-iJ`pOYp3fazIZU zDksB?D_TnPeBlU+>6h|a&YZc-Tq@^7+H16iPhyQNj-QyUrn+wz2FrrcLupv(srUOK zhneFsa8s!BVsN;~Afib@f5{{(lX30b{vv#E#}k`{i3c80fD#+GzOQ7Np|$Cxm~y<3 zQ$seLoHd!VxWXLq0#~B&SXwBN%ZJ>a<__PWCQY-m0KH7Sfxny`rP;}tY36aDN7)!2yLPaGq!gull&U~E6X)M45 z$_P2Y<3fgXq(!Cp7ivt3w+`GoE>KE-tpe3|slt0D#R$8S!GP4Dz$5=#dY8`lWG$k! z$kImUj`l;R?C8dfZhDPF0rkP!Z&XHouz4DMexIzzaW&psnjjFuA5Lu&{&<%HjMv3@ zmx49KUtsic7)bs2iwAS^U$`dzH-DvkGj%!q^@Vu25)R~6gP z_R7ZSCnUR7$F2KMUZ#S{Cy0GLKsyTxe+0rsAHA@C7xomu@EV~$0J#Ow4I-A?o<IlSc=Te*k$D5O%fu__?bI z_iaBVO`T}s4cj8cz}!{a04#muuARMr2>b{oMd)XX&I3kC#smQKT3$?;febPOfW2q3 zg#~MOGGNR0agxzTgrTHqke;(;sZuKZ3-N2UJve)47Xr^L2Poo=Ggb_Jmc$2hS8fA9 zz3m-Ey67<`jg3Oy08Tu-qf+I6C{v@cC#C~2WJk`3=M?isNB}$=goFr^ZDHR@JKY3B z?qn8fHtpDZgmgumsvgrpQD#`@cNjF5=_ah7NRi|7i}V7c3v}${d>B}rlG>u7PHnLn zzc_Pfu>Dp(3=~S4cEie{(bi`$(qZ5SMWi@sIlEi|Sws2-Oj!u$ttXW4D06(1gIPD2 zH)PywXDSfgRY^1A-8W#0^}Su-XQt_3v*7GSy*T?QnLu<}l9ATe@_J@Xzaet7Bf%ye zT&=gIIUZhptZy~#Y-kL!d9>*UhcSAk;9cxN_O^VjW*x0Btyh1@QwTXTS|J@3^^jn| zIIkGYay6S+-`OwbE?A;+J-C~RMo|wsc1)S-NLvNJal9o{loQ>RL{^aGA@yKFb0Dof zoYG!f@1Tol2)+m%y|GNMwy^9=*3LDe7l-TL5gkqlZ$ z5h-~>;ZIiqFIaAMI-8d9pHxTW-$8wW&6*;bfFR2HmxG&!R3pDd%z|Th<0?zk1|L(2b0nJRkN7(9DD^XT#O+2@HYKFu%Jr z(sh#>4BJTVX4d}&uJry*OJ|H4(1n2$sX7WAYK_&c2Sx%d01gbWZsI8SXve++Tvwtp zcprXk;bLPX1*)64*hB*tsA%adk&KgZ*R%W;cpKqT78Lc0+30T@0yQJ#R4!`Xu33rS`qBp zMs;TmnE_CaXltTrvl9Xb{g{0|vIEe`!+LdS@>le5K$@onL1!Qu!fX=b&Y##D7CK{; zUze6C>){ROsMBh&|BIbz%pp9D_QwvPd)ANQ~m3qKj% zUoiLWx}2#5ERHUN@rLOc{y9^EBrZT@t?E}PiGAy2BMFcAW><1;pCrM8&Lxl(PfUEw z6qZBNTIGu&+RCX8MzPnD4dS1xvl26OYtx{rl}ExJ`gF#tb#{GRexHA5_6n;)45iKm z(Z|c94mN2{YfoVO$!We?jzm$Z5>QAk2n;6|$lkD}Gsg__LDGyeMe<_%@f@>w)t3v& z+5B_Xi|dynkL*~xU`hZ|5+vtYuog;M<7Mh>8_uj3FOg*+?)=I9o0rcSKg8FwiHwiH z^INR4oAF}ug002U){(N=z$+U#dPeBRJ;x+@26ivAZm{@AYjjj3?Mew`8ZC#bU_n9))RE$0=j_l4;;|7O+)5~`ALSrntY?GdutBi zqIEluL}LE!E|5TqE?@>G4)5dLqCV2Ra140!=rIKE=IJ|l99G|6t^hp;Sbi!+7cNH~ z-Muk%*0>=(J2b0PsRRRjSi5N2sDVE1 zI0n#T%P7juLC(5{ZMyl5O5Fu4LiPFRr;k=2u!;_BT{RE$D1%Ux#w|UH4l{r83bmVd z=s9HE?4@B?#aKt&1l&SGL8bxQ@9eR?o0ek~`g*r?uUbZik?wksc)`_HuCM!mX*d~u z6-iy5zs5Eqg&<{o`oLT}54aP;cWvM}^zv$6uW~7_Cay-%`0v&esrQ_T+81&&($$phJJDB@{@!?4=ubho8Y}w#Sey&_i(R>UoUey2Ufb zViH=oSEH2!1RxB3_ha6|rK`HP>fCq4q>vSxu$nJlPkQk5#hZ7SNcHLHN6zB2hj(NU zx2;(;eazsV9h=v$TBayXvGDoN`hCuPMa$J_)V3SOU_Ms!iF4Qw4{;_qDZJx4NV*Yw z?!H6q&NX?t_`cIAB4~T(W-W;fM=y33qWaVk$p=!cuzw76W-d zG5+G2qkA{4m^V3SppR#>x@?3-y&dsJcgz4>e-{a32`wI;k(0@&kYW+ z2tcjLQ9x*5f#T(BHg4C=FL3g_l~{~XSk3pJa4mfJs0q9Tfm>HEU@dH1<|H6;A%}oV zp;4m%%G(dHpHdKbikZY(IP4_gQO_1EF$54JIflN2$4p&|_LPnaFLe&?Z6=davM-HTKdmV<)7VN+m8V~*UMh(>L?_8T#A&e9D# z51&p=;TacGavQ>y&zmwjB`i;1x~f#?RRYbwC3*g=eT>RM0ju@-WvPJGACd0asenbg zXMNX@r9--B%M#7MknY(wO!H5qd$#?wA+ab3^{*`;WlP12bkA~F*h*Xl-N8%oqtJ)2 zaE(Qc=kTq-smAYk!H^Vkx#FO}S?4sr@LQyIu1W)<9p-B}6BRO^)yKhPInFy>nvqiC zQFHfdu-ghgvuz$HA*5>V*rGuV7)I$VpQ`43#-pBIEgRMpPYGI&sCCx;QNI}X2KVxA z-KbV2xP#=@e%-uGben%pr5{K&EsV*_@E=YM!}Rz-wNOq}{`~(RP^pWW0)FAxlNfb0 z(n|K7A`5t0j4*$&GK8mtn#GyUf|fZ+)Q~d8_?J-fm~;`N*#vG`^!maelExc;Ma!=E zVx($px~9P78t{GUF9fZOh)(Q67#K~U{`u`G!njmtk~m`0jv+iJ@+)vp;; zseLL$#SgR0d&?pQyHv_t*XR(36}99vK8W3vc3bt`Qvs(HKj~!f{+z~L8g^k7`yR1Z z|CnU`*y!_SW;HJWEkTw^)~bDK49d; z*-O@K+kZUjV%)7e4>;&jmaPVJa_{yH=pW!FOzo~jY1&2Gcke%9!mPz>w(dI?dEx5K zBn}tbtlneEpy=cKNhrxPB`#Ib%5|Hz>(+1h_?e4VZ`m6jasJBn+xO62R%^cdgp$vn zJbef-aSLmAYzyGJrEs zsYW$m?bVYC8LIuepu`Hs!m*7NIwrbsG?Yj0II(kaT()HV< zZSe^l3RVNfC`(+SKHv6tDq0$2-p0F^e^Bu3C2KbCIehBu#kiZ8E_COW_!@JpSwKgd zVv;J>YS_{XJsCd(&DwF`c;tmxspIK$D349Odg+}mS$TdfQK5!=bI)%5hK-pTvUJ_n zz3e$Fc=!aVj7;Yi2M0%#kK*O3)@$0fb8r8kNwXHM3fp;5sNYJukAz5aBJn)nM0_uS zBb946YK5kZ7&mR+vh~|Q`|QQ5Hxg|`5KJ|F$LZIVuSm&?H5#BDeTR$+p1pYWrkw|m zMV`NW&Bo-g29b`12+t^2tzOeM-aQA796x>jGPe0-RE!{KDD##z7Hsa%1&WofjKS#8 zz2DH$lV>kp6}Dsl(bIy9q09t1y3kaqp8jg}o3-uS3pA(ATe^13?nBA&Ju(}t8vRE^ zN+S?NGbhbjxMKabWP~D_0#u8RV-9M7ns-mX5o4#$U9!rFKp`%o7Q6(aOoUdqKK_9d zrq2@u3hjh~JCiQ>>;Qbss-v%+dh{PUY7%ZbQ(_Ugq9mT4vHiu%R<6~cdHc>i{f3Lx zSD6oV*MtTFdEs+bt#0F%9lG|0-PTkHE9byt0Wg4_-~gp7)u`XJwHHjUCNte*1hoqt z`hvh70J+y{;2~yE8$g1UGpm*OvsJAPgQh9jrYsLwLz@+KWU_{Rp zhe?sF8nUQ>iC|M0fS)J7SOb;$iY;Ut5FZ4$Ik3!pS@=47;3L}LdtnGQqeB9qES97f|JPPAM_{Tu{Qj6BeLA;oQl|>o zbio6HgQ=5!&SNA^A3LmX*LKb7!J87S_Yd%{0(EnhE@af1pB|w$r zAW%5DI5^G6N1r~jXY=YsXx*TmsJJe?Om!k12_(@qV{qYbA9v+^1g`hBp>rpX8q%k0 z`{wR7;i*`V2nFb_a8#C1p|TlQzzm!@eqhIj<@2YH8!@1VSL?=bMrCUOHN;lvt_$;w zz=O+oZsGn$qc^QuG;30zfA22sJlt!t)xd^AbQ?!Onym}KE`=LE{&Mu`@V#5tE)AJ7 zW>|k8uU3uWHHvs__|JW(-MBbOTFy~00X@ZCedEf7$YTd~Y+SKm#)N=Dy}Pt;-k=t< zz(@?9<@b-#whCo5&b@f{=zh}8xQk~`9^Soq&62sS3cYDskI@2%o!3#LY@Wr2bFk7G zQM{uc++iCrXxld|M}2|*eY$$KY=nparXN5Qo=z!6R#aw=o}z9>#2a4H582e1s1t{F zNu^_l`}OSHt~uOut&9f}aipETY#{`pDn`UxmVU}6U%PbfbU12Wv2fO;QA7LrbZXPg z9p0fjVFHTl2pXxI{5brilwrP!c>U@H8h$t7`jrc3P8{03dF|49)5iz+_vzNLbyG$? zNO^Rcu5P-1-FV7Of4+XBNI}|v`(_+kaCHBUjjI;VnKE|7z}{Uuv}#fhId`1-9<0P9 zYy$>>PF)9H;<9{03QswDXhhV>!+W-_U%qfw@Mw%d7tfYLq9oun@@RKG3D&XVR$Uy= zUVwu6I>-om`QjNy@%GJYn1N#lccCNmXJ8-(2#xyias~1U!{;RLg!Dxd!SzcTuV1}- z!GT00u3kKQDt!Nru+^dSrcVqK3ay&DBliy?M+*Yv4B?av7n5lFFVfz9@c1byn6HlN zCM4a8k3~0*?A^X`)sm3u6G)+Jht|yyaKg}OfNH?;5CbYvN*U7gg4Pt2P_GRZ$|K#k^cRByL4#N93IkDD*`@4GM*u1?RaGLrMMf3ckVwT z3C9ae#`C979^Jo-$%u_P3le*_ZCo8Xf7ax2fkXXzclU1Js#(K&HA&+)#vA^;_wb1` z;1F(t1cm|~dGY-Dv!{@=*QX>OXkm-I#EdU?B?B} zZOdk3CeH>3vSs%{Qn(yo`yep{Kz74<>L9MQ^yYP+qq@qn&pe$jjEr_P+ebS3^~BAW34?Jyr7ee{qN z5^r9Qi;amsbNcuZ^aLc9FPT4Q#*_(Tg4%ZK(QioL_-S(&qaVBWho6W%7ZWS35EAAi z_3+sJd!TUZ`n4;UE}V-*NA~Xqi8U)i7lzE9-mrN)?;ia@Vd|Vk%hzq*vG4G43LafNm<2SCy zqYYPxQYOL7#gW3amV48d?Y({2hOxoZ=Lm_dJNF(qa_nTpnRB3V`O4L}Yw_{dU9PKm zb?syvLql~7ekGtAqF|c0>4+u_8Xhz*cm@cpSi5n{_TBpqf&y9*eLm*mrOUBbu3n9E zi931~swZ8Zam;{xK{C?@Xh5fKz54qPA2kjwn7?HC>h)n;caXx-o|2P=t6?2o?ttK=s=0jhnaj?9|P-uixO|fnz{pR>*?IOINI3 zyCH1z*6llY@7=fm;34P~gaZA}5jsFL12m#gQ4MS7-q@p6JFhN2z4{FtG9qxy_~5BC zW``_T6uNBX>b2`PhHc)m4GeV(3hV|`oC#)K2?83_u7_aAHlCfjf`;GVVIxP4oiJ(2 z^qF%)<}X|vx@^Ttnh2-~(~aPSNGpKgl?UimXa@wXU~Bmi(I`xA8{b4EJWCgM6F2DP04}@Bpd{Awr-CR-FY(-8ma-(ojKn0XV>QA6T zScw%|w1Rd;SE*cLQ6*Z8I<0^K3Hq>tHj0-(&Ch#n<} z^Drcas#OVR0GJyP2fvZ_FkUOk(sYX|TJ*#W-_h|qIsOHqo=*IHQMo>p{-Pc1GGAr1 z0$zrouF-0A3;XQ2OHqWXDctrq7G-AuC910383_jI^l~ zwJw&$NkWOs8+_G8(VY{1=%UgGt$Z*fd@vcl%I_2++zP-Zpd7>`0?Vo+ei>EpJ)#pJ zc)7fG)d3RVBXvkUmcAn!O%E_7AR5{21u>BM4z%{9;RZW`i|cnZK3GkEmM%TGI3}Kx zXbXY_NV;!_Th=rPu}0=cmF|vC%S((i!t)V8&`Q=u!YZB17wOZwAXp4>v>8;!L=F>& zlj-G%!e(WN`#KAXv7E|e0wK{Mp<(K)_{>=tD8gC#fvi-a0{Qal6o@ECl*4SuE%!Ad zXI(NozH-TIW>H_OtSVcaJ*|K~%L5jQp+rRyl9L~yp&G;nz#r7ltM6RCRo}QG52OOn zOUw^IcVl8-E;mH;5Kjm(wUYa@7(#l0_5eJFJRl)yIDbt0qxqA{c_CMBE;UB)U|kpG zy7p{KyrcSv;U%IE6A=PE5BPWl<13I~boK7g zu5}CKpmmoVx`?9!YDgI%(3LDv0=Rc+imTsL303mEL^_qP01U)xfT7~P1*6ozk8k%b zojSBfB3ch1w7N4NAknITtyo!APE$!$R#jBhv&>V-ATy+5ZGs5FR&Cl%o-j6O7~ ze!YA8bnD!yqh~uJDlz9Pvhp=(fM_DINgw^zpwo=A$@wvB4z+S+UrNwg-<4jsKZb?(x&yN_?L-hKNI7zpMl zbkY2|v!+i8o-l57P{4>`L;MH&_3ziGcdwqlJ$m@~ba(5ne9rXn_3hcKcOR7S8|XiH z$gtrf0|LPog{@z+a#`r21tD{0PM> z@DX@FXw>L2W5SK z7B5;be_lw)+&Qz=Y;%@lrpqjIwwhzkbqk4~dm;L46p9@`dgRc7{d;%sM8VBr8#k<5 zyJq#Ol`EDnU$$)N(ohxp)e>{DS`@o*!Ti|E7h}##p;ISN>hM7n+kbp4n&y~!RE4V}XE9v%cww|SVJN0oOUUe*(wfEXGAB6Wgd;)L*^}5xM=Z` z(9oqzm$@xdOCv*&j#l*z#pCyXCEdQ{-Z;X?-x9KiFSYiBRdwo+@bm`QwJ<2sh6fa^~kyRAPW`zrO@8R1M8@XS<{sRX1 zDL-?d>8A#${^$Dj<(BWklcSSYhxW*c?EyeHIYV&*Bbu|YWF#fhvK%7b-knuv*Dhw~ zDDO_4+|%XCrzvliQ)Q#|kxqoRB1o>wLa0nI$0UYQ6gcVANlYkk5P->A#8E^Q zbt$3>Go9~c#E9mX+Xz+t2zXK6y@C^Ig+=1l|51WEaXG0xj-MTQU4B-1RBn~)Dl$m3 zgmr^DFKpW7wa&>E*C!3wD!bzcw;YZi%C^l2pqWc@mWyah$jFB#)54FGl>Xw z7jR;(=^S5}l1Y`nF_MzVCMmfn`eeM&3_f-DnmdPGfNboGl+p{iW{Gl=WbWjrwM-&7 z)jz@hV5-MXIwCP4!j_zb*e!G(^%YdZ9&j>vROs{2@QI7k`f|kfQNSctJn7l;_!vtii+qMitcLvrEkgA`F zT?Ix0YY9dt&9^@gIYWBJM(UReli5(e{kwQk*t`Dro+Xw2B6z>%` zV~s{Wfm{~R#jN^{K+ZGgOPZaCTa9Ex{#0m&L+lXuOt>(O?lQ0Wu3z0_FZfatu_iU?W(5OFh5T ztkNV%)gl^GJ`})c=8<5cdg2~7Y@`|m8T*(~z)C(~#piPlo$?g~K8Y*m#*hJH{ncv< zCPR~^0-`BtqU{#I0OKsHWlSI&P%LIf4#3})XO4RTzV~R}+ye)^P7^J~X|{k-%E}y% ziXj7{<#u7+bfD%FqP1l!)hfu?%R8bGkRbrq3)Mf8!U}k}riW?2ZD*){mfY?miOw*YKVxjQ}v_$SK+^l)4Hf?clksT%!DvDPDcB5b` z&^U+UY2Xy(l&iT{&~4V-unE)&ZQFZx^fJ9pcJyrDMv4QMf=KCkkVr*rdoV@`h5%*j zB4~9AO#-;|j-9+ao1G_kgRO7d%A<*Uo$8eVEFsn+4xYxMky8eFNHAGaF#teNG0JxC z(yd$f?%ld|@%94y0Is7pF;;b=Yb*5z4Q+srVD@z&Lo!K0)8?((wnteo`aOJ2-;=o4 z!F`~1fG!cXQiD`lU1xEVI}wXShFZ#Y>E=*1ug?jMt=wsy(kuWwgE&;?P^46=Db-bm9}@6dIm`dBaKF*V(4A^`wblA z7<3B4NZ;Nl?$sWRr-1`_v@p-vRz{keuyvJTcy>gsQW6>){~<$$nnSM*8SGCU%9na{ zKxK)EMUR|4@GQ<9Y@8BZkKZ88T#XC}7zuW2=wQfGy`VvF-#WQ+=CRS36tE|16RX2` z=RbHTnX({AIpoJ;MU(=!2qqJC|E1$j1Ew_H#rUj6BN2GU$Br922K?W!!2_whN56qm zQ$wIgEc>EZSFL_4_&5c-PFBGe$v2JyW9vVl5BlrrY%r6laFe926Yfnj%^5LdIfEw( zYdhGlU(fE|mH~&m1CzvbLfSpf?&%js6lAPfGiOXgxpAWdX&vb0)44+%yNeuNrxny` zFou)S`FUiDr-`5nhF?nA17q6&ExbZ|QdI^cnxdsu1~p+YVPTS0RDuY=L|Sz^@L4M% zqj3@9Eac(9;Y0lT!iM76S{tQ!-oQYI!H`Z_hICHe zB0MBg6v%8`BKd(BGMU~6f|QIglO_qaS4tB#{C8r94(i|Arwi;#+=JM{B{jyUfJ-`| zKJ;47YFwk)hUOzcFw>?711DxffY?*NtG+R=Lx`cBi6*m>0+UYzqHWQ|Sn6>B%*9Rp zTBUNZtkFm))=qd(T3xf=%WfoqRwV$@69}1bpWweOKTFPxv=Oixw`rl{D?m4!XZ9Jqw6>2T;@!*gx6Zb&bJI0n+kM=9+`>-{#{g`=1)(cSJNG`4tLq+xs5*v<7wu40y%@f>xC#<=`%pLk*1hW9Z!U^jZg=)mA7&pA?3m zrLj?Yd)uJe@Tq=8fsfXB`-ruw$`5h`1OhxNq3`Ixq3bDNJmES^eWasH1&ybAJLwDF z9;ZUa3u4mA^^sifuf|I`t~AIfCXzibY&<7>q3>9J$B`;*yb!08lv7j0cqx30zKZ3w zqQ)zpeJQ>vX1sRZ*78bm!!!RQ7oWjHZy5Q+7pA5Kk8SwLx|I`dH=u_|!m%Nd#QP;sa8+01lbpU@$g9jei zfHg26H|WoN>kI2M{=vkrOWx)^RBHW+Td2jdCBvm({+ZXbskZXfa6$Ax(C-pBoT&ftm1^BB)(!|hW#JlXLS z#8VzmeLQXP_~IFcCm7E{JR9)r$8!cxJf6pRJ{xYI)8WaEry!p4c3=PuK;s_`y(wzblf=Wq;bayv`prmwzf^XE)O;gI1&QEI?yw*cIOPIJFcOON<^LDu?#|jnh3!+18nRhNlLtGd^A# zC&dxe6<5JI2KO<$?ooP%3^6fAaI@-aSC1((KTq{DY$`mfoj!}%dXrW3>(6tXgtcq& z>`T{IZm;039#a?72VP@H+Q5(hKl<3xrtB9-XLc{;^0wODF*RW!C!Ji8$cmX3%H@ck zF)}fM7@PF(mt0>z;@f1{LOg%=ERefu_18MGLC)F067P`K4(*PDloSJd630c)S>E$b zI{VRjmr?G&=Q-TqM>Avlb9Xue{?^&u68UY)sBmy_6k-Qgepqe5&4$-wNye@=)IzRl z`^zvG4@KMCG6FO;G*~0iRnqCg$>mbtl07bC9ZD%KZZxS9%qzCO-_Zb5Oa&*AqFNaK zZ+~9ohT-mr!73S}sZJ8EqrlSL(*x=Hu^A&aX1^#yBu3VD$H!9)j@l zClBNkh1WyA3;(=pDJ~x8RcW8%C5X(E)X-3f$JEexh>cDr7sML5=C7_X)sV;fC?0mo z7RkdneC#Nkxqq;|E$rD%ARtRbE12^Re>Y9Z@e2k$78x@Zalz`)dq)U2KYv|yZtk*j z7D50o*pWJrLljK`&2>7@7wHLFvVc@ z;e@n;TBZ13nyh4m%n5_#>Gn-Ut4I9|ly;KKSUi731G|j6{#&3vR(-(TZ5ja$zaA@g zmu41Xu?Kl=1xbtMr-IOKaE|CfZ$u$WUIs)CPPEW0L@w*lZu+X=&Dp>zrXa+1Joc)% zI2hsONL#q!+(@WS=0T1dhQNYC4KIH8i%&bC-M7oiaSFx?!9g8s3DM`0@}|hE3wS_V zF<6>OHr#_SP~ccJ05`BB?!0h>Hu%|z*#`5b-^sx^jhEj$Oy-`Cv5Svm;<9mAEm1jWQ!k{XIV+2bkm)lE&P|Al$r9bF0AW z{-9R3a(1=&4!!R(>{fnYiEa3pmUw)>(=!_qxbR6WSIP{Npx?=bo&}@5z={~tc+6B3 zz7vBK4fySXZHxVOfCI-T?(Xw-=Fh8<$h`AK|dzbbK*H}EL1NKq%3 z?|i*^^`_|8R;SV7UNB=zBH{uM@|OKeek@E8{$xBvEC`B&qtl4>JlPlv+f;CPQ#3;4 zAvY6a&cS3(u7j0P?5M58p0%aglgK=bZ)>GsmCeYD>x2o*lZwCf4vQB{Aw(N=|95sL z+cK-ux(?*xmlH8<{8ab`y~t}Hv{D^bqk-yDhZj&OBV$*B7sOv`CUSBOCwJRYALR<5 zV_b?85Uj#Q;oS)27H1g3>!ytn+r^pNwK_|ZT=GTy*J*9`e@i!Ki+9Po_KlBKq`I;1 z3#d7v<6+>?;HRYM(Xm~&+45gq8gZYuk??B5&tfJnaMAIFePys*g&)`nbTp$yBtFW$ zOVS~kPl4tJ#9)1VMrpFHi7kjJC5ZnNJon%%1jLV%6tQaxl?2goYGR#lm9{SreT;q5HTw~veuDsY( zqYT3FGfaAa;}DgHtr+jBHe5|RY+fVM)Z83^Jc zYx}PkY(aCnL)*nIl-`pOD(Qyy#aSN*0|#8yBi!hTiHQ&2l#=~JR~ue|EBZo+OBu_; zyYgF*v4*^HhOiBkkj+C%1e=-)6A};Gl1O-mrx?$uND|qb=b!Db2Ns>=Z--7}N|LQS z^{sH{=NsRxL((Ah2PYUo5MObI;7-PC|8~MSNyb1)Ms9?Ve>+2`ks9>A6T^w$aT9NY z!Z10>3KO?F+2iy%kbyHCp4LB0LdkAq` z7bLhW&T_}nEbk%^{j^ktft9+U(T(LzYz+^)u&qs_j3g`==J z!xE4@S9teIm{tznkhjS2U~bU#M+svrV-7JU+OnfIR6$Pe9(oW&I+ys`U*hT0r^NVJ z_wlh#5wTa8%)G9a+V?Awq807%_?p+aVO>#=9zBw{>R}N-a)pt^*)gv4CUVDegE)S* z#2Qv~8-lnffncvU5C~ToYks$Y;uXe{XBrhEiPkJ0u?{S~l8hZSj{~1@MBJcREF7WE zN*1eHsLoE|=D3Eu5V8+x;X1A#xRVVpRPZ4wekV4H^o=ej$|YU^Ksw%qrn{%5qa@=@qq%BWJ>h610PUsyG~~e?^Hpq<_N@Vr6+Y)?Z&6J4=8Zh z3i_Lp&HW)WBA>BR;oIv01X7`Ja$wzAfjI$uf4Q2+%9K1TMJ8vNR?tpQe*DxrE$J68 zM}gHlOi2<+1C6QB0xLP4B-6A4^2ds4>SS^}IP1Uveaka9weoLoXQINN2K!zKN0i*h z%>8+AriBzWTs^xg!IZK*y6_!^SbJs>g-YiNEpti{tLf+zH4~#pZ*N9Cyr3xLRulTcSpGFCM1SYf`n>ezWIr&~&kpZo%rv{& z;w!!w1IgH4@BL&qpz;1Vvba;+nIN8P5ao zm5u@i({Sdj&SSkFz50SzCF*;za9Q#8Cz#@7WS$wHN&+pG0N2@`{oel0)wO>BBN^@# zct<|4ygoJ7U!X8);RaW7lHu}Qn12gzjKF(X{OF__EgwNvDf*B5@YV`lD<2G7IoosO(dC`WoWLvSst=d|< zO{u}jyE*e{nRSI%;g%_3kTGF!BuJJgRaTUKW*LN>+swnrJo==cyd2+(x4#z`n|}L? zqZrT3!Klv3-4fi*rp~xE7?05Y|QBo(z(|0GB_Z_utHoI zU%z=1a(U?umbazr=60GLZlK-x-=|%H5X$`|O zTteX)BhBn(a;lRZ>P{&Ug7{{}aS&4qFp`M=Rn*sBlS_EfTil|z)`aY`>TlocWWCjJ zlhl|J*Gak}m;0E6#WZGYBuo;k&6?AJ13T$+qD=xhys56v-A_YfDs|b>(~pr@dmnir zNV0$%CT(eJE6YkIt*=i-n~0p8{P4oJiRR1u2fZfui;MdT z3kv*ChYfF?uN?f5>6q&ZEx}(i==GHG8I|R`oXl!wXTqg((}$dBVI!vN{4MA`r7wcZ zYZ;fHkhnALGf_l6r2foA@{y4uYHRsv{3L55sfPL&b)6)lqT)aKR(~Rji>>M%X4Z|` zV<8=)XI@ThE_E9l8+`=@1qn3N)O8@p%Yr10-m{XefFuNBVPbCX)6me%Uo$iLb#)Y{ zr>CeeadYFdwzeiF3_qPUasB4=WQ06BBjb7sA%51FZs>op9*iS9xAw9_vJ296^3*^1 zqpXPx*cT$ttbmwgN~UETQ;pgOv~%b^+MOzthjB$UVbW-`wiJVAB+s8e2NyaeE35D1 zgx92s%A_iVzF=tGdF{-(xY*q)ZMvw~IvLNXfi4!|vWUa4dNqfiV&Kf7s-~XIW!PrB zK9p!NH8qt!?(cAte2WSYx)VV` zL3eG(Lu?FV2xKH)?05eC$go;ePU<@o6c+x|U^`pQg%rKZJ{%XH*M6eF!& zqsJ*0=E<2XBTApW%FE2m%q=GNIW_eG9d)WQ7FZKV01(R=-m*99UyQAnoOU=fu(TSm zt45&g>yYlzz%4AEXu`*2xEC`OhV4a-jTdvp#lKSd_{JPH<4M~`&&`NIb$=IeZ~)-i zso!xz_Vss0>_xQkmB(-85P};CWCFs3P4}>!Xv~W3m=mN#>E&T06PbO#evvW7VXqts zf-N_w&t-ino3uWkR9Fid(Fn;Qi9`0wA}MZSFafCW~uEkx3EERhXotJ2cD8ap^fn@C5qcyj&p~^Lal8W>j?=r|C_((ot78Djfd-g17a8OZMRdxG< z;B`KzQ6Q1mTBX$)YD^g?Yc1lTLCNv(k{_WF+0$RmHIPl(AvZ>8w94L{g19aa_|U!F z)YK#_HZlc*8GOU8Q*EaDGgCR0b868nZ(>trM$ct*&(F_K4iYJ+trS+Tql*s%_syWa zrn9rNDUnU0~*5^ct# zDE+n?rnpDjzxP(7c2SPCkk;rs{XsGYIZNOd45G0Oi<+y9C`1$5v2i*au{tJkca794 z)ppXcv)kLTv9a-k^~hx?f-^5JDLJ+FmQ#-%Ue76hdVJwK;{q2uYvl6VQo6F8iy&7{ zp#dkI20yE{`^&$7xl_?Thd|yCiLx)riV&_)wKNbu68#h%vL*mi{8_lrXYx!;lut?jroeb-y6nK#%F0XL&CN|oLnD!p*qcI2POdit*325|%udmKmA-hr;epBm zwCgYCBtzFpw6bRzDDS_WS0Q^Aban3Ao3DRZFS^|?<9S0qduinZCtoM=~9 zSE*=dCS^3hH=3 zt`_BoFmXb#F|ZS6Jpg%8^%dj?RnRc2NAIM(I%3!p-sF3`lsoEQrWi(6E* z6kh(aaFST=8Sau0q!|*y9}-8(y9+U%t6(QqXxWe|WjwZq^bk_m^EV$Rb0}+880fn! zcp>zwd@qiPrl+U*<4tn1YAL8KS)P-=9LeHj#Q_3sn2C z7{watfV}YaK-1}%FGz*Wb$aD z1UWUltPQR4Zq5&i@w9)V_1GQP&GmkvczR}hkC4Ul3m(A&hVrMom{}i9a1$^bd{=1} z!HKf?wG^N!K|KT zhbdCuJJf>AA8P*EAd7x&>#wON4!6M`EUD%J{|^L z{@^x1f~{woa&lqfrX@dAm1fu~TAW8?0e(bmpyIeAh?gq9u8 z1JE+s)XKZ@BrQE-g$b+AU$avH4hR!uk%`5{nB3flpe=j|s(74&Wc=3$kTQsSx8G6P z8_yve64mPqaPSr$yBeV-bc>fb3bN}t^^!a2)|ijBgEGkRScOJW zJId7%OO1+w;jR-Qad#mitNx|a8SIkszr_%kq9HNnvMxkgo`lx?YBYZBD~-J64MOGs%P{Sv5PU<1U{bP8T}0>IJ@tg7$oUaQGXl9y@{o-)@aR z=-D*}h5JdQeLT(ZZomDWWAwbDq9=|Q>&fi_TR*=sl$Dg&!0gt$m$`XWLKY9gSt9|` zDm$C^SVYhVTpvY*M?tXeW5tppL^cl&D)d{uPXPyYmymAw73x(V=okzQx{sqpj(e}w zI%DKJQ@JTPyEp~R3*R=#(vy*~;@A2O1T2o)Xx&>DtA6#yY+QrR9X@%!xmcyncsTPP zYUhOSS4dV-+idQ4kRSLR_}sy(-w%tw27s4|V@)QPSTOn#o2u%M+S;2PR6P~rU#yt& zz@_+U0ui#8xHIGNvIYo~0nOHVRd~QU&^^!*kJz*!lATCtdJ%-XTtI*XAfhH_X2Pqg zo+&FU1IWwzjeE)vV#a|5^~6`#36gfgAt^l6XsjvC$oQbupUW}c_)gU+S4)0{oJp0t z>XQ8jNbmLQ!FZev=3u`Z%8H9u2CADus|rzLr}%bsbmZW>&SrQ~t7NfNr!NXp!$8$V zV^rQbJ!qC#0)-0=dHKb@PXFShp*JINeEm?5m24xl#M{Sb;_u(6&Q7UM(a}sGoF;#u zL5MI?9Pbx9JJZ+)E@Q#$o$1$M1Fav5O0gd8VQ1H`cl8jc%|W`^6xfll1OKyTxcJS< zWV@cBVf#Z`!ky=}1H8wwOiu7jkA;iTfB*jd2%~X&=hL%yHqZm97L-7u(&zzb6WRbp zz_YIoai13pS}3d5RIkasr?F?<$~6Q6fJMN+&(MQso4POH0=^( z1Wa_areOzN8=D;#6vGmnj`kV2X=nkt~Zxf@1ai_A9=Iis%MMcG-q_p%GlIfe?{K(SM5}(BFQOq4y5~a{K z$!~ebljS%C*!0Y=U!o&Ub786&?a$1FCIJsO?^W_!A7QT zoo%Y;zgY{Scam^V`gc-Mrj)<&8KdsgUIwKMni=S7Xq;L=b~5##4>m_N@BIjlpcCA5 zOk|B5Ft54X4nUpc=4MBm-<9LxlGMrB*&~Xm!Q$dux(-6fv#8F&F{czMnL0?2lS^>; z{g;vQmJM`ErC3&@>q~7^OgL!-+H;(vJD89{_@s)B`(OAqD9|B*+&HVyYpi}p96I?{ zW1UYWgb};VQSf?trgh(K4v(wlFn;P{<+#QK;9Z@Jhti-6rNhT!z#KO_Q~FxMu_v5C z8=k4~J@VHlvM4#RnP;M+pZ53dcmLKC`JC;`d3Xr)_4NVPqaSVVUJk*=RI52ghz{$} zCjX}H#Ik0!6E&~kZkJB6oWgJ^xd?@E#I|Kv@m>=H#@MN-yP6{&S%2(nrZ{3l@2zj` zeEj@vdRkf@Nd;DJ-+bvQu`$O2=64M0^GZre_|iwM9R+3sLHaj4%Ki}#^IJe5=LysK zhPIf)%(c`F7)@*gK?~gWly=Y!Y+Qb8E1l23T`6$z;OgFw>F3kX$YyJd{?R@4eH%hJ zxG`;?K*ulOMO-5O&VZ6xI7#xE;den55>_bldg=M*iNM6{tPsDr`0e=iR7pB|P>0pp zHRvxbGTf$hDpU$515#5`i0!(x4I~(_;&>{QQ#Oto>+0%oDfL|^2t?rl(<%dzp=rB; z%lxi#7>Y^n&1!UdOr9yLs2GEw1jlUY;Lx8d6TbOCGXQhk=9ybFL_LZ7ZR*fUB z+>=A_*KnJD0#!)Chl0;mPW2(PTQ z3vbje5=mTc=6ADJIA=bdPQ}n6JN#{6{lSu^IuA+5%Q%FipSmu>lZub(1$cSChL`@^ z`x~B>MX&tom5j!eJH!JcrLM8*M|z}g^kk(Ay}h}S&^rH|bhnk-c=Va+)cUG>BUxep zUe5kW$~V%VyaZQg2M3AoFD3xae1lf{n(Uq^T!7uM?Yb;iZS&*8!ou6sY#AY&k>`Qj z98{wFYhJh3&4#QLQNp6TIm_5bp$=>K4>OTe-=?mJUwy4&cedNmY$YIzu|RD(u~#) zU}@2THY-9(S`##!;Dt~anuT5p#RgTJ7nzjF@NJa?8X3EV!fB*+48*9y#U8wUR_O0 zPk(6jIRlpg&(zd(oVTomtUB_q9zoi=U}?cxQ);9Q#YS~nqzx9C0L#C)O_|=c+o$tN zG29hphx5w5J`J>!Ci#ZYtL%xV7#KQ zi^xEoL!pG(*^klDgaB*g*4HQh&~K-#AzwGw3buEqtHuzNZOBfu(d4sFCYup$BEb5r zCGl&Wxdl6Fb>cHk)pgtC)(-$Xxg=V_)2l$hQ~}Piw6wIvr27LwCdh1iH5ZEyWT_;h z+mHY=ZFx73kA?g&gq!h1$TEQd?FX&TI5?59F;$RlWa7VK28uxN(=#H9hhr0U9V0lU zHTz(Vlgdvw_@fQA(9_4iq;n_j*;e{p{iCx4ZC`m^-M`mT#MVG0q0y=^xUrR&@BcD- zH^|rpIo=L0<5iIn&z?zGH^>a1viUjbI!L|FE2_X%5*K%Wpjz~Gu>4QcftPhb5u06p zR0&(|(cMZKJT5f-%*qthFx5f3n}184A*28w9|0}EVD0QGd1iXL?dofSs&`#kncdI) zs1+)(Hj1^LhSOAadHH})*4u_W^&2*w<+OOcX&h)Bf@^c;Cf_NW-R(o(Abo`PHrp=tDYD(MN zB~sxC20d^AHY6D<+dzrbXUXvo%Oq zeyhKKLX~PIH{%(*ZqCBY41h&pc$v4iH|S@-p?MP4@Xpb5hw@=lB2f0=$y&t6e-;e5b2>mGt4mhw$d6rq}Nw zL2QpsdLhnv4A*64WnCy{c283-I5ICsjdcV^ca&vD3Lk8 zp#xl0jGKo?Vf68pDMaW#(fQur`haxA#oZ6;O_#5r9bnbwVBm zUYeWZl$qa;jQ#lIfKFtJ&|A$@RXwG1KddZf7QoYa=E%)KrZD%TK)^2(g-rs+gb+Pl z%ZEO?@7{5;QAD*f(9voEg5rT7l|oBk&knNE1u@oYk?rSR3INcJ%}lvi zbAA2Ut*daE_ql}X=2u~ii0}|yvR;8J-!{4wyCTPwKjXl(;(6sN=Iu3x8t_8ph(*k1e z@)zKURWGg@0#PW^JE+hyhKY;}xXrkC;M#?cSeq`#XxO?RTvg za^v5hKYzIN9Xs#cT4Z@`H1f=i`p%JK3>K|S`i3y%xm+jWTLE$V3-f%A2C>4&#x?RWOks|&XGh}6kWIUDc@ zz~6DIh0lb9ir{tIo12oLSK~?jq>Zbq(y(4eO(p){?I6mOJRd_+BsO^ zK*u7}trGYKEZ8(l&nIthuHN7|j?gDd8bhis;z24H{36;Lbi$i1w zw4Gfe;W6c)q&4@N9GwA1B0k(SMMPa%2cMC`(2+B_8Agn4D{%D*Xnq-qn3TBmC!g5R ziAerijDrK$>!L58W@k0^>6ezts*ll$>MsbnJ-O**jLW(ik4K)vUG+Sd!-7832>7oR z6=q#Nzxw?^QjhKnpk#pzQQQvs{wzeEGr1-d8idyB6%-Cr1m_U(A|C~30F3x|uowfv zp=Z_U-o_iZGIQO=C-^^ha+DA%8Jc*Qzqjp_qaKy=EjE$(-7Vh!s~1Z)@ZO39ytFHF z@|8qu{inOV2KR@eB3KCjq8RZ@%bfD^eR{}fA4}W=byr>YN9-f~g^0MBco`B|5a!+g!)aT}WhD zbYZ6LU+v!;|GUT?py;zFo8owM5oF-g*POlAX#=*106y`Lp^3ZZdR~|LztGiBK9zWi zMuVCJuGr3w7oa#GfW)Ie!zL<>P5kQ)vyWdNapUGN7ci;gY(BCW8xxyz>?T-raByf} z-fupL?r6#H!V$QN4XfO!dvZ|;==EpfKsx(6X$4x1;Rjk-T$wM&Lf9R2*(u^)egoZG zxq$rc?rzWKCM&OsNW|=8%gkvGkKk~9QrQyDrnTC6&BW*6!0;%0vSMZwV8&f@CPLPED|o!?u{7Bw8~g=dx$R5 z&>?o%fnm7pbxYdE0@51jFD7e8_Li0~Nsr$FQvG>33Ls5Qed~UdK1!ifIJ_j(HYq(U^AZUL<)Q%O049*jtZr^@c&-9pEuCe8RuyPJ*%(Xt*^=gGuzj(&a|DmpqAJqgx327yHsWqPcO=`tkAlY!Y@erKy)($IcDWC7` zab<73Z^}bg`KrK$9}zft+}uCkxGEAyRDhBLKo4rOijd4evwFjm-4b446+YSkItZZN z{ZGIG`y&h5OH}*z`9;v|11){WZ0`CYAJ3rh$rC*+q5@Nmz9eR9J_^fUW$9Jj8f`t@ z+OEpkGAz`R8+wYRAPt0bTg3yX*ePK%Y+`T9is~V{k!qC@0M&pcJUpyiNb&>hJ%kYL zoNX6TQ9@|URv4B;C7Plt8_|IY!+REyU5N-jko5zaxIrKCx}EB*@O6>U-t7FEn59BW z5U^MX^#*@kFtxSC2k=PR(2xPN!i;N zjL_K@`7v%sk<*51U3fk%qI0R!l}Wni$yc*~R33TR3@o^k8=>W@B6~j^&;(QcgJFt5 z)^~~DSYHzpj278Fi@0Lko3$`E=jP!F2K^pBK1hjCXdT(l{-(_rO?MY@G$$wRYQAv; z2|<-N;&d&*u#n)OC@7Gf zWn^Sr7fb~**hYtSKGbFWgQ>DWNhgoc?>9I;%1}yPp@8*|3b`>sWF-Uv_6h+SLVIxT zN7xgJuNL}=q{VsjpmtWbL0hYhUcDkh?P8<}bqB@=skx`N?`Mj8tZ?4d%LU`pE027p z-G4E%wEW}ylvBV0?Exf}w5jQ^3$J3?%OCG1)K|Qs{^`T9?!8jBOE2?7#+z~l6-5|H z=h6}*3ONG$2SAj>rMPFIpLvOLOPnpE-2Sh35`7@!$`vQSS=rOA+*TM#9JWzTNmLtGD zw#5Q2KR_8m``tLSJvvlDQX<5{u8$*`01*##$QSbRsMiGTEBG<;j+>Of#xqY4%a5&8 z&j#`gC!d=2f>&K5r07F-Zyl}viK9JxSPH1ebI+{ypxZohxrxHv__nw1UPR5Yi8?%) z%6}j8F~FQu=b+}giJ#K(S6sQC_Ci9OEp&DGUYH#knLJ(mT!~y4yf;95=Cq!u<^Kh7 zA*7`Kv+N~Iv3fVlCTWoy1B>86y!=BOU%)z`=x2af0IwciT>K33s@q%4MZm__bJRny zmerUAgY=D;{nv~cKtEFO3JPkoVRxNv`GE?Ts@zwno=4*td)3z?6ojpq5d#9TzMc}m zSOAEq1H)g2v}>%)J+b0!c4bh_bel~iBYkrLNr7*N_kTWLo%KWI2OCJ*7MghSaIPBb zW^4IK2DBAE%%l$U0!a=9bb#ivylnjG^XE8ghiyxv{W(ie`cGSe#UpmEG_M;vPR&%s?Q${H7Bp z^aUFU*dk)b$@O^!fvN`zFN$Z4Q-IXGaYr(1ak($Eo}7AdmIWhw@LcmBEp-et(w9fPnCKe{BuM%)$a}Pmm?`6nI_ru+IR0 zbhpapkbM&;SPki9i<{`0eFCo3%?L?awVPUM~N>pLEhFlAysH5QH(z^&{C~*tRXt@ zA7Rr;0x!)CR9w^^0+k_C6{F)hFViN8gYI#IN|KU7B{?$J ze{yo-4UWLbm7&)}-GjmPpx8ObSn~`xfk8|FcLr)Le0*{w2)L1bZ=?P&NeO1-eR}t@ zS)GLtU?oTUO3TN~tA}B|p#ew%87S~CMAJjF{KOvbN^iTWJjl!37iw0>Nrq@{I%0wZR3c2K$R z@vUS2m%cz)u=yKzPzO*iKer7e*Bkcl#YkYlF0>rSr$wS+?}>wVM!7UVKGkN&Qj9mp z-|ybpWn=4KUK59C9sm)r2ePu@_oJ@vgP-^!?U_{CV-mzNzs^2$>H7>X@{h7$=M@p+ zx40hj?!!S5vys8<|NEua(VPuS!9);kDgXbB8Ml>g;w@`}rT->M2;+P6P--@KCUAyC zd$H`F-QxH;xQQ`X!;nRN|fD=-z3lgJ~RR3YLO3^MB z4!HNvjX`tC@nr_hawjep;ESmwhk~#sIzyl|Cw(YD^Xk<_oU8=TVsB(Kir!_ys@%R5@p$mSVMY& z=mqOGGB?MXwbksjJ;&vomlrAz8ErBF9}pdEF+e3-9Ek?hJ&@d`W=_H&rhWnQLPb7! zq!|yenh~N$bTnFy4{!X+o9BdffphPHn5@eJy1ac-M6q7KuqB)(@b|g|05A(~^}I-2 zi2H-N@OK}sD$~4rbN-7H9z#pw#Ha8@yAAPAgDwJu-Goe#jZ%*+)x!HAPQbH3hoQ`z z02wzdxT>_#>iX|?V+=@#tbt}P;8CFWC7L=J2j!<@T!KprVJ`z$Y`{v|Iy;#2>3zIe;x5J$knj(H=1`Sp#*@Tf})hb~@9y|zQ9Tm z3TS-EdS`~GzrUdNA1n4kBu*urzm-(-^F&ZAVdIH)$hu_6!scU}!QB!CSe{7i>+_)o zy|VPvu~FJ^5V+dyZ2$ePi z#Bkv6)R+pX9MjN#Jf5i+F}odHY8i`)GqW~g9l+FypoM;dJWNFN9VTj7rj*^}T2afY z{}MR>5em}2W!m&I39UUY&U`5nb%Nlk_qvVaVud*H?dNw&WrWiR3Wik-*d*}5-xQIV zo13G|u&iV}X$1rwZFV044GLbF9~t?-2QoGSy5mL^-u}^FG9ETO{n$R&_@5w-Vcb@y z+3Y)XVi03ruzXS)J~+ED*m}MDZ+9Loi8r9E0eFG$PgHf1P7les)2~=5srzosG$}Jh zWBOM?;|=q@M@iU2NbSDk%YF7=q*bfohIczW-%oh&rMfx94qYLqJt<=!266;|$|w^o z0;#6KS5UkSnPY(uhoQ1RDF`&d`&kGMB*QP4p)sFW6?HO5O)Wz_3 zS6M!Teu0fd|Ggg1!)m}EV`U-W`5y6?M6Y)R3<1u=s41agCcy#iKhS}|-2>ZbM>W1T zeXC|?w8DSZ`M=w+GUY~WH`j2q*XIX2Gv-GQMXfSQOaiauL=<##ix;3yz^sm#%0z*O8dzw-+M2FnVOEep>>bAh zI)%6Cqbkdc|1B?qQr~S#109a65O85MEBK;uKExq7;Ma7P2-pk2b@!TpPe7ZE^NyCf zeSC8~$LYKN1qr5tKz=yd79N00TrU&pdS)4#Zb(AT?38vpat-&B=fd+?y>Cz{7vRsx zUZ%GiVwi}HkD5ZnEN7j^jQ_ifMSy{7?QDoCzv2$=c%o>3`tF5C0vrLPI&i1{XP`EX z%#$@{Xmj2X{rxoLzu%Jo^YQ%Vb|#hJ&|de4h!A1^6|vlX&@lo;xaCR>`o=s~^p1z! zOZ#|>PH^a4~PY9$q)L$-PRAE z2#_QGFH<0$=wtyG4CWWI&HtGdK50>9V$5|=v>^j9VypSvf>s*)u#BU?)sV`5$Yc0_ zNh12|nAq7I5)E?{E5LLjTh}usNM@4P??v)|;x3@*z<&PcX9gopFN2+-29eNt<@tNs z=aE)Nk-9lE6TdCoul@L=>SD(c$V}7A(ARftrj!fL9a2jVhpQL-wBlg^>43Zjf`>Jd zXQ|7NwUW@3Zd7w`*UaJ_dxxX9{%1dfx(X*{U-2luk7K~mG3w5p!X-HH;$2=WOc=-T zF$vCVNkQvX@r>h#@;tu1bn6MhQtLhU`g~*f_5?9->ml$-(d+%Z8(ZI~)8Qq-ePuS* zSng@x4rAAcUjw<*M*-9XevH_g8^M;*h&NQjxU@(DLnnD0)<0F=lFvtdh}S62fB)1o zh;@v*{{3##B}RmPtW_=*1Lb&@27^%bkm2B5Ep$pQ|K{EQ+L41gSn?RJ?tP8UJ{XLO zv0H4@=j@hqq@Yxod**B_6zuNl*}zGKj|EyZEozS+wKg*^R6|`H)HU-Afv>G#nXM^o z(6`grl>u-h8-oc^g7Dw*IU-CAzFz zyaI4mVXq`^PLM#A!3dmzXv2}$Pa%nrYnN~s2k`EaNfs6tx5mR-8vqkuxOh?^@K~=) z#^s!rqPMZ1BM&3}kuGQQl_&5M+V!!-zqcK1qI+TF83ujA2&-iPS}RI^1~!@S@^Vhl zgdGf-@tm33%Qe3J)ALgkQ!U4S(69RAH^lIH|8d<5><4s&7wnwqhxZ{`Xx{;I2F4N& zuWpvS{8iZ~9}z1KUzt=Xh}S%W5J4JfB%6B`ZQKoAj`S%02*2p4LRl(-3Hvw<%vNO! zMf=1Q7b^{3$QD#5n99e)#C|9-Cr9LcZ$6dIg{YH-J2%c{=TB_v10ShMdhd~uhn`i` z?(a0D7cd@&C2{I|llMC@EP35BL8kf)8B3CY853Y8FkO}n4+l;_Fh&4qtcO(i(!`i? zs}1vj1-?xN4oVO3#p~CGn77b@L9I)St}L{kFjhMEa8;7=P>3xsmM#AxFa%`xwTpoP z?0>tnA(V!`_klI{Sduxfc*j9zm-HSgU)jO=5e6q0C!h9Ya|BN*+ZJS za8gOw_F1X$F}ftAqaEY-2J*rh=*x*ib1cbiHYUK2B+0R@O1i)*Q=z@Q}IE+2}%TL&%yk|U=@&&5MIEr z1U}!seG6tZwkY{vKTsR0%shzsWf@GpwKCjn%AcvedR0=H6}qy1E*#%aA@4`81e8~P z(3Gi$hxhmO0bSNz^kiJ-cZ~%R1P0l~Jao09L65DX(G{@!^VVx4)uLRd%A_|8_$?Y; zfeu3nyegVN!)5{9HLy+g3DkLs!VTOa*o6aI_Us&xV#foIx<%n!x!DTRDm|LbVd3|w zUj!0ENj|@rn4ApJZ+166SZD>T2hjI#>WYhX5)Kn((ejMYh~xg4kp_;ljNXIPVQ4S@ z{2A;hSQ=i8;wA`18^2|S&%V&Z_JXhZ0ZZvX^)*wV4H|8rUs>e5cm^vY;2@3!`1xN( z(E)BK>)`Av0L`f6ND+{8R8&+Qz@P<~HIyCLk~h+f=c6q@o;q1>@l#AGNp33H_wOGA zbNs~kc;Nq8ecRgTfi)R~j4YU?0($h*L}}o0XNr^LN%i$IGh6$EnogZxId>ACj_$jM z3xzbh?;YFCRW0iS*zEhLQZy(a~hgkj}r^-rGeE_J8X*gkHs30xI|9FYwb|DseW#Oeor(lHs~s zY9?Y3TsrZjP(;ar+?C(lOaqKQoxn2%dc&;f{#6NX{A;|_J2j={Vh4Txh}Q2e?yUQYGrKQj*cd@w(vF*Mv&Bn;Q8q}y=}05&rNmB2S+By`T>d%%y)GI!{=up zo+fs+wqsUCMJG|^vDo+j>K;o*#ruwc?QchYFl09i)G1Oe0P=?EyZkGtWhqD{1tEGc z5}^{{pnkkc3doeycRM%~?(jz;*5cXy=jVc81rea%0gf3AKo4xIGADSb3*pT&-AQ$K zKe>}?j#-E7Lmj7qFA7Y6eCrN@^nj^U92Y5Ky>+pOzc~&#vI7WtdmPCD&El4TuWK(% zxGRj+WB3(Tjy$7ail3E|*tfLVAGzhKEnWNH(ExV31LKh8nWmuEN+NV(~k*^)#BIKwj6=ux5S zKSexN{Fx3I3kS5#`!UV?O?Znp`yRmdi3hoY_!4#~VL7JQshSpR+$8(o)%~>>@d1_{ z381CN01>F!-80xiJE2MsV@x_X96Kcr*Cq!-VApTuBGH?h53}v2CDlU!Lwb^*yjy0`!oasp%syW3i09 zU{w717cPXzm;%i7DX=)n6|E||I4RH4X&DsOY-cC44`)+gE*HYU*cub?!M~gHMUJxS zWBQYJaJ{7T4~BX=5-wGuNBk>#cZV9FzCEN_JnuUN)(iXXCWMm$;;4$cl(g>)euSza2L=R>oDHy>(8eF zvjLo!m$${|bbG1|#IOkv{sb@951;5X%5n$VYv4?iqD zuL~KmB_3UYpE{g{`%@4}Tyt}$6Sq^>@V)JW2W1ytIi|n)W#4)_J;M+F{~O)K%jp0Q zSJweYfs3W@!f|pl$^b7-^<|nlKGK>t$T2>pa(Z?`rd6HDm{@rpzgJrSruV`d5@2a> zUv38mz*JNSx|S>V#jz#Pg97)(Euqp;V;_`BAEaal%Zqy zCFx_HCsCjWT1t>#GevY$JEPW%w1P6=JxL~y>b0Zi^8S(U+hLtnFps@tkydb1|B+Pa z_1yt2!Z@@a^i(0)w(s8u)_WQ{W}6+Rxwv{!f|i5Y;+o1tMr>hjg)vz&IVI27 znTN|9raWz!NmKE#dAy~NZ`@F!)WNUlH3{-=*b;*DztRdgfK^Un)Qm@qQ>R)MxtSE> z9cGWiw1|1At1@}}akYVL$ff}ygr6{Kt{dFB^oCco?P~sDrH{rzmYqW8$<|fCGhI>Z zdxQ(<%zbF2%!?Paa`_Xfmb~8c1uE(O6;^-FV2bbb*(s{LkmjZO%}MMJTDQT5ws577 zwpCPAa9NR3F!jd?!z&3gk)9wJ1rir1foaicly8RE^O~ST0!`tsaQZMIEl7OHw?(V)WHp4EQD9Xea-ryh2ks)T zZZ0iAZaRVY9h}Kb{+Kk=xg`v|dm6T~DfI#Cqe(oTI-RQfbI)_MxlCndiFVhm*G}}t z)A_h0(W@pP7HK;;P$5xqJ0LHfN1uDAb0-QWuGdSxe{X=+;Mgm~hgN`bf`+3$n!z`> z(2js)>071BTIJm6>0OtbTg# z&&$K({FybfdO5hqn)~01Bhi~&wcne_i+zq(2S672o|YK)zIi1km(d^oOn3NUO6b3H zp5Uohw-anZC>zEdlxnIY*dyHvfY30w2>&%96XdOkE5HWl4Mpf@|Y7a&fpMkpFR34UPP8a`cbu|x%Lm_@blKz zRvoY%(rb5^?pXeRJiT`~mjD0%f7&y9Z?ZzR%#a9KAuD8)vbQ3a5FxYd6`>@%%I)}_mihS|)XKE>_bPPR>!qJhuSoz0ivandN zf)(eQfIi@gzJqYvASr?$!JszAnH_5|E4aR2?C#%`swMA=N>t<2qbA0^U`6p&pdAz} zu#g1Xr*uxI}uB0SuQASNgXx&|fZ-_uyZ7(CV z^a1THp8lR_zC9)eVr)6i)x4q&rsNy5Ji@s_+5cf4B61HUka`V*TUpQW0}~i;ED&&{ z6=YiQQk^fu7R1=VBq^vpnCGtNp8sJ=2pq~r(7(;TU+ZBvi+MVWw(zb(LH_y?`dMGz zQN!?4K&@V#dQPeM8&`d>&Hv+2%Huy@Rky!@w)L`sfq?>qpL<_cBuZQ0o}=q(n%vds z`eGOyA{bc8zt6KCy8m@Px-Ka$9>9!hRBkT~I(szr^kftJGppE=95!AVg976Kj`EbI z{^##DvDXcE{G3?bXx=|g9IUMdF6vOEw$b@mC? zM;{yp)gRBIgP9;+s$*77$A!TVWgr-IrtKzK@RX=Yx^w zX!y;|ccrCWASWE2n)>bP;&P5Vv@aiZp<3pCtAVjQ9~dTnSr>9gwcsVFp7J1q(yOp( z_epNY?5Cd&IMjtv*oDhX;{C4vzw(~`7UDw*fWDJzQC`Mu5tq;>N90KcE`BOUzq{Gs z;`fm6UTr#<#u|M6j)gZY6}Ko+bnG@$;KGAKfXrPZqhDog`cGf(Q=JWm{O|CyJ|n>}b>**E#~r^_d4_TMXWvYBeC&Ny9g>e)y!J^clS zfVS%7-3!_CY;-k>2P5MWqI3N()zi~OR`89}SAO|+U$lLD6IVqDE7x$P;J**(gPvC* zB_rb-G$GwL-WM)ZjcVVtvs>m$zvlcn@x{#w4=tAs;XmM_+DP`QTJ~)^VZI-*t77TX z6LPVOnDR(2yb|+f>_IY2ajz1_32>v_n7Vegk4Q^N+Is?rHGb;l^tL?3O-jeEV{N7d zbNN%_c(#e?l4rQludy5*9b0f{%}~pI$wTTjjOKWOvk&tgX+$G$Ko3HJWVig5;lyUa z03GTjj5)}*NC=;~IXgJ4#-LGBCMiQ(9{0#&o_x~gprjRj=lC-Z1kaP`SRqXGJV-IK+VBJZj=I7wJ#Vp3Rbtfs&=ny}-zxm736fX5T4y3$WZi0Xa|t z=lt)=q0UHZeqe?u0D}he8rd#|UhZW&*G{KRY9t4;l7rbGg`-`Ke6plD_I?MNg%Bbs zsgKmQ)gJ2s{M)gnD7WX7u7iA`wu+M4rui+FIK=gLlFD~tYDo90cVf96wTC6S+6SjMFqz_t*_!*U*?jf(UZ)cO34eP-dO zN!O+`+84^X&R{48>1Okz`}+)_U&*X{{C6YDd5=t+r1{$mFd^gcxrVB;_+vx83>gM9 z0Lfq*A%{{~42p%s{db5?S@{s@>c_nDcQ!_UuVFTM;2JarL!caO`}LW{N) zqZw^@@-sI#hhFlE!u1Bcu6sl`$mB`;X_}_pyO^7uOm~O$nz|-Y?SiK^KANT&O4oiT zGH2Z+&HV|2@_CTuo;{Y&HiF{beTW0CJ0hu}6w2z2q4;6rsBI2J1%ptY99XJ+vYwy3 z(@v=q#~QSN@O@}{6pF_*H;>D(zqvJ6fOGCnM0TbOM3ll5uHkhPV`xmS*@tv8sjd6t zgkvX<(w^KyG}OlN|zvz)hYZxpIK zu8seGJ~EOH{rP()yiox{Ihtli#O-9W+Q!X|3~9u(9Km3*$8k4Qzt0b;Z$d}l#L~e^ zXdN7?7EwG1IoD8O?qbfMrDwJK5ux z|13X!*Vy=U5apUQUVx!E76>^q05lRm1Y(EWfJ*PcdaMdh*MJALmrENyAp^Hpm<;ns zZm<<5IZJasOTzjRrv!-yRI4vI)hT?To?#d@A+F6X(C=9=Os-#UeEP)GQ_RA|xHyD_-YcKKmNnvz|8+lARS5K$)EiY6E zEM|BP-hfnS6(D6+Zu(3O)UqB(jm6o95e5hlsQnY67d!sx5$(~gq@5z6T@A^Hvg|}g z_eq9zH7~yVe~@yS9%+E!C7mi3d}na5x@t?2ne{@&$R(L3p3hfMl61})HZDa#_7Q*BITbgYt({FSn7hL2c0*b3eh>uXB`8ti-zUHP@OwJl|T z)ze~n@>>Om6oJ;}$*+x#I|c^cVH$Mzl=h1&2Nxu?>M;?Pr-xP}F=ye2svj?{3Xglx zguJ1avn8D?o2258`#oJRN&WKHg^?~*24wrj^*&dnVxAa_)3GVM7!h z9C*M+hKC&K4R$|Vq2A_DwZ$P4yTj|YHU6>H+=!?;swOjqBvkNFY%oDaPu=Tr3)je= zneMA%94Ski%ROiM$TxDh%J0f!Mk$vTmcD?w^~*0olgjpf>6E{9x%^)T=5EM8k~KD# zCgV$eN@zb8`OnnJr?Nr{nWEH@D+ggwqKu4;D8$5+C^=ABZq*M7PLS<$I? zxv?gYPn^cfFd*=(vJ^Icbf{S@$Sc6E2P=mA*cvo7w2=EDWwe!jRDM?&#AUa?aQ7IH z&bigE#4xMH^mj>~priw_jP+i$6iHRTa{+O>VGvFj(fBOE2< z2?bNyS`6{MRdNw$mOLVpkQYwm^jduS=Zh^`7-Tm@$l#@ z{)u4W2OT&#t7X?Y|N3V=-fH}QeYIgVP+{_DNtKj@WQ3Vc(&O-jUut+_<!di$Q1hWDwIr7z^^r zw_lvfuTf9ew`U-Zxa`N(6mi01)fIeZ5+u5w`jQAy!YI z!D{aA?tV9r`_QQ6t`tjRXTHD_aM2clDDoD9yH85Ue*5e-uWn@eLboJh}WJy)$EJtJxn40FLHsWVsFJvcw?QYax;ap$Hl zMGKnO*V(tdk-_+fbJ(PrA&yMHPA_E@-0SQ?*oxgcRo*W1Md=Rb%oV)LJ$lNZwiZ?+ zJWm-Wd|%f5t9I+d+`OCzJrUo(!Fq(kSQ}(&aNfGXzRqDBhm+}ZI7d0vFH5b!B=;1{ci&F!vAs5s zA-#Wne|0FF4S#?Hu{)_pt2aW(qgR0Q{ydk!g8XR&_IV;X+9#o3gq!3;q= zUX0UB`j?dSiYXK{CSC*V4aK(`TyEE;Gyf@Wh->vEX583TzKnxJPP`vDjwvcqN?PVf zXXEvX*gh04S1L`E^HxIPzqijAT4mI|6|4kOWZ1sIoPvjva7+HWRYmqtkVdKAyed<` z0f!Ai`N=i*tnPntm}&5jv#ZV8+pe*a#zZ(NUUXhojj{CdqCz(zAeuq}sKL^j(E{UC zqS-p5kFBaEJrk<6ufH!#VU$o&Er=+Md03Q2qm>Uwxqt9M;&uoQgJDpPbW}AB zD%(dh{fyFnJ^Ga`tqM74E_emrz14f5J7VL_{+86xS?E|egy#bfeyz5KvG|F|i9T@~ zK22www)s8BMZI}FY_`CY$=MQW757{0`%NVO{uX10o7YX-O5aB=BPdSwLV{)Q0Ijna7Ef>t{RJ&t7n(GVwEL&K-x8Y;5-7)s5y4qF#S8?SX z3kxuG@d?O>bn)1Gd3jkvPy|-qjz^_mZYAKEY|r1-N>27J3t*m;bLi4r7vW}9E-=uT z43HNh^Uohnw#n$X9neO4r(~jTMDN@bBAJqXNqC z@7|KoaH`8(CBr`yOVy+aFmQZHfp;!~lN`?aw8k)LIknuF`2F49-tARaTt}0|eSlDlgrhW^Q&!!^@ z=f?_eF4p88T`ZH@Q8R4aMTn9zpB}IGaj7eDQj}Y>X(QI)b(|=6p?jV*w8~|YSzt@SlJh+4rnXT3uR0|Vf{zL0)0McN@-Fx3;g0HL1i=Hak8-bqj`3Z9x@6~XY#}Ay~?b6hxg5C!k9dRShU~1QBdGw2A4qX!ye|f~q z#|M;0#37}xdO{Zq(p@6ypNkM8EtX}Z0T{Tb`Z#lzE@{`+G-}UsZ?#`_GwIreZ+;!) z7n^eJ2!6)w@+^MqIDMnhqjxh!bI0-?&=aB6_1Sec1~fJ%%U#Ca9$r6DZbOBRTvqFK zS$Tc_DO}llZGI+0HtQE*9lF@EG)yF-G__e@y{BDqg<9qMi9vxm2amSnu}NeuRgh37 zN^R9MWWq#}YuFRdfx>!po&;-)0Ekr$NOXh<|@V7?ry=>V4fP_xV%h z(W*+5J!9$JrII$y*TfD&4ifci*BQBiJwK8{q{AzpG* zto`a$IC+Vnf4J(lMV9$^Y}~t@-p((W_kv)bNBOZ3f7Q5|dvekb8OF&yBkh>|D~Tnr%`zb3n9U&1hn!SRn+&OHYYcr!*=>T+uo#eLn6KHL z3td_4)J~>^dxZOzVPy$n@g#-bQjXe`&Kh8L4d${Sx4%Jwy}r$*uD4q~IvX}MWX*2x zmQPP|WG2>J_Ash^951R|q&|SY%C)dB|K9tE zR2*J+t(nJ_&eT3RIX-5KTo9y`CD$;f+FTL9AfE2zS@>4n_99R-%?n2nLe9EoVd5KP z*q|uN1w{u~f||eDTVF5R>VF_fQf$2VVqMu`^W6ZK!jw$UrjlXQh4vc-+=)%uwU63C zhabQVvwX`?!FcnOn)EC5WqabaX)LXYyaAgjkY^rJPP0*H`( zRIcB3qyY--Z&mi}U+J=WoE`stgkcGtgZ;Gh^fo~|{_5}d3x9G4tk5J!WP=0zrf@zN=mMHXB+Az_Z(Q3ZzWk`t2rqMG6Mfiq{#Yi z^+V`>p4fJ>bIXCCi%1jjo)<)lWdN6gTY`nsLPWWq24SFf(5$~9;pi`*I=m!suj&EG zp{d~hzwxZw^qu889Z(BO?ywe7&iktM^?`WUNYU4yVbiiIZyjlJ7G5!mE&pDGMotV6 z>pwlWvV8CWAKnu*M8yAeo1}UEn}CMfu6cnZ3NFE?Q21^=r*yr?reS~E6yaw!iKD)6 zE!mPnbK;CSsaS!mmspl$0v#J;|H@#p2uwucVtXd?VrGTD{Cf6N{VJ@pNmuqBWKio( zB+U!u`%J*4Yw+JMgVr8245y&nZiI0jXJmx+w8(B88X*%E0znK&R^UIAg^NS|7tI)n zlz)dn+ap7B^`4h}_-xz2!V|g2PO*TIkBqFWoDfLpS<3D^JVym~;AaUwWB9Gnz@+hy z9cfN(I$iD~ZhO#cUy07N(TI?rKOzD3Pr{JlAmgcP-`iP^mwIQxClZhoxllb#Z;F!VB zn>+YWBZVVyJStQ4_56pq=`YdsuCOUJMRi!?u18%DIzRO%q7^))IAjpo)!TWWP{Z9Y zmLcuAg-O=Cy6?Bw!=r1-GUQPqW-9Fhaa|Lf6yKo}D73ueUE>%lv#f2&LnG9;Cwo8e z@As+Z=4Myvrl!#Y2|8`}HXJ|Wze3p$dt6(`sa1CK>Pl=N8317h)ER}|JMDto|KeynI^=f{ji(qLvN{miB@{&HgzuV zIVExm2JKE@%n+PJw8~2-EPG|`WWr|k{09UDATe=igdF&GbceMzQHnlG$8K*r{lUd4 z5D`d8iHXgCYjnN}*p66B>mjn{MtNqT^xVs(zaMAq+h^)^2s5*i~h_OIw zDdo4r=CjQm9C`Q>r_$2EHHSzp($Zn0o+K>WMLv#cfFolZKlW}%k+({pB=J#XhvL*$ z1;!jWRR{ifrljHpmKo!3%1O%3n{2CykzwlDPsDHv;$mWe4&EB0%ThQ3VC+Rje6X_F zm`G^p@n7dR#e0%3q-jo1Pm_WrpDlf00c4|Hj)j>tK*4=n_WARV*pZAs+Om9B72Hy_ zGXT1}OolH9d0M`n-|22wkBveLr~Q~}-dEOZ5)uQ)8%9l!MSlMh+C3(U2@jBPDMzcA zXU9fI7h`Ybk+uXD%2#VfhX?N*DimO%c*FLiWk1PLa5yRY-9fjU;hr>y++f==gD{ZzTY(J zkvLI&Ff6R0YoCpGiKTdTwDGd1j{ncq8>fsF0<^)wW;}`u`$wQCEwk<*1O={VU|Aa? zv-!s#1tsz%ln#a3xttH{T-x;&rK>Ru; z8!iHYSaj{T=ge-eFzEzvl}?dY-|lXf`R)9%9L6USk*zT~ClmXSlNu#$9ff*P`%1P} z`*!*;n-kqFasm8F4#oL{6P~hY(9r`HiX(ksBq0T3jw_sC@o}yy2l>aQri)-S0F#u| z2E<_Kj`{HL@Xq>&(#B(bn$=7m&fSzlC70UeBtTgPC?HNV4fLe)hivg0jd(u$96t_L zj_<0_`57&Do}l$!qed9#~j@itU142gazb zP_3T+RIzPZm9N=qoMlfATpD1t0G{x2dd;l0^;!x3$&NYsAVD|}CkjEp+h4yH_IerX zN|?7Xcv7pUUY#-XwY+b?{qV`POl{YEt}B?hUM%>1@h%;=jbnV_60+_7F~^hmW6M1t zhzb?^P!xHWFAORWWb}f`eHhKxn6&OK#M78{?9O_RnFj%VMs~X)@f*)E7wYOYwpDIS`>7*& zU<+T&9h{6=1fBhrYz<8Lkf>wTD;Ze@SRWx)X^*93i{p{xYf=GYdd7Ht1Vg3;(}c1h2LM;|ytm2v)$Yak+e)Lhf z6{JIp93L@*70WS^0k3!1;1By=Hl$EiWW6DE1X!V&k&(TR^Yiml@t0LW5$Ohm!o@$M zI?1$xW`|9z$HU?B_$QHhhV`dCMe;K966m{;@K(0l20&$`=!20eV@0y9@s{zG#2UXw zkf}A!z*>rj7U7pSRLxl=G_hSnOmuX{pIm1fODB+*j6o60yMS>t#k8=q4)N^Q=H4MJ z*so{>u5uZhjn(GQPlvxOE^brcWnX!RxCGnW<}=da$K3;+-z@_Jtu*F&fw?&x;{Cv4 zjRmaTle4!RE?+|av{0(wY+S-HFmTP!7ck5Ue;w4Gv1mmy>it;3z@UqZAYqmP9~(XB z0VL*xVUg#o3zF;;TVcw#@`T++1%3SMI=nxO&A;Hul9Cb^|8pt9(G*lyVncG2P)Xlw z4I|nTb|jBD_&dm?nSXD zA3@X_UFSGjaF3QTOHV1hFR4UER@MRZ>vA}3#7OCve+*eqwxj`ThM~%@5HQX4K-2N{ z^YtV=Flql>?iW zK6J`}DZ1jpsa%j~M-MTBn0-HQ1?jz3j#8n}-A3FT>aAQeKh9u+#6RU-EKfZA{0T%<)vsg-vNF-f23p24;)ahz>LrXQeS3J$0{}cf!0+pbm7CKBrUMrc#1FEOm!Q@MA?fo ze24Ki7Bk|mGYvsao1Z5i&dIl()~K06P;Vv2()741hI!UKVT1cdBVVIEggzn9*zkL7 z_cBBgN4{n(XnTK$;`kFKstzIyG^OvbN9XA?U}YUFU9k{2WZUfg^qsqB?oV*-dFCiz zd|BDaW)kQ76vTl?|1}|@@!C6;Yq)b*@9%C5J+~4c ziMOi|i2W6;o$MjWLouQmopkUZD4sV`Mg6w!D|Zacv;y`_ZCcmupPz_!{Q}G|R3T>5 zJ}$O zDkvEC^WfBWm5FL0u{#jsqYi$bt8w zW;N@Hn#J=0dU6`Ju@T zkkG8GtW+p+264}Q1;Yl!q@eJ{)jXZIW(5ZeA+J@?eBGPqoR8hY4tcxCt?{HBPavc z-;LbMtMMhVuW#pD(%}L;0Q{A}LI9vAbYIA#Ivyi(FC>Y$>$Li<4J7R_qWyOwk!a`1 z&o3e82`UD~f4P^;7Xc{cPE^?azxfkjDP7n-1o^Uea+c?ybg7rO_jM28<2T%ops_iU z@Jct|48_?evN(L^wVLT$0td}3naZy9vDW0|*EXamL<76K|Bs>!vHQmPG+R&vDFy6_AAtOzt4ST)O zZTFh5F1OUmf3E?@s|is3joud>f7*sZgm2J6{p|NXB-Z1UP>Jt#od6y2Ic75^GG1Xv z1dE474#>(&(h9r?{!l?E&T0O?0Fm1_+HBs3j3jp?g09220sL|sS5$N(-Wo*T%k`Zx zJSX{KV>nc3mkw-vD1S0ZdtgI<3J~TdW3#gtnpUc*{7e(A@mH8kHbjm5T(a&lIljNc zhkVAgq(MPVHHh-Xsc5pWNJs>|qKTa;ehvhmpiY2IJO`>hFp>lYL&lMfPOZ#3X*0 zQLsE-dz0qdxSu&@?$N{51fXLVPFBrNGo_AcxkVe^a58*AdlI8x3f;CueVn`2jaof` z2}cHyJ_{uFOfeDTPR3%K@SeMZ-1^@autA+Dv60nWLM8Or?f`{g;Y~P8YnsHPJBPDP z7<1&&L)&p$V>U79y}|k2cwxo@oH~BRaWk^6H@shoT_KKGM!`TgBgEZDxKYy1g$(dJ~j-_s5_c>s}W%$5lXQ0Pvumn#l)|` z-2@Nae|HJca;>oY^t^qXQzqL_+bFp$NFKevakqOYQsSklrNZtD9c=V}GM-M@C2#ud z@GyxXJ+`8eypgM5n%Ok2dZ62B&+L|%x&67W%xZT!32bWF57YhyKsVzHlmz;`JC!#fH*M9WlupJ!DZlc8Ijk=?~K!Ayz@bnt4iP@ixD4|az^KP z6&{(e590{Tma_2v``zduF;hCz%ZLy)E<*m(SJ7t{G6pmnlaoT7MLyurzH>{)27^O7 zGAvFZJjt$KpdGK7bnXmkgo!>>{71c~j1P8l0+~5)N8SC-CGin->7k)F>w@n>jb5B# zfbRJ&F)AebMR!8>U0jr{vtsDetXsjwgLI_D3B)64vgR8=h<$-4c?TvMBng;21Lqpr z{|RYuTiL*cIX(kclOdc1vqW>| zpb)o&6IlU0eMBtr%Z@YHCY|9lnv~DpCWKHDVs><9)pY*1wA_AxL9gEBGD-(??RhB7qbICw(;}kP(-#dQud*9FFtWZv7KSbyJ~uanAOCC2*Rnod^_XT>OE45-I$^ zQiW%Xwf@x>Zeyyb1jXE*#+x}~{PVt!kmDAD|6TGB}Bvj`N7Gt*%ge^cdMXCuz za`sKLO+_$72iMqCGZc=8Yzm7*CszGmM>3t@WFxh7o=7k;IXcIn%JZ&H62G|gl!Lo|h2LdUP09x6h z-cuxVx{0s)uvjo{oZ>~^iW+ynEsI@WP|g+xUf^UY+*k9lE)`B`>92jYu_TLJzj^3D zJ?K%(dwUzDdO`2SYX6v4h{lKUBH!_+9mv*ijaK1!-GBZ*WxhSpo(>i^i&0s88F5{c zj1?0OxAnWC$Josb(LyoZzj%$V2Cx^soav2hf3|)aQQ)aE>X8T6bJ87uSyIrfW@j%x zK0Y1pk0Ho!XwkRw84i)K@0MAAngo#quz&ukjGg2j&(IE0UYQgHB-6itK1@<>2#noo zhRs0T1rI64ax-nQ5~Nxo;g?HU-gn#3G1ogv)?4|p>y=x7nx(C4Dd+L}!>ly4cqQNv z*d8>kup8n0zw+ zeLp=NmslB_Z5m7ov!vl|7Tg}#nM|tTMM;=+#nTNXztA|$u0>ddH$gFmHf71lox-qy zV2NmEpU!7tOIiZ$mTM>W^ifHb-OD(Lya0ZyNvkd+?V#+IElmPu&o*20jj>~nrs`&S zai&e~nnuJ-yIz`qhs`qHMrzoTxXXVA``QYI^S>ABB=y4NC@F|AqEvKGLk0R=!3LrP zqin$9s%v2p3$t1JQ$+IcIYVF2KM($oM1badqni&+O{`GM{2$v|O8Sd5)4=ATNKEJ4 zK9!djCh1y@PoCQzu1y@Bf69V$C~RM9UP_lB{kTq!I?d_^4p*k_T!=t2?Dr^i1# zGXkv}rObhWoJlcoTp%cR#%qs^ICX{3hP-A{?JMUOH>=kC&I`<0)YxTm!vtcAr|^?V z+b_8d@6m4RfLfzQ|LWS(zV72IE-m7_>$qy-SXNh4Ofi06BhG6Pj^;cWCjKj zR&uJ>mDJat@F9Ir0H*X8BEzRL;ldb!(;0Ai#sara8QK%z3mH^p2|C}^T2o(X=i7SF zA=lr?HAC`j<>EH4RkeI(N`(0g-q{H@-V5iE7A(Z2@o0q#b%HS!G^!8=V z`;Q-4BJdbZ&?&*YcPW&_xWL-^Y9uQo6N%P2g6S3-oHwAO3#Tdsz;{wYg79{pFnx5e z8y7Y<6fI)j7uIB?oVjOV_Y%vWfjEPJ2P$P-gb}b$Wa&n)D9)!_c{rWcyEp<2{B9Qmx|}R@trY44gjYvm=lW1)!rZjtT*y z1WxKU{ekO(y>@JWVltQ1l{v`a;E7W!4gjx>q_~y_HBCox*yZWp;svzYo+*4^>hB0F z3GBbQGsG2c&dchWZ#1*VY0r}};h*K8W+Kff{6--};+it9Smm$3P6k=+T3s^r>TQ$h z(}S~C$=h#&OYy1`Lp#I@r=V=lKe)+QthZeg>Cqn1SE{e_2+Xt`pW!H>LEmNGgVH+w5&R&#MGshw@f zB*|ql3k|ndPJe1WsIFJ8J}WL{#41lH^$Tiy`^|g7>T-tV!qRMc;*HFTe*ezb>E#AV zRabP{FzzIPRNTv$dy}3LZgtsUE!uPKn_V30`6#v!mvy+L*^d{2 zYb1$ZUj3^Sh@+A+?kKlqZD_VyX1&spZBr9B?0@0e!c~UvHu!mUv&?b)5PP$Te#gs5 z&ME-LO^PFm^4YW0@P4uNqXtI`KKx1QQ;g8hn$n@ecW(gQ=&00rfGmymd7js(s}cR` zjk2#&jz8G-L)x4#)ANUyP+wZXA(P#4D>AV)=u-6^pGXb9wd8mIN>o1MaG8y#w#T#d zvb*=^n%xon>Zoeng#!heX=)sjTN~|qnTWDmToJaE>g_tmuckC7DcZ!gtpt!}xPnx` zdWqNyZ{@+|tZ2`yuAY-bQ8sMFXDyauhYVEGy4uIS2`bu^6Px4eh733?_CcuEqc8Ck zz3`BpkWED+X2nnk#I%R1P9xAv-25j7fsk-Bmz&hz=^y5(2uiGSERvRvl7KpAj=rO< z#GmZLxXKx*R`q{A5B=;{SKX~y8-nTWQoS;8U+VKniKGwQn%PUL4!DuPnOcTjXDi(o z+fp}(No@F@Y>)0J8g@9y7@e;D(#Y4FtekL~vXXpnB0#Zx?Qc1uY1PKzDrd5Bpu_hC z;SiNUOsTtgJG|Zqk=v>*wb>L+uT(R}pJMfadRYPQTq3TRk2VCnN~yE;Q`>{T4nJcB zd$hD%LhbbC`ZTwQ;k``6QH06@%h}IIrGd$u>iZEv&%V=U4hnq6B%c`!^=dVj$>c_! zIbEBikL{|rvN#;n3Kqqnq+I*$^SSt!z_2hkhOl3o*GDBE|Hx0lyC;`uQS6!vbOPQj z5@x7y>bO_tw{taXFO6EB>#Q6I;ynmc$BlbGl_TX$Cs9M%%j+n|Bt+1Ms0LR-$-pGx zZIrq*ucv>kUT;!a$>@-n>i z_P~sJKEfYJ$aGIC{>&@AMQ6rTG>|6NX5gquML?Ec}<3&K8^h-XYU{Vm;e%LARAuYkx%)g9Fv0Pft0#YF^*n% zARUi@VtZsheG1)OOO!$zOGWShX#s*l3W?QfKL+||q{&gvXg!VmdROb)wLkIAJ=mv&(as8Cv8%39svpWq#}yT$fe zD_scH8QZQO(^0@oHq1o^W0|hDLPWZ)u$zFPVa4l~@#UY)E}Z<|7e2o(ZHx4lI(u5! zE+tvq{F17BQm56WRVGYp@0Qs*&1~g20zplixfJc$sN0_RxWUh>2ENq2X2yPs!CgUb>Qma~oC7ww zk8GcH-PJJbqEw5v*-7V9Ta+4o4o3>bd|rFplzY8) zKGS>L{8Zo7L#~Bf{eV{$y!)wY&CRh8`=g#lBi*(B;TP^qAD%Le)^2_GIxR8$RD+F2 zAMZe1e(Lg!=%{y&PNR!h4$5v+L388d<7oieQwSBm!iDLJt+Ez73R5mhV&9j53cumsiIcFA?SM^KE@x zQp-fB)BRSM0MQ#99G1F4drmp=`x?wQ6*cr{7v*;VzDas56Wts22#8-s5 z8Qb8zIEIQX1@ptcy^yj1Mnh+7labf-YEaArUN2Y-VN~(EqK6IwG{3ydZ%PW4AVJy@ z=}IW=u;aT@vK^ZoC4NNbTAw-F_#Nn(h#F0iIrTw43EYbmEw>@=0aiV}sD;fg>kfg8 z09Kb@^;#R_Y1&BZH(Cgosvecpu6W!aqZvLc8K9uqeBcoLEOV%BD&WPS56{bRs3VGN z^+9U8h5E9e_9=(%8XJe(>4Z-pr`L|1!oJk^&9tGir;M)Kksi3E)9own8T(9fiQfn2 zZ|UtcFScWnR~tO@N42@749PvczJJ1+ST6Cg&9CRLCU+$`uPt1XN*|ETzb?t(6hPuQ z37%WQqOfA@j;0)brM(Dj?KCdfg2uV0tjNtyW-_d4_;&nFpmL+$)~es!vQ|8AyM zxJ#JR;s547O?Akk2ctSzf%a^;kiA}gpFJ9Wb=}b_Ym-Dx?nRJkc{({2lLp}Q|0X1m zk-+n)um7BAARg28o0Bgq^Y2~KIS=TS7{8bv9NH+?8|w4=pt_v8Z_FR|vSz|-T)oJp zb5vydm8L3^>gF`tc)bqB`2@vtzE8WmlHZpmg@G3v(1A(c>ZaE82gsS`V=p1^*(@W? zT)t}1lCEhmsAL=|Zc~HA+gwNa`*>(4_9;42(8k&X+=ItjK&;%$>?!A&x_aGRPLgZ% zV}>lz7tldO2gqMk!>Sg+r1LWI6{9RqEGy1ZElHm(y%SFh_ca30eYT?fb|!{*4F*C= zLsFz=GgV$}j^jr$gzVRux-I1Qb$MEOCD3Qw*VlHwnx*Zx{O`k#({Z;6Dlp%&`ue@! z_xsY#?UXk>cU)+6SZxR$|>d971(+DLvX3g$D(5Xc*$G^^`$h- z`New@{z?BEw!ojeGc(ja$u1OYer?)?-v`4zle^P1ObGd}gj@MFyL$*zu+S4_Yy>ak zK9-5)cT77IF?>oU!tl}u&1%a|;_NBqCA2-#+EbQH;lq>aM=4|B6Rc`+QVe^WZ*OnU zZc!-qZsM+R&qw$Mf9o@5DjaR?7OTCKPOyP1jvC3FXK~9&Q`95DO8c>RTOQ+F7z$O+;`NH7z3#v7Er}GmLaoDe039+ABf>cX#6$;^Zexl=%9CP>Ilr~a zdBxhyWA*xpi41(%hi$6cv0f%x{IotBYUMn=7%l&>RAs}4s4B4|=#ndR zQHy4DAm$QHV(h#zt9n2uLTjW6oJspiLKIB%9Kl)5eaz71GV3U*KUfm(YZO>h{XJ3E_359;aSR42RwodA1LtY@ZkZhQwNMSM^f zhUzee1_;8D>g|*M5_Z8bJZLZj9F;W&@xo*3a0Vz|uR=!>kN0f{e zdzH!xfj9v=OPVE)tM|?~0VrDj9GpCCf9jx{{gFfV>EnO#D{A+wHt7Q;I zFco+8H~?M^a_C&xE2T(L62#FGXQZ30}~5T+~5 z9iZ&-I_!2ExuEjYzH<^p=7K;5{y6%#{ZCXpJ@-v$5?(V$ywa=gg(mQRKNcCSQz!uk zpgRMV#=Kuj4HDeU0g;BqmJ321o~*GY0KGko&nhl#%ue8)*#J%$A-vXLIBh*W z+AnQaz6iHDfYB}h|@RLRTP98z1}nvscw|AD~^)_L#g#q0qY z2Sbf_Gv%{~9NOgldefV2*#Gwh+~Hxy&-XFOK08nTD2Ltrpr^v@<`P#c6*rbtaS5fm z#@Ju$**{L#7y*5218SJ?mNC(!LcDN1CiLg=*tjqwnBU<;m}O+&NaxDbEKrd*Fh^Vj;!3-m8HZU5p`b|#G z{BzCaJs#NmZi^XS>wvF*Uz`{VdaVHS9s8@uOV!IP?eR7YgQ|fb3`INg3;iTK(+5A5 z8CR!XHGwfuBd{bcR4Ym9`eiYmad5oGXR2Zi72Ma}uo*}Z!2(Gk6o`$&VXAC#B7uJ* zk;c`dE%*+9pI%Y2ae=h{hB!B=sdAX#9?S5YJ-x4CG)Irm&DgGL)DpTXKraNINdWAf zM=;0qj6|UQeM5bh5_(CJDsp2eI^`FGM5zEY07bY>vllcs$P^t4b^I17f>c`&_nU_r)Hz#m>i(nkqm%p!i^-=#ZNWGyEv0o;G2!ofb0(aC4Wzmj1h8Cd zWX2fy$k*)yRx^-eTu@?LVG^Zk&Xpxr;uERo>w&kK2%hbI-B=Dn()}Id|MxMfO0py& z<#8AtvjO0h4A6-UU9M#l2(L33UiJKe zI0IggJiZXou3|g-%|+UAP~*W7{mo-@1~cz z5p-`>AYKa0#3H)VLHpnDU%|k~izw^O5DR1n|J?W!^yFhB-B%A6h~n-1&7QHBW``J! zbhoGmgf8k&V#Cl|5erI_f(WBC{14&R2j7f=pt23U zyAmFOP=Vix1WfkQQ8DKnmak#y4y^)zsl52hm$TQlqN($iY;%?zEN=h%idWrAPG{_( zQ`oFoNqaPCM3w)7N`X`RuU;U#9EsmvBX$`+(O2=S!ce2EgGRgaGubPB8iIfRTQjM) zG_7^l1zXBsgPDWYiNaf$)!ZDStZwq!Q7AcnIR9?<8N9*i14_EDxK(sXs$qs&EjH=U zoB!TCL{vo}v_~0c^H9|8_3|?UEYIW_Tl4lotm<J)Y2I5mnpxU+r&79MhoxRk;8( zlSh;sq@$8{{R0KmO?_K!oUkD81Vbe+!x8F?HA#ypCHwXImA?O$gDr(|g!8XSfT4f-2pTCf z*u^yxumMTxRbVRp4blcewFga+6GFM@!$K9fg(mT8w)$W}pevRYdOT3@zpW&OoX84O zT`(C2Zp#`L8}G8~@k9x_TMI_4(MT1$P(o>xL!H74z1a_oYyE$Xo%cW1@B9BRdvn>c zGA=7JB0F(~mtB;ZU5e~ILRL1(CM1RInU!p>Y(hq4WbYM1_#W5m^Zo%}&Vcato~bI1DGl3D#7X8v6Ny~s;jTx{9Tw7$&LOX zFqSijL!;+6vNnx8c=RCowD06#B?=SV*^kAlmp!j)_J_jRS!chXcix^`bKW z&pEt@|DCWoG6z7lqII*fPs<0JH`GF27eGt8nV?4dVPs_FBP^wpOu+HKrJ)>2$Ir(K z&mhPy&cHMH&(nx?p;G2@U)`OoCrEf-+#XemfARD$PK@HFdLiar+-`YUar*BOriz(wFL7ic)=!$u=cC>uD@j zZ|yw6B()j;(3JQ&%1em$fhw$lfQ^Sf+~AO;0-Jgd_(mJ8un~SzASPXNh&48}6@jII?Lwajo#Iw~O0+~E+E z7cUdt@6HHx;ZZ#7Zk`#zT>TvksS=_LVfU@e<}hO=>B;4x*(DcY(C#DE`0XapSP@*Y z4gYE6rZZTQz#=~_J&K1w!^uP_kYX1z8%p&z8ps=>*jfBHP=~FyN5G-e1$K;}0#XknA9hS6B<8u!|5|JK@(WFv z&)!i>i@d3J;&q_mc)emHjLhN9ZhyX&u_$J3P(khzw+v?FE~vn$cTNw5DK_es_mC^b0iQ7?9bugXd*5l0ZPjW8?X#)6(Z4veEQnQ%?d zp_#ZdjgWt|cFus_ z*4B1b4|2Y}0D=4yoIej_)Fsmh>YrxSSG;j-I#Jf9X)dz)antjsyM8_nnH5r^BwZziE3wjHew+9RDPtI$)WlDD2BZ7WlOiL)(>w~CUJ0EsFeX$Pu&Ux zqkswg_!I1BSFdT)wBw4wB|5M{W;>BE>uH1psLcC)fWzD`CGb97Kx>jwk1PA{0h9lO ziOuv@KyK^n9v;*JvVO<-Bb{uvv(5nL+Jh_1g7PodDAv~3dsO19Kh@WtFlvs_Xpa1A zm3Pqdz+=!N5Pyq8q}Q;6;QdB}7_g@K!IF~zRmGG<)GH-;XL3y&gcR@i)nsd zz$DfB&8f?ISYGAv(;m4`DL<`ZxPadW8iRjqpFJZ7A^yrUU0pnBw-nP|@61K5N?MW! zee+*BDoTM$4BlF8%u@hSyl1z#;Q<(Uk@Bn*Tb^71?mFTYLJIi`pTJ+*5=-^x2XYYkKvq!`_Kha4NVOKVj-hOFK0_o z51f(xT6!^(abxrra&I%ykOKOUjPr${2?hxM3q#%S?oj8|Va{@;2@J9o=XR-x?y~ds z5^L`FpOladxoh67@6Z~oB`zlOeJ$FnT{r~TCfz{#eF8!o?}YaH za%{>n#QUc_htj)0cl^gap%lD8>wdpmRM_AQ-0FsZuKJ1fx8A_r)vc4{+I)bIoMCX_ zPW^kn^J3O}%0>N52-jr|Pr7U$5JEH6LmMCO zDG+#ap$Ak3?z#*T1X4}XGs|0iYvugai@ysaDAm)4+zC=V3EkBYNK%Ah#VcryIrlut zc#ilbU@~cwoNVth>$MQm50h8wd)^+)hQEXX&V9k1a$ZaPG6hkw!yKDo#&kU$;{X@< z{Y-O2+{4rJm2*(YJhq}N+umkK>JGqiCOQ!p$^B1O@<-N=AYXIf^G?&}5o`uUtvRQ5 zX|)2~6|62IUaLvnEtX?u&5>wW@9hj=-vZ?xM%p_x;C^7~m|Rs1G9W!m-GJBrK$*Q!%Pm~k^ZL5GyPI?jTos-_ zeymxu?KpAqiwrV;uFT;;)b zt{c}0V{8h3)Hv04p7$Hy4Z>wCSw0Sv`^`R|41(-inQ*$Ig7O8^wzRnT(JOej*$b+) zFdj2+L>nGQW9LvLTP2kGhw3SUnf$%`9Ik&#lcJZD+bVkvB+e991;ak%hg&dM3Ntji z0r5KuI`3n-BR2hbNJ8e8c};=AJhF{Hu+rSzh!!32;!aZYlckFyg5CKR{2l-KeCLY{ zv-}-51U1i5|NYTX$tzkli!l=V7s#p1x;&eIV_9UxGdzCSxPm4jad5>x4Zke0^G$SD z{1=1y&UjR2jo03-D-*OD$b+ZOnR7F2JbIokE z`4}!~WV8g+?pbL`qx2AoX_%F&q^L;71)c_Sdb^<7hL2F{vbc_6AqGJhm;XT5Px`gW z=&R^x;D%IxfmH57cnGT#uoxUB!n}={@)^y&5Wh@&ekC>FGAd%`cjti&shk{MM|Sq6 zWm(E1@|ObQZ8)gqvAX5$&;{jV?W^HHVe|6xwtcbf z*(_jHk0~OnLuGVgtCzj)e@$*uyv`bP4ze0n?=VkG>beEJHUP$u}VgkFulyK}9_mtb5AcP%GzrfOYCw7AL| zup6ktr?u#O41fw2Qe12n(63Tyjy$GXwoNWCM&v#i%AS3D)I2n&pnphx|H1j6xS885UV0sTu|W6{igq7s;es;M%yb;Vt{^1uF3!W^o8Hn zr}1I(zB>Z2S$G3)&y9I|1t}SOtbn1Bkr9yB)j+&olxw|lctAMqeWxCyS{yP_C*+s{ z4xvf7Hch9cV*+~ico`D7zkCMW5#(BzQ2SEyI&2?Lgg@mP>;*aboklQ6$dS)^7Cd-1 z3E2iPe?YKeHU$~k&%a=8dQntWH8O`F018n5}O~I6$SzrlOO2y+&n#>Lg?=8L%{yY!k#HFWt!_&vp9qQQZu7x_z+M*z{XSXQ zg%awyzr5j*;`T^juAkAg-Z*x#sN)}HWq(W&KW~G0Hb0~h<{(}C@tp4+*>mxF+mTBk zAF6@}Vp|iS+UaV!Z4ep&JDJthRq*n*n4_ppRv<9j|JJlsa@Cl;PjUL!il6od(FX}W zzRyWN$a-i~$-wuXgk8KpC_G=hEt$}X^= zo0^!JT`DPQKW?6-aDisB57t%v_ztonVVT~NQtGvyK9%sRp@@va!Zk11iv+;m+=k?h z`=sJIcd?oF7`pieBoT9998v#1UGM5h3%JPc$2t*;9FUleej2mjeThIYE~zRiJb20j z7zW79-8Y841<WP)IVcX>-|pRgMV-7m4MyX(%IB60g^gc~)jy{2&Yrw&g3E`v?{ z;DK&Q_GgC5RQ%V~eVc8uHbc?v#0Ca^A;Od{hF(onr1(On@OYg;Bnm#X2guv&9mVFF zm}|bOXld{MnO>3OIR_>7xf=`+*TTXkPP!;nU?N~xibf9~ew&;ufUbbQE2ss{c2-xr zK0jvV_!G%t6iBQ#L7FN3ap#Ie_z=lkYfH}fwd}O;HcL)`go&nr5rgdQ;4vMf<;b(O zJm#$KdyJ2r6@19Ze}t9`M$l~42?D03rtCryIiIQ7v_lijTeb;kJn3%m^ z&h9in9H~BlMk!1<-+um#fg}uYKv_6BIZ4t*`9W-qdznEw*_gXz*Mm^9ksjN$KmEHuBcRMKSfsN_TNkuR~hoA5~J8b3i54|+G< z*Ssb2Z1->>DwJE%HqBLvn?!zfWAVISiJd5wA@sFc{>W{NW9U8fQy3m2!v9UpmZcuX ziBF)B6bG|bHn8^I#H0KkjEI?COKO9Ra&Wgg@6IX2&w>y4T^RJW9Rau0)z+{{c=yDe z?qEnN;7-`eG3=5h1H;4jV%`5yEvl?^83Sdo1K4aX_-zfb!ZS0h26W%OF<5KR@`oX-xI3Kl{EZx3IV)x()P>#`@E0Mc{(oXyxK@~898gJrhcf8x z#_B4A8-jFZc%%3)c_xme*I$qPMTXyqMQAEZO%C-4Sw2Cj+1qdBzzX4~q@9Q-_qHt6 zOC{`l_?wPcxB*tg6$USKuwfa94pXIqG{z6-6*>0)0NvxQakKw98;;`idLL_QhQUTe zIlKZM%yDqsyrzsuf<|Vh7AI9iHW*C)ho^uW2La?G5sJT<&W?9p^x+FY0XueV9>bG~ z#n$k$V_mBM79x$#C3#ZlSBGL`m_YCR2n2C2z;Q?sMD@YBD)c-=f-@y2ZNx2)Om-_N zOoiWNo-De@qhfk>-#y$|Z^-IMvllfbxQ0cEKi?8?e08em8E?U$G>7py zIXVhqyw0#B{ysXgbaN8}xBoV#*aWoY(se{T-*6;>?52EsRNX#eF$9ZJZ%mq=Nt=di zdV1OyIMv^u!&URcoJQY!{Tk+Wu)UQs6ZI>4SzQMkU9VxKKtg1bk}^6TN!AY7jD;VY zK#y^EbNd~Ek+Q#-ZuE9-TMALWl3q=~oj}Nl*o8BYzT%>yvlpnXn^DU8oJbexo zRMhf7<{5xEUWjChqOa;z(vhJA_5EpV7q!>0-(7Aof}w?~jH4dIa%2Nlsv{Gi3y3{T-UlW3_l1?p)9RJC1_L zXbc?Y+qXclngYAh94cApjf=s);f0ga?jH6X+TO(Cj5gO>yD*c4;7|sby#IO)9kpa! z`b$oyb~YMZm_IUH6dW-&+?LaRYcjd^O@fyn^1Y=$dt- zuiPt;e?yw`{{TM!#4;@A7)@4X%r2y3A*QPob`383M(%AJ;|w(fZ!(7ct52@4lmv96a=va zXZ5Sl(mma{x=Ki=-vJNd38w%061-U+)uhTg4vWdok^SdHuWrLh$oKqAj~~xzl}?^2 zX_wL{X>(kDDJ)$0P#7491w)ihv>P^Qn9m6%4{UFnSz?s++kbqW7nh|kAKWlkIyY1@ z_Wtj)LWk)tWl?E)d}Dqq?C=&m zsp*(rFOAX(Kn!={QGAGO1NQU>>|me(Sq}pv;qinQJfi{`&^(6lpHfKIRnw-ysa{mQppM5)RY74&$H>e^y5}-*kU?(nP9BOQpq`8eU{O?Muy2g4dgnVrsz@<37!9c198=$!_Abx-u zRc}?}2pmGB=Ql;Ed|LC*xt5V85(Ga#MmExug!jFE_&8s^EfC7EkeM9_=Fx|UJUA8` zlZ7nfhqd-o$zI7yuFldgd^=*wRpErC{=iA(`QdIKWsx2<_`P-msX4s z_Q{LD_)4~0;bD(;XRIPjc40Ce;G9B}Fd4^Mod zSn$mi=%vT`DE8JBdk9Wu0lEj6Q}8yX_F^L5;gkP9JbVX0C%_ECAX4E@INLw@>o;k4 zg!gZqhb2pZtF=Qx%e+dAhV3iG;ta{ok#7u4mp(ME2DAcnk zW>{}|fj_|oiRai<`Hcy`BC_fDrRRrwEbh{~;LdE`M=vGOVCBu-Rb>dR;7{qb*FaG* zVdxn#m^RW!5_!I`Oy;7_uP&@Y4{J0U562#EEcd0kz8qYU0dh`lR8F07{0FvvK_YAF zd)!)kpt=T^4zM`@^#N&e9M*6fXdVA~uMOSka~MD~#)8NC?ZR$}J8T5Sy>XIQVI~C` z_nT7c;q0f@Oi>^(#wm~xQ4g>u8|W@vG7#blV#dBQI#mTSGV6k3+|p?D?ozpqqxt8u z>HPu!sP2-9PwjdjAga#(ic*;USex7n;i&9gQ1}Djf^xdLo>o*cti7avh+L0jWwr@1X6h&!CGV&l-d-z1QzCP?J+6H#kw-Rhu1bpv@y!_VM^q9?d#q}1?Yb&A$~{+ocHB#U^8$DwyY z`FZ08qM)Xx2F`5P+F@lA0A3)~5R5HMWFN?DC7A_-h^{+Upak{M>_v)yL%t_rQ~uh> zruRLS(qo}s`=CPgEw^yJ?$o$?r-Rfei0$zM-JfL}KA$ZZ!ftAAz}O3eZSM-$Qt>Y@ zj|NI=V-_M8o*tnE?`S8}bVsl#;4_a3>foyUND-Hx`du*FI@>jy&3meIo0f2hfRk|O zgVMKJF{P`K*_uorQc!|A;|;HKx^t^VN9b8SWV0rvsy@5eo%{{N>*nG!tZ{tgXzp;ITcBP)p z1_E=xf71YEL+@Q-_hW1V0s<%CSP+VlQ&7x96$-Jna{6lLifSjZV+}!dW1OROs6^a) zx6PI0O;RMe4c4tzExd>?xnO61u3u()z6ZOAW8uk*HWHy0C&`d+*3}KMTRQu)FFxdT z&^GPAEH)l$QJ?*>bL9THHo2an-QKI2NaEmAzf(*v<$SRaAJ+$)21Ec(?&ykI!5Koh zv~Zmtk$Nrnf(%gwosToXb48c!LDz=>dTX~_zKole<-bHa!2uB%ipv9Ebszj4HW&6% zCB$IOW098Xw&#}Vc~j_cNUC-qWEW3BbsNur5$I)gc3Q?ZuVWTL(^#jn(onZ4YG4)5b*R~VH>=qh$g$T)mgYM zZ#gS|^-XD6nd8p(_J#GMM+;jyyvma2o={zWddJ`TOVN!>GN7I=%S8$~Mf68}BrSE2 zte!d~tOzmeA>bj1kM$_5!8bD8u-{di^2ioYuZ7qRQvqP46Pl@D^(9_-Y1$wbOb+cqK>lH zd%W+7A5;i>T81?lZ>{Xr2wgSjS?eEqML{E%J#k#0fs{s3i!Y}Oip%>7_WjjD(kKr+ zO``dFMc1I+Vp$^g)vNhGe;5Ea;>0MJXeE`T(^T~7qCjVzb+imy#hnS+CGmHSqMTu z(nWO=6DM@z=8dcoGxG58IJvlBS51=Md2mnnI}bYCGf}5mM=cXMt#rTk+o*Hh+_xvm zw86nxZ4My}V`|L8yMd?@BHPJ_Iy9Y5o}R}sfC;Jve-xR3mg2F6CyuzjM#sIB%xQ4~ zZ6@qezXz*-jwa{D^!?kD^eeC^jqY@Ys+laPogIA6Ai&0#;?JkVeaFCrL}_zEY%#Pu^8+uZu1Ku5XGE_VB&ar2hUF!D8!x(M zS;@mvN+9I5veY{q~qWaN-yB#jeC8woBhrSF|&+9*E0|g07WA65Orv+eEIL0c!mq-@w zc1|xNqJXP2lr2+{(&@g$+}HZkgXmpGxR5bj!|$b=>ukS_ZqML;VBruAv>3>{@$~NX z16tusE&WeSaF;Lv!A9FRoZ)ElGzIy~Q>SP4TCQC1!Mb4lyv_gd#&Io+$u(GDHBp_z^%ByRCR5 zPG_K~@DvB(%bWZ6OX7YL0fRiLD$!R2bB}#B)<4!BN!UIVqM-yhA>Z3#?zI^;?Iu$& zr>*RLVrxBi1{_ckoZgnfjzCm3UVlXF`cP&nQ)r_`_?*AYm7Qx%RZ)L5Qho(R**>c{ zaGQF46*9Rr#w{B-UDK~)FKlkwCG`sHAGc@V*Dy-mx@962x3s`ta+spiL-A?ssw&@Y zQ}Q->Cz>E(I%{-zp}qfmo2+0H%qMBR?DJG!v!&f}MG;}qxW6k-M7*Zeh(~pgkB=YY z2e;0c3)iJtO*&+)JUsGQC&aI!&@UT*ZujzzD+}dR!9>*;UriR1l7G(nnF%T3!u@Rx5TvzHj^>b}Kpd7Gs3;0F{sgE9R-^jmg$RLp>wc~%~O-ibsraM28K#Uc5CbHt};gN?mcN?*r zrn6qA)AI`M657^J4S|kE3%-w-k`(&dS_&i92kn5uji1=n6Hv5c)0W>iIB$h-59z7j zVf(|?Td9wjvtsYiibu6=;@gGAZysG`IK4q%R!KdbC)3*FR^>C3lvv9|n?BEn8=i*z zx-lW*but~1xSut4devy-g&JRTap8K_n9tZg!?)`J^TDB|&PaRyt~a4Y46HClzdCf# zj};cNzY9R&(y6KNAIgV}KIGFJ@ze@`C!?&~_8 zAm^euI__gIDc6I}`D^%u8+@d;SfeW{Ay2a%u@g`nA9R^!uzmc3x+?7wS5A_V9P06p z)onAa43Bb<9C!g+Tp=FSW7sBlfO=4J$fduR^{%s0f@Y@d)7V#|jhADmNQBm>u``5I zUZV7{5sbo1HNLyiL-+d%!x95UaY@MzMe{9ND4*qPy$mf&4sMth#>^O}>Fq}DYS85k0pWosswV%+v(wSBr%*14qb&+jg=ww44e?VMV}%BtW+*c`-Q)jPxBqO{kDOfp7EaF}{<`wvSOw~$xKEF+ zsxjgS&*ZnfbxR4nN52$LHT>BBJQutX?vOe$KlPmIp!<* zM&l|_x$ry)LkB9*4_Ql#7HR%e8R^-Zh|{CK$J=&hVO`F^R;=|ZiCZ`@G}xD_zS;KJ zdB&oc+W|#KDl)*4her||On^sMM6ItQf%qEQ*zhBOkb?3LsYzG`;>X>!n4gx@O4PNj zbLIi%2AOs7LzBMLA4BBtcxydeVP^~}w`8YcTrD_OxMLtJW&rceeIjbaY5GqQWOiLt zo@iM^`T!FSRnOejhB6Y*cboy;mhduWBpN>gxR#q3#@Pwq-h2{ZKe8Tz9b99-FlmGN zuuqA(MdWRWgSlIfly6Ij6w?u0M^a6GB114(;Me&_UbfhYc|#F+%2TsM?vsXvGS<{S zk@g7#L*^p#27}WT^r9pDbi_HWww)IamV=80!T$8N3FW>2{r1+q285=5i={9$;WSH8PH?lkX*1c+ZwtSr8o8r7;oj_> z(a7dUVHw|U9k;AtU=xtbd%Hgy=HGKcj`?+k;OgE$wmFEhd4iBtXj}gS07xs$p~>I(3D?{wN)*SgVbPsKy@Blt!&e zVN%zs(n?pxs)a;^6-9wo(1ZdigpjNxkT|4yCv9vK9NTgH_I;iGb3Az=Jd%JGO*_(& zrEB}#@AsYWeBbZ)9pL}t|6^K%dC2RIU!RQooEZSlpFgi&xpHM8$8jY9zAuX6W3nt~ zNRq@0f`D*19F9aHw**1x6-DuCAP_izS+h04*LPfJkM)VQc}zoi^Y(YmF40%?jN0YX?0ZS^Xa9LNID0!Rdq`SjCI7w+7-^S9aA*~#>~ z=?_Vg{^IxhiOc08PN$Q6_~D1)#KgqE0{A6>^#C5D2B@cz7#IrNl$n{C_1bH%Z88`P z3Dgl&AJJ&^*Iuue*zI;=x7*2~Lx-XUgW)3pzX0$IfJbN;s2)&iR{_wP&1UnC9Xl4$ zFk_}_{7SFaEA;mElHT54a^l1ZB_$=L62PkfiUFikuRZ93$N*3;Sg;@=J3CuHCFfYJ zR*lc+Yin*xWlJVnrgS{JoJAN^L{`?&dhhuRh5`iqs zsH&I8p%ThpwLXDObS3(SC=*r2>d=641(i0IGs*ZRaMmiumk9) z=~8^i#^3iA-8L*1%ZomrFH5V{LZ{Q=%$YN8r_Ofh~!0B*P2B+K#|p66jS8qw9&MY_AYuhOt_&6LoI4fXg3JkLKR zNs`uJFaQ9qUcKs+W!XXLL1-o!KOq1B1+@Ai7!0Ddwe>q1HeQxxwOLtNuWGg0<-uU^ zmdE2Mk3=FjCd(iRAqI!Tv7@1(VHwM^BSS+&<$Lz*X^&rr5Td(u>C#KRy}fKoO3Jr_ zAoOhByt)5g`hf|BLKQZfjdXQ&k;cYGvS`tw&j38naoob9qN2_{d-jmsyLXd~8#j`i zoScY8quCB10e~tJi5NONJN5CkL6&8eqA1C+XMVqb_VMG#KVPw8#mfK+=gph<;ydrW zQ?qa1zHI<_04kTuWvZ^OK9QfF|0IA}0A{UUzdmF8_U)@eMSK6v17;HHknNM0CEB30r(!rarp-i9<1PbJ{N%g#*G{M7cXA?BLF!7EC5mg z7${}=559HVA$GZ32B*^rr_+hy;bBCh(GY;B*=&9`DJcm$oepZX8XU)gWm&K+YXJbrz@;h zYdba8M|DML)22=0s#UAV-Lep4v)Py!0FTE5LWlxD3WY)#92~^?^XJjg(E+E^37^jg zK@b4I3?QYiuW$ZD#7?KvSuR|-zyi>!R4O~ItX^td2tXh$Ev-E#CnpR*T~=1MnZ~)F z3L+7J^1%lm>|$B=g?K03wgV1_BQP>D0Jaz(b;R(teG3nkq9BGy1KeoYHMr10ifY|-a!>tH15!n)YR1ErlzK^ zsj&h85B0nR0B^kUhN`-{dhJ(VeRYF6jGYJoal75a(P$J5!$7asBPl5<34qG!bRMu; ztphDBEof_NgWvCmUauDefk1UkI@Z?Kezal3hCh~+VNn#X%CbC2$z2lp0&xJMah--c6`}D3ip1hSZe5w4 zkAJUoTTy6jZ51|c+Vo69Lc(0FRtuBK#5f#|aDRXQ73xKSE*6MunT+oq#9kCLT)f{l z$poMj`hPL5HFH-sssw|UCeRZEV`BPLPNfXN0obc{eD4^J5h)U z%kr&TxB82Vi+`roY7HF6VfO6V32wLB*VEH;je1_0DP(R!01k&kE-o%sXJ%$TtJCRV zHk*;2o}OD@Utbpt21n?2&RhTh$iTqBH*43feIYF^EhQl#0TzozpO~1Ke)jCy3pDoS znG66UBO{{4V(DM9WXWcu(Wv5i9=W->^B9KlH8wW3(Zl&rwZZGJzs?pG7BY>EjbzdQ z0Fa9pFWL(V3beVoxkZE!NRq^)r>8$D%W{8PTU*b=RA+C#`6eq#(wukSeRph1I}l5U zH8nNY^78U>IgVQ}GBSctD8#0xr?2IC-e$F0yB`LK!-o%RqtWOyhYlUGhC(6L-9!v~ zA1O>cckbL}y#Ky5Oao=ZJ zx>O}4B|q=&?JX=TD=W9zZ0d29cUt!Y4CNxTb8>Qix^Usb-^`gaCyD2Ia2yAgwvWX=!OcZftDaUSD7Tx5~=Oi?qOoXwA86h)$-j$xvdI z%=7%>C!Tm>_o79M)>%NF%w{u;Mx!Fja%(so{wxp(T)27jrnR)R)Ef`x{rBHz z^Yinw%x3e7NF?%u_V)I54Gj&aPo6yak>Br+U5JcP!gkN|HQB~&>_Wl_Ak%C%FDWP} z*s^^2@~5-2vy*t9ha^c5MKRWWkO?6k0A96PE$a1py;`kK^?JRAj*gDu=H}*;&CSi# zkw|2e?wXGZnc)5QU8mYvR>j?_q%#bYnURsPA}cFvX-Z1UT%PA=F$`lOgy;z&U>GJO z%d#gJ3=ZAAd9!5CrU0UoDU#D^jWcmT3{(RoQMniEAh2=dPof4# zX?*)>sCa3tM=^z~)(6qsj|mZVocM@MZXAf1$7557qsU~cFMrTCEAcb_qL0K;Y=UXt d(Erbje*vyJY9OkCs0N}Mh-x6Jfv5(e8i;Bjs)48mq8f;5AgY0=2BI2> zY9OkCs0N}Mh-%>Q)PVbdA9C#4b*V!sBCB?INe%~&k9O^PeV2&+zJKN?!3Y0PI0V_H z`vV?5JSC4(jcOpOfv5(e8i;Bjs)48mq8f;5AgY0=2BI2>Y9OkCs0N}Mh-x6Jfv5(e z8i;Bjs)48mq8f;5AgY0=2BI2>Y9OisTLV+@fj?Iy#t-*Cu8D1TWBSb_zSht^@uW+J z;6HI286flIy>yFHAs(cUtZ_I)j+2e@52T-!DsnCSzYX&VaM&*c>0JT;aF~k5>he=- z>xT_pT)n2EshrYDPIZ1IRjXFXp!%xHK`R@UuCA*dH1UYVa~c~~R97`OX?XoNa7fAE zlEDL4HC7K<+|*dLxU#msrNkD`YhGHmZ0(^G;OipHAi=0PnyrP#pOLcVsfJ_{#Kj+M=w zxnTJ8zOhNwm8)w^0roZO%;|IHOyIoQ~9tLv&Ezvr_GuI=B8YyTMryY?T@ z+5XqL_V3F&*&z2joQU>cB9}OvEDPjR$;jN@Kb$R>%iE6LR<4xm;r#6hKxL* zT<1+2);G3~4|mV|tX{dguA;f2@c^T1dpN+jYeyg0&Dw@^K=-SWr)yI>p!oV;98k=l zst%y%(26?nJm>HCE7juoUm4f_7a7dYFR7PCk&aBR-+3in_W= zq}6mt6056SbtuxIfVM-CPW77V`sPD&XLS|psv8eQkq&gskAH6U6)UR`MR^)3$z7I1 zF5c2wRMsI(vUX)f&7mw}U2Xk-Cig#(>6hEav~P~!(J!ijs0RLfYT$Hi?YHeeMK};g zzo-VH8u)Lif#=!&2bu9dQ!?dmA%38(VDT^dMKuuBz<+EF)Fz|-KVjN`mSp|M-e+`U zQ4K^j@aY=R^}qW}`*+{}G7V;E{r(rwx&HSa*Y^}B$Z&lB>y0kM6NYai)4e&~Hylot zJ7lW&g2QcPu6Mkb>2M~#4}M+lo5uJ);%7@=8DeoZdL?{K>?7|od^OW=kJX7@QtfaD zS>c`HmAdqbJXM3Bxvq(=NE|w;5gU5BpWPBS)fxmTI`-kv*rUie7 zi6$k-%$OC8egabTo-L6vHe~bZ8@F&Ul(mToda1HZ8@a_SQl+Mq5WSMZ8@Fr zx~R7QEVhrmeE+}K(Aoa)Vf#|-Q$i3thAg--s}5bF}{s!*-c~aPfY& zU6LN(E-wz!;CDlA8)&)af|cMy^&o=eRyEYEt3i|8ug~0jEnp+ot1Iej>h^Onc&}+T zSFhdArSF!LJEUbhkbbe{Vm0mm*CLZpYgV@C&(-Ensm(vR(>H#UYECI zwWFuXJMw4o9X(w>lz++@c?jQ;>1WDma)FdPdX8+8%cPO?d8FroTR2*NNUZ7Sqko9W z7~&?<3uKk7m1|sn9b|^o%Q%-_XSr4Gk*~S<#d3vwP11>#pXe<=l3&R4jy_QClOM_) zVrGP|p{3qb?*r6_x!++j+&jv9#o-akAI)(2kC8s!Q12p_{}Gbm6?t79eVlahdU>xC zEB|wpd?IbV?+5$~c@FC)&%*wU{n}Q9x9&GlwkkR*0k7gSEf|WNO?a$i0;0*mJ+P2 z0~=UgQMYP&MR`?2T|;B}s@k>Hbq7;sZU4D^e?#Mcfa$0Ff2cjb#`iU7&oQ*Pzd76n z9C{bYX=mvv7|+}3ejUDde1>VDaeU>orA@zm+QYXmwW2jqUWHA82VW`i57N}T$pM>a z4sQkr{YXDu`q~58N4NJ%uWG2rW{qa^8Xn9G7++eOa82X7@*#&S;o*lX;n9a9;e%l} zTk1w^6*tyYmS0$awuttOCW+C%y(q?HoS5VLlcY;&49yjGj#z$y*sT{}{3GU1`-?n- zIbZl~dyG3sKNW7K_a@TI(e!-G__Jji=msZ%`_GjehZEtSBR_Ds4MuQ`;SMKZ#Lts$ z4ku&0&zJ2?|K3vMmm(Rs1~_`EruSx{8BbGjw_{|otPJ|ARD?Z8w#fHL*Yak|DRP$l z&C%P-RLpQrbMy}KC25eGl3oyd>M2KQ}*rneKIdrlZ;d{%S@{o*h@k``+dEa8hA0b7!@*RDYO!LaU z0E0dTCF&|OP5F@CSa4rcya0oKBzp5M@{-9P^zl;Xt@Z*8dYN>?bus9P_p3dQpL~B6hA8k?zVV$(qYm-OO}7&8IhN%fz9`g`^4y`c?6h# z-1o_GgyF(t$p7O0?0Axoa2;W|UK4}e3&zqu%O;<}bgj)Y(Aap#BA=6B>R{}8&%V%X zn0VXfW9`dOkLyrgx6sm3!`1CV<#i1eOAlE$Q!|+DT4HHvyKV7)Dz21lVz$?4 zu)P-H@=W{3{y<{a{t=&;KW+a3X8WHz49`u&oA&<;q{sG-w?f9@E9&_|$?GMf+_LzQ(_7}f$^i=79Yn@9!P1rx&;OOlA+RG!vntrn3?ll+#%4{TE5s`sg6( zetZ8)7rv7W^oRRzxbR)1yWih`1@&jrk70lGG+E*3-DH{95s+iDc#$k<@0erN6LDCvmfB>47C3ku0bw* zncU|+?(G_c^u-5#qV|7^D;a;XEcRFVgIxYo<8+3Mfr zzo+RjeuezqPfrLi!dGd3wiD0Wt7QCY?SBZNIZEN`83 z^N#cGarIj-PkJwU9?ProS4oG2ZV3TK`i^vKNtP#AoQ=248IhqLK(?xv#+!^`%<=L`mtYQze+a^ z{n0^4IKI! zh+pq(oQ?kKIdt?`%S*s`Ifht>lVvFS*cWG6oF-SxZE_*$KO{W^-05IxL)=W9gRg_9 z%Ly)iK34CyY2WiU()b4q+nROvMz}C;%^e?3qF+=4Q4Jh$4d{Gc+joec2ft_&wER3V z`T5OrVDBQGr+bFW*~A(@MMmPh-f_g*AGDSE;ECR4`@ewUv*aS#E=?|cj;zKC{;!qJ z@Bew=e{wC(#>z5sNR*{6e0!|cH%Y=+k^hG{_S{fBX1`(S9Q*0cKpN9wEav#i_+gvj zqF+=4|7|tUV*4*>z5N#*YukH*N&xU3PR5L{Qr0`1iuI@$<#FPVnO?elOCFFH96eLM zi|=RmIh>8}YtPCh#M-~)$xHY`Sm)>kQi3_=E3QB2C`;u$xrub$zuXyL2e-<27e0p5 z#&^g-hr7ueSmCn!cX;M7?EVnxvOnNAC-xzIEN-vF}IUroIoETs%A7FhhSL!>{zchwrQSbu= z(yfcZ2quMCPqg0)h~0W&p~Q&!v-|}y`HS_%oN175)(Z=fKGzG2g7w0;5YXTR*g3M% zVe`GW`xyIpS#jl~fCcPA0ADr#5SuZ@(;WVY+<#1cYSx|gp;-~BS z{wRktu=-vk(_DU;sI6SN+tIn{DkeJ}JzLi+zvSpSx}J8n!@0Vil^(PC<>8A#cX`#( z^L4$d*3sMH>ntvZ3v|7y*ws&a%-Awys-qWTcV#d6(52Tw)4Ks{EM9j$k4`ch-#>nY z@SZ-O&hnzS!|U3~;+Q<_z2N;8&(F|%$y4$h`9BwafP6!qlwwCOkz_y1AMfyBDe`;x zZ@ct{Nsiyqzs!IIp=}nN^yobD9 z43G7-B7D6WoB(+hx699%pXPrO zzW-b<-*WV&*q@Q_ZFP8s?7;q&?`n9aSBLe~ZGM1}Up?m2L*;Z0Px>l3-e2hl81zQ$ zC>bP^^!|L{X7JY|Ek^h?(mQcT;?pj_wKCH?!FyKkpW)YGHa=JajPR#P1J+BooAQ8u z7IxbXG5dW&{C?hXtS>>Wr((2zLa<2}>#f9Dn7>~sr_ZzW9E{#SkxdS_$L#)o`5AE% z!*{@XY2j;?uGlI05gqSLBAX3yD%&d%d!IQMwruJE`ZtBaBm}BdoMP>mGEm0@(Y(E zT>jSbv~{#MI`=Vgf6*^c&fmcN0p`P?%#7a}U83Is*FgOG-?eyOb9KL)Spobyu&4X$ z+Td$#FUeQ{?6G~PNk3U3M?0J)E9EOP2sqILYk)ttuMZI)M+$*+w7v3O`Z4@|4zmO1 zEtq}v8;!JgB7F3VY9OkCLsJ9V{*PmOHa~6uX$JEPK>LNZy(gl@7t2nzccrIbe4Qmb z98Sl2Kcx1!_Mf5c|6$UD?*ZIDJH(~e4jj!{a*V?rFq^+oY8>t?x5(qB|43v1(Z%&2 zFCk6af3WY^8)l#JSz$hl9`!l)?TGCEv>N!V@qY)~qqcVs>jNF+ImP6MeQl457m^=N zzzng!Y5!@&iMoGC$A69A20L<6v@No|(M03`wfF;WuFdO)=)*!}h4(1Jc0VpXBE6kHY_FFgsx0 zfwA9;{tEa1!9>5P2BI4H;@5z-e{JuktVw9)oav`wwJ#m}Lo)H*KO5ifaEB2 z?g}{*_)UaqTZ;YaaND^;A>7?y2EmMjnGRD0!}c8gq8f;5;9pY%@%;ZaOKf{i)AMnE zMjN&KKhLi%bo4IZ2C`(G!)E+{#NnanEm9?qcmeyDamp`@AlCClQ~sm)gG0@iNc4+p z;B%;f`1Y^kzwWp9w0-LMzl8gDIQ}Qdwo2PSq|0}3qW&ip78gjWH`2SX3Rw3G#Bd&S zlb7LeKe@~Ml{b*#bv;9 z;FY`dm&rJ9f!EE2UnQ4%U-uq%;ZKv_dY^dXT=;Wkgg@KAf%z*xbBS#9Z}QJ@cpFX( zo*>6Md=t2vyB&XXsM~v#-fmtoysjM8OUw0gsJe#u_TPCa+JlbQX8ms$+e@_mcc`j6 zN++s;FH{X^`wy-E{hjS!$HO#?zQ@Q<9nQyz_$s;E^$%Te!l#pLBG&$)j}*(Weg0nf zuj<#oP?aAQCaQsdaSdquUn((MjPUt?%Im4Aw*5gOcK#eIS2^59=0nEvB4Xtik}%tE zCzm*SGWrL|cE|c&Bm7Q>ITwbQ@*-%r_Urn?;YW)1PSXyA`=3Ol-&(+f@%Q&X^2<*Q zL%BryKxZ=brXQAawO*`PYa~;y>exnsVr)kEhESIM2U!xz;Dr%f(*7m_W}Y>le74JSJ~= z=ezKQ(6{vi`LoNfBNiF*Wwyhe(0gRc6Al+cK6^iz=F;m8X+dM;4VT_PNOY=^Tt^=U zjTV#SmoEMYNDvw5Y{K{Ga>fF1_)x#6Q#jJNhsa zf1>pCzvTa)3qMu<;C1sabLq{Hv;A-TPdfT+c^UHN|H$~tFU>(aZKM6*7{rN}AGG`^ z5&E;AJPK*hwz#$MHzM3UFpO*6Hr|pTt(M~2F!A~`tba>qGMP?m;cYx?_nm0=ia$GA z#O@o-(C9_V#u0K*vCUoTkV1rN zN>U06yC1*(F4w2io)kZTULU+)y-+6VCF+Is)l|qh-KSsa9-*e~fj$dt*gPp^V|Hrs z#*_)!e({FvvOOczkL|1V1#u5Td44ldV?{Vywbx&$I>EMm<`0i4<^q*=o1U_D`-YU_ z=@X`>l%*7(n>`_=Y-4uu<&(N?nUq^hT{Qg7eS5H$t5Y|T6M74@3$?+Bfsf6t{&p8C zq17;kutB8sGlB#GOV69m@|~T%W!lmH6+N!NS@l1#T;1!|piFuF@ts>kp3-V^XkYq! zG_Vh$HF*1Z-;)+AZVRw!|Gr!++ofa$u#TUJauZJ2-QmKwLA*ry6T>S#MSdyo$&oI6DteDQWtw89 zpNZA9!QFCBK^|nm%;%2=pXYl*uMJ@q9N`2ItK6FzN%N4zM@i_7Fb>X;Eh)`2p%Cq&`CGAf(K3H_KE@k3U4lZTgQob!^ z+HQrRtXj&Wr3_linWZe*?Qm~G{8T!P-1LLY*BCo)F2kzb&FK>kVA27LaUk|?{VLuGa@%=p517J>qfB7hprFaHIktTJ} zQtvEzx$h!eHJ)iH%8l;t$4qgS* z_E%u2uZ=p|sF#hp*rOrIKGwM5|PBZE)qi!KRkr zVxXOYe144kegJuq-`IdM?S$U|*vG(JkFtCR<_(y!Xb;O_#^m97b0gW z>!yZf&8Jp0R+pbzTR&`QY+!7m+I<#IoE)o$uG@;{hQ_|JN!69BYorB@=6gn%H*MHH zhn+cn&b;Z<`^M&0*Hu?ERm;R97SCyHSOLZLO{zUv|LxZLJVX^EwxYz`s9WCiR#ew| zx2EQ$70cF^EQhMf7D`Y5an#sc)!bNDf@yPEWy9)bnK5_ryyIrfmuU-UO_JlL&zdg_ z=akJYn<+EYiq*}jXslQ%sHvG1we?b4-z?Ln&zd*CY!)hQ`Sg0IlCQ6-4*Sh%tX|{% zXUv&DZ~oj^-KvQzm(GCFXeJP=2bj0K;Z#{zzZCUQB{SE}t*(Ju>*~gdbrnrbQZ|3~ z%-u<%D4IyqX(+|ghEq+L>GieEE}IFnXU`BVjVwR4e(A&s2Uo@OnwOTLCaYGhI=FON zd<@d9vAU^Ybz@aEAIU+z3iZ{eA}uUCjjLE!)3m(0P9N++CAqt72UoP93Q@FE^`W7Z zM+GU?;Dw4!fxhsj#WQQG8XNd7$Es&mRxe#zy)-tlfB)FlY)HVM9ySR8<~CB0B!-`W?mu{C1se$Nx4m3;Mg>BG&!>8L}Q6`^yez%MtiK_#-gVA?vppo_^$hjx+;Hd`C+aJ>#HT_2p!kR5jTk`%#D+i8!Z}d&y|JDhG7wlYrebeQe9$9?%cRO79;F&o;KXU#3 zmtHz6>#7?v+I@8MKZn%izdYpIFU>ltuIRMBTOQd_Q2O1=rsTYNLE*#oOKw>2LvH`S z_Qx^FLlG!{k^BYSX_#+)Tx#4`VxoWi7~{SRZt6f~m>jI&a=t+~B*E$&(xj6wqmHy; zIw-$H|M7^+F_7-|NT1^}-IU|LB1r#kgyC33|4dxer$Bcea-;5N6Fyryl^ORH2u~i2 z{s|~Q$A7xB5##hA%{vi>dS2YMF6gf^^8w(mx#~qCRc9 zQ;=$LkT3Q4oe|u76WoE$254K&G4lUUmKdVw?}uqf$B}cW0f6wlT)ZugyGwv)WtzL6HrdhPv}o64b+29cRHRs`BD=; zPp&L8?rkW;sX=)b!cE?fVe$|+;Rxg21phmN@Ll0Hx+pLwV!lB+eUy_tCF3Td3||fE zkfpmINPjlslBZ{w?g;<;piZCxS2_iGZG@Y;P8g;G(&rq?q?spAmKpaJP^kZ%{v1Nc zYtv216r7*XJpysbOVeG9dYc`TEd^z}J1849y_5#!S1r@vof*Ct%EoUHbeAEoVL{n0 zgnJX-F(3YOuAY{Xg6}B|vj+a0W73_9dLv&=cN^pt=y8Ut!0H6Sd^bm^zlC8s!u|U) z+J}5sm*IXNvrxfMkJd$DBpcKVH*>aI4zm>Dh z8@@U%fdLP5HKVPwOcX;mqUq~F#xqrAkgwya;!zbP{q`lqQ&p88R?A$`OLPDh{F#o(DtFB5g$N9H4b&aP76EWJPQ?~>D& zn5!Kf4=+9j-N`w_|xm z%69J=&(G(&Nw)ThcY(&fF>HT`{H$NtZTVA*F)h?{a1`j zZT0mNjQeW%bKQadImj*0iH;{+plcoUPeuAOgEAb8@JXXg_!79emcTHSr^EFLx(k4~ z#zS`=p69oMvfYmG=LPwWh5PlOEw6`rOsWar9&McK0gT%LvGanw`UCZe8UHRQ>BT`h zm&5;)pg+|1t>0%ypeq+vE~EfDsDCVVk^h%{Z-Gq{`57cf7)zwQ`6`pM-k{~nm% z6esmzdP?t!9wSSpxbpPEQ_9wT8YaEotaT#!GAHnY%)bmbV>}3cW?{^3M|SIVR9{s&sJWuCrn-4h3kwnPt69SjFlO1@nF|otteWjt zo@+;sJeWM^?{}uEpHJU!@>Oj``G0L+Y~jA#jc0EA1HtbhV&&J_ZasOPIEc^hg+c$I zy)5|$ZGS3%lOt}Hyo&I6|3T-hq=Wp%;Y7u+JKRQb(EboUN!wS@{(zIwW9HlT2b_Wt zxxM_(#W(u<-gMaL?|X+>%VYHSy+_=iRn^3hFMC2*h9bo?k^lq@DUsMAv*FaeRFXi|D8gEW+upf~8 zc$gm`KhHTvZUV;}w%`Q$8*$KIu>JdZlkqa5eVFzeV1!TO{y%xl(KEEY1{m~gsl^V% zuaK_%Lmu{>e92%TFfI8#5C5BB*209{*9HFHgdKLXjgN(y4O0WdcrB&dk{|P7nfl8B zjQS-Q*#|>Y<50|ZqF+=4hqeZE{Xb~GOnKcZv=`Oi<7xYTp}}I#z!Rm?(W(Etjobw~ zcfa>rQYu3)%yICG`&HVE@jgQpxyQ zKCC0*#P33vULMwdMoYR2pRfCahB{mzi@cM)J`NYk7VHmt%f;^q?X+*mF~qvwStRdD zlJ}9Lcfsz4S@J!HV=@Ql9WHVh->GDp6u9)eW4=%(4>;UY9)U*lMi;&}_D|g@^Bujf zq^W`Z~4_j&ra0k5kFn#v6BUq#4W`kz$hWgK?|O7WDTfuE;q-nNLFaoxxoAI=HzvfMGhK%w<7&Qcxa#i>H4-lx}EHw%ZWCGRQX* z?%QHEOpfjeVR&lFxGKnNB*KsYbn@qYbgzXO z-_sDIo$i+~^bFMVc(dNVi|J*fH7zjTS9E@xD;GiEGI?yyMZ-4dr+k0uA8%iR{HOlwfxwwUiB|b+VvgF+d?n9Ph===5|OVfSpKJXNq ztDBn3S7L`nN!3Br-tJU_XRxo+f1Si*gUSKS;&pG!f`f>vixvl*@%}7%X!}oRdo%O> zcz!_F_k;O8+ducRd5YVBJDq3NRu!kBJ@?T)Ze9x0%YZ(R^IhA!7H#j_FkDZv?U8;N zNbd^RY`ZoL%M$&f8i;D(@Yg_#<9~+f516~Qe;waBj(e8Rim|t-kmb4;*7OIQ9h4Xz zNc)3i?Dj3!J+g+L3U1*H-7jl!TW|~K>Ap*YGce0N!j0>;kFfU5=qIe(1M?Ri>koe| zML9$@@Sj-&``iAPpzV3uA0%L1YP#-qH#iBijDfoE-C*+f`EG3IJk^f#blbK}H+h2S z7u7&i1D}5lwAlVLTOa>8e{h}K9cdY?! z|5p_BjTc{$U5eYD@>_3WI%iE<+NeV(H;I2qD8rr7;fNIwXQL_O z$Nd2D>jh6DvT45w@`}7>_a7sClDsZ&$!gM-KS-5#} z^%|UmuM3yivkwTLhtxc$5DeJ%?>@ z8+_lxE@Sh}7x7atp0{(~+xQIAKnwHJ(Q~!69NAF~{A+69!UD8Ow0Cs382#HzfU}7? zzCWq-(ipmXgv&Ae1%4@tU4MarmURBKzX<4@FYr85GSW|lo9VrY^m3#Wn5R~<^}M3N zdNNDTfEt{La5;MZ%iuN`!7+v-J%i1DV4iz3*z5=1?$S@e7sw1ft7+(|njYn9u)j*h z-HwsTDr3Xb@@8Q7;TDy*Vd&X7-E)@8-Y~emOvMZ*IHQ61IKPJTJCw=6^FFEAjo2Ai zfI;sJ=|<10ybeR}s{8XPzk}y{aB>T)AKz429tL-p3U7r+*&Zf*PlPB|IUff1LJplQ zM*QB`P4tk;05S1PQecHqu%Ib49%RrD#Y ze%fpQIMvY$u|v9-eCX1{S$c!N93^WLjoaF!hOm^|P;>rvj2 zq4&am?_a9yA%h3VEs*zG?C2%X|B~iYCXt~JmiB&EpYn+e#(5;aoqwClZ={^>ZTC>g z;$i)$2>sV8?_6&QjybUZE`olkgIRZXMGWVsr*B-yx?3i@CtcV z{-!dNyg|&rPS*LC`IM;yjQr}cqkCv@#+vk1GT&eBn={v>H)2LPNM$d1za(zf^R1M{ z1dQ-&q+8;EM9O6{7&==mgURCI-`4{I4g7pIQJqMyc#V_~Fa~ zdM+P*fsgj@;|1f{UOyM(Q!2(T99}l#6wldW{6cH={apCxiJzA(n{huJlfs65dP|0V zBj-TuLpipw?o)@gzy>!%N@T4Vbg2PwsjkCA8tOtmM6T{!t&dCwdJwlErG&!c%@a<~s=Q3F{{xyQ7Z@WQX|K~yO8E&NjYUrI0^`iYUXqvac+{EW)p zL4Tf)@%vTGKq&vugg;7-z&?jJhc(fN_&?hOsLb-v4K24gv^poeAtxYeYSLKb39?YW#7edgl;>A*nVVRZQIA# z{Q zdtopLemXxdH<;t~O?^%O$kBZnzNZCpn-D%lCi$~{%E4v-Np7LUpWss_t~ZG|8~cBb z_9zqA!+6iHig$S5^Ypxx(xG3>U*vl(d;vl%weso^zDWM+?ef0D_!_>8P?#jZS)#q)D~ z%5pX7PnFZ5Uqt1&X#LET6Z~~P<+~dCadMXbHGhLE&qDc=|2IF79fkakhdz=4K4rj~ z`YFfw-Q-aotics>op+l@*{}vz$vNJo-gg|Xm0SI%e9DY9^i$+%|Bt@yC#}sn#(O9; z=NNy5ZT;id-mJg1`K^(Bt;N=EjeocOytU)!8`j_2Ha$BoaJ=LE=``Gr&DXkXQSL_8 zdx#!(Te?lte#f-fj-}SNdAvWUbI5hfk{bbzyo$^ZWh?_btVGe2kt9#e6ynIBM|j_p5^5I)TB6Z2=+_lVhl zP)2idF4HsoKJ^kLBmX4CW_n4$}338<-d6z)nFqZgz}-;o|2H)IP74etZ49ynC}>QVF3m`Q+|dM$CM-O?Ia!Y=WqoW z^jx`1o=_RnmxPx57S+IyhB)X4KV0gx?Vte z?j}4XuH~zIcavUc>@K`aWxcb#Q)(~g@09&+%2SNlX&X;vw<(>{-U^H?H!W{Z@CWak z`Jv)oyWe-kz0n`wdsw?0kz8BH&-=hX< z2AlSuhT?MlPcfKvVvhe?m0lXl0A>ra{QFVi2OJ(JG4K6%)KeSib*Cu?r;!%#Cq3I7D!TaLm&pGVZQ1C(e%L|`2GA>P=6+VO!*b+lQ6iO zRAYUPx+M(mCx7yieCnBCf0}`BJ3sgS=uzi{p%24)*jZj6V;J;N*l*a?qb>?V9}E7X zt+zqT=YxKveA&O$4{&w{<})!|fvii=%j90~F^~Ey*k5Kq8VdJ61Q_(ma-!ehQ@4dl zf2!Q*-R)7&1^e3!oE^(ZC`bq};vb{@5_Mph@G~(#+3W=}I1qleZ1ryNs2jt?pChOE zr~3g${9|>!k$N-Ozh^)?1@|`u81c(xi+`t2of;;7h5XHLn-E}xuTp-@$lhlBYF$qZ zFyhz9-TsF@b#a*T)ye{|%A;NmgX^T&oA0TP4q^S*%M;%Jc%CcoDk)4TP6#m4Z&d!t z@<$ocw0pepSwGE&Kk9@vL9Qnb#yVjk)(i)OUm6TPN!Wt0o;VQeiJ4eG>;xVv6=Tcb z6sbZP`CW;;lC`-e$hJ&BJMLIsivAo6IJY2w(b9Jz`rV9swc+fX!(!6xIL36t^Bc?4 zj72_EV2*`Z3}bm2%KVR~*);4JRfG4Y3C7|cxJQ0xve?@3@#6h$p4PVEt$n!1SUwLs zAEn&`^=9+7WwLfO9&<#AeuuLL?EIa1xbb{1=l@h61jZL~2Z{LR!G0iq-Qqs_GV{}0%P659($mm4S z^=oRz=&E`l&3b>fjP%Mp)w7}DbHSnZ^Hg7hhQ}9VZ@4?Z8{emJ91rs)t6Nh}9=J=V7s50Y%+BXO-G9rLMt z;I)t+6kzP%z?=aWWk6=dB!;bZSiQT=U&R}e_k*`7` z=l>Fym&ULqK&}()IXn`$Q)vv#+Oi#c3X6{dt}2aTIU1({Z&h6?EDzb5SMUXpx>Z;| z#8YwIOzf4$&`sjBSH$W zL-MHnXaX?GGZ*-OaK2G7%0oN_*W2d##})une{+Ddi6`LN!ummY;#s%?99s~X&qt33MbogIe#x_ldES1E>a|VoLY$)QkveXZW5lW2-l*Hwq?e}ci+WX) zr;`r(9Jr_t$sR zPTKN*ZYDhkD>93uf%FPu=vTvax2umlZ9f;d^5tuLq1;ka{&w0v?jrrCj9;Md{}NYU z?e%?sfcK;ITPT&dK5`hcPH|C3RWi;S*I=!a@9!Fye3`rQ>%7gQT#mPYxqId8Chl4BqQiH(Ac_h>w6i z` z;!=zzH%nKB*ZL{LXmf+CAzkqVj4roIDa)sLB1Wri@;GrW<4?k9b*+34<4X?u&lI*V>8b+hnxy_8M0`OT6);;JN$G5l!5KUk^1pwqy66m^rcw8KOU!1exN$pOnN6kUiTxad(PDFiP*3Dup~0P*5_hq7x=!s zj{d;lFF~*Ty{c0wXBE>s3A+KFP`#BolZnga+qgb<;g>*OzFM*UkVkP{$?|FX zl^C7BD+^qHRX9KMnChG|^riARt|yQlcq^p86gyHYw%|IyD?uC)ojOkTo8 zdD8~hDDHs%Dd!Z1Uyjp<-;@;Mhlp$C4qVimWx}tJZ{hlfdwwS?{e8Z#r!#z={2kXX zh{qAHR80BPra!BP^oD=RQrBNK$WC08qiyPcmC~u_%JdJXU_bANs*}s)-za~K9TY6eOfKqUbaWQo2GrQLA%fKs3X**cdBCQIW>5#V(KN$Ig076 zQ(VmcQv2)EAa~01{IT<}E;b+gbQg%f^?32?P5@p6vrzmO7sEbL{9RvyT`vBrlf=)f z5Py9Y!YzegCCn1>pIrvKM*Jz&;*aMUl65dx*B^cwY^>qSsW4c_$C(~~E!OyVtwp#x z;FDoiz|@MLvRwQl>fv4~{!tD1j(iH-O)$+cjWDakPhKtlk!QfY0p`m{AN_R-&$Xg#i(xK;*#xr@=0fooUMBvwE8)HZhG%HD!BCIy zRWM&gS+7P}FBkuTOMt(EZxCC=ziKnwTVXC0|G8_$FS-uy>rn?c!QPH~xdHZ#;*b40 z?Au{_p`70k|IOawSKT50>0c8+@n*!kP5iIi0{X2e?>AxJ1#>sT-YNdDZ;3zd9=RFM zYBc(z`_Kl?L%X;f<}2uby1{&m_v9Lk&2M9TdJW+o$9sG<+QM7#I|+W@!FyhW@Mpn( z2!2<=FA4FUfPFIjpGKUv@V^}K*26vl;qHV#`L}u)@=aW)51U^gPh!&e9f528#B_6A z!kU{=4r_jb@`p`Ld$VWT+Kf+kI3H+@)_Dr&F2!(jj>CD)FVR;rZ|2K+NCNzA8EpLH zagXa^n14(6z;NfIPomAZHa=~8U*xgU5#|mU&Mz32I_kpd4Mcs>KfdhrJ1eLsx@kB^ zpzQx}d`n~e=y&*PpvConj4w7vUH=O(*Z)-hx8jieZ_G!`_kckDx6%(>{`ZO>4?9x4 zcbazK-Jrf9&lcuT+W!70_VN=f7xY9Y;fx&2VJTPZ#fr5?GUcj{ZA6)#hdF>-Yc1)p zKb}PEzYQ&rOu6dnUPYO{NWY-I`gTtisfGERpJQBA=+c||nR2CdpN%z*W!QjItiJfr zefWN5``i8lJu5N3WlsLL2yjULxAq4i`QJ(p$^TXylK-tZlK*}99&?m(R0A#7K#T3a zlI_|2bo|dSnB)Hv^07(}$^TXylK-uE|KxvDPc3zAQXegK{GA8Gp6?`>1eis;cD?5P z^!tBJ@Gta<-7ir*hV|gl7KZw9>Fy*+@JT>JlO)i$i=BZ+5t=UL)7O=}ttNd`@)7;7=WptgG0rTayF*&Ip0> zAg=oNd|UYvlTL!_V5U0@VQvf3r=I#Jg7PQ8{Z!zlJ}f_YzOX`km%oQ@tjB^d7|w+{ zW0`&~;!>Y0-5udp-PCZmf!pd4<33fsdkoVB{?rdiH(qnOASgp;_!}0+)B7=+@en|N z%<_EM<$vyF|BuT54%+`PtoMiIe?xkdk^j9+Vw?|r0}{Jc{&zKTTbT`g ze_{FG^D+OwZyM^m(g!^oC(H+145lbo&ugoE@Os8?kM}N+4?csq1J2Xb8~NZuTm*f8 z)kZ$}6yh#&rgy%P4?dT;81iDi?DiLgWntL81$Iw?#nxt6&fO`GGHi1{LL@I-qTj!9 z4QTrh_WQW@AHV-c+ZX%AK>oM3|B(D|#Uc6MibL|h6^G=1D{hNM8OZ-u9FqU7I3)jD zaY+8R;=?EZdmr_~tCqI|R}eR3TIP0cwb^Ub(uiqPd~*0HX&=?dMk4RaZ1s z8;yMXs!LDR+8?k!y8|q+c|QB23@v*1t@5Qai z|Hl5IJ>-9HBM!;`t|bo1|JMBWBLCZC_>lZ>%|9gn`;VlDibL|h z74JpQF z|66fL{R|5O3!2T$(Q}TlR1G^7wE|8Cg-BHRQ8}cOV-Wr2l zC1W8)aRhd!bi$659P~=<&=a-CZjug|v2?~Pr7P;O7`uPEV~0;qd=2f5TI~y2QvD%O zYoL^%Um1*@(nGNtQY!PX^pS^LDli?5!M+}LG3+}~gPh53LJ%Q0{P$QABbIlk#8__(Dg#3M>@y<-{Si%R!D$7 zA-`}y^1nNjBK}_FfBU3|lu5< z|5kcP{9j!9KA^G1*56S;l9LWFnaZYtB z-W1CJ&c)uBc=_LcB>$V|K>t-|JwF%u-)KKY;r^n~VAo%~XE6JV^%&0BUqtf1zxeXM zU-WkDA^-bf?}a_&e?KL^*+c&KH*h|o7|$2X3Z8F?B>P!=$p0?#d+Z_qJIC+1hy3r0 zyjzU??+uJU2J+iB8TsG(evO0v$EH2xf8XXkw1@ofL6AqcKk~mP`3v`u|9vIatA7Tz z%G3NQ|NHVie`U+^ztP|BA^#iw zE9HOpP8_m_{O_62m-(#LFT;OY{&$0ahLQiR`G@3xYkC{yYJbRH<$ot7_B8Up^?ojq zVF`&A?JorjR5)ImE5}+gMs|-^Aq3?*{qcRomvPwCTDEz~<^iTT)o= zLp=UM$^XWtWPa}?&s^M{<=#*E-^J#dF~|G=NcrD>Dem_mOwge@^Vz(_trT1-&;xF5Bc8-3{Uyr&4)++x0Wv?{~P`Je#!s# z82+>6f3NY*-Z%N*iA--V^1m^j?IHhL%iD_l@0}P^;^lv5LH_qvjyu@vZ{>e?#26wN zcXXV=xDqe_`+Ugw!NK`R{`a2!CijK2AGI=tTEo`g_Op|EMe@J31CIVhH4v%+UH=y_ z$N0JNx|hN9i{Jl$Q(wc+GqjWcjs9`3^1sP^V}DPp^1qcHlK-uEFY>>Y9+Lm9I3)jD zaY+7mCG+18`QI9TKjeRFej)ka8b2ieTj_g||E=K-P8HSVUhn`S&H;S^1l@yg#2%;zw9CZ8~k6(^1nB=EdN`>hva{2dix>& zTkGpE%KzRHC;xj3@AuR4zc2ExYFYlb-d{-mx87e!{jzrI+4#+`QOxe zb3VQoMDoA&Tx3gpuH|bF)%OCG_l@?=ecDd`ccqc{!}-7E4@h_Id!PvqFUKE{&i1YH zzcoG6zE%D=+8^UO`QM5|^1n5FNd7n8mp$Zv<9*sM`QI8pB>!9E?}z+v4Ih&Kt?7m2 ze=9vC|6A!H`QM5|^1l@a^1pW` z^M}Fu|M<}Qe-*~1lY{mD5m^796s`Z;vl7wz|85!72cmPq&M6MX`hU~FAti%L1`k}- zSUqfU^_q%3a8qN|;=0<(#Z?vcpeVV#p>oCFyXktG^7n^K|L13|{|nbs4ZrXox&AL) zzdwlee~lkn|JVB3%lf}?{W`S%@5inG`=sy3`oE@k7}x)`e4+J!^ymAv{;%abgzNvB z-d@)KF`n(Q{;%b2W&Quo7S{iD<4ghnw|2$KS`F z|En@|^7ktLTX7`+`(Mw!MJ0%8;NWUN+yCac_8))#FQBvi7en5ur|mx^|66fL{x`l? z^8~e%|E)MA|69X{Lwk)}UjYIeU4-E99iLdb?` z|CEAwviy};+ixNy6K;@a98Q9?*o$PT3(xiUKJr^fr+kohvc}OfaOP#aq)}F$rk5>c zkT?8*3!e)KgIB7KA+C$^+l#fWUI1b{pR)EPh;QB9khcA1!~2PTQ4RdJ*MMyst=aZ_ zgZ;+Y8n*t2TYr|#XJ5->?`wbe|1_+qu4*>RB%fMJX>Dnxy1u5izPf2~Rl~}a4fSS; zrLwNNerfrt+O^en=6^|*IXb_xVd?6+>Om8aSUjik&}CNJT)wiRw*GKtQq@qurn<4Y zysDwDq4D#`sHSmU`H;^mqv4-dMx#HEj6VBaQ2hyQc8~X)Fs|kX`~b)M*MSpLN%w?% zP${D+QR!S+@1$~?aM%>|1jT`jC1A`4l6oeo%qxwbAp?_!Bn9%JK+lyiNk=BB{3=ba zy$nklmGonzkI%uN7fJ7={z;UvW%BO~{-M3f?lKti_i<4+m%&{XQ%+W*-cJnNMLU%* zWy)Ku`whB~uIYDEy2`y$+#M%z`&c<)$iD~9>vm0|EGZMdr+&Yrj4hL1FPw+WQrTLD z-Wzw6tMb7N?xXcZIbSAxU&Uiw{Cx#mE&dN55xE0w#pxoN1|ch z`3Vg9EAm!lh#T*B2mIsxR<__5Yr*d&_}RRy{mme6o+n_s?C)uaZ5V5l-jctKBhl|O zYk=}~bMgI+0V%{H17d5qW?(VHfZv7u&o;`>D*vrG2^>hC%D6RjBkzNXlQ z;WWkXINVn8d&KjYU%KLe-v-WroF1G(aN#qR|EAnqlOOq_Y~@KU&uaNn%YU}So6^tH z_w^Y?;i4KiTs1&_5xK$lJ?_t?ENALJWPY3vUg$wr4$SXi^0CQx0?cZdTVP&*@gb3F zB+OEntuT+myblvYIx}FRUsMB84SaEHfU@dyn@xM?dX_-`+yVSHZlJh7+2E^y`BoA@ z0Q4fC{pHl%{V)Xy$_x2F~pJDm~hEo2&(O`ZL z2uAWO5_rUp;H2S4Kt`OMCqy64{*7>?dWZ(tyOM5&C)Y);%thX z?Qj}Sz8kA_`{`^NX*yP97!u}fQ8(}X+{B5vzz`mXSsD}q(Uk>~<>?dKr0(&Fuw_rEp!F&We zA9hNI<;k}ry+YUVg8eA)a@gre zZ!PS#us6c)0ec(lCz1Z`u)mFP55n#P|EFP}3;YV~6yUc4`bV&D2TtjxFT~uoBfifSLF;R+Bzj|@1@vq=N6vNU`w#^y|H-ObCbwK-#B9;} zJy7LO8+kzby+GSDzxXBWF<)qdIlJm=8N~UtnZF0RTaaEF^w+;7fu0uN4790@79)JN zexLdZ-XYu$aGuV;1B~zm=nX2Zt{h-~eVn3tg1nnq-WXca69#Mip4bszXukhJ-?u=r zF8LekeM!{vo9}hh_hN7#U0+B6&W33R(-Ec^rX|1U;eQj%T9~l=y1@UNu)}WlMPp%R z!_>eqUQ6k=VDU%0PO|F`PzoS7VvfAkHR(-*Pp=q|+=hS z#bZ=I_V1lO?ITn__Cklps{ZfCiMKHRIHjxp?vsg+RIK{DD~XR%Tn1gFIpc}PtA1|P z-#v=B6r-|nv zech_RTkB(r>Tf;^dRvYD?Wyt$T(1-B^PHyoxmADnOr|$o^>M5I?mFV5RljpFbiSJM zA0yQFt@^vGNuMDv;|lBVeobC8?O(q)huVLDUHcC(&jV}wr|J&;T>DQq*tLJpw10lD z*Y>aR)1bZjcc#7TdR~Tpf7kv%>Dd@-&ow%@lpo2HS&*Tv?O)R?(C_1_D@(uEcS4^w z!L)acAH)0e1A|kUe^2c{w7qM3z2KRx`kl=8@7}te*HU|H$uHc-!|re!54#Vhz1y~K z`=4<8SN+}kJ}if3D1d3^pSD_!+>>-%0OAK+5`-5P(T zV%6VW!SMC+S6r&UyOy{?{)S8Sch4YRrF7NbT~2(8>U+PM?Wd8rQT4%x^>_bS{%rJj zYktkDFFdTjJIzZo`nwYte~q;D+U}vhn^^UCYkAfxUG;Zsdg~Myvwzh7=`__h?k}7z zK4g3ObLYZ74hDL>htG!&Y3TJ{un2ge_$#5;n|i##4f+cLUEZ=p{Mbndw-|9Np_jT! z{BtYBFT`0L^oy#$doc8MgIh3qxN$C2^>E{C=&ok*)1j|hYG9VZRKqM4|Kb&}YsGJd zUhkbN;ckFg1yhf7>cl_g6!9C@0;8X%j_|?jVN)*UX)w^)OAq1Sumsp3DlLHu{m z692ff#ed`+(5SQf0+{nq=5wJ-`+V^)zZ7^Y%od~t8JNQ^hd<88g6lLoy|0vBqroGu zV0#gnic9eniGh`nc3uascrxf?jXZ$KGFcQ)mKd3{EHBU74!zA-HQ@FR@D%5X;>nUt zJOqtMvoEL1ud_pl) zz4QFwNL;hg-(?{^;-hdWMtQmbUm`cDZtN_)AKigBrt0$c-`!{c%>UWD`%or5O2*0De*4P`%q(7!Pnv z0{#21Wbjmk$IwkY5trha#8B<>dwE-SVm!{8BH6^_aVefCF{q`Nr!nui4vws;l1*I7 zF^CxTk7}34z)`(a3Orh}iO1nmjPgtez61SXNg3$7N@K?W-!0!(o!z{@*}(V9_vA+t zKu7tA%Wx?kEwQ=4&&dn&HlIJzTLAnu`MSY)zQjl3+QRyoVeoW}Ns1AEG3f8gN2=R9 z3*+5Mz#qt8RL^%7#^Va$zsf&k2=8aUWD_5QOL2w7mI0@F8D1XWAKV}D(YO?YUIYA3 zN%nOA+A@Q`=YP-tDJnX*dN)o&{9L?$3{U#q_A!Pv|8@*3V3Q=T-mmeHy+-Qc#`9=?v}m8|uX zj`4Gr^hNtI^b9!`*RxFTWTuxXvvEyz>1D}GT-QtiUGFCwz2+Qg>+UB<=HY4}y&L1_ zYJ0nz>1loDX?wW9rI)Yo`$r7FiQ(Jn`+b+A7vOC!l_f5H>cki))GePpiQx+|EB}&w zL_C|g1K!Ruxq$bl^p5)etzrJtN$-TWZ@SEMCS1HHyEkS-cu~OieDf5m;}LR`xKPiFXj zvL4r;@w{_p5%*VqUitrV!~=AGp!~n4KTzib%KvM6C5n~*pU?1vFaobJ{J+u%W7J!1 z_D??|0{n#Lb3Ay8h)hC2bBL;JWBcHwdkMC zcs^R^1OFthXZgk`|E>JL-p>)rpDX`gO8Qvk=av62BOa%8<^N;EM=DnSU-^}z6f6I) z{PK7qKd=11-d`z3gX<0dKb`T*Fj`!_2mgN~#)ndtPx+&X7;P>y{J-*FlQ7y`W%z%^ zla-%W{=YlZo1*-?^8Z>tQ^WW z|0|v$ui#Ste**KHDLZhLO+|UNerCy=xGIS?{A|qD-;y-<{?5TF)lcMJ^w(zoc`Rnz zPe>;>KbZ^Z?oUbru|AJ^iiZ(TVSe-Fhq&Hld`5Il`p+DFpO2S^aQ)uVPml+3J?Zd?@&K+xhS&FRv3wWT>*x>6{P#=pEnF9q zuKArL-^bO7@wGjb%U!rWW_ZniiQI{662mL5!07osxzgoViP81jvVe4bU#jF`T=m3h zyq~4=2(BlP9(W_g3(>#5O1jopwfq#_H4^=od7djEt^Rhy|7&?qR=V>4B@AB&Zv4-N|KCi!QnB*?TAq64_m%(G_zlXh zEB~+k+bX3i|F6&Y6!{Y_<^L~cdW||C2=o7c!T7(K{hg-YjM4ueqWpg)!>?BU{bIfk zbBWhTx|eSFf1mhN#mfKd^IEG|`G2jCb&8e$*YchwpWyN@0RQiS|8E2S-wXJEyo>%I z@c%D?|IY&de>(VoFW~<(!T&EU$LJ3JAM;P;|9gP{UmWoNw}Aim0{$Om{1pGcHsJqn z0sntf!2h2S@c*}i|KAS&{|4~?H-Z0uCE)+h2>Ac);Qwz2|9?xs|D!+u6#tK2+`kq4 ze+>M81^E8~;Qwz2|L+C-{}}=QFW~=+!2f3l{J#YJKgKo3|F69gbCu1gg9{OVllUKf z1@^_DUn2e)7m0uMHsG%UUoHNU>*2l@?rUJK6aVE~fWHQJFPK|VpS@w<2LJ!h-n#(S zS(N$z^PaR#(reOdN=tiE+LD&uTiOzC>AeL?OAEAeJ57_c38YELr58Xf2rMFEL0s#~ zNsOV;qT2SnA;XJUwn~1 ze>3CaZp;VZKa()Or=NU`x%nvTg`X1d>+qp-7z;=6y8^#Q=;z~!e*^Yo_#*q0FRbNFlh)__S69^S(V?eCMP+zQj3q=BOxEVs@SLh}je2+hAj zf2!F&#@IDqXbYd*VIHz;Su-y}E~UMP_7_{hp?%2@;g!l;`F;X-9{wQ>VfuGb#_KW4 zKU*0T?-qEHY^4p;%MQz>HP&F_d2G^(FsI+U0kHuP3=>o}dil@k>n~ zhADku40H8ZQ##(cC&ED=X2&Uiy#n{lNzOflHRV?+xBRaq{x4aJ%e?^i``O^hUBbF` z&FnD#D7)W~{}kd}!=_Dc-BcGJl>0vXUsL#L0_PrvTd zf5_7;>DDzRF3t$HlFWP{Qv0d+}{5iZiwaX`$#8z`2A0e(Q5Zg#)T`6-7i%+Sm%M#2_N1cmi+HY zXma=C0yxdY@cSETMVxGu`7!Zbc%BXa_XzH1;g=$~zlBrp|LJ=d|NRa4@{PW4NxlDf zA}4mK_y3fC>is{#srUZ`r{4b)oO=IH-xsCc|C2m3_5Ppk2kJaB*ZY5JiyJ7D_S|yE zaclo2_X^x~apyjfw)>6m|NYpFPewSRID_b8KlA-(2>nOj{>WeY>NOVSt^kkbV7VW} zt@Vc7_u!sT=G^)887qgypW>Ls9)CXg@Af#0!TGnopUu2z>ck~ zM{eER^ykv>lYypYvcoeFexmao#X*K)_fm3SL42*V$i|BHQIBgyNZ zeH?v(qdlnNTtpoEJsj>r{EvCQA<6a;Ux$OpcaEn&4*gocDeb37d&tv&0`avEm;X8V z-{|SD$9?K<>mOGwjx_%{KxgDnTx!g7nA5gVKdsE0n18}Nhj|I}D@c9qzM;rhPRQ`mpgwKJ-WsFhA;bg%4olT z!yk@mcKH4yx&13psQ4=>uf7SCdmwS_{Q%qrK+DHE|I>-{0bjR+sN0eg!}!Hk-lDY9 zzxheu&-F5C0N;`S5O8XbD)&{y8Mwf?7f^@#R!{yV#QC_#KN0+r>B)Z#@x?FXo=BWO z$DMmB^l05H|IZNTcFHvXcgf1?0)HQZdKhSVi{iuy-QvqKgS21sbml>)zF$b7r$HyPk9hjy&@UdVw8OzU+n0AL<&~^e{<=AR zzi*3Cw1xKc^1l-Q)xK^=L#JdJ^1lp!{~ah}VSqX0=^qXKrKK*8PG9zW`t@Du_Bqa9 z=e+*T2q_1eZ+kiiL+ATFJ=?&4v#*~O;MwZScr*Uzc>1S_evfk)ZpmFl+oi;L+?Qn> zWqHHXHVWGGEsWx5u96&F?tu7`X~viF0AvrAo^GTe{&a!sOK#Z#Pr z5w&~3(_BFueHSX6qba3iQgUwu|6QKu7$GlsIwwKrmA+i#@YkHD_#;XCh_4gL$1e3W ztOCE*xr(z0|6rPP7eceuM~44G;z-uGY!L0f(!}wyKYQQDpZ{xqpNb$@@=*n99G;K@ z>pWd+r7&Fgg|%i2;eoW@!?ext2A5vnn_fE2a=%Iqg|Xaw9kX3 z&aJP7-|hRJzDu6$X%?6NmZx(TbZWh)yaG!3w(old`2UTktv|F$MyNQ|&?9-A+zq(3 z_7gn^4t_Mh&DTQ#^{~~`HU!!x`?On$zt+oYfPTxjuUTIpxw+ymCw_3Mb1wvcm8ZW1`me8W{-+UVk*7hg zIzH*?mxhb;J)O(QYtjT4zd!E#J)L>bDILAaOC#_^pVuki`MRh78t`B1^BqUNulcsi zW4x{N`3@rfk9@w&Qsx`JTv@;WnQG!TJO0c3{>Rc4Q+SI04|^V8V3x<$#eOBaZTL_# z3w?{jBe)m(KP<< zNJuBRHT5*;E{LwNGJTQvb)(zk_GFH;=&$ev2pc+o>da`_n;M2 zKi!PJarOKj&|R~mt-i9gvAG9HY~A!A{_e%yC*JkA9w1L?+HUtB+g9CtlDbaLv-7lD|f_K!ZTVfTU%Gv+^FFiuUWgbrnRTGw#duBw_H+o~#C>n);5D;VdqYA1P&9loPC*Yd5cq_>QrwWcL{ zyKYj356C9*?A*4x?ZT@-qfFw{O-pMfPtmp3?Wi%;jcq)(XIkr8`Cq|_bz7A=v8r~? z#mqBXE32-mZf9MCGTZ^y7 zW^1CUvbD9QxxomL!=EI&uAx0CYZ`3YDhfI;8MCdaeawrRTrS+-pJ!TXT8X0v3n`VU zf$r^m=VXi1O2#nhM6LaQmt(9pJf(0^nJ9S{s+QxMQbSesbxp2*QrfMH7Z5w_Cbi~_ zme%UJ##tPv%7t)cVAww9Hn|5U_o&**?$I&oxbRO*8-IndbSV+S77b7~_o4 z(Jgv1HEB?us;hX>&-GmQ0Hpe=gPWS`c2>4Ri0i!4yFtgKvUk-qyL$CL7EPjZYt%u) zF6_MQu<%i>PlC>shJZ$E=eM=7wY70aJMZSox^TMmD7V%?QM-7KCL88DQ%IBZ%Bi}l zD(mYt7+a{a)I!zR!4-xks%z@~z;rn;^T`qy?rExtxALD0E=we;s%xt1RQAz+u?0%5CJ(gx7cb%G3903 z7rst@RkfAP@#$C9>`BYlM#}8s)-z{PY=cJK&Nc70nwn}qA6Pb4*U%c@>Ii8U0d8q) zrdAkE)6G3Xx(kT<&IdzKq$~|^xl8V~;MfFwhvUQ%~1uJa-RJ!VFA#IDBX`s&2)L~CQBrHTe@2s7X9tKFgTd55DajUpG(p>sGKK8xA~ zrp4Dn?JBzhN^+rwN>-DWeoyz#x|&^0jjS`(eZrdA6}f8DB75qho)*^c);4D0hJ+Xl zPc*k&m281zU-d1g>Ba`zN?l=Jl}@a|Gh)lGB3kOMsfh;5E?c3VmIk_E))J`Fd^Jgr)=rOr2rmGVf~Zn4f$waQmocHi>y9hKYbs?72w7cQAU zucJ7LL|cPew>mMm8&S&3Z9{Yvv#PDRqaaGQv!gINRm1igSEW zdWGD#edO};4tcImnG&9R}S;^`Md3pJs9>(9*!}zsb$G07`iz-X4l8kAs^ZJ`t zUfv^;iQf&9>pJWJ9n|#vuB#!La(;PveGlVjOu?Pk3HV!kh<|I>@wc*RL4em~L)yXK zWh`;vE+eHe#4ckeIa0Q$?UpgV4%@F`d_dOqh!0D0n5>0x3UJz*nBtH>Wuqo_nbMxq zhEqr8ila{5GGV9Ds>Y^09dJg+r?YcD%l@-7RM)-{f6q2UIKH{9zO5zP1-dn>qsxVM zkZ$hCW3*A z+s$g7S8xW!88cj0Xv`+h!Ir{?vA1&a%=Wm#86#t}VUt-QR!btw zNlAz`i*UpSWinA0KU3aeeM15=rz{(&LV3!2BTw>D03rs-_E+0Ivx0@L}dRJl{Cd$Tky)N);dnzQ+(9`>H-L|LZMqqsFP}^ zdUV`rTx04kfu!6*nVL_BdtysKM~Ni;vwO7^31G&doE0afJ^5nI@1J#>s>C1^*R9ZlU15uatoc|?GI=CGA_)(HcPuTW*C}mhO`B( z$DDN)7KUZ3gm!YQFrVz4KMZvvQU_h>vvZhL+G@vpW?ke(VOgieDAd+T#=a&B>}c9- z@(q*8u|t1{G>iN*jNs}zYv;+FNz;=gnlve`5Yt_s);rR69O*&5>F5!crK{Uq{la`h z$bGZ+i)3h8b9LpNwH>2G<>ehUM{`I_yS|+a343?uoSux)uEQpSGTS*B5~9smt0W_| z;|0ke-wArtJQB!fFd=!h=Rnq%k3%QQXn8uPS+9TooNKPOplN7^hcdti&(W zVL)2@$|q|Zx`31|LAG=$!N`0%K%N$98z&N7VrnlDb=0(5Ts!afi)$a<9|2`4aAixC zuHa<}sjlfTXh-GlM8^pg+DYP$27+oWWzCSrUu;E^y#+V z!|g)5<)cfId5gp1;A&*8yQh*mW7q^%F>z(}PMuA*Td^b)w?9&{VUGCB6;P6Rg*f6Z z?d@`}$#u}Xot)WGr#6+w-QkcS-P@@q_lgxO0cOiX9w#U zGNDY~W&`bi$?^-#(l2yFEPIa0j+#B(b>enm$tJ7h<{GE(dOIX3rAtec zM9y%v*xNNi%3`WrSSCA9=|WB(m=jBm7<u*=FyZv>q zJ#IPeFM`zOc2U9gf@J1)=Mb*jZ5>osTA6D^XzFy?0zc%8J!O3PUga^Q?W%m_EQnm9 z?iaxCSlvbP@bay{d)wI5TE`VbU610Ha5Kl2$;-j)u?W!hVXg{uLfC47ZLRaRw$;^F z3rJkZ5$V>pZPreQ%F8Kgb7gqevbwURHnAc+#qbbPDBXs#0_wDtk1knyULQqG9sopM z_C$D@SGc~uvOeM;seT()EnVUy#)*~nmD|~=b9XJCXy=`c_gFe?%=Fb>7&l8$A~o++ zpuF6j*qf9HT$I-uJjI8T9(UzR7d94iqsiBBRJ0IYq2*~$92MZeuKw(Grv}AwSz#vVB z(po<1MT%#)TVc0y9vu9nd(f%UJyz~v7L^NnHsyT#h!ns^)~i$ScLk&oiZKDR4*zd z^=eYPBx&L0<$SZ^>FN*(e92yhS{$Ep>AX`HUfy;5u-Q978TNoqqJ*6xJqly43j#Px z=(NT9TW$92}-qhHnk1AQ^q`tGcR&+O|`s-)d;Ok5Bh}A(~60=`-mQO`o2t zbv0*dn$(n;&G?Canz21E{b)PIOVQ>oG<;@Kx4nUn4G}PNV=Dr|oK`;((Y}&wW%(Xx z^YDuy*JoX>Def#2k&RPcUT1H*Si&~C>xoe(^)a^DRaQE(c1+yIP4mUOprd50 zi}+HbzQxs2lyf)@d2~DKns!t+A!$rjTxxF*d1<@M>0(^mM+h+0xtPX$RSg zLAp-}(+IOyxzl`7X3aEzeSF6Pd`FX=x)z2^)6>CjQ%4xpNTm1>D}{YTogmfEAx>Y< zX7S6?1JcqYS#E~+9utj@92sa=>3-1aHH1Ry%_ZZ6i8XhhZtoJ;hub#w?Fuy(TrXH&Mq{qQGDJD;f1u@peMLg^)ms@HM}D|n)flFEVga1iG75(s7IiGW*fR^ znueL!z!8Lv1Ric)2hSADGU_ALIW9Zf8@=+E`5h*F%i&AptG6cJ2abbxICYafzj#C1N_>=;_n}>P-Lwbo~=1VqQ=|?jn^V9lJ*iXJPg7-r)sr{>` zVR7C-E1=KabCR)d7f&633szvzmA8t|;N%%K7lH@y6T^wQVr0 zTX<(~_{olzFYDbP-b1^IH&sVcFM3aJ`Bdrz^AdPp#4iRD)ceo3;ogbS+h2MoSMS{p zS&04{aOo|~SFnEpeHWLxH^=o}X94dwzfj?H14>7X^pol>Jn5Uzd(`^ro!YB-|4l!= z-Ke*W^me3v_Yw9+$TXdo{a@|1hrI5E?wTbj0XTn1`+tk@*C_XkxUZvbE*MF<$p4{< zygLrfcM?zf-1UBp#_uX<)w_jyFI(^MjiT;W#f|v_b)dJ^^)_zmZ;7YrLE7TegI8~S>%D5t1>sM6hV;Iz^i${!qMw56TAn|Y{*^7* z`srQMKau7-%J;QXc{`o*SpR;`<{3PzuTnZ0^pmaxy%!z+^tS2U6~^31U6hvcP7U>V z4|PtFt=^TN(>5>D9(r#({7IjN-hllhWxbjD`Z>5?rjO}&0SWcy_-YkBGj_64AOr(&b#l_U15N>cwhVgnU%Hmo zg=oVi5lAK5{%wx-0ErnHRCA!>HRmoEu8w(oByvv>nG?NPl9V0ed<1N zoXI%X`*C_RR=Qx`OFeyO0Aqu`byWp@7yDB&#^WqwP901?T*3QDh14f_q^m@~o#cH4 zdY`3k^^U0Co0hHsy?rK~3DRvK{Q;*_R=uMs9Rk-=*LoxTr3&IupVE=Alzg@`-t^NO z;MsmHDfOwhlw-cnmU_OV_hK`DdLL8op2jG{!=%5LdeeK?dJA|vZ5#f6MSDC92W-I71m5dMjS~*Yt+G z^tWnFq~B|#T}^*Y{k=q(-YHJ~>8;JwU+MHz$hp^1hHSstzTVEDyie1vr5;w?@6wKw z$xH9V+jqRDK__L@ThKEm8><^ZZ}Xy$L7=aur8Zcx3g9RBX1pGhZ&^k7|bGJ78QP%Gn5KfUX$H=>`W&Hsz>^j-Q` zETvtgd*jp+r>{eL-FDKCo9JgBrhWC3UKHs=k**HCPk9e<_2z5%)0@Q72dMYE!=K*I z9UMmoh9AdzJGKhG(Lle_TeFAgC*kijT2;T&lXwGnl+%ymeBA$^A>VJ1{$$FP?KcE| zadP1FBxi;Z#`oFw$M6pWdf` zo3Y(S8?2k){4)QS?w0WP0`;u7ovZU$FHk=}CCv!vl&-=r(O(ii;!(!=XYu=c>>B#U z=ZPnMwa?OqdPn>E3d&8pyb@=ABusCNR}k+IbBf;Z*KcP=+Z-mn-gmB<#o7!yeub@f z*~6do1E&7$_-`}u(C?m$lJ9kEegAkHu;&lA#cqqG!Z*ckiZ$;Pzlc$Td942PjfcTE z01eaY%{O-u&U=x1FHrIT4--BZjeVz>NeZ{=i|zj3!-S6}#aQzhn_l#dGx@>PV1SJ; zIBtG!g5aVEo?@OrpYg+%9)*{gZv{c@+Yvn7JP>>{_#x$S{B52Y5L+Fy{LAvYv&`+W zmt#kx_{-3A^q7f9@M?2I@X6qgh@Q3RC;hP57=>>zmj>4cS4Z@0VmIGn?ux=MGc$sV zf^oFTE%@Dz$#hqc_Qx3chwg>ITQ@s+74Gvf+5E&u74Lhr-`U_^gXxK%c(C?KAwSmM zKz^a#hdk;{`X1iG4EDHt%C~z%U#@AT|0&x~Isl|EMemk#&ToI8fG0>F%%VjO9xy3A zrZwi;hyquBqXgW$L1_5C?c zJ|mr$(km-nbg4hRQU9^&&PTc&GJn#6CH(~Y9itC5XYgM6OOJ`(2cJTibU)kozpv4F zfhY23`N0qe%g?_5-Rxk!-@Aphfd(JreKry+|AsxVUcj9hz8eoL3EfDmM@#RPig!wn zR_Ing3*FjV{pI(U8u&{Myz@1X_5J^$9glynTOh9Szrbv?{Lb-%{$@?EK9F3)=6VL-4LZ`z!|!MGMda=8LNZ$H0dy-^>kRxaM$X@G>h~3hE5uW8f!K?K;V& zA8W1*t`4*wa`1TO-`ZdtDFgH;vpX_3@*cNj9xlApv;=zt@tu75kz|RXJG4WYWC(}0 z;%fb^y;-U)Jd)pp=`?4GrzxH6%Se~$cQ1bYv--b(h6Vwv?;HKruzd7foaJEnEz5fI zP4ul=ec$LC7cBkY7AC#e{}V_@UZ?;c`m+U}&Yy+RcfAJqLG+nwk0Jfr=K_BoeX3g1 zhx)(2#QH{iO6alrzbi~d2*)=N{~2CDPu2hZ3AE99*y{h5zGkcM`;hAIsM<~IsMj_#ZTdXUbC%mRy9@7U^?h6Y-!{BIy?d^eE#_Oez5Z|M3%B~e z(Z4SJ-_q}`{k)4`X!U`o>i=GZMjV~zxbQ(}&pFj-eV=dB4`zS9*6IIdJZv{ZSdFiD z`oC@dL(vs=zMKDtYrLe)|AY(HFLVC4dK<0&i5RW@E-OQD`ab%ZOWE1{hsK``&xhWX zPT!)13t8I1j>zpeh;Nfx&Hzw;D+l7+4QZ>z6%vW2bwZwpVc`o6U{E3Q!dspdxhR?wbKAMwfN zR{kWXar(T=(Dr>>n*ML;2e(k=aQb*>S=j3Tw()0M{oaxt6>nAgIi{6A>6!U z)69PUB(rz=rOU0pZ>#^?hM&&p4 z&At5T9LMP+u0U7d-#Y!@wmz0v{o|6^xcE!W0sbWOb@jE(+{NG51>63z-0Cye*+;R> zZ-x00e^&puE$>S6J^pS`xUHX6R-gAv5xm;!3zxja>AzlMUgS?_2E|sN^Ep<3xXvqF ze&?E(__O-It^Vor%n$gp`oGtx{A<}Q|J03t*!RAf# z2YZIaodn>a^ya^^dnp&cnBM;(yT=LY6^EfSZCLr(7 zS)^P4oP{>)L4jn_;$K>GgzoSxUj8}<6>pRK7nDWvH@U_8WJ@*~x+QxG|1--Cid zfz|(gy87>K3tRo)R|?)^;ZpHSJASS)Z}S%$hW>Bnz1V22`WF|Hr{of{u)D z(Ekn9v75GGd;QIl#=sLLyvjcY{;Z4{L=n=2yE(iL*i_!lrK7G?3>@51fcccHi z82#TRdkMb*dT&I>_j_@p|NExD!cNiuJ@SLV=>NXyPHgml&%PTwMgKP($*%uLsQ;zR z|9(9nzs&Khb6M9v^GH+{>ZOhAw$K>z@H$_Cr7vWZJ?l|lQ5#Brk-9#X-(U29yYoGr z^Zmc7|C?^~IfgMOA?9}0s#CDv&oX>2_6iKW!)!!U4#zMbA0WnyAEGsFc`AY9*cZg? zHpLvkpBc_@`-#OQ$By{3;xo6wE+iS7M*NA`Lpd%Ojs15RvNG=jF2Q~cIwoM>Nq+QX z^B8!v_0o?hrUd#KXN&k%b8b}Na;W4}l}Fw>ZS#-Edu?*BeYDTh64;-qKxA7(sUBv|vi%9yFP>oA4UfoVeiej z_|mvO(!uEOiqSpa&3Z!j9LS&e6X9oLLYVMURww-ftGnHXOWQm89wU0EuwHoG>h|qt z^Pg(hOVSzX;FCEqJ=Mg1k#Ay!1I)G5i{zo&AL=|joTF3uqvpU=Sn*{-f1Oe3o|De2 zLK#GN!ooP2cBoS-T`^0##-_{o?2*@AX4RTbl*+Z(FY#v1oi%6HoS9rko!<_Y%Bo29 zOGXZ$Z)|I>LS4r3%VT3}^^$G7$>GcN+j$HwF^T8@boC9V_5b#&@BHcQv&~1&{PZcW zl`$>DFXK!X`v-7^&tZp*>SOeWdw_Sr)xLn;2>uUZ7f#_033kX>LI!q- zcwfYSh2miDfxFy>9Wt(Gpd$hNDY%lD;FZ8vV2jC!!GsJ@cjYwxRsKP+6br*s1#A3E zAMr58ub7rbP{dnm^r5be>CT~p z(GDIfjXfWQk2Qm1V`93`&K4&FevaO!xQ1PlqtQz7V_?c%8(+^U-&DW3X2FRVaKB`u^g9?nt`yr?Yz+9PG99 z#0WprTp!yP^Kj7+WRG$FW=HXtm@fuj53Ejl_~8&V=bp%)he^M}To!AJd41x*tIYku z!-4LQ1xEPSn4x)N@;prXbK#HZIE>1_*4z}_8R%Y%qi>!0P;ek{`frtfy=jhJ7xOUb zFJNMy;B^~|p3QLZi6KnO#1ES z;n=TZI@@#f)R|2|b)dU}4z4$oIN#NMCO^N1< zA)FO!e{JUrTR*KV7#5q@+3Yh48EJF4?>&OO#T@Q_&l$+*(Fo%1H@#akYwU~Y<11ut znNwh@piygW?GHnH`xy3y^bPri^N!py^4DCTIVf{aru(yD*e57!=++)BoU>#rES$%L zQ}dQ^$qx5}r<2c0jP6b9o<$h0`;(brA&zj4+D^T;U_y8@Wz=2G5Dx9kbeaBPo}nGa z5AEYU$7b$0_ov@-EH9W{M{$!b993q<}^yIvPf z-xT)+J^lf#?MdYgy(Z10tkbt>}(#*gs*@a0L5080K5p*W+I>*4ZWA zF7x(cZ?E?DW^dPed$+f5_4a;mAN2O4-hSHKhrE5n+i!Wh-~^w)x68b}*xReUz1iEf z-rkL^4dkuZZ(;Apz8m`>_BXH}#l98$Y3${c_Yn3->?7C*sfV|)_Yz((?xKQyEHO*4 zpJCxthFt<5U5x!R{8wW?fxQ`fB}t~AihUS+zx?6R2eC!Rqu8S3X>8GP z2)kAJV~dWruti6~ct=MGw&*Cs79ESRMaODv(Xkm@bkt&tj@{Uz<5q0Zu^;;|_Cajb z$D`Qykk8ZDYWG9f>IX->{T8#(n~LGxlKO*JAI+ z-io9{6eOhm=3|Gr&i%{}cNy zY}Hf2#ES|J5WfU_F?JcY>T@yndf?UA2Z1+ZPsXmrE&|_f?8AiLid}*Ke(XPDAH-IE zk75Iwr?J%^4q^Wq+m3%fzN7I!%)|+@KfAwA8ULkhAl&$uM($#xd-@J8V6`;ceq$08 zD*aGa%MzMFCJhqFSR5$JBM3m<7_1q-9|`AnXoc|3K!(NTEnx>zC zjji^(75h2j@5fgA9mH1qJ&LXNdm3BqcL-bUcLZDQ_ZGI=uizxte@n16UdpgFUKV3( z9IW>CW^9d@TI@LfyRos%tv-A|_U*w3f;)m@_EjSgevM^!Hx6OZBvXqFdIz%Q_n5!o zgzO&fQJjV(`9}7cHz7T~g;SPWIa|5Syx-i;UiA+4p--A`Ao~~)OKJb*!HQrd z=On9xHNiQ-xxsnCTC|R@UCkQZFYD*EDJQ?QxaB9{c02A2hw2Ui4%U`tRL zYz?YdbJqmhg6-V(IGY{dDE4?`*sGjn#s?<`6M~6BJSYt&1t$fQgDIS!oE($|b2(?3 zA1nw?rGG6776+#V<-zGeU9iL~W!JKtoytmfC#%_!oWm~UJmgB}n|16jE-)Lo;c_9T z1{ZTmu$j~DOE@LCjQ#x;>?XD#ecH;d0Toha8@q!O*?nATu0rOt6Uh}?RFPgav#Q_4 zNyQ${t|po|BjnwP7bmmspUUdK%uGXQc?yEUnFt$abHX|oAtL8S$cYx}tQ=9}>FoL{ z%wA*-cOuFE5GSD5aVwoReAoP&d7hKR7dWl@ z0cUPM$mQe3s zj^YoeFaEXNV`xvIy+&w-6&HB!KT6V{QWX&T&Qp_LQE} z!@iKJ5xy_5_%?98dUlppiqDL1s%zlofHHk&zhuMOix;e!7GKW$f7??BMAu2zu35iv z&BeV)npnBMx2ZRH<+Qfux?5%uK6l}?cutAK3d%g!;mt>YZi?p~Z*VZ(vc+b)$;dfP8@O6jXAht{5dv*YPGU(AjtmvhnV zm~uE5&5o$&!!bLap7X`*c>I9L?Oe1|lsTM>c8ag(=c1jW>#K(74PWe(z#Mr`r#O4g z7qg@5Q`&Oji`mJ_VYTQGbtGEKB4FsL>?$LJ90ej7STe*(xk1{MbstXrnpd5I4bQded3v&E>!c)INo2LWX5D)% zy`e>l23*0URwh?koHC`B%bfNRhfl9|H}@q%)Lo*>!fCVS<@rYRaMkUusqgzNjw|xs z%%0h*+0}~EFkU4cAIGUuTn-4)j&BCXf%>}EL|<2Wl~+n*drDt+z!33vbdJtFUWgYQ zFT{(F2jb(^cFo(jCXNfiLOgfj@u&)6o_AbYPnhS=>rl-Vp`yAut``*blc($dK$GfAkv2Rzxsdy6>$a!6ywx!vzL*MZASdiJH zEql+=HHx%9Yu=#MMyxk#70 zM|KX<=8h5fMw-?gtUZ^mbq8zCV#JP-_ePZ0G1hDgr9P3w<&tI2lDS+m>r2koaV_>v za+gcFdL_xrJ;NL%dp*r8CrMw=G6@BAIY|C;%P0p)VD1_9P_~qNMm-d~<(AR$9>8H= z$VK3nTZwWJ0Op=kPX&Ux=X89#Lr*1$%0 z>{(HIA?fT{M!8BpbIIj+H%*R`(Vi70cS&i_@`?6eIY>@>mXnhq9`DBSlFA$;tGSe> zB?n1s&+^IP4np<}dL%RL*(Z8kWSG4D)1&M6U0}_)yOY~BsGjA~>uXV6WS6X{J`g{5 z)ZV#Vo9cq@jHbx#8dcBo$mLqq{Jy*d-2t*3#PE7bG4re-7qNRbJh_S4vti0ftey=~ zE)zgDJh_O?v*GEbn7k8|If=zP!Iz5|yc2YN)eyZCb9X{uv^43dSi2LPxrni|q3cuH zauZW$BP%Ddbcm>TV(9i*auGYX$I=TibBL^WV&xD^#{$q^Ug%6tB^_tc3$bz6^!J7n zbWCz@#ll_F-AgfWcQeRI?Atl=9L2nyAq_=&If-??^^%vH?S8P48`_0p~uyASy~xyZX?YfZKN&M$eTx~j5)2kYF&f8BW;p(_-f zO9Q(|-GvO$r?&6^4tDQ-M(_VhHK+e&zW=*#ee%7}k-SuTV+0rQX6XiVkzo5?@E~4J ztvA117sA7M4fKF%iNcF{#q@pVMH?O?zY%CZ7#_k!QghUgzv?Ld7+zIvF?ncz`V(o| zcney3!!zLz^TuZw{yW0u9s-Uvm=MS{;SiVu7JJ!mKWSwR9Jdz!P25w>E5Cx=?NN6pJwUe z$zbzxso_1`0lXXhiS$UB5Op2?sNODrG;lnMR558y!CeRT7L=}8x~5=BLFr9JOAD6V zT2y-X@=13tA6_b5H2Q5gI>*vAZjv#VoGis!{doacT5US|C5g)GD2n&rYj|e2JHNdZ zH?I+WHx}Kw`kdH@Cx6(OTmD0Iom9UQnns*rcwt$;t2@L-liS}D-tI$d&VidBJa77_ z7xqn}5eD8e3%ZuCSO870&*Uv>#?t`aI8Oa#egAuXvTZWQ|M&~S@tjBP&oHqF&gUKF zt>${c_Wkcd-XnhAd_95(o4-ff(sv_xsQC)|Grt(YMd;Uj#@rFXBY461B~vfh@{`fL zk-W?tiul0^yu5s~xj%}3BJWn;WzLS`$9XIHGiGK4PvX_%|Bm!`i+AX)aOs$o`%UnQ z9|#r?3H`%3p&f?ZBfKf;Q{BRq3Wx5CQqrWhL7Mx(mQQ{5!3S#}{Nxudd_WrB_-%du z6xy*Sz7Aaq(!b#NNHz|%*Ty#ooOS&EcjM~opA!G7+x9Fp-NZZYj-ruSvfbmT1J>UKD;h%o)m+z{( z=&Flm{?nrE2Os%|@9%j3@7FzW#ZQKRwcwlIUI1P7m5)Qy1QcYUtB{{GW%c%#IXi{; zibF>nN5S3@O0liJ-_gnO-fZV%!P4eC)|?i>`MgbjfqDM?a6As=_4rSl+Z5iQ_(OPI zevauc_yWPjyq$inxg<(IlDE(I+p%>N9KXY8EQRiqiI)m@wRZ>N?8M2KW9y*JDRMH6OZeG*3g*Vw#@n zZM_kWpKyQHO{bW*&i zAXZvbbYDeT{H8byj?CYY)_KsiD_8|3trgh`Kt*?;e&ePVc*iq<7WY?UVZM z5fjPiIys;39;Pl%<-0)A2Xu6K0^bD*U7fpUN#5<#_D<8*+xdTk=4j1k4{}=qehdGQng3-RbJARA7{WkG)_@%51r^WyMT=qsxj;IFVC(Q@F{bkMqA->{C zrnFzFTd#+H?d{L~NbACyZR5^EQ8jhprYbg*J^$UhS8CVI-k2!}cg^jQ5W%fW+6Sfi z9A3E)y6UQ$plciGN^K~L7mwd>$?~Gb(01!S6Q6E|?mgv!<>(^H{5@Q(_1Btp4?@?! zb+<5?NV9{Qx~0CRlO)ub}H%78Bj7(g*&8N)QQ~1Y(h=05Q&X9kIcXS4eXLJ>(tMD9o zPDjm=v%hP{cb`6ly;EKOJKn!C=uR%Eeg9gq5xTarxBXnl`|Yelf+o!Ecc|0-w)xsP z@rjykcR`o-sZ<%iZ1Rb$WaUOvm#O}x|8qlrd4`z7C!k64bTj~3n(BYhtGx>Nl47u*kdP+>TJf%~I( zyugk{jW?NY%;(pf4O!=%tNkPE1>|S1Z;)m|{UX_hh3tR5udgjhWErl^`QXQerh2*N zNA`^yk^8bPaXqUtBO!v9c0R|+<3}^62=nR(##*{oK$F&IuHUz>uXl_tXey$6mwfvq zOV?GPhx2=9ak|2BoaXmCZT%nG72Gjri0${a zm(qrpiBsy=ZhanD?|0mQj--UH3v$Bgdg`8l0C|$64vJhmr00_xwQn{|)b=U)c45 z_Wvu)=LFmHy@BXUeXqGSf`_qF`fj@4bH&m5l}`E_Hx5Ei2oyKL~} zFAufj@skN-{&7plS661Fc_+F36Aj8dY{#EM(`{9{5uxAx_W$I6?;u?TF>~lgmkj#D zUpxNwFf^T5-9f*vNK*I?xa`mi>+5uA`Yp!I*cuTjzls$1@pm2&4Iy2lYK-{^#*Ig} zs)$Iah+KW|=+_?QVMhP?2i|b|4rtn4%X*AxcKoO4`_3Hy|9uJL-O2;B|DS3GGlzxi zf$7}$*&2lpMo)5^8~=8^yZ!$;if{Qvu{jG}&;Jm`AB8mF=VnO+k2OcluwYt*|3ota zEzQ?Q;iX6ezH6omUM7Aug%jQPnf+1tG^CH8FyD*dnVe4kQ_6Z{R@U`KChy6Fv#l>O z;~Z}|b$wEB%$PfVp!02GDz7wV;Z@{YES@cXnOJB&HZ3^1ORPK;Z0(XYao zCnDhZIPCbpBsu?UeHvUUIDnS^=3$LTD-Re*dtMRk-=Dz$Im}_qtC+7aS^X2{*SPD%8E$5@`4yM8sp_OGX!sJpAP--GG<*|DP2qC7!p$nVdBrbR6}-yQ(3OxxG)?R&a9 zC5wjmU0z7nCTMyRqq)hL(P;_aak`9|Gw@3TZ9D!Lnx?dd>w6el$}b&C2{=B^y+Rw- z*BoeC*A~{-oU|O@VYPc!hGM6N6sI=X$%*PZFM;AAJq{3>+)Z~C>)a&$fV53lAwe2U`}PvgG6)VUAg zE@a+Rn~yQ;?VUQw3Xb4^-&7apE!^K{2+P0VkyrEW{WjbIch{%Ef0R}ySHn(saY~4D z_l3@Xpjm8It#JNj_}jfN@$(GBvChRQ;C8flzVHkL&v_gtE3d`Gf6mjq8h5G3zZti^ zGe?|$(6Gtluf_jyPxEfvw~lvsZpGcifEUjFxQDPjkozF+pRm_gzA>}hjPUdX=3Mh& zsf+U{apw8@DWramv43;%SDCkcon(%G$y>ttUi<%WZTk%VKfwG96VCPjjr)(7eB=(w zM{Ah7_D8NWU=?p zm_4i+zS~F`_Iy~uz4#?CuaeilVE-PYy9;kqryoHs@DXTPy_oWBHRfL{-F|!s^*0mu zZ!xR!ugAQKN#H*T`*F+}xbG$WI?M$a)u;B%s(bBGpT#_cc^^hHqy%O#dHyH%Ozd?S z$#6clh4MhhChR?!f5eQyoQlzzs?Je$b}Bi#WUi94YOkgJmG)HHM``b*{gU=b+81rF zar@ED*mqz)z0{Z=QvMe)*H@6oXk%{1Z#-@GnQip*?c7tvT!7Jjk&j`_Ex7-iuyvRx zF{|-=1;63gKLj3!X~opzm%#70%i zQgQ2fC*AsgpwWFD^-sqSM#2rc&kwrGH@*!W zTPe%OD9b-!KSw+4#5^;J_0Cl48uJM5lTW68asLi89QViZI}=+xQ{RHzj6DN$1^$Ue z^a0vfcb9cvS^QS_l64oknzoroUO%OO{RX3ZpI;$;%`jssFzaR*^W~Y0P3&tK4sag_IlVWa^r1>OlR-A~#upYmg_q`j}h9yJGEhkGr3U?A{b?Ah4Iz&jiNF~H|w ze;L0MPo*E?ehv5AbK$?(1A!kVPC(dom^Dt$YBf#fk-oktp^M1@|{J)H8#(g37doW)E@6fB= zKK8Q>%u$#RVYHt4`VRU4=5FXN8%SI2X1o&rcKYg$(Z;OAU-z*-ihU{eY1q2%b*R~x zPhq}=`3j~La~pZ+4&J9)+#c{t*o~C^=Y%~(UD)w|S#tbqE^_C416eZ{+IcA)|HHWH zt~tud|0Y;|p!v$dWvrtH+quiZ^DO`9E+6>c9`D|_pMCW0SzG@6@XWdoUibT79Q*c5 ze?0s4ykl=w{wetVkcm%!@U5@C=imP7y5@6!ziv_dk6(R#$#1XPJMqnreCOs59((#d zyYGGDUypr$(3?Lxz51;`ePr05H~s4E56{j&cHKF@d;h)fdGz@j{nw@DL^_4B@F{&Ed z8d}Y&ZMzdI+Zw78ORc)njm=ewAJx#TyrM0=Osx_X-^tbS;=E~~28saXKKGgKM8DUY`qF6~E zhdfMR(!ug_`zTV2Ni1t?ZER~zY^bTC;3+_Pc|xz1C0r$@1?yhf@^5Tw z-d0&v6On2Q8+vBcuq}G0b(~Sdu6QA~G^o5Bf>JXpFR#t?u%!&!EHkj7F|n<=rp8=| z^4qO#+gx3RO_=6sb6GB}hRbMd^|mlt`;d$ht52;(5o-_nm9K(nRJT`My1ueLv9__g z##MOK_Gv^!zAElw)7H>Zx4ogJI$l*<+3ZW6(oWZ-81$S3uUg4__e7YcGpt6s#HA33FszD}}lXIRJ$z^cZkJ-ML_ zKUm6%9{*iUPHFweN;#!%|EW@M(1af<^#+IkOsO|0dQ+M0K2hooA*mk*^#+gsJSis> zy`~}hG%0)bcKv^aiL(^2zb0f({WizqS{)2AA2gCN_G=IvV~tX18cY>N>;6L4T-p<9JyOCtNP8@~ z^Kokrto6$w)-2EY^~(|5l3mGv@0z3eJN>$;gf*IEMe;8>|46>}vT~Q|(E#>ZS&bM+U;a~sO(fnZ( z9iH9b(OymK&@Hp)7D(2qI0xQ7nm=Q*a~~v*zEhaSjpZA=ZHXaKG`_6$RR>%l`=e<^<<{3%B;0qH`2=DA}3f6s$Xv|3k_v|6yj6 zndM*E zNJgo=0@_9Ue!2V6F4|iw?dDyF^CcgYe#F{&iZqY z=6`gSa~~#tjc>a*a7(@`oJA_HuXD5PXujkwN?U|m@)Wt_xa~JBxC?1h$taXI4>~1Z z5S<4X{38EJUzUNCMY2uB$%kgi9~5W*!e8VMU*>5$=V<=rzD~A){~=Fj6K=^tlr{$b z_)g~@PFtVv>D)^k$(uymKHQn|KRf>I_d9{zzuWPDF-0YXmj&+&Br|vLbo2S(CxPVWfxS<#z{Fy+W0Ix2^kl{Sx!?^9Y z2)Ogi8Rm(zoc~_x!Jb**A2Ul$S={*>)(JWrQQ9KhlJzRz{$`y$i zAIn_)hp4xso|hKGOLe{@JQa%L>0FOn@_zYm!98)Db2s7szNc*;c>detJcMjUvS#Hw z02+RToL26k&~S;bhXbUQyk9sU!o4c)+)v<^{9gXg;kIWsxC6?oa|rn##{b-n4(AZg zv17}fe;ISS<>AE1qs}G!R=#=AFkqK+52B3U8Q|g@=9=eyog6W*=Ibm&_~ZD$?#pHV zK)F2qMbNKvKH(fqKh$}c;#UxVgr{LM^S;$jzP3vrHlJjLKy6V@UA@Ah@F z7q`wegmWKmog2x00JqM&da2@c7*5BPf9r#Nxve*m}6Koloa{;xA?x4s|9?0c>~uXgZAR+3fr>^ivEfN28d8fVY3 z-F#lg*TM63jf zZ{gN?pZp8xht*rXzZsJ_Y z(X-y(JCHlzU9|(gT(!j4xsm+GLg%}DUi;{Kzw%|gl{hc@yatn30-T~@KmK?4dK*E# z>284V45I8h&sLm+#L;=9+>hdZ+SkL=xL=7o|3kR1^mO*;-ipp}g(r{uGIsrjdl+q@ zZ=i+e2=SXdodxjKH$83n(57=Vr5y(z-EUC*#q1M5>FcND{G<6praJ#J-1~ezKMEdu z)PL4Ogl9Nq`HU~)K+5c@`%Y7-~O{yw&aFuT7W$lh_3y@TS$_ejdlP9h4QKpPCR zcT-$^cmDT}QTROeJB4OM1jEPpJ2iq=GA7)6Ao?DttNTU&Q~ct8Dqr1wP}|L6jGsQ< zxhrsATI$^EaqC`!;%vb^V~le*;eN^Yho?D13tC)T8~WA5o}cU^j_%*6KNQm+>^EGv z`*E*L_b7z(0C7rJIQL=ZO`YM({|Wrx2*(<7hCvn1|53)2ed~=l0~n_|#~1z>bI4#% z!w_h=)R*NA@XYe~_p*LC!N(ayoa9~7&1SVPR}pc-JAiTAy1QcQ2Y0qRfED=P=gYDl zcX$VI3+}G&03JlXlt?X z7n=&;7`x$1%*O@C1?QQI`MWU+?`JOLPxoz$A5(aLa~Xfdf^GT%=2HG1isFllZ8CR9 zZ~@;BU1SbNaG`k@f6oX$Mfe7q&HTm2_JfiF6PuZ5Vzcsb55$N%{SCnMcV!^oPm^{j z_9DzU%wxbGSjF8l>=!We=UtZDd){-cCb;OO@r;M9?U_WnUnkEEj3*cuJx?Oe*xov5H}kv z{E8_Otod8(n_+hR%0|LV08;_uQT#XN)(;~cjF++R1^e&-9`Z8$n`IjD1B>q$;46Nm z0yu_HvB>gw#~&dO6}cE2Tvu3aUo3llX++7F?+AmrJu!n%ddwp^qk7~WaI6fPZz$( ztPT=^?tnUcr>ym4SyzeUPkY5({Q2-r&<_&qs^oV4kj6Ac_&2tLU6<{N=#g^ej&dQEPkPN zo%qFg+~Pka;Me%ow~^upM~LX)JPT`$qN{1~ltCgRnXQ<_G4@Ken z=sIrRj_4_(_C_0>>$vpAmY>`h!Ncu%9UKqCN0^iN`*9RL((;SCD0~#}z4I5rqxoVQ zo)Xp97|S15Md2lU-96R38Q~ji@!flZ+C}X#4k^~9=9|QK@QLR6;BX*0r-S3>@!-3` z%cUVa)%>&hck|~c{tWY=`GzTt!e^QM*s$2y5j@9?k4=tgf9&whH^s3NVxNxEbDu8w zR6r%0;QONIG}FfU(w4Dd{4+RjY65f_Y*S1!NQdtd^VjB}(HXSM{|fm3-Bym{!mG_6&B)-c zDE^h^u=#`0ox9-s!dGvukL{0nnEV=ePkWxZR`G3qP3B#(9We_tpNu!nW;TDzZTSSZ za{F!n5@Il155ev+TK{CAtR!6m^nrGgcIkD0@thlziUX^dSLJK*Rc{01|ZKMTXZ z$Mbr}-^AwTz0cOS(%;4|Zh`SI;kTOs{igKOIif4i9cF%BzYr$=KBRy1?cGmD&)w#< z;N0MqsQvbv(ZQlX`&SqKH|94%EOu4Yo`1{v+?#>UQ^60udpZ4FWY1S!e)pOA{m$&C zJJ6b6#&aH*I^Re?#c9Y(Vgn~yJ`)=b#|TPskHbvB#4#r_|FCZ;9L-#$eMAYSKV~Fm z6lN^u1QXjZ#>5Jkp9-0~hHI{3o*FU?nEC61V&LKUk1(+jMP?u6(VUcO#M84G@y3DB zuRXBlHt|lu;an$Pt2sw$HSbApfc(O_FPtmFx#V=(K6D?0jscUng@GA~3H@*9d_wc$ zIKnkA%3t%SaLEqg{^S#;xt2aMj&{&|Sc;wMAG*UiFudOp&dV zn^Ma8OKAHoCJZ0M#54*sWdwIiFroil`27O-4b1OT{KN1}JFMGG`*^PdLOL!O$$bS( z2#56=(i8gMLA{24p&hOr+V3Q@U;9ga9{acS71}vIz-aw{g0V1DyI{?~r6(!8B2KqN zb~xHpc-XB6MjG8|Q8=VCZ;f#CeW|fo7!37pBoEA9My;yh5;(f9l-H(KE=d7j!n~;K3Hw`AYG%ia*4{l96lv9!YJD;qOVo+XN4@ z^SfltF1!eCGu9MD^c36qSmy{Xe7KD-IbdK6=|^%O;avMYl=!>WTAJVWeH1X^CFZ7J zU!ZTLT=)ql&Yy<~AJ1;&hxR)v7k`5JJN6IyuFA!a+x5nM5x&W$HfRkzOnzl{eW35J zTzX!A2`&vhO!y4e`;+arSq|S!yMNHPS}y)9_Cx<_zuR)*r`q+5zT*l`7yW0LAF~6| zH(f6NS*AQ#A9xu26?VTN`Irk|YTh)90}m6v+^$#jEtm^mZFUAX1|BB-Ja$YcTluET z|9rb1lDyN!UvDlCwgr-zyZXME*JbXr-;)Klzh1`I0DtB7JC@$d)8-%PA)0PZH!(H} zu|j%&33E&d^T`R!D}~G_G0i(g_%VN!Fn65595RAlK1lNn^GXSGO$l>M3G>o0<{Uog zkzDIV>L;9AG}bicQ;o)B7#`Z1Pc&}DyEKo;9nK*kAL*_g@|cjHb_9q1$D3b<`E-|_ zu$;?j*L9dnFg2Lae<$_37jqltZcNBaJG(~Rk>D>kIhy0q9pTJHj+W&5*)`g2fDd1f z>4(Yx#-#uH^RbtXm0w@K`K4otv+*+j#@W&u?2UPRpNHK5vp*O6G5XVD>}^`3U_Xlg zdDxe-u2_PtyLrp7|9t>=J+bpKbXW6H);Jeo9~i=V274OeY%|RB1Nm+aTR+kA2MpH* z%+suUM94D2IkGVC$DWJ5hqcQz>{gJnTrs}{-x=5}(^&iQo-X+>#n$(e3$RB*=R#~5 zlA7oFk0TQ^gYvDy{v(B3kNptqoLSgYNjD$6lyaSe{TlhOWHTicgdt>Z$DV>+3H@>G zKag%V_IIf#ifGPat+gEc4(t`!0r=Nq%S}{sE`?-hnimOQiG7gpb=bq9y8`>~Fcj6C zM!qb0%=?J1ef6KQnfA>pGPw}@bA+>WG*3bAsn~Baxo*TRfeuJF$6#Poq1nrSXJKz8 zpYyRl4&9~L7sQyev4?^;l;;7$Z@fHjsx6+p+MNf|>s%J-8sYITl3mM-!vk ze&g)I$D3aV#{zw~?BEGzMC_!Pz8`jQ+?*G@E6_bt2TwJZ!q0U-#L-t~?hHN_=o@1f zKArvJ4S~J|cJM6okHPl?eG43%A$n%hcZ=+|x-NVk_y7LQez)u3Mdk=QoQtFU%gy)9 zf7tsRF2A$caec^s)9d1+yDa!sP#Wd8!UVD6nC|ho_^ZsdvG>IEO|Gk-wdRu8o|w+c zUHC=jhS(=#dn5Wcng5FYCZ@XsF8p0)N^C|=I>DYh9LOvPV+GD&%p4wyl8awpQl)Z)iq5atcyUvW_ zhyER{-$Onh+L`-}&_A?8eBr#H`A++%YbcNQF$xdebU`vBJax?iwFFze|7%n;fSyh?f(-X9(})J%@T-Fp9L(5v%-0bteo`|SuW zu&}=E*LcwjU1ylp_B;QeFvfmouwAd}yMJK9hnnYjpHOcA1jvhoUGjGi6F%I0-aKjF z2XOI6n|C9R(t808-wAd-tTTGj6Mwwf9yA3OUL$-H?0UA!(xdQ+XhZyteP=-H(*Y(< zit+Z%fxy<+Wagxs?E3?b{;B2`&s-w*u>-)MHkDsqSQ=#0aF@h(G`fWFrNXE^0wxXQnk@7O&l-zR!{1r+A*MX&NL{TD?> z@5}c$!Bu|cSLIb_6+E72<6Y^>h>X6#*5jl%BO0HAzK9vpYfO&@IPw(R`1%I9liyQF zd#-CR9UI`dms$O=IPp&&V$L4(tc7-YIRJip_(pYUy_r^APLyww-d z+u`LI&FHisYVtVz#@hHi#*t?{{e$27{BH73=*jPfPxR|ydF)vzE_Bxr?~tz#H81Dp z&7++ML!Q!iJ@))#q`=x~*4}4Ih_2@UV!T|q%Kzcmd(=FhZ}W3kF!1xZU;kf{;DuIxGYMW~ z<@<&NPh0u?k#OptGQ!q;+h*}Myu@jLz}*SGc0UYtpG)XV4WFC1ml^*V47k+(mXR9s zQu9;N&*bq6cV23FO1hdnKFFPsIwz&`3LYQohEZ*OCvmTG{Zd0x(&yyeN4OJGGgHqb z^z;u>lT*7%KkuHg{)*0fczld&jyfZq9rXBQ_a9MVN_&PqKHYsc`u9lZ2RuI0bu-?P z?jVoPb!E}_mJw# zGDiN|{}AK&U+6APwWp+)$kQ)!_eA$a(ov-Pwv7HjS>BMm7{~wF)?Yd+p+A@L$!(F& z)Or6)-0jibk@OmQ|4ZGgQ`e+o9RKHA|4nBDRKJ(8S4{gGVw~{m-CI*1OGzJ+_ut_D zkm{EgkGTvJ`Z6nDqI#a;IJJ(;X zeF!tW1ATbE)NQQ3M;MRlJ&tq>VF#JQ`&fHyP0F!2slTq?K|X69st0oCEgpd8Gng-6c45w;r+ywYolB{smoZa$A+y2D+55XvOpiUs zQs7t${GX+OmH$jm`Omr!#L9ox{QqbcQz9pN&B#@lZb*-(=`WpRdLsS&aew;D$D0mF zkC(Grdq$+Q3%>rSWKHLUNcteX`ye+J{Q+vP)z`?aQ-XbX@6SEEU!wWmW6!Y^IF~hP$^a}X$o}&G}($07L@|(~7-&^c#yvGaOb?%L(Z`YT1&A(UM z`E>7ILj5t=)@nV!GWJiLW@oIud%2rWFF|MjJzmNEKJT6 z=eL^9b&n6AHrQ_Z*F9drip9;Qi(T{U+G(OSHR)#8e3Dih^ZBh7e;aQMWk#jT<*|X} zf1ugGxZ}U619EYV--El#z2Gu(;vs~%-iiw2JfEXbjH1QKZD1|psnn8 zHed0IN?&(qtPtSe!&mizaMdBfKG1}BaJy4-X8F&C#VZ>R@I_gE{?YQ;vH1RNrhw`H zV1Is)F4m0zE^QrEc87*9KSk`-Jm2eLvG%ycy_*|0Z?X1T{>#`MGtKVVh|U)-4NlkC zog2Qs7{vPeHY;1to=01ZQCSM`MEGRm`-5}og51a6$5P-}3LJh4SovSlQ~qR+RBWl*ZTRNnZFCT*7tucywba;*%N&Kq8@kc?=#(|#xF&GexuhHYj{4r ziJ5kvldo?InGINEcRTs^J0ojBR z-N_fq-(+`%-Om?UeK3Iezc>5)zsFNF`77e5yNB{K!YgclgT~-r!S1`5r!jjlhia$0 zxU=uV{(Jo<$KrJ?1zxTcu=0OVPWg}9ca?wBn{RkN<$tu@!xEJzk>1o_wC+FPd}JF%dfXPEInSuX#O6%&(h<^xevO>vg(gfN&WFX z>VZ&ysO~rrt~%pjGzW7(R_C~5&);bZSovR(Q~u-rzRLg8D`@`>kJukvWq0rT`FUyE zEA;pZ&EMxS{+|-J|HAVb4HWzGYyJxu4Wz9ss=Ub@YtR2qGu5$Z{eP1JR{q`o%fIQk zw(^^%G*7fUxBdN~<&^fbvikcK*4}@fO?|$;sA7J8quopG@zL}aR)zY2@xYj*J#WNM zXwTb#ug2VjxgDc=;y~`9eLoP*!FU{N-~YeKuEzvD$|+#we`QYjf8670|Ce1H%CpA* z3!Ujdw)MIa=GU(Gx}yyrfCjOzWYq^*^wCmr(wb@&5!@dTGGZ%(gFcjdC~oQg-!k@a4Z)<=v0}&l0`W4;Ajz z=-lX2qPPCUU}gh;;pQj)tK740Kr|`gf1Dc_of2J}xQ}Kw;M;D3aOnBy0X)YM=d$+`16W$NDG#@Wu2cO8_hXm-Mv%c8~a_ z!Z`)$3f%oFk5)gF(7%6GGJby)`zJ6@W1hnVeTDx8{J)qpS-Y#Fhj13>I**e6E`KVk^|kESKb<{#3m7LHO8Gw`!H;=9mIB98;D}QoxBP$fGTQqQYX3_Z z{pTfP^RHw7B+xU4wZ^Z(!tRo_{(!&#*Y47_ z`rxIx|2Kr2{Z>X>U=~~KKSi}V-wD3?i_#k#o}cehJ;6z2&iLtWR$e@n!TAW@`>Px( z#<qYqdR2=%cKOf

    Bhx4pA^GedG$b8?Sd7T}eky`>1|Yp9U^(yB>(eIJD-orP zJ&qik+ zGL5hqEjdc_?%_XM`tah@e;|JJr9|5*Du+OXYf9Z4#mRC z|7AVpzw}kqhqfQMg#1zL?5^DNA8Y@W7P-%sTnq4H?SCJMvX9l@K>Poyp7P&O&(58d+P@RgGQ7pF7 zDDTDY1(k1GFD&IW&w0@u&__=G%Q$`a4);3nUqREamU;;|j1`6fkHMUTc?D)MrU|2R zpZgqZ|8r9$;0JBbGEg3C|3h*eyuXxC#=t*j`)}pfr+}4z+rJxG`)%caxz_Vk{`1_n z#?aoEx(7K?`_+bk4{^ol@42N3+}8Ut+{bovRF>eA-N&OJMJFcov$zxGq|_f1{8V>Q z>bg{2!oQCG{5;p1;LF%O^cMG=aN~a&>xFrd-H&eg8uyB5c{C=W?{II4J{&!q&|l5{ zV*ef4{qaVBgPYBL1$Qfai~p@|YwCTe*ChBhW;8Ex=L@fQ8OMEN?{N1e_1oWif905b zJ#A0+Jk{Szy5v?|F+OekjUPE@^5E~?Hio&glAAQHTCi}|6z8O8znVR{g{;VBKi2SDS^s7%+3;Ss!$x zPMJh{HMKsBOw#jvGWA^C|3c4~FD&J*X_{(PJ{@>D1`*@_TBl zGdE;_S7_?drK^MgmbK66L+>7!rR9NkJ+aDV;6p5T2Iwx6cblfC%< z*Op}$y>Hp15Bj*J+x_b${GZh?oRs-D((7+&z3^i{RK9OsGvXZQK190sUP$$eNsg^s(i$FY zNjdJ1-QNR2l-uU?MO!~%4sx|Lbs*QvwI02oyoL&A>uoMG+4bKt<--d&Rg(MMU!i=z zc*#eQ>u+y=$inmf6S@BO_J>@sXyLis-AK0ZBQ)P@wesKGQ~vK=6Uuubr}?jTd20in z=CscpZd8JoxOce^xbubEd|Ih{4d?kctpiVqpYE^DxT(UeJ{j!3;GT(YO6Z4i-{~Xn zcS(4|nPeQ~mL&KH_8a$ik0-eHB~EsA;^)MFBKr{Mxn~l7C$i6Yt*ey#Sh>$+XW|0) zgT()AMuF4Z2;p}AU@m(U&vM;~`#jfz29wr=-zn~))OS<$;%Dolr@2+!&-q8{Fz^2i z?%TXP^}h-IBKON^OzLe3zjNGmsZXZ9n7A)-Po_%q{yp)(lsS(As|V-dCs&{OI=aWQ zS3P+uJoFCu{^;+4?tYB?1~~Xz74z!LZ=mVx4o}hdbtY5x`=by1!h6ygey{k~Yn%)F z#>?^l;e}pzgZ7aNU$mgN`+LsxxOBv1(}?!TI86>P-gb}MIIVfj?dNg7^AfvnaIYqcJrdmB@(8vJL_oXlI_Ti;1}Lv|rgKM$P7{Y5-ipN6M%&er&m zvj*qWUqv4m+c9|h7^@$7daW|nef`TF=sm^Vs6UPOA6jAp)aQP_?W9RT>QBU z)IA(<>XU&sUoa@4ALKsoo^&M%K7^V0*Sc{DUd8-Fr+YXFZzQXO?{+^hT>MA7*Kr~+ z#^FDK^rLf(e=qMuC;cT>pP9b0YOBvQHVNaCf{`BH3(ptWRw!I`oZN$sap@qJZt=eC zL@T4ZFqenyz75~L{Pkt`e%jC%S%eB$x|I*8V*gK{P{jth>XA$P(Y<|1 zu52%-xa1$_f?SoCJEwiJc_z_5{fU=TE?1o;*WJjZ{dc|@oMF;s{p(XMEB{&h|K?mt zKCtt=x?OO%8nE$|uQsVh)bl?3-}CQflq;QbyMK5|zrVb*%+l+AWYYR@pZUJF zN5Yo@G7&<0oq|kSw<7ECs6=EvwOQ~>4{nzXL9W5g&gRQ}dGx)CM1hk zKcA|1B_`WFj5%_79D4oW(_tj9l`AJ$zOSR5R==gsdAUB)+H-hm{-^)y+^tV)ecQPP zWKw-yY(e??oFvqjTQ0Xdx@)RWuQQQJ`N-$^;}ek#c-iH0dnUAcxvI%)f5rIpiZ@rp z(kFM1oDgB>z_siYJ3xg;xL);??KA3i+(A_TF_*c2lx{7Fn z@Kp+LI4$k~>o4DpUGCh{AF)%}mz&;Uo*|U?u+LcTKcr&Irah6SUG|!nkj~-jfDiqt zJs|0$xQ6=v)K^m%b!mOOkkgaB#rZ(>t`*4iIL5b+Lwd>avdiV%w31Jj zSpD@BGL7#J{d+33tfx1Y0w}$^}JZQ7Etfda%2dG)&43sRygBf;Y0b|Nd}>vHg^SQ^+m?x(*JMw1<-#N zz3vCNg1W3ScGvp<3gIz-ttZxJx$8av!(;xMKd}1*Vty6WAa~?y+mI)EJOy4#{W~(?@axY>uL$=l4;QNBBVZwdhyTza;Vvbsg^CT#OUm2-a8H z-P^o7`0;K^G$o30{Ey{!)b~Wia%X-;`y)?heImx8pW^28drb11`$_H@Hz|s7+-JI< z@!M$elRR_WUC~#f)Y;r2k8G+RKaN}O`}c$w?6Totr~I)M^L*_0Dc8*Pf!o6xQ zC;rB)u+<+`A5`N^&Go4Nxts=HYYke5&>Do+8ML<0uhv=nrZ(-b7`0uGVAMvbUHT63 z`T^$S?ap0``4Q%(4(CqCv|$>-S71tkXJD!^d%(}e?8ST*^G3`N>>t8(0$<4cb(k-} zw?FO0ER6Du@`b*=zOTNazT4Z8yPEd+&CtGSuygCFy3fQ;Yq9U*eJSsGytUN3yVJQ3 zV!np?G^QJK3%q|%d-uV({{JNJcH;dD-0mYC-atB7d8T|)eC^qcZ29M;GNc@(HP3w; zne#KkRig4;qudt=*Zp4wmNrpF{tFl#eAd#*<7svWbXuBuyu_`KHbzQ6zn{Lp8_#}y zrKNWtfcC&2S-M7c-mrrCySG>xd-qDTg*|KO?eT$>=Ne0Uj}Nl>L46004{1a%(ypVsg(sME?oN}7yQ+bk6nNvAZ z{to?{Y`eGOSLN-Wc*{Px1;6qa%4TrWJIrH>xA41=G51|MzlUG8U-{9Ui(03B9HaHv zXIP8Vy6X?XwZ5t~Rjs3H?NsZfS|ioEsMbPl{geEvdQ*EHzF6tp@r>a%@J{j8{nD=) zh+p8}5Vwf~XqPeH#`MQ%zvZua>mHfum_-<^3EhNwALda^C;oqXnqOPHZYkp>^7=)* zf4#)n{gXfDt$QW!FQ=?yeu;S$qdk*9p-kwGyAhX%_Vn?{{LJ0gmvWhS$&N3}}zwdg_PI^8N$wt9ieV_e|=G zJAoetp3Qp@=3MN)2mWTlx^{G2{@ayb{i8a`kKc=E5r1LzQ)KSiSdx98N3rEs<&Dr6 zABNxKF%vK+V&o>>b>}hEy0Hqm3FT74yb^pmrlP{RZy-k_ad{7M`4sOb_zoK}Umrt% zX98)Bc@TKwMA8@dPnb&JyRdsD?}x!J;e8|T6ELsBzJ4xwfNwkx^PThj+HV2yCHn4s zn;C@l6Y|#|FxvO|Y5X@2aIO}!XSZM@&cy9v8W;A?o_iTM_08u){l z`*Hsne7{i!pQ(Ib%+!umY!2jB;MH26k% zX@AnPnZzG+1>gHMya!Kn?qk5`k_Sq_x9~oR_g~?A681yE&*J?McE`=8Edc%v@C(zO zdoS-2@cW^OaC;5me1&-He&vD4zXh3I!0rUzXJhU{mIpDis+Eb|gXgU+1{l3Rz_fw4Se%F2PnzPV4lh&5B-mEnxts`l! zS?kSOL(;mD=3KNMq%|PTJ8Q04>pz-f*1WRTezd-$xdzQsX>RK8vHgF|rkAb{5OvYt zr@hLf`1hwjZFrk27q0gGTd&5Q_Pq!^O^p!a<-*k;nA_>c4<+D(=noste4lWwuUY?s z^+n-&Y<_|L2Ex_esV`D=j&Q%;I6}A+?)w`WPZzZb*X%)|8xCHvrWQP((LlMIBs?R$ zfF5{-D-~WRywKc#i2UBY$Z5P$27iyIS%2>5ewVlx8~)b>FEM;|La*J8L)`-5PW(%m z-5BC7Oz<+p)enoB9qtvZR#r#qlSP>n_#k>i*I557B0WnOZ7o1YqWWqcuX2msh1PHL z^ds5L)M0(N$kJ;R`z@PYDqTj(u=iq3sY}tQq(+tlSGZIM>nEv!F13CTc%}O-e8*$X zAU!^x_Wc08RX2wIMR?0zCc7^GBMs9awC;KqxlI>G-hKAxzVC+pP~_Pj$FUsy6|eL(8Q{mxmp{d2j@5k%YZ~@XFZcHO#8Lfr z+1FyP{TvlM&P>!Mi&tp0~+ir}ffzwA4(SDPVt3$W?!1dbTv-gvsVzYTl! z6GXEe_|vh>_W^7CBA!-0yIcm)9*q^kd|xpd{~k9yl~L_5js9+o(_#&VZ^~&*;pvC) zZHjv3p^#6q`>vs{aJX*M9{#y|B9^}v_(O3VmjZ8$(`^;7`ihEg2e8^Q!CQds9wXos z>2GIxfh*Yo`0xf#a~m{w$KP=~@Qra^s$TQDwCxduzMQ;a>l?sY9Z|nh{2zsW028`` zp8(c)P4LotUYq{%=^lO_`xC}_*nRHj*8dPqIk4Jx!MomGlb*i9f0rWU9KOuMdCaV; zUm=>^(A-BJ$OpcU@};&~_It2r`oZA6z#4Dr`wk{wsqZYB^gC+OKOnxcAK+HF2{C_G zUEOD5p3^9&Po3`Rhe7{XoF>)4wztuEo@IR}@vOl@-t3N8gd-1FJ6v62`YSP-Lp*Tj2fxp_|;e67^))USCJon9z zp3tkWFTd5m*Tr$E0oFK9eEJdh(WiQvI_%Yt75z%!d*W}g4p?Ie*>3{2y~Mz2(opj% z;*&z=ytM&7%lh7;-wOQ&arz7*eKd9yeJSB;EG3$4(5TNWcn7fh^@4W-&yQu>1#CJD zuul_TrRSNzyRn}>&(rVS#y5)Nn0{AH`Wtb6$Y+PL?Wcx551Bh-c?yu{?l@ku7pP8 zEzz$7-W-3^O~4vc$bKuZ#!Z5^0e>o%Z3nRFTfn}ISZh2gnw{9cG3K)iSYuJy?*_g& zmU$2G?QwjE5Z{e)dhW&ksgPFhMz%QIVZa)zi%&JM##e%CfHme3TnDWA0i{ox*<0J2 z4xCTgUJ-}85*p2miDo$GSu}SbxJ3CamVX^Iwk~CSme}}N{5N6$`&hQEz;BIZ-Ue)X zE1)SR9V*6qd3Iobe;mg$;&@Fg!%plqE)>sQz&a}+csH=drh@m#Zyevf!0(R3O24Nj z{a~E7!+@`d<6aGHd)M(>L3}kAAwD(OzbOv44p?J<*{=jH&BX10*8X3ud-(Rel-~T= zZoKf7RCQo#?+u^j@Hvj&(GAgSx-I>{r_tx}^U7h5x7OR-Kdz!7-kBnvB2CTU}`P~70b1XwXGH4!C z_B*lP9;e$b(PX^+ZeXo}h{oFg4GtIo*!jPV$5r0dKdy}Hhg(v&q_XiFQa7Zm&0_sb zxk>l^#yI>6(HOqe)+?hrxff$o=<(JR?xn1NO>vgK=D&hIbwR*!N1qVuk@qV7nIF)q zdQmhXvOLQApX2WrE{ZOayW!*AqwXgzu5WR#X8kQneZ!Yq@X7AO(U&9Z{~A4e6H|4m zp8D%l_omd(QdZ8*{S5aW_Zi=ZGQ7^cKKej(tHNV^&n%qVj7A{qLzw$AcWHD@^y);O z6^!P)T-?S%e;Mm}7eymzJ8wd!H(_$&TKqnRk$r&YfH#sCgfGIJhv~~s^{D7{kJ@SQ zUW_>$JJrE&;wy#vSYvzHg?c;G*L%qir7`crt+$Uvz8CA))<2zc&rMO1NN5Dmd`-NEk9r(RH z=D!p8-k9euV9kfCjPC}vb#CDPq{D~{J)dIg3M>CtDL?yXAo<7V?_&3mdz^(6a4Y`< zn9q8rv%0QZ^cC()?yJt~9oz3e6n%i7a!;rpnk)AzcEF5v)e6h}k6^dY$msWSH~cvF zb?*DQGoc?%eKEt!X6|Ds|E2Ej=3n*239c?$7sWU^b&l01KTiD5BW@#|wRtAbD_Mb? z;vO@1`9IA~h-#u3$Nzk*ua+nL7rT?A)1ny1{e0@}eD|1l2fx_rrx=G{gPR|n8L6B! z5Jv8N#)+icEX*mG{n4nb$?w73MRz)Klww35{CxuWGchh6|AhN}m``IQkLF#j0Pe(G zjd=s+Q0bn9ulzrP3E{2Bt{W5Z@XnThe_@6+I*|L2v3$rJqmXrkG8(vwOf1{q~QH_B6ww@q1*{ z0xxx@&&%i+xfe*2Gs#<(R$f%E6uBSg_u$I^H)pwPKab8^SH|~+Yk$BWgkRt?u(a}# zA|FO}o~D5Bfo3m{<6gr3T|c+E8RVrrl`%KPnP9nFc`tWYxEpNl%;N)@!FW}`p&!Bw z`XHO*g+Kg8P{W*V^K>51xZ5~Sta&^9Lq8rLLu`%(5uu-eWx36#czhx?ScOYNUyd1! z8IBo^>C5h$*uM|636l-KH@5#M?`&9Q;uOph%vy~6^~JX@JB1^eYM0DQ&zL&2ReYYo=uvP4`s3cM%Ihfe@6iRF13SnKHuw~%n}sr7!J$KK|Uv5)8h#rL%_pL43^CDPtK z|3pn%>$wVR*wT4vzvoF`c&VME6we6Rv^PLB)zExBj!Ow~u{me#^Wp!qI8ADx(b}!( z>wvZPD0n5X*5C!N1J-^vlGbhi(A@MDaa=ZGueD^+Yz4ME>44M7{Gm7+_Prn2Ec+VGogQd2oArG3{re2e_xpJew&^;Z?UyS@(3sqRV@H^}{5AOzkHvXo2 zfVDpA)8QQV05XeyFZNnv7MwnRUfOhT0p~L>e?uIXVc37K*3(o2OP{Cbv%uC^1?MBb z*38An_V*RI44^$$-c8?+{6+4kgq?5w+sMkxR1K=_V9TE_@FD9v|v5h2sjplF*NIg9?Wg{yE`)oR$9{B=U@+ z{8zajC;0J(M}+U?%kVua?R(_g{^rrvU(j9+?>@%dwKvR%Kb9J0jP1Gd@{VJMqqI=_ zuRQ&DTMyL!E1w?Rg~(6qG2VS5W5)ruFU#ZAmR?%x@%SXewO`BopKQ4HZh7}9hW}pj zSbCk{PAKdy)VKHaC(^&^?|viy=04Txx91c5B*Wj3;M1)B{Zit8x}{%b5}w!3G%Ueq z^2O5bYtRRy_Wi#xMerPenGbEQ-M!f7+O6-yF4KqI_pl3Lh4)9}@WXnf>QNctfhN2a zZeRAn&yEY`r3>f!e7+O-dvX1+3s`#!NM~B5bL{Mp;D~bcVfA-`Q|OksZK;RRT4nnX zWM2&ZqWPZZZukt0`R@VNJ_{?Sz}kaj<@CaNY3;KRJPi0fae1!>*1i_m*8o2k>Mmfr z!xH;4>L1g;1)OpV-RL;1mCz_3$?rN~?dcP|3E0lZ0{27C+E;k{t=MZ%lxVgA+ZkTq zJZP*vPrD2#`6}ONc0i-OB%MmcL6ttxC3jCj_mgUuj=pNy})y0Inx(W-^S@M z4A{;BLtjX^h4ET&HTHJLDE2AhtNoNp=YI6RSH|+!K%;W1ux8IAs*5*Z%UOq3q zDUSOvVC_9sSOv)N&iS6E8vEI+ynPYrpglqITZ6s!lL@W^*1j^qD}mn_^BJhLZT5ci z*>#W}>uJ_OqxwVin}9oFdA0(VE%)?!lnc9~6`Eq?pC89@8#MREvh4uYemL>j39Nlh zf_DL%J}KZ7;c9=Y>~~}TLY(G%fK%rO+2&Y%Dw@66Yp;>u^on_D?RgVC4EXw3&T8Nl ztAd;h-Frj+!G3fc$2wrON%FfAcz!I~I^ZwH@^1pxo?oSTK52DQ9QOjgsoiIbeIaqb zBcu=XzYO^YxG7GP9l+Y7rLcAaYhR&w<}r5F-eAF%@LwL%2O86#g?$0(GiH?cyBmA$ zc@ljAV~yH4E_<-wyei1K(Cv+7*o(dPC5pa3VLcY7Lwe=BwAyb=H(=?8(Aq;~T>e%6 z=Mk><7>cGEnqSQKa1F59dfC?jtDP3S5?FiU1g`_ueqn{1B3=*0>9Yy@)F4l@71+)Y zLz72bw1-mkWyq=hp5n6&8tt`~eIa~)7|Xu{`#rJ!0PMAwP4qjlf6ppUA5j)YF7o!f zu+Kl;!@Gf(#Ob*QSbO;7cQ3G=Nd_)Lp4K>RS*S`MAIm%pSoI`-F7wOwwAx_#t;JsL zui&M?+EXcb6|n6i2ChI(wdu0&z+QV;1#bafQ03vw}7C>9Yg)b@8{`39LSgXm$Z>AEw~lz;}jn0sLT` z4ts%9^dCg?GC3*09`QRk2a+bm(~O5Rv|<^~kwn-> z*bjux#{bqI_wB#!&x`8=&Hrn!NvIzP*7k{1W{nTDPopySulWEQA3Uz{chuAWHXN07 z{GNiI{w(f!=KgO9o^SY16THB1>wg=4q4l@p{x|-MNT;&U{{~On`2OdK|6=q1s{}7G z{J8}0XSnpCd3j0=kNey3E3^K*^_MOD{*<*6XZ>Zv2apentxp>Itf5~T`k#IEO=TC{ z^PKKeoyoa?D&|gSvOloOweij;wb%BG!+Jm{%&}i_Z`wZTv@zzcu&5A@ijYe;+(g7EB1G*bErMqu+#+}uP-gPr zkq^I!njm6y8<7GLafz7OjySIsk)HX4S%e&g$P^(*0p%=@a3j{AB2J`5q+Z0lbVO|O zk&9Vj;Mtftz*LmXbFi}-!z4ca3wBpyDA=Tm=B%Bo#mvW0v5=zvX1s;GY3$iQN^6W+ zj5!N)Hs&16xtQ}XOE6Sg?13pH|8V*ULkE@hgFNOc*nw{AyrKMRd};G}u|6Q}kJULj z+iyyGrAV&=Xml2?fb>d}UPYvr&XX0AUiqX~0qK<@y)-+ZGj1u;D@A%0kX|X$tAO-M zlU_xnSBms1B)#%UFEoi^CSi0AMkk?%Lpzc8Yz%E2X_b%6ALV=Q;CogQ7BdLY=v!&5 zUQX;Q%w+4xi!+8??C&B+d z=sybmQ1}jo?+EyffZu5ROVi!DYBqdh8b0^bU*uU8KL_k-UJo)3LK^sB*Ffv1rp4d)r~ondloHfbzzAA*@k zDHwF5%jdINx(rO51B575H zrW<|NDx}kU2u5=B#~e=$S4E#j`M(@98eOARlsT0{)dXWno28`iQu0nQMkjFxV#ZOM zR$#_ZTWWXe7-XU|$QRv$|JUIEWZrXl>%6bd;0}e~Q25=8{fEq+{q=-*Huxg&3GkT! zpVxwK2G^|KB=7?8eDFN@I_`ekU6~=EU{HkdQs%RaQk1H@^>`M*6$2Hhrh5hl^ACLWD{0|1w>|-@}3T`?( zTugYy_B}Lfs`MR%8Ba@7#rK}cH>^Ttm4jl8(ytPuI-0Wu@L9xr5pS)+=u7v9Uw`;r zi@&S!SBz~j;Y`EdH2mdZpND-FR8`3HI{se+ekSkJdFR0|4}QzRmw~JImWJOr`0MWZ zV%&>ym*)FCBpD6g(eN!IoFc-x9)GXH-^IKy;ysjbh7wK+|Ljsj6KxgWXeMV+s|aHz zd9o5SmR5{2BJk};c>Um5L~S9>7AInVBKB$cr{P})pECHY#Q%l(*X(v4bR*$25#kF*GPi=B1wKX-Kw7z}yhSuhj&N%t9rJe0pG&gm3UADfldG%$@8ymW2 zT-MdubXjXl<7KNGx*N=@zP(XI^{t1^VoghHvuDxK(7o>Pf^TkH+tSwDby-vU`t|K? zo=anEbKC0rhSrXC4fRd!t?ixl9W9%hTaOmwmw@H^hL*OYC7#8#zKO4QbffM0uHVr5 zQm{R0AE>3f{^%rTQ+wOS=FV=PfsXv!1a@mXH`h-;y6k2hO?I~bXB8Dm{Jbdr|K|Vj z_5VNmmuHLYK2gHXqbKu1yjSAB7oIKByo746+OJPfU$@E6yW~^P+WlnMN3=%Us2Wqi z>;C)Mq9ySohZe@6t(0Qv@RVAv%3t*PgVc2XS*-T{ryw+h|~oSE+7 zUBGXT!%Y*e&K-+pH}*OQEO-xaV;t_&XFpq{^WL&g|If2UKZ|7;27GO;x8Hf*vqdej zJmtu9SIj>T{yG;czctY7jIH20;IRI`5;&~?uLBP2|62>5E9z_ge=9V7t^aSszOVKF z9oUEU|DC{L{eQ1}t|+Yk@5Vl?|L+0rYyE%sU!N^H(E7i6U(fIOSy5R3&;0MRMF(5| zp9amr*8gjv3G4q$fy4U$D&VmG-vJ!f|M%AIDGKZVTd)u7|F;46wf?`CZ{64W|CaP~ zMSZRRKMJ46yL{eD(Szt~{eL$!Vf}v(a9IDpk8;u1`hS|V4eS5Ifcskiug3m+aejOH z&(9VeZ2f=w)M-YMCNf%*gHdSZ^}#+JB2?rLAt zeN{tebNy8Lq>Yw2!Y@AmOQ+2~OJva`9hp}S>ca}RxDvyY#Kj^1AOA?R#g z-wvyN?7hc*?PDPh?d$eVkaZ1R>SJ3_g6r2dw`E~#+B=&Yn%236N~t>BGm}N-TH3lZ z)%EpFtDBozGn3bBXlt5Ookep39h|Q2Ow+oC&dlT!e1gWWNpT9T(NG~fBqe>17+oz_ z#|dCkt?6veMprktX3;jRUj1UC9uG|{Ou_a0`Ifyuq*3_S$JEw{~YmW%L*cksI{Rh+mGe*ol?b8)=lMVkyos4>1=N67HIrMT(5y#ee))w*_CVC(p8U-EL%n@Eo)ku zSJ!v9tZ#PN`ADp?2#qP;*KBBI5JCvKZdbI^o$^_b5}NC(bc$U~c+1iT)i*VS@6{u{ z0#f*goJxHSMZ4k9Nomu&al@MWuI6r{Ndj4JztG!eCU-ZQFx^-A*SdthskOPGGr=eX zR6DCX8?H*M*7jnkLOMC-GMV(r3U)(Bg4xFpPBauQks~1yTfXY*=1yLW`~yk-GO*0# zgs!Enr8_~y_dvcprx5U_dZblBY3jCEPu?^=e$NQFK0s@*^hogC+i$ler()mD*x!6~ zw{2LTNVYjQtj%#)o8z!HPtOW#^NikMQQPDuyR6o?cek{+)o&yM?VT3p>P`N&*YV7&b5sV_1*3Dyg4zlVE%>kYci9WvN3SxjLhWKlm(@i zl1t9mF|Xk|+OMi_-OwHT7=P)E*>f(pe+LNzL43)rZ<-z#VR4;4Co}%iS(hK!Gm|t& zBb9nj%QUrjY>p>?lm1=FsJ5q;iru{uoKlB$Ia19K_jg^4cu8 zF$-=GY)N_m-hH`e<%0vtc64&2Pm$~yvtEJ9VV}&`lS32dIK#zJO{`V6v$NPC@K$a+ z3OUNh%l^}}Wv6qFNWGkzH};merzpiSJCNsIMYtE+>_kXPQ{b2z<^iNtY3r4QS>hxW zLg3pIsMQF)1j-FljQb$S%8Ez$NqVL{8(V?Z$~LsErRTD2(dqN+7q4$v+wAN9Y&_Ke z)PwcD)e__zF5F@}L7Pby*jh_}M3ROnP|Nd&I)|X{XI~wwz%0zC20VPV>5Uy7_2x)# zlb(=j8fus9XkW2meTQ$aiDeH0b%?#d&B1F&L+gb7&&byPY*l-+|GX z&miipsKXMXt8p#^jfR{NuO%#PXstiD zeRXq&yhQhLb+fVRZ0}|wp}oxonWoRE;V(xnY%af4{}S1bUWp_J?mrXAar%q{Wdl*n zoH^qFUs)7$<{T&=h+@V;Lzyw-V4+N(elSUA1WAudcCyr&lT(0ZsB)h^M@2~PvuDrl zJ8iN^=6I5NGDH20xzm!5jDKt7_a!|LNgQCG+;W7QHOrT-L!k{3>65m1oM+9RHD^{I z(as5db{y|sk=YMTpP}Z^hS>Dtw_nNnYixq zi22dz%y}TMT42+tR)QPTDL~KnHt@h z7uKKC(%9M1x!HSdVtu5!er@aK4lSN^_i(9SBs-=@@o~{&xU$00e1t=86SlRzVRaBZ z4xMn#$ju`1Y=yyaiRWE>P<-Po!Yr`fN{CN6f;{ps8u#XXgc>&0H*__z7GYn-?D#xJ2$YpW9;jj#kzj|T9$MBW+RcE z{`HW0$$ANu!^~6k_&E9Gjt!0bTKbf!rzox=ViZr(N!UJ;Xi3>3l$B~`*OPQvF1EO5 z&L+IcmMyJc3|il{w!W1$+#{Us@t-ix)gI|$p@=S>Wd_TX9#l=_t8tHSXzOgI4l=SP zR^z*apRNs^YZ{uGtrqp4@B(kc<^}2j??IJ)3;_uj zvaNvyV@=%5nU&GvF}ssArDxG$;>J?qh$<&*I^s`guvG=B1>?oacpY(*&pE6n8kK$9 zBMP{qy>;_iigFxwKs#9A?hbXAHPcID!liPdsP<*)eYtvbyP%_inWh9h`DELFP;YxP zvaL7uBHG*wi@WZ|DpVQ?$Cz?Cn`i0!c$OYH`Q%(Yunq1lEI|5*o6PlH?J((#J7#`U zNkcEJG4as6ni@8y@6AM&da$uC6A=5DCig--C)Hn%jThb=d%&Jp$l>IZS@g|zZ1JBU zj()GyiS3RkVw5+}ccE z$D=m6z`iWT{EX&o7*OA}zP+8PS7moCS#&n9)hc|?8b)m4`$1V0zC)B{;dy9@qZf}X zi@3+!L*aR3QLH&G(SL;jPl637;*Yp;*frRe?Ycny&-Hy8Ivuu+Me|-9rUN_ z;|jkkr)6PrcFpuY>}F)MiCL^}zpAZ%`lcDSDi*#_Pr~;~t!ytdHcdA#US6_SQ$5YP zRd)VE`(D}pLYxtY=)GH}VN+X(mv77acI$3nl4E~t6_Ko*82DKvC2?>wc{c}n!dQ0^!;)^>hU!pe4UD&Z1>GYOT}*@r}*Z1eapu0 zM9yBVwR`BIg>s+CdAS94C!Oav8_fvQ{5>xZ$bBwn(ay5F>b(0r*TVgprbFHMo#Gx! zeK%Dv`In3SG`A}Cx|HdCF#l(`@u|yGy4%jjXOa75G$v(tWLSL8ao43jnKE72#&3yx zGF6)Q@6FJ2pAi~E*yCSdy0fGwJy(Ay0|UFS_)naJIF&H;7F~GvMSl-;_haNYz=3|% z0sID<+&hQzM`=bx;;jMcjbnlDq)(AR-%aKQC7{0gMy9t+0>TGxE zWD>rIBkS@XX!L$EP7|Gz*cLrkr2F6m?*P_)Zi06L2mN2$*uNk2f9=NpXz2fX^vq|A zg8r}D7I2m&K0A`;d`Zy%H4HfD|EdNK`oC&`gZ{5N;Gq9&CGf%Yf0dv0Y*EnvwF&y5 z|7+cOdy4wf|Fw-XBAo-{^npHG|Cg12)4xfA@t6)#%inpNC7fpWvHAR3LV5eJ={(I} zOHt(OV@eP8;&c46O_{;%EG z_oe@95B5R-*IwYh^na!EkqvbamWQDU`oGG_SAFUKTKcLzMYH2{$kzW=2cMw-Yb9{d z|FsVIVEVr{K@;?UZ3PbczlNRrY|+8=f9-(&-uYhsY2?qK|7#caLI2lo;J);K?ZH0i z|JnMsqw? zX}c2op#N(f@ce3TzX>?#|El4f*5T;?N^?dk=>OVE-O?26B-#njEwNsqUBCy^|Fs*M zzVv_X!M-p3Uwg6dOaIr>GoCH#OaIq8%6`!QRbBX8k@SCA`H#>4lRQr6j`G)~GWr72 z$8Tqzti4L1r)Im|)fid*kk5Jj51CHU{0Br|!1v0xyBocG+Wo-&#+P}cFQ)eRnAg{5 z^!?F+@o>PYPX=;Ay4dSkH2OjA^X^Hz`_c0oV)y%6{bue}oayVdJ0QLLNNx*$x7`OB z8UN9o4}WvO;Xi>>*ywn;g7}%cbbJ*0`s@MKXVO2yO;{XIlTlr!dvXQuB~4!7OkTJ* zS9bq{Y8BnREB%;@mwLKfJMoZFU6{*5cHf5Yq4Ih^ZK&!{<>BY+o-OK2|JUIAQ9&@_4uj9LaZj~=z+4{exLDQH1uUhPb{;#FLLI2mz;^&I`(*M-~P0;^U zOC2SBG9;I~?Tnul9ghC59q?Hd>;Kvb9Q1$f0uK7Wb^{0fUweRq{;$2j560<`M$Qxh z!U$`B>KP7)FHJ4e44L=XVCw(3Ak}lY=7>aqM-k4 z8}^5z|7!>ILI2kii|E_DNc~?{{x4I1)IWCjp_Q)`g<`nZLuPnB8U!ZTJ*?3cqAzr{ z^q=isMsqKs^!K;BS$%(@m=eVu8&{Io%)KA_KTfrK**)H${`&2q{K1d=E93H~vY~R3 z{Z={3wG;j;%JW|^DjS8238axm+HGoF72(aKmt93T(l1krIgZ~z%s4`l4x|;-DOKpg znrRvtO3@ZkicW-6u{#;NLGT&`uVRv>1h-<`GPsS#P1?%x(YcU^+6!I_${KBRfUm`iIWbZ3(V^QlTNS~uM6xF zYQdwe59|`Ye9#GY2`O?+FIc|m7J0FH!5AnpwtYEtf?4@D{n!M@WB2u0dDRV<*Vw(v zzPy&9>*YRwf1$aTQ%27A_bys}pnN~q-;Zhig;DMS_p4C8XWq(L9>P3=$#xIzsc6qfcj8J+wtEkE`7cH*(L{g8nc}lqbt^+=%7wni`uw#0`M!E&)qZvT?)wog`S;u<3T)6J{kiHb!X>-TQ z&lkk>(!Z;_X)9w~`a`c+--ByBzd|_miTFuBaDA4$^ywNN^Vj@=-BrZ+Tz!Sf^oe5} zdGe`$Cb_3ge~#RB8+vWPaWA2En(geKvj=wE#J@E^*!p~J;E?jz7M`xEDN*(m(ux$p0U zD8_Lg>rRaBjEd#o;x`d(u5B*Hp`U_Yywlxdgzw!?azA&IqZr41rhA5;-DhX=&2e`} zUyV|mG;S)lI`QN9Ro$5V{ypIZyKFev>3eU*JRkdginsbxdT&_f=Qv(&{Eb;*YmVh$ z;b+rFtolUM?vd{2Vk8%#IWl6Lw~lYSnlzMFzCnDOYQ}HXe3J^kt2B&G#eFL7YPWQE z)UDvRfKTB)h4&0f#|-k1w5<-LZ(qg#D*O$=_W;Ioqu{6e?)u@sAO7#h^`G%Kls0cD zD^H8S&j8=ddjs!M?q=xH@J-t|vmd2rB-B-yndIGa z%xKM+Va6ka=EJ1dv=DOwI#R39DkXdcC1*LMr4Vxh)Y9NMk=fBIv@NM{q@i0 z4$Zsz`9GCc>GSvVWh#OBt}$`XqrYF^Y@U?-s9B!-Xwhx1+VC_Z=1ymN{0%R0>!Xd) zP56&2JhUT5%cIkUoBIIw755|8mbh0ifA<#GsCj&IujIbZXZ`&kh7Y8)*EpNAGJKHD z5851x;X~ZY=*q}+vl~9ly_NYvyFbA2;qKokPiKq2^>;?PU%SG{^!A(kC}ua#^Y=6u zo?$LwrL#G7!^iMF>zvJL89tWr(0un$BL8^zIrn8}>j&mOk+J>9+=WSeC%JSqCVCyX zPjBfxPPz9p&!_w@qcW;;sQexJH`#V?#jnc8Kk=4*a0`CrFO;3&rgxaf6mQ{okp{W% z()m67vi-_W9y-s4l8=UxkKRH)dL#L00J&-a`A}Lx%gMjP$Zx~QZ#Uq+1^0Y%dpJRPJ@RX!aw0f4YBK z&oivqmXz`xsgK?YKA!c;aiqb$#5a#PL|x9^aFTPYm=o@tY+mf&U@EVEnDAV6v4=F@ z`kC1tmhL{?C8_5g;PAY^%tN|E{UpNEU2l4{wmgWm*4?*ybPuc^-RG(2vH|`b{`Y5{ z;C+KVru`0QpA}sCet#C;=Qs4Y=?<}3q=nW&b-(h(@ppfE1^2T|MJxO?=cdyZH}cJO zAIrd1qzCX%YqaU~Z>(CkSfiVF51}uJtvmUszuht|!bd z2v>Xe3;e?icfa1KyU~kiFLmpH@kc)IuGxb^Hym93^%7ilpQr9`^>_hqbUP=w`a$LH zhsa;?far^y#v8il-Q#KM`+iRM)_c6zaNR%e@e;#VC-nVj?}oYs30_LeGQ?e&;AMvI z29GR073iO?jy@=y{(cFm)5(15*9=$u2D3Y9k^6LlSJ6|w(6KE)rXR^}rVe)t@aQK(ZZklY#AxT-itNd$8eK$mPZg*oR`!MH{?H=4vBG+3pVdlil3Tc7NRIfN=VWyb_d=2c1 zpOjhF%z+FJJeppk19_Rh?A+zE4ugJE&74V@1!&(|dvM<8E?#=U;^l|I+&nCz^UyA zlh0EAE>`Q`4xvOA^~ysbpJex4Lto)=-CpfDCR^Xl_G{Z_iKeQ{gUyE3Jx98<&oSHW zD%Z7+J>_02Rm@?-RXz0kx;A>1apNyV^Fr{@*yF*p&1E}sZi*8paj32BoV7V;=>-=q z%d~c!v3~VA97O|P(c9vXHiRFRGS!1`CFUr_nih^Bxyy>_*bJosqtW>DY0f_AJU(Z5 z&ZSeSOE52`Q=`GjSZZHges&V{^_SBS(rMDgecIHf3-6b_ijKuN=ia=?Pdo%Z+3zpW zV1-8;ee|5N+P@Fv?jVNIQzK)e|p|eW3LSwKcE5B zGa{>D^)`L~f9+zf-8q#8e?1+oEZ$mh8Zo-Zk21F=r?;Iz12}~62=^vBIeK)l;(c`B zLS~oUb~1CwTRdg6Od!ACFefA{endR~De?D>3MeaPIeGX3JyD9Hh{v%4a z-=Aue_Pb^W68}DraIzm=Fdd#RU+JNL9^v2G=-5s^>Fdz|Ul+{kk~}@S5HS0hNBV|m zH0h~FlXP16|6^81SBj3;l0JHFCT{EEG!U*y#$_| z`XIfC@XRC+zlZXr&V-&q(sMqY+$$GHoBUyQVP|CR~>WSqSI`9l$vWwQ%8*LujO}J8O|9ZZ+CS@1lw-kRj64sMfGR{M`R}yAl z&u`=JtqEf-s_9W-*5(*p02&@m-ef&q8`NRk|8XGYT=5a1qr^?88>UOu&Qaty<0xL9 zAo)yP$x)O~s=1Doo#`AoLMC>4?C5+>JAN*HM;^QX{`Ca>hg$mq@#AR8xMI0fgK4v-?j~y=4o~RwZ-<+s%mfznQakw(% z@X5M0;s`k<_eLC)PjVj_nzX`wB&aiJZEfVjlCDF^iG6cG`_PN_tTXj5+A|6$IO_kR zy|*@OKC}YZXS5Hsg6h+=v@*PCx#LUZLc4dQe5{c=QYLDhj+Dm{rD&Weanp9Bq9kov zUySVjZ#&=W=i_ZYfRRiXBG~>OJI~5clHVwXAB;?K*G=OWxZjipT=zy+yNwB6#HWjqLPkXEy&D)&RO#qu#_mkgHj3*3GW3WhGlTUh3B2YIZnH zW)=Gc?xLK^F8^uV89IYi=vnM_n8W_c8ul2R!tRz@x5eGYI_d4KX}_Iw*I#8%$*bA_ z@DBG*R=T%wGW%=p>+T!wo9b~F}V-Wo>?3vibPLTYlJgSH)qk++&XmB(n8X66Ys-of1 zh-gwYIhw-GsuQEB(Mi#?=$hy?WXS)Ir{G-0c&0~~F3__mXIjnMGWFNWTJK9R1!v`b ziOREoth|5A<0|hHm{QdKKDlZ=ZFm;0`+~L4pwi|Gbt1T*`?c_xUh8ez!%$i2{cGpN z<@k?GA3%!ou*uf7qei*sljCRGTBzUeQ^;zw;kTvy1;=(*0Fz?5Nlbf#U8^a*q@{XUI%_VWXH)Mr^tV5)fl z?K$k-@Mu&N}{FGZ{#BAN&mHQoySkp`kp>*kTYAEo6K)3H+2 zD7=)O>jh4_SUkTn`moDQCyU4X)33eIbg+1Q0DawMPI@tlu9E+9dc7C9eo1^P=>M*C z(mmqoE3N$9m&iBJ%7gZpdG|q<-}ff;+W)e^mXN*s5X;}I#Q!#hH`FOVKa`~RF#6Vw zPG`$KeU;@`?ZNc%8*ce?V-o%d%a2;lF5-OiTKc5QU-u;PA7}YTOKsXew3fd5$Y^AA zae^Q3j*E_qq}PGE3-{yc*LS2#6~fmG zA7}VueBX*r;p5rweY3k)xXCkt(bHDj!{zab>`A}X_LNmLi@ur>z->-CI=uTN_Ts+9 z%_hA)J{f&Y*Sp{Gy*)m~ZQ(aAaX-Ob$1j!OC$bOr^=@E-Pc{6TiT{%rySTdsw~uJjNGyIqmWD_{r#}c%NI5;HS8I_&t{3uQ2!5B={>0 z*RrVRf2!g0slPnG)7%I7rG+;r{90Ov_dDqm@b2?zJ??fJ6Z+F>E&j>XNWUz??Ohc zUv-7jVo`H1b0_4p->EI;SI zDF2r!{7V^YKJ4;o@4WkEj5|MXduTm=x%&jaHzn?`a*y*Hk%V8**!7d{&(t3kUE;Tj z^UV*q1)?|p4en8X?-YHv+#6|aKkb$${F)fye!;aR_-gkUzsKQMyud-fnt6mq_f+EE z%!vKF?u7(j!}$Gst}-cqYYo>jyqABS`zSx{3HNx5yO-ab1iymwDF5vKlzhJ{&0Sjs zD%vD(E2H~Ay6-3XcfH}-M&S9iG3x(|TP=L8=-ZhCc)`s`+&j!&TM|6|tC=(Sy?b|p zcQT9cpDvxychMX8le;a!yXg)5w>vHQ{u^95a{zBj@Qs`nt%$Bk@T&~JIKej=uBCJz z{$|6~KlbJCYE4u`sSBic?R=M7eF5*~F7=KTE)`wGKK~0{s{3N>R=QN%CA=@gTSzphtGPKdP}EEeR4DQuf_gq-mk-- z_T62Bc@1WZOKrN=rLNk<-p|*AQ=f0S-la~u0r+P8Y=zfNz&B#v;8NG$#`|s9-_Cm! z<{cQF%YQrOoyd9zvcA=&PIx2uEy!>y?>9sL7Wll$r5fJ_{%-L1xYUJr1OGqv-UKkK z;`;lad!LXzfdrDUZClA?4X#Vf(JUN*;b7tnAJ9qXubLLv|Cxw?ONM{Ue}1aGMEFx&eEW3Af*jeIxXnOnBSvxPOfMC)jtIaL64doOGADiEky* zrh6&#=Tk4P1SD403y`SV)%49D&_Df&a1T?C51=l*kKb|l-A6g^LHKj9AHeVX_+=7r zEA|QaKS7)}_+Lpp$*>*LGz@1-$T4q-Gm(0oB*wQiD{p3YFqKb?2^ofGAg+yagHHO^0s?`ev^9Z{?| zPcgB%^JL~e0}x~DWz6DP$g5*79f|nVQr?S+N&czK#hAd{lM?6YNDM}2z0=L*1yy|> zEF+IrRrSl{on>A;oHGmqoqH*~Z(ZWtssB}u(#^~f%=h-=Tm+yq?|)jrS(ixsOk*CI zM>?^lp5R?c_a-K&3y(7PyzElq9M#_#jUCTEn0Y;-JsQ{CM;>T>{BZI>RzB=NwVWd5#s1R^9)8d}A5O+}31P9nbZFYmQm5uypY;+MujY0M>CvG$YC<|Y7LW5#!KhI_gxA)jP)a$=1Ss7KgP&e|aQMNZY zh3Z7K+}%FzmKk@$kGzh<-PQmdCRUff{TmTyf`ntis_UoNs();qZ-_zv}xiL8~Q28l%0no@%#BI{16zT$m#r_?0HwDP*4oo*<+REWQO zVCSlK!-OGg&8>#XLe`p8gG3=~O{t-hkhLZj57(L|?;9ouSu1Ce;G(@kVW&%2L!}^V z<*eR9kUOMORiJME(#2(N-0Aw1M!jVnN!CMnu-;s9RR?!9H7S=T>&R$yA5=3W+~9^z zw-32bvbtpLvU+i}x_s5~$GG>1zh~8tGIUXWL|c!s30dLMO4-kPNZPu1l?*gQkTpGS zBSlxMWxYNnFD>utFQ}T%ctb=})8jT!7`4e|nr;1yQ*GF{=h~ZN;;2*0t_6g{%l6U2~x6D?FRcKd_LW#n+172dTIVf-}}axAH&3jWiiawr>mT4gQ?( zwb1VZq)X#D;4R=&AVIp)Nzl^5SG!KqrKj`WpVvMzaLNR=5h7F6jm4^Y&aMC5S-g^& z*u&ZSzXA9Cz`m=UpEh~Cc_06eStODM9R!x=Ij&Z zI$Qrcv-r1(MY~ipt3A99f@c=QmQlbqvB2of{~p2OShP5(#ZZ|$;j5|5NxX+Q+DO+z zbGmtrclYMplydPt`R&ctzMP39+{n@7DT{(KADrau^#59H*5au*T2u{)*Pn9u5@k<| z%@Yr2Q4oG=GgneBiDJS-QPRT#X$AORi`@C&b*j(KTtiY`o=^2%`e+KG_Tl32;xH9I zFFY^QF;?^g&^}0$b(V>6(#u4Kb(YnC5*X35@yYZ!^c>_w(S%KLaP)j5eIpSLy%RCI z8m$e(HaPbI1^ogQD~A`dTNwl@P7d#Dwjgn{+47_C1I$xw_dFfrgUs#73+ouTYv0gK z9!?K!`(@j^eayGRw?lmfm);b1n;$TRas27#oZ#l*lK6QCBg6Y$Gbg6cHb*0idSXnU zhcv|+b9qcZ27Q2s2Rg#8VrQOhWerNb=Y+Q3@1{pfpRBN=Ew3(M&AGICY ze5}dzZ&#HfL02iCk&zP3>!EA2*&AJmBjKexqIgoQ^|$$+%4P;_r;IK&kn`Vwv0oI_lwf~egTHhis*S-UM|GR3{Cgt7fU@;%;DI=TY(qg7vj z!TvWQKUV*Yq_oatkMQ(4;I{wIM_T)L_NaYe<%K&V-SBhsoai>auIw=OwyzP`_MZF{97>@NKoW@pkvT zBW?Q>;iOk$CI{03)f07X7gOigo5VN}-?w=TNE?F%2$F{SW6-cNBq z5aCMWR_H2LzXZgOcsU+-IdB>v{Z#c0r|#Upi+|n<{G>L*DBY;*F}y-sDJ5HT`1@G^t`IHQ>e4w?r6;EU7f!gHC<+=jaP3ZAhPi|8gSYQ z3CpVk^X6@yeO9r@oQlfPhaauy_a#Or zt4l4zo)_qcXP$YL_zv%nghsweg69Dpfo?z%P@Ug1_}>Ve0;Ia7215Q)$!Uxp-Nch0YPq%XQ zS6O81yB!Zx5Ba@C{ili-3Tw}AD@~`XKOyIBx|zpfJYjJ)KYvaE-oy0G9GI!;rF(u)Tc4$B1^uJ&vl}fy zcdKs2(Ra7FbW1wC(6$#pQh0mcKoR;2lSWf!NAG3nx>wNg)0-6gTh&&M-#(m1>X|7$ zqAq-2w4LXgY2wE|zaQg`wq{98ckPMpt8@7?z~-0qSGxEEEj~VuKgil;LHxXt_Pmzv z(sJoZH*Rb56yZInf0sOp)HCUP=48UA`)Qh;?zf^Ezrt$#G@SL%^0w4k$?f$KsvQ*w z_hG!P=T_(MPmQ=%Qx{KTBZx z*9#c$&`6CUjsF9`GNXB>gqw9hUWZC%rnD0hved-2tk4Fv|F-ZQOX2w_Al)27n*U&2 zr^6l}k~cCdS)-LnQnnsiPFgEzq$fI|*v-^kU9S8bd8q@t8_9#o16+9hf4-e_bJ_Lj znS9!){;Pkq=08Up^EuEZ`c4v@m5^$xQAa3KMA~(ke^BNh=6!YepeDoZ>ehTr`>;AK z4+g-bF22wp-J751qIYgJ{_v(r$N$Yr+8J4yo|Nr%)6si)oXdg!jN$%58CzN4bHrWZ zA%S>r+D6~m<5JQqa}NF|Q8v87cIQjmM}BGnDAjzUq}}C)273P&DrvX#|7g6g^ZQmm zchnwe{okIKjBsUyJuexB*Zklavc;eG*Zkkk5A6K_0VfM~w?i3sUqEQ*`>zq+;R#Du zx9ji>i@z1)tt@WG-!?tne8QPOnjIHD%g#5V@i&DzY47`aH;$ieE*JT*u&WIvVDGAyPjdk%NB2E$I}{%`Z22?m-_K%bz@Wc zdAcoF`_ZP$)TX4}g>VNJ{&R}MG#IbW^hz7MoKAn2YIGn@W;0_(e^G-juCL8J8}-pO zh0!6#>t->(rVmdwx*XOUE&R&dv%9m?|7(G=HlvLdZw{R2Trbg|>%x_6AtrCdXO1VgGsO_OVAfRspW z$uvl0q_%{r%8#rqDPLN;c9`;v&s$hUE55YKj~L_ivRf&~x`NMeO6Z-M`1-||TdA|Y z&Iog+kE%C2JL>eWNAf8u@#_p-MJ0Znp`A|uDk}Qxj8pjv4av|M4am?ciu&v1$G&kx zlDBsZ)RT9cczg>$oxJ$M>2DdRGlFNnp6s~qRqxW~xo;Rd4fs+i<)@x+kaFWhota}R zR=s(*yigA6$%qSHrRZNtSNA$gL!Ie~&g$Li>bo;KpS9PUe}CVsx$s}B-k3D$<5ymo zkhAWL@7;U*0hdiUqwKA(dwg$O|GW>serVCDlPF2x?g6ng>mV~f}-z&@9$<>T0w5PlZ)rzf&R1im+2`wH;6O!d?g|FSPjUfBKV zq9y+FhjNy&v9FlP5CDIP=P(K|Iu|zs|7}c{-UHt!Pr6i4>phz;8UN+`ktg8K6Yt;H zlNg$0<1f)Jjh?2iVu=R#N3FEV%vK@cU&H=+5zAh}38dNlZ9NEwy`_Y`9>N#%(zk#I z41*5FeuejX0=t0atn;9AWeXZV$P=czlfmy{C^8g$<3S81usEc23fT7kJ?34FL3=8{1 zzS0!zXG!Pp*iR0L_W$g9GD8`DRvsY23F7Ye+-3^p)_8wc=>J<;wsOg;8Wp2fGrk!S zk8e`7f!1~4uigpON3Cf66RTarXuZ>^L)mD()2UPMXuVUaO9g4Y6RJZxyWZ*4p_sJZ z>C|6GX+x8&OI>M0)2l;sX*J2&`G1A0-*NrVb-3!h)dv{SRsVJ6L16Kawy?rz8IC5W zkXbapq4s(hhi9Q(;bfCbTNHdPdN$e#t~4LS;oBfhbgjARG#@_~y_VC=`WSDAzM$Dg z=e%8d`DjO)VE2Hu7p1+QR9koXc|V=Y7fti*RNK=_t8Xvrcgne%Jgh#s_ykQYrv)02 zSRH4dYfY(a<)Y>57Dopd+|;iY&C}H+RXKr7ZD1SOF4mA(gWJXG(`k6SSbaK;X&0+c zsS)jB^$9h+U93Kx)OOL<|I<`IQ~Lk(`fuyE>S16cdgAJ10{yfz%=s~%$$HojqiqsL z*A0CgV%@$H$&x6u>Z9DgF3PPv<~8ngO;iUP(Jog1s__x}S~WV?yTnJyHPwfRlB-+K zb3++yWZP3~9@e4#q24SuDR1Sa4R05#f6GRU7F|LOSsknGz*mhK7(bwLsjTMXUv;Na zb=Az)f0I`K+d5org6;n!y6XQ&as5s(*P3JcGpBI%y%lq=S%JizgJFuFjb@+y18p@1 zHwkZJW(P+G+LChN+ag+gySbM+8uI_pxyuu6*AdQ)P4}}8uyYodUT4~qepXb?#qY`- z?ZiN$Xb$gz{Qa_^J274O-OT#nqCi_+Zv0VX)}Res?T+MGlK6YKwpYTVXY( zkVt5%t#q<^o{#6p8;YlPPWJ?-`$Xz&4IuG371RJizrOrp#`rl6VGo}AG z4wqkg{okzmW$7W~^CQjWF`i+LMnBqnF)sb3)6A9_&qf*_4fbrCxcF^&$Uu8E&EajS z-vw4=!QpvmJG;PcQ#-spn)T1L;z17Y$mn7>TURAAqBT-e7zJsyeBtvh{Wqw1JmF{y)qK3`KMtsoXY;Ux=P~{ zu1h&gqdBfiPs~mwT$`$rMkl;8!_C^VSejo_`+v#Dr?3BMo0D#@P;G(E?@7ea<2ny; z$i0=g^!uMHdY%if^8xAY$0O=P?f4*pw$i_v-Pta6^*Ix5qo3L9D;=KA8s)$3_Nv2k zxNV|UpsP9^-j=oC%k6Pghv&1paGe!BbLqEdHZs%Rh3@DbkRIr3#w)&kekXIfIoDh* ze(d{o<;2gaR;)7UVtC)4W;6OiwWaOoMP`$^+g>5+;`c{C_FMM&mZJ}0&H6c`W2%lm z%#L?--Ke9FGSe6zZIAKMj8_&0+A4PR@ti-J8hk6xj|rwbH(cnbrlap=hI4-DtvLVo zVJ*9BAbA3{XBvZex5hAP-{db{c;5XNc$1i&{M8o9Ud!{mTXGCOtoQpV@xA*{!s_~4 zkLxUt&g*!*4PiS1eeoNX;x8Wb>`#Dy0_o52@zVVz;wbSZjk)v;jlUG;E9`2wts7j! z>ZPlu!Kv0)ZB2s{ZifATTmRb|TfgJ=zv#XW)%o=LEAa+b9uq_wVE!KCI`6Za$wzF$ z(UbJ&9qoFZ%9*~IbWW;&)wh%_KR54B9}U+e08vjBHx16%curcEwwng0Trb5pjZC%9 zs{k9D?uu2bYE^QwQ|ZpPSyG!G$6AxGGNs{y_Qot^)->7DgXdSBfHibz!|=u3v(7p; z$K52BhCF}Hf|=unzj?*yt+T$)|GMLGr~hHW*OQ7Lda~Vx$NVP&UFI?z)FpEp4dhID z6w)|jWwWq79(xXSNamspsp8-uXr>JkZ$jclg+r!`P0&%;eiJrCPWS}yaWtY5{TfUM z#D1XPq`bHjb&-_BW*cg7gy#uY|1KS-y1#+yiklfq%Zes@~CCS$R8MyX|mk8)jH`7JN_nf$5$_VoHfJp zzpou1>S}w3PeDV>XcJzWi+DCAr4wJg0A1PblDOOO^>cvM(6X#(yT&fk4XpB}bz->% zzXq3|WGmH=C|qhEBK^OrHwafQpk_M z`7r6We~!1WAYXMvb61)-UkjJ<;|t+xFU~4*?L`mVYJa49NA86_;ulvR=#+qaN3g|JX`X{XUFu`7QZ{j z+gM!Jzq|N3wth?Xjl-S%uvFw7fExHt%uVQ+hZQqWK>G`%jSs&vCw!Y>R z`uOc>F?t)Rn{nxNu+v2t3B)ich3cH1iN?l^g{DXZeVL&EQG28WZv2+!-m?LC9}=`O7xBLqK``Qi|d6Mn9l z93B?Vh~Muha|O~pIv(Vne;mERW#%U_zl*ugC_lJ7#*gQAjenS5+VFb*a&vn4-7vy= z-b!SoMjDA{^L*&5&D`+#(BkwLJ-8`y7{96Z{e-VY=4gz^34fC5n=vdy$DQ2!pJEOO z<^|FbuJ*YHb6MRd6ybzF%`6X34L3P{pr6BP`v_xk+V39RHS_&&SmGk(_vwm%G3)z# z+9QN&|9fy-S4Kwf3>`%Z-V}a`8IcG*PWX)sJ4TuFEx-CcS0bAC;km)M8?DnsZUV<(u2DMv>svm z8=HSOQ6dg7;fvg7p#G+S79+a|=uXR_yABG0p3oEcb%IVRv`}F-ItysIbUGoVMu+pe znXnYS1uxM*G4=`z)K}3@y~Ou00KC7}HPtV6hn~9U zp|n!h0b21KA4lpbq=QKPq12nD`g^zU1N|C+@0X>L>TN*B;C9B(KS#&)bdR0KKZLh0 z0FV2%gVZ$#@twZr;KSEs`@BuJn|mDK`AJ<{5&u44JwHC&CFHC3^Y+e+9loHf@VvrI zqw#+?V{y86;p%^jdW&9MNU`L!dnc+fH5xcd8TJfCt%c-P=MPWVDQ-nhY~54{hvx@&?6hd#iL5B?F;2bn{Iqk;&BKA0GNOo2-ue2AStL^$aU z<+k4^?eS^H-)K9Y(Q)eFMe(y2w_SZ=_Kx}6$BYkV1`$qr#df~&VEp`j&8KE;5aH0L z+VP6+)o|}O-K^v8=Lm;>5HqI!R>dN8@I&l)NGcay_*v$dpfu32VVB=?=@B>CBgug+ zug6H=rJL_qevhU1iTWR#pU0U&%%Q@!)TdDLyU@pUp+D(HzcQKr#P&Pf4b+AHqYHgU zH~J7mDSuJ@4E;(M`kF5EFU=5`Q+_<%+v-nLZ`F3G zACcSlA-)}{ukG6y-=5Zld;jKcFa2}s%a4Cgsa24A1s$(01-$=Bh2k-NUXgr z&F^K3GKwc7=icG}@^h1xuf1VK za+!29m|en`=cPDVn9N|fRK@)3+@Y2)9r>61n9Hw}b9q%lHw39OztR&6_D%75aay+J z>uz|GT#3sm25pTn71hLX`M(1p@4URcFk`(+Q1xcQ^9ArVf53Qn(tf)7W_Dhx4_t?D z>i%EcU-zRkh>V?|Kkjh#*EbHNeYE<5LhiUf#k?}ewU=7x+&`Qh>MkWmZ)-+``-KHD zo@e$64i0u30G<9`yM}iKzX>J_x9N2-hlNLnK^(plAr_mY(zo;;<{v>AekTsUo9Ptx z3!jehLe82T6D*A5_cO-@Wx>@ke*?^w!F9pUWBMR-N^o8Ij zHOKfI+xw@ly?K9cYj08GT913Xrt!OP=e?ai-|+t4_UZY4LH(WPPr5_PKi9j<;JaM; zmO@W;d%924?^}A@_od$U&wPh(m*9En{yx5^f0u6}o;>f~uInAeqvmYs&rA1Df1cD9 zNUg>I#>|<_kyFh}gW=^+;-FlwaFbBV_N)EH$RZRDBFGv zbo99Wh;Ti}wjWV^wI4HiUKY>G#I5wjR~F?zlhKgU%LLE=v=}_Wh`F7aES&LlCcJBZ zK=+zEdMifQZB3t;?#BC4SCjvu!e`m>x71fSJZW*Mk5+xlots*Gm#aK$IJG42QV5R$2ga0b+RVg*DYUXYQnvL`uNqyOHaSK_5=L$ zJU{8U_pdrmt#h1HNL5T$@Gsp+9hmC3QfNbci|{<*s-L!gNA$RU4{_m@mS4YDc-8Mx z(#x{pUHyIrT=h?JRbTIk@r0f4N-dcB+mPN?`*A~u2@k=uSRp;#Abfu*Yz#S>1DI2%V27m zs?f(xGju(*n~cc?VXqy_;_R+@j90%ft!AK-i-jSU^Dz6=o>m$)J=HpSNfz}g%u9wv zd3iS!4=6mZkg;;Qd4KIl_&Pb53}2F4aq|ua4h=93=4;2ar>4&*ue0-xwZWP2rTyxD z^o7~>UrxU2uIp=tdu!t;cy{$DQou;Rj8aMd8+9te-y1NQTT z%lQ6YxY~o+$RenJ&&93uq_!{LrswwabZ4r=-TI!?!a6*|uFoAm0-W|Em-a#RP4})k zJd@Rv4yG{1vuypAx;sZt+VHQ(xZBUu-Kmb=+DM=0^)X%251ozF+d6uV#mB~Yu1$aB zXuX%-r=6J)?i-FAsrEp4zL^=$3qKZa>8wbF2ZtBz>G95Xf9r*q-qqx=zx6%gf#P>J zL&817cNG5H!qJ`{?h$S$|6F>7cD!p1>I#uqt3h2<~g`Fk@T*%(H6UM{PTh5Uxa;U}AWgNK8! zqxLYD@~QDggcE;1b4<8892P%+e{*B7IndP}YTt7i5425mPDD8AA85x*2gKnI=FI$M zfvzZV?>Ez25o`*2+Wc4iS*D!%k;SKl#6Q%I-=tzOVEmKIJ>Jsi6yb!QZ!Qn-4y95O zI(UisBFsrdIN=xB@t9O0seR8irFK0r!U@0BYz{vUuZ{UBGxLJQLF<^`<)#<+J4kh- z<9DTbBzPeRVt!Yfu8CfW2q*n=JAU%xqg+nv$Nh!nZ><|2y`_C8YT9tdN9|cN9L{)Y zIO8P4IEfk(4q-j9l=Z_IjG?mWTZSjiB6!rklEzBj);LOaS$@9X@nb3ZYkZ@*g~k`M zJ?{5~kLL?NEB3g3Dy#76W^?{% z_?j{E4)~Hj`g*-gdLnh<=^cAr;i12>brgK!dK0F6xKv?e9hT^zk^x3 z;X8J)0o&RCwm;v~*tl_jo__w1{!M|^pG)n#`VWl`GSJVjb|8J-LMmM!0DcQR0X&H| zlc$h{dz$&}v&^cWXC3VYR?A*8Dqr(wo(*48_uGgp7h83i^x;*N@D)`shq(NjIqOmQ zYDvcNb>_s}LpY^Y&tG2gt$)tE{kYc)er0~!UF}5a5~*Cic%~hP@*G$C zt3I$=wyFkcGVIA#&*gr&mvZ7Jc-lBi<8B!`=oDjf*G))Le4E~B>;F5ZP$|dtU!rM| zvE%uOuKHgz#@BzX$mN@fF`lG<7-p6Ux9it!887c{)uTH+kMk}21-Wtf0;G?I22zXc z=pF3&7WLN}Yoxa+-rw6b(No7ITJLS3Sx{s6^v3D6Y_oW(+ArpfbDY{-SF%cWNTSi@ zdxwf^ca^d>;lieVs}W_B%KW`XBRs@8S&fO~$gG_ES^YC54lxS!7}Y+V1x zRHkX`f6D%!RHVE9KV*h=f{{8@sz9Nn@>ZA%d)1?>&zb1^`IcE6hu8Z10DB#zqf0+X zN2{~VrI(BR#3a)?$ETNPCL@FS3&pqXNrCwe8iO>)(6~9(_Vbn0akU@!OP#%UOEs>a zqtqvFb~4OmHvaaLgG+|z+H$XJD|HQK!V-2EpOcNd%Ji`h^5v@lo^%-Xs;QPQTmN%R zp@PQszm3D?=hyS(w&Q=sD3LM^!)?kxa z6Vvm}I&+bE!_q_2YtQ;efyeW-+bE4F8VD zJgRl?nUvdIwcb)~|39nd`rqSFU!N0;${O?bxIO5GbkO;;wPHK6qzuWha=`r%XMb=j)dJ99fmbcH#{%*(S-{sLNzNV4z%+XKEHXpNV=>gy>wI6KSO+O&~ZlCXRZPI()h|n!n zy_*6XzUlls4jR<)rH#G#2(2%WT=mrbYLox7^?#=7t25WIW>iq>aJ2xpg9lb0NGl}f z`WanE9@zE3*38$Bx9dx;ez#-({~a?7dd54NFXge0l4U+4zQgnF{-(y@PvWP0>UDkJ z`#^pD#*y|{gx|p=>-p_=h!}em9(KSjW;a{z7cGBq82al+OXqxoUDma6ph`!Db8f2i zsp6_~kzy4}-N>c|xBU2yJC@yX^G^@Eo&8Ojg)i*EcPuTO2~XO8aT^*eg6v=_oX@5m z2uea)yNIt%7iLM9IHJFa09p=M4yTUzxle3!f|2>^Zy!?-bIoGS z`w`VP3ze-#13CS&*8Pa&<4^AiU&~7#gr}BrF2vUV=ss_~t*!r2+pPNEnYBk(zcZ-+ zMdmB&psW8$!us4 zue6<|6{Up0Ss}E7SI68}7FxU6{<#v{;Zf~BuQyM?*Up{`si=n6>ROyC!M>6Ii`u{{ zxl$MMUzPu}^?#o0@5QLC|IvP*>c93wT>TE%r|fE;ws=VW4sCt3_&lxOB^dwj5%vGV zGsuf{X~OXc(|*5^(#*Tr}dqlE>&J)oNRiu?10gz^3PO5CRbx`z95KPL@rtUqzUgw4H`h(hu(k0ywa@SIlIhdNteXR_ABmY-x_B4Q4(;F^c|Fe&zz88tE`Tu@KSE&2_`x$7=+YsaJkkouKr9DWQ|7UAHP&xlk zt*a*!KfQj|xsUwiNRTM_###Vo;UsC@O_amy~tb@ z(+9Hpc$0ZC#)qJ9?jbkcu+s~vBow>{~2b>oZlFwKqEdwlYZ{9n!0t_Dip|Ksw1 zw*IHc`$|47I9lxir=;lfH>*BI>-|~mwWzEMw&4F9@FwtA!0Rjf9QS_!3~B5VbD5rU z7~tizbS=Ev9k(twG@XgUbdP4jEnnsv`M-K+uOD*z@A!@UU)@%Xn< zbw8^?As(pYYa?5<-=FU#s&mtmq5I#JWv)u6kM;6Et$W%xqby zNBQsgrv;o>StN-_nH%l@%743%uViSp|KX@M|N5SjU)~H)Js10xz_fk7;z|y8fh(bB z`23m(PhS8|?m#sn#T2Kwo8P%fJb1o3mQwBkC;pgK_36b`(I&;Jneo0!c|T;+C+^%4 zJe{)4T_ccQ|0Qo7*zrJXR`e6`+$Rjj#MaD_KePH<*r~HO%EU)_aRdBu_tgdqnZv2lfE`IZc+x9>j zcRK#R%>wir-N;Md~`K=hj^7MN>z8IlTDsY#kHom1*&iF_kpLeYoy;s z+QoKDjmNS4U2H!8N5bYEH&QBut==gXMkt$)_qe#h6~sW0MHZropW7+4ic z<+xeg6-w3T*Kl~6xz6X;@G1}7#eAXj(U{kIYM;-T)$sKA$^N7;9dC+hEMK<%A7cuA zQaOy(ef`(|{r{-`TYaF?VBO9P5#6>IyV>?&rf|DHFaQmDIrjXK!$;coqrUAxOAqJs zr?K|G$+QkV^6Yn9b}CmwQSquBPt@-L_1@>JPj{Q_@6Iv*3cgyBSv%D6^=J5MDe`j4 zpM5&H`Z(q^WXb{cP5x`j#o~9Nsi@k{%D;I{7xU$tj<2ooR9`*Hw*DViS^rlvC(bw` zEL1JeHJ6&#soxog2oI_6+2$+NcPlTP!;Kyn2AbEq`ku?_o9~*l!T&;-HpS>A#_i_{ zU2yjTh5>s4Gk`^a>b*4;`d>jU!R#V=x!J>9ejR&yOO%(RKZ388r!SAWHhi_ja}@iY z(K63b`~be*E^0aFC~o`AmHUt2D}DTL>%W!X4{ZN!>;GIeX{!GTbJap$-*e1;oT&R< ziN`yc>|jiwbt|{uSIB(|7X`U7KFHi1ydDfucq?zPrwP$l{Y4yqA9FbRucyc9Pp4fS zZ7U2ydC^I*eecyo*5m^ z46l!$e~H-;-WZ+{<5!`L;3#vb@cE`t>u}#S_r&d6OCPU%!(V0Jle$jze@njDezFPv z+4{dw<=Yvp?*W&3>j}3m_dEE~IcK*b z*DK0dXVH-Q1>q|G&4ipbiG&Y2(9JtKRJ2SzSf%jw@oe2MCF5pA*6IK4y#9a%KB*n- zFwFEA`>9^rGb+m^-)e{b>CBX`&b#aqbD1&4gY_i8&NOyCy7G`!aO>ndl>5S6 z!WB19>p7|N6W733OO&7ZU-)W?`jh6K+cNbh-3wpZ&vQ+jJ7bYjrfA`!@&97gXJ_2} zU*r9h@&6H(k+>bWTzcGh*?L{YZt@*i`7t;&T|Mf$2YK#vu%got!zukr3 zlXK;zrhQD`hc)wFW^{~CXQ%A|bK3)~Ka_@rtQc_Ku&=pWxLuz(0BOX2-;BrkzP0Vk z{%)c%f~GT-@)P~eZ&`8*9Zqob+VkM6CCVwh4PPxyPQmv73o7fsJ^y3nZzboEFiT5) z{m$U@-yAE?;OcKHwDTQhju73B2QrzjcQ%*A;j>sj$hPBwa{NvQ&I8o%OV5t%9Zgj^ zm}@U+S@IJL2D1ZwNQME;R+BpQ7iF;x^W)=G8dpjUWBoZdlZefYERk(fTy zyuy7G{}acb#kj1MZ3o8_CtaWMvVDw^zuL)tNJF;AYYKk@;Wh(`>)k%yf+(%(;`%Vv z-QlP3)t$+de@)?idfpy5#mS0q8)ss<@jT++zMs?GAUSg3`%kS(zj~U(r6VRajKaPW z<%wx7lOjK{_TrW)Kk<9`+FAJtTmMt!e76T2tR{N8JnK@1>d# za1RN;0pM>FW&*apx4x6ghWvb){seatx(s!1mm0}WoYB#(%We2p)5}lP@G^Cd0y2hw zedfR4bK{A3;j2Amyn{`wWQQcl)?H(w^FvcVcYKZic1t{uY|M4=wX5`F*5^KwF3(8+ z1iGx?tL5ECVodRO7=LG0U-xYNU!wlanN6zSBQ@U+=$%@b%fN$?qK9bj+hm3!bL!fI z40gnRWbRaW?sJl~l+<4RABDH=Mbf-#J~Dg9;j?Ky?y}=R-T$Q3-h0f09;ZEN&uk&v zbcn-uFuyUcnAS1g34K9lnm#e!mG$*<^I-hE9_$YO(7bAKrC-Eq!*@JR`u(i_kqqKH ze)}8AH`?~ho(~*g+cV8g{QN|BAIbeCX?}%XP=6Pa{Jf4~=@FG~;p+U<9tzYJrl%pl z=SjD^c-8scG^Mf)H7&%rbJE6KeMw8yqif9H;HxFc4gJ2%$uo_-wB^VR+4`R%|EKwo zljqUxV%<#l7|%dHxu5xs>fiBd4>CR5!v8{g{{rmzVi(H|z0Y@Sd3v@O6K-soaziEX z)e_}~u7$7WzGt&alU+~!tM9^BbIT3c`hP-Y|F3f!uKu<{U(f00ec^u+J=dH?kNrxF zbDt0UgO3Zh?LkLI0AtNY;Z|N?H*+sHQrrIZPns|6ZtJ)24>cz!Sk5{v;On*gbQj={ zNaJqc7r;Y6Dm^v+p$wRh08;6G&XJympMU5(1kuOX64^~?RnfnC>&I>!eHS}yEl0J5aaZ(vPJ@5jn%)JUjH9$O}!lL z+5_G9@ecLVwFg;dAR3pSj`3{M1szp7Pvz(Z)c#+Z&BE<`p#zc}oy&9EPv*YFK@k?J@`T{@IebHq5bp~JGy_~V=f9O&*>=4$G%(myP{>v4c!f2E%E-mPvEO1$qmiAd8}Or7<47_6LV{n>xgQv zEdkB`FZJHFbKooe-nFTmJ8ak86iPL z@Ho%g!?X&|3LkUt2Yr~Ch(4tVhdv5<={tfeM7QzBa$D1K6XDP&vK#WcS*`T#^Cp>N z6UQbjZu4`BIWDm<@f`WD`?5o`Kl>f)LyNzo{5sH_8@?QV5YuOxyMnud2!}ogdGIjI zcKm_QGr7U|Ai_!SXl^6V2_9Dd+wU{q^hV!&ghO}tbzkD%pZH77yu{H7i*x^XXihM5 z6LS+M+3%3N85+o4NZMXs{I-Kc)wJ)_f!2?#xp;O;;x&`O;zCi z0EJ1%Un88xr?N%!_fCC-*FQhLm6CTlpPZmA@vG(5>Hhg)eTrA}IR}umm*boM{f6JW z)@+<1ALaS_E_}5_y(@3QS4+}w;^l^hUDYz>hR%eq=8_w-{W<-uFOR3LW_|omT0ak{ zX9@HCDvztj%rFaMy6*pKW$uRV)(2X#I`AuVR*WZ+4k|aV$9QYAA~-3yfcP$aTho{G zI{U_WJG6(sZdS&4KI`|FnuT%v0(#F6%)A(H&unCz$%(^vu=@ieW4x0&A~+!!5aV4C zbp4@uKaStc{E`0oz!>jgJ~WxZmodH@tDA?IU&VMKl0HY6Z^d{oZX=s+I>qVtW<6xG z`9+NPHNWP@gYr0hfA&xAGKa2}WK%Jfp>Dvs`4Y%bG-guULCkABcH<%Y)m zuw}{(oef_N)w^Qr|EkLR-}Xf6r(M6xV#NDrt7jvy^dz-Ey3fb%mu1`XsffKG9=BsZpV=|%7C9cz6Rz>V*m6f_*%0}aE*{SluKBxdUyv^lE@Rgh zd7g0fcYh{6X@NU=gYLq4UTbJJefV>9tsZ8YZs7T*7^w6t##`C-g`61AwDdo~ zfBuUKpJiI}%O!n>Cy`)kWBwM?vn~F0jJLM<;yApdn>(ASF`mQfMkjMvjOSW>J2(>& zo|lib!hqlw;jACDCU?r&PkGAXqIX0(aewp681Kpnhr`U;ID8Lgw5!d<@T2xv`h@0k zULt%k*M!-~UMzu!#NB7u!Q)e!HZ=d`vohfhpw2Z)h|$4v;;6taA(Z zAb&w>TmCbiEBZyG@qIwF>+zGnUvo{RdzxPUXVp(q$t3CDK_UJtfjjB7G#% zK_a~)(lsLeBGM^x1|Z!bI)ACNXwsvgH5{F%)){J@o7P&U^eal|n)Iwmx0>{+tpcuI z!27_*JnU0}Ujyxd(SYt$)IEy2J5l>Nx^qeQEa}Xy?pK%$=pF^#ouK;?bVq{jMbKF; z>7&(|EuGW)(Z0sK%KN_ooK?&-IvI05em(eRItP+i${r7(GafqEp|c!1zo9c5I;XJ} z(0Pn^@YA`ASHX3@LT4&;jzVWAbY4PdBy=v~5o~+@f&ACLh;*PmQox*%;<^qy#4Z{` z-nAz#?vL7X3lh!y9l-NITj1X5#(ao<>}>J?*dNdy;03^qz!spK_#aPld%Wvs@veNw z!?8b{Y0MhzH?S9DZ_Y!fB=8=v1&}P)pQiHuhr$bR7Vt12T@JdZUU$>$K6>3je880@0QE=04@P?d6y5cZ#s?rXW*4V#(YYc0$>5O^8xAX z+HC;e50KpAM>)ov1n4f>kt2C0;DSAkc>()-z&p4D;wMS#?aoeyX+=k4e$~a8zhj?< zeIxcLzUwu(AH+Qxy901AelLOB{y#}!B$f#Kly0h^(}&9{F#*O=0wyeBYp7_u3_3_!9rIlv;I zPrfnR_;yqHc60gOo3Xo-%jdKs4tNpxNu<>}hc<2$WezxgPwEDC$Km8D?t>` zhhcwBy2J4A41NIiFYxO*n(~PIBivt&;Co=V2H#8=}Oy1SD%Jd2`8_>)eTC%Oy`PnNyuRku167$8~m4a^aE%m;9+@P9+B}SyRcEN(NkV z-&*^UyqaXxB$p;xG|8Jv=38=TbF*Qq``lY0NJ>idK1DDP4G zaB+BXn2Mhlo)?y%MBcun`#=*$`|}Y_dYNVjE9TNy%18owHa?jihn{2a3+*Mkjh}DV z8zLM!`otK|+-c*BKh6UN{enyzUU(s^lR0jb9>po-S+MEm*ihgly*bg?VaJTv2lm-9{iau1I8t{ z_12n|F}IbxYt+umy#=@0Ho3Rs9!0y5z+Kq3BB`;A+@IjDwo2~g!gtL|#z@wG{=2pw z%RLE9ddb6ZM?!%;IA=>^~bF?K>qjOR{tUQ6S%#uls9o}T&M6)toc?_V+Msuo;*Hj z>;K8BFV3{5`~<38)V^Pstqh#NZT)Y@de-;M>2tu>ik@#CHNP_#3Af=pqYw1w<~iY$ zMeoXr6?2rseEjZ6`}GJu6WylQ(`@6uuWRD)MYIYxnj5D-!%PS!1rZMY zQ1U3lJnZP;N80u&!bz{hOb(_6swX8p<5BYcDZsCF3?bk41SSGCg;8Bo+`8xrw=aC; z01EHp{S@~D5w0|Dg?{_f%kyVBAyk$M*8lqJYO|(T=GNGuyp~qox>Q)JZ_B#RQ}(@tv*+6 z!k4%;e~|x{C&nl9JG!{TM~zE<71fvffB46&KSyV~b_!mrZ{;Sttm^?Phll$?%C*t!t+!`M#?)$jax1Ch7X2^)4 z!-ozZvbwx<n7EM0TVqE#zatXg?YDZ%EiSyZyTbpDzZt5&UD z=8*ECi_DxUlMmW&{B`c@h3T}D&6;Ja z$`yXk%J3&whToC8&@5V3Qci?%l@S(JM%aP4#w=OBswCpbvV732IfuhZRlgieV zEnHq&eSoq`dXv1};*zx`P4!}>CzY;T+hp0ayyVnURk|j5%@rkOE1N2y7RLiNWB{bGeodIi0 zPieAG-{d@&m#$pgbQN*UTAI?GDL-nkT*JJqWX-asNojf6nw`r3N}i&Eva<;;DO(rv3>V|Ept9I4Yn!jyx^1oU`oW&W;2+tFK2)}8pJr}SX zDO~H}Uq4idOFr1{9~|!J1Ti0rKF8tOKRo2#%J4c*WX}sn=}Eu9s^2;J-d4Evy#1cm z&O$NI3)y-&+#DC<3FKern)WfCVdn4~7UQkhZ)34I#xu=qev7wgKOp3Na!nV05l;FY zxV`L>p!E~b4-3J&n;)>hXK@?87a9q=nc0s*Z>9JHt^BXWjlvH%X9ed6y&kjagO4&B zgYSEs@MG8k>1xh*bnv~|o#^3l!cXP=>jS}e9`WfP2nXGb#Y3e(+uR!bB>0s4ar__2 zrb?lSaOexnYr)&Wz$ZO@5gN~mOoT&UV%`lt3~tf;S$@mRy5J0t!_RUnuiTdJ@91mH zGr_AtghM~gp64znKi%`sF+KT3IO%UN4+dL<-L`uAx9oZF2#0=&c{JD-+!w$9MkGc% znh1w}xmg~p2{y*@ze^77Z6X}{Rpyw)qQumgKhAC?KK3~LU4um1bkj%Q$G+cn=3j{* zBf_C?;{4VDX1?;*(r+?t9K*J^U<;aKe`cqp0H#sl2vQ`b&esi7^R_+xDU? z7{__U@5Sk#5KQ1iV1yHXMKC!rJ<%$D-s)gnVv@&6e@!qR+04UKUoyn+$-x-f5R2RL zdwS3zv0GxT``*wif)QqfiEz?CKe#pgZTLxCpDqeUvY%>k%kOuBt(?cdEw0a32E%E? zBAobF2UmqRhnL6o;daD>MwxJ@77=lJG@`H_6qtF!L;y@Fv6if9SlOh^Y!uf{e3W)Jzt9l%I{Z#((uIawV1!x zgFV>ajd1911+&6M;RuyC+g`sH3`H8&;x_+249*BI2v2n7gXet`3^T(_gcJYo!G`dA z;qxl*w*34f_>tLcEN;K=KLhEf{CoWVLD-x9?Fc7+cKB~T+_UlfwFwsm#|IJ4^K!!u z^f^z)?LoWnGxSkd+?MzJQ2H{l)OGJ@R-F4u50ABZ88kkIO&sy~8fS?j9$-DWUH7T^Y9*GZ5Oz^ElyWhDE`E z;L$k!Iid7#L^$+$;n!$zI5zH&jtzCbCc>dF3Lis%#?>)>Y1oz>`v`}ALf9_o6wHmw z@9I$Zdqg<&bz!%#SNLjNzfTV{!?q5$-{+jL4>F0L==W_Cmw>>bU-26W(hcak!0teW>$8;dRmZn=PEbp*)21Tbnb zU)vdZTgt!o>9v2ZeRJstJ+8}+@&UEcw4d(dEoJbv5=hl`RuiqZH0w)C4VTJCW-nw2 z2O)=t{W*4RwA3`x^*Gg+mM%|`8m~55YPg!*weemXEj7KyzE^4*-_3E~+1viv2hv8Q zx_umPdz!bs|DLo>scuhKdVTh+EQ9H~@fsVhCS83hpZ=M3g-Lz3=Uw$>IiNJszx7=F zj*Z@@vEh}jk1Ka756Y*8;{N;XM%$*d_33zOdi8Oq@+N+K-LJ_%HO=byZ$+Ewc~ai? zqm4^1zx_HjE=+p5o=5);^{n)7==HPtc1+*8rf~k<7L!h@+do(S6T4UP?s3nDw|!i1 zd;j!0(;68d@uhUWK%OrhPkruhjx-J}EU!I-Z_CsbSM;o^PMO;`2@9H2(^C zxzEpW{|9)GzWy=bIiRueQr|z-?bFlqQ{A5T56L^_Utjvh+WfqXS!$j%#xIqJ^!g$m zy`Sere*QT%`DJB0-evpreZE(x>mao}*F^W})Ma~~()<7Pw!6OJ{PR@TYARE;(Q1m* zRQ~>3cs@O@_w(+HXkRY_beDWh{^{{+!u@w#&v?^^N%iyjDnEts?^$2}^l<6V@ag$? zs}J3l$Edz}w>fb_@?P4j3`4%)*4Y!ehvU{6vjpzxxX&Bm{1@PUso41!{ z`!PR1o%FK081TTR{{+v=GQ!<`;y)7oDdFyX|F?*rPx|?UF66f$#+mW(8yDl5cD-o= z>E+w!WwBb&-*k-eq{Tl`cuUW=_-Qe{HM7k@=4WwwZQ#C-nIF@0;C_I47XI>I5Fem?%3-@mTF zgvm}Od<^$xI%AyxIMe@9250*@>;D)lqem$BIPd=wdH}MSlW@S%>H9iI6t z&-od)`nwBxMTUX6Qvdl!BK?v*{AdlPP*xl@??alamw!{>1SGfFdg%J}5a$u7)- zk_pL!r#bgMmtK-wAH^MT(uAbWrcfQtmaE^+(m6+^S&Vm&bV`0G59 z_^-fy9rG5sufqMy{?2_5?#!{#vyiXXxmJbQj=#)fW?$&)7}buLxzLfji8 z-p1k9`6T(z!o7d=F0&TAYtOXGzj)0hNu9q^`WpzNvw3oF!maaHa^H{p>L}ly!+l@G z^ZU5}8u4aMnUK_3PNmrex6X*lJsfvY^e%ZrUGj~S5ES#5=XAAg-amfM^; zAvt-7i`xbFol(8GpSDHkW%b-*{B_>ZmQ~z3qpY~AaqHZh{5RnK%C{%D!$Vz|`*G{+ zo5DPYTW1jEejm5=`O9t2nvgs<;&bC+tCI5;xVQuGzcy+&zNGFKMejHZf1M3i+-10R z7FX^H+>b>3Cnuei)LB6Bc^m#ZH!k-U+&Y6T_jcSmLoW9d)VuehI=G28N@qxwX5QHo zk`>W+8Gu{ojupNbx6Ta8eFW~g5f7_z>)f{dH{kBIn@eXCZk>gc|NXd&dprN!;YHCy@K)yEri;f3pGk-e^8obxWHIzCyT7(p`18V(wtu`b#&!CytI2uE zwI>PI55|GbkTgB_UR2jcS2G+74$uByZ+nBe@10>0sjAr z%JVGFrs$ly!fe1lXdRUk+&a&zvUfjjogXMqe_>L(1{C*8{B;J}meunn zBz3-3{sVCD)xr4}I?Fw<99o2<#xVuDQX5rTPY&~}w z?rVBGcLnbIqI|dtcgT0)&)kE1_r2Y-HqfT&T)*PJiNDU?%l##8=`avKc^5E#IKjCG z;Ff*>`4{7s-UGRhz^(JZa<9fcHOlAVoFyvud7?1Uv+lvYFv`Q#@E|=1dhT}ob+%aP ze1cnNq~%UtI3cMs`*IiJemZ)uak$Y&Zv880-&RmYTTusFF{anvE1JC+DUPYW|F`#R zs@??Vu$Nu^6Q(+>vRTN^aUrAWLQ@9ZithxV9JrfMU4c<>^D;I1P~alqG2Y=|;C$d= zzW1@f4;k%Bdr2=~F>nLn#sDjUJE`ruVelwm58yK38ESk1&>JWPZX}Hy{CfiPfos_P zZV&VUmH;;)9njUxgqKWx{6{_At6IFX>`Rfa`d_2|zh;H@TDv3@@3wr6VM+h18${d90RNb?xfYq1O@|_1Nvq;Jh3M*AGn5hm;{^* z{EXe*uB1DPUC5Wo8{MbY2Ur5!M2h)9FJLin1Ad1B7Xgov-^T(!G*=RTBk?aI{$aRh z;XV|1!2f`-0b#S)BhTU_Xcqh93EnlqyC!&7>3+!Md6_&fljr5}ygZ(l$Mf=d-Wt+d zMS81AZ#3>qIL!oWgB(F7BguAr+jhKtJHBl@`)v<^xAnk7w$-O z-XXvRz*eLKy7DC5Q~NUCHXrB(EC%#_SbHR$Y|_aloov!6BzzI!iwK_qM;YW-2Kl9% z_!8t=f)EL_5V)SXcqgDgPzI<>O#sS)yP=N-Rs%nA^&kCwJkA;`pOZ5F?>8Iyoe0-{ zV7C-p`-PgrdAj!dG*9%n_RBWYmU&!dS7#Ufd}6gZ#p-Zzc!n9um(qDmhi96}$Y)5m zi^G#}J;~~Mad>NTpo`V{;_zI?6N9b(7l-Ggy<~;eXS0qp)c4-BXU(?OHbuWr&trTn z_lvmS1g4Vb`;q5K@-RsrCdtE5Lr)0Y!t)D&-asjEBVTqJa3=5o zr8OVu1uO<`V3nj3&>tuRZe^6%9_Rxs0d9h)2|ziZvULb>0kD+ifnLC3K;`cMU_I~<`7|52IF|1t`^m>Fvu-=}^-0$rs6M~J;G;m@JVxX9 zizu80%ol`99zuEx3yj0HKB)0rK?jFxexR{c@QCnMrZCtyi10kMZW`a~EH?EO+^w%g zIN|ds!<((Xlfb6mo|eDFL~-w2!nq`I$-{C|v{>Q?(R5ts=q1r)Ek zbgT2zbHr1?`v=td4DP_bbhemxx5%GEvuQ#~HX?=;;&peY!ef=o`Fp|fy^*0(1sQ#C( zEnB%{l^M2j(ZXRI`dYWVv=U#lc2#)_T2{7l&DzDKOV*@@9#+RuC zwpli#vF~la)nSd~d(QMd8=u*YFCfb2MwG2N(?>P(Jxe)HTSAlF$mlkY8yWYMagBRf zUy*jUNHr?HEf~=|0tf*aVK0>+hye^s z5u8M1Dk>ss6wru>aa0jSsiFiYZfI?#&QwvUqM}yCsx{8iVZ~8PtCj!jeeU2P1_TQ< zzyH@Ke0bl_S@(0#{G7c8omg{l;zz;%8a?>ALw*0^wO=IQ;|zPy1Ao=%jAq^+KN|iH zbnk%A5U>3$I=fl&iPwIcfR7&!|2O7qDuVbs5&m=TTWpS?djCoA|6mV`&V81D@kj6% z@bRheb!7rMzI}Uo(wCcyBR-EF^_50*?!J8odf8W)Ueq5x-;rMWh30e8+vg9Y2S3lWjqE$o zlfS@t5#O2K{e06P;=4HhrO1C*YVUK+6%n7$NWnSg*Ad^%@mhP6*+uc$-CWDxzXycx z@8S42Bfh8O?~3?dj$aV*y_w-yVl*f3%io7NnHx+=#Iv`GKh1Ia_Wc-1xY6irzRa0= ze}6_2ZgJ;s`t}28U2Zl{$-cYn4|4YN#JluA*zqeO{t(9xqQ3I&2htm7%q-#yXbn~v z%@6wagJ>;oGUr70htfLSYP6=tw;xPvcb$1E;)l@MEHjVNKKS;BaogQH=9q{d$_T<6 z<|6TrNZ!NECjQr1o=j)oW_86-(+mtcbVQ1e+sdCxA|vO|D5XVKa29~O!EbQZ$$iQjvo=# zN2i;w`I{W^XPAHT*FEBAIs5w~|7V)d_`5OUXPdwC7mM7VMeF~iSsd|mX#KaEfwcer z_nhtS`@J&a&tW%Nx}6*G=#ucqM0|R9G|QDafb5u`RuOykMY`%V*SQwDbBHvU?Rv8`xN61 zoMF7IQ;j#~G{(lyzq3Fg;8EitxxPWUyXa+yT9Rn5Y3 zDf_DBGCccQ`2*bw{_gzRpHw=Mw>5j_g474 z)`Ohx?y#_K{Idl!O>5kJ7PgK2=Tbx7?(Vkm-M6Q={f4{e!k#Sq&dfADwLlXOm)pC62FIQ4-9YztN!Z~)xxFT8)x+fWTEIITB)4}$y}U7H zk@8HDr1fv&?)s~5O@?^2@9Shgs31;p#a(7JULZcIFKB4R>lfA+;?@3tfc~fPxKy4M z-k%6BbF{)!&nd$cVxQSYd=h#_mdO-9MSL=E%QR1l_rz<318unYxOlBNZD5v(KV5un z*W#Bee8zWDS?!?nNjgR0rMmF6FGTf|Zu{-WdLiAH=JV;SYPrVUo#yiytd_aR-J|C7 zO&F0m&fTfz^Es@VJ;U9v#`r}>Dr+uuKGv-+Jdf~OFuK0M-M!}9w_+_<(~!qLm(ig6 z+`Vkr!?!UfabAq>Y2*A7!aD#Lx$e$3-+w#a&@AL}-=5VkkGT8X>KJVn| z#k$Yt?yfgK{65^DGSTYpH$S|7^aNYEd*FQg0cc-Ct?q^M?GL6lZ|Uxc^X&(6Uf0=H zcgFelgIG<{+TBIP&P3jSsM8O1FO|;^W|c`V`q1o2WWva6Op0gGcdpO+md4?_7S^~} z_IQy-(q+_FP<~T?OV1+hdytvtebkP~U1A#&o+Ti&>drI>+nOIj=@|+mM9Clu{f!~s z!u`RC<3#eaE4$EtRSe$~;j?;rQV@7xtj+|G@nVy4Q1i`S0NF`Gk+k{{UxS z5T~ieU9LGU;1QM5n`N}mv;J2FaiWLv*Vt%JlIC}C#!957QGFpksxR0NEMC8`z7Vha z;(}bizG%*~>Wgf`S9xxZZ`B8zap?0&jxURNzrI*2K1c5T`@mm_{A<-^BcuJ5zJIMC zZDigrVzh3ddh_CD1*KZZtr@8XoC*sqM%3ophKHaXKWme06 zl;o>#;{0h}n;(9LtKW2Qi_d4e`eZ@GXSwp477y(kP-C<)Z%6hGU41blvTx+ZPxHiE zy{|Df3U!L&XRi1ru6{gR_9^1C8C`8>zKp`tTJv19qN&owVBd_{q~pwUxcB)M<~3Vs zTQv*$IQy?&u^;5ZUn=+QSUvYg^Ihb=6SIfwOs?!*cwJ0wuf8`h;`2>&udVmzC_Gm4 zbK=uok^kQ23VVkol8qg%@cVI|;bpcsCk*c(b3Eq>-V=p)sJV;t6}LJ0J=`B|x_XCt z0iU7SAi_G^{gM4-`ezO8 zl88UWRMLO_jdQQ?W||AUWnRGZzSEg8>2Bsa_p+a5j`2?O0v`L>%&&DdL)`ay@N?L= z(L3aEe~xLN+%0*1^u7{KygSxzaNjTY=P_TNZvr0o=bJOUd0x3M5B3)^+TP9GS*H5E zIqNrX^tvTo=HgraFL(2o0gwHaCMEfR%pw%GR+2T!)Li~J zYYx~HVjblZth-F5?aESHMLYEy#(Ps~zj`pvo5~n(7W?xXWSGT#kJ_X}Qk`BMscuvs zNOh>%Hr1Wt!?sR!t=b&XUtc33j z&y@-7!?A?KF$l?BbqpeOzcUQuwkqyxJs^}PajZr1hw&Q96S}*Kcn!@$40VTH-oCXH zJwSJQ^S*eBk^bM*-SJ&N*FWz=?Qd=y*%!pgmaGnLYzhM2*9X{{*4DRY7=U)Gf#2Te znz;C=y=S|ic>P>^|G3Yqz2Ct5$%okc?fpu^%lu6Nyyx0W-K*yFe*fTI@sG zS-7_@J{z*XWQ5ry9{parmgYwTp765GLc7@N%n0=#8j_ZA{sJER=JZD1GVR+t|L`pt z?|dZWaUXa3#!B}-5Bs)ex}9Sk@7|Z^^n-u;@5jC)^SQ^_fX9C)e6%%Le)#a6UH`%H zp2F)wf9QFmb2xnYdO3Z@@sG>?Al6HLZVry*JB0ffN85lWJnhD8Z61r>e<+#H(U+VXFoV+K{`ULGyuH-+F7#U!^V_AQnO3u%wjmf4xX{z}<+LH!qcbF^8rv1pK z?Py9HV#wvksGXr*$)>Hzrj5y_U8+x;^Mv|FspehYAGR$jYbx`Jr1BWrhp6^M@J3NOjw`pj1SHCb$uDWXLscZzjFxbItn@#ngWI9=McZ8(B;r|P*|7F znHXJbu~#}gcBVMxS zBbh(qCE-;WyU4+b^M6r$-Hyf}_=Wv*v1+ex?cmpkYTc(YpY~=)c;`Mwe`%EWh3t*| z*E3z{Z)J(6eb;Eg06X03ycs)Me3rS_K57SvclHg<7;l1SBlnGQG1sx-*buqz&V1mjX0Y7mfj)S2Eq@j6a{{^?xrLQiKw`SDX^j`hy-8n6)AkKb|TBF^V7jpP|` z{_g$5`zCtdG3EfTlh-Nw{)x2TXW0=Ef0DV`-eq@748QFD#bYePQ7o$2pkJs)D#{zhmXVi;c7E~vdz|LJ_b zCwy=CJcBr!t$0hYPkavT!!W~n%#aV;(h$RUen{FS@xH3&q5sf+DQO~^LfJ$7p>LFo z>a$gSUsdy}@7vWH1f6-N@xNrF8TSSz;4{Qa|KCXdt511Ifp3J4>GFMD6#|Ex1S?@ysVQFtlv(!W!TPBf@*21UG92W1(Z zgXY_7M`S(IHnR8i{g040^C|hS?ey<&B0lDLoo8d+`|6-^7McqQPx^EUU$61*fX9D5 zR^xqa&R6++O7=P(saeQlpJg6oujn%0KYU{|pYf=G$9+?$4`1v1$G$l?2F$Vnk9|w0 z&z|h$@vv{jYJ!(cz+)fBM{|><@LhbhWprbqnH$O9&Maa)YI)?pv-uM%=mH-9J)J(U z^KUf1qcclJ+bK5SvG2_KW3B;@y-rzZ zU{?74;T!Y)4MU#rTClqCT9fAc$G(-TF9II>TzaRq?8%Y6PVH%I0v`JV&<{TI^ShJ3 z-S+(M`1aHX%!fTuoBW+(=JMTPzTVxuTs3d*DxdAjF3fXPG0aoT5#2NTXz@H-kdhS1EFG&&5mm~nCc6olEhdl-HsgTbSiFPROl!rv+22*O81?(#9@Hs}QP#z){4a6#1#w>Q zN>ErIh>z+6=JUks=h}P9vv}19V@U+!65g*5-XJ`ce`ULV@~xUCcUA3%Oev!%}7!~em|S1tAeJ|msc$2fmoBlm;M zFYQxy8|97q8vDUc-w1g8A7+mCW_ews_aAOtu41LT>MME(PlRDSpkp#F;0Jb!TFaw6P*4M@VK97mUs_(pStkm|0MIZ zmzEUpxIfwHV>+Xk_62^58&3>)+)p!Wysx~QBY9?Uqts+uCz5xjX>G^ZHBtPYZr0h? ztc~R5WTvFnNdZszvz`9r=Cf!Y(%C~0=|{A0>C}o&KYBv*PL#BK=|_wi=A$p=qbC`a zAjT6rGoF~n_+fW+s8rgP{Fpfz88xpYT`5G3392m1ENpi|T}tL^3)Hueeo@`Lkj!)@ zR_HG5bA-I?!gfsICiZVaon`><848Voj)y{BMt6i%wF|=t+o);8>se69x8)l(&lK_@ zR`plaJbY(}q5BZ`bsMYn2>YW#-PaMmJCrHJuszNuO{Qm0tNjsmc?nnnmVpgD+F{o%4sdLwYmEd}r(?)FquY=zVt^>D%Wne64TJ1Sh1leFiFb`ZsczwZA>o!4_1Pkz^&kBa5?YU3ciE;Skq~>GceB%Fb|xE zeP1w+c_9dx34#4|a5CRh0#;yN2BzVD8CU|Y0^5RX!F7bc9()LQo4`EGH-ih|w}LVF zSTo-~8(amS2Ts7gFDSVR!9s8XSPD)D6;27LaLT}C@XNrp#KS63?$&}^!1drfa1&U8 zJe$Fp@LR#vdVh1`6+RpM8<+WLTk{&Im=(-<`L+((0b^1%=^5+?9+?%Z(lYW*~j*(d5zJs*9kNKF)vl= zR{&PPj|P>F#h}t}7N~eH1r_g$L8V`LV80qv`c;5Rzm1^MuM$-HZ2?O`^SB>Q2B>h% ziQmPPZW&-HY#da&<%3Gs0#NBU8mu5*i$SH|EKu=T3M%~;gG#@0Q0ccC+=%-MQ0cc3 zRQgqdO1~|j($7r%E~fO$05b?L4pw5H4=Vo_fGRJeL6w(cP~SBxz*11_DGv#kD?7d+K#sq7|T7D`NiYy3HC(REf#Zk-6VT5E$$RXb*Hh@b0FGZBXm6N z8$ZM}=j`{E+-DcJxwbXu$hWlzuzR9CH`aAymqicTle6Y~v;L&7?PvSj0d|HR#EQki zjA9%{KjLskD~6%}j6k<8LLVQ6b}@#2$dTqKwDF@kuWJH(-HxT_aXhPjPDGa|Mt_)u z&M+B0VJf;o3$%|@ICpI(>vB$KUFa-&H?wKe&t;7KJbFZ}OdNe;J|iM+Y4_XFw&&3= z=!lNqiJ8(aj5g<^v2~}<(vx0dZ|#&r-yeX^S71t6TXPM)j%!&{Gmo-#HY-!-&?~#1 z{n5)fwW9j6^#;3vH!!7oUCngyZalvp`f@9?Fyb?qtsQLBBllT+Zznq{ zvS)^v6jFOFU88E95}Jp&Gy6onMB}|b{eFsppJHI=G2q(&pnZ?ZfA1>ge}d1e{I6tO z#V`LJb>gY!EAg(pC)3)LninEIg*N31GdXgv@%KFQL1eGygR_`eeauKcG} zY5(h1DgQzJ;Pn5|VfobQK0VEXh}Y@;W6e16&V5~Ur*sH^_)%^!=R8? z|62YNQSN^F{S*WL*J7aB_J8!w%fId@^2@Jo_~~T4h_6jgYLd}iExtaW8w*}DPepth zrzJmZUWxd6oXGr)`DMgsu)ltT(H$zjf7T+{`(r!OJWU8R3GSc^h?aGk^2_( zT$h-Ek^4BkrF)I;Ir9Ctrr-0q8?Vs5a-BJ*zC!r?CE=<*5U)BUG!NZ`7}_mYxC#Cf zpA}XjA3l#u@biBypZ)Z`H8Td>c^_{5nJ?dL*B-0<>okuX(=Xy{GdeNGyf!i{Pj#5@ zy~|u4*{8EQCg0Q&KSusD89kY6j*aXaGWxO1m90M$#y=sIrSQ2u?h^T(Jy&&CGh_89 zseX!q|2Ja5mH$yy+WP@MFMYq=Sk?*z`oHGm-Tgnocwlt@Pryg_{{-iUMECy$_R;-6 zE8H@A?pV$`-shzO=)Pk+R(vhibG0+N=hZs*x)`7VWs z`V#-ie--cFcdb77?=bs4R0(Z{cGs*gVSj`BpMF2Zz)vx-cVfVm|8Z5y|9#ubf0OZH z`A(+%=bCR+-kp7ndCZZfGUC(F_qixY<=>U}bXWc#lfA1iGTr%k-JY0 z^yXKZX%XLo^X8xO>yP_Xf3$S#qf}SCPMBf+@k6}oj309IL-s$_IeRCs{S->gi-Bs} z|Ag{isq*M}%lhCP^P=ND%A@DXqvOYG{62~P|ABt_zfXL!TR-gDf9Jmz`wn8REULVT zernHaUVivVqW@blP;L27(Es0MQJpHAMa?sZe^ zIp&s#&qZ4(PH4|tNA39}+=T7<={%ngErOOnswZ}3AGYtia`QuB>~8!1=F>e6mNJu< z!rm2#$Nl*u4XXe7a!rYsA(QTNWVztJ_|dJ~`LDDZD_^deGv7w0n)D0et3w-B#OnUL z{hW?fqJpM0`1x|xX)}sEKa~wQxz3!0?)&aH$d&(KeUDyKwf{f%7#BZrzyE)jc|iQ7 z2EGm}CNDN+5nrEmqrXe24-)$SSM1pTPb{nF;=gM7+?iQbec_|^JzaTBVU3U04FUX^ z!27R%J1aq%txaxn?k)=g?|$m`_D-%|$kdXJP=59gcS!v=!tGS9Fwi&;vC@#Mf-^6U zIk^r-lyv4USw_WgzsMCzQV@&BlF8mX{QiA$7bjO+WV#XZ<4Zfx{@dRV##hxB*h3Rc zem^wT$@L&I>0TK>rnC!i&wr)Wc=6-^dlnfBGcvqnT?@aHU;kIKkZWRIKV<5g>F*Qt zcLDCi!!C?n`A=By>&m}t@BJCT&yS_NyYW5s|J#`~HedRDjPbv*W|Hik`!rTcpY50b zRF!wX|36&r-S~Z`IfT{Tzmj{`A85pB`X8G?k^da?XH(yHh{A8deOUwS1(AI&qXDm& zcH)idp95G`eVJJnh1Y@6$J@;BBfc}UlTRj$KX$2B->6#mROPGFFRHrP*L=15Nx=?@ zTDSxELrm%7A+fTI)ZDVzp&4FoX~v)(J)AzEgUk1H_sj>m+PACI3vS!dQB^LXP_vBU z2Y+Occ;u*{^|08I^3quDutSH%2E}q0W*izDRF;u@-H_JT49Ut3Yl5+V&UbP(Yt1=M z?G5YXYq17RyV`g5+b&en&YT41rN$KefD_-kwBV9ql5auAHHE{yrEQm@t9~N6+RQu$ znRH$Y;_*AvcVEr_HZZHG#_qo~$}hjxoP{XCse3xz1fk z{JHXf?Dn*X9Z&f>PCUCHiQhFUkFI{GgLZ#n)PJwQd?Qo|{RIm5{(QyrcTkmI>DY0% zj_q)VpOUNRbVIKAkQQBx+kemLX#5d*)&9cR+C>V+b~Ej&4c{5Yj~af5Y3cI)$ul48 zYK->z_Ge5(`!K)%EA@@azi;DAv~cmq{>qE*xbL2Orr&e>FOIsqsUOIs*A67Uro=}f zllEWvfmhdhl=>dZeb{&Z`{nAXJJdeTnEEm@X`hELQNwCpTk4yYS7WtzjaD}%yxD(L zd92fBF*2<=+?ZdmPEGfLRrx6ztIbr~YmF*Ceu&+A;VW-fzW2aikC`#<)N!4k>@#iE zuYdK%X;=Jf)ZHh(ll5rqxfi9c&OGTcWU488p)3Ecy!#(l^Yp^0wqIe*(hCP0$E zvu7jMFQNJ_>T-9?9i?JR{mSdtGrS!w_crI}*oMz&d}4uFk4*oqURYXN)!YN$UbODwl_JR|1iW@M}^$crzGqi|IH zZJyH|xz4qNkSnuM*zfS;vZ~vi@p~-S_X8SIwXwLx^*iR+`N*aFD%w#^rMlBszVG>a zCIvf~kP~+Ot6Ki=Q~Q6l+W$JdH7V+wZ@~Ob=p!g>>p$oDTd4L4yLd-JbnYv?FlB@C z{dyBawW&#ZVf;Vv;NR7W2mfD*RGjT&&2BN)FBSS zLcLQrvZx%|8@XnjJPWz@*Ld`hjK0WLw%EiwntG)N-aUj-<*L6mnacOWM%{y4ukP;0 zR1M^Z_^J*254p$QAHP3rGUBVY2XCjE$wSmW(r-Kx z{eE0nubvcn2_JU-iJ_~#fPd(GfI=y}JIBd&7&2*nwx936A7A@TE@a9eduPAc#>sUm zGHIP>UH8c?-T#UI?N_;KeeK;7l*fyaN$cJG`1*ctb^pp`ibJ{nicDIEGD9e$9^B=gICq-`J#be$VA6!@K#u zIQOw#X450Sqj}K2V>?IgdvZ@#SMTeHKg5jl7I=kG_=V(;er9IGk2S^AM}HCT!att* z!X!H}3V*6Oh?ApQNA72ttL@$PvB>@T+%NX6Jt%U&(DdTIf)#qdi^Ho-nRlx>u#D&N5Y`hb(AA}X`^{kY&`F47 z^Y8y$`Jbfx?f+U#Cciu0@BeR8d2#LiKI{KiD_1Db-p9POwhz~H?a=M$ACDJ@_3F?n zuiBrreZ}c|d6^&Meej(G0p;k?7u;*VB+(UO6tX67>SZu}sR z^@=@qd%oa*RS$nZW~w)7j`4&E?OeVuoPkb#igqySS0#TXJH!33@1Rjl+3`f2H>(eI!I(2cd8yB#2SeSt9*!Q;LHSNbSnG954{+^;}|mhjt=OR(5C zkEIGWjIVrT8g+IUU->({aX-st7JA0K-9qD-oc)YU&ztx z72)!39@(oQ|PZZF;_+IYg4{cojx!dv$@bh zNaarFYzgHg}t=`tPr8R8q6-myC zLw~Gio{soj)>U^jg$i$`!fVfYWc|#CQFxs>yM3C;lKl~~@4@NmL(E%||6a^W<(p>W z-Ts3a9Enquzf{F*w<_dl5XHc#-ri`*Y> zKC!L6YoqXvFblkgymgWNDDx)w&HOF$KN?-Hma7N*;pZ9D_ryCCrXRvRTbQe!JcKZW zA-^;CD{;35lHc$-^j92&Rh{3^O?7v8%6)ZvGG)Fq_hEP;b{Ooh72nVoeU`Q1S~s47 z|GN+K&vFR)!%@N$?Qa_D^Ex9Y(T)7R8N`X<=dYJD=FoZje!ZOD7yWi~AH~m+t0wKE zSoNh}Pkf48uKXvg|7}2D*U#Tc^zZY{Cgp!uUg}WZ?p9eg$ve+gU%ATnau43pI@L1Q zz}w}r_snurZn`k$i^3aN}s! zxv$4;+G8P4ebT^<7c`9AH#ARhgGrr;Z_G}d`KE2e=P>#(+dLM%uQ{`WH=4H`FZpxL zh3p6nc*1YT{3(m$@bAmp-e`TJtIyo|LV2z}Q{N=)pVVRyP|sTl^BcAmi&q^dv+#^@ zog=KX#j7)uTaoI*s$t0N6~e8~Uv*};(T0An4kf*Q;J3s2iH4;$a~;eS0xoYD2iN+W0z4a5W{JZgcKPPEC+27Br+Xb7NW)Yvv_+&ftgv#G3st;030s3>N z$i6nEzn-~A_HI9Ls>wrRNQvz0a$CS5=J%0(J@oY@e))6mx#y5S<$aZnsu-5Ls&;=O zynjPg%SJ}6?dvCAA-?w2`UyYQcI*FZj49|Om*F^5p9QRyJ0=__-`;-=LW>8uuK~HZ z#}*3ZT8>=Wx9!g;bgBCOcvXXa#5=jnrgQC8`TqRle~?T2Qr{QMt!l9E__i+S zFusny*w>@?qX5-@nirUca{Usyw4cW}uRgw9`9D?V+5c(Y#xK9MIIm}}*(~0z_enPw z&|<$C@fqxo9bujm@9Kj_XbXMJV)1VLu%-DWH;lRV)vYIL<;r*19;#1}#av7aC@kwT z(_Nr<5ypei!_bpZqJ5(OF%6lcgA(n-K1bCss@4zT_vY~s#@A^J_k8_C7|veDN4CrL zJaTEBB~>Fo{}hUZ_wDCww|)IYyGv@;I)#R(`u((p$W;^9DSUujHEo?j)$;!g)kM|` zzdq3U-yc#w{raG`>A;B#FGhSS>j&Dq`BdLNi_-ravqtu=ztE8J?Z)QGh;Kx_onn@V zcj4!lM@^1)hX_GKpw#~H%%9Tal|KuAle@xoYD2iKEK)-};FmtUIVre_c94WAyzt zKA#~zo4@6hHQH%skC8uKh&~|ubpG7^py==7>+yFAYZ@}Y_F~MH< z12{eiU*iYedB4U7)EDT;7=FMbPcrpS2e(eb8rj!or9?rRFY`@d?L2eG#)@?VSI!K3Dah>x*4V77TD;_H~xxEXp8 z{#Bk-TO7c8{X@k&|MfXN@Evn{WS`0S-PLAN5yKsq-Q}n>&ILo*`co14Fy6uULzTQa&a(mWdRaa#Hb=8A}KP5CV} zjid0}&>tFP9v1Ju?*Q{SC!Wua+_z`^^Z|2JO`SN&a>H_u90eADf=y zoxL`e2lsirr1`&8mtU1PLR~x?x2>RdP-jSX)tz1E?_*`{1aei~j~vReH&LqZ5Eo#n z`yX8-FWKn%vUQ28Q*U(Vh#(Vk)x2|b(Y>y6;@6n}!gRa|xoX}yy2gBtTs3Lk(5o~2 z^-SHbt~u+5ENd|9(_ST!tLmYt2YiNjweK%ej_bc<;Mi(2R zQ3rg6c+Ic5`i1#L@%p*(1>PrK?cK-tCoFh>zOk8j-d6`Z7e4a&_8L7%F-_s6zw7pJ z-AC3T;%i}^Y0@G-#o7M>`7>XV``SkRjda5I`4}r0>YC3Z`&7qoi}*T@pB%Z@>c%E! zNW`bnUutZQiuiQLZ-Q6*Uk6#{n>>4m_?JBRhG;``%?pl~eIx3m!_99ZKF17W6n;+R zzB#LzW|_;8NBU76dM`(tDaLy<-FT_2y_lM2yvOSquR#XSnZ}z%KVWME>>9#nna>F4 z0BA7r@dWj-^Z?<+KHK#RnT6)EORUQu;=QuFj4*D1WVZq{nTKO8iT0sgoR*>L&p&62 z{R)eT`$pk@7y{gbpZbr9ztlu#_nvoh&XzGZBiFt@XKM!$cXQp)N659W*A2PydDiy! z{|@qtuaDQJh413lja#Sx*JCwMVaSupja>PCD01JJ5?OnPJQU`WMBO#i753CFioac~ z8#?uxnz?T10pzNQ>xRBUu9~=R=%6JvYu(UqPVw9A3z4fPt{bXAt{=N@C~Tj@@}=4&XzF)uKnMiyW--sm<9qT7J<3u{LwAHG=Ju6aG zeeW5cc<#zY$W`^+6<7Wf*8ghXlVASR(B?;&1H>;!m4=hP?)X*G7us?z{31IqsxR`< z&KtP;B3#3*`L>&}e*k(C+6cW5eE}sAZbL}*OHFd0xNfNV(wez$Xf|@y#C1c@Ay-XY zH+Z{apD!d%OPc_W#j;l|U-*k5NXmg8Jcd?{Y7ZU+69LW}l<_ zLiYhCQQy@z0gwL_)0q)-?N>yTz&;g|l#s_hjTy58O>5aZ|Cw&QA>gs+JR#=e?sfhp z5Bq^^JDcL%i;pupY3;a(KfqKl|F*`-Bl|q_g0r z9b&HZKJfk=xgTt9GLM*e#21>2?CtidNS-2d9w!1F8QG6D$Jx2|%t)T`^ybepOCtN@ znGYOin>FRW2+Xd8sy-Ls_iae#;d5{JNfUhjaGpm()tRXtl{?*|HjuD~L3?7RI`~Rb zDXfpxx0hL1Z-@2uR^l%$2zyWK?f*u;AM4lb>KB}E60RHSx~yid8=8+?`)b{gEB|hP zzaLRL$IiO)pK2a9Pa7`v3C;tq&v@4LX6}*jb5y=E%`@hCbD4PN`?V{1nfaC3DE?mY zIgD7fF?mOY{+qGdr@8%7_O3o@VK#8z&+^E9F7-us(=2k|n)07!u5-Lcc%4k4oo)l3 zoZ8#fC+|l7`!Rmm+>8+KfhLtD)aOl1Jk%r|>)*Iv=_e+Ff^lCfvkv8@=~5Xbu#wB3!rqC35vSOF1HiT-Gwt%l~xU(7@$2bKTI-kSkm_&Xsq! z9*1(t-}@wNvg0ki`v&G|lHD&)9;*eLnr9=m}esY-CX=-MepnG<~Oq=z6WKej(Gw1 zA*p@W{>IvbSsxmN+p1>wVqVqkv}(-a)tJ4GS@^CH?+e}^&PS>q6^ResgsAscXCC?q zD}r#{Q0gr;Yu(Ukr~2~>gOTfhwQk6@=P|$htG(ART-R|0a@D+h4A2dct0t`*dMHT8 z>=iY0-O!21Rg->U{<;&nYT~+~niN<2S{9Y>tf2g>ebo8iI`g}HAoXq^`e1{Z`)SPD zAU1S-&6L!6@UM3==I33|Yx5b?KajO`r!!v*=?p`yw;wftHVl1iWPfAw4`&VF5Om{y z_$xpkf}T6nxOGH-K8$zFHs+c`jOm7b1Ky|pf^?3%={Khz?a!k$8BZ8ISBiLk5z>C% zL6Ghz*I2mjA=h2Sx}SIwsC}ZkyHxs$bQG;?)>>w*UzUy{y+pc*^bhGA(lfdezV0{B zUb`ERrLZsGGs(C!&UGHI&NA2eTZn%&{d@4IPkBdj5!N@7n}^P$)Ilo zeF9ZLx-;>;A$&h`upV>)^c18y*mO+89d@nwbNaXAJ=foV8~5nX z*e5yrKSq4Ap1=| z5ntEw(j$C%(i|V?+k}_SXkv5Y^kw({dTuC29<@APTuqM^ZPInS)Fbwv(SD6 zX*al|F-Mc$Ye3yGe-U}R3w$p8Ipia)pBUSNJO`aZdd~wJeAt9DEqF7QM)iJb%jbH{Ga*!8-73aAUEX$9sO)9=E(pcNCT)(>IuP0!Ki%Aj_|z z51|2+&FN6T2Gmbk)O8Jwxt-@U=p|@0v?UW+p(C)@nkTK7(b^Q<``HS!_n~z7QIPiD zmCvC5hqP}|XUph38J#(ybEp2!v(Asv-a(xUqqAUi{)En)&^a(VYeMHsJcc`+^P;gY z?N`?xb?r;nUUZ!|p)+5!4_$pdojIoS$aEH&&KuJiV|A(fKAcIr0&Rn|hxJKFdsVeR zRbxmRH_~1g?QhYZ7VTrv-WBav(H<4;OVM5w?LX0;6YVq6-V*I6(H;`*8_`}7?GMqO z5bXoe-Vcp`Y0bUHRkYVk`^mItO#8yL_e=Y|)F)Lrm{-Etmbkx?a(h~1$}Z;0|LSw9 zpQ*m3`jc9Ns&%JYYpV67T2rcZq+gE1{49S=LhJU<;M=v%J*%FHt8A-3>&Ek@`n>7` zt;fCeF!C(!HMghvJk8PdLKcl7Xnsy}a+-(J+?(dxG{>fO1X?Sg`8Ca{X&y~;XPPh5 z9GT|D)Ynyc`xI0^R(;oVNEgjPXx?G&k+hSL<`guKpt%Fh7if+^^8gzAFX9_C=KmD5 zvVb(k{3%HNUX@*ySB)8JT(C`&KgQRA;Qv$m+ie@tzkBezXX0nBpYX43n@&HZ%c?(J zc+b;4S9IHQi0L=^(vsEh)y;YDt5D)^wh6 z^}K)mY1@nMe>?EXq-|SI`j7ordaLzUZ~g6suUJ$I=(a#2beQIf|FK>A1 zlB>6^zp!M*mgl!USoh0644Az2KR49>Zu}SDEbUr*+q~ibykfEH> zu?JfQVU`!g)K<&QvOioGQ`+;-EVI|gHnj2Gl-yhtn^NC@E?@hRtJ@^QGW_-k-dp(M zh?sO4g;RFT(wOQhJ?Hl;i=7^PO9^gNj%A*adVQ=s_}+rci(=ys_GMd*8|e^oQ}F3^ zG1Y^5*Oo;^G3m21FFtu`EEp#;i+^4ela4C$LcUizsJ^jc!HAgZc==s_V^K^xiQJU( zjjj!p`=v!OwI6b`mN*a3N?COrX%WcW_u>&T=?rqymvGeo$_mQ6&hu87t6sV;COt*( z-MVdV?8?Az8Germw2+Rea4O4}##C48IgfZ&-K*yc;zwhZIg_?E08=Yq?pE8`a%1&r7~O)-DLY{Dh@3 z>3s?_e$|NB+kwoLi^$tSoNVD)I==j7FIgJ>)Y^skV_Z57vbQj4PBmYS6R2)|D-abLxmhmq24diCyhU;Rk z55sf8RZC;i2V6L$i`rcIok0An{~+_#$dlQ~_q+AskIXm0H)a!`9|zx<$FuYXrB`2` z)d$wQX8q}XGo`Knyyel4T>npD8hvjN=ds5=a{8FukAC2YnDi_?7hG5rQy)(53x+L? zNq5onD&&;jAvrf8=hH#lZlx@!?;|(aO0U38U&>C_U|+TZ%KiyKoJ^-aSsluWY|@Y9 zcQN6sO}>%m1(P^q*3v&pN2h~-3|;SM;JkLU$zW^B=lkHYQ@CFncOMZ?6mgSr0<%-_ zSM{e~0DtfR{DSS!-Ns`6z=4JpGX78B`j3g|Ihgn6ndaFnZ;xIAuBY$b3iG@3X~W^i z5Wys)dG;{cc(BuKbQtU}CU0H@9*5;1%=6A9?%{91eFpsClhA?S&&2#paKNGHZkYEu zm-oQ`I~833{-M@<8~9Z->L_p`-+LwaE5cuZyVG!V3;e&Kx{!3H^D)1DGCCLdclf#B zbG7+a?9WEus0V*WFJtb9KVT5~5B!)qIvMlpdH!}M)$GjYQlfWj(`6T9-ke-i&E6FF9V&1Vo z`Xqd3@?S0SMd)PkB$FX(%^V{0NX$14r=JhMrUX3?eo-gV2>u@OODFg@iKhqP=XIk$ z47SGI)tHYP<;Qv7dgLX{f8NNcfo4-5^hEgFk&GvR*YMp`FJ>5J@gXp!fH(jTL(WSG z=WN{l6Ml9-^ldPm^gbWFg?w}l_WdX`B)xfsaCn88j_{qq^J4T3z<#7>I__4tB|pHA zLB7TC*PlrK0q5YqIp%khj;-N8ng9>pM!qD=nM3FBZSdU=ArHf!Nn&<~Z%%qQ02>k? z*JJ+15sU$V(t+**Z$hYP;3H|&FW@&;zUyi5gUOUD%ySX$BlvCzO^~MHS!#Q+Bk@UUlSE{Yl;)LT^i{xF z)R8A(pMExdG;j*vbp`kgl|e7;-#eLiz<)})IRot9o_-4E4-?Mu;08q==C2Yj1Zhqi z$7(6~=O*!eU^$6L(K4%uXR^GR+?l)%zE6Bzi~adSc?bO4?a))ebNd+c3veCz>H_S? z#Yt!Q`k1c)&p4WI!d(5Z%fLI^AUEdUv?T9=$uXUlPQR7%e;oG5jiH?YFC!hZF~71l zbr#rz_&pi(Pl(TvphvzVD$JJt^kKn8BdGhpt|a;v@Prw(0}5|2c^UrxIC&Nvg8w5h zA9x=1KRAi+9Etfz3JqS&>Es)NGRKoi55&Gh3iUtyeOQiHcnv9Y@b7y5>iKiW@@<%( z(Sta{{Pv!d0r08}zwQ~$cb);?jQo2I_(uZ&3>;WYdf_jNNd6bRiBoogRN}uM$Zc4x zNui9NL>l7mRq}a0xRUqtN|SRs{cHGCBIjcG*NDdh!IR(@f@6puvaor*D|r!I&iCGc z`y~bRtKkRrX3PLg#?eH~@8r1-G#?@6!{5Sp=fXF@-*xcqhBGb-pE`s(ROV#LIOfI3 zSs|Wuoe%!5m^Kabzfh>Bz@I`QBDxuvPu>DsU|5L#=+TsY`1cAJcLq06xs1X5brPuz zY&VdwFn?+~Ei22RPeG>dpuU%+?#73_HovS9u!`78(iOX8JRm_{V7#k@Vw3hO;ADH`UHQ~3_e2iGAT;M>(D zPl7KUMPA1|t3Emsd^Vnl3UeaylZ*K?$h8>0KY<(!{|SZTV(>d0m12Gn>6QoHNW2Wk z{0!V*4S)T~)Yb5pW8V?}EaGL6{P7*H!zXv;o4_t3DC=N6mG%pq&G+Wv?#Lw41b*uY zv>))pc;5x^e>sDE0sj(#UJF07HTnYh9ED&jIAJ{XFZM*MAq$wXd{0|&KILyR=CAY7 zcf%hrj4@rXFX@b^<^dwT1(->?{s$}|QQG4En;Ft&k)<2sy_mn7ft~_xCjBO1KDZhA z7+&N1B#F6;_h(~%1@Vj*a|8083ZF~491b7H^B?7&{P6-j>^RnB)xqR1VaP?qx0kBRl%0AeR^gkZ= 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 RJaEAS7d&vm1LxlZ{}1JGQqTYZ literal 0 HcmV?d00001 diff --git a/legacy/evas/proj/win32_gdi/evas_software_win32.vcl b/legacy/evas/proj/win32_gdi/evas_software_win32.vcl new file mode 100644 index 0000000000..adde0246cb --- /dev/null +++ b/legacy/evas/proj/win32_gdi/evas_software_win32.vcl @@ -0,0 +1,130 @@ + + +

    +

    Build Log

    +

    +--------------------Configuration: evas_software_win32 - Win32 (WCE emulator) Debug-------------------- +

    +

    Command Lines

    +Creating command line "rc.exe /l 0x409 /fo"emulatorDbg/evas_software_win32.res" /i "\Projects\mbed\evas\src\bin\evas_software_win32" /d "WCE_PLATFORM_STANDARDSDK" /d UNDER_CE=400 /d _WIN32_WCE=400 /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "_X86_" /d "x86" /d "_i386_" /r "C:\Projects\mbed\evas\src\bin\evas_software_win32\evas_software_win32.rc"" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E8.tmp" with contents +[ +/nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "_i386_" /D "i_386_" /D "_X86_" /D "x86" /D UNDER_CE=400 /D _WIN32_WCE=400 /D "WCE_PLATFORM_STANDARDSDK" /D "UNICODE" /D "_UNICODE" /FR"emulatorDbg/" /Fo"emulatorDbg/" /Fd"emulatorDbg/" /Gs8192 /GF /c +"C:\Projects\mbed\evas\src\bin\evas_software_win32\evas_software_win32.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E8.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E9.tmp" with contents +[ +/nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "_i386_" /D "i_386_" /D "_X86_" /D "x86" /D UNDER_CE=400 /D _WIN32_WCE=400 /D "WCE_PLATFORM_STANDARDSDK" /D "MBCS" /D "_MBCS" /FR"emulatorDbg/" /Fo"emulatorDbg/" /Fd"emulatorDbg/" /Gs8192 /GF /c +"C:\Projects\mbed\evas\src\bin\evas_test_main.c" +"C:\Projects\mbed\evas\src\bin\evas_software_win32\StdAfx.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E9.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1EA.tmp" with contents +[ +commctrl.lib coredll.lib corelibc.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /incremental:yes /pdb:"emulatorDbg/evas_software_win32.pdb" /debug /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:libc.lib /nodefaultlib:libcd.lib /nodefaultlib:libcmt.lib /nodefaultlib:libcmtd.lib /nodefaultlib:msvcrt.lib /nodefaultlib:msvcrtd.lib /out:"emulatorDbg/evas_software_win32.exe" /subsystem:windowsce,4.00 /MACHINE:IX86 +.\emulatorDbg\evas_software_win32.obj +.\emulatorDbg\evas_test_main.obj +.\emulatorDbg\StdAfx.obj +.\emulatorDbg\evas_software_win32.res +.\emulatorDbg\evaslib.lib +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1EA.tmp" +

    Output Window

    +Compiling resources... +Compiling... +evas_software_win32.cpp +C:\Projects\mbed\evas\src\bin\evas_software_win32\evas_software_win32.cpp(195) : warning C4101: 'szHello' : unreferenced local variable +Compiling... +evas_test_main.c +C:\Projects\mbed\evas\src\bin\evas_test_main.c(91) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\bin\evas_test_main.c(324) : warning C4101: 'iw' : unreferenced local variable +C:\Projects\mbed\evas\src\bin\evas_test_main.c(324) : warning C4101: 'ih' : unreferenced local variable +C:\Projects\mbed\evas\src\bin\evas_test_main.c(358) : warning C4101: 'iw' : unreferenced local variable +C:\Projects\mbed\evas\src\bin\evas_test_main.c(358) : warning C4101: 'ih' : unreferenced local variable +C:\Projects\mbed\evas\src\bin\evas_test_main.c(394) : warning C4101: 'iw' : unreferenced local variable +C:\Projects\mbed\evas\src\bin\evas_test_main.c(394) : warning C4101: 'ih' : unreferenced local variable +Generating Code... +Compiling... +StdAfx.cpp +C:\Projects\mbed\evas\src\bin\evas_test_main.c(91) : warning C4761: integral size mismatch in argument; conversion supplied +Generating Code... +Linking... +evaslib.lib(evas_callbacks.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_clip.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_events.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_layer.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_name.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_object_gradient.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_object_image.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_object_line.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_object_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_object_polygon.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_object_rectangle.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_object_text.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_rectangle.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_render.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_stack.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_hash.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_list.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_object_list.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_blend_alpha_color_pixel.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_blend_color_pixel.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_blend_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_blend_pixel_cmod_pixel.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_blend_pixel_mul_pixel.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_blend_pixel_pixel.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_blit_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_convert_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_convert_rgb_16.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_convert_rgb_32.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_cpu.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_draw_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_font_draw.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_font_load.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_font_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_font_query.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_gradient_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_image_load.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_image_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_line_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_polygon_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_rectangle_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_scale_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_scale_sample.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_scale_smooth.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_tiler.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_engine.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_outbuf.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_win32_buffer.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_win32_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(evas_path.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(winfnt.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(type42.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(type1.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(truetype.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(smooth.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(sfnt.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(raster.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(psmodule.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(pshinter.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(psaux.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(pfr.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(pcf.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(type1cid.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(cff.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(bdf.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(ftsystem.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(ftinit.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(ftglyph.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(ftbase.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info +evaslib.lib(autohint.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info + + + +

    Results

    +evas_software_win32.exe - 0 error(s), 79 warning(s) +
    + + diff --git a/legacy/evas/proj/win32_gdi/evas_software_win32.vco b/legacy/evas/proj/win32_gdi/evas_software_win32.vco new file mode 100644 index 0000000000000000000000000000000000000000..d2f5e9a4ce20805458e6a3a208ba9f737fb56b27 GIT binary patch literal 81920 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 literal 0 HcmV?d00001 diff --git a/legacy/evas/proj/win32_gdi/evas_software_win32.vcp b/legacy/evas/proj/win32_gdi/evas_software_win32.vcp new file mode 100644 index 0000000000..302dfb2288 --- /dev/null +++ b/legacy/evas/proj/win32_gdi/evas_software_win32.vcp @@ -0,0 +1,1628 @@ +# Microsoft eMbedded Visual Tools Project File - Name="evas_software_win32" - Package Owner=<4> +# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (WCE MIPSIV_FP) Application" 0x9201 +# TARGTYPE "Win32 (WCE x86) Application" 0x8301 +# TARGTYPE "Win32 (WCE ARMV4) Application" 0xa301 +# TARGTYPE "Win32 (WCE MIPS16) Application" 0x8901 +# TARGTYPE "Win32 (WCE SH3) Application" 0x8101 +# TARGTYPE "Win32 (WCE ARMV4I) Application" 0xa501 +# TARGTYPE "Win32 (WCE SH4) Application" 0x8601 +# TARGTYPE "Win32 (WCE MIPSII_FP) Application" 0xa201 +# TARGTYPE "Win32 (WCE emulator) Application" 0xa601 +# TARGTYPE "Win32 (WCE MIPSIV) Application" 0x9601 +# TARGTYPE "Win32 (WCE ARMV4T) Application" 0xa401 +# TARGTYPE "Win32 (WCE MIPSII) Application" 0xa101 + +CFG=evas_software_win32 - Win32 (WCE MIPSII_FP) Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "evas_software_win32.vcn". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "evas_software_win32.vcn" CFG="evas_software_win32 - Win32 (WCE MIPSII_FP) Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "evas_software_win32 - Win32 (WCE MIPSII_FP) Release" (based on "Win32 (WCE MIPSII_FP) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE MIPSII_FP) Debug" (based on "Win32 (WCE MIPSII_FP) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE MIPSII) Release" (based on "Win32 (WCE MIPSII) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE MIPSII) Debug" (based on "Win32 (WCE MIPSII) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE SH4) Release" (based on "Win32 (WCE SH4) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE SH4) Debug" (based on "Win32 (WCE SH4) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE SH3) Release" (based on "Win32 (WCE SH3) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE SH3) Debug" (based on "Win32 (WCE SH3) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE MIPSIV) Release" (based on "Win32 (WCE MIPSIV) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE MIPSIV) Debug" (based on "Win32 (WCE MIPSIV) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE emulator) Release" (based on "Win32 (WCE emulator) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE emulator) Debug" (based on "Win32 (WCE emulator) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE ARMV4I) Release" (based on "Win32 (WCE ARMV4I) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE ARMV4I) Debug" (based on "Win32 (WCE ARMV4I) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE MIPSIV_FP) Release" (based on "Win32 (WCE MIPSIV_FP) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE MIPSIV_FP) Debug" (based on "Win32 (WCE MIPSIV_FP) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE ARMV4) Release" (based on "Win32 (WCE ARMV4) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE ARMV4) Debug" (based on "Win32 (WCE ARMV4) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE MIPS16) Release" (based on "Win32 (WCE MIPS16) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE MIPS16) Debug" (based on "Win32 (WCE MIPS16) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE ARMV4T) Release" (based on "Win32 (WCE ARMV4T) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE ARMV4T) Debug" (based on "Win32 (WCE ARMV4T) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE x86) Release" (based on "Win32 (WCE x86) Application") +!MESSAGE "evas_software_win32 - Win32 (WCE x86) Debug" (based on "Win32 (WCE x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +# PROP ATL_Project 2 + +!IF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII_FP) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MIPSII_FPRel" +# PROP BASE Intermediate_Dir "MIPSII_FPRel" +# PROP BASE CPU_ID "{D8AC856C-B213-4895-9E83-9EC51A55201E}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "MIPSII_FPRel" +# PROP Intermediate_Dir "MIPSII_FPRel" +# PROP CPU_ID "{D8AC856C-B213-4895-9E83-9EC51A55201E}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /d "R4000" /d "MIPSII" /d "MIPSII_FP" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /d "R4000" /d "MIPSII" /d "MIPSII_FP" /r +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPSII_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /Yu"stdafx.h" /QMmips2 /QMFPE- /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPSII_FP" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QMmips2 /QMFPE- /O2 /M$(CECrtMT) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII_FP) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "MIPSII_FPDbg" +# PROP BASE Intermediate_Dir "MIPSII_FPDbg" +# PROP BASE CPU_ID "{D8AC856C-B213-4895-9E83-9EC51A55201E}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "MIPSII_FPDbg" +# PROP Intermediate_Dir "MIPSII_FPDbg" +# PROP CPU_ID "{D8AC856C-B213-4895-9E83-9EC51A55201E}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /d "R4000" /d "MIPSII" /d "MIPSII_FP" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /d "R4000" /d "MIPSII" /d "MIPSII_FP" /r +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPSII_FP" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /QMmips2 /QMFPE- /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPSII_FP" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QMmips2 /QMFPE- /M$(CECrtMTDebug) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MIPSIIRel" +# PROP BASE Intermediate_Dir "MIPSIIRel" +# PROP BASE CPU_ID "{689DDC64-9D9D-11D5-96F8-00207802C01C}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "MIPSIIRel" +# PROP Intermediate_Dir "MIPSIIRel" +# PROP CPU_ID "{689DDC64-9D9D-11D5-96F8-00207802C01C}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /d "R4000" /d "MIPSII" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /d "R4000" /d "MIPSII" /r +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /Yu"stdafx.h" /QMmips2 /QMFPE /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QMmips2 /QMFPE /O2 /M$(CECrtMT) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "MIPSIIDbg" +# PROP BASE Intermediate_Dir "MIPSIIDbg" +# PROP BASE CPU_ID "{689DDC64-9D9D-11D5-96F8-00207802C01C}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "MIPSIIDbg" +# PROP Intermediate_Dir "MIPSIIDbg" +# PROP CPU_ID "{689DDC64-9D9D-11D5-96F8-00207802C01C}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /d "R4000" /d "MIPSII" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /d "R4000" /d "MIPSII" /r +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /QMmips2 /QMFPE /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QMmips2 /QMFPE /M$(CECrtMTDebug) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH4) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SH4Rel" +# PROP BASE Intermediate_Dir "SH4Rel" +# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "SH4Rel" +# PROP Intermediate_Dir "SH4Rel" +# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r +CPP=shcl.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /Yu"stdafx.h" /Qsh4 /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "SHx" /D "SH4" /D "_SH4_" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /Qsh4 /O2 /M$(CECrtMT) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4 +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4 + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH4) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SH4Dbg" +# PROP BASE Intermediate_Dir "SH4Dbg" +# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "SH4Dbg" +# PROP Intermediate_Dir "SH4Dbg" +# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "SHx" /d "SH4" /d "_SH4_" /r +CPP=shcl.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /Qsh4 /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /Qsh4 /M$(CECrtMTDebug) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4 +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH4 + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH3) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SH3Rel" +# PROP BASE Intermediate_Dir "SH3Rel" +# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "SH3Rel" +# PROP Intermediate_Dir "SH3Rel" +# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r +CPP=shcl.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /Yu"stdafx.h" /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "SHx" /D "SH3" /D "_SH3_" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /O2 /M$(CECrtMT) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3 +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3 + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH3) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SH3Dbg" +# PROP BASE Intermediate_Dir "SH3Dbg" +# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "SH3Dbg" +# PROP Intermediate_Dir "SH3Dbg" +# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "SHx" /d "SH3" /d "_SH3_" /r +CPP=shcl.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /M$(CECrtMTDebug) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3 +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:SH3 + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MIPSIVRel" +# PROP BASE Intermediate_Dir "MIPSIVRel" +# PROP BASE CPU_ID "{0B2FE524-26C5-4194-8CEF-B1582DEB5A98}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "MIPSIVRel" +# PROP Intermediate_Dir "MIPSIVRel" +# PROP CPU_ID "{0B2FE524-26C5-4194-8CEF-B1582DEB5A98}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /Yu"stdafx.h" /QMmips4 /QMn32 /QMFPE /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QMmips4 /QMn32 /QMFPE /O2 /M$(CECrtMT) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPSFPU +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPSFPU + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "MIPSIVDbg" +# PROP BASE Intermediate_Dir "MIPSIVDbg" +# PROP BASE CPU_ID "{0B2FE524-26C5-4194-8CEF-B1582DEB5A98}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "MIPSIVDbg" +# PROP Intermediate_Dir "MIPSIVDbg" +# PROP CPU_ID "{0B2FE524-26C5-4194-8CEF-B1582DEB5A98}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /QMmips4 /QMn32 /QMFPE /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QMmips4 /QMn32 /QMFPE /M$(CECrtMTDebug) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPSFPU +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPSFPU + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE emulator) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "emulatorRel" +# PROP BASE Intermediate_Dir "emulatorRel" +# PROP BASE CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "emulatorRel" +# PROP Intermediate_Dir "emulatorRel" +# PROP CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "_X86_" /d "x86" /d "_i386_" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "_X86_" /d "x86" /d "_i386_" /r +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "i_386_" /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "NDEBUG" /Yu"stdafx.h" /Gs8192 /GF /O2 /c +# ADD CPP /nologo /W3 /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "_i386_" /D "i_386_" /D "_X86_" /D "x86" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /Gs8192 /GF /O2 /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86 +# ADD LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86 + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE emulator) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "emulatorDbg" +# PROP BASE Intermediate_Dir "emulatorDbg" +# PROP BASE CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "emulatorDbg" +# PROP Intermediate_Dir "emulatorDbg" +# PROP CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d "$(CePlatform)" /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "_X86_" /d "x86" /d "_i386_" /r +# ADD RSC /l 0x409 /d "$(CePlatform)" /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "_X86_" /d "x86" /d "_i386_" /r +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "_i386_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "i_386_" /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /Yu"stdafx.h" /Gs8192 /GF /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "_i386_" /D "i_386_" /D "_X86_" /D "x86" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /FR /Gs8192 /GF /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86 +# ADD LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86 + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4I) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ARMV4IRel" +# PROP BASE Intermediate_Dir "ARMV4IRel" +# PROP BASE CPU_ID "{DC70F430-E78B-494F-A9D5-62ADC56443B8}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ARMV4IRel" +# PROP Intermediate_Dir "ARMV4IRel" +# PROP CPU_ID "{DC70F430-E78B-494F-A9D5-62ADC56443B8}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "THUMB" /d "_THUMB_" /d "ARM" /d "_ARM_" /d "ARMV4I" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "THUMB" /d "_THUMB_" /d "ARM" /d "_ARM_" /d "ARMV4I" /r +CPP=clarm.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "ARMV4I" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /Yu"stdafx.h" /QRarch4T /QRinterwork-return /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "ARM" /D "_ARM_" /D "ARMV4I" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QRarch4T /QRinterwork-return /O2 /M$(CECrtMT) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:THUMB +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:THUMB + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4I) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "ARMV4IDbg" +# PROP BASE Intermediate_Dir "ARMV4IDbg" +# PROP BASE CPU_ID "{DC70F430-E78B-494F-A9D5-62ADC56443B8}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "ARMV4IDbg" +# PROP Intermediate_Dir "ARMV4IDbg" +# PROP CPU_ID "{DC70F430-E78B-494F-A9D5-62ADC56443B8}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "THUMB" /d "_THUMB_" /d "ARM" /d "_ARM_" /d "ARMV4I" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "THUMB" /d "_THUMB_" /d "ARM" /d "_ARM_" /d "ARMV4I" /r +CPP=clarm.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "ARM" /D "_ARM_" /D "ARMV4I" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /QRarch4T /QRinterwork-return /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "ARM" /D "_ARM_" /D "ARMV4I" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QRarch4T /QRinterwork-return /M$(CECrtMTDebug) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:THUMB +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:THUMB + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV_FP) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MIPSIV_FPRel" +# PROP BASE Intermediate_Dir "MIPSIV_FPRel" +# PROP BASE CPU_ID "{046A430D-7770-48AB-89B5-24C2D300B03F}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "MIPSIV_FPRel" +# PROP Intermediate_Dir "MIPSIV_FPRel" +# PROP CPU_ID "{046A430D-7770-48AB-89B5-24C2D300B03F}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "MIPSIV_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /Yu"stdafx.h" /QMmips4 /QMn32 /QMFPE- /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "MIPSIV_FP" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QMmips4 /QMn32 /QMFPE- /O2 /M$(CECrtMT) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPSFPU +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPSFPU + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV_FP) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "MIPSIV_FPDbg" +# PROP BASE Intermediate_Dir "MIPSIV_FPDbg" +# PROP BASE CPU_ID "{046A430D-7770-48AB-89B5-24C2D300B03F}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "MIPSIV_FPDbg" +# PROP Intermediate_Dir "MIPSIV_FPDbg" +# PROP CPU_ID "{046A430D-7770-48AB-89B5-24C2D300B03F}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /r +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "MIPSIV_FP" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /QMmips4 /QMn32 /QMFPE- /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "MIPSIV_FP" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QMmips4 /QMn32 /QMFPE- /M$(CECrtMTDebug) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPSFPU +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPSFPU + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ARMV4Rel" +# PROP BASE Intermediate_Dir "ARMV4Rel" +# PROP BASE CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ARMV4Rel" +# PROP Intermediate_Dir "ARMV4Rel" +# PROP CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r +CPP=clarm.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /Yu"stdafx.h" /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "ARM" /D "_ARM_" /D "ARMV4" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /O2 /M$(CECrtMT) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "ARMV4Dbg" +# PROP BASE Intermediate_Dir "ARMV4Dbg" +# PROP BASE CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "ARMV4Dbg" +# PROP Intermediate_Dir "ARMV4Dbg" +# PROP CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r +CPP=clarm.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /M$(CECrtMTDebug) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPS16) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MIPS16Rel" +# PROP BASE Intermediate_Dir "MIPS16Rel" +# PROP BASE CPU_ID "{D6519013-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "MIPS16Rel" +# PROP Intermediate_Dir "MIPS16Rel" +# PROP CPU_ID "{D6519013-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "MIPS16SUPPORT" /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /d "R4000" /d "MIPSII" /d "MIPS16" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "MIPS16SUPPORT" /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /d "R4000" /d "MIPSII" /d "MIPS16" /r +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPS16" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_MIPS16_" /D "MIPS16SUPPORT" /Yu"stdafx.h" /QMmips16 /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPS16" /D "NDEBUG" /D "_MIPS16_" /D "MIPS16SUPPORT" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QMmips16 /O2 /M$(CECrtMT) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS16 /ALIGN:4096 +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS16 /ALIGN:4096 + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPS16) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "MIPS16Dbg" +# PROP BASE Intermediate_Dir "MIPS16Dbg" +# PROP BASE CPU_ID "{D6519013-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "MIPS16Dbg" +# PROP Intermediate_Dir "MIPS16Dbg" +# PROP CPU_ID "{D6519013-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "MIPS16SUPPORT" /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /d "R4000" /d "MIPSII" /d "MIPS16" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "MIPS16SUPPORT" /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "MIPS" /d "_MIPS_" /d "R4000" /d "MIPSII" /d "MIPS16" /r +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPS16" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /D "_MIPS16_" /D "MIPS16SUPPORT" /Yu"stdafx.h" /QMmips16 /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPS16" /D "_MIPS16_" /D "MIPS16SUPPORT" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QMmips16 /M$(CECrtMTDebug) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS16 /ALIGN:4096 +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:MIPS16 /ALIGN:4096 + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4T) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ARMV4TRel" +# PROP BASE Intermediate_Dir "ARMV4TRel" +# PROP BASE CPU_ID "{F52316A9-3B7C-4FE7-A67F-68350B41240D}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ARMV4TRel" +# PROP Intermediate_Dir "ARMV4TRel" +# PROP CPU_ID "{F52316A9-3B7C-4FE7-A67F-68350B41240D}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "THUMB" /d "_THUMB_" /d "ARM" /d "_ARM_" /d "ARMV4T" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "THUMB" /d "_THUMB_" /d "ARM" /d "_ARM_" /d "ARMV4T" /r +CPP=clthumb.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "THUMB" /D "_THUMB_" /D "ARMV4T" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /Yu"stdafx.h" /QRarch4T /QRinterwork-return /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "ARM" /D "_ARM_" /D "THUMB" /D "_THUMB_" /D "ARMV4T" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QRarch4T /QRinterwork-return /O2 /M$(CECrtMT) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:THUMB +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:THUMB + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4T) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "ARMV4TDbg" +# PROP BASE Intermediate_Dir "ARMV4TDbg" +# PROP BASE CPU_ID "{F52316A9-3B7C-4FE7-A67F-68350B41240D}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "ARMV4TDbg" +# PROP Intermediate_Dir "ARMV4TDbg" +# PROP CPU_ID "{F52316A9-3B7C-4FE7-A67F-68350B41240D}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "THUMB" /d "_THUMB_" /d "ARM" /d "_ARM_" /d "ARMV4T" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "THUMB" /d "_THUMB_" /d "ARM" /d "_ARM_" /d "ARMV4T" /r +CPP=clthumb.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "THUMB" /D "_THUMB_" /D "ARMV4T" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /QRarch4T /QRinterwork-return /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "THUMB" /D "_THUMB_" /D "ARMV4T" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /QRarch4T /QRinterwork-return /M$(CECrtMTDebug) /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:THUMB +# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /MACHINE:THUMB + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE x86) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "X86Rel" +# PROP BASE Intermediate_Dir "X86Rel" +# PROP BASE CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "X86Rel" +# PROP Intermediate_Dir "X86Rel" +# PROP CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "_X86_" /d "x86" /d "_i386_" /r +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "_X86_" /d "x86" /d "_i386_" /r +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "i_386_" /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "NDEBUG" /Yu"stdafx.h" /Gs8192 /GF /O2 /c +# ADD CPP /nologo /W3 /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "_i386_" /D "i_386_" /D "_X86_" /D "x86" /D "NDEBUG" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /Gs8192 /GF /O2 /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86 +# ADD LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86 + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE x86) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "X86Dbg" +# PROP BASE Intermediate_Dir "X86Dbg" +# PROP BASE CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "X86Dbg" +# PROP Intermediate_Dir "X86Dbg" +# PROP CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d "$(CePlatform)" /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "_X86_" /d "x86" /d "_i386_" /r +# ADD RSC /l 0x409 /d "$(CePlatform)" /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "_X86_" /d "x86" /d "_i386_" /r +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "_i386_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "i_386_" /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /Yu"stdafx.h" /Gs8192 /GF /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "_i386_" /D "i_386_" /D "_X86_" /D "x86" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MBCS" /D "_MBCS" /Gs8192 /GF /c +# SUBTRACT CPP /YX /Yc /Yu +MTL=midl.exe +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86 +# ADD LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86 + +!ENDIF + +# Begin Target + +# Name "evas_software_win32 - Win32 (WCE MIPSII_FP) Release" +# Name "evas_software_win32 - Win32 (WCE MIPSII_FP) Debug" +# Name "evas_software_win32 - Win32 (WCE MIPSII) Release" +# Name "evas_software_win32 - Win32 (WCE MIPSII) Debug" +# Name "evas_software_win32 - Win32 (WCE SH4) Release" +# Name "evas_software_win32 - Win32 (WCE SH4) Debug" +# Name "evas_software_win32 - Win32 (WCE SH3) Release" +# Name "evas_software_win32 - Win32 (WCE SH3) Debug" +# Name "evas_software_win32 - Win32 (WCE MIPSIV) Release" +# Name "evas_software_win32 - Win32 (WCE MIPSIV) Debug" +# Name "evas_software_win32 - Win32 (WCE emulator) Release" +# Name "evas_software_win32 - Win32 (WCE emulator) Debug" +# Name "evas_software_win32 - Win32 (WCE ARMV4I) Release" +# Name "evas_software_win32 - Win32 (WCE ARMV4I) Debug" +# Name "evas_software_win32 - Win32 (WCE MIPSIV_FP) Release" +# Name "evas_software_win32 - Win32 (WCE MIPSIV_FP) Debug" +# Name "evas_software_win32 - Win32 (WCE ARMV4) Release" +# Name "evas_software_win32 - Win32 (WCE ARMV4) Debug" +# Name "evas_software_win32 - Win32 (WCE MIPS16) Release" +# Name "evas_software_win32 - Win32 (WCE MIPS16) Debug" +# Name "evas_software_win32 - Win32 (WCE ARMV4T) Release" +# Name "evas_software_win32 - Win32 (WCE ARMV4T) Debug" +# Name "evas_software_win32 - Win32 (WCE x86) Release" +# Name "evas_software_win32 - Win32 (WCE x86) Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\src\bin\evas_software_win32\evas_software_win32.cpp + +!IF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\evas_software_win32.h"\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + +NODEP_CPP_EVAS_=\ + "..\..\src\bin\evas_software_win32\Evas.h"\ + "..\..\src\bin\evas_software_win32\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\bin\evas_software_win32\evas_test_main.h"\ + +# ADD CPP /D "UNICODE" /D "_UNICODE" +# SUBTRACT CPP /D "MBCS" /D "_MBCS" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\bin\evas_software_win32\evas_software_win32.rc + +!IF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII_FP) Release" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII_FP) Debug" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII) Release" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII) Debug" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH4) Release" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH4) Debug" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH3) Release" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH3) Debug" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV) Release" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV) Debug" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE emulator) Release" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE emulator) Debug" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4I) Release" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4I) Debug" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV_FP) Release" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV_FP) Debug" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4) Release" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4) Debug" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPS16) Release" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPS16) Debug" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4T) Release" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4T) Debug" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE x86) Release" + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE x86) Debug" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\bin\evas_test_main.c + +!IF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_T=\ + "..\..\config.h"\ + "..\..\src\bin\evas_test_main.h"\ + "..\..\src\lib\Evas.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\src\bin\evas_test_main.h"\ + +NODEP_CPP_EVAS_T=\ + "..\..\src\bin\config.h"\ + "..\..\src\bin\Evas.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\bin\evas_software_win32\StdAfx.cpp + +!IF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII) Release" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSII) Debug" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH4) Release" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH4) Debug" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH3) Release" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE SH3) Debug" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV) Release" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE emulator) Release" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE emulator) Debug" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4I) Release" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4) Release" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4) Debug" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPS16) Release" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE MIPS16) Debug" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4T) Release" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE x86) Release" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ELSEIF "$(CFG)" == "evas_software_win32 - Win32 (WCE x86) Debug" + +DEP_CPP_STDAF=\ + "..\..\src\bin\evas_software_win32\StdAfx.h"\ + + +!ENDIF + +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\src\bin\evas_software_win32\evas_software_win32.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\bin\evas_test_main.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\bin\evas_software_win32\newres.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\bin\evas_software_win32\resource.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\bin\evas_software_win32\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=..\..\src\bin\evas_software_win32\evas_software_win32.ico +# End Source File +# End Group +# Begin Source File + +SOURCE=.\emulatorDbg\evaslib.lib +# End Source File +# End Target +# End Project diff --git a/legacy/evas/proj/win32_gdi/evas_software_win32.vcw b/legacy/evas/proj/win32_gdi/evas_software_win32.vcw new file mode 100644 index 0000000000..9c8781c3a3 --- /dev/null +++ b/legacy/evas/proj/win32_gdi/evas_software_win32.vcw @@ -0,0 +1,41 @@ +Microsoft eMbedded Visual Tools Workspace File, Format Version 4.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "evas_software_win32"=.\evas_software_win32.vcp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "evaslib"=.\evaslib.vcp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/legacy/evas/proj/win32_gdi/evaslib.vcb b/legacy/evas/proj/win32_gdi/evaslib.vcb new file mode 100644 index 0000000000000000000000000000000000000000..f43df74ab61129e1815db7738d221a8fb04df5ff GIT binary patch literal 214016 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 literal 0 HcmV?d00001 diff --git a/legacy/evas/proj/win32_gdi/evaslib.vcl b/legacy/evas/proj/win32_gdi/evaslib.vcl new file mode 100644 index 0000000000..dd5b38d208 --- /dev/null +++ b/legacy/evas/proj/win32_gdi/evaslib.vcl @@ -0,0 +1,292 @@ + + +
    +

    Build Log

    +

    +--------------------Configuration: evaslib - Win32 (WCE emulator) Debug-------------------- +

    +

    Command Lines

    +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E5.tmp" with contents +[ +/nologo /W3 /Zi /Od /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "_i386_" /D "_X86_" /D "x86" /D _WIN32_WCE=400 /D "WCE_PLATFORM_STANDARDSDK" /D UNDER_CE=400 /D "MBCS" /D "_MBCS" /D "_LIB" /Fo"emulatorDbg/" /Fd"emulatorDbg/" /Gs8192 /GF /c +"C:\Projects\mbed\evas\src\lib\canvas\evas_callbacks.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_clip.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_data.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_events.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_layer.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_main.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_name.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_object_gradient.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_object_image.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_object_line.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_object_main.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_object_polygon.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_object_rectangle.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_rectangle.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_render.c" +"C:\Projects\mbed\evas\src\lib\canvas\evas_stack.c" +"C:\Projects\mbed\evas\src\lib\data\evas_hash.c" +"C:\Projects\mbed\evas\src\lib\data\evas_list.c" +"C:\Projects\mbed\evas\src\lib\data\evas_object_list.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_blend_alpha_color_pixel.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_blend_color_pixel.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_blend_main.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_blend_pixel_cmod_pixel.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_blend_pixel_mul_pixel.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_blend_pixel_pixel.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_blit_main.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_color.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_gry_1.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_gry_4.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_gry_8.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_rgb_16.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_rgb_24.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_rgb_32.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_rgb_8.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_cpu.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_font_draw.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_font_load.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_font_main.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_font_query.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_gradient_main.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_image_load.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_image_main.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_line_main.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_polygon_main.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_rectangle_main.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_scale_main.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_scale_sample.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_scale_smooth.c" +"C:\Projects\mbed\evas\src\lib\engines\common\evas_tiler.c" +"C:\Projects\mbed\evas\src\lib\engines\software_win32_gdi\evas_engine.c" +"C:\Projects\mbed\evas\src\lib\engines\software_win32_gdi\evas_outbuf.c" +"C:\Projects\mbed\evas\src\lib\engines\software_win32_gdi\evas_win32_buffer.c" +"C:\Projects\mbed\evas\src\lib\engines\software_win32_gdi\evas_win32_main.c" +"C:\Projects\mbed\evas\src\lib\file\evas_path.c" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E5.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E6.tmp" with contents +[ +/nologo /out:"emulatorDbg\evaslib.lib" +.\emulatorDbg\evas_callbacks.obj +.\emulatorDbg\evas_clip.obj +.\emulatorDbg\evas_data.obj +.\emulatorDbg\evas_events.obj +.\emulatorDbg\evas_layer.obj +.\emulatorDbg\evas_main.obj +.\emulatorDbg\evas_name.obj +.\emulatorDbg\evas_object_gradient.obj +.\emulatorDbg\evas_object_image.obj +.\emulatorDbg\evas_object_line.obj +.\emulatorDbg\evas_object_main.obj +.\emulatorDbg\evas_object_polygon.obj +.\emulatorDbg\evas_object_rectangle.obj +.\emulatorDbg\evas_object_text.obj +.\emulatorDbg\evas_rectangle.obj +.\emulatorDbg\evas_render.obj +.\emulatorDbg\evas_stack.obj +.\emulatorDbg\evas_hash.obj +.\emulatorDbg\evas_list.obj +.\emulatorDbg\evas_object_list.obj +.\emulatorDbg\evas_blend_alpha_color_pixel.obj +.\emulatorDbg\evas_blend_color_pixel.obj +.\emulatorDbg\evas_blend_main.obj +.\emulatorDbg\evas_blend_pixel_cmod_pixel.obj +.\emulatorDbg\evas_blend_pixel_mul_pixel.obj +.\emulatorDbg\evas_blend_pixel_pixel.obj +.\emulatorDbg\evas_blit_main.obj +.\emulatorDbg\evas_convert_color.obj +.\emulatorDbg\evas_convert_gry_1.obj +.\emulatorDbg\evas_convert_gry_4.obj +.\emulatorDbg\evas_convert_gry_8.obj +.\emulatorDbg\evas_convert_main.obj +.\emulatorDbg\evas_convert_rgb_16.obj +.\emulatorDbg\evas_convert_rgb_24.obj +.\emulatorDbg\evas_convert_rgb_32.obj +.\emulatorDbg\evas_convert_rgb_8.obj +.\emulatorDbg\evas_cpu.obj +.\emulatorDbg\evas_draw_main.obj +.\emulatorDbg\evas_font_draw.obj +.\emulatorDbg\evas_font_load.obj +.\emulatorDbg\evas_font_main.obj +.\emulatorDbg\evas_font_query.obj +.\emulatorDbg\evas_gradient_main.obj +.\emulatorDbg\evas_image_load.obj +.\emulatorDbg\evas_image_main.obj +.\emulatorDbg\evas_line_main.obj +.\emulatorDbg\evas_polygon_main.obj +.\emulatorDbg\evas_rectangle_main.obj +.\emulatorDbg\evas_scale_main.obj +.\emulatorDbg\evas_scale_sample.obj +.\emulatorDbg\evas_scale_smooth.obj +.\emulatorDbg\evas_tiler.obj +.\emulatorDbg\evas_engine.obj +.\emulatorDbg\evas_outbuf.obj +.\emulatorDbg\evas_win32_buffer.obj +.\emulatorDbg\evas_win32_main.obj +.\emulatorDbg\evas_path.obj +"..\..\..\freetype-2.1.2\builds\win32\evisualc\emulatorDbg\freetype212.lib" +"..\..\..\jpeg-6b\wince\libjpeg\emulatorDbg\libjpeg.lib" +"..\..\..\libpng-1.2.4\projects\wince\emulatorDbg\lpngce.lib" +] +Creating command line "link.exe -lib @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E6.tmp" +

    Output Window

    +Compiling... +evas_callbacks.c +evas_clip.c +evas_data.c +evas_events.c +evas_layer.c +evas_main.c +evas_name.c +evas_object_gradient.c +evas_object_image.c +C:\Projects\mbed\evas\src\lib\canvas\evas_object_image.c(706) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\canvas\evas_object_image.c(710) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\canvas\evas_object_image.c(975) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\canvas\evas_object_image.c(979) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data +evas_object_line.c +evas_object_main.c +evas_object_polygon.c +evas_object_rectangle.c +evas_object_text.c +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(103) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(119) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(131) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(141) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(159) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(187) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(512) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(512) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(685) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(686) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data +evas_rectangle.c +evas_render.c +evas_stack.c +evas_hash.c +evas_list.c +evas_object_list.c +Generating Code... +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(103) : warning C4761: integral size mismatch in argument; conversion supplied +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(119) : warning C4761: integral size mismatch in argument; conversion supplied +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(131) : warning C4761: integral size mismatch in argument; conversion supplied +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(141) : warning C4761: integral size mismatch in argument; conversion supplied +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(159) : warning C4761: integral size mismatch in argument; conversion supplied +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(187) : warning C4761: integral size mismatch in argument; conversion supplied +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(514) : warning C4761: integral size mismatch in argument; conversion supplied +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(514) : warning C4761: integral size mismatch in argument; conversion supplied +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(687) : warning C4761: integral size mismatch in argument; conversion supplied +C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(687) : warning C4761: integral size mismatch in argument; conversion supplied +Compiling... +evas_blend_alpha_color_pixel.c +evas_blend_color_pixel.c +evas_blend_main.c +evas_blend_pixel_cmod_pixel.c +evas_blend_pixel_mul_pixel.c +evas_blend_pixel_pixel.c +evas_blit_main.c +evas_convert_color.c +evas_convert_gry_1.c +evas_convert_gry_4.c +evas_convert_gry_8.c +evas_convert_main.c +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(206) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(208) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(215) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(217) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(229) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(231) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(238) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(240) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(252) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(254) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(261) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(263) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(275) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(277) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(285) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(287) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(299) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(301) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(309) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(311) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(324) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(328) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(337) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(341) : warning C4550: expression evaluates to a function which is missing an argument list +evas_convert_rgb_16.c +evas_convert_rgb_24.c +evas_convert_rgb_32.c +evas_convert_rgb_8.c +evas_cpu.c +evas_draw_main.c +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(498) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(512) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(520) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(541) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(545) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(561) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(573) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(581) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(600) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(604) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(620) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(624) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(631) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(635) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(638) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(654) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(666) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(674) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(686) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(690) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(705) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(717) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(721) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(752) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(772) : warning C4550: expression evaluates to a function which is missing an argument list +C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(776) : warning C4550: expression evaluates to a function which is missing an argument list +evas_font_draw.c +evas_font_load.c +Generating Code... +Compiling... +evas_font_main.c +evas_font_query.c +evas_gradient_main.c +evas_image_load.c +..\..\..\jpeg-6b\jmorecfg.h(161) : warning C4142: benign redefinition of type +..\..\..\jpeg-6b\jmorecfg.h(215) : warning C4005: 'FAR' : macro redefinition + C:\Program Files\Windows CE Tools\wce400\STANDARDSDK\Include\emulator\windef.h(151) : see previous definition of 'FAR' +evas_image_main.c +evas_line_main.c +evas_polygon_main.c +C:\Projects\mbed\evas\src\lib\engines\common\evas_polygon_main.c(209) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\engines\common\evas_polygon_main.c(210) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\engines\common\evas_polygon_main.c(250) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data +C:\Projects\mbed\evas\src\lib\engines\common\evas_polygon_main.c(252) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data +evas_rectangle_main.c +evas_scale_main.c +evas_scale_sample.c +evas_scale_smooth.c +C:\Projects\mbed\evas\src\lib\engines\common\evas_scale_smooth_scaler.c(29) : warning C4101: 'divx' : unreferenced local variable +C:\Projects\mbed\evas\src\lib\engines\common\evas_scale_smooth_scaler.c(29) : warning C4101: 'divy' : unreferenced local variable +C:\Projects\mbed\evas\src\lib\engines\common\evas_scale_smooth_scaler.c(844) : warning C4101: 'dyy' : unreferenced local variable +evas_tiler.c +evas_engine.c +evas_outbuf.c +evas_win32_buffer.c +evas_win32_main.c +evas_path.c +Generating Code... +Creating library... + + + +

    Results

    +evaslib.lib - 0 error(s), 83 warning(s) +
    + + diff --git a/legacy/evas/proj/win32_gdi/evaslib.vco b/legacy/evas/proj/win32_gdi/evaslib.vco new file mode 100644 index 0000000000000000000000000000000000000000..f0c0ba83d42fa159fe056e00b8537a376b167a17 GIT binary patch literal 37888 zcmeHQZ)_CD6`wmB??D`D^VcCxxe!uFFvKyGx|F*7v56azVoU`7;7S-{#ZFv&;#_bf znmAHESS_hgh19F45>laxO8wwQR6;3IQA;Jh*-9ZL1%W{ca#|{r)+H7yrN1}3&-d2c zEq8{qN%h8hp5N}y?!0+3^XBclnc4on;(>R6Gw-q)6RJ#}`S0zira+tz0TbC!WN`iV zZNeNA#wiV7APL+8uTj)n9w;9)1w?i3fFhu&plP6oKvd5UBc2ZW5(rJe6oY1fW`bsc zW`ii*T*M`yM?mvHkAg};kAc1nnh&CML<@kQ04)SP3Hl0X5oj^!DbUj(N>_$>DQFq! z8BjUsSx^ONIcNol(yc`NHBcq!>!4MjZ-7>Vz6q)VQMxsV*Mio8)`O}+HJ}Zk=Rma} zO85U9>P-j!I!zQM--UR$c@?G3Jj_9hVflpba@&CqM&4Uc`G*k6l#^~l?z_z^CT?P; z$uyf5aIyt_G=W+;Q9v9u;nDnwkAS43mn@&uSP|AC_YSic`L_UNABs#kM16<)O{V!5 zQZ`=xHD;%2Ls>}*;|bG|Kjq6IlV{AKL|*Xxvi2zH#HX*EM>{I9|4=IYzhJQ1a&+q&93=C~&#Je4XRBph3dW zG>Jo>JGJi*IXy#G?Rb~N=6LDfN1vJhy4g&bQT?6%{H!TiXf_}Go!QI@V((v#^KC%(FBRwR;Y-qM{C}M_RGn>0Y6{hP^m#=Q{XX_J*6KCA=PbQzG(3T|6hH!-$ zcP@k zLg2BDyuiF|`AFC2Nr%hu-Ov$~qtNvB=S9x_+UDm^{v*TDWGS31U|s~ghCoEN9v zH#j3@`jelMH457^#n{k;c1PFzx%-dkI)xx!cx(tN_wj*=%j^23+~nm-!vFs!Y&6@y ze|FX!X#3R4a{&ErmM2?(YJ(nBVEY}{2fZgyAo&i=aCI};P8{-CsC+`ir2&s7*U#9yrHqBGFgxzrYs+9u#<3U~?g< zdkY0F5t#YoxC?Jcq)#fRRG7rUOIB_tFW+!BdiRhXY!LVF6gVdEK7o4#J}B^EfjNJU z^T^%`O}Bku$4k%bX={l}k?xX4Y&e)#EJf%yY$`0Fv zH$tl4>lp8&?~OP#me6yesDHM@8i48CWb!$k>_zZ7h;cBoJrpT|J|H5#f`UVK80vxg zR8YFH*Jk4lTGn6UBYA(=RC+ps?wd@xfD!s@y>aMu*B%RynVLIO` zaHqiC0`C_%A@C7_dj+QF1_h~ec_?NXaiv>*T|Zjwemtv@?!pE zJkPUlYEfqm7b3Qu9bYu$TzlFruS`og$iC@b;@*=@J1Q!@>iFA{Yu}XB4cYgr0?)oV z3jKMmFNAjtx4$NE++B6vIkIfX67yMXeqh_-nm=B05};m?0beITr!anYzdU5m_2PKV z2cJ1-yz@uP|LM@V)1cVzhn;KQ`QEkvw&wrdk?XTW+j?K7b zpWpS1L4&(Z#l#RVG0Xu&nq-NsNeqAKC!&@&-%nUhI?#+H?BA*JzV*n z%g)Dq9v80*{2zfMOOtJ5mcUVg?X$(dVo$%(sah{x>!EATi{hT`0=Em?CGeX99}xKG z0v{DvuwY?c@@&KpRs1e^zkn|5N|p7uo+8!OY(mHa@=*jamJF zo+^|&khP=w|B~+)(ymtjAGeTTUkSg*bLudDL8jmTbpD^t|4aA#=)KIB3AEj~5&Gin zeN*cHa|M{n@2T_uT-gNK$2$K{=l@YFNvHo(*Y7dURgZ7$*!@a8*3{e*UF5CzUbHIuY&5pJp-&c*Sk z+;mTR7o$s~ovm$gz8>A%6p!xe=!~{^H0^BJnSI(!^LL*-hIuO69bx?A5~*C2e_aWx|5w+4Q%lhG-)?_M=g++#zpTX@-_kScw=>Ct~9(4almW2O(E6AQo-XT%;K5h122IZyuKi->+Gx>d7 z_kYy=ANBh$`u!LE{!8w@|ETl-lE44!{69ISyYsem{Wr-ZdmAzn`$qkL>i<*!UvB(= z1-8#VjPD$&|Bto0{9S_2>HNRs_^ +# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (WCE x86) Static Library" 0x8304 +# TARGTYPE "Win32 (WCE MIPS16) Static Library" 0x8904 +# TARGTYPE "Win32 (WCE SH4) Static Library" 0x8604 +# TARGTYPE "Win32 (WCE MIPSII) Static Library" 0xa104 +# TARGTYPE "Win32 (WCE MIPSIV_FP) Static Library" 0x9204 +# TARGTYPE "Win32 (WCE SH3) Static Library" 0x8104 +# TARGTYPE "Win32 (WCE ARMV4) Static Library" 0xa304 +# TARGTYPE "Win32 (WCE ARMV4I) Static Library" 0xa504 +# TARGTYPE "Win32 (WCE emulator) Static Library" 0xa604 +# TARGTYPE "Win32 (WCE MIPSII_FP) Static Library" 0xa204 +# TARGTYPE "Win32 (WCE ARMV4T) Static Library" 0xa404 +# TARGTYPE "Win32 (WCE MIPSIV) Static Library" 0x9604 + +CFG=evaslib - Win32 (WCE MIPSII_FP) Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "evaslib.vcn". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "evaslib.vcn" CFG="evaslib - Win32 (WCE MIPSII_FP) Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "evaslib - Win32 (WCE MIPSII_FP) Release" (based on "Win32 (WCE MIPSII_FP) Static Library") +!MESSAGE "evaslib - Win32 (WCE MIPSII_FP) Debug" (based on "Win32 (WCE MIPSII_FP) Static Library") +!MESSAGE "evaslib - Win32 (WCE MIPSII) Release" (based on "Win32 (WCE MIPSII) Static Library") +!MESSAGE "evaslib - Win32 (WCE MIPSII) Debug" (based on "Win32 (WCE MIPSII) Static Library") +!MESSAGE "evaslib - Win32 (WCE SH4) Release" (based on "Win32 (WCE SH4) Static Library") +!MESSAGE "evaslib - Win32 (WCE SH4) Debug" (based on "Win32 (WCE SH4) Static Library") +!MESSAGE "evaslib - Win32 (WCE SH3) Release" (based on "Win32 (WCE SH3) Static Library") +!MESSAGE "evaslib - Win32 (WCE SH3) Debug" (based on "Win32 (WCE SH3) Static Library") +!MESSAGE "evaslib - Win32 (WCE MIPSIV) Release" (based on "Win32 (WCE MIPSIV) Static Library") +!MESSAGE "evaslib - Win32 (WCE MIPSIV) Debug" (based on "Win32 (WCE MIPSIV) Static Library") +!MESSAGE "evaslib - Win32 (WCE emulator) Release" (based on "Win32 (WCE emulator) Static Library") +!MESSAGE "evaslib - Win32 (WCE emulator) Debug" (based on "Win32 (WCE emulator) Static Library") +!MESSAGE "evaslib - Win32 (WCE ARMV4I) Release" (based on "Win32 (WCE ARMV4I) Static Library") +!MESSAGE "evaslib - Win32 (WCE ARMV4I) Debug" (based on "Win32 (WCE ARMV4I) Static Library") +!MESSAGE "evaslib - Win32 (WCE MIPSIV_FP) Release" (based on "Win32 (WCE MIPSIV_FP) Static Library") +!MESSAGE "evaslib - Win32 (WCE MIPSIV_FP) Debug" (based on "Win32 (WCE MIPSIV_FP) Static Library") +!MESSAGE "evaslib - Win32 (WCE ARMV4) Release" (based on "Win32 (WCE ARMV4) Static Library") +!MESSAGE "evaslib - Win32 (WCE ARMV4) Debug" (based on "Win32 (WCE ARMV4) Static Library") +!MESSAGE "evaslib - Win32 (WCE MIPS16) Release" (based on "Win32 (WCE MIPS16) Static Library") +!MESSAGE "evaslib - Win32 (WCE MIPS16) Debug" (based on "Win32 (WCE MIPS16) Static Library") +!MESSAGE "evaslib - Win32 (WCE ARMV4T) Release" (based on "Win32 (WCE ARMV4T) Static Library") +!MESSAGE "evaslib - Win32 (WCE ARMV4T) Debug" (based on "Win32 (WCE ARMV4T) Static Library") +!MESSAGE "evaslib - Win32 (WCE x86) Release" (based on "Win32 (WCE x86) Static Library") +!MESSAGE "evaslib - Win32 (WCE x86) Debug" (based on "Win32 (WCE x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +# PROP ATL_Project 2 + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MIPSII_FPRel" +# PROP BASE Intermediate_Dir "MIPSII_FPRel" +# PROP BASE CPU_ID "{D8AC856C-B213-4895-9E83-9EC51A55201E}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "MIPSII_FPRel" +# PROP Intermediate_Dir "MIPSII_FPRel" +# PROP CPU_ID "{D8AC856C-B213-4895-9E83-9EC51A55201E}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPSII_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QMmips2 /QMFPE- /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPSII_FP" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QMmips2 /QMFPE- /O2 /M$(CECrtMT) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "MIPSII_FPDbg" +# PROP BASE Intermediate_Dir "MIPSII_FPDbg" +# PROP BASE CPU_ID "{D8AC856C-B213-4895-9E83-9EC51A55201E}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "MIPSII_FPDbg" +# PROP Intermediate_Dir "MIPSII_FPDbg" +# PROP CPU_ID "{D8AC856C-B213-4895-9E83-9EC51A55201E}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPSII_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QMmips2 /QMFPE- /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPSII_FP" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QMmips2 /QMFPE- /M$(CECrtMTDebug) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MIPSIIRel" +# PROP BASE Intermediate_Dir "MIPSIIRel" +# PROP BASE CPU_ID "{689DDC64-9D9D-11D5-96F8-00207802C01C}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "MIPSIIRel" +# PROP Intermediate_Dir "MIPSIIRel" +# PROP CPU_ID "{689DDC64-9D9D-11D5-96F8-00207802C01C}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QMmips2 /QMFPE /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QMmips2 /QMFPE /O2 /M$(CECrtMT) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "MIPSIIDbg" +# PROP BASE Intermediate_Dir "MIPSIIDbg" +# PROP BASE CPU_ID "{689DDC64-9D9D-11D5-96F8-00207802C01C}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "MIPSIIDbg" +# PROP Intermediate_Dir "MIPSIIDbg" +# PROP CPU_ID "{689DDC64-9D9D-11D5-96F8-00207802C01C}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QMmips2 /QMFPE /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QMmips2 /QMFPE /M$(CECrtMTDebug) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SH4Rel" +# PROP BASE Intermediate_Dir "SH4Rel" +# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "SH4Rel" +# PROP Intermediate_Dir "SH4Rel" +# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=shcl.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /Qsh4 /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "SHx" /D "SH4" /D "_SH4_" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /Qsh4 /O2 /M$(CECrtMT) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SH4Dbg" +# PROP BASE Intermediate_Dir "SH4Dbg" +# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "SH4Dbg" +# PROP Intermediate_Dir "SH4Dbg" +# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=shcl.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /Qsh4 /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "SHx" /D "SH4" /D "_SH4_" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /Qsh4 /M$(CECrtMTDebug) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SH3Rel" +# PROP BASE Intermediate_Dir "SH3Rel" +# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "SH3Rel" +# PROP Intermediate_Dir "SH3Rel" +# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=shcl.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "SHx" /D "SH3" /D "_SH3_" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /O2 /M$(CECrtMT) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SH3Dbg" +# PROP BASE Intermediate_Dir "SH3Dbg" +# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "SH3Dbg" +# PROP Intermediate_Dir "SH3Dbg" +# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=shcl.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "SHx" /D "SH3" /D "_SH3_" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /M$(CECrtMTDebug) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MIPSIVRel" +# PROP BASE Intermediate_Dir "MIPSIVRel" +# PROP BASE CPU_ID "{0B2FE524-26C5-4194-8CEF-B1582DEB5A98}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "MIPSIVRel" +# PROP Intermediate_Dir "MIPSIVRel" +# PROP CPU_ID "{0B2FE524-26C5-4194-8CEF-B1582DEB5A98}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE /O2 /M$(CECrtMT) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "MIPSIVDbg" +# PROP BASE Intermediate_Dir "MIPSIVDbg" +# PROP BASE CPU_ID "{0B2FE524-26C5-4194-8CEF-B1582DEB5A98}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "MIPSIVDbg" +# PROP Intermediate_Dir "MIPSIVDbg" +# PROP CPU_ID "{0B2FE524-26C5-4194-8CEF-B1582DEB5A98}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE /M$(CECrtMTDebug) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "emulatorRel" +# PROP BASE Intermediate_Dir "emulatorRel" +# PROP BASE CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "emulatorRel" +# PROP Intermediate_Dir "emulatorRel" +# PROP CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "NDEBUG" /D "_LIB" /YX /Gs8192 /GF /O2 /c +# ADD CPP /nologo /W3 /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "_i386_" /D "_X86_" /D "x86" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /Gs8192 /GF /O2 /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "emulatorDbg" +# PROP BASE Intermediate_Dir "emulatorDbg" +# PROP BASE CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "emulatorDbg" +# PROP Intermediate_Dir "emulatorDbg" +# PROP CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "_LIB" /YX /Gs8192 /GF /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "_i386_" /D "_X86_" /D "x86" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /Gs8192 /GF /c +# SUBTRACT CPP /Fr /YX +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ARMV4IRel" +# PROP BASE Intermediate_Dir "ARMV4IRel" +# PROP BASE CPU_ID "{DC70F430-E78B-494F-A9D5-62ADC56443B8}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ARMV4IRel" +# PROP Intermediate_Dir "ARMV4IRel" +# PROP CPU_ID "{DC70F430-E78B-494F-A9D5-62ADC56443B8}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clarm.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "ARMV4I" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QRarch4T /QRinterwork-return /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "ARM" /D "_ARM_" /D "ARMV4I" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QRarch4T /QRinterwork-return /O2 /M$(CECrtMT) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "ARMV4IDbg" +# PROP BASE Intermediate_Dir "ARMV4IDbg" +# PROP BASE CPU_ID "{DC70F430-E78B-494F-A9D5-62ADC56443B8}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "ARMV4IDbg" +# PROP Intermediate_Dir "ARMV4IDbg" +# PROP CPU_ID "{DC70F430-E78B-494F-A9D5-62ADC56443B8}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clarm.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "ARMV4I" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QRarch4T /QRinterwork-return /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "ARM" /D "_ARM_" /D "ARMV4I" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QRarch4T /QRinterwork-return /M$(CECrtMTDebug) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MIPSIV_FPRel" +# PROP BASE Intermediate_Dir "MIPSIV_FPRel" +# PROP BASE CPU_ID "{046A430D-7770-48AB-89B5-24C2D300B03F}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "MIPSIV_FPRel" +# PROP Intermediate_Dir "MIPSIV_FPRel" +# PROP CPU_ID "{046A430D-7770-48AB-89B5-24C2D300B03F}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "MIPSIV_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE- /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "MIPSIV_FP" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE- /O2 /M$(CECrtMT) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "MIPSIV_FPDbg" +# PROP BASE Intermediate_Dir "MIPSIV_FPDbg" +# PROP BASE CPU_ID "{046A430D-7770-48AB-89B5-24C2D300B03F}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "MIPSIV_FPDbg" +# PROP Intermediate_Dir "MIPSIV_FPDbg" +# PROP CPU_ID "{046A430D-7770-48AB-89B5-24C2D300B03F}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "MIPSIV_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE- /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "MIPSIV_FP" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE- /M$(CECrtMTDebug) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ARMV4Rel" +# PROP BASE Intermediate_Dir "ARMV4Rel" +# PROP BASE CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ARMV4Rel" +# PROP Intermediate_Dir "ARMV4Rel" +# PROP CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clarm.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "NDEBUG" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "NDEBUG" /D "ARM" /D "_ARM_" /D "ARMV4" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /O2 /M$(CECrtMT) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "ARMV4Dbg" +# PROP BASE Intermediate_Dir "ARMV4Dbg" +# PROP BASE CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "ARMV4Dbg" +# PROP Intermediate_Dir "ARMV4Dbg" +# PROP CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clarm.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "ARM" /D "_ARM_" /D "ARMV4" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /M$(CECrtMTDebug) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MIPS16Rel" +# PROP BASE Intermediate_Dir "MIPS16Rel" +# PROP BASE CPU_ID "{D6519013-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "MIPS16Rel" +# PROP Intermediate_Dir "MIPS16Rel" +# PROP CPU_ID "{D6519013-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPS16" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_MIPS16_" /D "MIPS16SUPPORT" /D "_LIB" /YX /QMmips16 /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPS16" /D "NDEBUG" /D "_MIPS16_" /D "MIPS16SUPPORT" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QMmips16 /O2 /M$(CECrtMT) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "MIPS16Dbg" +# PROP BASE Intermediate_Dir "MIPS16Dbg" +# PROP BASE CPU_ID "{D6519013-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "MIPS16Dbg" +# PROP Intermediate_Dir "MIPS16Dbg" +# PROP CPU_ID "{D6519013-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clmips.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPS16" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_MIPS16_" /D "MIPS16SUPPORT" /D "_LIB" /YX /QMmips16 /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPS16" /D "_MIPS16_" /D "MIPS16SUPPORT" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QMmips16 /M$(CECrtMTDebug) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ARMV4TRel" +# PROP BASE Intermediate_Dir "ARMV4TRel" +# PROP BASE CPU_ID "{F52316A9-3B7C-4FE7-A67F-68350B41240D}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ARMV4TRel" +# PROP Intermediate_Dir "ARMV4TRel" +# PROP CPU_ID "{F52316A9-3B7C-4FE7-A67F-68350B41240D}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clthumb.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "THUMB" /D "_THUMB_" /D "ARMV4T" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QRarch4T /QRinterwork-return /O2 /M$(CECrtMT) /c +# ADD CPP /nologo /W3 /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "ARM" /D "_ARM_" /D "THUMB" /D "_THUMB_" /D "ARMV4T" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QRarch4T /QRinterwork-return /O2 /M$(CECrtMT) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "ARMV4TDbg" +# PROP BASE Intermediate_Dir "ARMV4TDbg" +# PROP BASE CPU_ID "{F52316A9-3B7C-4FE7-A67F-68350B41240D}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "ARMV4TDbg" +# PROP Intermediate_Dir "ARMV4TDbg" +# PROP CPU_ID "{F52316A9-3B7C-4FE7-A67F-68350B41240D}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=clthumb.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "THUMB" /D "_THUMB_" /D "ARMV4T" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QRarch4T /QRinterwork-return /M$(CECrtMTDebug) /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "ARM" /D "_ARM_" /D "THUMB" /D "_THUMB_" /D "ARMV4T" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /QRarch4T /QRinterwork-return /M$(CECrtMTDebug) /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "X86Rel" +# PROP BASE Intermediate_Dir "X86Rel" +# PROP BASE CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "X86Rel" +# PROP Intermediate_Dir "X86Rel" +# PROP CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "NDEBUG" /D "_LIB" /YX /Gs8192 /GF /O2 /c +# ADD CPP /nologo /W3 /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "_i386_" /D "_X86_" /D "x86" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /Gs8192 /GF /O2 /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "X86Dbg" +# PROP BASE Intermediate_Dir "X86Dbg" +# PROP BASE CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}" +# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "X86Dbg" +# PROP Intermediate_Dir "X86Dbg" +# PROP CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}" +# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" +# PROP Target_Dir "" +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "_LIB" /YX /Gs8192 /GF /c +# ADD CPP /nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "_i386_" /D "_X86_" /D "x86" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "MBCS" /D "_MBCS" /D "_LIB" /YX /Gs8192 /GF /c +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo + +!ENDIF + +# Begin Target + +# Name "evaslib - Win32 (WCE MIPSII_FP) Release" +# Name "evaslib - Win32 (WCE MIPSII_FP) Debug" +# Name "evaslib - Win32 (WCE MIPSII) Release" +# Name "evaslib - Win32 (WCE MIPSII) Debug" +# Name "evaslib - Win32 (WCE SH4) Release" +# Name "evaslib - Win32 (WCE SH4) Debug" +# Name "evaslib - Win32 (WCE SH3) Release" +# Name "evaslib - Win32 (WCE SH3) Debug" +# Name "evaslib - Win32 (WCE MIPSIV) Release" +# Name "evaslib - Win32 (WCE MIPSIV) Debug" +# Name "evaslib - Win32 (WCE emulator) Release" +# Name "evaslib - Win32 (WCE emulator) Debug" +# Name "evaslib - Win32 (WCE ARMV4I) Release" +# Name "evaslib - Win32 (WCE ARMV4I) Debug" +# Name "evaslib - Win32 (WCE MIPSIV_FP) Release" +# Name "evaslib - Win32 (WCE MIPSIV_FP) Debug" +# Name "evaslib - Win32 (WCE ARMV4) Release" +# Name "evaslib - Win32 (WCE ARMV4) Debug" +# Name "evaslib - Win32 (WCE MIPS16) Release" +# Name "evaslib - Win32 (WCE MIPS16) Debug" +# Name "evaslib - Win32 (WCE ARMV4T) Release" +# Name "evaslib - Win32 (WCE ARMV4T) Debug" +# Name "evaslib - Win32 (WCE x86) Release" +# Name "evaslib - Win32 (WCE x86) Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "canvas" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_callbacks.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_clip.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_C=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_C=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_C=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_C=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_C=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_data.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_D=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_D=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_D=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_D=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_D=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_events.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_E=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_E=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_E=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_E=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_E=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_layer.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_L=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_L=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_L=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_L=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_M=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_directfb.h"\ + "..\..\src\lib\include\evas_engine_api_fb.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_engine_api_software_x11.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_M=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_M=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_engine_api_directfb.h"\ + "..\..\src\lib\canvas\evas_engine_api_fb.h"\ + "..\..\src\lib\canvas\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\canvas\evas_engine_api_software_x11.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_M=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_M=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_engine_api_directfb.h"\ + "..\..\src\lib\canvas\evas_engine_api_fb.h"\ + "..\..\src\lib\canvas\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\canvas\evas_engine_api_software_x11.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_name.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_N=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_N=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_N=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_N=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_N=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_object_gradient.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_O=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_O=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_O=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_O=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_O=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_object_image.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_OB=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_OB=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_OB=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_OB=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_OB=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_object_line.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_OBJ=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_OBJ=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_OBJ=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_OBJ=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_OBJ=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_object_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_OBJE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_OBJE=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_OBJE=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_OBJE=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_OBJE=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_object_polygon.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_OBJEC=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_OBJEC=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_OBJEC=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_object_rectangle.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_OBJECT=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_OBJECT=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_OBJECT=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_object_text.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_OBJECT_=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_OBJECT_=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_OBJECT_=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_rectangle.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_R=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_R=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_R=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_R=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_render.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_RE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_RE=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_RE=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_RE=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_RE=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\canvas\evas_stack.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_S=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_S=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_S=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_S=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_S=\ + "..\..\src\lib\canvas\evas_common.h"\ + "..\..\src\lib\canvas\evas_private.h"\ + + +!ENDIF + +# End Source File +# End Group +# Begin Group "data" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\src\lib\data\evas_hash.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_H=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_H=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_H=\ + "..\..\src\lib\data\evas_common.h"\ + "..\..\src\lib\data\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_H=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_H=\ + "..\..\src\lib\data\evas_common.h"\ + "..\..\src\lib\data\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\data\evas_list.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_LI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_LI=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_LI=\ + "..\..\src\lib\data\evas_common.h"\ + "..\..\src\lib\data\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_LI=\ + "..\..\src\lib\Evas.h"\ + +NODEP_CPP_EVAS_LI=\ + "..\..\src\lib\data\evas_common.h"\ + "..\..\src\lib\data\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\data\evas_object_list.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_OBJECT_L=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# End Group +# Begin Group "engines" + +# PROP Default_Filter "" +# Begin Group "common" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_blend_alpha_color_pixel.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_B=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_blend_color_pixel.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_BL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_blend_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_BLE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_blend_pixel_cmod_pixel.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_BLEN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_blend_pixel_mul_pixel.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_BLEND=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_blend_pixel_pixel.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_BLEND_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_blit_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_BLI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_convert_color.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_CO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_convert_gry_1.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_CON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_convert_gry_4.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_CONV=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_convert_gry_8.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_CONVE=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_convert_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_CONVER=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_convert_rgb_16.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_CONVERT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_convert_rgb_24.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_CONVERT_=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_convert_rgb_32.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_CONVERT_R=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_convert_rgb_8.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_CONVERT_RG=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_cpu.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_CP=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_draw_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_DR=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_font_draw.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_F=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_font_load.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_FO=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_font_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_FON=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_font_query.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_FONT=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_gradient_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_G=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_image_load.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + {$(INCLUDE)}"jconfig.h"\ + {$(INCLUDE)}"jerror.h"\ + {$(INCLUDE)}"jmorecfg.h"\ + {$(INCLUDE)}"jpegint.h"\ + {$(INCLUDE)}"pngconf.h"\ + {$(INCLUDE)}"zconf.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_I=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\..\jpeg-6b\jpeglib.h"\ + "..\..\..\libpng-1.2.4\png.h"\ + "..\..\..\zlib\zlib.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\..\libpng-1.2.4\alloc.h"\ + ".\conf.h"\ + ".\error.h"\ + ".\morecfg.h"\ + ".\ngconf.h"\ + ".\pegint.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_I=\ + "..\..\config.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\src\lib\engines\common\evas_common.h"\ + "..\..\src\lib\engines\common\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_I=\ + "..\..\config.h"\ + +NODEP_CPP_EVAS_I=\ + "..\..\src\lib\engines\common\evas_common.h"\ + "..\..\src\lib\engines\common\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_image_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_IM=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_line_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_LIN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_polygon_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_P=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_rectangle_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_REC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_scale_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_SC=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_scale_sample.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_SCA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_scale_smooth.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_SCAL=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_mmx.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_SCAL=\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + +NODEP_CPP_EVAS_SCAL=\ + "..\..\src\lib\engines\common\evas_common.h"\ + "..\..\src\lib\engines\common\evas_mmx.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_SCAL=\ + "..\..\src\lib\engines\common\evas_scale_smooth_scaler.c"\ + +NODEP_CPP_EVAS_SCAL=\ + "..\..\src\lib\engines\common\evas_common.h"\ + "..\..\src\lib\engines\common\evas_mmx.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\common\evas_tiler.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_T=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ENDIF + +# End Source File +# End Group +# Begin Group "software_win32_gdi" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\src\lib\engines\software_win32_gdi\evas_engine.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_EN=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_EN=\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +NODEP_CPP_EVAS_EN=\ + "..\..\src\lib\engines\software_win32_gdi\evas_common.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_EN=\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\Evas.h"\ + "..\..\src\lib\Evas_Engine_Software_win32_gdi.h"\ + +NODEP_CPP_EVAS_EN=\ + "..\..\src\lib\engines\software_win32_gdi\evas_common.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine_api_software_win32_gdi.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_private.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\software_win32_gdi\evas_engine.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\software_win32_gdi\evas_outbuf.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_OU=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_OU=\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + +NODEP_CPP_EVAS_OU=\ + "..\..\src\lib\engines\software_win32_gdi\evas_common.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_OU=\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + +NODEP_CPP_EVAS_OU=\ + "..\..\src\lib\engines\software_win32_gdi\evas_common.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\software_win32_gdi\evas_win32_buffer.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_W=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_W=\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + +NODEP_CPP_EVAS_W=\ + "..\..\src\lib\engines\software_win32_gdi\evas_common.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_W=\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + +NODEP_CPP_EVAS_W=\ + "..\..\src\lib\engines\software_win32_gdi\evas_common.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\src\lib\engines\software_win32_gdi\evas_win32_main.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_WI=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_WI=\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + +NODEP_CPP_EVAS_WI=\ + "..\..\src\lib\engines\software_win32_gdi\evas_common.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_WI=\ + "..\..\src\lib\engines\software_win32_gdi\evas_engine.h"\ + +NODEP_CPP_EVAS_WI=\ + "..\..\src\lib\engines\software_win32_gdi\evas_common.h"\ + + +!ENDIF + +# End Source File +# End Group +# End Group +# Begin Group "file" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\src\lib\file\evas_path.c + +!IF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Release" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSII) Debug" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Release" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH4) Debug" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Release" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE SH3) Debug" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Release" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Release" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE emulator) Debug" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Release" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Release" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4) Debug" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Release" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE MIPS16) Debug" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Release" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Release" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ELSEIF "$(CFG)" == "evaslib - Win32 (WCE x86) Debug" + +DEP_CPP_EVAS_PA=\ + "..\..\..\freetype-2.1.2\include\freetype\config\ftheader.h"\ + "..\..\..\freetype-2.1.2\include\ft2build.h"\ + "..\..\config.h"\ + "..\..\src\lib\include\evas_common.h"\ + "..\..\src\lib\include\evas_options.h"\ + "..\..\src\lib\include\evas_private.h"\ + + +!ENDIF + +# End Source File +# End Group +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Source File + +SOURCE="..\..\..\freetype-2.1.2\builds\win32\evisualc\emulatorDbg\freetype212.lib" +# End Source File +# Begin Source File + +SOURCE="..\..\..\jpeg-6b\wince\libjpeg\emulatorDbg\libjpeg.lib" +# End Source File +# Begin Source File + +SOURCE="..\..\..\libpng-1.2.4\projects\wince\emulatorDbg\lpngce.lib" +# End Source File +# End Target +# End Project diff --git a/legacy/evas/proj/win32_gdi/evaslib.vcw b/legacy/evas/proj/win32_gdi/evaslib.vcw new file mode 100644 index 0000000000..46215f492e --- /dev/null +++ b/legacy/evas/proj/win32_gdi/evaslib.vcw @@ -0,0 +1,29 @@ +Microsoft eMbedded Visual Tools Workspace File, Format Version 4.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "evaslib"=.\evaslib.vcp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/legacy/evas/src/bin/Makefile.am b/legacy/evas/src/bin/Makefile.am new file mode 100644 index 0000000000..20f3c2e51c --- /dev/null +++ b/legacy/evas/src/bin/Makefile.am @@ -0,0 +1,76 @@ +## Process this file with automake to produce Makefile.in + +INCLUDES = \ +-I. -I$(top_srcdir)/src/lib -I$(includedir) -I$(top_srcdir) \ +@DIRECTFB_CFLAGS@ @qt_cflags@ @gl_cflags@ + +bin_PROGRAMS = \ +@ENGINE_SOFTWARE_X11_PRG@ \ +@ENGINE_DIRECTFB_PRG@ \ +@ENGINE_FB_PRG@ \ +@ENGINE_SOFTWARE_QTOPIA_PRG@ \ +@ENGINE_GL_X11_PRG@ + +EXTRA_PROGRAMS = \ +evas_software_x11_test \ +evas_software_x11_perf_test \ +evas_software_x11_perf_load \ +evas_directfb_test \ +evas_directfb_window \ +evas_fb_test \ +evas_software_qtopia_test \ +evas_gl_x11_test + +SUBDIRS = evas_software_win32 + +evas_software_x11_test_SOURCES = evas_test_main.h evas_test_main.c evas_software_x11_main.c +evas_software_x11_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @x_libs@ +evas_software_x11_test_LDFLAGS = $(LDFLAGS) +evas_software_x11_test_CFLAGS = $(CFLAGS) @x_cflags@ +evas_software_x11_test_DEPENDANCIES = $(top_builddir)/src/lib/libevas.la + +evas_software_x11_perf_test_SOURCES = evas_software_x11_perf_test.c +evas_software_x11_perf_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @x_libs@ +evas_software_x11_perf_test_LDFLAGS = $(LDFLAGS) +evas_software_x11_perf_test_CFLAGS = $(CFLAGS) @x_cflags@ +evas_software_x11_perf_test_DEPENDANCIES = $(top_builddir)/src/lib/libevas.la + +evas_software_x11_perf_load_SOURCES = evas_software_x11_perf_load.c +evas_software_x11_perf_load_LDADD = $(top_builddir)/src/lib/libevas.la -lm @x_libs@ +evas_software_x11_perf_load_LDFLAGS = $(LDFLAGS) +evas_software_x11_perf_load_CFLAGS = $(CFLAGS) @x_cflags@ +evas_software_x11_perf_load_DEPENDANCIES = $(top_builddir)/src/lib/libevas.la + +evas_directfb_test_SOURCES = evas_test_main.h evas_test_main.c evas_directfb_main.c +evas_directfb_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @DIRECTFB_LIBS@ +evas_directfb_test_LDFLAGS = $(LDFLAGS) +evas_directfb_test_CFLAGS = $(CFLAGS) @DIRECTFB_CFLAGS@ +evas_directfb_test_DEPENDANCIES = $(top_builddir)/src/lib/libevas.la + +evas_directfb_window_SOURCES = evas_test_main.h evas_test_main.c evas_directfb_window.c +evas_directfb_window_LDADD = $(top_builddir)/src/lib/libevas.la -lm @DIRECTFB_LIBS@ +evas_directfb_window_LDFLAGS = $(LDFLAGS) +evas_directfb_window_CFLAGS = $(CFLAGS) @DIRECTFB_CFLAGS@ +evas_directfb_window_DEPENDANCIES = $(top_builddir)/src/lib/libevas.la + +evas_fb_test_SOURCES = evas_test_main.h evas_test_main.c evas_fb_main.c +evas_fb_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm +evas_fb_test_LDFLAGS = $(LDFLAGS) +evas_fb_test_CFLAGS = $(CFLAGS) +evas_fb_test_DEPENDANCIES = $(top_builddir)/src/lib/libevas.la + +moc_evas_software_qtopia_main.cpp: evas_software_qtopia_main.h + @qt_moc@ evas_software_qtopia_main.h -o moc_evas_software_qtopia_main.cpp + +evas_software_qtopia_test_SOURCES = evas_test_main.h evas_test_main.c evas_software_qtopia_main.h evas_software_qtopia_main.cpp moc_evas_software_qtopia_main.cpp +evas_software_qtopia_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @qt_libs@ +evas_software_qtopia_test_LDFLAGS = $(LDFLAGS) +evas_software_qtopia_test_CFLAGS = $(CFLAGS) @qt_cflags@ +evas_software_qtopia_test_CXXFLAGS = $(CFLAGS) $(CXXFLAGS) @qt_cflags@ +evas_software_qtopia_test_DEPENDANCIES = $(top_builddir)/src/lib/libevas.la + +evas_gl_x11_test_SOURCES = evas_test_main.h evas_test_main.c evas_gl_x11_main.c +evas_gl_x11_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @x_libs@ @gl_libs@ +evas_gl_x11_test_LDFLAGS = $(LDFLAGS) +evas_gl_x11_test_CFLAGS = $(CFLAGS) @x_cflags@ @gl_cflags@ +evas_gl_x11_test_DEPENDANCIES = $(top_builddir)/src/lib/libevas.la diff --git a/legacy/evas/src/bin/evas_directfb_main.c b/legacy/evas/src/bin/evas_directfb_main.c new file mode 100644 index 0000000000..6aa54cc972 --- /dev/null +++ b/legacy/evas/src/bin/evas_directfb_main.c @@ -0,0 +1,132 @@ +#include "evas_test_main.h" + +#include + +#include "Evas.h" +#include "Evas_Engine_DirectFB.h" + +/* macro for a safe call to DirectFB functions */ +#define DFBCHECK(x...) \ + { \ + err = x; \ + if (err != DFB_OK) { \ + fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \ + DirectFBErrorFatal( #x, err ); \ + } \ + } + +int +main(int argc, char *argv[]) +{ + IDirectFB *dfb = NULL; + IDirectFBSurface *primary; + IDirectFBDisplayLayer *layer; + IDirectFBInputDevice *keyboard; + IDirectFBInputDevice *mouse; + IDirectFBEventBuffer *buffer; + DFBResult err; + DFBSurfaceDescription dsc; + DFBCardCapabilities caps; + DFBDisplayLayerConfig layer_config; + DFBInputEvent evt; + + int quit = 0; + int paused = 0; + + DFBCHECK(DirectFBInit(&argc, &argv)); + + /* create the super interface */ + DFBCHECK(DirectFBCreate(&dfb)); + + dfb->SetCooperativeLevel(dfb, DFSCL_FULLSCREEN); + + DFBCHECK(dfb->GetDisplayLayer(dfb, DLID_PRIMARY, &layer)); + layer->GetConfiguration(layer, &layer_config); + + /* get the primary surface, i.e. the surface of the primary layer we have + * exclusive access to */ + memset(&dsc, 0, sizeof(DFBSurfaceDescription)); + dsc.flags = DSDESC_CAPS | DSDESC_WIDTH | DSDESC_HEIGHT; + dsc.width = layer_config.width; + dsc.height = layer_config.height; + + dsc.caps = DSCAPS_PRIMARY; + + DFBCHECK(dfb->CreateSurface(dfb, &dsc, &primary)); + + DFBCHECK(dfb->GetInputDevice(dfb, DIDID_KEYBOARD, &keyboard)); + DFBCHECK(dfb->GetInputDevice(dfb, DIDID_MOUSE, &mouse)); + DFBCHECK(dfb->CreateEventBuffer(dfb, DICAPS_ALL, &buffer)); + + evas = evas_new(); + evas_output_method_set(evas, evas_render_method_lookup("directfb")); + evas_output_size_set(evas, win_w, win_h); + evas_output_viewport_set(evas, 0, 0, win_w, win_h); + { + Evas_Engine_Info_DirectFB *einfo; + + einfo = (Evas_Engine_Info_DirectFB *) evas_engine_info_get(evas); + + einfo->info.dfb = dfb; + einfo->info.surface = primary; + einfo->info.flags = DSDRAW_BLEND; + evas_engine_info_set(evas, (Evas_Engine_Info *) einfo); + } + setup(); + start_time = get_time(); + + while (!quit) + { + + while (buffer->GetEvent(buffer, DFB_EVENT(&evt)) == DFB_OK) + { + + switch (evt.type) + { + + case DIET_BUTTONPRESS: + switch (evt.button) + { + case DIBI_LEFT: + if (paused == 0) + paused = 1; + else if (paused == 1) + paused = 0; + break; + default: + break; + } + break; + case DIET_KEYPRESS: + switch (evt.key_symbol) + { + case DIKS_ESCAPE: + case DIKS_SMALL_Q: + case DIKS_CAPITAL_Q: + case DIKS_BACK: + case DIKS_STOP: + quit = 1; + break; + default: + + break; + } + + default: + break; + } + } + + if (!paused) + { + loop(); + evas_render(evas); + } + } + buffer->Release(buffer); + layer->Release(layer); + primary->Release(primary); + dfb->Release(dfb); + + return 42; +} diff --git a/legacy/evas/src/bin/evas_directfb_window.c b/legacy/evas/src/bin/evas_directfb_window.c new file mode 100644 index 0000000000..5bfab3b563 --- /dev/null +++ b/legacy/evas/src/bin/evas_directfb_window.c @@ -0,0 +1,382 @@ +/* + (c) Copyright 2000-2002 convergence integrated media GmbH. + All rights reserved. + + Written by Denis Oliver Kropp , + Andreas Hundt and + Sven Neumann . + + This file is subject to the terms and conditions of the MIT License: + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include +#include +#include +#include +#include + +#include +#include "config.h" +#include "Evas.h" +#include "Evas_Engine_DirectFB.h" + +#include "evas_test_main.h" + +/* macro for a safe call to DirectFB functions */ +#define DFBCHECK(x...) \ + { \ + err = x; \ + if (err != DFB_OK) { \ + fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \ + DirectFBErrorFatal( #x, err ); \ + } \ + } + +static inline long myclock() +{ + struct timeval tv; + + gettimeofday (&tv, NULL); + return (tv.tv_sec * 1000 + tv.tv_usec / 1000); +} + +int main( int argc, char *argv[] ) +{ + IDirectFB *dfb; + IDirectFBDisplayLayer *layer; + + IDirectFBSurface *bgsurface; + IDirectFBImageProvider *provider; + + IDirectFBWindow *window1; + IDirectFBWindow *window2; + IDirectFBSurface *window_surface1; + IDirectFBSurface *window_surface2; + + IDirectFBEventBuffer *buffer; + + DFBDisplayLayerConfig layer_config; + DFBCardCapabilities caps; + IDirectFBWindow* upper; + DFBWindowID id1; + + IDirectFBFont *font; + int fontheight; + int err; + int quit = 0; + + + DFBCHECK(DirectFBInit( &argc, &argv )); + DFBCHECK(DirectFBCreate( &dfb )); + + dfb->GetCardCapabilities( dfb, &caps ); + + dfb->GetDisplayLayer( dfb, DLID_PRIMARY, &layer ); + + if (!((caps.blitting_flags & DSBLIT_BLEND_ALPHACHANNEL) && + (caps.blitting_flags & DSBLIT_BLEND_COLORALPHA ))) + { + layer_config.flags = DLCONF_BUFFERMODE; + layer_config.buffermode = DLBM_BACKSYSTEM; + + layer->SetConfiguration( layer, &layer_config ); + } + + layer->GetConfiguration( layer, &layer_config ); + layer->EnableCursor ( layer, 1 ); + + { + DFBFontDescription desc; + + desc.flags = DFDESC_HEIGHT; + desc.height = layer_config.width/50; + + DFBCHECK(dfb->CreateFont( dfb, PACKAGE_DATA_DIR"/data/grunge.ttf", &desc, &font )); + font->GetHeight( font, &fontheight ); + } + + { + DFBSurfaceDescription desc; + + DFBCHECK(dfb->CreateImageProvider( dfb, + PACKAGE_DATA_DIR"/data/bg.png", + &provider )); + + desc.flags = DSDESC_WIDTH | DSDESC_HEIGHT; + desc.width = layer_config.width; + desc.height = layer_config.height; + + DFBCHECK(dfb->CreateSurface( dfb, &desc, &bgsurface ) ); + + + provider->RenderTo( provider, bgsurface, NULL ); + provider->Release( provider ); + + DFBCHECK(bgsurface->SetFont( bgsurface, font )); + + bgsurface->SetColor( bgsurface, 0xCF, 0xCF, 0xFF, 0xFF ); + bgsurface->DrawString( bgsurface, + "Move the mouse over a window to activate it.", + -1, 10, 0, DSTF_LEFT | DSTF_TOP ); + + bgsurface->SetColor( bgsurface, 0xFF, 0xCF, 0xFF, 0xFF ); + bgsurface->DrawString( bgsurface, + "You can drag them around, too, if you want.", + -1, 10 , 40, DSTF_LEFT | DSTF_TOP ); + + bgsurface->SetColor( bgsurface, 0xCF, 0xCF, 0xFF, 0xFF ); + bgsurface->DrawString( bgsurface, + "The one with funky stuff happening and things flying around is an evas.", + -1, 10, 80, DSTF_LEFT | DSTF_TOP ); + + + + + layer->SetBackgroundImage( layer, bgsurface ); + layer->SetBackgroundMode( layer, DLBM_IMAGE ); + } + { + DFBWindowDescription desc; + desc.flags = ( DWDESC_POSX | DWDESC_POSY | + DWDESC_WIDTH | DWDESC_HEIGHT | DWDESC_CAPS ); + + desc.posx = 20; + desc.posy = 120; + desc.width = 200; + desc.height = 200; + desc.caps = DWCAPS_ALPHACHANNEL; + + DFBCHECK( layer->CreateWindow( layer, &desc, &window2 ) ); + window2->GetSurface( window2, &window_surface2 ); + + window2->SetOpacity( window2, 0xFF ); + + window2->CreateEventBuffer( window2, &buffer ); + + { + window_surface2->SetColor( window_surface2, + 0x00, 0x30, 0x10, 0xc0 ); + window_surface2->DrawRectangle( window_surface2, 0, 0, + desc.width, desc.height ); + window_surface2->SetColor( window_surface2, + 0x80, 0xa0, 0x00, 0x90 ); + window_surface2->FillRectangle( window_surface2, 1, 1, + desc.width-2, desc.height-2 ); + + + DFBCHECK(window_surface2->SetFont(window_surface2, font )); + window_surface2->SetColor( window_surface2, 0xCF, 0xFF, 0xCF, 0xFF ); + + window_surface2->DrawString( window_surface2, + "Pants!", + -1,10, fontheight + 5, DSTF_LEFT | DSTF_TOP ); + + } + + window_surface2->Flip( window_surface2, NULL, 0 ); + } + + { + DFBWindowDescription desc; + + desc.flags = ( DWDESC_POSX | DWDESC_POSY | + DWDESC_WIDTH | DWDESC_HEIGHT | DWDESC_CAPS ); + desc.posx = 200; + desc.posy = 200; + desc.width = 240; + desc.height = 320; + desc.caps = DWCAPS_ALPHACHANNEL; + + DFBCHECK(layer->CreateWindow( layer, &desc, &window1 ) ); + window1->GetSurface( window1, &window_surface1 ); + + window_surface1->SetColor( window_surface1, 0xFF, 0x20, 0x20, 0x90 ); + window_surface1->DrawRectangle( window_surface1, 0, 0, + desc.width, desc.height ); + + window_surface1->Flip( window_surface1, NULL, 0 ); + + window1->SetOpacity( window1, 0xFF ); + + window1->GetID( window1, &id1 ); + + window1->AttachEventBuffer( window1, buffer ); + } + + window1->RequestFocus( window1 ); + window1->RaiseToTop( window1 ); + upper = window1; + { + evas = evas_new(); + evas_output_method_set(evas, evas_render_method_lookup("directfb")); + evas_output_size_set(evas, 240, 320); + evas_output_viewport_set(evas, 0, 0, 240, 320); + { + Evas_Engine_Info_DirectFB *einfo; + + einfo = (Evas_Engine_Info_DirectFB *) evas_engine_info_get(evas); + + einfo->info.dfb = dfb; + einfo->info.surface = window_surface1; + einfo->info.flags = DSDRAW_BLEND; + evas_engine_info_set(evas, (Evas_Engine_Info *) einfo); + } + setup(); + evas_render(evas); + start_time = get_time(); + } + + while (!quit) { + static IDirectFBWindow* active = NULL; + static int grabbed = 0; + static int startx = 0; + static int starty = 0; + static int endx = 0; + static int endy = 0; + DFBWindowEvent evt; + + buffer->WaitForEventWithTimeout( buffer, 0, 10 ); + + while (buffer->GetEvent( buffer, DFB_EVENT(&evt) ) == DFB_OK) { + IDirectFBWindow* window; + + if (evt.window_id == id1) + window = window1; + else + window = window2; + + if (active) { + switch (evt.type) { + + case DWET_BUTTONDOWN: + if (!grabbed && evt.button == DIBI_LEFT) { + grabbed = 1; + layer->GetCursorPosition( layer, + &startx, &starty ); + window->GrabPointer( window ); + } + break; + + case DWET_BUTTONUP: + switch (evt.button) { + case DIBI_LEFT: + if (grabbed) { + window->UngrabPointer( window ); + grabbed = 0; + } + break; + case DIBI_MIDDLE: + upper->LowerToBottom( upper ); + upper = (upper == window1) ? window2 : window1; + break; + case DIBI_RIGHT: + quit = DIKS_DOWN; + break; + default: + break; + } + break; + + case DWET_KEYDOWN: + if (grabbed) + break; + switch (evt.key_id) { + case DIKI_RIGHT: + active->Move (active, 1, 0); + break; + case DIKI_LEFT: + active->Move (active, -1, 0); + break; + case DIKI_UP: + active->Move (active, 0, -1); + break; + case DIKI_DOWN: + active->Move (active, 0, 1); + break; + default: + break; + } + break; + + case DWET_LOSTFOCUS: + if (!grabbed) + active = NULL; + break; + + default: + break; + + } + } + else if (evt.type == DWET_GOTFOCUS) + active = window; + + switch (evt.type) { + + case DWET_MOTION: + endx = evt.cx; + endy = evt.cy; + break; + + case DWET_KEYDOWN: + switch (evt.key_symbol) { + case DIKS_ESCAPE: + case DIKS_SMALL_Q: + case DIKS_CAPITAL_Q: + case DIKS_BACK: + case DIKS_STOP: + quit = 1; + break; + default: + break; + } + break; + + default: + break; + } + } + + if (active) { + if (grabbed) { + active->Move( active, endx - startx, endy - starty); + startx = endx; + starty = endy; + } + active->SetOpacity( active, + (sin( myclock()/300.0 ) * 85) + 170 ); + } + loop(); + evas_render(evas); + } + + buffer->Release( buffer ); + window_surface2->Release( window_surface2 ); + window_surface1->Release( window_surface1 ); + window2->Release( window2 ); + window1->Release( window1 ); + layer->Release( layer ); + bgsurface->Release( bgsurface ); + dfb->Release( dfb ); + + return 42; +} diff --git a/legacy/evas/src/bin/evas_fb_main.c b/legacy/evas/src/bin/evas_fb_main.c new file mode 100644 index 0000000000..78dcada0ed --- /dev/null +++ b/legacy/evas/src/bin/evas_fb_main.c @@ -0,0 +1,41 @@ +#include "evas_test_main.h" + +#include "Evas.h" +#include "Evas_Engine_FB.h" + +#include +#include + +int +main(int argc, char **argv) +{ + int rot = 0; + + if ((argc >= 3) && (!strcmp(argv[1], "-rot"))) + rot = atoi(argv[2]); + evas = evas_new(); + evas_output_method_set(evas, evas_render_method_lookup("fb")); + evas_output_size_set(evas, win_w, win_h); + evas_output_viewport_set(evas, 0, 0, win_w, win_h); + { + Evas_Engine_Info_FB *einfo; + + einfo = (Evas_Engine_Info_FB *) evas_engine_info_get(evas); + + /* the following is specific to the engine */ + einfo->info.virtual_terminal = 0; + einfo->info.device_number = 0; + einfo->info.refresh = 0; + einfo->info.rotation = rot; + + evas_engine_info_set(evas, (Evas_Engine_Info *) einfo); + } + setup(); + orig_start_time = start_time = get_time(); + for (;;) + { + loop(); + evas_render(evas); + } + return 0; +} diff --git a/legacy/evas/src/bin/evas_gl_x11_main.c b/legacy/evas/src/bin/evas_gl_x11_main.c new file mode 100644 index 0000000000..001c334861 --- /dev/null +++ b/legacy/evas/src/bin/evas_gl_x11_main.c @@ -0,0 +1,140 @@ +#include "evas_test_main.h" + +#include +#include +#include +#include +#include + +#include "Evas.h" +#include "Evas_Engine_GL_X11.h" + +int +main(int argc, char **argv) +{ + int pause_me = 0; + Display *disp; + Window win; + XSetWindowAttributes attr; + XClassHint chint; + XSizeHints szhints; + + disp = XOpenDisplay(NULL); + if (!disp) + { + printf("Error: cannot open display.\n"); + exit(-1); + } + /* test evas_free.... :) */ + evas = evas_new(); + evas_output_method_set(evas, evas_render_method_lookup("gl_x11")); + evas_output_size_set(evas, win_w, win_h); + evas_output_viewport_set(evas, 0, 0, win_w, win_h); + { + Evas_Engine_Info_GL_X11 *einfo; + + einfo = (Evas_Engine_Info_GL_X11 *) evas_engine_info_get(evas); + + /* the following is specific to the engine */ + attr.backing_store = NotUseful; + attr.colormap = einfo->func.best_colormap_get(disp, DefaultScreen(disp)); + attr.border_pixel = 0; + attr.background_pixmap = None; + attr.event_mask = + ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask | + StructureNotifyMask; + attr.bit_gravity = ForgetGravity; + + win = XCreateWindow(disp, DefaultRootWindow(disp), 0, 0, win_w, win_h, 0, + einfo->func.best_depth_get(disp, DefaultScreen(disp)), + InputOutput, + einfo->func.best_visual_get(disp, DefaultScreen(disp)), + CWBackingStore | CWColormap | + CWBackPixmap | CWBorderPixel | + CWBitGravity | CWEventMask, &attr); + + einfo->info.display = disp; + einfo->info.visual = einfo->func.best_visual_get(disp, DefaultScreen(disp)); + einfo->info.colormap = einfo->func.best_colormap_get(disp, DefaultScreen(disp)); + einfo->info.drawable = win; + einfo->info.depth = einfo->func.best_depth_get(disp, DefaultScreen(disp)); + + evas_engine_info_set(evas, (Evas_Engine_Info *) einfo); + } + + XStoreName(disp, win, "Evas GL X11 Test"); + chint.res_name = "Evas_GL_X11_Test"; + chint.res_class = "Main"; + XSetClassHint(disp, win, &chint); +#if 0 + szhints.flags = PMinSize | PMaxSize | PSize | USSize; + szhints.min_width = szhints.max_width = win_w; + szhints.min_height = szhints.max_height = win_h; + XSetWMNormalHints(disp, win, &szhints); +#endif + XMapWindow(disp, win); + XSync(disp, False); + + setup(); + + orig_start_time = start_time = get_time(); + for (;;) + { + XEvent ev; + + while (XCheckMaskEvent(disp, + ExposureMask | + StructureNotifyMask | + KeyPressMask | + KeyReleaseMask | + ButtonPressMask | + ButtonReleaseMask | PointerMotionMask, &ev)) + { + switch (ev.type) + { + case ButtonPress: + if (ev.xbutton.button == 3) + exit(0); + if (!pause_me) + pause_me = 1; + else if (pause_me == 1) + pause_me = 2; + else + pause_me = 1; + evas_event_feed_mouse_move(evas, ev.xbutton.x, ev.xbutton.y); + evas_event_feed_mouse_down(evas, ev.xbutton.button); + break; + case ButtonRelease: + evas_event_feed_mouse_move(evas, ev.xbutton.x, ev.xbutton.y); + evas_event_feed_mouse_up(evas, ev.xbutton.button); + break; + case MotionNotify: + evas_event_feed_mouse_move(evas, ev.xmotion.x, ev.xmotion.y); + break; + case Expose: + evas_damage_rectangle_add(evas, + ev.xexpose.x, + ev.xexpose.y, + ev.xexpose.width, + ev.xexpose.height); + break; + case ConfigureNotify: + evas_output_size_set(evas, + ev.xconfigure.width, + ev.xconfigure.height); + break; + default: + break; + } + } + if (!(pause_me == 1)) + { + loop(); + evas_render(evas); + XFlush(disp); + } + if (pause_me == 2) + usleep(100000); + } + return 0; +} diff --git a/legacy/evas/src/bin/evas_software_qtopia_main.h b/legacy/evas/src/bin/evas_software_qtopia_main.h new file mode 100644 index 0000000000..f84600b123 --- /dev/null +++ b/legacy/evas/src/bin/evas_software_qtopia_main.h @@ -0,0 +1,65 @@ +#ifndef EVAS_SOFTWARE_QTOPIA_MAIN_H +#define EVAS_SOFTWARE_QTOPIA_MAIN_H + +#ifndef QT_QWS_EBX +#define QT_QWS_EBX +#endif +#ifndef QT_QWS_CUSTOM +#define QT_QWS_CUSTOM +#endif +#ifndef QWS +#define QWS +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class EvasTargetWidget : public QWidget +{ + Q_OBJECT + + public: + EvasTargetWidget(QWidget *parent=NULL, const char *name=NULL); + + QSizePolicy sizePolicy() const; + + void enableFullscreen(void); + void disableFullscreen(void); + int fullscreen; + + protected: + void mousePressEvent(QMouseEvent *); + void mouseReleaseEvent(QMouseEvent *); + void mouseMoveEvent(QMouseEvent *); + void paintEvent(QPaintEvent *); + void resizeEvent(QResizeEvent *); + + private slots: + void idleHandler(void); + private: + QTimer *idleTimer; +}; + +class EvasTestApp : public QMainWindow +{ + Q_OBJECT + public: + EvasTestApp(QWidget *parent=0, const char *name=0, int wFlags=0); + ~EvasTestApp(); + + QSizePolicy sizePolicy() const; + + protected: + void resizeEvent(QResizeEvent *); + + EvasTargetWidget *evas_target_widget; +}; + +#endif diff --git a/legacy/evas/src/bin/evas_software_win32/Makefile.am b/legacy/evas/src/bin/evas_software_win32/Makefile.am new file mode 100644 index 0000000000..90f246fb8c --- /dev/null +++ b/legacy/evas/src/bin/evas_software_win32/Makefile.am @@ -0,0 +1,10 @@ +EXTRA_DIST = \ +ReadMe.txt \ +StdAfx.cpp \ +StdAfx.h \ +evas_software_win32.cpp \ +evas_software_win32.rc \ +evas_software_win32.h \ +newres.h \ +resource.h + diff --git a/legacy/evas/src/bin/evas_software_win32/ReadMe.txt b/legacy/evas/src/bin/evas_software_win32/ReadMe.txt new file mode 100644 index 0000000000..8585dbd789 --- /dev/null +++ b/legacy/evas/src/bin/evas_software_win32/ReadMe.txt @@ -0,0 +1,59 @@ +======================================================================== + Windows CE APPLICATION : evas_software_win32 +======================================================================== + + +AppWizard has created this evas_software_win32 application for you. + +This file contains a summary of what you will find in each of the files that +make up your evas_software_win32 application. + +evas_software_win32.cpp + This is the main application source file. + +evas_software_win32.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h). + +evas_software_win32.vcp + This file (the project file) contains information at the project level and + is used to build a single project or subproject. Other users can share the + project (.vcp) file, but they should export the makefiles locally. + + +///////////////////////////////////////////////////////////////////////////// +AppWizard has created the following resources: + +evas_software_win32.rc + This is a listing of all of the Microsoft Windows CE resources that the + program uses. This file can be directly edited in Microsoft + eMbedded Visual C++. + +evas_software_win32.ico + This is an icon file, which is used as the application's icon (32x32). + This icon is included by the main resource file evas_software_win32.rc. + + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named evas_software_win32.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft eMbedded Visual C++ reads and updates this file. + +Newres.h + This header file is used to replace the ..\mfc\include\afxres.h. + + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + + +///////////////////////////////////////////////////////////////////////////// diff --git a/legacy/evas/src/bin/evas_software_win32/StdAfx.cpp b/legacy/evas/src/bin/evas_software_win32/StdAfx.cpp new file mode 100644 index 0000000000..0456849c58 --- /dev/null +++ b/legacy/evas/src/bin/evas_software_win32/StdAfx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// evas_software_win32.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file diff --git a/legacy/evas/src/bin/evas_software_win32/StdAfx.h b/legacy/evas/src/bin/evas_software_win32/StdAfx.h new file mode 100644 index 0000000000..3bc1e17628 --- /dev/null +++ b/legacy/evas/src/bin/evas_software_win32/StdAfx.h @@ -0,0 +1,25 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_) +#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers + +// Windows Header Files: +#include + +// Local Header Files + +// TODO: reference additional headers your program requires here + +//{{AFX_INSERT_LOCATION}} +// Microsoft eMbedded Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_) diff --git a/legacy/evas/src/bin/evas_software_win32/evas_software_win32.cpp b/legacy/evas/src/bin/evas_software_win32/evas_software_win32.cpp new file mode 100644 index 0000000000..8b4053668b --- /dev/null +++ b/legacy/evas/src/bin/evas_software_win32/evas_software_win32.cpp @@ -0,0 +1,323 @@ +// evas_software_win32.c : Defines the entry point for the application. +// + +#include "stdafx.h" +#include "evas_software_win32.h" +#include + +#include "Evas.h" + +#include "evas_test_main.h" + +#include "Evas_Engine_Software_win32_gdi.h" + + +#define MAX_LOADSTRING 100 + + +// Global Variables: +HINSTANCE hInst; // The current instance +HWND hwndCB; // The command bar handle + +// Forward declarations of functions included in this code module: +ATOM MyRegisterClass (HINSTANCE, LPTSTR); +BOOL InitInstance (HINSTANCE, int); +LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK About (HWND, UINT, WPARAM, LPARAM); + +int WINAPI WinMain( HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPTSTR lpCmdLine, + int nCmdShow) +{ + MSG msg; + HACCEL hAccelTable; + + + + // Perform application initialization: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_EVAS_SOFTWARE_WIN32); + + + + setup(); + orig_start_time = start_time = get_time(); + + // Main message loop: + for (;;) + { + while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) + { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + if(msg.message == WM_QUIT) + return msg.wParam; + + loop(); + evas_render(evas); + } + + return msg.wParam; +} + +// +// FUNCTION: MyRegisterClass() +// +// PURPOSE: Registers the window class. +// +// COMMENTS: +// +// It is important to call this function so that the application +// will get 'well formed' small icons associated with it. +// +ATOM MyRegisterClass(HINSTANCE hInstance, LPTSTR szWindowClass) +{ + WNDCLASS wc; + + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = (WNDPROC) WndProc; + wc.cbClsExtra = 0; + wc.cbWndExtra = 0; + wc.hInstance = hInstance; + wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_EVAS_SOFTWARE_WIN32)); + wc.hCursor = 0; + wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); + wc.lpszMenuName = 0; + wc.lpszClassName = szWindowClass; + + return RegisterClass(&wc); +} + +// +// FUNCTION: InitInstance(HANDLE, int) +// +// PURPOSE: Saves instance handle and creates main window +// +// COMMENTS: +// +// In this function, we save the instance handle in a global variable and +// create and display the main program window. +// +BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) +{ + HWND hWnd; + TCHAR szTitle[MAX_LOADSTRING]; // The title bar text + TCHAR szWindowClass[MAX_LOADSTRING]; // The window class name + + hInst = hInstance; // Store instance handle in our global variable + // Initialize global strings + LoadString(hInstance, IDC_EVAS_SOFTWARE_WIN32, szWindowClass, MAX_LOADSTRING); + MyRegisterClass(hInstance, szWindowClass); + + LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + hWnd = CreateWindow(szWindowClass, szTitle, WS_VISIBLE|WS_CAPTION|WS_SYSMENU, + 0, 0, (int)win_w, (int)win_h+24, NULL, NULL, hInstance, NULL); + + if (!hWnd) + { + return FALSE; + } + + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); +// if (hwndCB) +// CommandBar_Show(hwndCB, TRUE); + + + evas = evas_new(); + evas_output_method_set(evas, evas_render_method_lookup("software_win32_gdi")); + evas_output_size_set(evas, win_w, win_h); + evas_output_viewport_set(evas, 0, 0, win_w, win_h); + + { + Evas_Engine_Info_Software_Win32_GDI *einfo; + + + einfo = (Evas_Engine_Info_Software_Win32_GDI *)evas_engine_info_get(evas); + + einfo->info.hwnd = hWnd; + einfo->info.rotation = 0; + + + { + HDC hdc; + int c; + + + hdc = GetDC(hWnd); + c = GetDeviceCaps(hdc,BITSPIXEL); + + einfo->info.depth = c; + + + c = GetDeviceCaps(hdc,RASTERCAPS); + + + ReleaseDC(hWnd,hdc); + + } + + evas_engine_info_set(evas, (Evas_Engine_Info *)einfo); + } + + + + + + + return TRUE; +} + +// +// FUNCTION: WndProc(HWND, unsigned, WORD, LONG) +// +// PURPOSE: Processes messages for the main window. +// +// WM_COMMAND - process the application menu +// WM_PAINT - Paint the main window +// WM_DESTROY - post a quit message and return +// +// +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + HDC hdc; + int wmId, wmEvent; + PAINTSTRUCT ps; + TCHAR szHello[MAX_LOADSTRING]; + RECT rect; + + + switch (message) + { + case WM_COMMAND: + wmId = LOWORD(wParam); + wmEvent = HIWORD(wParam); + // Parse the menu selections: + switch (wmId) + { + case IDM_HELP_ABOUT: + DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); + break; + case IDM_FILE_EXIT: + DestroyWindow(hWnd); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + break; + case WM_CREATE: +// hwndCB = CommandBar_Create(hInst, hWnd, 1); +// CommandBar_InsertMenubar(hwndCB, hInst, IDM_MENU, 0); +// CommandBar_AddAdornments(hwndCB, 0, 0); + break; + + case WM_LBUTTONDOWN: + evas_event_feed_mouse_move(evas, LOWORD(lParam), HIWORD(lParam)); + evas_event_feed_mouse_down(evas, 1); + break; + + + case WM_LBUTTONUP: + evas_event_feed_mouse_move(evas, LOWORD(lParam), HIWORD(lParam)); + evas_event_feed_mouse_up(evas, 1); + break; + + case WM_MOVE: + evas_event_feed_mouse_move(evas, LOWORD(lParam), HIWORD(lParam)); + break; + + case WM_SIZE: + evas_output_size_set(evas, LOWORD(lParam), HIWORD(lParam)); + break; + +/* + case WM_ERASEBKGND: + + // Get window coordinates, and normalize. + GetWindowRect(hWnd, &rect); + rect.right = rect.right - rect.left; // Get width. + rect.bottom = rect.bottom - rect.top; // Get height. + rect.left = rect.top = 0; + + evas_damage_rectangle_add(evas, + rect.left, + rect.top, + rect.right, + rect.bottom); + + + return 1; + break; +*/ + + case WM_PAINT: + hdc = BeginPaint(hWnd, &ps); + rect.right = ps.rcPaint.right - ps.rcPaint.left; // Get width. + rect.bottom = ps.rcPaint.bottom - ps.rcPaint.top; // Get height. + rect.left = ps.rcPaint.left; + rect.top = ps.rcPaint.top; + ps.fErase = TRUE; + + evas_damage_rectangle_add(evas, + rect.left, + rect.top, + rect.right, + rect.bottom); + EndPaint(hWnd, &ps); + break; + + case WM_DESTROY: + CommandBar_Destroy(hwndCB); + PostQuitMessage(0); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + +// Mesage handler for the About box. +LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + RECT rt, rt1; + int DlgWidth, DlgHeight; // dialog width and height in pixel units + int NewPosX, NewPosY; + + switch (message) + { + case WM_INITDIALOG: + // trying to center the About dialog + if (GetWindowRect(hDlg, &rt1)) { + GetClientRect(GetParent(hDlg), &rt); + DlgWidth = rt1.right - rt1.left; + DlgHeight = rt1.bottom - rt1.top ; + NewPosX = (rt.right - rt.left - DlgWidth)/2; + NewPosY = (rt.bottom - rt.top - DlgHeight)/2; + + // if the About box is larger than the physical screen + if (NewPosX < 0) NewPosX = 0; + if (NewPosY < 0) NewPosY = 0; + SetWindowPos(hDlg, 0, NewPosX, NewPosY, + 0, 0, SWP_NOZORDER | SWP_NOSIZE); + } + return TRUE; + + case WM_COMMAND: + if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL)) + { + EndDialog(hDlg, LOWORD(wParam)); + return TRUE; + } + break; + } + return FALSE; +} diff --git a/legacy/evas/src/bin/evas_software_win32/evas_software_win32.h b/legacy/evas/src/bin/evas_software_win32/evas_software_win32.h new file mode 100644 index 0000000000..4aa7a2a518 --- /dev/null +++ b/legacy/evas/src/bin/evas_software_win32/evas_software_win32.h @@ -0,0 +1,12 @@ + +#if !defined(AFX_EVAS_SOFTWARE_WIN32_H__16C4A65E_CA5A_452B_930E_842EC94AF401__INCLUDED_) +#define AFX_EVAS_SOFTWARE_WIN32_H__16C4A65E_CA5A_452B_930E_842EC94AF401__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "resource.h" + + +#endif // !defined(AFX_EVAS_SOFTWARE_WIN32_H__16C4A65E_CA5A_452B_930E_842EC94AF401__INCLUDED_) diff --git a/legacy/evas/src/bin/evas_software_win32/evas_software_win32.rc b/legacy/evas/src/bin/evas_software_win32/evas_software_win32.rc new file mode 100644 index 0000000000..a56b33cd5a --- /dev/null +++ b/legacy/evas/src/bin/evas_software_win32/evas_software_win32.rc @@ -0,0 +1,152 @@ +//Microsoft eMbedded Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "newres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_EVAS_SOFTWARE_WIN32 ICON DISCARDABLE "evas_software_win32.ICO" + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""newres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDM_MENU MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "E&xit", IDM_FILE_EXIT + END + POPUP "&Help" + BEGIN + MENUITEM "&About", IDM_HELP_ABOUT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 125, 55 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +EXSTYLE 0x80000000L +CAPTION "About evas_software_win32" +FONT 8, "System" +BEGIN + ICON IDI_EVAS_SOFTWARE_WIN32,IDC_STATIC,11,17,20,20 + LTEXT "evas_software_win32 Version 1.0",IDC_STATIC,38,10,70,8, + SS_NOPREFIX + LTEXT "Copyright (C) 2002",IDC_STATIC,38,25,70,8 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 118 + TOPMARGIN, 7 + BOTTOMMARGIN, 48 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDC_EVAS_SOFTWARE_WIN32 ACCELERATORS DISCARDABLE +BEGIN + "/", IDM_HELP_ABOUT, ASCII, ALT, NOINVERT + VK_F4, IDM_FILE_EXIT, VIRTKEY, ALT, NOINVERT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_APP_TITLE "WinCE EVAS Test" + IDS_HELLO "Hello World!" + IDC_EVAS_SOFTWARE_WIN32 "EVAS_SOFTWARE_WIN32" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/legacy/evas/src/bin/evas_software_win32/newres.h b/legacy/evas/src/bin/evas_software_win32/newres.h new file mode 100644 index 0000000000..ac5edb7bc6 --- /dev/null +++ b/legacy/evas/src/bin/evas_software_win32/newres.h @@ -0,0 +1,39 @@ +#ifndef __NEWRES_H__ +#define __NEWRES_H__ + +#if !defined(UNDER_CE) + #define UNDER_CE _WIN32_WCE +#endif + +#if defined(_WIN32_WCE) + #if !defined(WCEOLE_ENABLE_DIALOGEX) + #define DIALOGEX DIALOG DISCARDABLE + #endif + #include + #define SHMENUBAR RCDATA + #if defined(WIN32_PLATFORM_PSPC) && (_WIN32_WCE >= 300) + #include + #else + #define I_IMAGENONE (-2) + #define NOMENU 0xFFFF + #define IDS_SHNEW 1 + + #define IDM_SHAREDNEW 10 + #define IDM_SHAREDNEWDEFAULT 11 + #endif +#endif // _WIN32_WCE + + +#ifdef RC_INVOKED +#ifndef _INC_WINDOWS +#define _INC_WINDOWS + #include "winuser.h" // extract from windows header +#endif +#endif + +#ifdef IDC_STATIC +#undef IDC_STATIC +#endif +#define IDC_STATIC (-1) + +#endif //__NEWRES_H__ diff --git a/legacy/evas/src/bin/evas_software_win32/resource.h b/legacy/evas/src/bin/evas_software_win32/resource.h new file mode 100644 index 0000000000..bbc0fcf40c --- /dev/null +++ b/legacy/evas/src/bin/evas_software_win32/resource.h @@ -0,0 +1,23 @@ +//{{NO_DEPENDENCIES}} +// Microsoft eMbedded Visual C++ generated include file. +// Used by EVAS_SOFTWARE_WIN32.RC +// +#define IDS_APP_TITLE 1 +#define IDS_HELLO 2 +#define IDC_EVAS_SOFTWARE_WIN32 3 +#define IDI_EVAS_SOFTWARE_WIN32 101 +#define IDM_MENU 102 +#define IDD_ABOUTBOX 103 +#define IDM_FILE_EXIT 40002 +#define IDM_HELP_ABOUT 40003 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 104 +#define _APS_NEXT_COMMAND_VALUE 40004 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/legacy/evas/src/bin/evas_software_x11_main.c b/legacy/evas/src/bin/evas_software_x11_main.c new file mode 100644 index 0000000000..730723f8c1 --- /dev/null +++ b/legacy/evas/src/bin/evas_software_x11_main.c @@ -0,0 +1,229 @@ +#include "evas_test_main.h" + +#include +#include + +#include "Evas.h" +#include "Evas_Engine_Software_X11.h" + +int +main(int argc, char **argv) +{ + int pause_me = 0; + Display *disp; + Window win; + XSetWindowAttributes attr; + XClassHint chint; + XSizeHints szhints; + + disp = XOpenDisplay(NULL); + if (!disp) + { + printf("Error: cannot open display.\n"); + exit(-1); + } + attr.backing_store = NotUseful; + attr.colormap = DefaultColormap(disp, DefaultScreen(disp)); + attr.border_pixel = 0; + attr.background_pixmap = None; + attr.event_mask = + ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask | + StructureNotifyMask; + attr.bit_gravity = ForgetGravity; + win = XCreateWindow(disp, DefaultRootWindow(disp), 0, 0, win_w, win_h, 0, + DefaultDepth(disp, DefaultScreen(disp)), InputOutput, + DefaultVisual(disp, DefaultScreen(disp)), + CWBackingStore | CWColormap | + CWBackPixmap | CWBorderPixel | + CWBitGravity | CWEventMask, &attr); + XStoreName(disp, win, "Evas Software X11 Test"); + chint.res_name = "Evas_Software_X11_Test"; + chint.res_class = "Main"; + XSetClassHint(disp, win, &chint); +#if 0 + szhints.flags = PMinSize | PMaxSize | PSize | USSize; + szhints.min_width = szhints.max_width = win_w; + szhints.min_height = szhints.max_height = win_h; + XSetWMNormalHints(disp, win, &szhints); +#endif + XMapWindow(disp, win); + XSync(disp, False); + + /* test evas_free.... :) */ + evas = evas_new(); + evas_output_method_set(evas, evas_render_method_lookup("software_x11")); + evas_output_size_set(evas, win_w, win_h); + evas_output_viewport_set(evas, 0, 0, win_w, win_h); + { + Evas_Engine_Info_Software_X11 *einfo; + + einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas); + + /* the following is specific to the engine */ + einfo->info.display = disp; + einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp)); + einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp)); + einfo->info.drawable = win; + einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp)); + einfo->info.rotation = 0; + einfo->info.debug = 0; + evas_engine_info_set(evas, (Evas_Engine_Info *) einfo); + } + setup(); + printf("################ evas free\n"); + evas_free(evas); + printf("evas freed. DONE\n"); + + evas = evas_new(); + evas_output_method_set(evas, evas_render_method_lookup("software_x11")); + evas_output_size_set(evas, win_w, win_h); + evas_output_viewport_set(evas, 0, 0, win_w, win_h); + { + Evas_Engine_Info_Software_X11 *einfo; + + einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas); + + /* the following is specific to the engine */ + einfo->info.display = disp; + einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp)); + einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp)); + einfo->info.drawable = win; + einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp)); + einfo->info.rotation = 0; + einfo->info.debug = 0; + evas_engine_info_set(evas, (Evas_Engine_Info *) einfo); + } + setup(); + printf("################ evas free\n"); + evas_free(evas); + printf("evas freed. DONE\n"); + + evas = evas_new(); + evas_output_method_set(evas, evas_render_method_lookup("software_x11")); + evas_output_size_set(evas, win_w, win_h); + evas_output_viewport_set(evas, 0, 0, win_w, win_h); + { + Evas_Engine_Info_Software_X11 *einfo; + + einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas); + + /* the following is specific to the engine */ + einfo->info.display = disp; + einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp)); + einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp)); + einfo->info.drawable = win; + einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp)); + einfo->info.rotation = 0; + einfo->info.debug = 0; + evas_engine_info_set(evas, (Evas_Engine_Info *) einfo); + } + setup(); + printf("################ evas free\n"); + evas_free(evas); + printf("evas freed. DONE\n"); + + evas = evas_new(); + evas_output_method_set(evas, evas_render_method_lookup("software_x11")); + evas_output_size_set(evas, win_w, win_h); + evas_output_viewport_set(evas, 0, 0, win_w, win_h); + { + Evas_Engine_Info_Software_X11 *einfo; + + einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas); + + /* the following is specific to the engine */ + einfo->info.display = disp; + einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp)); + einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp)); + einfo->info.drawable = win; + einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp)); + einfo->info.rotation = 0; + einfo->info.debug = 0; + evas_engine_info_set(evas, (Evas_Engine_Info *) einfo); + } + setup(); + printf("################ evas free\n"); + evas_free(evas); + printf("evas freed. DONE\n"); + + evas = evas_new(); + evas_output_method_set(evas, evas_render_method_lookup("software_x11")); + evas_output_size_set(evas, win_w, win_h); + evas_output_viewport_set(evas, 0, 0, win_w, win_h); + { + Evas_Engine_Info_Software_X11 *einfo; + + einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas); + + /* the following is specific to the engine */ + einfo->info.display = disp; + einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp)); + einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp)); + einfo->info.drawable = win; + einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp)); + einfo->info.rotation = 0; + einfo->info.debug = 0; + evas_engine_info_set(evas, (Evas_Engine_Info *) einfo); + } + setup(); + orig_start_time = start_time = get_time(); + for (;;) + { + XEvent ev; + + while (XCheckMaskEvent(disp, + ExposureMask | + StructureNotifyMask | + KeyPressMask | + KeyReleaseMask | + ButtonPressMask | + ButtonReleaseMask | PointerMotionMask, &ev)) + { + switch (ev.type) + { + case ButtonPress: + if (ev.xbutton.button == 3) + exit(0); + if (!pause_me) + pause_me = 1; + else if (pause_me == 1) + pause_me = 2; + else + pause_me = 1; + evas_event_feed_mouse_move(evas, ev.xbutton.x, ev.xbutton.y); + evas_event_feed_mouse_down(evas, ev.xbutton.button); + break; + case ButtonRelease: + evas_event_feed_mouse_move(evas, ev.xbutton.x, ev.xbutton.y); + evas_event_feed_mouse_up(evas, ev.xbutton.button); + break; + case MotionNotify: + evas_event_feed_mouse_move(evas, ev.xmotion.x, ev.xmotion.y); + break; + case Expose: + evas_damage_rectangle_add(evas, + ev.xexpose.x, + ev.xexpose.y, + ev.xexpose.width, + ev.xexpose.height); + break; + case ConfigureNotify: + evas_output_size_set(evas, + ev.xconfigure.width, + ev.xconfigure.height); + break; + default: + break; + } + } + if (!(pause_me == 1)) + { + loop(); + evas_render(evas); + XFlush(disp); + } + if (pause_me == 2) + usleep(100000); + } + return 0; +} diff --git a/legacy/evas/src/bin/evas_software_x11_perf_load.c b/legacy/evas/src/bin/evas_software_x11_perf_load.c new file mode 100644 index 0000000000..37ecebb859 --- /dev/null +++ b/legacy/evas/src/bin/evas_software_x11_perf_load.c @@ -0,0 +1,181 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "Evas.h" +#include "Evas_Engine_Software_X11.h" + +Display *disp = NULL; +Window win = 0; + +Evas *evas = NULL; + +int win_w = 240; +int win_h = 240; + +int +main(int argc, char **argv) +{ + int exposed = 0; + + XSetWindowAttributes attr; + XClassHint chint; + XSizeHints szhints; + + disp = XOpenDisplay(NULL); + if (!disp) + { + printf("Error: cannot open display.\n"); + exit(-1); + } + attr.backing_store = NotUseful; + attr.colormap = DefaultColormap(disp, DefaultScreen(disp)); + attr.border_pixel = 0; + attr.background_pixmap = None; + attr.event_mask = + ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask; + attr.bit_gravity = ForgetGravity; + win = XCreateWindow(disp, DefaultRootWindow(disp), 0, 0, win_w, win_h, 0, + DefaultDepth(disp, DefaultScreen(disp)), InputOutput, + DefaultVisual(disp, DefaultScreen(disp)), + CWBackingStore | CWColormap | + CWBackPixmap | CWBorderPixel | + CWBitGravity | CWEventMask, &attr); + XStoreName(disp, win, "Evas Performance Test"); + chint.res_name = "Evas_Test"; + chint.res_class = "Main"; + XSetClassHint(disp, win, &chint); + szhints.flags = PMinSize | PMaxSize | PSize | USSize; + szhints.max_width = win_w; + szhints.max_height = win_h; + szhints.min_width = win_w; + szhints.min_height = win_h; + XSetWMNormalHints(disp, win, &szhints); + XMapWindow(disp, win); + + evas = evas_new(); + evas_output_method_set(evas, evas_render_method_lookup("software_x11")); + evas_output_size_set(evas, win_w, win_h); + evas_output_viewport_set(evas, 0, 0, win_w, win_h); + { + Evas_Engine_Info_Software_X11 *einfo; + + einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas); + + /* the following is specific to the engine */ + einfo->info.display = disp; + einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp)); + einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp)); + einfo->info.drawable = win; + einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp)); + einfo->info.rotation = 0; + + evas_engine_info_set(evas, (Evas_Engine_Info *) einfo); + } + for (;;) + { + XEvent ev; + + while (XCheckMaskEvent(disp, + ExposureMask | + StructureNotifyMask | + KeyPressMask | + KeyReleaseMask | + ButtonPressMask | + ButtonReleaseMask | PointerMotionMask, &ev)) + { + switch (ev.type) + { + case ButtonPress: +/* evas_event_button_down(evas, ev.xbutton.x, ev.xbutton.y, ev.xbutton.button);*/ + break; + case ButtonRelease: +/* evas_event_button_up(evas, ev.xbutton.x, ev.xbutton.y, ev.xbutton.button);*/ + break; + case MotionNotify: +/* evas_event_move(evas, ev.xmotion.x, ev.xmotion.y);*/ + break; + case Expose: + exposed = 1; + evas_damage_rectangle_add(evas, + ev.xexpose.x, + ev.xexpose.y, + ev.xexpose.width, + ev.xexpose.height); + break; + default: + break; + } + } + evas_render(evas); + XFlush(disp); + if (exposed) + { + Evas_Engine_Info_Software_X11 *einfo; + Evas_Performance *perf; + char buf[4096]; + char *data, *key; + static mode_t default_mode = + S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | + S_IXOTH; + FILE *f; + + data = NULL; + einfo = + (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas); + perf = + einfo->func.performance_new(evas, disp, + DefaultVisual(disp, + DefaultScreen(disp)), + DefaultColormap(disp, + DefaultScreen + (disp)), win, + DefaultDepth(disp, + DefaultScreen(disp))); + key = einfo->func.performance_key_get(perf); + snprintf(buf, sizeof(buf), "%s/.evas/%s", getenv("HOME"), key); + free(key); + f = fopen(buf, "r"); + if (f) + { + char buf[4096]; + size_t sz; + + sz = fread(buf, 1, 4000, f); + if (sz > 0) + { + data = malloc(sz + 1); + if (data) + { + strncpy(data, buf, sz); + data[sz] = 0; + } + } + fclose(f); + } + if (data) + { + einfo->func.performance_build(perf, data); + einfo->func.performance_device_store(perf); + free(data); + } + else + { + printf("No cached performance values for your display.\n"); + printf("Please run evas_perf_test to generate them.\n"); + einfo->func.performance_free(perf); + exit(-1); + } + einfo->func.performance_free(perf); + exit(0); + } + } + + return 0; +} diff --git a/legacy/evas/src/bin/evas_software_x11_perf_test.c b/legacy/evas/src/bin/evas_software_x11_perf_test.c new file mode 100644 index 0000000000..344df16b94 --- /dev/null +++ b/legacy/evas/src/bin/evas_software_x11_perf_test.c @@ -0,0 +1,162 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "Evas.h" +#include "Evas_Engine_Software_X11.h" + +Display *disp = NULL; +Window win = 0; + +Evas *evas = NULL; + +int win_w = 240; +int win_h = 240; + +int +main(int argc, char **argv) +{ + int exposed = 0; + + XSetWindowAttributes attr; + XClassHint chint; + XSizeHints szhints; + + disp = XOpenDisplay(NULL); + if (!disp) + { + printf("Error: cannot open display.\n"); + exit(-1); + } + attr.backing_store = NotUseful; + attr.colormap = DefaultColormap(disp, DefaultScreen(disp)); + attr.border_pixel = 0; + attr.background_pixmap = None; + attr.event_mask = + ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask; + attr.bit_gravity = ForgetGravity; + win = XCreateWindow(disp, DefaultRootWindow(disp), 0, 0, win_w, win_h, 0, + DefaultDepth(disp, DefaultScreen(disp)), InputOutput, + DefaultVisual(disp, DefaultScreen(disp)), + CWBackingStore | CWColormap | + CWBackPixmap | CWBorderPixel | + CWBitGravity | CWEventMask, &attr); + XStoreName(disp, win, "Evas Performance Test"); + chint.res_name = "Evas_Test"; + chint.res_class = "Main"; + XSetClassHint(disp, win, &chint); + szhints.flags = PMinSize | PMaxSize | PSize | USSize; + szhints.max_width = win_w; + szhints.max_height = win_h; + szhints.min_width = win_w; + szhints.min_height = win_h; + XSetWMNormalHints(disp, win, &szhints); + XMapWindow(disp, win); + XSync(disp, False); + sleep(1); + + evas = evas_new(); + evas_output_method_set(evas, evas_render_method_lookup("software_x11")); + evas_output_size_set(evas, win_w, win_h); + evas_output_viewport_set(evas, 0, 0, win_w, win_h); + { + Evas_Engine_Info_Software_X11 *einfo; + + einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas); + + /* the following is specific to the engine */ + einfo->info.display = disp; + einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp)); + einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp)); + einfo->info.drawable = win; + einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp)); + einfo->info.rotation = 0; + + evas_engine_info_set(evas, (Evas_Engine_Info *) einfo); + } + for (;;) + { + XEvent ev; + + while (XCheckMaskEvent(disp, + ExposureMask | + StructureNotifyMask | + KeyPressMask | + KeyReleaseMask | + ButtonPressMask | + ButtonReleaseMask | PointerMotionMask, &ev)) + { + switch (ev.type) + { + case ButtonPress: +/* evas_event_button_down(evas, ev.xbutton.x, ev.xbutton.y, ev.xbutton.button);*/ + break; + case ButtonRelease: +/* evas_event_button_up(evas, ev.xbutton.x, ev.xbutton.y, ev.xbutton.button);*/ + break; + case MotionNotify: +/* evas_event_move(evas, ev.xmotion.x, ev.xmotion.y);*/ + break; + case Expose: + exposed = 1; + evas_damage_rectangle_add(evas, + ev.xexpose.x, + ev.xexpose.y, + ev.xexpose.width, + ev.xexpose.height); + break; + default: + break; + } + } + evas_render(evas); + XFlush(disp); + if (exposed) + { + Evas_Engine_Info_Software_X11 *einfo; + Evas_Performance *perf; + char buf[4096]; + char *data, *key; + static mode_t default_mode = + S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | + S_IXOTH; + FILE *f; + + einfo = + (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas); + perf = + einfo->func.performance_test(evas, disp, + DefaultVisual(disp, + DefaultScreen(disp)), + DefaultColormap(disp, + DefaultScreen + (disp)), win, + DefaultDepth(disp, + DefaultScreen(disp))); + einfo->func.performance_device_store(perf); + data = einfo->func.performance_data_get(perf); + key = einfo->func.performance_key_get(perf); + snprintf(buf, sizeof(buf), "%s/.evas", getenv("HOME")); + mkdir(buf, default_mode); + snprintf(buf, sizeof(buf), "%s/.evas/%s", getenv("HOME"), key); + free(key); + f = fopen(buf, "w"); + if (f) + { + fprintf(f, "%s", data); + free(data); + fclose(f); + } + einfo->func.performance_free(perf); + exit(0); + } + } + + return 0; +} diff --git a/legacy/evas/src/bin/evas_test_main.c b/legacy/evas/src/bin/evas_test_main.c new file mode 100644 index 0000000000..7a6744fbf2 --- /dev/null +++ b/legacy/evas/src/bin/evas_test_main.c @@ -0,0 +1,1986 @@ +#include "config.h" +#include "evas_test_main.h" + +#define EVAS_PI (3.141592654) + +#ifndef _WIN32_WCE + +# define IM PACKAGE_DATA_DIR"/data/" +# define FN PACKAGE_DATA_DIR"/data/" + +#else + +# define IM PACKAGE_DATA_DIR"\\data\\" +# define FN PACKAGE_DATA_DIR"\\data\\" +wchar_t buf[1024]; + +#endif + + +Evas *evas = NULL; + +int win_w = 240; +int win_h = 320; + +int loop_count = 0; +int orig_loop_count = 0; + +double start_time = 0.0; +double orig_start_time = 0.0; + +Evas_Object *backdrop, *panel, *panel_top, *panel_shadow, *panel_clip; +Evas_Object *evas_logo, *e_logo; + +Evas_Object *title = NULL, *comment; + +Evas_Object *t1 = NULL, *t2 = NULL; +Evas_Object *test_pattern = NULL; +Evas_Object *c1 = NULL, *c2 = NULL; +Evas_Object *cv1 = NULL, *cv2 = NULL; + +#ifndef _WIN32_WCE +double +get_time(void) +{ + + struct timeval timev; + + gettimeofday(&timev, NULL); + return (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); + +} + +#else +double +get_time(void) +{ + + return (double)GetTickCount()/1000.0; +} +#endif + +void +loop(void) +{ + double t; + + loop_count++; + orig_loop_count++; + t = get_time() - start_time; + + + + if (t <= 2.0) + { + double y; + + y = sin((t / 2) * (EVAS_PI / 2)) * 240; + evas_object_move(panel, 0, win_h - y); + evas_object_move(panel_clip, 0, win_h - y); + evas_object_move(panel_top, 0, win_h - y - 10); + evas_object_move(panel_shadow, 0, win_h - y); + evas_object_resize(backdrop, win_w, win_h - y); + } + else if (t <= (6.0)) + { + evas_object_move(panel, 0, win_h - 240); + evas_object_move(panel_clip, 0, win_h - 240); + evas_object_move(panel_top, 0, win_h - 240 - 10); + evas_object_move(panel_shadow, 0, win_h - 240); + evas_object_color_set(evas_logo, 255, 255, 255, + (int)(255 * (((6.0) - t) / 4.0))); + } + else if (t <= 16.0) + { + double tw, th; + + if (evas_logo) + { + Evas_Object *ob; + + evas_object_del(evas_logo); + evas_logo = NULL; + + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "t1.png", NULL); + evas_object_move(ob, (win_w - 48) / 2, + (win_h - 240) + ((240 - 48) / 2)); + evas_object_resize(ob, 48, 48); + evas_object_image_fill_set(ob, 0, 0, 48, 48); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_image_smooth_scale_set(ob, 1); + evas_object_show(ob); + t1 = ob; + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "t2.png", NULL); + evas_object_move(ob, (win_w - 48) / 2, + (win_h - 240) + ((240 - 48) / 2)); + evas_object_resize(ob, 48, 48); + evas_object_image_fill_set(ob, 0, 0, 48, 48); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_image_smooth_scale_set(ob, 0); + evas_object_show(ob); + t2 = ob; + ob = evas_object_text_add(evas); + evas_object_text_font_set(ob, "arial", 8); + evas_object_geometry_get(ob, NULL, NULL, &tw, &th); + evas_object_move(ob, (win_w - tw) / 2, win_h - th); + evas_object_color_set(ob, 0, 0, 0, 255); + evas_object_layer_set(ob, 9); + evas_object_clip_set(ob, panel_clip); + evas_object_show(ob); + title = ob; + ob = evas_object_text_add(evas); + evas_object_text_font_set(ob, "arial", 8); + evas_object_geometry_get(ob, NULL, NULL, &tw, &th); + evas_object_move(ob, 0, win_h - 240); + evas_object_color_set(ob, 0, 0, 0, 255); + evas_object_layer_set(ob, 9); + evas_object_clip_set(ob, panel_clip); + evas_object_show(ob); + comment = ob; + } + + /* Japanese: "日本語]" */ + /* Korean: "한국" */ + /* Chinese: "汉语" */ + evas_object_text_text_set(comment, "Image objects can be moved"); + evas_object_text_text_set(title, "Test 1: Move 2 Images "); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + { + double x, y; + double v; + + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((240 - 48) / 2); + y = sin(v * 1.9) * ((240 - 48) / 2); + evas_object_move(t1, 120 + x - 24, win_h - 120 + y - 24); + x = cos(1.0 + (v * 2.3)) * ((240 - 48) / 2); + y = sin(1.0 + (v * 1.45)) * ((240 - 48) / 2); + evas_object_move(t2, 120 + x - 24, win_h - 120 + y - 24); + } + } + else if (t <= 26.0) + { + double tw, th; + + evas_object_text_text_set(comment, "Image objects can be resized"); + evas_object_text_text_set(title, "Test 2: Resize 2 Images"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + { + double x, y; + double v; + + v = (((t - 16.0) / 10.0) * EVAS_PI * 2) * 2; + x = (cos(v * 1.6) + 1.0) * 64; + y = (sin(v * 1.2) + 1.0) * 64; + evas_object_resize(t1, x, y); + x = (cos(v * 1.2) + 1.0) * 64; + y = (sin(v * 2.3) + 1.0) * 64; + evas_object_resize(t2, x, y); + } + } + + else if (t <= 36.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "Image objects are filled and scaled differently"); + evas_object_text_text_set(title, "Test 3: Resize & Fill 2 Images"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + { + double x, y; + double v; + + v = (((t - 26.0) / 10.0) * EVAS_PI * 2) * 2; + x = (cos(v * 1.6) + 1.0) * 64; + y = (sin(v * 1.2) + 1.0) * 64; + evas_object_resize(t1, x, y); + evas_object_image_fill_set(t1, 0, 0, x, y); + x = (cos(v * 1.2) + 1.0) * 64; + y = (sin(v * 2.3) + 1.0) * 64; + evas_object_resize(t2, x, y); + evas_object_image_fill_set(t2, 0, 0, x, y); + } + } + else if (t <= 46.0) + { + double tw, th; + + evas_object_text_text_set(comment, "Image objects are offset filled"); + evas_object_text_text_set(title, "Test 4: Fill Offset 2 Images"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + + evas_object_resize(t1, 100, 100); + evas_object_image_fill_set(t1, -25, -25, 100, 100); + { + double x, y; + double v; + + v = (((t - 36.0) / 10.0) * EVAS_PI * 2) * 2; + x = (cos(v * 1.6) + 1.0) * 64; + y = (sin(v * 1.2) + 1.0) * 64; + evas_object_resize(t1, x, y); + evas_object_image_fill_set(t1, -x / 4, -y / 4, x / 2, y / 2); + x = (cos(v * 1.2) + 1.0) * 64; + y = (sin(v * 2.3) + 1.0) * 64; + evas_object_resize(t2, x, y); + evas_object_image_fill_set(t2, -x / 4, -y / 4, x / 2, y / 2); + } + } + + else if (t <= 56.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "Edges of images can be scaled differently"); + evas_object_text_text_set(title, "Test 5: Border Fill 2 Images"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + evas_object_image_border_set(t1, 8, 8, 8, 8); + evas_object_image_border_set(t2, 8, 8, 8, 8); + { + double x, y; + double v; + + v = (((t - 46.0) / 10.0) * EVAS_PI * 2) * 2; + x = (cos(v * 1.6) + 1.0) * 64; + y = (sin(v * 1.2) + 1.0) * 64; + evas_object_resize(t1, x, y); + evas_object_image_fill_set(t1, 0, 0, x, y); + x = (cos(v * 1.2) + 1.0) * 64; + y = (sin(v * 2.3) + 1.0) * 64; + evas_object_resize(t2, x, y); + evas_object_image_fill_set(t2, 0, 0, x, y); + } + } + else if (t <= 76.0) + { + double tw, th; + int iw, ih; + + evas_object_text_text_set(title, "Test 7: Image Quality"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (!test_pattern) + { + Evas_Object *ob; + + evas_object_hide(t1); + evas_object_hide(t2); + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "test_pattern.png", NULL); + evas_object_image_size_get(ob, &iw, &ih); + evas_object_move(ob, (win_w - iw) / 2, + (win_h - 240) + ((240 - ih) / 2)); + evas_object_resize(ob, iw, ih); + evas_object_image_fill_set(ob, 0, 0, iw, ih); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_show(ob); + test_pattern = ob; + } + { + double v; + double x, y; + + evas_object_image_size_get(test_pattern, &iw, &ih); + v = 2.0 - ((t - 56.0) / 10.0); + if ((v >= 0.4) && (v <= 1.4)) + { + evas_object_text_text_set(comment, + "Look and see if it looks right"); + v = 1.4; + } + else if (v <= 0.4) + { + evas_object_text_text_set(comment, "Scaling test pattern"); + v += 1.0; + } + else + { + evas_object_text_text_set(comment, "Scaling test pattern"); + } + v -= 1.0; + x = iw * v; + y = ih * v; + evas_object_move(test_pattern, (win_w - x) / 2, + (win_h - 240) + ((240 - y) / 2)); + evas_object_resize(test_pattern, x, y); + evas_object_image_fill_set(test_pattern, 0, 0, x, y); + } + } + else if (t <= 86.0) + { + double tw, th; + int iw, ih; + + evas_object_text_text_set(title, "Test 8: Raise & Lower"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (test_pattern) + { + evas_object_del(test_pattern); + test_pattern = NULL; + evas_object_image_border_set(t1, 0, 0, 0, 0); + evas_object_image_border_set(t2, 0, 0, 0, 0); + evas_object_resize(t1, 48, 48); + evas_object_resize(t2, 48, 48); + evas_object_move(t1, 40, win_h - 240 + 40); + evas_object_move(t2, 60, win_h - 240 + 60); + evas_object_image_fill_set(t1, 0, 0, 48, 48); + evas_object_image_fill_set(t2, 0, 0, 48, 48); + evas_object_show(t1); + evas_object_show(t2); + } + if (((int)(t)) & 0x1) + { + evas_object_text_text_set(comment, "2 On Top"); + evas_object_raise(t2); + } + else + { + evas_object_text_text_set(comment, "1 On Top"); + evas_object_raise(t1); + } + } + else if (t <= 96.0) + { + double tw, th; + int iw, ih; + + evas_object_text_text_set(title, "Test 9: Layer Setting"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (test_pattern) + { + evas_object_del(test_pattern); + test_pattern = NULL; + evas_object_image_border_set(t1, 0, 0, 0, 0); + evas_object_image_border_set(t2, 0, 0, 0, 0); + evas_object_resize(t1, 48, 48); + evas_object_resize(t2, 48, 48); + evas_object_move(t1, 40, win_h - 240 + 40); + evas_object_move(t2, 60, win_h - 240 + 60); + evas_object_image_fill_set(t1, 0, 0, 48, 48); + evas_object_image_fill_set(t2, 0, 0, 48, 48); + evas_object_show(t1); + evas_object_show(t2); + } + if (((int)(t)) & 0x1) + { + evas_object_text_text_set(comment, "2 On Top"); + evas_object_layer_set(t1, 5); + evas_object_layer_set(t2, 6); + } + else + { + evas_object_text_text_set(comment, "1 On Top"); + evas_object_layer_set(t1, 6); + evas_object_layer_set(t2, 5); + } + } + else if (t <= 106.0) + { + double tw, th; + int iw, ih; + + evas_object_text_text_set(title, "Test 10: Show & Hide"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (test_pattern) + { + evas_object_del(test_pattern); + test_pattern = NULL; + evas_object_image_border_set(t1, 0, 0, 0, 0); + evas_object_image_border_set(t2, 0, 0, 0, 0); + evas_object_resize(t1, 48, 48); + evas_object_resize(t2, 48, 48); + evas_object_move(t1, 40, win_h - 240 + 40); + evas_object_move(t2, 60, win_h - 240 + 60); + evas_object_image_fill_set(t1, 0, 0, 48, 48); + evas_object_image_fill_set(t2, 0, 0, 48, 48); + evas_object_show(t1); + evas_object_show(t2); + } + if (((int)(t)) & 0x1) + { + evas_object_text_text_set(comment, "1 Show"); + evas_object_show(t1); + } + else + { + evas_object_text_text_set(comment, "1 Hide"); + evas_object_hide(t1); + } + } + else if (t <= 136.0) + { + double tw, th; + int iw, ih; + + evas_object_text_text_set(title, "Test 11: Image Data Access"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (!test_pattern) + + { + Evas_Object *ob; + + evas_object_hide(t1); + evas_object_hide(t2); + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "test_pattern.png", NULL); + evas_object_image_size_get(ob, &iw, &ih); + ih = ((win_w - 8) * ih) / iw; + iw = (win_w - 8); + evas_object_resize(ob, iw, ih); + evas_object_image_fill_set(ob, 0, 0, iw, ih); + evas_object_move(ob, 4, (win_h - 240) + ((240 - ih) / 2)); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_show(ob); + test_pattern = ob; + } + if (t <= 116.0) + { + int iw, ih; + int x, y; + int *data; + + evas_object_text_text_set(comment, "Play with all the image data"); + evas_object_image_size_get(test_pattern, &iw, &ih); + evas_object_image_alpha_set(test_pattern, 0); + data = evas_object_image_data_get(test_pattern, 1); + if (data) + { + for (y = 0; y < ih; y++) + { + for (x = 0; x < iw; x++) + { + data[(y * iw) + x] = + (((x * y / 10) + (int)(t * 1000))) | 0xff000000; + } + } + evas_object_image_data_update_add(test_pattern, 0, 0, iw, ih); + evas_object_image_data_set(test_pattern, data); + } + } + else if (t <= 126.0) + { + int iw, ih; + int x, y; + int *data; + + evas_object_text_text_set(comment, + "Play with part of the image data"); + evas_object_image_size_get(test_pattern, &iw, &ih); + evas_object_image_alpha_set(test_pattern, 0); + data = evas_object_image_data_get(test_pattern, 1); + if (data) + { + for (y = ih / 4; y < ((3 * ih) / 4); y++) + { + for (x = iw / 4; x < ((3 * iw) / 4); x++) + { + data[(y * iw) + x] = + (((x * y / 10) + (int)(t * 1000))) | 0xff000000; + } + } + evas_object_image_data_update_add(test_pattern, iw / 4, + ih / 4, iw / 2, ih / 2); + evas_object_image_data_set(test_pattern, data); + } + } + else + { + int iw, ih; + + evas_object_text_text_set(comment, "Play with image size"); + evas_object_image_size_get(test_pattern, &iw, &ih); + if ((iw > 1) && (ih > 1)) + { + evas_object_image_size_set(test_pattern, iw - 1, ih - 1); + } + } + } + else if (t <= 146.0) + { + double tw, th; + + evas_object_text_text_set(title, "Test 12: Image Destroy & Create"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (test_pattern) + { + evas_object_del(test_pattern); + test_pattern = NULL; + if (t1) + evas_object_del(t1); + t1 = NULL; + if (t2) + evas_object_del(t2); + t2 = NULL; + + } + if (((int)(t * 10.0)) & 0x1) + { + if (t2) + evas_object_del(t2); + t2 = NULL; + if (!t1) + { + Evas_Object *ob; + + evas_object_text_text_set(comment, + "Destroy image 2, create 1"); + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "t1.png", NULL); + evas_object_move(ob, (win_w - 48) / 2, + (win_h - 240) + ((240 - 48) / 2)); + evas_object_resize(ob, 48, 48); + evas_object_image_fill_set(ob, 0, 0, 48, 48); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_image_smooth_scale_set(ob, 1); + evas_object_show(ob); + t1 = ob; + } + } + else + { + if (t1) + evas_object_del(t1); + t1 = NULL; + if (!t2) + { + Evas_Object *ob; + + evas_object_text_text_set(comment, + "Destroy image 1, create 2"); + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "t2.png", NULL); + evas_object_move(ob, (win_w - 48) / 2, + (win_h - 240) + ((240 - 48) / 2)); + evas_object_resize(ob, 48, 48); + evas_object_image_fill_set(ob, 0, 0, 48, 48); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_image_smooth_scale_set(ob, 0); + evas_object_show(ob); + t2 = ob; + } + } + } + else if (t <= 156.0) + { + double tw, th; + + evas_object_text_text_set(title, "Test 13: Line Destroy & Create"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (((int)(t * 10.0)) & 0x1) + { + if (t2) + evas_object_del(t2); + t2 = NULL; + if (!t1) + { + Evas_Object *ob; + + evas_object_text_text_set(comment, + "Destroy line blue, create red"); + ob = evas_object_line_add(evas); + evas_object_line_xy_set(ob, 10, win_h - 240 + 10, win_w - 10, + win_h - 10); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_color_set(ob, 255, 0, 0, 200); + evas_object_show(ob); + t1 = ob; + } + } + else + { + if (t1) + evas_object_del(t1); + t1 = NULL; + if (!t2) + { + Evas_Object *ob; + + evas_object_text_text_set(comment, + "Destroy line red, create blue"); + ob = evas_object_line_add(evas); + evas_object_line_xy_set(ob, win_w - 10, win_h - 240 + 10, 10, + win_h - 10); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_color_set(ob, 0, 0, 255, 200); + evas_object_show(ob); + t2 = ob; + } + } + } + else if (t <= 166.0) + { + double tw, th; + + evas_object_text_text_set(title, "Test 14: Rectangle Destroy & Create"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (((int)(t * 10.0)) & 0x1) + { + if (t2) + evas_object_del(t2); + t2 = NULL; + if (!t1) + { + Evas_Object *ob; + + evas_object_text_text_set(comment, + "Destroy rectangle blue, create red"); + ob = evas_object_rectangle_add(evas); + evas_object_move(ob, (win_w - 48) / 2, + (win_h - 240) + ((240 - 48) / 2)); + evas_object_resize(ob, 48, 48); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_color_set(ob, 255, 0, 0, 200); + evas_object_show(ob); + t1 = ob; + } + } + else + { + if (t1) + evas_object_del(t1); + t1 = NULL; + if (!t2) + { + Evas_Object *ob; + + evas_object_text_text_set(comment, + "Destroy rectangle red, create blue"); + ob = evas_object_rectangle_add(evas); + evas_object_move(ob, (win_w - 48) / 2, + (win_h - 240) + ((240 - 48) / 2)); + evas_object_resize(ob, 48, 48); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_color_set(ob, 0, 0, 255, 200); + evas_object_show(ob); + t2 = ob; + } + } + } + else if (t <= 176.0) + { + double tw, th; + + evas_object_text_text_set(title, "Test 15: Gradient Destroy & Create"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (((int)(t * 10.0)) & 0x1) + { + if (t2) + evas_object_del(t2); + t2 = NULL; + if (!t1) + { + Evas_Object *ob; + + evas_object_text_text_set(comment, + "Destroy gradient blue, create red"); + ob = evas_object_gradient_add(evas); + evas_object_gradient_color_add(ob, 255, 0, 0, 0, 1); + evas_object_gradient_color_add(ob, 255, 0, 0, 255, 1); + evas_object_gradient_color_add(ob, 255, 255, 255, 255, 1); + evas_object_gradient_angle_set(ob, 45.0); + evas_object_move(ob, (win_w - 48) / 2, + (win_h - 240) + ((240 - 48) / 2)); + evas_object_resize(ob, 48, 48); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_show(ob); + t1 = ob; + } + } + else + { + if (t1) + evas_object_del(t1); + t1 = NULL; + if (!t2) + { + Evas_Object *ob; + + evas_object_text_text_set(comment, + "Destroy gradient red, create blue"); + ob = evas_object_gradient_add(evas); + evas_object_gradient_color_add(ob, 0, 0, 255, 0, 1); + evas_object_gradient_color_add(ob, 0, 0, 255, 255, 1); + evas_object_gradient_color_add(ob, 255, 255, 255, 255, 1); + evas_object_gradient_angle_set(ob, 45.0); + evas_object_move(ob, (win_w - 48) / 2, + (win_h - 240) + ((240 - 48) / 2)); + evas_object_resize(ob, 48, 48); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_show(ob); + t2 = ob; + } + } + } + else if (t <= 186.0) + { + double tw, th; + + evas_object_text_text_set(title, "Test 16: Polygon Destroy & Create"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (((int)(t * 10.0)) & 0x1) + { + if (t2) + evas_object_del(t2); + t2 = NULL; + if (!t1) + { + Evas_Object *ob; + + evas_object_text_text_set(comment, + "Destroy polygon blue, create red"); + ob = evas_object_polygon_add(evas); + evas_object_polygon_point_add(ob, 10, win_h - 240 + 10); + evas_object_polygon_point_add(ob, win_w - 10, + win_h - 240 + 10); + evas_object_polygon_point_add(ob, 10, win_h - 10); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_color_set(ob, 255, 0, 0, 200); + evas_object_show(ob); + t1 = ob; + } + } + else + { + if (t1) + evas_object_del(t1); + t1 = NULL; + if (!t2) + { + Evas_Object *ob; + + evas_object_text_text_set(comment, + "Destroy polygon red, create blue"); + ob = evas_object_polygon_add(evas); + evas_object_polygon_point_add(ob, 10, win_h - 10); + evas_object_polygon_point_add(ob, win_w - 10, win_h - 10); + evas_object_polygon_point_add(ob, win_w - 10, + win_h - 240 + 10); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_color_set(ob, 0, 0, 255, 200); + evas_object_show(ob); + t2 = ob; + } + } + } + else if (t <= 196.0) + { + double tw, th; + + evas_object_text_text_set(title, "Test 17: Text Destroy & Create"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (((int)(t * 10.0)) & 0x1) + { + if (t2) + evas_object_del(t2); + t2 = NULL; + if (!t1) + { + Evas_Object *ob; + + evas_object_text_text_set(comment, + "Destroy text blue, create red"); + ob = evas_object_text_add(evas); + evas_object_text_font_set(ob, "arial", 12); + evas_object_text_text_set(ob, "Red test string"); + evas_object_move(ob, (win_w / 2) - 50, win_h - 120); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_color_set(ob, 255, 0, 0, 200); + evas_object_show(ob); + t1 = ob; + } + } + else + { + if (t1) + evas_object_del(t1); + t1 = NULL; + if (!t2) + { + Evas_Object *ob; + + evas_object_text_text_set(comment, + "Destroy text red, create blue"); + ob = evas_object_text_add(evas); + evas_object_text_font_set(ob, "arial", 12); + evas_object_text_text_set(ob, "Blue test string"); + evas_object_move(ob, (win_w / 2) - 50, win_h - 120); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_color_set(ob, 0, 0, 255, 200); + evas_object_show(ob); + t2 = ob; + } + } + } + else if (t <= 197.0) + { + if (t1) + evas_object_del(t1); + t1 = NULL; + if (t2) + evas_object_del(t2); + t2 = NULL; + } + else if (t <= 207.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "Image objects can be clipped by rectangles"); + evas_object_text_text_set(title, "Test 18: Clip Objects"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (!t1) + { + Evas_Object *ob; + + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "t1.png", NULL); + evas_object_move(ob, 5, win_h - 240 + 5); + evas_object_resize(ob, 48, 48); + evas_object_image_fill_set(ob, 0, 0, 48, 48); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_image_smooth_scale_set(ob, 1); + evas_object_show(ob); + t1 = ob; + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "t2.png", NULL); + evas_object_move(ob, 40, win_h - 240 + 40); + evas_object_resize(ob, 48, 48); + evas_object_image_fill_set(ob, 0, 0, 48, 48); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_image_smooth_scale_set(ob, 0); + evas_object_show(ob); + t2 = ob; + ob = evas_object_rectangle_add(evas); + evas_object_move(ob, 10, win_h - 240 + 10); + evas_object_resize(ob, 180, 180); + evas_object_color_set(ob, 255, 255, 128, 255); + evas_object_clip_set(ob, panel_clip); + evas_object_show(ob); + c1 = ob; + ob = evas_object_rectangle_add(evas); + evas_object_move(ob, 10, win_h - 240 + 10); + evas_object_resize(ob, 180, 180); + evas_object_layer_set(ob, 5); + evas_object_color_set(ob, 255, 255, 128, 100); + evas_object_clip_set(ob, panel_clip); + evas_object_show(ob); + cv1 = ob; + ob = evas_object_rectangle_add(evas); + evas_object_move(ob, win_w - 10 - 180, win_h - 10 - 180); + evas_object_resize(ob, 180, 180); + evas_object_color_set(ob, 128, 255, 255, 255); + evas_object_clip_set(ob, panel_clip); + evas_object_show(ob); + c2 = ob; + ob = evas_object_rectangle_add(evas); + evas_object_move(ob, win_w - 10 - 180, win_h - 10 - 180); + evas_object_resize(ob, 180, 180); + evas_object_layer_set(ob, 5); + evas_object_color_set(ob, 128, 255, 255, 100); + evas_object_clip_set(ob, panel_clip); + evas_object_show(ob); + cv2 = ob; + evas_object_clip_set(t1, c1); + evas_object_clip_set(t2, c2); + } + { + double x, y; + double v; + + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((240 - 48) / 2); + y = sin(v * 1.9) * ((240 - 48) / 2); + evas_object_move(t1, 120 + x - 24, win_h - 120 + y - 24); + x = cos(1.0 + (v * 2.3)) * ((240 - 48) / 2); + y = sin(1.0 + (v * 1.45)) * ((240 - 48) / 2); + evas_object_move(t2, 120 + x - 24, win_h - 120 + y - 24); + } + } + else if (t <= 217.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "Image objects can be clipped by recursively"); + evas_object_text_text_set(title, "Test 19: Recusrively Clip Objects"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + evas_object_clip_set(c2, c1); + { + double x, y; + double v; + + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((240 - 48) / 2); + y = sin(v * 1.9) * ((240 - 48) / 2); + evas_object_move(t1, 120 + x - 24, win_h - 120 + y - 24); + x = cos(1.0 + (v * 2.3)) * ((240 - 48) / 2); + y = sin(1.0 + (v * 1.45)) * ((240 - 48) / 2); + evas_object_move(t2, 120 + x - 24, win_h - 120 + y - 24); + } + } + else if (t <= 227.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "Clip objects can move around too..."); + evas_object_text_text_set(title, "Test 19: Recusrively Clip Objects"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + { + double x, y; + double v; + + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((240 - 180) / 2); + y = sin(v * 1.9) * ((240 - 180) / 2); + evas_object_move(c1, 120 + x - 90, win_h - 120 + y - 80); + evas_object_move(cv1, 120 + x - 90, win_h - 120 + y - 80); + x = cos(1.0 + (v * 2.3)) * ((240 - 180) / 2); + y = sin(1.0 + (v * 1.45)) * ((240 - 180) / 2); + evas_object_move(c2, 120 + x - 90, win_h - 120 + y - 90); + evas_object_move(cv2, 120 + x - 90, win_h - 120 + y - 90); + } + } + else if (t <= 237.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "Clip objects can resize around too..."); + evas_object_text_text_set(title, "Test 20: Recusrively Clip Objects"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + { + double x, y; + double v; + + evas_object_move(t1, 40, win_h - 240 + 60); + evas_object_move(t2, 60, win_h - 240 + 100); + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((180) / 2); + y = sin(v * 1.9) * ((180) / 2); + evas_object_resize(c1, 90 + x, 90 + y); + evas_object_resize(cv1, 90 + x, 90 + y); + x = cos(1.0 + (v * 2.3)) * ((180) / 2); + y = sin(1.0 + (v * 1.45)) * ((180) / 2); + evas_object_resize(c2, 90 + x, 90 + y); + evas_object_resize(cv2, 90 + x, 90 + y); + } + } + else if (t <= 247.0) + { + double tw, th; + + evas_object_text_text_set(comment, "Clip objects can hide and show..."); + evas_object_text_text_set(title, "Test 21: Show and Hide Clip Objects"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + evas_object_move(c1, 10, win_h - 240 + 10); + evas_object_resize(c1, 180, 180); + evas_object_move(cv1, 10, win_h - 240 + 10); + evas_object_resize(cv1, 180, 180); + evas_object_move(c2, win_w - 10 - 180, win_h - 10 - 180); + evas_object_resize(c2, 180, 180); + evas_object_move(cv2, win_w - 10 - 180, win_h - 10 - 180); + evas_object_resize(cv2, 180, 180); + if ((((int)(t)) & 0x3) == 0) + { + evas_object_text_text_set(comment, "Show yellow"); + evas_object_show(c1); + evas_object_show(cv1); + evas_object_hide(c2); + evas_object_hide(cv2); + } + else if ((((int)(t)) & 0x3) == 1) + { + evas_object_text_text_set(comment, "Show blue"); + evas_object_hide(c1); + evas_object_hide(cv1); + evas_object_show(c2); + evas_object_show(cv2); + } + else if ((((int)(t)) & 0x3) == 2) + { + evas_object_text_text_set(comment, "Show yellow, blue"); + evas_object_show(c1); + evas_object_show(cv1); + evas_object_show(c2); + evas_object_show(cv2); + } + else if ((((int)(t)) & 0x3) == 3) + { + evas_object_text_text_set(comment, "Hide both"); + evas_object_hide(c1); + evas_object_hide(cv1); + evas_object_hide(c2); + evas_object_hide(cv2); + } + } + else if (t <= 257.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "Clip objects can clip and unclip..."); + evas_object_text_text_set(title, "Test 22: Clip and Unclip Objects"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + evas_object_move(t1, 20, win_h - 240 + 20); + evas_object_move(t2, 160, win_h - 240 + 40); + evas_object_move(c1, 10, win_h - 240 + 10); + evas_object_resize(c1, 180, 180); + evas_object_move(cv1, 10, win_h - 240 + 10); + evas_object_resize(cv1, 180, 180); + evas_object_move(c2, win_w - 10 - 180, win_h - 10 - 180); + evas_object_resize(c2, 180, 180); + evas_object_move(cv2, win_w - 10 - 180, win_h - 10 - 180); + evas_object_resize(cv2, 180, 180); + if ((((int)(t)) & 0x1) == 0) + { + evas_object_text_text_set(comment, "Unlip 2 from blue"); + evas_object_clip_unset(t2); + } + else if ((((int)(t)) & 0x1) == 1) + { + evas_object_text_text_set(comment, "Clip 2 to blue"); + evas_object_clip_set(t2, c2); + } + } + else if (t <= 267.0) + { + double tw, th; + + evas_object_text_text_set(comment, "Clip objects can be destroyed..."); + evas_object_text_text_set(title, "Test 23: Destroy Clip Objects"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + evas_object_move(t1, 20, win_h - 240 + 20); + evas_object_move(t2, 160, win_h - 240 + 40); + if (c1) + { + evas_object_move(c1, 10, win_h - 240 + 10); + evas_object_resize(c1, 180, 180); + } + if (cv1) + { + evas_object_move(cv1, 10, win_h - 240 + 10); + evas_object_resize(cv1, 180, 180); + } + if (c2) + { + evas_object_move(c2, win_w - 10 - 180, win_h - 10 - 180); + evas_object_resize(c2, 180, 180); + } + if (cv2) + { + evas_object_move(cv2, win_w - 10 - 180, win_h - 10 - 180); + evas_object_resize(cv2, 180, 180); + } + if (c2) + { + evas_object_clip_set(t2, c2); + } + if (t < 262.0) + { + evas_object_text_text_set(comment, "Destroy yellow"); + if (c1) + evas_object_del(c1); + if (cv1) + evas_object_del(cv1); + c1 = NULL; + cv1 = NULL; + } + else + { + evas_object_text_text_set(comment, "Destroy blue"); + if (c2) + evas_object_del(c2); + if (cv2) + evas_object_del(cv2); + c2 = NULL; + cv2 = NULL; + } + } + else if (t <= 268.0) + { + if (t1) + evas_object_del(t1); + t1 = NULL; + if (t2) + evas_object_del(t2); + t2 = NULL; + } + else if (t <= 278.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "We can change the text of a text object"); + evas_object_text_text_set(title, "Test 24: Set Text Object Text"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (!t1) + { + Evas_Object *ob; + + ob = evas_object_text_add(evas); + evas_object_move(ob, 10, win_h - 240 + 60); + evas_object_color_set(ob, 0, 0, 0, 255); + evas_object_text_font_set(ob, "arial", 8); + evas_object_text_text_set(ob, "Hello World [\xe2\x88\x9e]"); + evas_object_clip_set(ob, panel_clip); + evas_object_layer_set(ob, 5); + evas_object_show(ob); + t1 = ob; + } + if ((((int)(t * 4)) & 0x3) == 0) + { + evas_object_text_text_set(t1, "Hello World [ \xe2\x88\x9e ]"); + } + else if ((((int)(t * 4)) & 0x3) == 1) + { + evas_object_text_text_set(t1, "Heizölrückstoßabdämpfung"); + } + else if ((((int)(t * 4)) & 0x3) == 2) + { + evas_object_text_text_set(t1, + "В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!"); + } + else if ((((int)(t * 4)) & 0x3) == 3) + { + evas_object_text_text_set(t1, + "All Evas text objects use UTF-8 Unicode"); + } + } + else if (t <= 288.0) + { + double tw, th; + + evas_object_text_text_set(comment, "We can change the font size"); + evas_object_text_text_set(title, "Test 25: Set Text Object Size"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + evas_object_text_font_set(t1, "arial", (t - 278.0 + 0.5) * 8.0); + } + else if (t <= 298.0) + { + double tw, th; + + evas_object_text_text_set(comment, "We can move text"); + evas_object_text_text_set(title, "Test 26: Move Text Object"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + evas_object_text_font_set(t1, "arial", 24); + evas_object_text_text_set(t1, "Evas"); + { + double x, y; + double v; + + evas_object_geometry_get(t1, NULL, NULL, &tw, &th); + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((240 - tw) / 2); + y = sin(v * 1.9) * ((240 - th) / 2); + evas_object_move(t1, 120 + x - (tw / 2), win_h - 120 + y - (th / 2)); + } + } + else if (t <= 308.0) + { + double tw, th; + + evas_object_text_text_set(comment, "We can change the font"); + evas_object_text_text_set(title, "Test 27: Set Text Object Font"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if ((((int)(t * 4)) & 0x3) == 0) + { + evas_object_text_font_set(t1, "arial", 48); + } + else if ((((int)(t * 4)) & 0x3) == 1) + { + evas_object_text_font_set(t1, "notepad", 48); + } + else if ((((int)(t * 4)) & 0x3) == 2) + { + evas_object_text_font_set(t1, "grunge", 48); + } + else if ((((int)(t * 4)) & 0x3) == 3) + { + evas_object_text_font_set(t1, "morpheus", 48); + } + evas_object_text_text_set(t1, "Evas"); + evas_object_geometry_get(t1, NULL, NULL, &tw, &th); + evas_object_move(t1, 120 - (tw / 2), win_h - 120 - (th / 2)); + } + else if (t <= 318.0) + { + double tw, th; + + evas_object_text_text_set(comment, "We can change the color"); + evas_object_text_text_set(title, "Test 28: Set Text Object Color"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + evas_object_text_font_set(t1, "grunge", 48); + evas_object_text_text_set(t1, "Evas"); + evas_object_geometry_get(t1, NULL, NULL, &tw, &th); + evas_object_move(t1, 120 - (tw / 2), win_h - 120 - (th / 2)); + evas_object_color_set(t1, + ((int)(t * 255)) & 0xff, + ((int)(t * 200)) & 0xff, + ((int)(t * 133)) & 0xff, ((int)(t * 128)) & 0xff); + } + else if (t <= 319.0) + { + if (t1) + evas_object_del(t1); + t1 = NULL; + if (t2) + evas_object_del(t2); + t2 = NULL; + } + else if (t <= 329.0) + { + double tw, th; + + evas_object_text_text_set(comment, "We can move gradients around"); + evas_object_text_text_set(title, "Test 29: Move Gradients"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (!t1) + { + Evas_Object *ob; + + ob = evas_object_gradient_add(evas); + evas_object_gradient_color_add(ob, 255, 255, 255, 255, 1); + evas_object_gradient_color_add(ob, 250, 240, 50, 180, 1); + evas_object_gradient_color_add(ob, 220, 60, 0, 120, 1); + evas_object_gradient_color_add(ob, 200, 0, 0, 80, 1); + evas_object_gradient_color_add(ob, 0, 0, 0, 0, 0); + evas_object_gradient_angle_set(ob, 45.0); + evas_object_move(ob, 60, win_h - 240 + 60); + evas_object_resize(ob, 120, 120); + evas_object_clip_set(ob, panel_clip); + evas_object_layer_set(ob, 5); + evas_object_show(ob); + t1 = ob; + } + { + double x, y; + double v; + + evas_object_geometry_get(t1, NULL, NULL, &tw, &th); + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((240 - tw) / 2); + y = sin(v * 1.9) * ((240 - th) / 2); + evas_object_move(t1, 120 + x - (tw / 2), win_h - 120 + y - (th / 2)); + } + } + else if (t <= 339.0) + { + double tw, th; + + evas_object_text_text_set(comment, "We can resize gradients"); + evas_object_text_text_set(title, "Test 30: Resize Gradients"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + { + double x, y; + double v; + + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((220) / 2); + y = sin(v * 1.9) * ((220) / 2); + evas_object_move(t1, 10, win_h - 240 + 10); + evas_object_resize(t1, x + 110, y + 110); + } + } + else if (t <= 349.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "We can change gradient angle fills & resize"); + evas_object_text_text_set(title, "Test 30: Gradient angles"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + { + double x, y; + double v; + + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((220) / 2); + y = sin(v * 1.9) * ((220) / 2); + evas_object_resize(t1, x + 110, y + 110); + evas_object_gradient_angle_set(t1, t * 60); + } + } + else if (t <= 359.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "We can change color gradient, angle fill & resize"); + evas_object_text_text_set(title, "Test 31: Gradient Range"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + { + double x, y; + double v; + + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((220) / 2); + y = sin(v * 1.9) * ((220) / 2); + evas_object_resize(t1, x + 110, y + 110); + evas_object_gradient_angle_set(t1, t * 60); + evas_object_gradient_colors_clear(t1); + evas_object_gradient_color_add(t1, 255, 255, 255, 255, 1); + evas_object_gradient_color_add(t1, + ((int)(t * 250)) & 0xff, + ((int)(t * 200)) & 0xff, + ((int)(t * 150)) & 0xff, + ((int)(t * 350)) & 0xff, 1); + evas_object_gradient_color_add(t1, + ((int)(t * 150)) & 0xff, + ((int)(t * 250)) & 0xff, + ((int)(t * 350)) & 0xff, + ((int)(t * 100)) & 0xff, 1); + evas_object_gradient_color_add(t1, + ((int)(t * 120)) & 0xff, + ((int)(t * 260)) & 0xff, + ((int)(t * 490)) & 0xff, + ((int)(t * 230)) & 0xff, 1); + evas_object_gradient_color_add(t1, 0, 0, 0, 0, 0); + } + } + else if (t <= 369.0) /* FAIL! software_x11, fb */ + { + double tw, th; + + evas_object_text_text_set(comment, + "We can change color of a gradient object"); + evas_object_text_text_set(title, "Test 32: Gradient Object Color"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + { + double x, y; + double v; + + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((220) / 2); + y = sin(v * 1.9) * ((220) / 2); + evas_object_resize(t1, x + 110, y + 110); + evas_object_gradient_angle_set(t1, t * 60); + evas_object_gradient_colors_clear(t1); + evas_object_gradient_color_add(t1, 255, 255, 255, 255, 1); + evas_object_gradient_color_add(t1, 0, 0, 0, 255, 0); + evas_object_color_set(t1, + ((int)(t * 120)) & 0xff, + ((int)(t * 260)) & 0xff, + ((int)(t * 490)) & 0xff, + ((int)(t * 230)) & 0xff); + } + } + else if (t <= 370.0) + { + if (t1) + evas_object_del(t1); + t1 = NULL; + if (t2) + evas_object_del(t2); + t2 = NULL; + } + else if (t <= 380.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "We can move, resize and recolor rectangles"); + evas_object_text_text_set(title, "Test 33: Rectangles"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (!t1) + { + Evas_Object *ob; + + ob = evas_object_rectangle_add(evas); + evas_object_move(ob, 60, win_h - 240 + 60); + evas_object_resize(ob, 120, 120); + evas_object_clip_set(ob, panel_clip); + evas_object_layer_set(ob, 5); + evas_object_show(ob); + t1 = ob; + } + { + double x, y; + double v; + + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.3) * ((220) / 2); + y = sin(v * 1.1) * ((220) / 2); + evas_object_resize(t1, 110 + x, 110 + y); + evas_object_geometry_get(t1, NULL, NULL, &tw, &th); + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((240 - tw) / 2); + y = sin(v * 1.9) * ((240 - th) / 2); + evas_object_move(t1, 120 + x - (tw / 2), win_h - 120 + y - (th / 2)); + evas_object_color_set(t1, + ((int)(t * 120)) & 0xff, + ((int)(t * 260)) & 0xff, + ((int)(t * 490)) & 0xff, + ((int)(t * 230)) & 0xff); + } + } + else if (t <= 381.0) + { + if (t1) + evas_object_del(t1); + t1 = NULL; + if (t2) + evas_object_del(t2); + t2 = NULL; + } + else if (t <= 391.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "We can modify line begin & end coords"); + evas_object_text_text_set(title, "Test 34: Lines"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (!t1) + { + Evas_Object *ob; + + ob = evas_object_line_add(evas); + evas_object_line_xy_set(ob, + 10, win_h - 240 + 10, + win_w - 10, win_h - 10); + evas_object_color_set(ob, 0, 0, 0, 255); + evas_object_clip_set(ob, panel_clip); + evas_object_layer_set(ob, 5); + evas_object_show(ob); + t1 = ob; + } + { + double x, y, xx, yy; + double v; + + v = (((t - 2.0) / 12.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.3) * ((240 - 20) / 2); + y = sin(v * 1.8) * ((240 - 20) / 2); + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + xx = cos(v * 1.7) * ((240 - 20) / 2); + yy = sin(v * 1.9) * ((240 - 20) / 2); + evas_object_line_xy_set(t1, + (win_w / 2) + x, (win_h - 120) + y, + (win_w / 2) + xx, (win_h - 120) + yy); + evas_object_color_set(t1, + ((int)(t * 120)) & 0xff, + ((int)(t * 260)) & 0xff, + ((int)(t * 490)) & 0xff, + ((int)(t * 230)) & 0xff); + } + } + else if (t <= 401.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "We can move, resize and recolor lines"); + evas_object_text_text_set(title, "Test 35: Line Move & Resize"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + { + double x, y; + double v; + + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.3) * ((220) / 2); + y = sin(v * 1.1) * ((220) / 2); + evas_object_resize(t1, 112 + x, 112 + y); + evas_object_geometry_get(t1, NULL, NULL, &tw, &th); + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((240 - tw) / 2); + y = sin(v * 1.9) * ((240 - th) / 2); + evas_object_move(t1, 120 + x - (tw / 2), win_h - 120 + y - (th / 2)); + evas_object_color_set(t1, + ((int)(t * 120)) & 0xff, + ((int)(t * 260)) & 0xff, + ((int)(t * 490)) & 0xff, + ((int)(t * 230)) & 0xff); + } + } + else if (t <= 402.0) + { + if (t1) + evas_object_del(t1); + t1 = NULL; + if (t2) + evas_object_del(t2); + t2 = NULL; + } + else if (t <= 412.0) + { + double tw, th; + + evas_object_text_text_set(comment, "We can modify polygon points"); + evas_object_text_text_set(title, "Test 36: Polygons"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + if (!t1) + { + Evas_Object *ob; + + ob = evas_object_polygon_add(evas); + evas_object_polygon_point_add(ob, 10, 10); + evas_object_polygon_point_add(ob, 80, 20); + evas_object_polygon_point_add(ob, 30, 100); + evas_object_color_set(ob, 0, 0, 0, 255); + evas_object_clip_set(ob, panel_clip); + evas_object_layer_set(ob, 5); + evas_object_show(ob); + t1 = ob; + } + { + double x, y; + double v; + + evas_object_polygon_points_clear(t1); + v = (((t - 2.0) / 12.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.3) * ((240 - 20) / 2); + y = sin(v * 1.8) * ((240 - 20) / 2); + evas_object_polygon_point_add(t1, (win_w / 2) + x, + (win_h - 120) + y); + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((240 - 20) / 2); + y = sin(v * 1.9) * ((240 - 20) / 2); + evas_object_polygon_point_add(t1, (win_w / 2) + x, + (win_h - 120) + y); + v = (((t - 3.0) / 11.0) * EVAS_PI * 2) * 3; + x = cos(v * 1.2) * ((240 - 20) / 2); + y = sin(v * 1.1) * ((240 - 20) / 2); + evas_object_polygon_point_add(t1, (win_w / 2) + x, + (win_h - 120) + y); + v = (((t - 8.0) / 13.0) * EVAS_PI * 2) * 1; + x = cos(v * 1.7) * ((240 - 20) / 2); + y = sin(v * 1.4) * ((240 - 20) / 2); + evas_object_polygon_point_add(t1, (win_w / 2) + x, + (win_h - 120) + y); + evas_object_color_set(t1, ((int)(t * 120)) & 0xff, + ((int)(t * 260)) & 0xff, + ((int)(t * 490)) & 0xff, + ((int)(t * 230)) & 0xff); + } + } + else if (t <= 422.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "We can move, resize and recolor polygons"); + evas_object_text_text_set(title, "Test 37: Polygon Move & Resize"); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + { + double x, y; + double v; + + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.3) * ((220) / 2); + y = sin(v * 1.1) * ((220) / 2); + evas_object_resize(t1, 110 + x, 110 + y); + evas_object_geometry_get(t1, NULL, NULL, &tw, &th); + v = (((t - 6.0) / 10.0) * EVAS_PI * 2) * 2; + x = cos(v * 1.7) * ((240 - tw) / 2); + y = sin(v * 1.9) * ((240 - th) / 2); + evas_object_move(t1, 120 + x - (tw / 2), win_h - 120 + y - (th / 2)); + evas_object_color_set(t1, + ((int)(t * 120)) & 0xff, + ((int)(t * 260)) & 0xff, + ((int)(t * 490)) & 0xff, + ((int)(t * 230)) & 0xff); + } + } + else if (t <= 423.0) + { + if (t1) + evas_object_del(t1); + t1 = NULL; + if (t2) + evas_object_del(t2); + t2 = NULL; + } + else if (t <= 433.0) + { + double tw, th; + + evas_object_text_text_set(comment, + "We are now done with testing. Goodbye!"); + evas_object_text_text_set(title, "The End."); + evas_object_geometry_get(title, NULL, NULL, &tw, &th); + evas_object_move(title, (win_w - tw) / 2, win_h - th); + } + else if (t <= 443.0) + { + printf("################ evas free\n"); + evas_free(evas); + printf("evas freed. DONE\n"); +// sleep(10000000); + } + /* need to test: + * + * callbacks & events... + * + */ +} + +void +cb_mouse_down(void *data, Evas * e, Evas_Object * obj, + Evas_Event_Mouse_Down * ev) +{ + printf("cb_mouse_down() [%i], %4i,%4i | %4.1f,%4.1f\n", ev->button, + ev->output.x, ev->output.y, ev->canvas.x, ev->canvas.y); +} + +void +cb_mouse_up(void *data, Evas * e, Evas_Object * obj, Evas_Event_Mouse_Up * ev) +{ + printf("cb_mouse_up() [%i], %4i,%4i | %4.1f,%4.1f\n", ev->button, + ev->output.x, ev->output.y, ev->canvas.x, ev->canvas.y); +} + +void +cb_mouse_in(void *data, Evas * e, Evas_Object * obj, Evas_Event_Mouse_In * ev) +{ + printf("cb_mouse_in() [%08x], %4i,%4i | %4.1f,%4.1f\n", ev->buttons, + ev->output.x, ev->output.y, ev->canvas.x, ev->canvas.y); +} + +void +cb_mouse_out(void *data, Evas * e, Evas_Object * obj, Evas_Event_Mouse_Out * ev) +{ + printf("cb_mouse_out() [%08x], %4i,%4i | %4.1f,%4.1f\n", ev->buttons, + ev->output.x, ev->output.y, ev->canvas.x, ev->canvas.y); +} + +void +cb_mouse_move(void *data, Evas * e, Evas_Object * obj, + Evas_Event_Mouse_Move * ev) +{ + printf + ("cb_mouse_move() [%08x], %4i,%4i | %4.1f,%4.1f (%4i,%4i | %4.1f,%4.1f)\n", + ev->buttons, ev->cur.output.x, ev->cur.output.y, ev->cur.canvas.x, + ev->cur.canvas.y, ev->prev.output.x, ev->prev.output.y, + ev->prev.canvas.x, ev->prev.canvas.y); +} + +void +setup(void) +{ + Evas_Object *ob; + int iw, ih; + + evas_object_font_path_prepend(evas, FN); + // evas_object_image_cache_set(evas, 1024 * 1024); + // evas_object_font_cache_set(evas, 256 * 1024); + evas_object_image_cache_set(evas, 0); + evas_object_font_cache_set(evas, 0); + + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "backdrop.png", NULL); + evas_object_move(ob, 0, 0); + evas_object_resize(ob, 240, 320); + evas_object_image_fill_set(ob, 0, 0, 240, 320); + evas_object_layer_set(ob, 0); + evas_object_show(ob); + backdrop = ob; + + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "e_logo.png", NULL); + evas_object_image_size_get(ob, &iw, &ih); + evas_object_move(ob, (win_w - iw) / 2, 0); + evas_object_resize(ob, iw, ih); + evas_object_image_fill_set(ob, 0, 0, iw, ih); + evas_object_layer_set(ob, 1); + evas_object_show(ob); + e_logo = ob; + + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "panel.png", NULL); + evas_object_move(ob, 0, win_h - 240); + evas_object_resize(ob, win_w, 240); + evas_object_image_fill_set(ob, 0, 0, win_w, 240); + evas_object_layer_set(ob, 3); + evas_object_show(ob); + panel = ob; + + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "panel_top.png", NULL); + evas_object_image_size_get(ob, &iw, &ih); + evas_object_move(ob, 0, win_h - 240 - ih); + evas_object_resize(ob, win_w, ih); + evas_object_image_fill_set(ob, 0, 0, win_w, ih); + evas_object_layer_set(ob, 3); + evas_object_show(ob); + panel_top = ob; + + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "panel_shadow.png", NULL); + evas_object_image_size_get(ob, &iw, &ih); + evas_object_move(ob, 0, win_h - 240); + evas_object_resize(ob, win_w, ih); + evas_object_image_fill_set(ob, 0, 0, win_w, ih); + evas_object_layer_set(ob, 10); + evas_object_show(ob); + panel_shadow = ob; + + ob = evas_object_rectangle_add(evas); + evas_object_move(ob, 0, win_h - 240); + evas_object_resize(ob, win_w, 240); + evas_object_color_set(ob, 255, 255, 255, 255); + evas_object_show(ob); + panel_clip = ob; + + ob = evas_object_image_add(evas); + evas_object_image_file_set(ob, IM "evas_logo.png", NULL); + evas_object_image_size_get(ob, &iw, &ih); + evas_object_move(ob, (win_w - iw) / 2, (win_h - 240) + ((240 - ih) / 2)); + evas_object_resize(ob, iw, ih); + evas_object_image_fill_set(ob, 0, 0, iw, ih); + evas_object_layer_set(ob, 5); + evas_object_clip_set(ob, panel_clip); + evas_object_show(ob); + evas_logo = ob; +} + +#if 0 +evas_object_event_callback_add(ob, EVAS_CALLBACK_MOUSE_DOWN, cb_mouse_down, + NULL); +evas_object_event_callback_add(ob, EVAS_CALLBACK_MOUSE_UP, cb_mouse_up, NULL); +evas_object_event_callback_add(ob, EVAS_CALLBACK_MOUSE_IN, cb_mouse_in, NULL); +evas_object_event_callback_add(ob, EVAS_CALLBACK_MOUSE_OUT, cb_mouse_out, NULL); +evas_object_event_callback_add(ob, EVAS_CALLBACK_MOUSE_MOVE, cb_mouse_move, + NULL); + +ob = evas_object_rectangle_add(evas); +evas_object_move(ob, 40, 10); +evas_object_resize(ob, 60, 40); +evas_object_color_set(ob, 0, 0, 0, 155); +evas_object_show(ob); +r1 = ob; +ob = evas_object_rectangle_add(evas); +evas_object_move(ob, 60, 20); +evas_object_resize(ob, 80, 50); +evas_object_color_set(ob, 100, 200, 30, 200); +evas_object_show(ob); +r2 = ob; +ob = evas_object_rectangle_add(evas); +evas_object_move(ob, 90, 45); +evas_object_resize(ob, 100, 170); +evas_object_color_set(ob, 200, 120, 80, 120); +evas_object_show(ob); +r3 = ob; +ob = evas_object_gradient_add(evas); +evas_object_move(ob, 20, 120); +evas_object_resize(ob, 60, 80); +evas_object_color_set(ob, 255, 255, 255, 255); +evas_object_gradient_color_add(ob, 255, 255, 255, 255, 10); +evas_object_gradient_color_add(ob, 250, 240, 50, 180, 10); +evas_object_gradient_color_add(ob, 220, 60, 0, 120, 10); +evas_object_gradient_color_add(ob, 200, 0, 0, 80, 10); +evas_object_gradient_color_add(ob, 0, 0, 0, 0, 10); +evas_object_gradient_angle_set(ob, 45.0); +evas_object_show(ob); +g1 = ob; +ob = evas_object_gradient_add(evas); +evas_object_move(ob, 40, 110); +evas_object_resize(ob, 64, 48); +evas_object_color_set(ob, 255, 255, 255, 255); +evas_object_gradient_color_add(ob, 255, 255, 255, 255, 10); +evas_object_gradient_color_add(ob, 50, 240, 250, 255, 10); +evas_object_gradient_color_add(ob, 0, 60, 220, 255, 10); +evas_object_gradient_color_add(ob, 0, 0, 200, 255, 10); +evas_object_gradient_color_add(ob, 0, 0, 0, 255, 10); +evas_object_gradient_angle_set(ob, 45.0); +evas_object_show(ob); +g2 = ob; +ob = evas_object_line_add(evas); +evas_object_color_set(ob, 0, 0, 0, 255); +evas_object_line_xy_set(ob, 20, 40, 80, 130); +evas_object_show(ob); +l1 = ob; +ob = evas_object_polygon_add(evas); +evas_object_color_set(ob, 10, 80, 200, 100); +evas_object_polygon_point_add(ob, 10, 10); +evas_object_polygon_point_add(ob, 80, 20); +evas_object_polygon_point_add(ob, 30, 100); +evas_object_show(ob); +p1 = ob; +ob = evas_object_image_add(evas); +evas_object_image_file_set(ob, PACKAGE_SOURCE_DIR "/data/image.png", NULL); +evas_object_move(ob, 40, 30); +evas_object_resize(ob, 120, 120); +evas_object_image_fill_set(ob, 0, 0, 120, 120); +evas_object_show(ob); +i2 = ob; +ob = evas_object_image_add(evas); +evas_object_image_file_set(ob, PACKAGE_SOURCE_DIR "/data/test_32.png", NULL); +evas_object_move(ob, 2, 2); +evas_object_image_border_set(ob, 5, 5, 5, 5); +evas_object_image_smooth_scale_set(ob, 1); +evas_object_resize(ob, 128, 128); +evas_object_image_fill_set(ob, 0, 0, 64, 64); +evas_object_show(ob); +i3 = ob; + /* + * Danish: + * "Quizdeltagerne spiste jordbær med fløde, mens cirkusklovnen" + * german: + * "Heizölrückstoßabdämpfung" + * Spanish: + * "El pingüino Wenceslao hizo kilómetros bajo exhaustiva lluvia y" + * French: + * "Le cœur déçu mais l'âme plutôt naïve, Louÿs rêva de crapaüter en" + * Irish Gaelic: + * "D'fhuascail Íosa, Úrmhac na hÓighe Beannaithe, pór Éava agus Ádhaimh" + * Hungarian: + * "Árvíztűrő tükörfúrógép" + * Icelandic: + * "Kæmi ný öxi hér ykist þjófum nú bæði víl og ádrepa" + * Japanese (hiragana): + * "いろはにほへとちりぬるを" + * Japanese (katakana): + * "イロハニホヘト チリヌルヲ ワカヨタレソ ツネナラム" + * Hebrew: + * "? דג סקרן שט בים מאוכזב ולפתע מצא לו חברה איך הקליטה" + * Polish: + * "Pchnąć w tę łódź jeża lub ośm skrzyń fig" + * Russian: + * "В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!" + * IPA: + * "ˈjunɪˌkoːd" + * American Dictionary: + * "Ūnĭcōde̽" + * Anglo-saxon: + * "ᛡᚢᚾᛁᚳᚩᛞ" + * Arabic: + * "يونِكود" + * Armenian: + * "Յունիկօդ" + * Bengali: + * "য়ূনিকোড" + * Bopomofo: + * "ㄊㄨㄥ˅ ㄧˋ ㄇㄚ˅" + * Canadian Syllabics: + * "ᔫᗂᑰᑦ" + * Cherokee: + * "ᏳᏂᎪᏛ" + * Chinese: + * "萬國碼" + * Ethiopic: + * "ዩኒኮድ" + * Georgian: + * "უნიკოდი" + * Greek: + * "Γιούνικοντ" + * Gujarati: + * "યૂનિકોડ" + * Gurmukhi: + * "ਯੂਨਿਕੋਡ" + * Hindi: + * "यूनिकोड" + * Kannada: + * "ಯೂನಿಕೋಡ್" + * Khmer: + * "យូនីគោដ" + * Korean: + * "유니코드" + * Malayalam: + * "യൂനികോഡ്" + * Ogham: + * "ᚔᚒᚅᚔᚉᚑᚇ" + * Oriya: + * "ୟୂନିକୋଡ" + * Persian: + * "یونی‌کُد" + * Sinhala: + * "යණනිකෞද්" + * Syriac: + * "ܝܘܢܝܩܘܕ" + * Tamil: + * "யூனிகோட்" + * Telugu: + * "యూనికోడ్" + * Thai: + * "ยูนืโคด" + * Tibetan: + * "ཨུ་ནི་ཀོཌྲ།" + * Yiddish: + * "יוניקאָד" + * + */ +ob = evas_object_text_add(evas); +evas_object_move(ob, 10, 10); +evas_object_color_set(ob, 0, 0, 0, 255); +evas_object_text_font_set(ob, "arial", 14); +evas_object_text_text_set(ob, "Hello World [\xe2\x88\x9e]"); +/* the 2 following commented out sections dont display japanese */ +/* and i'm not sure why they don't. something deep down in the font rendering */ +/* code.. but i don't know what */ +/* evas_object_text_font_set(ob, "cyberbit", 14);*/ +/* evas_object_text_text_set(ob, "Hello World - いろはにほへとちりぬるを");*/ +evas_object_show(ob); +t1 = ob; + +ob = evas_object_rectangle_add(evas); +evas_object_move(ob, 10, 10); +evas_object_resize(ob, 220, 300); +evas_object_color_set(ob, 255, 255, 255, 255); +evas_object_show(ob); +c1 = ob; + +evas_object_clip_set(r1, c1); +evas_object_clip_set(r2, c1); +evas_object_clip_set(r3, c1); +evas_object_clip_set(g1, c1); +#endif diff --git a/legacy/evas/src/bin/evas_test_main.h b/legacy/evas/src/bin/evas_test_main.h new file mode 100644 index 0000000000..f16297fbc5 --- /dev/null +++ b/legacy/evas/src/bin/evas_test_main.h @@ -0,0 +1,43 @@ +#include +#include +#include + +#ifndef _WIN32_WCE +# include +#else +# include +# include +#endif + +#include "Evas.h" + + +//_WIN32_WCE +#ifdef __cplusplus +extern "C" { +#endif + +/*****************************************************************************/ + +extern Evas *evas; +extern int win_w; +extern int win_h; + +extern int loop_count; +extern int orig_loop_count; + +extern double start_time; +extern double orig_start_time; + +extern Evas_Object *r1, *r2, *r3, *g1, *g2, *c1, *l1, *p1; + +/*****************************************************************************/ + +double get_time(void); +void loop(void); +void setup(void); + +#ifdef __cplusplus +} +#endif + diff --git a/legacy/evas/src/lib/Evas.h b/legacy/evas/src/lib/Evas.h new file mode 100644 index 0000000000..35a4ebfe9b --- /dev/null +++ b/legacy/evas/src/lib/Evas.h @@ -0,0 +1,449 @@ +#ifndef _EVAS_H +#define _EVAS_H + +#ifndef EVAS_COMMON_H +#ifndef EVAS_PRIVATE_H + +enum _Evas_Callback_Type +{ + EVAS_CALLBACK_MOUSE_IN, /**< Mouse In Event */ + EVAS_CALLBACK_MOUSE_OUT, /**< Mouse Out Event */ + EVAS_CALLBACK_MOUSE_DOWN, /**< Mouse Button Down Event */ + EVAS_CALLBACK_MOUSE_UP, /**< Mouse Button Up Event */ + EVAS_CALLBACK_MOUSE_MOVE, /**< Mouse Move Event */ + EVAS_CALLBACK_FREE, /**< Object Being Freed */ + EVAS_CALLBACK_KEY_DOWN, /**< Key Press Event */ + EVAS_CALLBACK_KEY_UP, /**< Key Release Event */ + EVAS_CALLBACK_FOCUS_IN, /**< Focus In Event */ + EVAS_CALLBACK_FOCUS_OUT /**< Focus Out Event */ +}; + +/** + * The type of event to trigger the callback + */ +typedef enum _Evas_Callback_Type Evas_Callback_Type; + +/** + * A generic linked list node handle + */ +typedef struct _Evas_List Evas_List; +/** + * A generic rectangle handle + */ +typedef struct _Evas_Rectangle Evas_Rectangle; + +struct _Evas_List +{ + void *data; /**< Pointer to list element payload */ + Evas_List *next; /**< Next member in the list */ + Evas_List *prev; /**< Previous member in the list */ + + Evas_List *last; /**< Private member. Don't use this */ + int count; /**< Private member. Don't use this */ +}; + +struct _Evas_Rectangle +{ + int x, y, w, h; /**< the co-ordinates of the rectangle, starting top-left and width and height */ +}; + +/** A Hash table handle */ +typedef void Evas_Hash; +/** An Evas canvas handle */ +typedef void Evas; +/** An Evas Object handle */ +typedef void Evas_Object; +/** An Evas Performance handle */ +typedef void Evas_Performance; +/** An Evas Key */ +typedef void Evas_Key; +/** An Evas Modifier */ +typedef void Evas_Modifier; +/** An Evas Lock */ +typedef void Evas_Lock; +/** An Evas Smart Object handle */ +typedef void Evas_Smart; +#endif +#endif + +/** A generic Evas Engine information structure */ +typedef struct _Evas_Engine_Info Evas_Engine_Info; +/** Event structure for #EVAS_CALLBACK_MOUSE_DOWN event callbacks */ +typedef struct _Evas_Event_Mouse_Down Evas_Event_Mouse_Down; +/** Event structure for #EVAS_CALLBACK_MOUSE_UP event callbacks */ +typedef struct _Evas_Event_Mouse_Up Evas_Event_Mouse_Up; +/** Event structure for #EVAS_CALLBACK_MOUSE_IN event callbacks */ +typedef struct _Evas_Event_Mouse_In Evas_Event_Mouse_In; +/** Event structure for #EVAS_CALLBACK_MOUSE_OUT event callbacks */ +typedef struct _Evas_Event_Mouse_Out Evas_Event_Mouse_Out; +/** Event structure for #EVAS_CALLBACK_MOUSE_MOVE event callbacks */ +typedef struct _Evas_Event_Mouse_Move Evas_Event_Mouse_Move; +/** Event structure for #EVAS_CALLBACK_KEY_DOWN event callbacks */ +typedef struct _Evas_Event_Key_Down Evas_Event_Key_Down; +/** Event structure for #EVAS_CALLBACK_KEY_UP event callbacks */ +typedef struct _Evas_Event_Key_Up Evas_Event_Key_Up; + +#define EVAS_LOAD_ERROR_NONE 0 +#define EVAS_LOAD_ERROR_GENERIC 1 +#define EVAS_LOAD_ERROR_DOES_NOT_EXIST 2 +#define EVAS_LOAD_ERROR_PERMISSION_DENIED 3 +#define EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED 4 +#define EVAS_LOAD_ERROR_CORRUPT_FILE 5 +#define EVAS_LOAD_ERROR_UNKNOWN_FORMAT 6 + +struct _Evas_Engine_Info +{ + int magic; +}; + +struct _Evas_Event_Mouse_Down +{ + int button; + struct { + int x, y; + } output; + struct { + double x, y; + } canvas; + void *data; + Evas_Modifier *modifiers; + Evas_Lock *locks; +}; + +struct _Evas_Event_Mouse_Up +{ + int button; + struct { + int x, y; + } output; + struct { + double x, y; + } canvas; + void *data; + Evas_Modifier *modifiers; + Evas_Lock *locks; +}; + +struct _Evas_Event_Mouse_In +{ + int buttons; + struct { + int x, y; + } output; + struct { + double x, y; + } canvas; + void *data; + Evas_Modifier *modifiers; + Evas_Lock *locks; +}; + +struct _Evas_Event_Mouse_Out +{ + int buttons; + struct { + int x, y; + } output; + struct { + double x, y; + } canvas; + void *data; + Evas_Modifier *modifiers; + Evas_Lock *locks; +}; + +struct _Evas_Event_Mouse_Move +{ + int buttons; + struct { + struct { + int x, y; + } output; + struct { + double x, y; + } canvas; + } cur, prev; + void *data; + Evas_Modifier *modifiers; + Evas_Lock *locks; +}; + +struct _Evas_Event_Key_Down +{ + Evas_Key *key; + void *data; + Evas_Modifier *modifiers; + Evas_Lock *locks; +}; + +struct _Evas_Event_Key_Up +{ + Evas_Key *key; + void *data; + Evas_Modifier *modifiers; + Evas_Lock *locks; +}; + +#ifdef __cplusplus +extern "C" { +#endif + + Evas_List *evas_list_append (Evas_List *list, void *data); + Evas_List *evas_list_prepend (Evas_List *list, void *data); + Evas_List *evas_list_append_relative (Evas_List *list, void *data, void *relative); + Evas_List *evas_list_prepend_relative (Evas_List *list, void *data, void *relative); + Evas_List *evas_list_remove (Evas_List *list, void *data); + Evas_List *evas_list_remove_list (Evas_List *list, Evas_List *remove_list); + void *evas_list_find (Evas_List *list, void *data); + Evas_List *evas_list_free (Evas_List *list); + Evas_List *evas_list_last (Evas_List *list); + Evas_List *evas_list_next (Evas_List *list); + Evas_List *evas_list_prev (Evas_List *list); + void *evas_list_data (Evas_List *list); + int evas_list_count (Evas_List *list); + void *evas_list_nth (Evas_List *list, int n); + Evas_List *evas_list_reverse (Evas_List *list); + + /* FIXME: add: + * api to add find, del members by data, size not just string and also + * provide hash generation functions settable by the app + * + * do we really need this? hmmm - let me think... there may be a better way + */ + Evas_Hash *evas_hash_add (Evas_Hash *hash, const char *key, void *data); + Evas_Hash *evas_hash_del (Evas_Hash *hash, const char *key, void *data); + void *evas_hash_find (Evas_Hash *hash, const char *key); + int evas_hash_size (Evas_Hash *hash); + void evas_hash_free (Evas_Hash *hash); + void evas_hash_foreach (Evas_Hash *hash, int (*func) (Evas_Hash *hash, const char *key, void *data, void *fdata), void *fdata); + + Evas *evas_new (void); + void evas_free (Evas *e); + + int evas_render_method_lookup (const char *name); + Evas_List *evas_render_method_list (void); + void evas_render_method_list_free (Evas_List *list); + + void evas_output_method_set (Evas *e, int render_method); + int evas_output_method_get (Evas *e); + + Evas_Engine_Info *evas_engine_info_get (Evas *e); + void evas_engine_info_set (Evas *e, Evas_Engine_Info *info); + + void evas_output_size_set (Evas *e, int w, int h); + void evas_output_size_get (Evas *e, int *w, int *h); + void evas_output_viewport_set (Evas *e, double x, double y, double w, double h); + void evas_output_viewport_get (Evas *e, double *x, double *y, double *w, double *h); + + double evas_coord_screen_x_to_world (Evas *e, int x); + double evas_coord_screen_y_to_world (Evas *e, int y); + int evas_coord_world_x_to_screen (Evas *e, double x); + int evas_coord_world_y_to_screen (Evas *e, double y); + + void evas_damage_rectangle_add (Evas *e, int x, int y, int w, int h); + void evas_obscured_rectangle_add (Evas *e, int x, int y, int w, int h); + void evas_obscured_clear (Evas *e); + Evas_List *evas_render_updates (Evas *e); + void evas_render_updates_free (Evas_List *updates); + void evas_render (Evas *e); + + Evas_Object *evas_object_rectangle_add (Evas *e); + + Evas_Object *evas_object_line_add (Evas *e); + void evas_object_line_xy_set (Evas_Object *obj, double x1, double y1, double x2, double y2); + void evas_object_line_xy_get (Evas_Object *obj, double *x1, double *y1, double *x2, double *y2); + + Evas_Object *evas_object_gradient_add (Evas *e); + void evas_object_gradient_color_add (Evas_Object *obj, int r, int g, int b, int a, int distance); + void evas_object_gradient_colors_clear (Evas_Object *obj); + void evas_object_gradient_angle_set (Evas_Object *obj, double angle); + double evas_object_gradient_angle_get (Evas_Object *obj); + + Evas_Object *evas_object_polygon_add (Evas *e); + void evas_object_polygon_point_add (Evas_Object *obj, double x, double y); + void evas_object_polygon_points_clear (Evas_Object *obj); + + Evas_Object *evas_object_image_add (Evas *e); + void evas_object_image_file_set (Evas_Object *obj, char *file, char *key); + void evas_object_image_file_get (Evas_Object *obj, char **file, char **key); + void evas_object_image_border_set (Evas_Object *obj, int l, int r, int t, int b); + void evas_object_image_border_get (Evas_Object *obj, int *l, int *r, int *t, int *b); + void evas_object_image_fill_set (Evas_Object *obj, double x, double y, double w, double h); + void evas_object_image_fill_get (Evas_Object *obj, double *x, double *y, double *w, double *h); + void evas_object_image_size_set (Evas_Object *obj, int w, int h); + void evas_object_image_size_get (Evas_Object *obj, int *w, int *h); + int evas_object_image_load_error_get (Evas_Object *obj); + void evas_object_image_data_set (Evas_Object *obj, int *data); + int *evas_object_image_data_get (Evas_Object *obj, int for_writing); + void evas_object_image_data_copy_set (Evas_Object *obj, int *data); + void evas_object_image_data_update_add (Evas_Object *obj, int x, int y, int w, int h); + void evas_object_image_alpha_set (Evas_Object *obj, int has_alpha); + int evas_object_image_alpha_get (Evas_Object *obj); + void evas_object_image_smooth_scale_set(Evas_Object *obj, int smooth_scale); + int evas_object_image_smooth_scale_get(Evas_Object *obj); + void evas_object_image_reload (Evas_Object *obj); + + void evas_object_image_cache_flush (Evas *e); + void evas_object_image_cache_reload (Evas *e); + void evas_object_image_cache_set (Evas *e, int size); + int evas_object_image_cache_get (Evas *e); + + /* FIXME: add: + * multiple image format handler code (clean internal api) + * image loader (provided by app) code (callbacks) + * loadable image loader module query etc. code + */ + + Evas_Object *evas_object_text_add (Evas *e); + void evas_object_text_font_set (Evas_Object *obj, char *font, double size); + void evas_object_text_font_get (Evas_Object *obj, char **font, double *size); + void evas_object_text_text_set (Evas_Object *obj, char *text); + char *evas_object_text_text_get (Evas_Object *obj); + double evas_object_text_ascent_get (Evas_Object *obj); + double evas_object_text_descent_get (Evas_Object *obj); + double evas_object_text_max_ascent_get (Evas_Object *obj); + double evas_object_text_max_descent_get (Evas_Object *obj); + double evas_object_text_horiz_advance_get(Evas_Object *obj); + double evas_object_text_vert_advance_get (Evas_Object *obj); + double evas_object_text_inset_get (Evas_Object *obj); + double evas_object_text_horiz_advance_get(Evas_Object *obj); + double evas_object_text_vert_advance_get (Evas_Object *obj); + int evas_object_text_char_pos_get (Evas_Object *obj, int pos, double *cx, double *cy, double *cw, double *ch); + int evas_object_text_char_coords_get (Evas_Object *obj, double x, double y, double *cx, double *cy, double *cw, double *ch); + + /* FIXME: add: + * text outline & shadowing code + */ + + void evas_object_font_path_clear (Evas *e); + void evas_object_font_path_append (Evas *e, char *path); + void evas_object_font_path_prepend (Evas *e, char *path); + Evas_List *evas_object_font_path_list (Evas *e); + + void evas_object_font_cache_flush (Evas *e); + void evas_object_font_cache_set (Evas *e, int size); + int evas_object_font_cache_get (Evas *e); + + void evas_object_del (Evas_Object *obj); + + const char *evas_object_type_get (Evas_Object *obj); + + void evas_object_layer_set (Evas_Object *obj, int l); + int evas_object_layer_get (Evas_Object *obj); + + void evas_object_raise (Evas_Object *obj); + void evas_object_lower (Evas_Object *obj); + void evas_object_stack_above (Evas_Object *obj, Evas_Object *above); + void evas_object_stack_below (Evas_Object *obj, Evas_Object *below); + Evas_Object *evas_object_above_get (Evas_Object *obj); + Evas_Object *evas_object_below_get (Evas_Object *obj); + Evas_Object *evas_object_bottom_get (Evas *e); + Evas_Object *evas_object_top_get (Evas *e); + + void evas_object_move (Evas_Object *obj, double x, double y); + void evas_object_resize (Evas_Object *obj, double w, double h); + void evas_object_geometry_get (Evas_Object *obj, double *x, double *y, double *w, double *h); + + void evas_object_show (Evas_Object *obj); + void evas_object_hide (Evas_Object *obj); + int evas_object_visible_get (Evas_Object *obj); + + void evas_object_color_set (Evas_Object *obj, int r, int g, int b, int a); + void evas_object_color_get (Evas_Object *obj, int *r, int *g, int *b, int *a); + + void evas_object_clip_set (Evas_Object *obj, Evas_Object *clip); + Evas_Object *evas_object_clip_get (Evas_Object *obj); + void evas_object_clip_unset (Evas_Object *obj); + Evas_List *evas_object_clipees_get (Evas_Object *obj); + + void evas_object_data_set (Evas_Object *obj, const char *key, void *data); + void *evas_object_data_get (Evas_Object *obj, const char *key); + void *evas_object_data_del (Evas_Object *obj, const char *key); + + void evas_object_name_set (Evas_Object *obj, const char *name); + char *evas_object_name_get (Evas_Object *obj); + Evas_Object *evas_object_name_find (Evas *e, const char *name); + + Evas *evas_object_evas_get (Evas_Object *obj); + + Evas_Object *evas_object_top_at_xy_get (Evas *e, double x, double y, int include_pass_events_objects, int include_hidden_objects); + Evas_Object *evas_object_top_at_pointer_get (Evas *e); + Evas_Object *evas_object_top_in_rectangle_get (Evas *e, double x, double y, double w, double h, int include_pass_events_objects, int include_hidden_objects); + + Evas_List *evas_objects_at_xy_get (Evas *e, double x, double y, int include_pass_events_objects, int include_hidden_objects); + Evas_List *evas_objects_in_rectangle_get (Evas *e, double x, double y, double w, double h, int include_pass_events_objects, int include_hidden_objects); + + Evas_Smart *evas_smart_new (char *name, void (*func_add) (Evas_Object *o), void (*func_del) (Evas_Object *o), void (*func_layer_set) (Evas_Object *o, int l), void (*func_raise) (Evas_Object *o), void (*func_lower) (Evas_Object *o), void (*func_stack_above) (Evas_Object *o, Evas_Object *above), void (*func_stack_below) (Evas_Object *o, Evas_Object *below), void (*func_move) (Evas_Object *o, double x, double y), void (*func_resize) (Evas_Object *o, double w, double h), void (*func_show) (Evas_Object *o), void (*func_hide) (Evas_Object *o), void (*func_color_set) (Evas_Object *o, int r, int g, int b, int a), void (*func_clip_set) (Evas_Object *o, Evas_Object *clip), void (*func_clip_unset) (Evas_Object *o), void *data); + void evas_smart_free (Evas_Smart *s); + void *evas_smart_data_get (Evas_Smart *s); + + Evas_Object *evas_object_smart_add (Evas *e, Evas_Smart *s); + void evas_object_smart_member_add (Evas_Object *obj, Evas_Object *smart_obj); + void evas_object_smart_member_del (Evas_Object *obj); + Evas_Smart *evas_object_smart_smart_get (Evas_Object *obj); + void *evas_object_smart_data_get (Evas_Object *obj); + void evas_object_smart_data_set (Evas_Object *obj, void *data); + void evas_object_smart_callback_add (Evas_Object *obj, char *event, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data); + void *evas_object_smart_callback_del (Evas_Object *obj, char *event, void (*func) (void *data, Evas_Object *obj, void *event_info)); + void evas_object_smart_callback_call (Evas_Object *obj, char *event, void *event_info); + + void evas_pointer_output_xy_get (Evas *e, int *x, int *y); + void evas_pointer_canvas_xy_get (Evas *e, double *x, double *y); + int evas_pointer_button_down_mask_get (Evas *e); + int evas_pointer_inside_get (Evas *e); + + void evas_event_freeze (Evas *e); + void evas_event_thaw (Evas *e); + int evas_event_freeze_get (Evas *e); + void evas_event_feed_mouse_down_data (Evas *e, int b, void *data); + void evas_event_feed_mouse_up_data (Evas *e, int b, void *data); + void evas_event_feed_mouse_move_data (Evas *e, int x, int y, void *data); + void evas_event_feed_mouse_in_data (Evas *e, void *data); + void evas_event_feed_mouse_out_data (Evas *e, void *data); +/* FIXME: implement... + void evas_event_feed_key_down_data (Evas *e, char *keyname, void *data); + void evas_event_feed_key_up_data (Evas *e, char *keyname, void *data); +...end implement */ + void evas_event_feed_mouse_down (Evas *e, int b); + void evas_event_feed_mouse_up (Evas *e, int b); + void evas_event_feed_mouse_move (Evas *e, int x, int y); + void evas_event_feed_mouse_in (Evas *e); + void evas_event_feed_mouse_out (Evas *e); +/* FIXME: implement... + void evas_event_feed_key_down (Evas *e, char *keyname); + void evas_event_feed_key_up (Evas *e, char *keyname); + + void evas_object_focus (Evas_Object *o); + + char *evas_key_name_get (Evas_Key *k); + + int evas_key_modifier_is_set_get (Evas_Modifier *m, char *keyname); + + int evas_key_lock_is_set_get (Evas_Lock *l, char *keyname); + + void evas_key_modifier_add (Evas *e, char *keyname); + void evas_key_modifier_del (Evas *e, char *keyname); + void evas_key_lock_add (Evas *e, char *keyname); + void evas_key_lock_del (Evas *e, char *keyname); + + void evas_key_modifier_on (Evas *e, char *keyname); + void evas_key_modifier_off (Evas *e, char *keyname); + void evas_key_lock_on (Evas *e, char *keyname); + void evas_key_lock_off (Evas *e, char *keyname); +...end implement */ + + void evas_object_pass_events_set (Evas_Object *obj, int pass); + int evas_object_pass_events_get (Evas_Object *obj); + void evas_object_repeat_events_set (Evas_Object *obj, int repeat); + int evas_object_repeat_events_get (Evas_Object *obj); + + void evas_object_event_callback_add (Evas_Object *obj, Evas_Callback_Type type, void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info), void *data); + void *evas_object_event_callback_del (Evas_Object *obj, Evas_Callback_Type type, void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info)); + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/legacy/evas/src/lib/Evas_Engine_DirectFB.h b/legacy/evas/src/lib/Evas_Engine_DirectFB.h new file mode 100644 index 0000000000..faa54f951b --- /dev/null +++ b/legacy/evas/src/lib/Evas_Engine_DirectFB.h @@ -0,0 +1,23 @@ +#ifndef _EVAS_ENGINE_DIRECTFB_H +#define _EVAS_ENGINE_DIRECTFB_H +#include + +#include + +typedef struct _Evas_Engine_Info_DirectFB Evas_Engine_Info_DirectFB; + +struct _Evas_Engine_Info_DirectFB +{ + /* PRIVATE - don't mess with this baby or evas will poke its tongue out */ + /* at you and make nasty noises */ + Evas_Engine_Info magic; + + struct { + IDirectFB *dfb; + IDirectFBSurface *surface; + DFBSurfaceDrawingFlags flags; + } info; +}; +#endif + + diff --git a/legacy/evas/src/lib/Evas_Engine_FB.h b/legacy/evas/src/lib/Evas_Engine_FB.h new file mode 100644 index 0000000000..c8a51229d7 --- /dev/null +++ b/legacy/evas/src/lib/Evas_Engine_FB.h @@ -0,0 +1,22 @@ +#ifndef _EVAS_ENGINE_FB_H +#define _EVAS_ENGINE_FB_H + +typedef struct _Evas_Engine_Info_FB Evas_Engine_Info_FB; + +struct _Evas_Engine_Info_FB +{ + /* PRIVATE - don't mess with this baby or evas will poke its tongue out */ + /* at you and make nasty noises */ + Evas_Engine_Info magic; + + struct { + + int virtual_terminal; + int device_number; + int refresh; + int rotation; + } info; +}; +#endif + + diff --git a/legacy/evas/src/lib/Evas_Engine_GL_X11.h b/legacy/evas/src/lib/Evas_Engine_GL_X11.h new file mode 100644 index 0000000000..3f83cfbfd3 --- /dev/null +++ b/legacy/evas/src/lib/Evas_Engine_GL_X11.h @@ -0,0 +1,35 @@ +#ifndef _EVAS_ENGINE_GL_X11_H +#define _EVAS_ENGINE_GL_X11_H + +#include +#include +#include +#include + +typedef struct _Evas_Engine_Info_GL_X11 Evas_Engine_Info_GL_X11; + +struct _Evas_Engine_Info_GL_X11 +{ + /* PRIVATE - don't mess with this baby or evas will poke its tongue out */ + /* at you and make nasty noises */ + Evas_Engine_Info magic; + + /* engine specific data & parameters it needs to set up */ + struct { + Display *display; + Drawable drawable; + Visual *visual; + Colormap colormap; + int depth; + } info; + /* engine specific function calls to query stuff about the destination */ + /* engine (what visual & colormap & depth to use, performance info etc. */ + struct { + Visual * (*best_visual_get) (Display *disp, int screen); + Colormap (*best_colormap_get) (Display *disp, int screen); + int (*best_depth_get) (Display *disp, int screen); + } func; +}; +#endif + + diff --git a/legacy/evas/src/lib/Evas_Engine_Software_Qtopia.h b/legacy/evas/src/lib/Evas_Engine_Software_Qtopia.h new file mode 100644 index 0000000000..76aafa63f6 --- /dev/null +++ b/legacy/evas/src/lib/Evas_Engine_Software_Qtopia.h @@ -0,0 +1,31 @@ +#ifndef _EVAS_ENGINE_SOFTWARE_QTOPIA_H +#define _EVAS_ENGINE_SOFTWARE_QTOPIA_H + +#ifdef EVAS_COMMON_H +#ifdef EVAS_PRIVATE_H +typedef void QWidget; +#endif +#endif + +#ifndef EVAS_COMMON_H +#ifndef EVAS_PRIVATE_H +#include +#endif +#endif + +typedef struct _Evas_Engine_Info_Software_Qtopia Evas_Engine_Info_Software_Qtopia; + +struct _Evas_Engine_Info_Software_Qtopia +{ + /* PRIVATE - don't mess with this baby or evas will poke its tongue out */ + /* at you and make nasty noises */ + Evas_Engine_Info magic; + + struct { + QWidget *target; + int rotation; + } info; +}; +#endif + + diff --git a/legacy/evas/src/lib/Evas_Engine_Software_Win32_GDI.h b/legacy/evas/src/lib/Evas_Engine_Software_Win32_GDI.h new file mode 100644 index 0000000000..e538f8f98a --- /dev/null +++ b/legacy/evas/src/lib/Evas_Engine_Software_Win32_GDI.h @@ -0,0 +1,29 @@ +#ifndef _EVAS_ENGINE_SOFTWARE_WIN32_GDI_H +#define _EVAS_ENGINE_SOFTWARE_WIN32_GDI_H + + +typedef struct _Evas_Engine_Info_Software_Win32_GDI Evas_Engine_Info_Software_Win32_GDI; + +struct _Evas_Engine_Info_Software_Win32_GDI +{ + /* PRIVATE - don't mess with this baby or evas will poke its tongue out */ + /* at you and make nasty noises */ + Evas_Engine_Info magic; + + /* engine specific data & parameters it needs to set up */ + struct { + HWND hwnd; +/* + Colormap colormap; +*/ + + int depth; + int rotation; + + } info; + /* engine specific function calls to query stuff about the destination */ + /* engine (what visual & colormap & depth to use, performance info etc. */ +}; +#endif + + diff --git a/legacy/evas/src/lib/Evas_Engine_Software_X11.h b/legacy/evas/src/lib/Evas_Engine_Software_X11.h new file mode 100644 index 0000000000..ca2ff9b1de --- /dev/null +++ b/legacy/evas/src/lib/Evas_Engine_Software_X11.h @@ -0,0 +1,48 @@ +#ifndef _EVAS_ENGINE_SOFTWARE_X11_H +#define _EVAS_ENGINE_SOFTWARE_X11_H + +#include + +typedef struct _Evas_Engine_Info_Software_X11 Evas_Engine_Info_Software_X11; + +struct _Evas_Engine_Info_Software_X11 +{ + /* PRIVATE - don't mess with this baby or evas will poke its tongue out */ + /* at you and make nasty noises */ + Evas_Engine_Info magic; + + /* engine specific data & parameters it needs to set up */ + struct { + Display *display; + Drawable drawable; + Pixmap mask; + Visual *visual; + Colormap colormap; + int depth; + int rotation; + + int alloc_grayscale : 1; + int debug : 1; + int shape_dither : 1; + + int alloc_colors_max; + } info; + /* engine specific function calls to query stuff about the destination */ + /* engine (what visual & colormap & depth to use, performance info etc. */ + struct { + Visual * (*best_visual_get) (Display *disp, int screen); + Colormap (*best_colormap_get) (Display *disp, int screen); + int (*best_depth_get) (Display *disp, int screen); + + Evas_Performance *(*performance_test) (Evas *e, Display *disp, Visual *vis, Colormap cmap, Drawable draw, int depth); + void (*performance_free) (Evas_Performance *perf); + char * (*performance_data_get) (Evas_Performance *perf); + char * (*performance_key_get) (Evas_Performance *perf); + Evas_Performance *(*performance_new) (Evas *e, Display *disp, Visual *vis, Colormap cmap, Drawable draw, int depth); + void (*performance_build) (Evas_Performance *perf, const char *data); + void (*performance_device_store) (Evas_Performance *perf); + } func; +}; +#endif + + diff --git a/legacy/evas/src/lib/Makefile.am b/legacy/evas/src/lib/Makefile.am new file mode 100644 index 0000000000..1b0fe2259c --- /dev/null +++ b/legacy/evas/src/lib/Makefile.am @@ -0,0 +1,104 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = canvas data file engines include + +AUTOMAKE_OPTIONS = 1.4 foreign + +# A list of all the files in the current directory which can be regenerated +MAINTAINERCLEANFILES = Makefile.in + +LDFLAGS = -L/usr/local/lib +INCLUDES = -I/usr/local/include \ + -I$(top_srcdir)/src/lib/include \ + -I$(includedir) \ + -I/usr/local/include \ + @freetype_cflags@ @x_cflags@ @qt_cflags@ @DIRECTFB_CFLAGS@ @gl_cflags@ + +lib_LTLIBRARIES = libevas.la + +EXTRA_DIST = \ +Evas_Engine_Software_X11.h \ +Evas_Engine_DirectFB.h \ +Evas_Engine_FB.h \ +Evas_Engine_Software_Win32_GDI.h \ +Evas_Engine_Software_Qtopia.h \ +Evas_Engine_GL_X11.h + +if BUILD_ENGINE_SOFTWARE_X11 +ENGINE_SOFTWARE_X11 = engines/software_x11/libevas_engine_software_x11.la +ENGINE_SOFTWARE_X11_INC = Evas_Engine_Software_X11.h +else +ENGINE_SOFTWARE_X11 = +ENGINE_SOFTWARE_X11_INC = +endif + +if BUILD_ENGINE_DIRECTFB +ENGINE_DIRECTFB = engines/directfb/libevas_engine_directfb.la +ENGINE_DIRECTFB_INC = Evas_Engine_DirectFB.h +else +ENGINE_DIRECTFB = +ENGINE_DIRECTFB_INC = +endif + +if BUILD_ENGINE_FB +ENGINE_FB = engines/fb/libevas_engine_fb.la +ENGINE_FB_INC = Evas_Engine_FB.h +else +ENGINE_FB = +ENGINE_FB_INC = +endif + +if BUILD_ENGINE_SOFTWARE_QTOPIA +ENGINE_SOFTWARE_QTOPIA = engines/software_qtopia/libevas_engine_software_qtopia.la +ENGINE_SOFTWARE_QTOPIA_INC = Evas_Engine_Software_Qtopia.h +else +ENGINE_SOFTWARE_QTOPIA = +ENGINE_SOFTWARE_QTOPIA_INC = +endif + +if BUILD_ENGINE_GL_X11 +ENGINE_GL_X11 = engines/gl_x11/libevas_engine_gl_x11.la +ENGINE_GL_X11_INC = Evas_Engine_GL_X11.h +else +ENGINE_GL_X11 = +ENGINE_GL_X11_INC = +endif + +include_HEADERS = \ +Evas.h \ +$(ENGINE_SOFTWARE_X11_INC) \ +$(ENGINE_DIRECTFB_INC) \ +$(ENGINE_FB_INC) \ +$(ENGINE_SOFTWARE_QTOPIA_INC) \ +$(ENGINE_GL_X11_INC) + +libevas_la_SOURCES = \ +main.c + +libevas_la_LIBADD = $(LDFLAGS) \ + canvas/libevas_canvas.la \ + data/libevas_data.la \ + file/libevas_file.la \ + engines/common/libevas_engine_common.la \ + @freetype_libs@ \ + @png_libs@ @jpeg_libs@ @eet_libs@ @edb_libs@ \ + $(ENGINE_SOFTWARE_X11) \ + $(ENGINE_DIRECTFB) \ + $(ENGINE_FB) \ + $(ENGINE_SOFTWARE_QTOPIA) \ + $(ENGINE_GL_X11) + + +libevas_la_DEPENDENCIES = \ + $(top_builddir)/config.h \ + canvas/libevas_canvas.la \ + data/libevas_data.la \ + file/libevas_file.la \ + engines/common/libevas_engine_common.la \ + $(ENGINE_SOFTWARE_X11) \ + $(ENGINE_DIRECTFB) \ + $(ENGINE_FB) \ + $(ENGINE_SOFTWARE_QTOPIA) \ + $(ENGINE_GL_X11) + +libevas_la_LDFLAGS = -version-info 1:0:0 diff --git a/legacy/evas/src/lib/canvas/Makefile.am b/legacy/evas/src/lib/canvas/Makefile.am new file mode 100644 index 0000000000..89a70f5d60 --- /dev/null +++ b/legacy/evas/src/lib/canvas/Makefile.am @@ -0,0 +1,40 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = 1.4 foreign + +# A list of all the files in the current directory which can be regenerated +MAINTAINERCLEANFILES = Makefile.in + +LDFLAGS = -L/usr/local/lib +INCLUDES = \ + -I. \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/lib/include \ + -I$(includedir) \ + -I/usr/local/include \ + @freetype_cflags@ @x_cflags@ @DIRECTFB_CFLAGS@ + +noinst_LTLIBRARIES = libevas_canvas.la +libevas_canvas_la_SOURCES = \ +evas_callbacks.c \ +evas_clip.c \ +evas_data.c \ +evas_events.c \ +evas_layer.c \ +evas_main.c \ +evas_name.c \ +evas_object_gradient.c \ +evas_object_image.c \ +evas_object_main.c \ +evas_object_line.c \ +evas_object_polygon.c \ +evas_object_rectangle.c \ +evas_object_smart.c \ +evas_object_text.c \ +evas_rectangle.c \ +evas_render.c \ +evas_smart.c \ +evas_stack.c + +libevas_canvas_la_LIBADD = $(LDFLAGS) +libevas_canvas_la_DEPENDENCIES = $(top_builddir)/config.h diff --git a/legacy/evas/src/lib/canvas/evas_callbacks.c b/legacy/evas/src/lib/canvas/evas_callbacks.c new file mode 100644 index 0000000000..f0d1ced057 --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_callbacks.c @@ -0,0 +1,139 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +void +evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void *event_info) +{ + Evas_Object_List **l_mod, *l; + + switch (type) + { + case EVAS_CALLBACK_MOUSE_IN: + l_mod = &(obj->callbacks.in); + break; + case EVAS_CALLBACK_MOUSE_OUT: + l_mod = &(obj->callbacks.out); + break; + case EVAS_CALLBACK_MOUSE_DOWN: + l_mod = &(obj->callbacks.down); + break; + case EVAS_CALLBACK_MOUSE_UP: + l_mod = &(obj->callbacks.up); + break; + case EVAS_CALLBACK_MOUSE_MOVE: + l_mod = &(obj->callbacks.move); + break; + case EVAS_CALLBACK_FREE: + l_mod = &(obj->callbacks.free); + break; + default: + return; + break; + } + for (l = *l_mod; l; l = l->next) + { + Evas_Func_Node *fn; + + fn = (Evas_Func_Node *)l; + fn->func(fn->data, obj->layer->evas, obj, event_info); + } +} + +/* public functions */ + +void +evas_object_event_callback_add(Evas_Object *obj, Evas_Callback_Type type, void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info), void *data) +{ + Evas_Func_Node *fn; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + + if (!func) return; + if (obj->smart.smart) return; + + fn = calloc(1, sizeof(Evas_Func_Node)); + if (!fn) return; + fn->func = func; + fn->data = data; + switch (type) + { + case EVAS_CALLBACK_MOUSE_IN: + obj->callbacks.in = evas_object_list_prepend(obj->callbacks.in, fn); + break; + case EVAS_CALLBACK_MOUSE_OUT: + obj->callbacks.out = evas_object_list_prepend(obj->callbacks.out, fn); + break; + case EVAS_CALLBACK_MOUSE_DOWN: + obj->callbacks.down = evas_object_list_prepend(obj->callbacks.down, fn); + break; + case EVAS_CALLBACK_MOUSE_UP: + obj->callbacks.up = evas_object_list_prepend(obj->callbacks.up, fn); + break; + case EVAS_CALLBACK_MOUSE_MOVE: + obj->callbacks.move = evas_object_list_prepend(obj->callbacks.move, fn); + break; + case EVAS_CALLBACK_FREE: + obj->callbacks.free = evas_object_list_prepend(obj->callbacks.free, fn); + break; + default: + return; + break; + } +} + +void * +evas_object_event_callback_del(Evas_Object *obj, Evas_Callback_Type type, void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info)) +{ + Evas_Object_List **l_mod, *l; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + + if (!func) return NULL; + if (obj->smart.smart) return NULL; + + switch (type) + { + case EVAS_CALLBACK_MOUSE_IN: + l_mod = &(obj->callbacks.in); + break; + case EVAS_CALLBACK_MOUSE_OUT: + l_mod = &(obj->callbacks.out); + break; + case EVAS_CALLBACK_MOUSE_DOWN: + l_mod = &(obj->callbacks.down); + break; + case EVAS_CALLBACK_MOUSE_UP: + l_mod = &(obj->callbacks.up); + break; + case EVAS_CALLBACK_MOUSE_MOVE: + l_mod = &(obj->callbacks.move); + break; + case EVAS_CALLBACK_FREE: + l_mod = &(obj->callbacks.free); + break; + default: + return NULL; + break; + } + for (l = *l_mod; l; l = l->next) + { + Evas_Func_Node *fn; + + fn = (Evas_Func_Node *)l; + if (fn->func == func) + { + void *data; + + data = fn->data; + *l_mod = evas_object_list_remove(*l_mod, fn); + free(fn); + return data; + } + } + return NULL; +} diff --git a/legacy/evas/src/lib/canvas/evas_clip.c b/legacy/evas/src/lib/canvas/evas_clip.c new file mode 100644 index 0000000000..5a53820307 --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_clip.c @@ -0,0 +1,174 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +void +evas_object_clip_recalc(Evas_Object *obj) +{ + int cx, cy, cw, ch, cvis, cr, cg, cb, ca; + int nx, ny, nw, nh, nvis, nr, ng, nb, na; + + evas_object_coords_recalc(obj); + cx = obj->cur.cache.geometry.x; cy = obj->cur.cache.geometry.y; + cw = obj->cur.cache.geometry.w; ch = obj->cur.cache.geometry.h; + if (obj->cur.color.a == 0) cvis = 0; + else cvis = obj->cur.visible; + cr = obj->cur.color.r; cg = obj->cur.color.g; + cb = obj->cur.color.b; ca = obj->cur.color.a; + if (obj->cur.clipper) + { + evas_object_clip_recalc(obj->cur.clipper); + nx = obj->cur.clipper->cur.cache.clip.x; + ny = obj->cur.clipper->cur.cache.clip.y; + nw = obj->cur.clipper->cur.cache.clip.w; + nh = obj->cur.clipper->cur.cache.clip.h; + nvis = obj->cur.clipper->cur.cache.clip.visible; + nr = obj->cur.clipper->cur.cache.clip.r; + ng = obj->cur.clipper->cur.cache.clip.g; + nb = obj->cur.clipper->cur.cache.clip.b; + na = obj->cur.clipper->cur.cache.clip.a; + RECTS_CLIP_TO_RECT(cx, cy, cw, ch, nx, ny, nw, nh); + cvis = cvis * nvis; + cr = (cr * (nr + 1)) >> 8; + cg = (cg * (ng + 1)) >> 8; + cb = (cb * (nb + 1)) >> 8; + ca = (ca * (na + 1)) >> 8; + } + if ((ca == 0) || (cw <= 0) || (ch <= 0)) cvis = 0; + obj->cur.cache.clip.x = cx; + obj->cur.cache.clip.y = cy; + obj->cur.cache.clip.w = cw; + obj->cur.cache.clip.h = ch; + obj->cur.cache.clip.visible = cvis; + obj->cur.cache.clip.r = cr; + obj->cur.cache.clip.g = cg; + obj->cur.cache.clip.b = cb; + obj->cur.cache.clip.a = ca; +} + +void +evas_object_recalc_clippees(Evas_Object *obj) +{ + Evas_List *l; + + evas_object_clip_recalc(obj); + for (l = obj->clip.clipees; l; l = l->next) + { + evas_object_recalc_clippees(l->data); + } +} + +int +evas_object_clippers_is_visible(Evas_Object *obj) +{ + if (obj->cur.visible) + { + if (obj->cur.clipper) + return evas_object_clippers_is_visible(obj->cur.clipper); + return 1; + } + return 0; +} + +int +evas_object_clippers_was_visible(Evas_Object *obj) +{ + if (obj->prev.visible) + { + if (obj->prev.clipper) + return evas_object_clippers_is_visible(obj->prev.clipper); + return 1; + } + return 0; +} + +/* public functions */ + +void +evas_object_clip_set(Evas_Object *obj, Evas_Object *clip) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (!clip) + { + evas_object_clip_unset(obj); + return; + } + MAGIC_CHECK(clip, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (obj->cur.clipper == clip) return; + if (obj->smart.smart) + { + if (obj->smart.smart->func_clip_set) + obj->smart.smart->func_clip_set(obj, clip); + } + if (obj->cur.clipper) + { + /* unclip */ + obj->cur.clipper->clip.clipees = evas_list_remove(obj->cur.clipper->clip.clipees, obj); + evas_object_change(obj); + obj->cur.clipper = NULL; + } + /* clip me */ + obj->cur.clipper = clip; + clip->clip.clipees = evas_list_append(clip->clip.clipees, obj); + evas_object_change(obj); + evas_object_recalc_clippees(obj); + if (!obj->smart.smart) + { + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1)) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); + } +} + +Evas_Object * +evas_object_clip_get(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + return obj->cur.clipper; +} + +void +evas_object_clip_unset(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (!obj->cur.clipper) return; + /* unclip */ + if (obj->smart.smart) + { + if (obj->smart.smart->func_clip_unset) + obj->smart.smart->func_clip_unset(obj); + } + obj->cur.clipper->clip.clipees = evas_list_remove(obj->cur.clipper->clip.clipees, obj); + obj->cur.clipper = NULL; + evas_object_change(obj); + evas_object_recalc_clippees(obj); + if (!obj->smart.smart) + { + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1)) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); + } +} + +Evas_List * +evas_object_clipees_get(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + return obj->clip.clipees; +} diff --git a/legacy/evas/src/lib/canvas/evas_data.c b/legacy/evas/src/lib/canvas/evas_data.c new file mode 100644 index 0000000000..815d1f45e6 --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_data.c @@ -0,0 +1,74 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +void +evas_object_data_set(Evas_Object *obj, const char *key, void *data) +{ + Evas_Data_Node *node; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (!key) return; + + evas_object_data_del(obj, key); + + node = malloc(sizeof(Evas_Data_Node)); + node->key = strdup(key); + node->data = data; + obj->data.elements = evas_list_prepend(obj->data.elements, node); +} + +void * +evas_object_data_get(Evas_Object *obj, const char *key) +{ + Evas_List *l; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + if (!key) return NULL; + + for (l = obj->data.elements; l; l = l->next) + { + Evas_Data_Node *node; + + node = l->data; + if (!strcmp(node->key, key)) + { + obj->data.elements = evas_list_remove(obj->data.elements, node); + obj->data.elements = evas_list_prepend(obj->data.elements, node); + return node->data; + } + } + return NULL; +} + +void * +evas_object_data_del(Evas_Object *obj, const char *key) +{ + Evas_List *l; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + if (!key) return NULL; + for (l = obj->data.elements; l; l = l->next) + { + Evas_Data_Node *node; + + node = l->data; + if (!strcmp(node->key, key)) + { + void *data; + + data = node->data; + obj->data.elements = evas_list_remove(obj->data.elements, node); + free(node->key); + free(node); + return data; + } + } + return NULL; +} diff --git a/legacy/evas/src/lib/canvas/evas_events.c b/legacy/evas/src/lib/canvas/evas_events.c new file mode 100644 index 0000000000..d67dd51e3b --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_events.c @@ -0,0 +1,470 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +Evas_List * +evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y) +{ + Evas_Object_List *l; + Evas_List *in = NULL; + + if (!e->layers) return NULL; + for (l = ((Evas_Object_List *)(e->layers))->last; l; l = l->prev) + { + Evas_Object_List *l2; + Evas_Layer *lay; + + lay = (Evas_Layer *)l; + for (l2 = ((Evas_Object_List *)(lay->objects))->last; l2; l2 = l2->prev) + { + Evas_Object *obj; + + obj = (Evas_Object *)l2; + if (obj == stop) goto done; + if ((!obj->pass_events) && (!obj->smart.smart)) + { + evas_object_clip_recalc(obj); + if ((evas_object_is_in_output_rect(obj, x, y, 1, 1)) && + (obj->cur.visible) && + (obj->delete_me == 0) && + (evas_object_clippers_is_visible(obj)) && + (!obj->clip.clipees)) + { + in = evas_list_append(in, obj); + if (!obj->repeat_events) goto done; + } + } + } + } + done: + return in; +} + +static Evas_List *evas_event_list_copy(Evas_List *list); +static Evas_List * +evas_event_list_copy(Evas_List *list) +{ + Evas_List *l, *new_l = NULL; + + for (l = list; l; l = l->next) + new_l = evas_list_append(new_l, l->data); + return new_l; +} +/* public functions */ + +void +evas_event_freeze(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + e->events_frozen++; +} + +void +evas_event_thaw(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + e->events_frozen--; +} + +int +evas_event_freeze_get(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return 0; + MAGIC_CHECK_END(); + return e->events_frozen; +} + +void +evas_event_feed_mouse_down_data(Evas *e, int b, void *data) +{ + Evas_List *l, *copy; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + + if ((b < 1) || (b > 32)) return; + + e->pointer.button |= (1 << (b - 1)); + + if (e->events_frozen > 0) return; + + copy = evas_event_list_copy(e->pointer.object.in); + for (l = copy; l; l = l->next) + { + Evas_Object *obj; + Evas_Event_Mouse_Down ev; + + obj = l->data; + obj->mouse_grabbed = 1; + e->pointer.mouse_grabbed = 1; + + ev.button = b; + ev.output.x = e->pointer.x; + ev.output.y = e->pointer.y; + ev.canvas.x = e->pointer.canvas_x; + ev.canvas.y = e->pointer.canvas_y; + ev.data = data; + evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_DOWN, &ev); + } + if (copy) copy = evas_list_free(copy); +} + +void +evas_event_feed_mouse_up_data(Evas *e, int b, void *data) +{ + Evas_List *l, *copy; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + + if ((b < 1) || (b > 32)) return; + + e->pointer.button &= ~(1 << (b - 1)); + + if (e->events_frozen > 0) return; + + copy = evas_event_list_copy(e->pointer.object.in); + for (l = copy; l; l = l->next) + { + Evas_Object *obj; + Evas_Event_Mouse_Up ev; + + obj = l->data; + if (!e->pointer.button) obj->mouse_grabbed = 0; + ev.button = b; + ev.output.x = e->pointer.x; + ev.output.y = e->pointer.y; + ev.canvas.x = e->pointer.canvas_x; + ev.canvas.y = e->pointer.canvas_y; + evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_UP, &ev); + } + if (copy) copy = evas_list_free(copy); + if (!e->pointer.button) + { + Evas_List *ins; + Evas_List *l; + + e->pointer.mouse_grabbed = 0; + /* get new list of ins */ + ins = evas_event_objects_event_list(e, NULL, e->pointer.x, e->pointer.y); + /* go thru old list of in objects */ + copy = evas_event_list_copy(e->pointer.object.in); + for (l = copy; l; l = l->next) + { + Evas_Object *obj; + + obj = l->data; + obj->mouse_grabbed = 0; + if (!evas_list_find(ins, obj)) + { + Evas_Event_Mouse_Out ev; + + obj->mouse_in = 0; + ev.buttons = e->pointer.button; + ev.output.x = e->pointer.x; + ev.output.y = e->pointer.y; + ev.canvas.x = e->pointer.canvas_x; + ev.canvas.y = e->pointer.canvas_y; + ev.data = data; + evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); + } + } + if (copy) copy = evas_list_free(copy); + for (l = ins; l; l = l->next) + { + Evas_Object *obj; + + obj = l->data; + + if (!evas_list_find(e->pointer.object.in, obj)) + { + Evas_Event_Mouse_In ev; + + obj->mouse_in = 1; + ev.buttons = e->pointer.button; + ev.output.x = e->pointer.x; + ev.output.y = e->pointer.y; + ev.canvas.x = e->pointer.canvas_x; + ev.canvas.y = e->pointer.canvas_y; + ev.data = data; + evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev); + } + } + /* free our old list of ins */ + e->pointer.object.in = evas_list_free(e->pointer.object.in); + /* and set up the new one */ + e->pointer.object.in = ins; + evas_event_feed_mouse_move_data(e, e->pointer.x, e->pointer.y, data); + } +} + +void +evas_event_feed_mouse_move_data(Evas *e, int x, int y, void *data) +{ + int px, py; + double pcx, pcy; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + + px = e->pointer.x; + py = e->pointer.y; + pcx = e->pointer.canvas_x; + pcy = e->pointer.canvas_y; + + if (e->events_frozen > 0) return; + + e->pointer.x = x; + e->pointer.y = y; + e->pointer.canvas_x = evas_coord_screen_x_to_world(e, x); + e->pointer.canvas_y = evas_coord_screen_x_to_world(e, y); + /* if our mouse button is grabbed to any objects */ + if (e->pointer.mouse_grabbed) + { + /* go thru old list of in objects */ + Evas_List *outs = NULL; + Evas_List *l, *copy; + + copy = evas_event_list_copy(e->pointer.object.in); + for (l = copy; l; l = l->next) + { + Evas_Object *obj; + + obj = l->data; + if ((obj->cur.visible) && + (evas_object_clippers_is_visible(obj)) && + (!obj->pass_events) && + (!obj->smart.smart) && + (!obj->clip.clipees)) + { + if ((px != x) || (py != y)) + { + Evas_Event_Mouse_Move ev; + + ev.buttons = e->pointer.button; + ev.cur.output.x = e->pointer.x; + ev.cur.output.y = e->pointer.y; + ev.cur.canvas.x = e->pointer.canvas_x; + ev.cur.canvas.y = e->pointer.canvas_y; + ev.prev.output.x = px; + ev.prev.output.y = py; + ev.prev.canvas.x = pcx; + ev.prev.canvas.y = pcy; + ev.data = data; + evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev); + } + } + else + outs = evas_list_append(outs, obj); + } + if (copy) copy = evas_list_free(copy); + while (outs) + { + Evas_Object *obj; + + obj = outs->data; + outs = evas_list_remove(outs, obj); + e->pointer.object.in = evas_list_remove(e->pointer.object.in, obj); + { + Evas_Event_Mouse_Out ev; + + obj->mouse_in = 0; + ev.buttons = e->pointer.button; + ev.output.x = e->pointer.x; + ev.output.y = e->pointer.y; + ev.canvas.x = e->pointer.canvas_x; + ev.canvas.y = e->pointer.canvas_y; + ev.data = data; + evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); + } + } + } + else + { + Evas_List *ins; + Evas_List *l, *copy; + + /* get all new in objects */ + ins = evas_event_objects_event_list(e, NULL, x, y); + /* go thru old list of in objects */ + copy = evas_event_list_copy(e->pointer.object.in); + for (l = copy; l; l = l->next) + { + Evas_Object *obj; + + obj = l->data; + /* if its under the pointer and its visible and its in the new */ + /* in list */ + evas_object_clip_recalc(obj); + if (evas_object_is_in_output_rect(obj, x, y, 1, 1) && + (obj->cur.visible) && + (evas_object_clippers_is_visible(obj)) && + (evas_list_find(ins, obj)) && + (!obj->pass_events) && + (!obj->smart.smart) && + (!obj->clip.clipees)) + { + if ((px != x) || (py != y)) + { + Evas_Event_Mouse_Move ev; + + ev.buttons = e->pointer.button; + ev.cur.output.x = e->pointer.x; + ev.cur.output.y = e->pointer.y; + ev.cur.canvas.x = e->pointer.canvas_x; + ev.cur.canvas.y = e->pointer.canvas_y; + ev.prev.output.x = px; + ev.prev.output.y = py; + ev.prev.canvas.x = pcx; + ev.prev.canvas.y = pcy; + ev.data = data; + evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev); + } + } + /* otherwise it has left the object */ + else + { + Evas_Event_Mouse_Out ev; + + obj->mouse_in = 0; + ev.buttons = e->pointer.button; + ev.output.x = e->pointer.x; + ev.output.y = e->pointer.y; + ev.canvas.x = e->pointer.canvas_x; + ev.canvas.y = e->pointer.canvas_y; + ev.data = data; + evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); + } + } + if (copy) copy = evas_list_free(copy); + /* go thru out current list of ins */ + for (l = ins; l; l = l->next) + { + Evas_Object *obj; + + obj = l->data; + /* if its not in the old list of ins send an enter event */ + if (!evas_list_find(e->pointer.object.in, obj)) + { + Evas_Event_Mouse_In ev; + + obj->mouse_in = 1; + ev.buttons = e->pointer.button; + ev.output.x = e->pointer.x; + ev.output.y = e->pointer.y; + ev.canvas.x = e->pointer.canvas_x; + ev.canvas.y = e->pointer.canvas_y; + ev.data = data; + evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev); + } + } + /* free our old list of ins */ + e->pointer.object.in = evas_list_free(e->pointer.object.in); + /* and set up the new one */ + e->pointer.object.in = ins; + } +} + +void +evas_event_feed_mouse_in_data(Evas *e, void *data) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + e->pointer.inside = 1; +} + +void +evas_event_feed_mouse_out_data(Evas *e, void *data) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + e->pointer.inside = 0; +} + +void +evas_event_feed_mouse_down(Evas *e, int b) +{ + evas_event_feed_mouse_down_data(e, b, NULL); +} + +void +evas_event_feed_mouse_up(Evas *e, int b) +{ + evas_event_feed_mouse_up_data(e, b, NULL); +} + +void +evas_event_feed_mouse_move(Evas *e, int x, int y) +{ + evas_event_feed_mouse_move_data(e, x, y, NULL); +} + +void +evas_event_feed_mouse_in(Evas *e) +{ + evas_event_feed_mouse_in_data(e, NULL); +} + +void +evas_event_feed_mouse_out(Evas *e) +{ + evas_event_feed_mouse_out_data(e, NULL); +} + +void +evas_object_pass_events_set(Evas_Object *obj, int pass) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + obj->pass_events = pass; + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1)) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); +} + +int +evas_object_pass_events_get(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + return obj->pass_events; +} + +void +evas_object_repeat_events_set(Evas_Object *obj, int repeat) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + obj->repeat_events = repeat; + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1)) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); +} + +int +evas_object_repeat_events_get(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + return obj->repeat_events; +} diff --git a/legacy/evas/src/lib/canvas/evas_layer.c b/legacy/evas/src/lib/canvas/evas_layer.c new file mode 100644 index 0000000000..3064b844f2 --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_layer.c @@ -0,0 +1,151 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +void +evas_object_inject(Evas_Object *obj, Evas *e) +{ + Evas_Layer *lay; + + lay = evas_layer_find(e, obj->cur.layer); + if (!lay) + { + lay = evas_layer_new(e); + lay->layer = obj->cur.layer; + evas_layer_add(lay); + } + lay->objects = evas_object_list_append(lay->objects, obj); + obj->layer = lay; +} + +void +evas_object_release(Evas_Object *obj, int clean_layer) +{ + obj->layer->objects = evas_object_list_remove(obj->layer->objects, obj); + if (clean_layer) + { + if (!obj->layer->objects) + { + evas_layer_del(obj->layer); + evas_layer_free(obj->layer); + } + } + obj->layer = NULL; +} + +Evas_Layer * +evas_layer_new(Evas *e) +{ + Evas_Layer *lay; + + lay = calloc(1, sizeof(Evas_Layer)); + if (!lay) return NULL; + lay->evas = e; + return lay; +} + +void +evas_layer_free(Evas_Layer *lay) +{ + while (lay->objects) + { + Evas_Object *obj; + + obj = (Evas_Object *)lay->objects; + if (obj->smart.smart) evas_object_smart_del(obj); + evas_object_free(obj, 0); + } + free(lay); +} + +Evas_Layer * +evas_layer_find(Evas *e, int layer_num) +{ + Evas_Object_List *list; + + for (list = (Evas_Object_List *)e->layers; list; list = list->next) + { + Evas_Layer *layer; + + layer = (Evas_Layer *)list; + if (layer->layer == layer_num) return layer; + } + return NULL; +} + +void +evas_layer_add(Evas_Layer *lay) +{ + Evas_Object_List *list; + + for (list = (Evas_Object_List *)lay->evas->layers; list; list = list->next) + { + Evas_Layer *layer; + + layer = (Evas_Layer *)list; + if (layer->layer > lay->layer) + { + lay->evas->layers = evas_object_list_prepend_relative(lay->evas->layers, lay, layer); + return; + } + } + lay->evas->layers = evas_object_list_append(lay->evas->layers, lay); +} + +void +evas_layer_del(Evas_Layer *lay) +{ + Evas_Object_List *ol; + Evas *e; + + ol = (Evas_Object_List *)lay; + e = lay->evas; + e->layers = evas_object_list_remove(e->layers, lay); +} + +/* public functions */ + +void +evas_object_layer_set(Evas_Object *obj, int l) +{ + Evas *e; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (obj->cur.layer == l) + { + evas_object_raise(obj); + return; + } + if (obj->smart.smart) + { + if (obj->smart.smart->func_layer_set) + obj->smart.smart->func_layer_set(obj, l); + } + e = obj->layer->evas; + evas_object_release(obj, 1); + obj->cur.layer = l; + evas_object_inject(obj, e); + obj->restack = 1; + if (obj->clip.clipees) return; + if (!obj->smart.smart) + { + evas_object_change(obj); + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1) && + obj->cur.visible) + if (evas_list_find(obj->layer->evas->pointer.object.in, obj)) + evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y); + } +} + +int +evas_object_layer_get(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + return obj->cur.layer; +} diff --git a/legacy/evas/src/lib/canvas/evas_main.c b/legacy/evas/src/lib/canvas/evas_main.c new file mode 100644 index 0000000000..df02be89e3 --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_main.c @@ -0,0 +1,897 @@ +#include "evas_common.h" +#include "evas_private.h" +#ifdef BUILD_ENGINE_SOFTWARE_X11 +#include "evas_engine_api_software_x11.h" +#endif +#ifdef BUILD_ENGINE_DIRECTFB +#include "evas_engine_api_directfb.h" +#endif +#ifdef BUILD_ENGINE_FB +#include "evas_engine_api_fb.h" +#endif +#ifdef BUILD_ENGINE_SOFTWARE_WIN32_GDI +#include "evas_engine_api_software_win32_gdi.h" +#endif +#ifdef BUILD_ENGINE_SOFTWARE_QTOPIA +#include "evas_engine_api_software_qtopia.h" +#endif +#ifdef BUILD_ENGINE_GL_X11 +#include "evas_engine_api_gl_x11.h" +#endif + +#include "Evas.h" + +/** + * Allocate and new Evas empty canvas. + * @return A zeroed out Evas, or NULL on failure + * + * This function creates a new Evas Canvas object that is completely + * uninitialised. You cannot sensibly use this until it has been initialised. + * You need to set up the rendering engine first for the canvas before you can + * add any objects to the canvas or render it. + * + * This function will always succeed and return a valid canvas pointer unless + * the memory allocation fails, in which case NULL will be returned. + * + * Example: + * @code + * Evas *evas; + * + * evas = evas_new(); + * @endcode + */ +Evas * +evas_new(void) +{ + Evas *e; + + e = calloc(1, sizeof(Evas)); + if (!e) return NULL; + + e->magic = MAGIC_EVAS; + e->output.render_method = RENDER_METHOD_INVALID; + + return e; +} + +/** + * Free an Evas. + * @param e The Pointer to the Evas to be freed + * + * When called this function frees the Evas Canvas @p e and All Evas Objects + * created on this canvas. As the objects are freed if they have free callbacks + * set, they will be called during the execution of this function. + * + * Example: + * @code + * extern Evas *evas; + * + * evas_free(evas); + * @endcode + */ +void +evas_free(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + + evas_object_font_path_clear(e); + + e->pointer.object.in = evas_list_free(e->pointer.object.in); + while (e->layers) + { + Evas_Layer *lay; + + lay = e->layers; + evas_layer_del(lay); + evas_layer_free(lay); + } + + if (e->name_hash) evas_hash_free(e->name_hash); + + while (e->damages) + { + free(e->damages->data); + e->damages = evas_list_remove(e->damages, e->damages->data); + } + while (e->obscures) + { + free(e->obscures->data); + e->obscures = evas_list_remove(e->obscures, e->obscures->data); + } + + e->engine.func->info_free(e, e->engine.info); + e->engine.func->context_free(e->engine.data.output, e->engine.data.context); + e->engine.func->output_free(e->engine.data.output); + + e->magic = 0; + free(e); +} + +/** + * Set the output method (engine) for the Evas. + * @param e The pointer to the Evas Canvas have its engine set + * @param render_method The numeric engine value to use. + * + * This call sets up which engine an Evas Canvas is to use from then on. This + * can only be done once and following calls of this function once called once + * will do nothing. The render method numeric value can be obtained using the + * evas_render_method_lookup() call. + * + * Example: + * @code + * int engine_id; + * Evas *evas; + * + * evas = evas_new(); + * engine_id = evas_render_method_lookup("software_x11"); + * evas_output_method_set(evas, engine_id); + * @endcode + */ +void +evas_output_method_set(Evas *e, int render_method) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + + /* if our engine to set it to is invalid - abort */ + if (render_method == RENDER_METHOD_INVALID) return; + /* if the engine is alreayd set up - abort */ + if (e->output.render_method != RENDER_METHOD_INVALID) return; + /* set the render method */ + e->output.render_method = render_method; +#ifdef BUILD_ENGINE_SOFTWARE_X11 + if (e->output.render_method == RENDER_METHOD_SOFTWARE_X11) + e->engine.func = &evas_engine_software_x11_func; + else +#endif +#ifdef BUILD_ENGINE_GL_X11 + if (e->output.render_method == RENDER_METHOD_GL_X11) + e->engine.func = &evas_engine_gl_x11_func; + else +#endif +#ifdef BUILD_ENGINE_DIRECTFB + if (e->output.render_method == RENDER_METHOD_DIRECTFB) + e->engine.func = &evas_engine_directfb_func; + else +#endif +#ifdef BUILD_ENGINE_FB + if (e->output.render_method == RENDER_METHOD_FB) + e->engine.func = &evas_engine_fb_func; + else +#endif +#ifdef BUILD_ENGINE_SOFTWARE_WIN32_GDI + if (e->output.render_method == RENDER_METHOD_SOFTWARE_WIN32_GDI) + e->engine.func = &evas_engine_software_win32_gdi_func; + else +#endif +#ifdef BUILD_ENGINE_SOFTWARE_QTOPIA + if (e->output.render_method == RENDER_METHOD_SOFTWARE_QTOPIA) + e->engine.func = &evas_engine_software_qtopia_func; + else +#endif + return; + /* get the engine info struct */ + if (e->output.render_method != RENDER_METHOD_INVALID) + { + if (e->engine.func->info) e->engine.info = e->engine.func->info(e); + } +} + +/** + * Get the output method (engine) for the Evas. + * @param e The pointer to the Evas Canvas + * @return A numeric engine value + * + * This function returns the rendering engine currently used bu the given Evas + * Canvas passed in. On success the rendering engine used by the Canvas is + * returned. On failue 0 is returned. + * + * Example: + * @code + * extern Evas *evas; + * int engine_id; + * + * engine_id = evas_output_method_get(evas); + * + * @endcode + */ +int +evas_output_method_get(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return RENDER_METHOD_INVALID; + MAGIC_CHECK_END(); + + return e->output.render_method; +} + +/** + * Get the render engine info struct from the canvas. + * @param e The pointer to the Evas Canvas + * @return A pointer to the Engine Info structure + * + * Calling this function returns a pointer to a publicly modifyable structure + * that the rendering engine for the given canvas has set up. Callin this + * function before the rendering engine has been set will result in NULL being + * returned, as will calling this function on an invalid canvas. The caller + * does no need to free this structure and shoudl only assume that the pointer + * tois is valid until evas_engine_info_set() is called or until evas_render() + * is called. After these calls the contents of this structure and the pointer + * to it are not guaranteed to be valid. + * + * With some engines calling this call and modifying structure parameters, + * then calling evas_engine_info_set() is used to modify engine parameters + * whilst the canvas is alive. + * + * Example: + * @code + * Evas *evas; + * Evas_Engine_Info_Software_X11 *einfo; + * extern Display *display; + * extern Window win; + * + * evas = evas_new(); + * evas_output_method_set(evas, evas_render_method_lookup("software_x11")); + * evas_output_size_set(evas, 640, 480); + * evas_output_viewport_set(evas, 0, 0, 640, 480); + * einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(evas); + * einfo->info.display = display; + * einfo->info.visual = DefaultVisual(display, DefaultScreen(display)); + * einfo->info.colormap = DefaultColormap(display, DefaultScreen(display)); + * einfo->info.drawable = win; + * einfo->info.depth = DefaultDepth(display, DefaultScreen(display)); + * evas_engine_info_set(evas, (Evas_Engine_Info *)einfo); + * @endcode + */ +Evas_Engine_Info * +evas_engine_info_get(Evas *e) +{ + Evas_Engine_Info *info; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + + info = e->engine.info; + e->engine.info_magic = info->magic; + + return info; +} + +/** + * Set up the Engine Info from the info structure. + * @param e The pointer to the Evas Canvas + * @param info The pointer to the Engine Info to use + * + * This function takes any parameters set in the provided info structure and + * applies them to the rendering engine. You need to use the Engine Info + * structure pointer provided by evas_engine_info_get() and not anything else. + * + * You need to set up the Engine Info at least once before doing any rendering + * or creating any objects on the Evas Canvas. Some engines support the + * changing of engine parameters during runtime and so the application + * should call evas_engine_info_get(), modify parameters that need to be + * modified, and then call evas_engine_info_set() again to have those changes + * take effect. + * + * Once evas_engine_info_set() is called the Engine Info structure pointer + * should be considered invalid and should not be used again. Use + * evas_engine_info_get(0 to fetch it again if needed. + * + * Example: + * @code + * Evas *evas; + * Evas_Engine_Info_Software_X11 *einfo; + * extern Display *display; + * extern Window win; + * + * evas = evas_new(); + * evas_output_method_set(evas, evas_render_method_lookup("software_x11")); + * evas_output_size_set(evas, 640, 480); + * evas_output_viewport_set(evas, 0, 0, 640, 480); + * einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(evas); + * einfo->info.display = display; + * einfo->info.visual = DefaultVisual(display, DefaultScreen(display)); + * einfo->info.colormap = DefaultColormap(display, DefaultScreen(display)); + * einfo->info.drawable = win; + * einfo->info.depth = DefaultDepth(display, DefaultScreen(display)); + * evas_engine_info_set(evas, (Evas_Engine_Info *)einfo); + * @endcode + */ +void +evas_engine_info_set(Evas *e, Evas_Engine_Info *info) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + if (!info) return; + if (info != e->engine.info) return; + if (info->magic != e->engine.info_magic) return; + e->engine.func->setup(e, info); +} + +/** + * Set the render engine's output size in output units. + * @param e The pointer to the Evas Canvas + * @param w The width in output units + * @param h The height in output units + * + * This function sets the output display size for the Evas Canvas indicated to + * be the size (for most engines in pixels). The Canvas will render to a + * rectangle of this size on the output target once this call is called. This + * is independant of the viewport (view into the canvas world) and will simply + * stretch the viewport to fill the rectangle indicated by this call. + * + * Example: + * @code + * extern Evas *evas; + * + * evas_output_size_set(evas, 640, 480); + * @endcode + */ +void +evas_output_size_set(Evas *e, int w, int h) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + + if ((w == e->output.w) && (h == e->output.h)) return; + if (w < 1) w = 1; + if (h < 1) h = 1; + e->output.w = w; + e->output.h = h; + e->output.changed = 1; + e->output_validity++; + e->changed = 1; +} + +/** + * Get the render engine's output size in output units. + * @param e The pointer to the Evas Canvas + * @param w The pointer to a width variable to be filled in + * @param h The pointer to a height variable to be filled in + * + * Calling this function writes the current canvas output size values into the + * variables pointed to by @p w and @p h. On success the variables have the + * output size values written to them in output units. If either @p w or @p h + * is NULL, it will not be written to. If @p e is invalid, the results are + * undefined. + * + * Example: + * @code + * extern Evas *evas; + * int width, height; + * + * evas_output_size_get(evas, &width, &height); + * @endcode + */ +void +evas_output_size_get(Evas *e, int *w, int *h) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + if (w) *w = 0; + if (h) *h = 0; + return; + MAGIC_CHECK_END(); + + if (w) *w = e->output.w; + if (h) *h = e->output.h; +} + +/** + * Set the render engine's output viewport in canvas units. + * @param e The pointer to the Evas Canvas + * @param x The top-left corner x value of the viewport + * @param y The top-left corner y value of the viewport + * @param w The width of the viewport + * @param h The height of the viewport + * + * This function sets the viewport (in canvas co-ordinate space) that will + * be visible in the canvas ouput. The width and height of the viewport must + * both be greater than 0. The rectangle described by the co-ordinates is the + * rectangular region of the canvas co-ordinate space that is visibly mapped + * and stretched to fill the output target of the canvas when rendering is + * performed. + * + * Co-ordinates do not have to map 1 to 1, but it is generally advised for + * ease of use that canvas co-ordinates to match output target units for + * better control, but this is not required. + * + * Example: + * @code + * extern Evas *evas; + * + * evas_output_viewport_set(evas, 0, 0, 640, 480); + * @endcode + */ +void +evas_output_viewport_set(Evas *e, double x, double y, double w, double h) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + + if ((x == e->viewport.x) && (y == e->viewport.y) && + (w == e->viewport.w) && (h == e->viewport.h)) return; + if (w <= 0) return; + if (h <= 0) return; + e->viewport.x = x; + e->viewport.y = y; + e->viewport.w = w; + e->viewport.h = h; + e->viewport.changed = 1; + e->output_validity++; + e->changed = 1; +} + +/** + * Get the render engine's output viewport co-ordinates in canvas units. + * @param e The pointer to the Evas Canvas + * @param x The pointer to a x variable to be filled in + * @param y The pointer to a y variable to be filled in + * @param w The pointer to a width variable to be filled in + * @param h The pointer to a height variable to be filled in + * + * Calling this function writes the current canvas output viewport size and + * location values into the variables pointed to by @p x, @p y, @p w and @p h. + * On success the variables have the output location and size values written + * to them in canvas units. If either @p x, @p y, @p w or @p h are NULL, it + * they will not be written to. If @p e is invalid, the results are + * undefined. + * + * Example: + * @code + * extern Evas *evas; + * double x, y, width, height; + * + * evas_output_viewport_get(evas, &x, &y, &w, &h); + * @endcode + */ +void +evas_output_viewport_get(Evas *e, double *x, double *y, double *w, double *h) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + if (x) *x = 0; + if (y) *y = 0; + if (w) *w = 0; + if (h) *h = 0; + return; + MAGIC_CHECK_END(); + + if (x) *x = e->viewport.x; + if (y) *y = e->viewport.y; + if (w) *w = e->viewport.w; + if (h) *h = e->viewport.h; +} + +/** + * Convert/scale an ouput screen co-ordinate into canvas co-ordinates + * + * @param e The pointer to the Evas Canvas + * @param x The screen/output x co-ordinate + * @return The screen co-ordinate translated to canvas unit co-ordinates + * + * This function takes in a horizontal co-ordinate as the @p x parameter and + * converts it into canvas units, accounting for output size, viewport size + * and location, returning it as the function return value. If @p e is + * invalid, the results are undefined. + * + * Example: + * @code + * extern Evas *evas; + * extern int screen_x; + * double canvas_x; + * + * canvas_x = evas_coord_screen_x_to_world(evas, screen_x); + * @endcode + */ +double +evas_coord_screen_x_to_world(Evas *e, int x) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return 0; + MAGIC_CHECK_END(); + return e->viewport.x + (((double)x * e->viewport.w) / (double)e->output.w); +} + +/** + * Convert/scale an ouput screen co-ordinate into canvas co-ordinates + * + * @param e The pointer to the Evas Canvas + * @param y The screen/output y co-ordinate + * @return The screen co-ordinate translated to canvas unit co-ordinates + * + * This function takes in a vertical co-ordinate as the @p y parameter and + * converts it into canvas units, accounting for output size, viewport size + * and location, returning it as the function return value. If @p e is + * invalid, the results are undefined. + * + * Example: + * @code + * extern Evas *evas; + * extern int screen_y; + * double canvas_y; + * + * canvas_y = evas_coord_screen_y_to_world(evas, screen_y); + * @endcode + */ +double +evas_coord_screen_y_to_world(Evas *e, int y) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return 0; + MAGIC_CHECK_END(); + return e->viewport.y + (((double)y * e->viewport.h) / (double)e->output.h); +} + +/** + * Convert/scale a canvas co-ordinate into output screen co-ordinates + * + * @param e The pointer to the Evas Canvas + * @param x The canvas x co-ordinate + * @return The output/screen co-ordinate translated to output co-ordinates + * + * This function takes in a horizontal co-ordinate as the @p x parameter and + * converts it into output units, accounting for output size, viewport size + * and location, returning it as the function return value. If @p e is + * invalid, the results are undefined. + * + * Example: + * @code + * extern Evas *evas; + * int screen_x; + * extern double canvas_x; + * + * screen_x = evas_coord_world_x_to_screen(evas, canvas_x); + * @endcode + */ +int +evas_coord_world_x_to_screen(Evas *e, double x) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return 0; + MAGIC_CHECK_END(); + return (int)(((x - e->viewport.x) * (double)e->output.w) / e->viewport.w); +} + +/** + * Convert/scale a canvas co-ordinate into output screen co-ordinates + * + * @param e The pointer to the Evas Canvas + * @param y The canvas y co-ordinate + * @return The output/screen co-ordinate translated to output co-ordinates + * + * This function takes in a vertical co-ordinate as the @p x parameter and + * converts it into output units, accounting for output size, viewport size + * and location, returning it as the function return value. If @p e is + * invalid, the results are undefined. + * + * Example: + * @code + * extern Evas *evas; + * int screen_y; + * extern double canvas_y; + * + * screen_y = evas_coord_world_y_to_screen(evas, canvas_y); + * @endcode + */ +int +evas_coord_world_y_to_screen(Evas *e, double y) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return 0; + MAGIC_CHECK_END(); + return (int)(((y - e->viewport.y) * (double)e->output.h) / e->viewport.h); +} + +/** + * Look up a numeric ID from a string name of a rendering engine. + * + * @param name The string name of an engine + * @return A numeric (opaque) ID for the rendering engine + * + * This function looks up a numeric return value for the named engine in the + * string @p name. This is a normal C string, NUL byte terminated. The name + * is case sensitive. If the rendering engine is available, a numeric ID for + * that engine is returned that is no 0, if the engine is not available, 0 + * is returned, indicating an invalid engine. + * + * The programmer should NEVER rely on the numeric ID an engine unless it is + * returned by this function. Programs should NOT be written accessing render + * method ID's directly, without first obtaining it from this function. + * + * Example: + * @code + * int engine_id; + * Evas *evas; + * + * evas = evas_new(); + * if (!evas) + * { + * fprintf(stderr, "ERROR: Canvas creation failed. Fatal error.\n"); + * exit(-1); + * } + * engine_id = evas_render_method_lookup("software_x11"); + * if (!engine_id) + * { + * fprintf(stderr, "ERROR: Requested rendering engine is absent.\n"); + * exit(-1); + * } + * evas_output_method_set(evas, engine_id); + * @endcode + */ +int +evas_render_method_lookup(const char *name) +{ + if (!name) return RENDER_METHOD_INVALID; + +#ifdef BUILD_ENGINE_SOFTWARE_X11 + if (!strcmp(name, "software_x11")) return RENDER_METHOD_SOFTWARE_X11; +#endif +#ifdef BUILD_ENGINE_GL_X11 + if (!strcmp(name, "gl_x11")) return RENDER_METHOD_GL_X11; +#endif +#ifdef BUILD_ENGINE_DIRECTFB + if (!strcmp(name, "directfb")) return RENDER_METHOD_DIRECTFB; +#endif +#ifdef BUILD_ENGINE_FB + if (!strcmp(name, "fb")) return RENDER_METHOD_FB; +#endif +#ifdef BUILD_ENGINE_SOFTWARE_WIN32_GDI + if (!strcmp(name, "software_win32_gdi")) return RENDER_METHOD_SOFTWARE_WIN32_GDI; +#endif +#ifdef BUILD_ENGINE_SOFTWARE_QTOPIA + if (!strcmp(name, "software_qtopia")) return RENDER_METHOD_SOFTWARE_QTOPIA; +#endif + return RENDER_METHOD_INVALID; +} + +/** + * List all the rendering engines compiled into the copy of the Evas library + * + * @return A linked lst whose data members are C strings of engine names + * + * Calling this will return the program a handle (pointer) to an Evas linked + * list. Each node in the linked lists will have the data pointer be a char * + * pointer to the string name of the rendering engine available. The strings + * should never be modified, neither should the list be modified. This list + * should be cleaned up as soon as the program no longer needs it using + * evas_render_method_list_free(). If no engines are available from Evas, NULL + * will be returned. + * + * Example: + * @code + * Evas_List *engine_list, *l; + * + * engine_list = evas_render_method_list(); + * if (!engine_list) + * { + * fprintf(stderr, "ERROR: Evas supports no engines! Exit.\n"); + * exit(-1); + * } + * printf("Availible Evas Engines:\n"); + * for (l = engine_list; l; l = l->next) + * { + * char *engine_name; + * + * engine_name = l->data; + * printf("%s\n", engine_name); + * } + * evas_render_method_list_free(engine_list); + * @endcode + */ +Evas_List * +evas_render_method_list(void) +{ + Evas_List *methods = NULL; + +#ifdef BUILD_ENGINE_SOFTWARE_X11 + methods = evas_list_append(methods, strdup("software_x11")); +#endif +#ifdef BUILD_ENGINE_GL_X11 + methods = evas_list_append(methods, strdup("gl_x11")); +#endif +#ifdef BUILD_ENGINE_DIRECTFB + methods = evas_list_append(methods, strdup("directfb")); +#endif +#ifdef BUILD_ENGINE_FB + methods = evas_list_append(methods, strdup("fb")); +#endif +#ifdef BBUILD_ENGINE_SOFTWARE_WIN32_GDI + methods = evas_list_append(methods, strdup("software_win32_gdi")); +#endif +#ifdef BBUILD_ENGINE_SOFTWARE_QTOPIA + methods = evas_list_append(methods, strdup("software_qtopia")); +#endif + + return NULL; +} + +/** + * This function should be called to free a list of engine names + * + * @param list The Evas_List base pointer for the engine list to be freed + * + * When this function is called it will free the engine list passed in as + * @p list. The list should only be a list of engines generated by calling + * evas_render_method_list(). If @p list is NULL, nothing will happen. + * + * Example: + * @code + * Evas_List *engine_list, *l; + * + * engine_list = evas_render_method_list(); + * if (!engine_list) + * { + * fprintf(stderr, "ERROR: Evas supports no engines! Exit.\n"); + * exit(-1); + * } + * printf("Availible Evas Engines:\n"); + * for (l = engine_list; l; l = l->next) + * { + * char *engine_name; + * + * engine_name = l->data; + * printf("%s\n", engine_name); + * } + * evas_render_method_list_free(engine_list); + * @endcode + */ +void +evas_render_method_list_free(Evas_List *list) +{ + while (list) + { + free(list->data); + list = evas_list_remove(list, list->data); + } +} + +/** + * This function returns the current known pointer co-ordinates + * + * @param e The pointer to the Evas Canvas + * @param x The pointer to an integer to be filled in + * @param y The pointer to an integer to be filled in + * + * This function returns the current known screen/output co-ordinates of the + * mouse pointer and sets the contents of the integers pointed to by @p x + * and @p y to contain these co-ordinates. If @p e is not a valid canvas the + * results of this function are undefined. + * + * Example: + * @code + * extern Evas *evas; + * int mouse_x, mouse_y; + * + * evas_pointer_output_xy_get(evas, &mouse_x, &mouse_y); + * printf("Mouse is at screen position %i, %i\n", mouse_x, mouse_y); + * @endcode + */ +void +evas_pointer_output_xy_get(Evas *e, int *x, int *y) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + if (x) *x = 0; + if (y) *y = 0; + return; + MAGIC_CHECK_END(); + if (x) *x = e->pointer.x; + if (y) *y = e->pointer.y; +} + +/** + * This function returns the current known pointer co-ordinates + * + * @param e The pointer to the Evas Canvas + * @param x The pointer to a double to be filled in + * @param y The pointer to a double to be filled in + * + * This function returns the current known canvas unit co-ordinates of the + * mouse pointer and sets the contents of the doubles pointed to by @p x + * and @p y to contain these co-ordinates. If @p e is not a valid canvas the + * results of this function are undefined. + * + * Example: + * @code + * extern Evas *evas; + * double mouse_x, mouse_y; + * + * evas_pointer_output_xy_get(evas, &mouse_x, &mouse_y); + * printf("Mouse is at canvas position %f, %f\n", mouse_x, mouse_y); + * @endcode + */ +void +evas_pointer_canvas_xy_get(Evas *e, double *x, double *y) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + if (x) *x = 0; + if (y) *y = 0; + return; + MAGIC_CHECK_END(); + if (x) *x = e->pointer.x; + if (y) *y = e->pointer.y; +} + +/** + * Returns a bitmask with the mouse buttons currently pressed, set to 1 + * + * @param e The pointer to the Evas Canvas + * @return A bitmask of the currently depressed buttons on the cavas + * + * Calling this function will retunr a 32-bit integer with the appropriate bits + * set to 1 that correspond to a mouse button being depressed. This limits + * Evas to a mouse devices with a maximum of 32 buttons, but that is generally + * in excess of any host systems pointing device abilities. + * + * A canvas by default begins with no mouse buttons being pressed and only + * calls to evas_event_feed_mouse_down(), evas_event_feed_mouse_down_data(), + * evas_event_feed_mouse_up() and evas_event_feed_mouse_up_data() will alter + * that. + * + * The least significant bit corresponds to the first mouse button (button 1) + * and the most significant bit corresponds to the last mouse button + * (button 32). + * + * If @p e is not a valid canvas, the return value is undefined. + * + * Example: + * @code + * extern Evas *evas; + * int button_mask, i; + * + * button_mask = evas_pointer_button_down_mask_get(evas); + * printf("Buttons currently pressed:\n"); + * for (i = 0; i < 32; i++) + * { + * if ((button_mask & (1 << i)) != 0) printf("Button %i\n", i + 1); + * } + * @endcode + */ +int +evas_pointer_button_down_mask_get(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return 0; + MAGIC_CHECK_END(); + return (int)e->pointer.button; +} + +/** + * Returns if the mouse pointer is logically inside the canvas + * + * @param e The pointer to the Evas Canvas + * @return An integer (0 or 1) corresponding to the outside/inside pointer + * + * When this function is called it will return a value of either 0 or 1, + * depending on if evas_event_feed_mouse_in(), evas_event_feed_mouse_in_data(), + * or evas_event_feed_mouse_out(), evas_event_feed_mouse_out_data() have been + * called to feed in a mouse enter event into the canvas. + * + * A return value of 1 indicates the mouse is logically inside the canvas, and + * 0 implies it is logically outside the canvas. + * + * A canvas begins with the mouse being assumed outside (0). + * + * If @p e is not a valid canvas, the return value is undefined. + * + * Example: + * @code + * extern Evas *evas; + * + * if (evas_pointer_inside_get(evas)) printf("Mouse is in!\n"); + * else printf("Mouse is out\n"); + * @endcode + */ +int +evas_pointer_inside_get(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return 0; + MAGIC_CHECK_END(); + return (int)e->pointer.inside; +} diff --git a/legacy/evas/src/lib/canvas/evas_name.c b/legacy/evas/src/lib/canvas/evas_name.c new file mode 100644 index 0000000000..e9cee3913b --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_name.c @@ -0,0 +1,41 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +void +evas_object_name_set(Evas_Object *obj, const char *name) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (obj->name) + { + obj->layer->evas->name_hash = evas_hash_del(obj->layer->evas->name_hash, obj->name, obj); + free(obj->name); + } + if (!name) obj->name = NULL; + else + { + obj->name = strdup(name); + obj->layer->evas->name_hash = evas_hash_add(obj->layer->evas->name_hash, obj->name, obj); + } +} + +char * +evas_object_name_get(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + return obj->name; +} + +Evas_Object * +evas_object_name_find(Evas *e, const char *name) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + if (!name) return NULL; + return (Evas_Object *)evas_hash_find(e->name_hash, name); +} diff --git a/legacy/evas/src/lib/canvas/evas_object_gradient.c b/legacy/evas/src/lib/canvas/evas_object_gradient.c new file mode 100644 index 0000000000..aa3aabb80d --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_object_gradient.c @@ -0,0 +1,373 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +/* private magic number for gradient objects */ +static const char o_type[] = "gradient"; + +/* private struct for gradient object internal data */ +typedef struct _Evas_Object_Gradient Evas_Object_Gradient; + +struct _Evas_Object_Gradient +{ + DATA32 magic; + + struct { + double angle; + } cur, prev; + int changed : 1; + int gradient_changed : 1; + int gradient_opaque : 1; + + void *engine_data; +}; + +/* private methods for gradient objects */ +static void evas_object_gradient_init(Evas_Object *obj); +static void *evas_object_gradient_new(void); +static void evas_object_gradient_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y); +static void evas_object_gradient_free(Evas_Object *obj); +static void evas_object_gradient_render_pre(Evas_Object *obj); +static void evas_object_gradient_render_post(Evas_Object *obj); + +static int evas_object_gradient_is_opaque(Evas_Object *obj); +static int evas_object_gradient_was_opaque(Evas_Object *obj); + +static Evas_Object_Func object_func = +{ + /* methods (compulsory) */ + evas_object_gradient_free, + evas_object_gradient_render, + evas_object_gradient_render_pre, + evas_object_gradient_render_post, + /* these are optional. NULL = nothing */ + NULL, + NULL, + NULL, + NULL, + evas_object_gradient_is_opaque, + evas_object_gradient_was_opaque, + NULL, + NULL, + NULL +}; + +/* the actual api call to add a rect */ +/* it has no other api calls as all properties are standard */ +Evas_Object * +evas_object_gradient_add(Evas *e) +{ + Evas_Object *obj; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + obj = evas_object_new(); + evas_object_gradient_init(obj); + evas_object_inject(obj, e); + return obj; +} + +void +evas_object_gradient_color_add(Evas_Object *obj, int r, int g, int b, int a, int distance) +{ + Evas_Object_Gradient *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Gradient *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Gradient, MAGIC_OBJ_GRADIENT); + return; + MAGIC_CHECK_END(); + o->engine_data = obj->layer->evas->engine.func->gradient_color_add(obj->layer->evas->engine.data.output, + obj->layer->evas->engine.data.context, + o->engine_data, + r, g, b, a, + distance); + o->gradient_changed = 1; + if (a != 255) o->gradient_opaque = 0; + evas_object_change(obj); +} + +void +evas_object_gradient_colors_clear(Evas_Object *obj) +{ + Evas_Object_Gradient *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Gradient *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Gradient, MAGIC_OBJ_GRADIENT); + return; + MAGIC_CHECK_END(); + o->engine_data = obj->layer->evas->engine.func->gradient_colors_clear(obj->layer->evas->engine.data.output, + obj->layer->evas->engine.data.context, + o->engine_data); + o->gradient_changed = 1; + o->gradient_opaque = 1; + evas_object_change(obj); +} + +void +evas_object_gradient_angle_set(Evas_Object *obj, double angle) +{ + Evas_Object_Gradient *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Gradient *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Gradient, MAGIC_OBJ_GRADIENT); + return; + MAGIC_CHECK_END(); + if (angle == o->cur.angle) return; + o->cur.angle = angle; + o->changed = 1; + evas_object_change(obj); +} + +double +evas_object_gradient_angle_get(Evas_Object *obj) +{ + Evas_Object_Gradient *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0.0; + MAGIC_CHECK_END(); + o = (Evas_Object_Gradient *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Gradient, MAGIC_OBJ_GRADIENT); + return 0.0; + MAGIC_CHECK_END(); + return o->cur.angle; + evas_object_change(obj); +} + + + + + +/* all nice and private */ +static void +evas_object_gradient_init(Evas_Object *obj) +{ + /* alloc image ob, setup methods and default values */ + obj->object_data = evas_object_gradient_new(); + /* set up default settings for this kind of object */ + obj->cur.color.r = 255; + obj->cur.color.g = 255; + obj->cur.color.b = 255; + obj->cur.color.a = 255; + obj->cur.geometry.x = 0.0; + obj->cur.geometry.y = 0.0; + obj->cur.geometry.w = 32.0; + obj->cur.geometry.h = 32.0; + obj->cur.layer = 0; + /* set up object-specific settings */ + obj->prev = obj->cur; + /* set up methods (compulsory) */ + obj->func = &object_func; + obj->type = o_type; +} + +static void * +evas_object_gradient_new(void) +{ + Evas_Object_Gradient *o; + + /* alloc obj private data */ + o = calloc(1, sizeof(Evas_Object_Gradient)); + o->magic = MAGIC_OBJ_GRADIENT; + o->cur.angle = 0.0; + o->prev = o->cur; + o->gradient_opaque = 1; + return o; +} + +static void +evas_object_gradient_free(Evas_Object *obj) +{ + Evas_Object_Gradient *o; + + /* frees private object data. very simple here */ + o = (Evas_Object_Gradient *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Gradient, MAGIC_OBJ_GRADIENT); + return; + MAGIC_CHECK_END(); + /* free obj */ + o->engine_data = obj->layer->evas->engine.func->gradient_colors_clear(obj->layer->evas->engine.data.output, + obj->layer->evas->engine.data.context, + o->engine_data); + o->magic = 0; + free(o); +} + +static void +evas_object_gradient_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y) +{ + Evas_Object_Gradient *o; + + /* render object to surface with context, and offxet by x,y */ + o = (Evas_Object_Gradient *)(obj->object_data); + obj->layer->evas->engine.func->context_color_set(output, + context, + 255, 255, 255, 255); + if ((obj->cur.cache.clip.r == 255) && + (obj->cur.cache.clip.g == 255) && + (obj->cur.cache.clip.b == 255) && + (obj->cur.cache.clip.a == 255)) + obj->layer->evas->engine.func->context_multiplier_unset(output, + context); + else + obj->layer->evas->engine.func->context_multiplier_set(output, + context, + obj->cur.cache.clip.r, + obj->cur.cache.clip.g, + obj->cur.cache.clip.b, + obj->cur.cache.clip.a); + if (o->engine_data) + obj->layer->evas->engine.func->gradient_draw(output, + context, + surface, + o->engine_data, + obj->cur.cache.geometry.x + x, + obj->cur.cache.geometry.y + y, + obj->cur.cache.geometry.w, + obj->cur.cache.geometry.h, + o->cur.angle); +} + +static void +evas_object_gradient_render_pre(Evas_Object *obj) +{ + Evas_List *updates = NULL; + Evas_Object_Gradient *o; + int is_v, was_v; + + /* dont pre-render the obj twice! */ + if (obj->pre_render_done) return; + obj->pre_render_done = 1; + /* pre-render phase. this does anything an object needs to do just before */ + /* rendering. this could mean loading the image data, retrieving it from */ + /* elsewhere, decoding video etc. */ + /* then when this is done the object needs to figure if it changed and */ + /* if so what and where and add thr appropriate redraw rectangles */ + o = (Evas_Object_Gradient *)(obj->object_data); + /* if someone is clipping this obj - go calculate the clipper */ + if (obj->cur.clipper) + { + evas_object_clip_recalc(obj->cur.clipper); + obj->cur.clipper->func->render_pre(obj->cur.clipper); + } + /* now figure what changed and add draw rects */ + /* if it just became visible or invisible */ + is_v = evas_object_is_visible(obj); + was_v = evas_object_was_visible(obj); + if (is_v != was_v) + { + updates = evas_object_render_pre_visible_change(updates, obj, is_v, was_v); + goto done; + } + /* its not visible - we accounted for it appearing or not so just abort */ + if (!is_v) goto done; + /* clipper changed this is in addition to anything else for obj */ + updates = evas_object_render_pre_clipper_change(updates, obj); + /* if we restacked (layer or just within a layer) and dont clip anyone */ + if (obj->restack) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* if it changed color */ + if ((obj->cur.color.r != obj->prev.color.r) || + (obj->cur.color.g != obj->prev.color.g) || + (obj->cur.color.b != obj->prev.color.b) || + (obj->cur.color.a != obj->prev.color.a)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* if it changed geometry - and obviously not visibility or color */ + /* caluclate differences since we have a constant color fill */ + /* we really only need to update the differences */ + if ((obj->cur.geometry.x != obj->prev.geometry.x) || + (obj->cur.geometry.y != obj->prev.geometry.y) || + (obj->cur.geometry.w != obj->prev.geometry.w) || + (obj->cur.geometry.h != obj->prev.geometry.h)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* angle changed */ + if ((o->changed) && (o->cur.angle != o->prev.angle)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* angle changed */ + if (o->gradient_changed) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* it obviously didn't change - add a NO obscure - this "unupdates" this */ + /* area so if there were updates for it they get wiped. don't do it if we */ + /* arent fully opaque and we are visible */ + if (evas_object_is_visible(obj) && + evas_object_is_opaque(obj)) + obj->layer->evas->engine.func->output_redraws_rect_del(obj->layer->evas->engine.data.output, + obj->cur.cache.clip.x, + obj->cur.cache.clip.y, + obj->cur.cache.clip.w, + obj->cur.cache.clip.h); + done: + evas_object_render_pre_effect_updates(updates, obj, is_v, was_v); +} + +static void +evas_object_gradient_render_post(Evas_Object *obj) +{ + Evas_Object_Gradient *o; + + /* this moves the current data to the previous state parts of the object */ + /* in whatever way is safest for the object. also if we don't need object */ + /* data anymore we can free it if the object deems this is a good idea */ + o = (Evas_Object_Gradient *)(obj->object_data); + /* remove those pesky changes */ + while (obj->clip.changes) + { + Evas_Rectangle *r; + + r = (Evas_Rectangle *)obj->clip.changes->data; + obj->clip.changes = evas_list_remove(obj->clip.changes, r); + free(r); + } + /* move cur to prev safely for object data */ + obj->prev = obj->cur; + o->prev = o->cur; + o->changed = 0; + o->gradient_changed = 0; +} + +static int +evas_object_gradient_is_opaque(Evas_Object *obj) +{ + Evas_Object_Gradient *o; + + /* this returns 1 if the internal object data implies that the object is */ + /* currently fulyl opque over the entire gradient it occupies */ + o = (Evas_Object_Gradient *)(obj->object_data); + return o->gradient_opaque; +} + +static int +evas_object_gradient_was_opaque(Evas_Object *obj) +{ + Evas_Object_Gradient *o; + + /* this returns 1 if the internal object data implies that the object was */ + /* currently fulyl opque over the entire gradient it occupies */ + o = (Evas_Object_Gradient *)(obj->object_data); + return o->gradient_opaque; +} diff --git a/legacy/evas/src/lib/canvas/evas_object_image.c b/legacy/evas/src/lib/canvas/evas_object_image.c new file mode 100644 index 0000000000..303a8c368b --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_object_image.c @@ -0,0 +1,1234 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +/* private magic number for image objects */ +static const char o_type[] = "image"; + +/* private struct for rectangle object internal data */ +typedef struct _Evas_Object_Image Evas_Object_Image; + +struct _Evas_Object_Image +{ + DATA32 magic; + + struct { + struct { + double x, y, w, h; + } fill; + + struct { + int w, h; + } image; + + struct { + int l, r, t, b; + } border; + + char *file; + char *key; + + int smooth_scale : 1; + int has_alpha :1; + } cur, prev; + + int changed : 1; + + int load_error; + Evas_List *pixel_updates; + + void *engine_data; +}; + +/* private methods for image objects */ +static void evas_object_image_unload(Evas_Object *obj); +static void evas_object_image_load(Evas_Object *obj); +static double evas_object_image_figure_x_fill(Evas_Object *obj, double start, double size, double *size_ret); +static double evas_object_image_figure_y_fill(Evas_Object *obj, double start, double size, double *size_ret); + +static void evas_object_image_init(Evas_Object *obj); +static void *evas_object_image_new(void); +static void evas_object_image_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y); +static void evas_object_image_free(Evas_Object *obj); +static void evas_object_image_render_pre(Evas_Object *obj); +static void evas_object_image_render_post(Evas_Object *obj); + +static int evas_object_image_is_opaque(Evas_Object *obj); +static int evas_object_image_was_opaque(Evas_Object *obj); + +static Evas_Object_Func object_func = +{ + /* methods (compulsory) */ + evas_object_image_free, + evas_object_image_render, + evas_object_image_render_pre, + evas_object_image_render_post, + /* these are optional. NULL = nothing */ + NULL, + NULL, + NULL, + NULL, + evas_object_image_is_opaque, + evas_object_image_was_opaque, + NULL, + NULL, + NULL +}; + + +Evas_Object * +evas_object_image_add(Evas *e) +{ + Evas_Object *obj; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + obj = evas_object_new(); + evas_object_image_init(obj); + evas_object_inject(obj, e); + return obj; +} + +void +evas_object_image_file_set(Evas_Object *obj, char *file, char *key) +{ + Evas_Object_Image *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return; + MAGIC_CHECK_END(); + if ((o->cur.file) && (file) && (!strcmp(o->cur.file, file))) + { + if ((o->cur.key) && (key) && (!strcmp(o->cur.key, key))) + return; + if ((!o->cur.key) && (!key)) + return; + } + if (o->cur.file) free(o->cur.file); + if (o->cur.key) free(o->cur.key); + if (file) o->cur.file = strdup(file); + else o->cur.file = NULL; + if (key) o->cur.key = strdup(key); + else o->cur.key = NULL; + o->prev.file = NULL; + o->prev.key = NULL; + if (o->engine_data) + obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output, + o->engine_data); + o->load_error = EVAS_LOAD_ERROR_NONE; + o->cur.has_alpha = 1; + o->cur.image.w = 0; + o->cur.image.h = 0; + o->engine_data = obj->layer->evas->engine.func->image_load(obj->layer->evas->engine.data.output, + o->cur.file, + o->cur.key, + &o->load_error); + if (o->engine_data) + { + obj->layer->evas->engine.func->image_size_get(obj->layer->evas->engine.data.output, + o->engine_data, + &(o->cur.image.w), + &(o->cur.image.h)); + o->cur.has_alpha = obj->layer->evas->engine.func->image_alpha_get(obj->layer->evas->engine.data.output, + o->engine_data); + } + else + { + o->load_error = EVAS_LOAD_ERROR_GENERIC; + } + o->changed = 1; + evas_object_change(obj); +} + +void +evas_object_image_file_get(Evas_Object *obj, char **file, char **key) +{ + Evas_Object_Image *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + if (file) *file = NULL; + if (key) *key = NULL; + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + if (file) *file = NULL; + if (key) *key = NULL; + return; + MAGIC_CHECK_END(); + if (file) *file = o->cur.file; + if (key) *key = o->cur.key; +} + +void +evas_object_image_border_set(Evas_Object *obj, int l, int r, int t, int b) +{ + Evas_Object_Image *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return; + MAGIC_CHECK_END(); + if (l < 0) l = 0; + if (r < 0) r = 0; + if (t < 0) t = 0; + if (b < 0) b = 0; + if ((o->cur.border.l == l) && + (o->cur.border.r == r) && + (o->cur.border.t == t) && + (o->cur.border.b == b)) return; + o->cur.border.l = l; + o->cur.border.r = r; + o->cur.border.t = t; + o->cur.border.b = b; + o->changed = 1; + evas_object_change(obj); +} + +void +evas_object_image_border_get(Evas_Object *obj, int *l, int *r, int *t, int *b) +{ + Evas_Object_Image *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + if (l) *l = 0; + if (r) *r = 0; + if (t) *t = 0; + if (b) *b = 0; + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + if (l) *l = 0; + if (r) *r = 0; + if (t) *t = 0; + if (b) *b = 0; + return; + MAGIC_CHECK_END(); + if (l) *l = o->cur.border.l; + if (r) *r = o->cur.border.r; + if (t) *t = o->cur.border.t; + if (b) *b = o->cur.border.b; +} + +void +evas_object_image_fill_set(Evas_Object *obj, double x, double y, double w, double h) +{ + Evas_Object_Image *o; + + if (w < 0) w = -w; + if (h < 0) h = -h; + if (w == 0.0) return; + if (h == 0.0) return; + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return; + MAGIC_CHECK_END(); + if ((o->cur.fill.x == x) && + (o->cur.fill.y == y) && + (o->cur.fill.w == w) && + (o->cur.fill.h == h)) return; + o->cur.fill.x = x; + o->cur.fill.y = y; + o->cur.fill.w = w; + o->cur.fill.h = h; + o->changed = 1; + evas_object_change(obj); +} + +void +evas_object_image_fill_get(Evas_Object *obj, double *x, double *y, double *w, double *h) +{ + Evas_Object_Image *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + if (x) *x = 0; + if (y) *y = 0; + if (w) *w = 0; + if (h) *h = 0; + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + if (x) *x = 0; + if (y) *y = 0; + if (w) *w = 0; + if (h) *h = 0; + return; + MAGIC_CHECK_END(); + if (x) *x = o->cur.fill.x; + if (y) *y = o->cur.fill.y; + if (w) *w = o->cur.fill.w; + if (h) *h = o->cur.fill.h; +} + +void +evas_object_image_size_set(Evas_Object *obj, int w, int h) +{ + Evas_Object_Image *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return; + MAGIC_CHECK_END(); + if (w < 1) w = 1; + if (h < 1) h = 1; + if (w > 32768) return; + if (h > 32768) return; + if ((w == o->cur.image.w) && + (h == o->cur.image.h)) return; + o->cur.image.w = w; + o->cur.image.h = h; + if (o->engine_data) + o->engine_data = obj->layer->evas->engine.func->image_size_set(obj->layer->evas->engine.data.output, + o->engine_data, + w, h); + else + o->engine_data = obj->layer->evas->engine.func->image_new_from_copied_data(obj->layer->evas->engine.data.output, + w, h, NULL); + if (o->engine_data) + o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output, + o->engine_data, + o->cur.has_alpha); + if (o->cur.file) {free(o->cur.file); o->cur.file = NULL;} + if (o->cur.key) {free(o->cur.key); o->cur.key = NULL;} + if (o->prev.file) {free(o->prev.file); o->prev.file = NULL;} + if (o->prev.key) {free(o->prev.key); o->prev.key = NULL;} + o->changed = 1; + evas_object_change(obj); +} + +void +evas_object_image_size_get(Evas_Object *obj, int *w, int *h) +{ + Evas_Object_Image *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + if (w) *w = 0; + if (h) *h = 0; + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + if (w) *w = 0; + if (h) *h = 0; + return; + MAGIC_CHECK_END(); + if (w) *w = o->cur.image.w; + if (h) *h = o->cur.image.h; +} + +int +evas_object_image_load_error_get(Evas_Object *obj) +{ + Evas_Object_Image *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return 0; + MAGIC_CHECK_END(); + return o->load_error; +} + +void +evas_object_image_data_set(Evas_Object *obj, int *data) +{ + Evas_Object_Image *o; + void *p_data; + + if (!data) return; + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return; + MAGIC_CHECK_END(); + p_data = o->engine_data; + if (o->engine_data) + o->engine_data = obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output, + o->engine_data, + data); + if (o->engine_data) + o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output, + o->engine_data, + o->cur.has_alpha); + if (p_data != o->engine_data) + { + if (o->cur.file) {free(o->cur.file); o->cur.file = NULL;} + if (o->cur.key) {free(o->cur.key); o->cur.key = NULL;} + if (o->prev.file) {free(o->prev.file); o->prev.file = NULL;} + if (o->prev.key) {free(o->prev.key); o->prev.key = NULL;} + } + o->changed = 1; + evas_object_change(obj); +} + +int * +evas_object_image_data_get(Evas_Object *obj, int for_writing) +{ + Evas_Object_Image *o; + DATA32 *data; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return NULL; + MAGIC_CHECK_END(); + if (!o->engine_data) return NULL; + data = NULL; + o->engine_data = obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output, + o->engine_data, + for_writing, + &data); + if (o->cur.file) {free(o->cur.file); o->cur.file = NULL;} + if (o->cur.key) {free(o->cur.key); o->cur.key = NULL;} + if (o->prev.file) {free(o->prev.file); o->prev.file = NULL;} + if (o->prev.key) {free(o->prev.key); o->prev.key = NULL;} + + return data; +} + +void +evas_object_image_data_copy_set(Evas_Object *obj, int *data) +{ + Evas_Object_Image *o; + + if (!data) return; + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return; + MAGIC_CHECK_END(); + if ((o->cur.image.w <= 0) || + (o->cur.image.h <= 0)) return; + if (o->engine_data) + obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output, + o->engine_data); + o->engine_data = obj->layer->evas->engine.func->image_new_from_copied_data(obj->layer->evas->engine.data.output, + o->cur.image.w, + o->cur.image.h, + data); + if (o->engine_data) + o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output, + o->engine_data, + o->cur.has_alpha); + if (o->cur.file) {free(o->cur.file); o->cur.file = NULL;} + if (o->cur.key) {free(o->cur.key); o->cur.key = NULL;} + if (o->prev.file) {free(o->prev.file); o->prev.file = NULL;} + if (o->prev.key) {free(o->prev.key); o->prev.key = NULL;} +} + +void +evas_object_image_data_update_add(Evas_Object *obj, int x, int y, int w, int h) +{ + Evas_Object_Image *o; + Evas_Rectangle *r; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return; + MAGIC_CHECK_END(); + RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, o->cur.image.w, o->cur.image.h); + if ((w <= 0) || (h <= 0)) return; + NEW_RECT(r, x, y, w, h); + if (r) o->pixel_updates = evas_list_append(o->pixel_updates, r); + o->changed = 1; + evas_object_change(obj); +} + +void +evas_object_image_alpha_set(Evas_Object *obj, int has_alpha) +{ + Evas_Object_Image *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return; + MAGIC_CHECK_END(); + if (((has_alpha) && (o->cur.has_alpha)) || + ((!has_alpha) && (!o->cur.has_alpha))) + return; + o->cur.has_alpha = has_alpha; + if (o->engine_data) + o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output, + o->engine_data, + o->cur.has_alpha); + evas_object_image_data_update_add(obj, 0, 0, o->cur.image.w, o->cur.image.h); + if (o->cur.file) {free(o->cur.file); o->cur.file = NULL;} + if (o->cur.key) {free(o->cur.key); o->cur.key = NULL;} + if (o->prev.file) {free(o->prev.file); o->prev.file = NULL;} + if (o->prev.key) {free(o->prev.key); o->prev.key = NULL;} +} + +int +evas_object_image_alpha_get(Evas_Object *obj) +{ + Evas_Object_Image *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return 0; + MAGIC_CHECK_END(); + return o->cur.has_alpha; +} + +void +evas_object_image_smooth_scale_set(Evas_Object *obj, int smooth_scale) +{ + Evas_Object_Image *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return; + MAGIC_CHECK_END(); + if (((smooth_scale) && (o->cur.smooth_scale)) || + ((!smooth_scale) && (!o->cur.smooth_scale))) + return; + o->cur.smooth_scale = smooth_scale; + evas_object_image_data_update_add(obj, 0, 0, o->cur.image.w, o->cur.image.h); +} + +int +evas_object_image_smooth_scale_get(Evas_Object *obj) +{ + Evas_Object_Image *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return 0; + MAGIC_CHECK_END(); + return o->cur.smooth_scale; +} + +void +evas_object_image_reload(Evas_Object *obj) +{ + Evas_Object_Image *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return; + MAGIC_CHECK_END(); + evas_object_image_unload(obj); + evas_object_image_cache_flush(obj->layer->evas); + evas_object_image_load(obj); + o->changed = 1; + evas_object_change(obj); +} + + + +void +evas_object_image_cache_flush(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + + e->engine.func->image_cache_flush(e->engine.data.output); +} + +void +evas_object_image_cache_reload(Evas *e) +{ + Evas_Object_List *l; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + + evas_object_image_cache_flush(e); + for (l = (Evas_Object_List *)e->layers; l; l = l->next) + { + Evas_Layer *layer; + Evas_Object_List *l2; + + layer = (Evas_Layer *)l; + for (l2 = (Evas_Object_List *)layer->objects; l2; l2 = l2->next) + { + Evas_Object *obj; + Evas_Object_Image *o; + + obj = (Evas_Object *)l2; + o = (Evas_Object_Image *)(obj->object_data); + if (o->magic == MAGIC_OBJ_IMAGE) + { + evas_object_image_unload(obj); + } + } + } + evas_object_image_cache_flush(e); + for (l = (Evas_Object_List *)e->layers; l; l = l->next) + { + Evas_Layer *layer; + Evas_Object_List *l2; + + layer = (Evas_Layer *)l; + for (l2 = (Evas_Object_List *)layer->objects; l2; l2 = l2->next) + { + Evas_Object *obj; + Evas_Object_Image *o; + + obj = (Evas_Object *)l2; + o = (Evas_Object_Image *)(obj->object_data); + if (o->magic == MAGIC_OBJ_IMAGE) + { + evas_object_image_load(obj); + o->changed = 1; + evas_object_change(obj); + } + } + } + evas_object_image_cache_flush(e); +} + +void +evas_object_image_cache_set(Evas *e, int size) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + + if (size < 0) size = 0; + e->engine.func->image_cache_set(e->engine.data.output, size); +} + +int +evas_object_image_cache_get(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return 0; + MAGIC_CHECK_END(); + + return e->engine.func->image_cache_get(e->engine.data.output); +} + + + + + + + + + +/* all nice and private */ + +static void +evas_object_image_unload(Evas_Object *obj) +{ + Evas_Object_Image *o; + + o = (Evas_Object_Image *)(obj->object_data); + + if (!o->cur.file) return; + if (o->engine_data) + o->engine_data = obj->layer->evas->engine.func->image_dirty_region(obj->layer->evas->engine.data.output, + o->engine_data, + 0, 0, + o->cur.image.w, o->cur.image.h); + if (o->engine_data) + obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output, + o->engine_data); + o->engine_data = NULL; + o->load_error = EVAS_LOAD_ERROR_NONE; + o->cur.has_alpha = 1; + o->cur.image.w = 0; + o->cur.image.h = 0; +} + +static void +evas_object_image_load(Evas_Object *obj) +{ + Evas_Object_Image *o; + + o = (Evas_Object_Image *)(obj->object_data); + + o->engine_data = obj->layer->evas->engine.func->image_load(obj->layer->evas->engine.data.output, + o->cur.file, + o->cur.key, + &o->load_error); + if (o->engine_data) + { + obj->layer->evas->engine.func->image_size_get(obj->layer->evas->engine.data.output, + o->engine_data, + &(o->cur.image.w), + &(o->cur.image.h)); + o->cur.has_alpha = obj->layer->evas->engine.func->image_alpha_get(obj->layer->evas->engine.data.output, + o->engine_data); + } + else + { + o->load_error = EVAS_LOAD_ERROR_GENERIC; + } +} + +static double +evas_object_image_figure_x_fill(Evas_Object *obj, double start, double size, double *size_ret) +{ + double w; + + w = ((size * obj->layer->evas->output.w) / + (double)obj->layer->evas->viewport.w); + if (start > 0) + { + while (start - size > 0) start -= size; + } + else if (start < 0) + { + while (start < 0) start += size; + } + start = ((start * obj->layer->evas->output.w) / + (double)obj->layer->evas->viewport.w); + *size_ret = w; + return start; +} + +static double +evas_object_image_figure_y_fill(Evas_Object *obj, double start, double size, double *size_ret) +{ + double h; + + h = ((size * obj->layer->evas->output.h) / + (double)obj->layer->evas->viewport.h); + if (start > 0) + { + while (start - size > 0) start -= size; + } + else if (start < 0) + { + while (start < 0) start += size; + } + start = ((start * obj->layer->evas->output.h) / + (double)obj->layer->evas->viewport.h); + *size_ret = h; + return start; +} + +static void +evas_object_image_init(Evas_Object *obj) +{ + /* alloc image ob, setup methods and default values */ + obj->object_data = evas_object_image_new(); + /* set up default settings for this kind of object */ + obj->cur.color.r = 255; + obj->cur.color.g = 255; + obj->cur.color.b = 255; + obj->cur.color.a = 255; + obj->cur.geometry.x = 0.0; + obj->cur.geometry.y = 0.0; + obj->cur.geometry.w = 32.0; + obj->cur.geometry.h = 32.0; + obj->cur.layer = 0; + /* set up object-specific settings */ + obj->prev = obj->cur; + /* set up methods (compulsory) */ + obj->func = &object_func; + obj->type = o_type; +} + +static void * +evas_object_image_new(void) +{ + Evas_Object_Image *o; + + /* alloc obj private data */ + o = calloc(1, sizeof(Evas_Object_Image)); + o->magic = MAGIC_OBJ_IMAGE; + o->cur.fill.w = 32.0; + o->cur.fill.h = 32.0; + o->cur.smooth_scale = 1; + o->prev = o->cur; + return o; +} + +static void +evas_object_image_free(Evas_Object *obj) +{ + Evas_Object_Image *o; + + /* frees private object data. very simple here */ + o = (Evas_Object_Image *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); + return; + MAGIC_CHECK_END(); + /* free obj */ + if (o->cur.file) free(o->cur.file); + if (o->cur.key) free(o->cur.key); + if (o->engine_data) + obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output, + o->engine_data); + o->magic = 0; + while (o->pixel_updates) + { + Evas_Rectangle *r; + + r = (Evas_Rectangle *)o->pixel_updates->data; + o->pixel_updates = evas_list_remove(o->pixel_updates, r); + free(r); + } + free(o); +} + +static void +evas_object_image_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y) +{ + Evas_Object_Image *o; + + /* render object to surface with context, and offxet by x,y */ + o = (Evas_Object_Image *)(obj->object_data); + obj->layer->evas->engine.func->context_color_set(output, + context, + 255, 255, 255, 255); + + if ((obj->cur.cache.clip.r == 255) && + (obj->cur.cache.clip.g == 255) && + (obj->cur.cache.clip.b == 255) && + (obj->cur.cache.clip.a == 255)) + { + obj->layer->evas->engine.func->context_multiplier_unset(output, + context); + } + else + obj->layer->evas->engine.func->context_multiplier_set(output, + context, + obj->cur.cache.clip.r, + obj->cur.cache.clip.g, + obj->cur.cache.clip.b, + obj->cur.cache.clip.a); + if (o->engine_data) + { + double idw, idh, idx, idy; + int ix, iy, iw, ih; + + idx = evas_object_image_figure_x_fill(obj, o->cur.fill.x, o->cur.fill.w, &idw); + idy = evas_object_image_figure_y_fill(obj, o->cur.fill.y, o->cur.fill.h, &idh); + if (idw < 1.0) idw = 1.0; + if (idh < 1.0) idh = 1.0; + if (idx > 0.0) idx -= idw; + if (idy > 0.0) idy -= idh; + while (idx < (double)obj->cur.cache.geometry.w) + { + double ydy; + + ydy = idy; + ix = idx; + iw = ((int)(idx + idw)) - ix; + while (idy < (double)obj->cur.cache.geometry.h) + { + iy = idy; + ih = ((int)(idy + idh)) - iy; + if ((o->cur.border.l == 0) && + (o->cur.border.r == 0) && + (o->cur.border.t == 0) && + (o->cur.border.b == 0)) + obj->layer->evas->engine.func->image_draw(output, + context, + surface, + o->engine_data, + 0, 0, + o->cur.image.w, + o->cur.image.h, + obj->cur.cache.geometry.x + ix + x, + obj->cur.cache.geometry.y + iy + y, + iw, ih, + o->cur.smooth_scale); + else + { + int inx, iny, inw, inh, outx, outy, outw, outh; + int bl, br, bt, bb; + int imw, imh, ox, oy; + + ox = obj->cur.cache.geometry.x + ix + x; + oy = obj->cur.cache.geometry.y + iy + y; + imw = o->cur.image.w; + imh = o->cur.image.h; + bl = o->cur.border.l; + br = o->cur.border.r; + bt = o->cur.border.t; + bb = o->cur.border.b; + if ((bl + br) > iw) + { + bl = iw / 2; + br = iw - bl; + } + if ((bl + br) > imw) + { + bl = imw / 2; + br = imw - bl; + } + if ((bt + bb) > ih) + { + bt = ih / 2; + bb = ih - bt; + } + if ((bt + bb) > imh) + { + bt = imh / 2; + bb = imh - bt; + } + + inx = 0; iny = 0; + inw = bl; inh = bt; + outx = ox; outy = oy; + outw = bl; outh = bt; + obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale); + inx = bl; iny = 0; + inw = imw - bl - br; inh = bt; + outx = ox + bl; outy = oy; + outw = iw - bl - br; outh = bt; + obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale); + inx = imw - br; iny = 0; + inw = br; inh = bt; + outx = ox + iw - br; outy = oy; + outw = br; outh = bt; + obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale); + + inx = 0; iny = bt; + inw = bl; inh = imh - bt - bb; + outx = ox; outy = oy + bt; + outw = bl; outh = ih - bt - bb; + obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale); + inx = bl; iny = bt; + inw = imw - bl - br; inh = imh - bt - bb; + outx = ox + bl; outy = oy + bt; + outw = iw - bl - br; outh = ih - bt - bb; + obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale); + inx = imw - br; iny = bt; + inw = br; inh = imh - bt - bb; + outx = ox + iw - br; outy = oy + bt; + outw = br; outh = ih - bt - bb; + obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale); + + inx = 0; iny = imh - bb; + inw = bl; inh = bb; + outx = ox; outy = oy + ih - bb; + outw = bl; outh = bb; + obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale); + inx = bl; iny = imh - bb; + inw = imw - bl - br; inh = bb; + outx = ox + bl; outy = oy + ih - bb; + outw = iw - bl - br; outh = bb; + obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale); + inx = imw - br; iny = imh - bb; + inw = br; inh = bb; + outx = ox + iw - br; outy = oy + ih - bb; + outw = br; outh = bb; + obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale); + } + idy += idh; + } + idx += idw; + idy = ydy; + } + } +} + +static void +evas_object_image_render_pre(Evas_Object *obj) +{ + Evas_List *updates = NULL; + Evas_Object_Image *o; + int is_v, was_v; + + /* dont pre-render the obj twice! */ + if (obj->pre_render_done) return; + obj->pre_render_done = 1; + /* pre-render phase. this does anything an object needs to do just before */ + /* rendering. this could mean loading the image data, retrieving it from */ + /* elsewhere, decoding video etc. */ + /* then when this is done the object needs to figure if it changed and */ + /* if so what and where and add thr appropriate redraw rectangles */ + o = (Evas_Object_Image *)(obj->object_data); + /* if someone is clipping this obj - go calculate the clipper */ + if (obj->cur.clipper) + { + evas_object_clip_recalc(obj->cur.clipper); + obj->cur.clipper->func->render_pre(obj->cur.clipper); + } + /* now figure what changed and add draw rects */ + /* if it just became visible or invisible */ + is_v = evas_object_is_visible(obj); + was_v = evas_object_was_visible(obj); + if (is_v != was_v) + { + updates = evas_object_render_pre_visible_change(updates, obj, is_v, was_v); + goto done; + } + /* its not visible - we accounted for it appearing or not so just abort */ + if (!is_v) goto done; + /* clipper changed this is in addition to anything else for obj */ + updates = evas_object_render_pre_clipper_change(updates, obj); + /* if we restacked (layer or just within a layer) and dont clip anyone */ + if (obj->restack) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* if it changed color */ + if ((obj->cur.color.r != obj->prev.color.r) || + (obj->cur.color.g != obj->prev.color.g) || + (obj->cur.color.b != obj->prev.color.b) || + (obj->cur.color.a != obj->prev.color.a)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + if (o->changed) + { + if (((o->cur.file) && (!o->prev.file)) || + ((!o->cur.file) && (o->prev.file)) || + (((o->cur.file) && (o->prev.file) && (strcmp(o->cur.file, o->prev.file)))) || + ((o->cur.key) && (!o->prev.key)) || + ((!o->cur.key) && (o->prev.key)) || + (((o->cur.key) && (o->prev.key) && (strcmp(o->cur.key, o->prev.key)))) + ) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + if ((o->cur.image.w != o->prev.image.w) || + (o->cur.image.h != o->prev.image.h) || + (o->cur.has_alpha != o->prev.has_alpha) || + (o->cur.smooth_scale != o->prev.smooth_scale)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + if ((o->cur.border.l != o->prev.border.l) || + (o->cur.border.r != o->prev.border.r) || + (o->cur.border.t != o->prev.border.t) || + (o->cur.border.b != o->prev.border.b)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + } + /* if it changed geometry - and obviously not visibility or color */ + /* caluclate differences since we have a constant color fill */ + /* we really only need to update the differences */ + if (((obj->cur.geometry.x != obj->prev.geometry.x) || + (obj->cur.geometry.y != obj->prev.geometry.y) || + (obj->cur.geometry.w != obj->prev.geometry.w) || + (obj->cur.geometry.h != obj->prev.geometry.h)) && + (o->cur.fill.w == o->prev.fill.w) && + (o->cur.fill.h == o->prev.fill.h) && + ((o->cur.fill.x + obj->cur.geometry.x) == (o->prev.fill.x + obj->prev.geometry.x)) && + ((o->cur.fill.y + obj->cur.geometry.y) == (o->prev.fill.y + obj->prev.geometry.y)) && + (!o->pixel_updates) + ) + { + Evas_Rectangle *r; + Evas_List *rl; + + rl = evas_rects_return_difference_rects(obj->cur.cache.geometry.x, + obj->cur.cache.geometry.y, + obj->cur.cache.geometry.w, + obj->cur.cache.geometry.h, + obj->prev.cache.geometry.x, + obj->prev.cache.geometry.y, + obj->prev.cache.geometry.w, + obj->prev.cache.geometry.h); + while (rl) + { + r = rl->data; + rl = evas_list_remove(rl, r); + updates = evas_list_append(updates, r); + } + goto done; + } + if (((obj->cur.geometry.x != obj->prev.geometry.x) || + (obj->cur.geometry.y != obj->prev.geometry.y) || + (obj->cur.geometry.w != obj->prev.geometry.w) || + (obj->cur.geometry.h != obj->prev.geometry.h)) + ) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + if (o->changed) + { + if ((o->cur.fill.x != o->prev.fill.x) || + (o->cur.fill.y != o->prev.fill.y) || + (o->cur.fill.w != o->prev.fill.w) || + (o->cur.fill.h != o->prev.fill.h)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + if ((o->cur.border.l == 0) && + (o->cur.border.r == 0) && + (o->cur.border.t == 0) && + (o->cur.border.b == 0)) + { + while (o->pixel_updates) + { + Evas_Rectangle *r, *rr; + double idw, idh, idx, idy; + int x, y, w, h; + + rr = o->pixel_updates->data; + o->pixel_updates = evas_list_remove(o->pixel_updates, rr); + idx = evas_object_image_figure_x_fill(obj, o->cur.fill.x, o->cur.fill.w, &idw); + idy = evas_object_image_figure_y_fill(obj, o->cur.fill.y, o->cur.fill.h, &idh); + + if (idw < 1.0) idw = 1.0; + if (idh < 1.0) idh = 1.0; + if (idx > 0) idx -= idw; + if (idy > 0) idy -= idh; + while (idx < obj->cur.cache.geometry.w) + { + double ydy; + + ydy = idy; + x = idx; + w = ((int)(idx + idw)) - x; + while (idy < obj->cur.cache.geometry.h) + { + y = idy; + h = ((int)(idy + idh)) - y; + NEW_RECT(r, x, y, w, h); + r->x = ((rr->x - 1) * r->w) / o->cur.image.w; + r->y = ((rr->y - 1) * r->h) / o->cur.image.h; + r->w = ((rr->w + 2) * r->w) / o->cur.image.w; + r->h = ((rr->h + 2) * r->h) / o->cur.image.h; + r->x += obj->cur.cache.geometry.x + x; + r->y += obj->cur.cache.geometry.y + y; + if (r) updates = evas_list_append(updates, r); + idy += h; + } + idx += idw; + idy = ydy; + } + free(rr); + } + goto done; + } + else + { + if (o->pixel_updates) + { + while (o->pixel_updates) + { + Evas_Rectangle *r; + + r = (Evas_Rectangle *)o->pixel_updates->data; + o->pixel_updates = evas_list_remove(o->pixel_updates, r); + free(r); + } + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + } + } + /* it obviously didn't change - add a NO obscure - this "unupdates" this */ + /* area so if there were updates for it they get wiped. don't do it if we */ + /* arent fully opaque and we are visible */ + if (evas_object_is_visible(obj) && + evas_object_is_opaque(obj)) + obj->layer->evas->engine.func->output_redraws_rect_del(obj->layer->evas->engine.data.output, + obj->cur.cache.clip.x, + obj->cur.cache.clip.y, + obj->cur.cache.clip.w, + obj->cur.cache.clip.h); + done: + evas_object_render_pre_effect_updates(updates, obj, is_v, was_v); +} + +static void +evas_object_image_render_post(Evas_Object *obj) +{ + Evas_Object_Image *o; + + /* this moves the current data to the previous state parts of the object */ + /* in whatever way is safest for the object. also if we don't need object */ + /* data anymore we can free it if the object deems this is a good idea */ + o = (Evas_Object_Image *)(obj->object_data); + /* remove those pesky changes */ + while (obj->clip.changes) + { + Evas_Rectangle *r; + + r = (Evas_Rectangle *)obj->clip.changes->data; + obj->clip.changes = evas_list_remove(obj->clip.changes, r); + free(r); + } + while (o->pixel_updates) + { + Evas_Rectangle *r; + + r = (Evas_Rectangle *)o->pixel_updates->data; + o->pixel_updates = evas_list_remove(o->pixel_updates, r); + free(r); + } + /* move cur to prev safely for object data */ + obj->prev = obj->cur; + o->prev = o->cur; + o->changed = 0; + /* FIXME: copy strings across */ +} + +static int +evas_object_image_is_opaque(Evas_Object *obj) +{ + Evas_Object_Image *o; + + /* this returns 1 if the internal object data implies that the object is */ + /* currently fulyl opque over the entire rectangle it occupies */ + o = (Evas_Object_Image *)(obj->object_data); + if (!o->engine_data) return 0; + if (o->cur.has_alpha) return 0; + return 1; +} + +static int +evas_object_image_was_opaque(Evas_Object *obj) +{ + Evas_Object_Image *o; + + /* this returns 1 if the internal object data implies that the object was */ + /* currently fulyl opque over the entire rectangle it occupies */ + o = (Evas_Object_Image *)(obj->object_data); + if (!o->engine_data) return 0; + if (o->prev.has_alpha) return 0; + return 1; +} diff --git a/legacy/evas/src/lib/canvas/evas_object_line.c b/legacy/evas/src/lib/canvas/evas_object_line.c new file mode 100644 index 0000000000..98498c5282 --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_object_line.c @@ -0,0 +1,399 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +/* private magic number for line objects */ +static const char o_type[] = "line"; + +/* private struct for line object internal data */ +typedef struct _Evas_Object_Line Evas_Object_Line; + +struct _Evas_Object_Line +{ + DATA32 magic; + struct { + struct { + int x1, y1, x2, y2; + struct { + double w, h; + } object; + } cache; + double x1, y1, x2, y2; + } cur, prev; + int changed : 1; + + void *engine_data; +}; + +/* private methods for line objects */ +static void evas_object_line_init(Evas_Object *obj); +static void *evas_object_line_new(void); +static void evas_object_line_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y); +static void evas_object_line_free(Evas_Object *obj); +static void evas_object_line_render_pre(Evas_Object *obj); +static void evas_object_line_render_post(Evas_Object *obj); + +static int evas_object_line_is_opaque(Evas_Object *obj); +static int evas_object_line_was_opaque(Evas_Object *obj); +static int evas_object_line_is_inside(Evas_Object *obj, double x, double y); +static int evas_object_line_was_inside(Evas_Object *obj, double x, double y); +static void evas_object_line_coords_recalc(Evas_Object *obj); + +static Evas_Object_Func object_func = +{ + /* methods (compulsory) */ + evas_object_line_free, + evas_object_line_render, + evas_object_line_render_pre, + evas_object_line_render_post, + /* these are optional. NULL = nothing */ + NULL, + NULL, + NULL, + NULL, + evas_object_line_is_opaque, + evas_object_line_was_opaque, + evas_object_line_is_inside, + evas_object_line_was_inside, + evas_object_line_coords_recalc +}; + +/* the actual api call to add a rect */ +/* it has no other api calls as all properties are standard */ +Evas_Object * +evas_object_line_add(Evas *e) +{ + Evas_Object *obj; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + obj = evas_object_new(); + evas_object_line_init(obj); + evas_object_inject(obj, e); + return obj; +} + +void +evas_object_line_xy_set(Evas_Object *obj, double x1, double y1, double x2, double y2) +{ + Evas_Object_Line *o; + double min_x, max_x, min_y, max_y; + int is, was; + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Line *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Line, MAGIC_OBJ_LINE); + return; + MAGIC_CHECK_END(); + if ((x1 == o->cur.x1) && (y1 == o->cur.y1) && + (x2 == o->cur.x2) && (y2 == o->cur.y2)) return; + was = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + if (x1 < x2) + { + min_x = x1; + max_x = x2; + } + else + { + min_x = x2; + max_x = x1; + } + if (y1 < y2) + { + min_y = y1; + max_y = y2; + } + else + { + min_y = y2; + max_y = y1; + } + obj->cur.geometry.x = min_x; + obj->cur.geometry.y = min_y; + obj->cur.geometry.w = max_x - min_x + 2.0; + obj->cur.geometry.h = max_y - min_y + 2.0; + obj->cur.cache.geometry.validity = 0; + o->cur.x1 = x1 - min_x; + o->cur.y1 = y1 - min_y; + o->cur.x2 = x2 - min_x; + o->cur.y2 = y2 - min_y; + o->changed = 1; + evas_object_change(obj); + evas_object_coords_recalc(obj); + is = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + if ((is ^ was) && obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); +} + +void +evas_object_line_xy_get(Evas_Object *obj, double *x1, double *y1, double *x2, double *y2) +{ + Evas_Object_Line *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + if (x1) *x1 = 0.0; + if (y1) *y1 = 0.0; + if (x2) *x2 = 0.0; + if (y2) *y2 = 0.0; + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Line *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Line, MAGIC_OBJ_LINE); + if (x1) *x1 = 0.0; + if (y1) *y1 = 0.0; + if (x2) *x2 = 0.0; + if (y2) *y2 = 0.0; + return; + MAGIC_CHECK_END(); + if (x1) *x1 = obj->cur.geometry.x + o->cur.x1; + if (y1) *y1 = obj->cur.geometry.y + o->cur.y1; + if (x2) *x2 = obj->cur.geometry.x + o->cur.x2; + if (y2) *y2 = obj->cur.geometry.y + o->cur.y2; +} + + + +/* all nice and private */ +static void +evas_object_line_init(Evas_Object *obj) +{ + /* alloc image ob, setup methods and default values */ + obj->object_data = evas_object_line_new(); + /* set up default settings for this kind of object */ + obj->cur.color.r = 255; + obj->cur.color.g = 255; + obj->cur.color.b = 255; + obj->cur.color.a = 255; + obj->cur.geometry.x = 0.0; + obj->cur.geometry.y = 0.0; + obj->cur.geometry.w = 32.0; + obj->cur.geometry.h = 32.0; + obj->cur.layer = 0; + /* set up object-specific settings */ + obj->prev = obj->cur; + /* set up methods (compulsory) */ + obj->func = &object_func; + obj->type = o_type; +} + +static void * +evas_object_line_new(void) +{ + Evas_Object_Line *o; + + /* alloc obj private data */ + o = calloc(1, sizeof(Evas_Object_Line)); + o->magic = MAGIC_OBJ_LINE; + o->cur.x1 = 0.0; + o->cur.y1 = 0.0; + o->cur.x2 = 31.0; + o->cur.y2 = 31.0; + o->prev = o->cur; + return o; +} + +static void +evas_object_line_free(Evas_Object *obj) +{ + Evas_Object_Line *o; + + /* frees private object data. very simple here */ + o = (Evas_Object_Line *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Line, MAGIC_OBJ_LINE); + return; + MAGIC_CHECK_END(); + /* free obj */ + o->magic = 0; + free(o); +} + +static void +evas_object_line_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y) +{ + Evas_Object_Line *o; + + /* render object to surface with context, and offxet by x,y */ + o = (Evas_Object_Line *)(obj->object_data); + obj->layer->evas->engine.func->context_color_set(output, + context, + obj->cur.cache.clip.r, + obj->cur.cache.clip.g, + obj->cur.cache.clip.b, + obj->cur.cache.clip.a); + obj->layer->evas->engine.func->context_multiplier_unset(output, + context); + obj->layer->evas->engine.func->line_draw(output, + context, + surface, + o->cur.cache.x1 + x, + o->cur.cache.y1 + y, + o->cur.cache.x2 + x, + o->cur.cache.y2 + y); +} + +static void +evas_object_line_render_pre(Evas_Object *obj) +{ + Evas_List *updates = NULL; + Evas_Object_Line *o; + int is_v, was_v; + + /* dont pre-render the obj twice! */ + if (obj->pre_render_done) return; + obj->pre_render_done = 1; + /* pre-render phase. this does anything an object needs to do just before */ + /* rendering. this could mean loading the image data, retrieving it from */ + /* elsewhere, decoding video etc. */ + /* then when this is done the object needs to figure if it changed and */ + /* if so what and where and add thr appropriate redraw lines */ + o = (Evas_Object_Line *)(obj->object_data); + /* if someone is clipping this obj - go calculate the clipper */ + if (obj->cur.clipper) + { + evas_object_clip_recalc(obj->cur.clipper); + obj->cur.clipper->func->render_pre(obj->cur.clipper); + } + /* now figure what changed and add draw rects */ + /* if it just became visible or invisible */ + is_v = evas_object_is_visible(obj); + was_v = evas_object_was_visible(obj); + if (is_v != was_v) + { + updates = evas_object_render_pre_visible_change(updates, obj, is_v, was_v); + goto done; + } + /* its not visible - we accounted for it appearing or not so just abort */ + if (!is_v) goto done; + /* clipper changed this is in addition to anything else for obj */ + updates = evas_object_render_pre_clipper_change(updates, obj); + /* if we restacked (layer or just within a layer) */ + if (obj->restack) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* if it changed color */ + if ((obj->cur.color.r != obj->prev.color.r) || + (obj->cur.color.g != obj->prev.color.g) || + (obj->cur.color.b != obj->prev.color.b) || + (obj->cur.color.a != obj->prev.color.a)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* if it changed geometry - and obviously not visibility or color */ + /* caluclate differences since we have a constant color fill */ + /* we really only need to update the differences */ + if ((obj->cur.geometry.x != obj->prev.geometry.x) || + (obj->cur.geometry.y != obj->prev.geometry.y) || + (obj->cur.geometry.w != obj->prev.geometry.w) || + (obj->cur.geometry.h != obj->prev.geometry.h) || + ((o->changed) && + ((o->cur.x1 != o->prev.x1) || + (o->cur.y1 != o->prev.y1) || + (o->cur.x2 != o->prev.x2) || + (o->cur.y2 != o->prev.y2))) + ) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + done: + evas_object_render_pre_effect_updates(updates, obj, is_v, was_v); +} + +static void +evas_object_line_render_post(Evas_Object *obj) +{ + Evas_Object_Line *o; + + /* this moves the current data to the previous state parts of the object */ + /* in whatever way is safest for the object. also if we don't need object */ + /* data anymore we can free it if the object deems this is a good idea */ + o = (Evas_Object_Line *)(obj->object_data); + /* remove those pesky changes */ + while (obj->clip.changes) + { + Evas_Rectangle *r; + + r = (Evas_Rectangle *)obj->clip.changes->data; + obj->clip.changes = evas_list_remove(obj->clip.changes, r); + free(r); + } + /* move cur to prev safely for object data */ + obj->prev = obj->cur; + o->prev = o->cur; + o->changed = 0; +} + +static int +evas_object_line_is_opaque(Evas_Object *obj) +{ + Evas_Object_Line *o; + + /* this returns 1 if the internal object data implies that the object is */ + /* currently fulyl opque over the entire line it occupies */ + o = (Evas_Object_Line *)(obj->object_data); + return 0; +} + +static int +evas_object_line_was_opaque(Evas_Object *obj) +{ + Evas_Object_Line *o; + + /* this returns 1 if the internal object data implies that the object was */ + /* currently fulyl opque over the entire line it occupies */ + o = (Evas_Object_Line *)(obj->object_data); + return 0; +} + +static int +evas_object_line_is_inside(Evas_Object *obj, double x, double y) +{ + Evas_Object_Line *o; + + /* this returns 1 if the canvas co-ordinates are inside the object based */ + /* on object private data. not much use for rects, but for polys images */ + /* and other complex objects it might be */ + o = (Evas_Object_Line *)(obj->object_data); + return 1; + x = 0; + y = 0; +} + +static int +evas_object_line_was_inside(Evas_Object *obj, double x, double y) +{ + Evas_Object_Line *o; + + /* this returns 1 if the canvas co-ordinates were inside the object based */ + /* on object private data. not much use for rects, but for polys images */ + /* and other complex objects it might be */ + o = (Evas_Object_Line *)(obj->object_data); + return 1; + x = 0; + y = 0; +} + +static void +evas_object_line_coords_recalc(Evas_Object *obj) +{ + Evas_Object_Line *o; + + o = (Evas_Object_Line *)(obj->object_data); + o->cur.cache.x1 = evas_coord_world_x_to_screen(obj->layer->evas, obj->cur.geometry.x + o->cur.x1); + o->cur.cache.y1 = evas_coord_world_y_to_screen(obj->layer->evas, obj->cur.geometry.y + o->cur.y1); + o->cur.cache.x2 = evas_coord_world_x_to_screen(obj->layer->evas, obj->cur.geometry.x + o->cur.x2); + o->cur.cache.y2 = evas_coord_world_y_to_screen(obj->layer->evas, obj->cur.geometry.y + o->cur.y2); + o->cur.cache.object.w = obj->cur.geometry.w; + o->cur.cache.object.h = obj->cur.geometry.h; +} diff --git a/legacy/evas/src/lib/canvas/evas_object_main.c b/legacy/evas/src/lib/canvas/evas_object_main.c new file mode 100644 index 0000000000..b61c2466b8 --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_object_main.c @@ -0,0 +1,833 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +/* evas internal stuff */ +Evas_Object * +evas_object_new(void) +{ + Evas_Object *obj; + + obj = calloc(1, sizeof(Evas_Object)); + if (!obj) return NULL; + + obj->magic = MAGIC_OBJ; + + return obj; +} + +void +evas_object_free(Evas_Object *obj, int clean_layer) +{ + evas_object_event_callback_call(obj, EVAS_CALLBACK_FREE, NULL); + evas_object_smart_cleanup(obj); + obj->func->free(obj); + if (obj->name) + evas_object_name_set(obj, NULL); + evas_object_release(obj, clean_layer); + if (obj->name) + { + free(obj->name); + obj->name = NULL; + } + if (obj->clip.clipees) + evas_list_free(obj->clip.clipees); + while (obj->clip.changes) + { + Evas_Rectangle *r; + + r = (Evas_Rectangle *)obj->clip.changes->data; + obj->clip.changes = evas_list_remove(obj->clip.changes, r); + free(r); + } + while (obj->callbacks.in) + { + Evas_Func_Node *fn; + + fn = (Evas_Func_Node *)obj->callbacks.in; + obj->callbacks.in = evas_object_list_remove(obj->callbacks.in, fn); + free(fn); + } + while (obj->callbacks.out) + { + Evas_Func_Node *fn; + + fn = (Evas_Func_Node *)obj->callbacks.out; + obj->callbacks.out = evas_object_list_remove(obj->callbacks.out, fn); + free(fn); + } + while (obj->callbacks.down) + { + Evas_Func_Node *fn; + + fn = (Evas_Func_Node *)obj->callbacks.down; + obj->callbacks.down = evas_object_list_remove(obj->callbacks.down, fn); + free(fn); + } + while (obj->callbacks.up) + { + Evas_Func_Node *fn; + + fn = (Evas_Func_Node *)obj->callbacks.up; + obj->callbacks.up = evas_object_list_remove(obj->callbacks.up, fn); + free(fn); + } + while (obj->callbacks.move) + { + Evas_Func_Node *fn; + + fn = (Evas_Func_Node *)obj->callbacks.move; + obj->callbacks.move = evas_object_list_remove(obj->callbacks.move, fn); + free(fn); + } + while (obj->callbacks.free) + { + Evas_Func_Node *fn; + + fn = (Evas_Func_Node *)obj->callbacks.free; + obj->callbacks.free = evas_object_list_remove(obj->callbacks.free, fn); + free(fn); + } + while (obj->data.elements) + { + Evas_Data_Node *node; + + node = obj->data.elements->data; + obj->data.elements = evas_list_remove(obj->data.elements, node); + free(node->key); + free(node); + } + obj->magic = 0; + free(obj); +} + +void +evas_object_change(Evas_Object *obj) +{ + Evas_List *l; + + if (obj->smart.smart) return; + if (!((obj->cur.visible != obj->prev.visible) || (obj->cur.visible))) + return; + if (obj->changed) return; + obj->changed = 1; + obj->layer->evas->changed = 1; + /* set changed flag on all objects this one clips too */ + for (l = obj->clip.clipees; l; l = l->next) + { + Evas_Object *o; + + o = (Evas_Object *)l->data; + evas_object_change(o); + } +} + +Evas_List * +evas_object_render_pre_visible_change(Evas_List *updates, Evas_Object *obj, int is_v, int was_v) +{ + Evas_Rectangle *r; + + if (obj->smart.smart) return updates; + if (is_v == was_v) return updates; + if (is_v) + { + NEW_RECT(r, + obj->cur.cache.clip.x, + obj->cur.cache.clip.y, + obj->cur.cache.clip.w, + obj->cur.cache.clip.h); + if (r) updates = evas_list_append(updates, r); + } + else + { + NEW_RECT(r, + obj->prev.cache.clip.x, + obj->prev.cache.clip.y, + obj->prev.cache.clip.w, + obj->prev.cache.clip.h); + if (r) updates = evas_list_append(updates, r); + } + return updates; +} + +Evas_List * +evas_object_render_pre_clipper_change(Evas_List *updates, Evas_Object *obj) +{ + Evas_Rectangle *r; + Evas_List *rl; + + if (obj->smart.smart) return updates; + if (obj->cur.clipper == obj->prev.clipper) return updates; + if ((obj->cur.clipper) && (obj->prev.clipper)) + { + /* get difference rects between clippers */ + rl = evas_rects_return_difference_rects(obj->cur.clipper->cur.cache.clip.x, + obj->cur.clipper->cur.cache.clip.y, + obj->cur.clipper->cur.cache.clip.w, + obj->cur.clipper->cur.cache.clip.h, + obj->prev.clipper->prev.cache.clip.x, + obj->prev.clipper->prev.cache.clip.y, + obj->prev.clipper->prev.cache.clip.w, + obj->prev.clipper->prev.cache.clip.h); + /* go thru every difference rect */ + while (rl) + { + r = rl->data; + rl = evas_list_remove(rl, r); + updates = evas_list_append(updates, r); + } + } + else if (obj->cur.clipper) + { + rl = evas_rects_return_difference_rects(obj->cur.cache.geometry.x, + obj->cur.cache.geometry.y, + obj->cur.cache.geometry.w, + obj->cur.cache.geometry.h, + obj->cur.clipper->cur.cache.clip.x, + obj->cur.clipper->cur.cache.clip.y, + obj->cur.clipper->cur.cache.clip.w, + obj->cur.clipper->cur.cache.clip.h); + while (rl) + { + r = rl->data; + rl = evas_list_remove(rl, r); + updates = evas_list_append(updates, r); + } + } + else if (obj->prev.clipper) + { + rl = evas_rects_return_difference_rects(obj->prev.cache.geometry.x, + obj->prev.cache.geometry.y, + obj->prev.cache.geometry.w, + obj->prev.cache.geometry.h, + obj->prev.clipper->prev.cache.clip.x, + obj->prev.clipper->prev.cache.clip.y, + obj->prev.clipper->prev.cache.clip.w, + obj->prev.clipper->prev.cache.clip.h); + while (rl) + { + r = rl->data; + rl = evas_list_remove(rl, r); + updates = evas_list_append(updates, r); + } + } + return updates; +} + +Evas_List * +evas_object_render_pre_prev_cur_add(Evas_List *updates, Evas_Object *obj) +{ + Evas_Rectangle *r; + + NEW_RECT(r, + obj->cur.cache.geometry.x, + obj->cur.cache.geometry.y, + obj->cur.cache.geometry.w, + obj->cur.cache.geometry.h); + if (r) updates = evas_list_append(updates, r); + NEW_RECT(r, + obj->prev.cache.geometry.x, + obj->prev.cache.geometry.y, + obj->prev.cache.geometry.w, + obj->prev.cache.geometry.h); + if (r) updates = evas_list_append(updates, r); + return updates; +} + +void +evas_object_render_pre_effect_updates(Evas_List *updates, Evas_Object *obj, int is_v, int was_v) +{ + Evas_Rectangle *r; + int x, y, w, h; + Evas_Object *clipper; + Evas_List *l; + + if (obj->smart.smart) return; + /* FIXME: was_v isn't used... why? */ + was_v = 0; + if (!obj->clip.clipees) + { + while (updates) + { + r = (Evas_Rectangle *)(updates->data); + updates = evas_list_remove(updates, r); + /* get updates and clip to current clip */ + x = r->x; y = r->y; w = r->w; h = r->h; + RECTS_CLIP_TO_RECT(x, y, w, h, + obj->cur.cache.clip.x, + obj->cur.cache.clip.y, + obj->cur.cache.clip.w, + obj->cur.cache.clip.h); + if ((w > 0) && (h > 0)) + obj->layer->evas->engine.func->output_redraws_rect_add(obj->layer->evas->engine.data.output, + x, y, w, h); + /* get updates and clip to previous clip */ + x = r->x; y = r->y; w = r->w; h = r->h; + RECTS_CLIP_TO_RECT(x, y, w, h, + obj->prev.cache.clip.x, + obj->prev.cache.clip.y, + obj->prev.cache.clip.w, + obj->prev.cache.clip.h); + if ((w > 0) && (h > 0)) + obj->layer->evas->engine.func->output_redraws_rect_add(obj->layer->evas->engine.data.output, + x, y, w, h); + free(r); + r = NULL; + } + /* if the object is actually visible, take any parent clip changes */ + if (is_v) + { + clipper = obj->cur.clipper; + while (clipper) + { + for (l = clipper->clip.changes; l; l = l->next) + { + r = (Evas_Rectangle *)(l->data); + /* get updates and clip to current clip */ + x = r->x; y = r->y; w = r->w; h = r->h; + RECTS_CLIP_TO_RECT(x, y, w, h, + obj->cur.cache.clip.x, + obj->cur.cache.clip.y, + obj->cur.cache.clip.w, + obj->cur.cache.clip.h); + if ((w > 0) && (h > 0)) + obj->layer->evas->engine.func->output_redraws_rect_add(obj->layer->evas->engine.data.output, + x, y, w, h); + /* get updates and clip to previous clip */ + x = r->x; y = r->y; w = r->w; h = r->h; + RECTS_CLIP_TO_RECT(x, y, w, h, + obj->prev.cache.clip.x, + obj->prev.cache.clip.y, + obj->prev.cache.clip.w, + obj->prev.cache.clip.h); + if ((w > 0) && (h > 0)) + obj->layer->evas->engine.func->output_redraws_rect_add(obj->layer->evas->engine.data.output, + x, y, w, h); + } + clipper = clipper->cur.clipper; + } + } + } + else + { + while (obj->clip.changes) + { + free(obj->clip.changes->data); + obj->clip.changes = evas_list_remove(obj->clip.changes, obj->clip.changes->data); + } + obj->clip.changes = updates; + } +} + +void +evas_object_coords_recalc(Evas_Object *obj) +{ + if (obj->smart.smart) return; + if (obj->cur.cache.geometry.validity == obj->layer->evas->output_validity) + return; + obj->cur.cache.geometry.x = + evas_coord_world_x_to_screen(obj->layer->evas, obj->cur.geometry.x); + obj->cur.cache.geometry.y = + evas_coord_world_y_to_screen(obj->layer->evas, obj->cur.geometry.y); + obj->cur.cache.geometry.w = + evas_coord_world_x_to_screen(obj->layer->evas, + obj->cur.geometry.x + obj->cur.geometry.w) + - obj->cur.cache.geometry.x; + obj->cur.cache.geometry.h = + evas_coord_world_x_to_screen(obj->layer->evas, + obj->cur.geometry.y + obj->cur.geometry.h) + - obj->cur.cache.geometry.y; + if (obj->func->coords_recalc) obj->func->coords_recalc(obj); + obj->cur.cache.geometry.validity = obj->layer->evas->output_validity; +} + +int +evas_object_is_active(Evas_Object *obj) +{ + if (obj->smart.smart) return 0; + if ((evas_object_is_in_output_rect(obj, 0, 0, + obj->layer->evas->output.w, + obj->layer->evas->output.h) || + evas_object_was_in_output_rect(obj, 0, 0, + obj->layer->evas->output.w, + obj->layer->evas->output.h)) && + (evas_object_is_visible(obj) || + evas_object_was_visible(obj))) + return 1; + return 0; +} + +int +evas_object_is_in_output_rect(Evas_Object *obj, int x, int y, int w, int h) +{ + if (obj->smart.smart) return 0; + /* assumes coords have been recalced */ + if ((RECTS_INTERSECT(x, y, w, h, + obj->cur.cache.clip.x, + obj->cur.cache.clip.y, + obj->cur.cache.clip.w, + obj->cur.cache.clip.h))) + return 1; + return 0; +} + +int +evas_object_was_in_output_rect(Evas_Object *obj, int x, int y, int w, int h) +{ + if (obj->smart.smart) return 0; + /* assumes coords have been recalced */ + if ((RECTS_INTERSECT(x, y, w, h, + obj->prev.cache.clip.x, + obj->prev.cache.clip.y, + obj->prev.cache.clip.w, + obj->prev.cache.clip.h))) + return 1; + return 0; +} + +int +evas_object_is_visible(Evas_Object *obj) +{ + if (obj->smart.smart) return 0; + if ((obj->cur.visible) && + (obj->cur.cache.clip.visible) && + (obj->cur.cache.clip.a > 0)) + { + if (obj->func->is_visible) + return obj->func->is_visible(obj); + return 1; + } + return 0; +} + +int +evas_object_was_visible(Evas_Object *obj) +{ + if (obj->smart.smart) return 0; + if ((obj->prev.visible) && + (obj->prev.cache.clip.visible) && + (obj->prev.cache.clip.a > 0)) + { + if (obj->func->was_visible) + return obj->func->was_visible(obj); + return 1; + } + return 0; +} + +int +evas_object_is_opaque(Evas_Object *obj) +{ + if (obj->smart.smart) return 0; + if (obj->cur.cache.clip.a == 255) + { + if (obj->func->is_opaque) + return obj->func->is_opaque(obj); + return 1; + } + return 0; +} + +int +evas_object_was_opaque(Evas_Object *obj) +{ + if (obj->smart.smart) return 0; + if (obj->prev.cache.clip.a == 255) + { + if (obj->func->was_opaque) + return obj->func->was_opaque(obj); + return 1; + } + return 0; +} + +/* routines apps will call */ + +void +evas_object_del(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (!obj->layer) + { + evas_object_free(obj, 1); + return; + } + evas_object_hide(obj); + while (obj->clip.clipees) evas_object_clip_unset(obj->clip.clipees->data); + if (obj->cur.clipper) evas_object_clip_unset(obj); + evas_object_change(obj); + obj->delete_me = 1; + if (obj->smart.smart) evas_object_smart_del(obj); +} + +void +evas_object_move(Evas_Object *obj, double x, double y) +{ + int is, was; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (obj->smart.smart) + { + if (obj->smart.smart->func_move) + obj->smart.smart->func_move(obj, x, y); + } + if ((obj->cur.geometry.x == x) && + (obj->cur.geometry.y == y)) return; + was = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + obj->cur.geometry.x = x; + obj->cur.geometry.y = y; + obj->cur.cache.geometry.validity = 0; + evas_object_change(obj); + evas_object_recalc_clippees(obj); + if (!obj->smart.smart) + { + is = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + if ((is ^ was) && obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); + } +} + +void +evas_object_resize(Evas_Object *obj, double w, double h) +{ + int is, was; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (w < 0.0) w = 0.0; if (h < 0.0) h = 0.0; + if (obj->smart.smart) + { + if (obj->smart.smart->func_resize) + obj->smart.smart->func_resize(obj, w, h); + } + if ((obj->cur.geometry.w == w) && + (obj->cur.geometry.h == h)) return; + was = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + obj->cur.geometry.w = w; + obj->cur.geometry.h = h; + obj->cur.cache.geometry.validity = 0; + evas_object_change(obj); + evas_object_recalc_clippees(obj); + if (!obj->smart.smart) + { + is = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + if ((is ^ was) && (obj->cur.visible)) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); + } +} + +void +evas_object_geometry_get(Evas_Object *obj, double *x, double *y, double *w, double *h) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; if (h) *h = 0; + return; + MAGIC_CHECK_END(); + if (x) *x = obj->cur.geometry.x; + if (y) *y = obj->cur.geometry.y; + if (w) *w = obj->cur.geometry.w; + if (h) *h = obj->cur.geometry.h; +} + +void +evas_object_show(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (obj->smart.smart) + { + if (obj->smart.smart->func_show) + obj->smart.smart->func_show(obj); + } + if (obj->cur.visible) return; + obj->cur.visible = 1; + evas_object_change(obj); + evas_object_recalc_clippees(obj); + if (!obj->smart.smart) + { + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1)) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); + } +} + +void +evas_object_hide(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (obj->smart.smart) + { + if (obj->smart.smart->func_hide) + obj->smart.smart->func_hide(obj); + } + if (!obj->cur.visible) return; + obj->cur.visible = 0; + evas_object_change(obj); + evas_object_recalc_clippees(obj); + if (!obj->smart.smart) + { + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1)) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); +/* if ((obj->mouse_in) || (obj->mouse_grabbed)) */ + { + obj->mouse_in = 0; + obj->mouse_grabbed = 0; + obj->layer->evas->pointer.object.in = evas_list_remove(obj->layer->evas->pointer.object.in, obj); + if (obj->layer->evas->events_frozen > 0) return; + if (obj->mouse_in) + { + Evas_Event_Mouse_Out ev; + + ev.buttons = obj->layer->evas->pointer.button; + ev.output.x = obj->layer->evas->pointer.x; + ev.output.y = obj->layer->evas->pointer.y; + ev.canvas.x = obj->layer->evas->pointer.canvas_x; + ev.canvas.y = obj->layer->evas->pointer.canvas_y; + ev.data = NULL; + evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); + } + } + } +} + +int +evas_object_visible_get(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + return obj->cur.visible; +} + +void +evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (r > 255) r = 255; if (r < 0) r = 0; + if (g > 255) g = 255; if (g < 0) g = 0; + if (b > 255) b = 255; if (b < 0) b = 0; + if (a > 255) a = 255; if (a < 0) a = 0; + if (obj->smart.smart) + { + if (obj->smart.smart->func_color_set) + obj->smart.smart->func_color_set(obj, r, g, b, a); + } + if ((obj->cur.color.r == r) && + (obj->cur.color.g == g) && + (obj->cur.color.b == b) && + (obj->cur.color.a == a)) return; + obj->cur.color.r = r; + obj->cur.color.g = g; + obj->cur.color.b = b; + obj->cur.color.a = a; + if ((obj->cur.color.a == 0) && (a == 0)) return; + evas_object_change(obj); +} + +void +evas_object_color_get(Evas_Object *obj, int *r, int *g, int *b, int *a) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + if (r) *r = 0; if (g) *g = 0; if (b) *b = 0; if (a) *a = 0; + return; + MAGIC_CHECK_END(); + if (r) *r = obj->cur.color.r; + if (g) *g = obj->cur.color.g; + if (b) *b = obj->cur.color.b; + if (a) *a = obj->cur.color.a; +} + +Evas * +evas_object_evas_get(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + return obj->layer->evas; +} + +Evas_Object * +evas_object_top_at_xy_get(Evas *e, double x, double y, int include_pass_events_objects, int include_hidden_objects) +{ + Evas_Object_List *l; + int xx, yy; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + xx = evas_coord_world_x_to_screen(e, x); + yy = evas_coord_world_y_to_screen(e, y); + for (l = ((Evas_Object_List *)(e->layers))->last; l; l = l->prev) + { + Evas_Object_List *l2; + Evas_Layer *lay; + + lay = (Evas_Layer *)l; + for (l2 = ((Evas_Object_List *)(lay->objects))->last; l2; l2 = l2->prev) + { + Evas_Object *obj; + + obj = (Evas_Object *)l2; + if ((!include_pass_events_objects) && (obj->pass_events)) continue; + if ((!include_hidden_objects) && (!obj->cur.visible)) continue; + evas_object_clip_recalc(obj); + if ((evas_object_is_in_output_rect(obj, xx, yy, 1, 1)) && + (!obj->clip.clipees)) + return obj; + } + } + return NULL; +} + +Evas_Object * +evas_object_top_at_pointer_get(Evas *e) +{ + return evas_object_top_at_xy_get(e, e->pointer.canvas_x, e->pointer.canvas_y, 0, 0); +} + +Evas_Object * +evas_object_top_in_rectangle_get(Evas *e, double x, double y, double w, double h, int include_pass_events_objects, int include_hidden_objects) +{ + Evas_Object_List *l; + int xx, yy, ww, hh; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + xx = evas_coord_world_x_to_screen(e, x); + yy = evas_coord_world_y_to_screen(e, y); + ww = evas_coord_world_x_to_screen(e, w); + hh = evas_coord_world_y_to_screen(e, h); + if (ww < 1) ww = 1; + if (hh < 1) hh = 1; + for (l = ((Evas_Object_List *)(e->layers))->last; l; l = l->prev) + { + Evas_Object_List *l2; + Evas_Layer *lay; + + lay = (Evas_Layer *)l; + for (l2 = ((Evas_Object_List *)(lay->objects))->last; l2; l2 = l2->prev) + { + Evas_Object *obj; + + obj = (Evas_Object *)l2; + if ((!include_pass_events_objects) && (obj->pass_events)) continue; + if ((!include_hidden_objects) && (!obj->cur.visible)) continue; + evas_object_clip_recalc(obj); + if ((evas_object_is_in_output_rect(obj, xx, yy, ww, hh)) && + (!obj->clip.clipees)) + return obj; + } + } + return NULL; +} + +Evas_List * +evas_objects_at_xy_get(Evas *e, double x, double y, int include_pass_events_objects, int include_hidden_objects) +{ + Evas_List *in = NULL; + Evas_Object_List *l; + int xx, yy; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + xx = evas_coord_world_x_to_screen(e, x); + yy = evas_coord_world_y_to_screen(e, y); + for (l = ((Evas_Object_List *)(e->layers))->last; l; l = l->prev) + { + Evas_Object_List *l2; + Evas_Layer *lay; + + lay = (Evas_Layer *)l; + for (l2 = ((Evas_Object_List *)(lay->objects))->last; l2; l2 = l2->prev) + { + Evas_Object *obj; + + obj = (Evas_Object *)l2; + if ((!include_pass_events_objects) && (obj->pass_events)) continue; + if ((!include_hidden_objects) && (!obj->cur.visible)) continue; + evas_object_clip_recalc(obj); + if ((evas_object_is_in_output_rect(obj, xx, yy, 1, 1)) && + (!obj->clip.clipees)) + in = evas_list_prepend(in, obj); + } + } + return in; +} + +Evas_List * +evas_objects_in_rectangle_get(Evas *e, double x, double y, double w, double h, int include_pass_events_objects, int include_hidden_objects) +{ + Evas_List *in = NULL; + Evas_Object_List *l; + int xx, yy, ww, hh; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + xx = evas_coord_world_x_to_screen(e, x); + yy = evas_coord_world_y_to_screen(e, y); + ww = evas_coord_world_x_to_screen(e, w); + hh = evas_coord_world_y_to_screen(e, h); + if (ww < 1) ww = 1; + if (hh < 1) hh = 1; + for (l = ((Evas_Object_List *)(e->layers))->last; l; l = l->prev) + { + Evas_Object_List *l2; + Evas_Layer *lay; + + lay = (Evas_Layer *)l; + for (l2 = ((Evas_Object_List *)(lay->objects))->last; l2; l2 = l2->prev) + { + Evas_Object *obj; + + obj = (Evas_Object *)l2; + if ((!include_pass_events_objects) && (obj->pass_events)) continue; + if ((!include_hidden_objects) && (!obj->cur.visible)) continue; + evas_object_clip_recalc(obj); + if ((evas_object_is_in_output_rect(obj, xx, yy, ww, hh)) && + (!obj->clip.clipees)) + in = evas_list_prepend(in, obj); + } + } + return in; +} + +const char * +evas_object_type_get(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + return obj->type; +} diff --git a/legacy/evas/src/lib/canvas/evas_object_polygon.c b/legacy/evas/src/lib/canvas/evas_object_polygon.c new file mode 100644 index 0000000000..5c4724b997 --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_object_polygon.c @@ -0,0 +1,407 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +/* private magic number for polygon objects */ +static const char o_type[] = "polygon"; + +/* private struct for line object internal data */ +typedef struct _Evas_Object_Polygon Evas_Object_Polygon; +typedef struct _Evas_Polygon_Point Evas_Polygon_Point; + +struct _Evas_Object_Polygon +{ + DATA32 magic; + int changed : 1; + Evas_List *points; + + void *engine_data; +}; + +struct _Evas_Polygon_Point +{ + double x, y; +}; + +/* private methods for polygon objects */ +static void evas_object_polygon_init(Evas_Object *obj); +static void *evas_object_polygon_new(void); +static void evas_object_polygon_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y); +static void evas_object_polygon_free(Evas_Object *obj); +static void evas_object_polygon_render_pre(Evas_Object *obj); +static void evas_object_polygon_render_post(Evas_Object *obj); + +static int evas_object_polygon_is_opaque(Evas_Object *obj); +static int evas_object_polygon_was_opaque(Evas_Object *obj); +static int evas_object_polygon_is_inside(Evas_Object *obj, double x, double y); +static int evas_object_polygon_was_inside(Evas_Object *obj, double x, double y); + +static Evas_Object_Func object_func = +{ + /* methods (compulsory) */ + evas_object_polygon_free, + evas_object_polygon_render, + evas_object_polygon_render_pre, + evas_object_polygon_render_post, + /* these are optional. NULL = nothing */ + NULL, + NULL, + NULL, + NULL, + evas_object_polygon_is_opaque, + evas_object_polygon_was_opaque, + evas_object_polygon_is_inside, + evas_object_polygon_was_inside, + NULL +}; + +/* the actual api call to add a rect */ +/* it has no other api calls as all properties are standard */ +Evas_Object * +evas_object_polygon_add(Evas *e) +{ + Evas_Object *obj; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + obj = evas_object_new(); + evas_object_polygon_init(obj); + evas_object_inject(obj, e); + return obj; +} + +void +evas_object_polygon_point_add(Evas_Object *obj, double x, double y) +{ + Evas_Object_Polygon *o; + Evas_Polygon_Point *p; + double min_x, max_x, min_y, max_y; + int is, was; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Polygon *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Polygon, MAGIC_OBJ_POLYGON); + return; + MAGIC_CHECK_END(); + was = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + p = malloc(sizeof(Evas_Polygon_Point)); + if (!p) return; + p->x = x; + p->y = y; + + if (!o->points) + { + obj->cur.geometry.x = p->x; + obj->cur.geometry.y = p->y; + obj->cur.geometry.w = 2.0; + obj->cur.geometry.h = 2.0; + } + else + { + if (x < obj->cur.geometry.x) min_x = x; + else min_x = obj->cur.geometry.x; + if (x > (obj->cur.geometry.x + obj->cur.geometry.w - 2.0)) max_x = x; + else max_x = obj->cur.geometry.x + obj->cur.geometry.w - 2.0; + if (y < obj->cur.geometry.y) min_y = y; + else min_y = obj->cur.geometry.y; + if (y > (obj->cur.geometry.y + obj->cur.geometry.h - 2.0)) max_y = y; + else max_y = obj->cur.geometry.y + obj->cur.geometry.h - 2.0; + obj->cur.geometry.x = min_x; + obj->cur.geometry.y = min_y; + obj->cur.geometry.w = max_x - min_x + 2.0; + obj->cur.geometry.h = max_y - min_y + 2.0; + } + o->points = evas_list_append(o->points, p); + + obj->cur.cache.geometry.validity = 0; + o->changed = 1; + evas_object_change(obj); + evas_object_coords_recalc(obj); + is = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + if ((is ^ was) && obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); +} + +void +evas_object_polygon_points_clear(Evas_Object *obj) +{ + Evas_Object_Polygon *o; + int is, was; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Polygon *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Polygon, MAGIC_OBJ_POLYGON); + return; + MAGIC_CHECK_END(); + was = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + while (o->points) + { + free(o->points->data); + o->points = evas_list_remove(o->points, o->points->data); + } + obj->cur.geometry.w = 0; + obj->cur.geometry.h = 0; + obj->cur.cache.geometry.validity = 0; + o->changed = 1; + evas_object_change(obj); + evas_object_coords_recalc(obj); + is = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + if ((is || was) && obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); +} + + + + + +/* all nice and private */ +static void +evas_object_polygon_init(Evas_Object *obj) +{ + /* alloc image ob, setup methods and default values */ + obj->object_data = evas_object_polygon_new(); + /* set up default settings for this kind of object */ + obj->cur.color.r = 255; + obj->cur.color.g = 255; + obj->cur.color.b = 255; + obj->cur.color.a = 255; + obj->cur.geometry.x = 0.0; + obj->cur.geometry.y = 0.0; + obj->cur.geometry.w = 0.0; + obj->cur.geometry.h = 0.0; + obj->cur.layer = 0; + /* set up object-specific settings */ + obj->prev = obj->cur; + /* set up methods (compulsory) */ + obj->func = &object_func; + obj->type = o_type; +} + +static void * +evas_object_polygon_new(void) +{ + Evas_Object_Polygon *o; + + /* alloc obj private data */ + o = calloc(1, sizeof(Evas_Object_Polygon)); + o->magic = MAGIC_OBJ_POLYGON; + return o; +} + +static void +evas_object_polygon_free(Evas_Object *obj) +{ + Evas_Object_Polygon *o; + + /* frees private object data. very simple here */ + o = (Evas_Object_Polygon *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Polygon, MAGIC_OBJ_POLYGON); + return; + MAGIC_CHECK_END(); + /* free obj */ + while (o->points) + { + free(o->points->data); + o->points = evas_list_remove(o->points, o->points->data); + } + o->engine_data = obj->layer->evas->engine.func->polygon_points_clear(obj->layer->evas->engine.data.output, + obj->layer->evas->engine.data.context, + o->engine_data); + o->magic = 0; + free(o); +} + +static void +evas_object_polygon_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y) +{ + Evas_Object_Polygon *o; + Evas_List *l; + + /* render object to surface with context, and offxet by x,y */ + o = (Evas_Object_Polygon *)(obj->object_data); + obj->layer->evas->engine.func->context_color_set(output, + context, + obj->cur.cache.clip.r, + obj->cur.cache.clip.g, + obj->cur.cache.clip.b, + obj->cur.cache.clip.a); + obj->layer->evas->engine.func->context_multiplier_unset(output, + context); + o->engine_data = obj->layer->evas->engine.func->polygon_points_clear(obj->layer->evas->engine.data.output, + obj->layer->evas->engine.data.context, + o->engine_data); + for (l = o->points; l; l = l->next) + { + Evas_Polygon_Point *p; + int px, py; + + p = l->data; + px = evas_coord_world_x_to_screen(obj->layer->evas, p->x); + py = evas_coord_world_y_to_screen(obj->layer->evas, p->y); + o->engine_data = obj->layer->evas->engine.func->polygon_point_add(obj->layer->evas->engine.data.output, + obj->layer->evas->engine.data.context, + o->engine_data, + px + x, py + y); + } + if (o->engine_data) + obj->layer->evas->engine.func->polygon_draw(output, + context, + surface, + o->engine_data); +} + +static void +evas_object_polygon_render_pre(Evas_Object *obj) +{ + Evas_List *updates = NULL; + Evas_Object_Polygon *o; + int is_v, was_v; + + /* dont pre-render the obj twice! */ + if (obj->pre_render_done) return; + obj->pre_render_done = 1; + /* pre-render phase. this does anything an object needs to do just before */ + /* rendering. this could mean loading the image data, retrieving it from */ + /* elsewhere, decoding video etc. */ + /* then when this is done the object needs to figure if it changed and */ + /* if so what and where and add thr appropriate redraw lines */ + o = (Evas_Object_Polygon *)(obj->object_data); + /* if someone is clipping this obj - go calculate the clipper */ + if (obj->cur.clipper) + { + evas_object_clip_recalc(obj->cur.clipper); + obj->cur.clipper->func->render_pre(obj->cur.clipper); + } + /* now figure what changed and add draw rects */ + /* if it just became visible or invisible */ + is_v = evas_object_is_visible(obj); + was_v = evas_object_was_visible(obj); + if (is_v != was_v) + { + updates = evas_object_render_pre_visible_change(updates, obj, is_v, was_v); + goto done; + } + /* its not visible - we accounted for it appearing or not so just abort */ + if (!is_v) goto done; + /* clipper changed this is in addition to anything else for obj */ + updates = evas_object_render_pre_clipper_change(updates, obj); + /* if we restacked (layer or just within a layer) */ + if (obj->restack) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* if it changed color */ + if ((obj->cur.color.r != obj->prev.color.r) || + (obj->cur.color.g != obj->prev.color.g) || + (obj->cur.color.b != obj->prev.color.b) || + (obj->cur.color.a != obj->prev.color.a)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* if it changed geometry - and obviously not visibility or color */ + /* caluclate differences since we have a constant color fill */ + /* we really only need to update the differences */ + if ((obj->cur.geometry.x != obj->prev.geometry.x) || + (obj->cur.geometry.y != obj->prev.geometry.y) || + (obj->cur.geometry.w != obj->prev.geometry.w) || + (obj->cur.geometry.h != obj->prev.geometry.h) || + (o->changed)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + done: + evas_object_render_pre_effect_updates(updates, obj, is_v, was_v); +} + +static void +evas_object_polygon_render_post(Evas_Object *obj) +{ + Evas_Object_Polygon *o; + + /* this moves the current data to the previous state parts of the object */ + /* in whatever way is safest for the object. also if we don't need object */ + /* data anymore we can free it if the object deems this is a good idea */ + o = (Evas_Object_Polygon *)(obj->object_data); + /* remove those pesky changes */ + while (obj->clip.changes) + { + Evas_Rectangle *r; + + r = (Evas_Rectangle *)obj->clip.changes->data; + obj->clip.changes = evas_list_remove(obj->clip.changes, r); + free(r); + } + /* move cur to prev safely for object data */ + obj->prev = obj->cur; + o->changed = 0; +} + +static int +evas_object_polygon_is_opaque(Evas_Object *obj) +{ + Evas_Object_Polygon *o; + + /* this returns 1 if the internal object data implies that the object is */ + /* currently fulyl opque over the entire line it occupies */ + o = (Evas_Object_Polygon *)(obj->object_data); + return 0; +} + +static int +evas_object_polygon_was_opaque(Evas_Object *obj) +{ + Evas_Object_Polygon *o; + + /* this returns 1 if the internal object data implies that the object was */ + /* currently fulyl opque over the entire line it occupies */ + o = (Evas_Object_Polygon *)(obj->object_data); + return 0; +} + +static int +evas_object_polygon_is_inside(Evas_Object *obj, double x, double y) +{ + Evas_Object_Polygon *o; + + /* this returns 1 if the canvas co-ordinates are inside the object based */ + /* on object private data. not much use for rects, but for polys images */ + /* and other complex objects it might be */ + o = (Evas_Object_Polygon *)(obj->object_data); + return 1; + x = 0; + y = 0; +} + +static int +evas_object_polygon_was_inside(Evas_Object *obj, double x, double y) +{ + Evas_Object_Polygon *o; + + /* this returns 1 if the canvas co-ordinates were inside the object based */ + /* on object private data. not much use for rects, but for polys images */ + /* and other complex objects it might be */ + o = (Evas_Object_Polygon *)(obj->object_data); + return 1; + x = 0; + y = 0; +} diff --git a/legacy/evas/src/lib/canvas/evas_object_rectangle.c b/legacy/evas/src/lib/canvas/evas_object_rectangle.c new file mode 100644 index 0000000000..559b4c38e0 --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_object_rectangle.c @@ -0,0 +1,346 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +/* private magic number for rectangle objects */ +static const char o_type[] = "rectangle"; + +/* private struct for rectangle object internal data */ +typedef struct _Evas_Object_Rectangle Evas_Object_Rectangle; + +struct _Evas_Object_Rectangle +{ + DATA32 magic; + void *engine_data; +}; + +/* private methods for rectangle objects */ +static void evas_object_rectangle_init(Evas_Object *obj); +static void *evas_object_rectangle_new(void); +static void evas_object_rectangle_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y); +static void evas_object_rectangle_free(Evas_Object *obj); +static void evas_object_rectangle_render_pre(Evas_Object *obj); +static void evas_object_rectangle_render_post(Evas_Object *obj); + +#if 0 /* usless calls for a rect object. much more useful for images etc. */ +static void evas_object_rectangle_store(Evas_Object *obj); +static void evas_object_rectangle_unstore(Evas_Object *obj); +static int evas_object_rectangle_is_visible(Evas_Object *obj); +static int evas_object_rectangle_was_visible(Evas_Object *obj); +static int evas_object_rectangle_is_opaque(Evas_Object *obj); +static int evas_object_rectangle_was_opaque(Evas_Object *obj); +static int evas_object_rectangle_is_inside(Evas_Object *obj, double x, double y); +static int evas_object_rectangle_was_inside(Evas_Object *obj, double x, double y); +#endif + +static Evas_Object_Func object_func = +{ + /* methods (compulsory) */ + evas_object_rectangle_free, + evas_object_rectangle_render, + evas_object_rectangle_render_pre, + evas_object_rectangle_render_post, + /* these are optional. NULL = nothing */ + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; + +/* the actual api call to add a rect */ +/* it has no other api calls as all properties are standard */ +Evas_Object * +evas_object_rectangle_add(Evas *e) +{ + Evas_Object *obj; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + obj = evas_object_new(); + evas_object_rectangle_init(obj); + evas_object_inject(obj, e); + return obj; +} + + + + + + +/* all nice and private */ +static void +evas_object_rectangle_init(Evas_Object *obj) +{ + /* alloc image ob, setup methods and default values */ + obj->object_data = evas_object_rectangle_new(); + /* set up default settings for this kind of object */ + obj->cur.color.r = 255; + obj->cur.color.g = 255; + obj->cur.color.b = 255; + obj->cur.color.a = 255; + obj->cur.geometry.x = 0.0; + obj->cur.geometry.y = 0.0; + obj->cur.geometry.w = 32.0; + obj->cur.geometry.h = 32.0; + obj->cur.layer = 0; + /* set up object-specific settings */ + obj->prev = obj->cur; + /* set up methods (compulsory) */ + obj->func = &object_func; + obj->type = o_type; +} + +static void * +evas_object_rectangle_new(void) +{ + Evas_Object_Rectangle *o; + + /* alloc obj private data */ + o = calloc(1, sizeof(Evas_Object_Rectangle)); + o->magic = MAGIC_OBJ_RECTANGLE; + return o; +} + +static void +evas_object_rectangle_free(Evas_Object *obj) +{ + Evas_Object_Rectangle *o; + + /* frees private object data. very simple here */ + o = (Evas_Object_Rectangle *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Rectangle, MAGIC_OBJ_RECTANGLE); + return; + MAGIC_CHECK_END(); + /* free obj */ + o->magic = 0; + free(o); +} + +static void +evas_object_rectangle_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y) +{ + Evas_Object_Rectangle *o; + + /* render object to surface with context, and offxet by x,y */ + o = (Evas_Object_Rectangle *)(obj->object_data); + obj->layer->evas->engine.func->context_color_set(output, + context, + obj->cur.cache.clip.r, + obj->cur.cache.clip.g, + obj->cur.cache.clip.b, + obj->cur.cache.clip.a); + obj->layer->evas->engine.func->context_multiplier_unset(output, + context); + obj->layer->evas->engine.func->rectangle_draw(output, + context, + surface, + obj->cur.cache.geometry.x + x, + obj->cur.cache.geometry.y + y, + obj->cur.cache.geometry.w, + obj->cur.cache.geometry.h); +} + +static void +evas_object_rectangle_render_pre(Evas_Object *obj) +{ + Evas_List *updates = NULL; + Evas_Object_Rectangle *o; + int is_v, was_v; + + /* dont pre-render the obj twice! */ + if (obj->pre_render_done) return; + obj->pre_render_done = 1; + /* pre-render phase. this does anything an object needs to do just before */ + /* rendering. this could mean loading the image data, retrieving it from */ + /* elsewhere, decoding video etc. */ + /* then when this is done the object needs to figure if it changed and */ + /* if so what and where and add thr appropriate redraw rectangles */ + o = (Evas_Object_Rectangle *)(obj->object_data); + /* if someone is clipping this obj - go calculate the clipper */ + if (obj->cur.clipper) + { + evas_object_clip_recalc(obj->cur.clipper); + obj->cur.clipper->func->render_pre(obj->cur.clipper); + } + /* now figure what changed and add draw rects */ + /* if it just became visible or invisible */ + is_v = evas_object_is_visible(obj); + was_v = evas_object_was_visible(obj); + if (is_v != was_v) + { + updates = evas_object_render_pre_visible_change(updates, obj, is_v, was_v); + goto done; + } + /* its not visible - we accounted for it appearing or not so just abort */ + if (!is_v) goto done; + /* clipper changed this is in addition to anything else for obj */ + updates = evas_object_render_pre_clipper_change(updates, obj); + /* if we restacked (layer or just within a layer) and dont clip anyone */ + if ((obj->restack) && (!obj->clip.clipees)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* if it changed color */ + if ((obj->cur.color.r != obj->prev.color.r) || + (obj->cur.color.g != obj->prev.color.g) || + (obj->cur.color.b != obj->prev.color.b) || + (obj->cur.color.a != obj->prev.color.a)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* if it changed geometry - and obviously not visibility or color */ + /* caluclate differences since we have a constant color fill */ + /* we really only need to update the differences */ + if ((obj->cur.geometry.x != obj->prev.geometry.x) || + (obj->cur.geometry.y != obj->prev.geometry.y) || + (obj->cur.geometry.w != obj->prev.geometry.w) || + (obj->cur.geometry.h != obj->prev.geometry.h)) + { + Evas_Rectangle *r; + Evas_List *rl; + + rl = evas_rects_return_difference_rects(obj->cur.cache.geometry.x, + obj->cur.cache.geometry.y, + obj->cur.cache.geometry.w, + obj->cur.cache.geometry.h, + obj->prev.cache.geometry.x, + obj->prev.cache.geometry.y, + obj->prev.cache.geometry.w, + obj->prev.cache.geometry.h); + while (rl) + { + r = rl->data; + rl = evas_list_remove(rl, r); + updates = evas_list_append(updates, r); + } + goto done; + } + /* it obviously didn't change - add a NO obscure - this "unupdates" this */ + /* area so if there were updates for it they get wiped. don't do it if we */ + /* arent fully opaque and we are visible */ + if (evas_object_is_visible(obj) && + evas_object_is_opaque(obj) && + (!obj->clip.clipees)) + obj->layer->evas->engine.func->output_redraws_rect_del(obj->layer->evas->engine.data.output, + obj->cur.cache.clip.x, + obj->cur.cache.clip.y, + obj->cur.cache.clip.w, + obj->cur.cache.clip.h); + done: + evas_object_render_pre_effect_updates(updates, obj, is_v, was_v); +} + +static void +evas_object_rectangle_render_post(Evas_Object *obj) +{ + Evas_Object_Rectangle *o; + + /* this moves the current data to the previous state parts of the object */ + /* in whatever way is safest for the object. also if we don't need object */ + /* data anymore we can free it if the object deems this is a good idea */ + o = (Evas_Object_Rectangle *)(obj->object_data); + /* remove those pesky changes */ + while (obj->clip.changes) + { + Evas_Rectangle *r; + + r = (Evas_Rectangle *)obj->clip.changes->data; + obj->clip.changes = evas_list_remove(obj->clip.changes, r); + free(r); + } + /* move cur to prev safely for object data */ + obj->prev = obj->cur; +} + +#if 0 /* usless calls for a rect object. much more useful for images etc. */ +static void +evas_object_rectangle_store(Evas_Object *obj) +{ + /* store... nothing for rectangle objects... it's a bit silly */ + /* but for others that may have expensive caluclations to do to */ + /* generate the object data, hint that they might want to be pre-calced */ + /* once and stored */ +} + +static void +evas_object_rectangle_unstore(Evas_Object *obj) +{ + /* store... nothing for rectangle objects... it's a bit silly */ +} + +static int +evas_object_rectangle_is_visible(Evas_Object *obj) +{ + Evas_Object_Rectangle *o; + + /* this returns 1 if the internal object data would imply that it is */ + /* visible (ie drawing it draws something. this is not to do with events */ + o = (Evas_Object_Rectangle *)(obj->object_data); + return 1; +} + +static int +evas_object_rectangle_was_visible(Evas_Object *obj) +{ + Evas_Object_Rectangle *o; + + /* this returns 1 if the internal object data would imply that it was */ + /* visible (ie drawing it draws something. this is not to do with events */ + o = (Evas_Object_Rectangle *)(obj->object_data); + return 1; +} + +static int +evas_object_rectangle_is_opaque(Evas_Object *obj) +{ + Evas_Object_Rectangle *o; + + /* this returns 1 if the internal object data implies that the object is */ + /* currently fulyl opque over the entire rectangle it occupies */ + o = (Evas_Object_Rectangle *)(obj->object_data); + return 1; +} + +static int +evas_object_rectangle_was_opaque(Evas_Object *obj) +{ + Evas_Object_Rectangle *o; + + /* this returns 1 if the internal object data implies that the object was */ + /* currently fulyl opque over the entire rectangle it occupies */ + o = (Evas_Object_Rectangle *)(obj->object_data); + return 1; +} + +static int +evas_object_rectangle_is_inside(Evas_Object *obj, double x, double y) +{ + Evas_Object_Rectangle *o; + + /* this returns 1 if the canvas co-ordinates are inside the object based */ + /* on object private data. not much use for rects, but for polys images */ + /* and other complex objects it might be */ + o = (Evas_Object_Rectangle *)(obj->object_data); + return 1; +} + +static int +evas_object_rectangle_was_inside(Evas_Object *obj, double x, double y) +{ + Evas_Object_Rectangle *o; + + /* this returns 1 if the canvas co-ordinates were inside the object based */ + /* on object private data. not much use for rects, but for polys images */ + /* and other complex objects it might be */ + o = (Evas_Object_Rectangle *)(obj->object_data); + return 1; +} +#endif diff --git a/legacy/evas/src/lib/canvas/evas_object_smart.c b/legacy/evas/src/lib/canvas/evas_object_smart.c new file mode 100644 index 0000000000..5726f203b5 --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_object_smart.c @@ -0,0 +1,330 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +typedef struct _Evas_Object_Smart Evas_Object_Smart; +typedef struct _Evas_Smart_Callback Evas_Smart_Callback; + +struct _Evas_Object_Smart +{ + DATA32 magic; + void *engine_data; +}; + +struct _Evas_Smart_Callback +{ + char *event; + void (*func) (void *data, Evas_Object *obj, void *event_info); + void *func_data; +}; + +/* private methods for smart objects */ +static void evas_object_smart_init(Evas_Object *obj); +static void *evas_object_smart_new(void); +static void evas_object_smart_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y); +static void evas_object_smart_free(Evas_Object *obj); +static void evas_object_smart_render_pre(Evas_Object *obj); +static void evas_object_smart_render_post(Evas_Object *obj); + +static Evas_Object_Func object_func = +{ + /* methods (compulsory) */ + evas_object_smart_free, + evas_object_smart_render, + evas_object_smart_render_pre, + evas_object_smart_render_post, + /* these are optional. NULL = nothing */ + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; + +/* public funcs */ +void +evas_object_smart_data_set(Evas_Object *obj, void *data) +{ + Evas_Object_Smart *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Smart *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Smart, MAGIC_OBJ_SMART); + return; + MAGIC_CHECK_END(); + obj->smart.data = data; +} + +void * +evas_object_smart_data_get(Evas_Object *obj) +{ + Evas_Object_Smart *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + o = (Evas_Object_Smart *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Smart, MAGIC_OBJ_SMART); + return NULL; + MAGIC_CHECK_END(); + return obj->smart.data; +} + +Evas_Smart * +evas_object_smart_smart_get(Evas_Object *obj) +{ + Evas_Object_Smart *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + o = (Evas_Object_Smart *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Smart, MAGIC_OBJ_SMART); + return NULL; + MAGIC_CHECK_END(); + return obj->smart.smart; +} + +void +evas_object_smart_member_add(Evas_Object *obj, Evas_Object *smart_obj) +{ + Evas_Object_Smart *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + MAGIC_CHECK(smart_obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Smart *)(smart_obj->object_data); + MAGIC_CHECK(o, Evas_Object_Smart, MAGIC_OBJ_SMART); + return; + MAGIC_CHECK_END(); + + if (obj->smart.parent) evas_object_smart_member_del(obj); + + obj->smart.parent = smart_obj; + smart_obj->smart.contained = evas_list_append(smart_obj->smart.contained, obj); +} + +void +evas_object_smart_member_del(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + + if (!obj->smart.parent) return; + + obj->smart.parent->smart.contained = evas_list_remove(obj->smart.parent->smart.contained, obj); + obj->smart.parent = NULL; +} + +Evas_Object * +evas_object_smart_add(Evas *e, Evas_Smart *s) +{ + Evas_Object *obj; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + MAGIC_CHECK(s, Evas_Smart, MAGIC_SMART); + return NULL; + MAGIC_CHECK_END(); + + obj = evas_object_new(); + if (!obj) return NULL; + obj->smart.smart = s; + obj->type = s->name; + evas_object_smart_init(obj); + evas_object_inject(obj, e); + + evas_object_smart_use(s); + + if (s->func_add) s->func_add(obj); + + return obj; +} + +void +evas_object_smart_callback_add(Evas_Object *obj, char *event, void (*func) (void *data, Evas_Object *obj, void *event_info), void *data) +{ + Evas_Object_Smart *o; + Evas_Smart_Callback *cb; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Smart *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Smart, MAGIC_OBJ_SMART); + return; + MAGIC_CHECK_END(); + if (!event) return; + if (!func) return; + cb = calloc(1, sizeof(Evas_Smart_Callback)); + cb->event = strdup(event); + cb->func = func; + cb->func_data = data; + obj->smart.callbacks = evas_list_prepend(obj->smart.callbacks, cb); +} + +void * +evas_object_smart_callback_del(Evas_Object *obj, char *event, void (*func) (void *data, Evas_Object *obj, void *event_info)) +{ + Evas_Object_Smart *o; + Evas_List *l; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Smart *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Smart, MAGIC_OBJ_SMART); + return; + MAGIC_CHECK_END(); + if (!event) return; + for (l = obj->smart.callbacks; l; l = l->next) + { + Evas_Smart_Callback *cb; + + cb = l->data; + if ((!strcmp(cb->event, event)) && (cb->func == func)) + { + void *data; + + obj->smart.callbacks = evas_list_remove(obj->smart.callbacks, cb); + data = cb->func_data; + if (cb->event) free(cb->event); + free(cb); + return data; + } + } + return NULL; +} + +void +evas_object_smart_callback_call(Evas_Object *obj, char *event, void *event_info) +{ + Evas_Object_Smart *o; + Evas_List *l; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Smart *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Smart, MAGIC_OBJ_SMART); + return; + MAGIC_CHECK_END(); + if (!event) return; + for (l = obj->smart.callbacks; l; l = l->next) + { + Evas_Smart_Callback *cb; + + cb = l->data; + if (!strcmp(cb->event, event)) + cb->func(cb->func_data, obj, event_info); + } +} + +/* internal calls */ +void +evas_object_smart_del(Evas_Object *obj) +{ + Evas_Smart *s; + + s = obj->smart.smart; + if (obj->smart.parent) evas_object_smart_member_del(obj); + if ((s) && (s->func_del)) s->func_del(obj); + if (s) evas_object_smart_unuse(s); +} + +void +evas_object_smart_cleanup(Evas_Object *obj) +{ + Evas_Smart *s; + + s = obj->smart.smart; + while (obj->smart.contained) + obj->smart.contained = evas_list_remove(obj->smart.contained, obj->smart.contained->data); + while (obj->smart.callbacks) + { + Evas_Smart_Callback *cb; + + cb = obj->smart.callbacks->data; + obj->smart.callbacks = evas_list_remove(obj->smart.callbacks, cb); + if (cb->event) free (cb->event); + free(cb); + } + if (s) evas_object_smart_unuse(s); +} + +/* all nice and private */ +static void +evas_object_smart_init(Evas_Object *obj) +{ + /* alloc image ob, setup methods and default values */ + obj->object_data = evas_object_smart_new(); + /* set up default settings for this kind of object */ + obj->cur.color.r = 255; + obj->cur.color.g = 255; + obj->cur.color.b = 255; + obj->cur.color.a = 255; + obj->cur.geometry.x = 0.0; + obj->cur.geometry.y = 0.0; + obj->cur.geometry.w = 32.0; + obj->cur.geometry.h = 32.0; + obj->cur.layer = 0; + /* set up object-specific settings */ + obj->prev = obj->cur; + /* set up methods (compulsory) */ + obj->func = &object_func; +} + +static void * +evas_object_smart_new(void) +{ + Evas_Object_Smart *o; + + /* alloc obj private data */ + o = calloc(1, sizeof(Evas_Object_Smart)); + o->magic = MAGIC_OBJ_SMART; + return o; +} + +static void +evas_object_smart_free(Evas_Object *obj) +{ + Evas_Object_Smart *o; + + /* frees private object data. very simple here */ + o = (Evas_Object_Smart *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Smart, MAGIC_OBJ_SMART); + return; + MAGIC_CHECK_END(); + /* free obj */ + o->magic = 0; + free(o); +} + +static void +evas_object_smart_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y) +{ +} + +static void +evas_object_smart_render_pre(Evas_Object *obj) +{ + if (obj->pre_render_done) return; + obj->pre_render_done = 1; +} + +static void +evas_object_smart_render_post(Evas_Object *obj) +{ + obj->prev = obj->cur; +} diff --git a/legacy/evas/src/lib/canvas/evas_object_text.c b/legacy/evas/src/lib/canvas/evas_object_text.c new file mode 100644 index 0000000000..0c50d7d6ff --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_object_text.c @@ -0,0 +1,802 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +/* private magic number for text objects */ +static const char o_type[] = "text"; + +/* private struct for text object internal data */ +typedef struct _Evas_Object_Text Evas_Object_Text; + +struct _Evas_Object_Text +{ + DATA32 magic; + + struct { + char *text; + char *font; + double size; + } cur, prev; + int changed : 1; + + double ascent, descent; + double max_ascent, max_descent; + + void *engine_data; +}; + +/* private methods for text objects */ +static void evas_object_text_init(Evas_Object *obj); +static void *evas_object_text_new(void); +static void evas_object_text_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y); +static void evas_object_text_free(Evas_Object *obj); +static void evas_object_text_render_pre(Evas_Object *obj); +static void evas_object_text_render_post(Evas_Object *obj); + +static int evas_object_text_is_opaque(Evas_Object *obj); +static int evas_object_text_was_opaque(Evas_Object *obj); + +static Evas_Object_Func object_func = +{ + /* methods (compulsory) */ + evas_object_text_free, + evas_object_text_render, + evas_object_text_render_pre, + evas_object_text_render_post, + /* these are optional. NULL = nothing */ + NULL, + NULL, + NULL, + NULL, + evas_object_text_is_opaque, + evas_object_text_was_opaque, + NULL, + NULL, + NULL +}; + +/* the actual api call to add a rect */ +/* it has no other api calls as all properties are standard */ +Evas_Object * +evas_object_text_add(Evas *e) +{ + Evas_Object *obj; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + obj = evas_object_new(); + evas_object_text_init(obj); + evas_object_inject(obj, e); + return obj; +} + +void +evas_object_text_font_set(Evas_Object *obj, char *font, double size) +{ + Evas_Object_Text *o; + int is, was; + + if (!font) return; + if (size <= 0) return; + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + return; + MAGIC_CHECK_END(); + if ((o->cur.font) && (font) && !strcmp(o->cur.font, font)) + { + if (size == o->cur.size) return; + } + was = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + /* DO II */ + if (o->engine_data) + obj->layer->evas->engine.func->font_free(obj->layer->evas->engine.data.output, + o->engine_data); + if (evas_file_path_is_full_path(font)) + o->engine_data = obj->layer->evas->engine.func->font_load(obj->layer->evas->engine.data.output, + font, size); + else + { + Evas_List *l; + + for (l = obj->layer->evas->font_path; l; l = l->next) + { + char *tmp, *font_tmp; + Evas_List *dir; + + tmp = evas_file_path_join(l->data, font); + if (tmp) + { + char *tmp2; + + o->engine_data = obj->layer->evas->engine.func->font_load(obj->layer->evas->engine.data.output, + tmp, size); + if (o->engine_data) + { + free(tmp); + goto done; + } + tmp2 = malloc(strlen(tmp) + 4 + 1); + if (tmp2) + { + strcpy(tmp2, tmp); + strcat(tmp2, ".ttf"); + o->engine_data = obj->layer->evas->engine.func->font_load(obj->layer->evas->engine.data.output, + tmp2, size); + if (o->engine_data) + { + free(tmp); + free(tmp2); + goto done; + } + strcpy(tmp2, tmp); + strcat(tmp2, ".TTF"); + o->engine_data = obj->layer->evas->engine.func->font_load(obj->layer->evas->engine.data.output, + tmp2, size); + if (o->engine_data) + { + free(tmp); + free(tmp2); + goto done; + } + free(tmp2); + } + free(tmp); + } + dir = evas_file_path_list(l->data, font, 0); + while (dir) + { + tmp = evas_file_path_join(l->data, dir->data); + if (tmp) + { + o->engine_data = obj->layer->evas->engine.func->font_load(obj->layer->evas->engine.data.output, + tmp, size); + if (o->engine_data) + { + while (dir) + { + free(dir->data); + dir = evas_list_remove(dir, dir->data); + } + free(tmp); + goto done; + } + free(tmp); + } + free(dir->data); + dir = evas_list_remove(dir, dir->data); + } + font_tmp = malloc(strlen(font) + 4 + 1); + if (font_tmp) + { + strcpy(font_tmp, font); + strcat(font_tmp, ".ttf"); + dir = evas_file_path_list(l->data, font_tmp, 0); + while (dir) + { + tmp = evas_file_path_join(l->data, dir->data); + if (tmp) + { + o->engine_data = obj->layer->evas->engine.func->font_load(obj->layer->evas->engine.data.output, + tmp, size); + if (o->engine_data) + { + while (dir) + { + free(dir->data); + dir = evas_list_remove(dir, dir->data); + } + free(font_tmp); + free(tmp); + goto done; + } + free(tmp); + } + free(dir->data); + dir = evas_list_remove(dir, dir->data); + } + free(font_tmp); + } + } + //_WIN32_WCE + done: ; + } + if (o->cur.font) free(o->cur.font); + if (font) o->cur.font = strdup(font); + else o->cur.font = NULL; + o->prev.font = NULL; + o->cur.size = size; + if ((o->engine_data) && (o->cur.text)) + { + int w, h; + + obj->layer->evas->engine.func->font_string_size_get(obj->layer->evas->engine.data.output, + o->engine_data, + o->cur.text, + &w, &h); + obj->cur.geometry.w = w; + obj->cur.geometry.h = h; + obj->cur.cache.geometry.validity = 0; + o->ascent = obj->layer->evas->engine.func->font_ascent_get(obj->layer->evas->engine.data.output, + o->engine_data); + o->descent = obj->layer->evas->engine.func->font_descent_get(obj->layer->evas->engine.data.output, + o->engine_data); + o->max_ascent = obj->layer->evas->engine.func->font_max_ascent_get(obj->layer->evas->engine.data.output, + o->engine_data); + o->max_descent = obj->layer->evas->engine.func->font_max_descent_get(obj->layer->evas->engine.data.output, + o->engine_data); + } + else + { + if (o->engine_data) + { + o->ascent = obj->layer->evas->engine.func->font_ascent_get(obj->layer->evas->engine.data.output, + o->engine_data); + o->descent = obj->layer->evas->engine.func->font_descent_get(obj->layer->evas->engine.data.output, + o->engine_data); + o->max_ascent = obj->layer->evas->engine.func->font_max_ascent_get(obj->layer->evas->engine.data.output, + o->engine_data); + o->max_descent = obj->layer->evas->engine.func->font_max_descent_get(obj->layer->evas->engine.data.output, + o->engine_data); + } + else + { + o->ascent = 0; + o->descent = 0; + o->max_ascent = 0; + o->max_descent = 0; + } + obj->cur.geometry.w = 0; + obj->cur.geometry.h = o->max_ascent + o->max_descent; + obj->cur.cache.geometry.validity = 0; + } + o->changed = 1; + evas_object_change(obj); + evas_object_coords_recalc(obj); + is = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + if ((is || was) && obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); +} + +void +evas_object_text_font_get(Evas_Object *obj, char **font, double *size) +{ + Evas_Object_Text *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + *font = ""; + *size = 0; + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + *font = ""; + *size = 0; + return; + MAGIC_CHECK_END(); + *font = o->cur.font; + *size = o->cur.size; +} + +void +evas_object_text_text_set(Evas_Object *obj, char *text) +{ + Evas_Object_Text *o; + int is, was; + + if (!text) text = ""; + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + return; + MAGIC_CHECK_END(); + if ((o->cur.text) && (text) && (!strcmp(o->cur.text, text))) return; + was = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + /* DO II */ + if (o->cur.text) free(o->cur.text); + if (text) o->cur.text = strdup(text); + else o->cur.text = NULL; + o->prev.text = NULL; + if ((o->engine_data) && (o->cur.text)) + { + int w, h; + + obj->layer->evas->engine.func->font_string_size_get(obj->layer->evas->engine.data.output, + o->engine_data, + o->cur.text, + &w, &h); + obj->cur.geometry.w = w; + obj->cur.geometry.h = h; + obj->cur.cache.geometry.validity = 0; + } + else + { + obj->cur.geometry.w = 0; + obj->cur.geometry.h = o->max_ascent + o->max_descent; + obj->cur.cache.geometry.validity = 0; + } + o->changed = 1; + evas_object_change(obj); + evas_object_coords_recalc(obj); + is = evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1); + if ((is || was) && obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y); +} + +char * +evas_object_text_text_get(Evas_Object *obj) +{ + Evas_Object_Text *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + return NULL; + MAGIC_CHECK_END(); + return o->cur.text; +} + +double +evas_object_text_ascent_get(Evas_Object *obj) +{ + Evas_Object_Text *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + return 0; + MAGIC_CHECK_END(); + return o->ascent; +} + +double +evas_object_text_descent_get(Evas_Object *obj) +{ + Evas_Object_Text *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + return 0; + MAGIC_CHECK_END(); + return o->descent; +} + +double +evas_object_text_max_ascent_get(Evas_Object *obj) +{ + Evas_Object_Text *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + return 0; + MAGIC_CHECK_END(); + return o->max_ascent; +} + +double +evas_object_text_max_descent_get(Evas_Object *obj) +{ + Evas_Object_Text *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + return 0; + MAGIC_CHECK_END(); + return o->max_descent; +} + +double +evas_object_text_inset_get(Evas_Object *obj) +{ + Evas_Object_Text *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + return 0; + MAGIC_CHECK_END(); + return obj->layer->evas->engine.func->font_inset_get(obj->layer->evas->engine.data.output, + o->engine_data, + o->cur.text); +} + +double +evas_object_text_horiz_advance_get(Evas_Object *obj) +{ + Evas_Object_Text *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + return 0; + MAGIC_CHECK_END(); + return obj->layer->evas->engine.func->font_h_advance_get(obj->layer->evas->engine.data.output, + o->engine_data, + o->cur.text); +} + +double +evas_object_text_vert_advance_get(Evas_Object *obj) +{ + Evas_Object_Text *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + return 0; + MAGIC_CHECK_END(); + return obj->layer->evas->engine.func->font_v_advance_get(obj->layer->evas->engine.data.output, + o->engine_data, + o->cur.text); +} + +int +evas_object_text_char_pos_get(Evas_Object *obj, int pos, double *cx, double *cy, double *cw, double *ch) +{ + Evas_Object_Text *o; + int ret, x, y, w, h; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + return 0; + MAGIC_CHECK_END(); + ret = obj->layer->evas->engine.func->font_char_coords_get(obj->layer->evas->engine.data.output, + o->engine_data, + o->cur.text, + pos, + &x, &y, + &w, &h); + if (cx) *cx = x; + if (cy) *cy = y; + if (cw) *cw = w; + if (ch) *ch = h; + return ret; +} + +int +evas_object_text_char_coords_get(Evas_Object *obj, double x, double y, double *cx, double *cy, double *cw, double *ch) +{ + Evas_Object_Text *o; + int ret, rx, ry, rw, rh; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return 0; + MAGIC_CHECK_END(); + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + return 0; + MAGIC_CHECK_END(); + ret = obj->layer->evas->engine.func->font_char_at_coords_get(obj->layer->evas->engine.data.output, + o->engine_data, + o->cur.text, + x, y, + &rx, &ry, + &rw, &rh); + if (cx) *cx = rx; + if (cy) *cy = ry; + if (cw) *cw = rw; + if (ch) *ch = rh; + return ret; +} + + + + +void +evas_object_font_path_clear(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + while (e->font_path) + { + free(e->font_path->data); + e->font_path = evas_list_remove(e->font_path, e->font_path->data); + } +} + +void +evas_object_font_path_append(Evas *e, char *path) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + if (!path) return; + e->font_path = evas_list_append(e->font_path, strdup(path)); +} + +void +evas_object_font_path_prepend(Evas *e, char *path) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + if (!path) return; + e->font_path = evas_list_prepend(e->font_path, strdup(path)); +} + +Evas_List * +evas_object_font_path_list(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + return e->font_path; +} + + + + + +void +evas_object_font_cache_flush(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + + e->engine.func->font_cache_flush(e->engine.data.output); +} + +void +evas_object_font_cache_set(Evas *e, int size) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + + if (size < 0) size = 0; + e->engine.func->font_cache_set(e->engine.data.output, size); +} + +int +evas_object_font_cache_get(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return 0; + MAGIC_CHECK_END(); + + return e->engine.func->font_cache_get(e->engine.data.output); +} + + + +/* all nice and private */ +static void +evas_object_text_init(Evas_Object *obj) +{ + /* alloc text ob, setup methods and default values */ + obj->object_data = evas_object_text_new(); + /* set up default settings for this kind of object */ + obj->cur.color.r = 255; + obj->cur.color.g = 255; + obj->cur.color.b = 255; + obj->cur.color.a = 255; + obj->cur.geometry.x = 0.0; + obj->cur.geometry.y = 0.0; + obj->cur.geometry.w = 0.0; + obj->cur.geometry.h = 0.0; + obj->cur.layer = 0; + /* set up object-specific settings */ + obj->prev = obj->cur; + /* set up methods (compulsory) */ + obj->func = &object_func; + obj->type = o_type; +} + +static void * +evas_object_text_new(void) +{ + Evas_Object_Text *o; + + /* alloc obj private data */ + o = calloc(1, sizeof(Evas_Object_Text)); + o->magic = MAGIC_OBJ_TEXT; + o->prev = o->cur; + return o; +} + +static void +evas_object_text_free(Evas_Object *obj) +{ + Evas_Object_Text *o; + + /* frees private object data. very simple here */ + o = (Evas_Object_Text *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Text, MAGIC_OBJ_TEXT); + return; + MAGIC_CHECK_END(); + /* free obj */ + if (o->cur.text) free(o->cur.text); + if (o->cur.font) free(o->cur.font); + if (o->engine_data) + obj->layer->evas->engine.func->font_free(obj->layer->evas->engine.data.output, + o->engine_data); + o->magic = 0; + free(o); +} + +static void +evas_object_text_render(Evas_Object *obj, void *output, void *context, void *surface, int x, int y) +{ + Evas_Object_Text *o; + + /* render object to surface with context, and offxet by x,y */ + o = (Evas_Object_Text *)(obj->object_data); + obj->layer->evas->engine.func->context_multiplier_unset(output, + context); + obj->layer->evas->engine.func->context_color_set(output, + context, + obj->cur.cache.clip.r, + obj->cur.cache.clip.g, + obj->cur.cache.clip.b, + obj->cur.cache.clip.a); + if (o->engine_data) + obj->layer->evas->engine.func->font_draw(output, + context, + surface, + o->engine_data, + obj->cur.cache.geometry.x + x, + obj->cur.cache.geometry.y + y + + (int) + ((o->max_ascent * obj->cur.cache.geometry.h) / obj->cur.geometry.h), + obj->cur.cache.geometry.w, + obj->cur.cache.geometry.h, + obj->cur.geometry.w, + obj->cur.geometry.h, + o->cur.text); +} + +static void +evas_object_text_render_pre(Evas_Object *obj) +{ + Evas_List *updates = NULL; + Evas_Object_Text *o; + int is_v, was_v; + + /* dont pre-render the obj twice! */ + if (obj->pre_render_done) return; + obj->pre_render_done = 1; + /* pre-render phase. this does anything an object needs to do just before */ + /* rendering. this could mean loading the image data, retrieving it from */ + /* elsewhere, decoding video etc. */ + /* then when this is done the object needs to figure if it changed and */ + /* if so what and where and add thr appropriate redraw rectangles */ + o = (Evas_Object_Text *)(obj->object_data); + /* if someone is clipping this obj - go calculate the clipper */ + if (obj->cur.clipper) + { + evas_object_clip_recalc(obj->cur.clipper); + obj->cur.clipper->func->render_pre(obj->cur.clipper); + } + /* now figure what changed and add draw rects */ + /* if it just became visible or invisible */ + is_v = evas_object_is_visible(obj); + was_v = evas_object_was_visible(obj); + if (is_v != was_v) + { + updates = evas_object_render_pre_visible_change(updates, obj, is_v, was_v); + goto done; + } + /* its not visible - we accounted for it appearing or not so just abort */ + if (!is_v) goto done; + /* clipper changed this is in addition to anything else for obj */ + updates = evas_object_render_pre_clipper_change(updates, obj); + /* if we restacked (layer or just within a layer) and dont clip anyone */ + if (obj->restack) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* if it changed color */ + if ((obj->cur.color.r != obj->prev.color.r) || + (obj->cur.color.g != obj->prev.color.g) || + (obj->cur.color.b != obj->prev.color.b) || + (obj->cur.color.a != obj->prev.color.a)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + /* if it changed geometry - and obviously not visibility or color */ + /* caluclate differences since we have a constant color fill */ + /* we really only need to update the differences */ + if ((obj->cur.geometry.x != obj->prev.geometry.x) || + (obj->cur.geometry.y != obj->prev.geometry.y) || + (obj->cur.geometry.w != obj->prev.geometry.w) || + (obj->cur.geometry.h != obj->prev.geometry.h)) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + goto done; + } + if (o->changed) + { + updates = evas_object_render_pre_prev_cur_add(updates, obj); + } + done: + evas_object_render_pre_effect_updates(updates, obj, is_v, was_v); +} + +static void +evas_object_text_render_post(Evas_Object *obj) +{ + Evas_Object_Text *o; + + /* this moves the current data to the previous state parts of the object */ + /* in whatever way is safest for the object. also if we don't need object */ + /* data anymore we can free it if the object deems this is a good idea */ + o = (Evas_Object_Text *)(obj->object_data); + /* remove those pesky changes */ + while (obj->clip.changes) + { + Evas_Rectangle *r; + + r = (Evas_Rectangle *)obj->clip.changes->data; + obj->clip.changes = evas_list_remove(obj->clip.changes, r); + free(r); + } + /* move cur to prev safely for object data */ + obj->prev = obj->cur; + o->prev = o->cur; + o->changed = 0; +} + +static int +evas_object_text_is_opaque(Evas_Object *obj) +{ + Evas_Object_Text *o; + + /* this returns 1 if the internal object data implies that the object is */ + /* currently fulyl opque over the entire gradient it occupies */ + o = (Evas_Object_Text *)(obj->object_data); + return 0; +} + +static int +evas_object_text_was_opaque(Evas_Object *obj) +{ + Evas_Object_Text *o; + + /* this returns 1 if the internal object data implies that the object was */ + /* currently fulyl opque over the entire gradient it occupies */ + o = (Evas_Object_Text *)(obj->object_data); + return 0; +} diff --git a/legacy/evas/src/lib/canvas/evas_rectangle.c b/legacy/evas/src/lib/canvas/evas_rectangle.c new file mode 100644 index 0000000000..231af9532e --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_rectangle.c @@ -0,0 +1,95 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +Evas_List * +evas_rects_return_difference_rects(int x, int y, int w, int h, int xx, int yy, int ww, int hh) +{ + Evas_List *rects = NULL; + Evas_Rectangle *r; + + if (!RECTS_INTERSECT(x, y, w, h, xx, yy, ww, hh)) + { + NEW_RECT(r, x, y, w, h); + if (r) rects = evas_list_append(rects, r); + NEW_RECT(r, xx, yy, ww, hh); + if (r) rects = evas_list_append(rects, r); + } + else + { + int x1[4], y1[4], i, j; + Evas_List *rl = NULL, *rll; + + if (x < xx) + { + x1[0] = x; + x1[1] = xx; + } + else + { + x1[0] = xx; + x1[1] = x; + } + if ((x + w) < (xx + ww)) + { + x1[2] = x + w; + x1[3] = xx + ww; + } + else + { + x1[2] = xx + ww; + x1[3] = x + w; + } + if (y < yy) + { + y1[0] = y; + y1[1] = yy; + } + else + { + y1[0] = yy; + y1[1] = y; + } + if ((y + h) < (yy + hh)) + { + y1[2] = y + h; + y1[3] = yy + hh; + } + else + { + y1[2] = yy + hh; + y1[3] = y + h; + } + for (j = 0; j < 3; j++) + { + for (i = 0; i < 3; i++) + { + NEW_RECT(r, x1[i], y1[j], x1[i + 1] - x1[i], y1[j + 1] - y1[j]); + if (r) rl = evas_list_append(rl, r); + } + } + if (rl) + { + for (rll = rl; rll; rll = rll->next) + { + r = rll->data; + if ((r->w > 0) && (r->h > 0)) + { + int intsec1, intsec2; + + intsec1 = (RECTS_INTERSECT(r->x, r->y, r->w, r->h, x, y, w, h)); + intsec2 = (RECTS_INTERSECT(r->x, r->y, r->w, r->h, xx, yy, ww, hh)); + if (intsec1 ^ intsec2) + rects = evas_list_append(rects, r); + else + free(r); + } + else + free(r); + } + rl = evas_list_free(rl); + } + + } + return rects; +} diff --git a/legacy/evas/src/lib/canvas/evas_render.c b/legacy/evas/src/lib/canvas/evas_render.c new file mode 100644 index 0000000000..67a7f2f495 --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_render.c @@ -0,0 +1,326 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +void +evas_damage_rectangle_add(Evas *e, int x, int y, int w, int h) +{ + Evas_Rectangle *r; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + r = malloc(sizeof(Evas_Rectangle)); + if (!r) return; + r->x = x; r->y = y; r->w = w; r->h = h; + e->damages = evas_list_append(e->damages, r); + e->changed = 1; +} + +void +evas_obscured_rectangle_add(Evas *e, int x, int y, int w, int h) +{ + Evas_Rectangle *r; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + r = malloc(sizeof(Evas_Rectangle)); + if (!r) return; + r->x = x; r->y = y; r->w = w; r->h = h; + e->obscures = evas_list_append(e->obscures, r); +} + +void +evas_obscured_clear(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + while (e->obscures) + { + Evas_Rectangle *r; + + r = (Evas_Rectangle *)e->obscures->data; + e->obscures = evas_list_remove(e->obscures, r); + free(r); + } +} + +Evas_List * +evas_render_updates(Evas *e) +{ + Evas_List *updates = NULL; + Evas_List *obscuring_objects = NULL; + Evas_List *obscuring_objects_orig = NULL; + Evas_List *active_objects = NULL; + Evas_List *delete_objects = NULL; + Evas_List *restack_objects = NULL; + Evas_List *ll; + Evas_Object_List *l; + void *surface; + int ux, uy, uw, uh; + int cx, cy, cw, ch; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + if (!e->changed) return NULL; + + if (e->output.changed) + { + e->engine.func->output_resize(e->engine.data.output, + e->output.w, e->output.h); + e->engine.func->output_redraws_rect_add(e->engine.data.output, + 0, 0, + e->output.w, e->output.h); + } + + /* phase 1. add extra updates for changed objects */ + for (l = (Evas_Object_List *)e->layers; l; l = l->next) + { + Evas_Object_List *l2; + Evas_Layer *lay; + + lay = (Evas_Layer *)l; + for (l2 = (Evas_Object_List *)lay->objects; l2; l2 = l2->next) + { + Evas_Object *obj; + + obj = (Evas_Object *)l2; + evas_object_clip_recalc(obj); + /* build active object list */ + if (evas_object_is_active(obj)) + active_objects = evas_list_append(active_objects, obj); + /* something changed... maybe... */ + if (obj->changed) + { + if ((obj->restack) && + (!obj->clip.clipees) && + evas_object_is_active(obj)) + restack_objects = evas_list_append(restack_objects, obj); + else + obj->func->render_pre(obj); + } + /* nothng changed at all */ + else + { + if (evas_object_is_opaque(obj) && + evas_object_is_visible(obj) && + (!obj->clip.clipees)) + e->engine.func->output_redraws_rect_del(e->engine.data.output, + obj->cur.cache.clip.x, + obj->cur.cache.clip.y, + obj->cur.cache.clip.w, + obj->cur.cache.clip.h); + } + } + } + /* phase 2. force updates for restacks */ + while (restack_objects) + { + Evas_Object *obj; + + obj = restack_objects->data; + restack_objects = evas_list_remove(restack_objects, obj); + obj->func->render_pre(obj); + e->engine.func->output_redraws_rect_add(e->engine.data.output, + obj->prev.cache.clip.x, + obj->prev.cache.clip.y, + obj->prev.cache.clip.w, + obj->prev.cache.clip.h); + e->engine.func->output_redraws_rect_add(e->engine.data.output, + obj->cur.cache.clip.x, + obj->cur.cache.clip.y, + obj->cur.cache.clip.w, + obj->cur.cache.clip.h); + } + /* phase 3. add exposes */ + while (e->damages) + { + Evas_Rectangle *r; + + r = e->damages->data; + e->damages = evas_list_remove(e->damages, r); + e->engine.func->output_redraws_rect_add(e->engine.data.output, + r->x, r->y, r->w, r->h); + free(r); + } + /* phase 4. add obscures */ + for (ll = e->obscures; ll; ll = ll->next) + { + Evas_Rectangle *r; + + r = ll->data; + e->engine.func->output_redraws_rect_del(e->engine.data.output, + r->x, r->y, r->w, r->h); + } + /* build obscure objects list of active objects that obscure */ + for (ll = active_objects; ll; ll = ll->next) + { + Evas_Object *obj; + + obj = (Evas_Object *)(ll->data); + if (evas_object_is_opaque(obj) && evas_object_is_visible(obj) && + (!obj->clip.clipees) && (obj->cur.color.a >= 255)) + obscuring_objects = evas_list_append(obscuring_objects, obj); + } + /* save this list */ + obscuring_objects_orig = obscuring_objects; + obscuring_objects = NULL; + /* phase 5. go thu each update rect and render objects in it*/ + while ((surface = + e->engine.func->output_redraws_next_update_get(e->engine.data.output, + &ux, &uy, &uw, &uh, + &cx, &cy, &cw, &ch))) + { + Evas_Rectangle *rect; + int off_x, off_y; + + rect = malloc(sizeof(Evas_Rectangle)); + if (rect) + { + rect->x = ux; rect->y = uy; rect->w = uw; rect->h = uh; + updates = evas_list_append(updates, rect); + } + off_x = cx - ux; + off_y = cy - uy; + /* build obscuring objects list (in order from bottom to top) */ + for (ll = obscuring_objects_orig; ll; ll = ll->next) + { + Evas_Object *obj; + + obj = (Evas_Object *)(ll->data); + if (evas_object_is_in_output_rect(obj, ux, uy, uw, uh)) + obscuring_objects = evas_list_append(obscuring_objects, obj); + } + /* render all object that intersect with rect */ + for (ll = active_objects; ll; ll = ll->next) + { + Evas_Object *obj; + Evas_List *l3; + obj = (Evas_Object *)(ll->data); + /* if its in our outpout rect and it doesnt clip anything */ + if (evas_object_is_in_output_rect(obj, ux, uy, uw, uh) && + (!obj->clip.clipees) && + (obj->cur.visible) && + (!obj->delete_me) && + (obj->cur.cache.clip.visible) && + (obj->cur.color.a > 0)) + { + int x, y, w, h; + + if ((obscuring_objects) && (obscuring_objects->data == obj)) + obscuring_objects = evas_list_remove(obscuring_objects, obj); + x = cx; y = cy; w = cw; h = ch; + RECTS_CLIP_TO_RECT(x, y, w, h, + obj->cur.cache.clip.x + off_x, + obj->cur.cache.clip.y + off_y, + obj->cur.cache.clip.w, + obj->cur.cache.clip.h); + if ((w > 0) && (h > 0)) + { + e->engine.func->context_clip_set(e->engine.data.output, + e->engine.data.context, + x, y, w, h); +#if 1 /* FIXME: this can slow things down... figure out optimum... coverage */ + for (l3 = obscuring_objects; l3; l3 = l3->next) + { + Evas_Object *obj2; + + obj2 = (Evas_Object *)l3->data; + e->engine.func->context_cutout_add(e->engine.data.output, + e->engine.data.context, + obj2->cur.cache.clip.x + off_x, + obj2->cur.cache.clip.y + off_y, + obj2->cur.cache.clip.w, + obj2->cur.cache.clip.h); + } +#endif + obj->func->render(obj, + e->engine.data.output, + e->engine.data.context, + surface, + off_x, off_y); + e->engine.func->context_cutout_clear(e->engine.data.output, + e->engine.data.context); + } + } + } + /* punch rect out */ + e->engine.func->output_redraws_next_update_push(e->engine.data.output, + surface, + ux, uy, uw, uh); + /* free obscuring objects list */ + obscuring_objects = evas_list_free(obscuring_objects); + } + /* flush redraws */ + e->engine.func->output_flush(e->engine.data.output); + /* clear redraws */ + e->engine.func->output_redraws_clear(e->engine.data.output); + /* and do a post render pass */ + for (l = (Evas_Object_List *)e->layers; l; l = l->next) + { + Evas_Object_List *l2; + Evas_Layer *lay; + + lay = (Evas_Layer *)l; + for (l2 = (Evas_Object_List *)lay->objects; l2; l2 = l2->next) + { + Evas_Object *obj; + + obj = (Evas_Object *)l2; + obj->pre_render_done = 0; + if (obj->changed) + { + obj->func->render_post(obj); + obj->restack = 0; + obj->changed = 0; + } + /* if the object is flagged for deletion - note it */ + if (obj->delete_me == 2) + delete_objects = evas_list_append(delete_objects, obj); + if (obj->delete_me) obj->delete_me ++; + } + } + /* delete all objects flagged for deletion now */ + while (delete_objects) + { + Evas_Object *obj; + + obj = (Evas_Object *)(delete_objects->data); + delete_objects = evas_list_remove(delete_objects, obj); + evas_object_free(obj, 1); + } + /* free our obscuring object list */ + obscuring_objects_orig = evas_list_free(obscuring_objects_orig); + /* free our active object list */ + active_objects = evas_list_free(active_objects); + e->changed = 0; + e->viewport.changed = 0; + e->output.changed = 0; + return updates; +} + +void +evas_render_updates_free(Evas_List *updates) +{ + while (updates) + { + free(updates->data); + updates = evas_list_remove(updates, updates->data); + } +} + +void +evas_render(Evas *e) +{ + Evas_List *updates; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return; + MAGIC_CHECK_END(); + + updates = evas_render_updates(e); + if (updates) evas_render_updates_free(updates); +} diff --git a/legacy/evas/src/lib/canvas/evas_smart.c b/legacy/evas/src/lib/canvas/evas_smart.c new file mode 100644 index 0000000000..3c11478b11 --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_smart.c @@ -0,0 +1,87 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +/* all public */ +Evas_Smart * +evas_smart_new(char *name, + void (*func_add) (Evas_Object *o), + void (*func_del) (Evas_Object *o), + void (*func_layer_set) (Evas_Object *o, int l), + void (*func_raise) (Evas_Object *o), + void (*func_lower) (Evas_Object *o), + void (*func_stack_above) (Evas_Object *o, Evas_Object *above), + void (*func_stack_below) (Evas_Object *o, Evas_Object *below), + void (*func_move) (Evas_Object *o, double x, double y), + void (*func_resize) (Evas_Object *o, double w, double h), + void (*func_show) (Evas_Object *o), + void (*func_hide) (Evas_Object *o), + void (*func_color_set) (Evas_Object *o, int r, int g, int b, int a), + void (*func_clip_set) (Evas_Object *o, Evas_Object *clip), + void (*func_clip_unset) (Evas_Object *o), + void *data) +{ + Evas_Smart *s; + + if (!name) return NULL; + + s = calloc(1, sizeof(Evas_Smart)); + if (!s) return NULL; + + s->magic = MAGIC_SMART; + + s->name = strdup(name); + + s->func_add = func_add; + s->func_del = func_del; + s->func_layer_set = func_layer_set; + s->func_raise = func_raise; + s->func_lower = func_lower; + s->func_stack_above = func_stack_above; + s->func_stack_below = func_stack_below; + s->func_move = func_move; + s->func_resize = func_resize; + s->func_show = func_show; + s->func_hide = func_hide; + s->func_color_set = func_color_set; + s->func_clip_set = func_clip_set; + s->func_clip_unset = func_clip_unset; + s->data = data; + + return s; +} + +void +evas_smart_free(Evas_Smart *s) +{ + MAGIC_CHECK(s, Evas_Smart, MAGIC_SMART); + return; + MAGIC_CHECK_END(); + s->delete_me = 1; + if (s->usage > 0) return; + if (s->name) free(s->name); + free(s); +} + +void * +evas_smart_data_get(Evas_Smart *s) +{ + MAGIC_CHECK(s, Evas_Smart, MAGIC_SMART); + return NULL; + MAGIC_CHECK_END(); + return s->data; +} + +/* internal funcs */ +void +evas_object_smart_use(Evas_Smart *s) +{ + s->usage++; +} + +void +evas_object_smart_unuse(Evas_Smart *s) +{ + s->usage--; + if (s->delete_me) evas_smart_free(s); +} diff --git a/legacy/evas/src/lib/canvas/evas_stack.c b/legacy/evas/src/lib/canvas/evas_stack.c new file mode 100644 index 0000000000..8e305b2415 --- /dev/null +++ b/legacy/evas/src/lib/canvas/evas_stack.c @@ -0,0 +1,216 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +static Evas_Object *evas_object_above_get_internal(Evas_Object *obj); +static Evas_Object *evas_object_below_get_internal(Evas_Object *obj); + +static Evas_Object * +evas_object_above_get_internal(Evas_Object *obj) +{ + if (((Evas_Object_List *)obj)->next) + return (Evas_Object *)(((Evas_Object_List *)obj)->next); + else + { + if (((Evas_Object_List *)(((Evas_Object *)obj)->layer))->next) + { + Evas_Layer *l; + + l = (Evas_Layer *)(((Evas_Object_List *)(((Evas_Object *)obj)->layer))->next); + return l->objects; + } + } + return NULL; +} + +static Evas_Object * +evas_object_below_get_internal(Evas_Object *obj) +{ + if (((Evas_Object_List *)obj)->prev) + return (Evas_Object *)(((Evas_Object_List *)obj)->prev); + else + { + if (((Evas_Object_List *)(((Evas_Object *)obj)->layer))->prev) + { + Evas_Layer *l; + + l = (Evas_Layer *)(((Evas_Object_List *)(((Evas_Object *)obj)->layer))->prev); + return (Evas_Object *)(((Evas_Object_List *)(l->objects))->last); + } + } + return NULL; +} + +void +evas_object_raise(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (obj->smart.smart) + { + if (obj->smart.smart->func_raise) + obj->smart.smart->func_raise(obj); + } + if (!(((Evas_Object_List *)obj)->next)) return; + obj->layer->objects = evas_object_list_remove(obj->layer->objects, obj); + obj->layer->objects = evas_object_list_append(obj->layer->objects, obj); + if (obj->clip.clipees) return; + obj->restack = 1; + evas_object_change(obj); + if (!obj->smart.smart) + { + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1) && + obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y); + } +} + +void +evas_object_lower(Evas_Object *obj) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (obj->smart.smart) + { + if (obj->smart.smart->func_lower) + obj->smart.smart->func_lower(obj); + } + if (!(((Evas_Object_List *)obj)->prev)) return; + obj->layer->objects = evas_object_list_remove(obj->layer->objects, obj); + obj->layer->objects = evas_object_list_prepend(obj->layer->objects, obj); + if (obj->clip.clipees) return; + obj->restack = 1; + evas_object_change(obj); + if (!obj->smart.smart) + { + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1) && + obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y); + } +} + +void +evas_object_stack_above(Evas_Object *obj, Evas_Object *above) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + MAGIC_CHECK(above, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (obj->smart.smart) + { + if (obj->smart.smart->func_stack_above) + obj->smart.smart->func_stack_above(obj, above); + } + if (above->layer != obj->layer) return; + if (((Evas_Object_List *)obj)->prev == (Evas_Object_List *)above) return; + obj->layer->objects = evas_object_list_remove(obj->layer->objects, obj); + obj->layer->objects = evas_object_list_append_relative(obj->layer->objects, obj, above); + if (obj->clip.clipees) return; + obj->restack = 1; + evas_object_change(obj); + if (!obj->smart.smart) + { + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1) && + obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y); + } +} + +void +evas_object_stack_below(Evas_Object *obj, Evas_Object *below) +{ + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + MAGIC_CHECK(below, Evas_Object, MAGIC_OBJ); + return; + MAGIC_CHECK_END(); + if (obj->smart.smart) + { + if (obj->smart.smart->func_stack_below) + obj->smart.smart->func_stack_below(obj, below); + } + if (below->layer != obj->layer) return; + if (((Evas_Object_List *)obj)->next == (Evas_Object_List *)below) return; + obj->layer->objects = evas_object_list_remove(obj->layer->objects, obj); + obj->layer->objects = evas_object_list_prepend_relative(obj->layer->objects, obj, below); + if (obj->clip.clipees) return; + obj->restack = 1; + evas_object_change(obj); + if (!obj->smart.smart) + { + if (evas_object_is_in_output_rect(obj, + obj->layer->evas->pointer.x, + obj->layer->evas->pointer.y, 1, 1) && + obj->cur.visible) + evas_event_feed_mouse_move(obj->layer->evas, obj->layer->evas->pointer.x, obj->layer->evas->pointer.y); + } +} + +Evas_Object * +evas_object_above_get(Evas_Object *obj) +{ + Evas_Object *obj2; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + obj2 = evas_object_above_get_internal(obj); + while ((obj2) && (obj2->smart.parent)) + obj2 = evas_object_above_get_internal(obj2); + return obj2; +} + +Evas_Object * +evas_object_below_get(Evas_Object *obj) +{ + Evas_Object *obj2; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + return NULL; + MAGIC_CHECK_END(); + obj2 = evas_object_below_get_internal(obj); + while ((obj2) && (obj2->smart.parent)) + obj2 = evas_object_below_get_internal(obj2); + return obj2; +} + +Evas_Object * +evas_object_bottom_get(Evas *e) +{ + Evas_Object *obj2; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + if (e->layers) + obj2 = e->layers->objects; + while ((obj2) && (obj2->smart.parent)) + obj2 = evas_object_above_get_internal(obj2); + return obj2; +} + +Evas_Object * +evas_object_top_get(Evas *e) +{ + Evas_Object *obj2; + + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return NULL; + MAGIC_CHECK_END(); + if (e->layers) + obj2 = (Evas_Object *)(((Evas_List *)(((Evas_Layer *)(((Evas_Object_List *)(e->layers))->last))->objects))->last); + while ((obj2) && (obj2->smart.parent)) + obj2 = evas_object_below_get_internal(obj2); + return obj2; +} diff --git a/legacy/evas/src/lib/data/Makefile.am b/legacy/evas/src/lib/data/Makefile.am new file mode 100644 index 0000000000..ddd7bf1231 --- /dev/null +++ b/legacy/evas/src/lib/data/Makefile.am @@ -0,0 +1,24 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = 1.4 foreign + +# A list of all the files in the current directory which can be regenerated +MAINTAINERCLEANFILES = Makefile.in + +LDFLAGS = -L/usr/local/lib +INCLUDES = \ + -I. \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/lib/include \ + -I$(includedir) \ + -I/usr/local/include \ + @freetype_cflags@ + +noinst_LTLIBRARIES = libevas_data.la +libevas_data_la_SOURCES = \ +evas_hash.c \ +evas_list.c \ +evas_object_list.c + +libevas_data_la_LIBADD = $(LDFLAGS) +libevas_data_la_DEPENDENCIES = $(top_builddir)/config.h diff --git a/legacy/evas/src/lib/data/evas_hash.c b/legacy/evas/src/lib/data/evas_hash.c new file mode 100644 index 0000000000..795b3bc102 --- /dev/null +++ b/legacy/evas/src/lib/data/evas_hash.c @@ -0,0 +1,161 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +static int evas_hash_gen(const char *key); + +static int +evas_hash_gen(const char *key) +{ + unsigned int hash_num = 0; + const unsigned char *ptr; + + if (!key) return 0; + + for (ptr = (unsigned char *)key; *ptr; ptr++) hash_num ^= (int)(*ptr); + + hash_num &= 0xff; + return (int)hash_num; +} + +Evas_Hash * +evas_hash_add(Evas_Hash *hash, const char *key, void *data) +{ + int hash_num; + Evas_Hash_El *el; + + if (!hash) + { + hash = malloc(sizeof(struct _Evas_Hash)); + if (!hash) return NULL; + memset(hash, 0, sizeof(struct _Evas_Hash)); + } + if (!(el = malloc(sizeof(struct _Evas_Hash_El)))) + { + if (hash->population <= 0) + free(hash); + return NULL; + }; + if (key) + { + el->key = strdup(key); + hash_num = evas_hash_gen(key); + } + else + { + el->key = NULL; + hash_num = 0; + } + el->data = data; + hash->buckets[hash_num] = evas_object_list_prepend(hash->buckets[hash_num], el); + hash->population++; + return hash; +} + +Evas_Hash * +evas_hash_del(Evas_Hash *hash, const char *key, void *data) +{ + int hash_num; + Evas_Hash_El *el; + Evas_Object_List *l; + + if (!hash) return NULL; + hash_num = evas_hash_gen(key); + for (l = hash->buckets[hash_num]; l; l = l->next) + { + el = (Evas_Hash_El *)l; + if ((((el->key) && (key) && (!strcmp(el->key, key))) || + ((!el->key) && (!key))) && (el->data == data)) + { + hash->buckets[hash_num] = evas_object_list_remove(hash->buckets[hash_num], el); + if (el->key) free(el->key); + free(el); + hash->population--; + if (hash->population <= 0) + { + free(hash); + hash = NULL; + } + return hash; + } + } + return hash; +} + +void * +evas_hash_find(Evas_Hash *hash, const char *key) +{ + int hash_num; + Evas_Hash_El *el; + Evas_Object_List *l; + + if (!hash) return NULL; + hash_num = evas_hash_gen(key); + for (l = hash->buckets[hash_num]; l; l = l->next) + { + el = (Evas_Hash_El *)l; + if (((el->key) && (key) && (!strcmp(el->key, key))) || + ((!el->key) && (!key))) + { + if (l != hash->buckets[hash_num]) + { + hash->buckets[hash_num] = evas_object_list_remove(hash->buckets[hash_num], el); + hash->buckets[hash_num] = evas_object_list_prepend(hash->buckets[hash_num], el); + } + return el->data; + } + } + return NULL; +} + +int +evas_hash_size(Evas_Hash *hash) +{ + if (!hash) return 0; + return 256; +} + +void +evas_hash_free(Evas_Hash *hash) +{ + int i, size; + + if (!hash) return; + size = evas_hash_size(hash); + for (i = 0; i < size; i++) + { + while (hash->buckets[i]) + { + Evas_Hash_El *el; + + el = (Evas_Hash_El *)hash->buckets[i]; + if (el->key) free(el->key); + hash->buckets[i] = evas_object_list_remove(hash->buckets[i], el); + free(el); + } + } + free(hash); +} + +void +evas_hash_foreach(Evas_Hash *hash, int (*func) (Evas_Hash *hash, const char *key, void *data, void *fdata), void *fdata) +{ + int i, size; + + if (!hash) return; + size = evas_hash_size(hash); + for (i = 0; i < size; i++) + { + Evas_Object_List *l, *next_l; + + for (l = hash->buckets[i]; l;) + { + Evas_Hash_El *el; + + next_l = l->next; + el = (Evas_Hash_El *)l; + func(hash, el->key, el->data, fdata); + l = next_l; + } + } +} diff --git a/legacy/evas/src/lib/data/evas_list.c b/legacy/evas/src/lib/data/evas_list.c new file mode 100644 index 0000000000..97f3aa05f8 --- /dev/null +++ b/legacy/evas/src/lib/data/evas_list.c @@ -0,0 +1,263 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +/* list ops */ +Evas_List * +evas_list_append(Evas_List *list, void *data) +{ + Evas_List *l, *new_l; + + new_l = malloc(sizeof(Evas_List)); + new_l->next = NULL; + new_l->prev = NULL; + new_l->data = data; + if (!list) + { + new_l->last = new_l; + new_l->count = 1; + return new_l; + } + if (list->last) + { + l = list->last; + l->next = new_l; + new_l->prev = l; + list->last = new_l; + list->count++; + return list; + } + else + { + for (l = list; l; l = l->next) + { + if (!l->next) + { + l->next = new_l; + new_l->prev = l; + list->last = new_l; + list->count++; + return list; + } + } + } + return list; +} + +Evas_List * +evas_list_prepend(Evas_List *list, void *data) +{ + Evas_List *new_l; + + new_l = malloc(sizeof(Evas_List)); + new_l->prev = NULL; + new_l->data = data; + if (!list) + { + new_l->next = NULL; + new_l->last = new_l; + new_l->count = 1; + return new_l; + } + new_l->next = list; + list->prev = new_l; + new_l->last = list->last; + list->last = NULL; + new_l->count = list->count + 1; + return new_l; +} + +Evas_List * +evas_list_append_relative(Evas_List *list, void *data, void *relative) +{ + Evas_List *l; + + for (l = list; l; l = l->next) + { + if (l->data == relative) + { + Evas_List *new_l; + + new_l = malloc(sizeof(Evas_List)); + new_l->data = data; + if (l->next) + { + new_l->next = l->next; + l->next->prev = new_l; + } + else + new_l->next = NULL; + + l->next = new_l; + new_l->prev = l; + if (!new_l->next) list->last = new_l; + list->count++; + return list; + } + } + return evas_list_append(list, data); +} + +Evas_List * +evas_list_prepend_relative(Evas_List *list, void *data, void *relative) +{ + Evas_List *l; + + for (l = list; l; l = l->next) + { + if (l->data == relative) + { + Evas_List *new_l; + + new_l = malloc(sizeof(Evas_List)); + new_l->data = data; + new_l->prev = l->prev; + new_l->next = l; + if (l->prev) l->prev->next = new_l; + l->prev = new_l; + if (new_l->prev) + { + if (!new_l->next) list->last = new_l; + list->count++; + return list; + } + else + { + new_l->last = list->last; + list->last = NULL; + new_l->count = list->count + 1; + return new_l; + } + } + } + return evas_list_prepend(list, data); +} + +Evas_List * +evas_list_remove(Evas_List *list, void *data) +{ + Evas_List *l; + + for (l = list; l; l = l->next) + { + if (l->data == data) + return evas_list_remove_list(list, l); + } + return list; +} + +Evas_List * +evas_list_remove_list(Evas_List *list, Evas_List *remove_list) +{ + Evas_List *return_l; + + if (!remove_list) return list; + if (remove_list->next) remove_list->next->prev = remove_list->prev; + if (remove_list->prev) + { + remove_list->prev->next = remove_list->next; + return_l = list; + } + else + { + if (remove_list->next) + remove_list->next->count = remove_list->count; + return_l = remove_list->next; + if (return_l) return_l->last = list->last; + } + if (remove_list == list->last) list->last = remove_list->prev; + free(remove_list); + if (return_l) return_l->count--; + return return_l; +} + +void * +evas_list_find(Evas_List *list, void *data) +{ + Evas_List *l; + + for (l = list; l; l = l->next) + { + if (l->data == data) return data; + } + return NULL; +} + +Evas_List * +evas_list_free(Evas_List *list) +{ + Evas_List *l, *free_l; + + for (l = list; l;) + { + free_l = l; + l = l->next; + free(free_l); + } + return NULL; +} + +Evas_List * +evas_list_last(Evas_List *list) +{ + if (!list) return NULL; + return list->last; +} + +Evas_List * +evas_list_next(Evas_List *list) +{ + if (!list) return NULL; + return list->next; +} + +Evas_List * +evas_list_prev(Evas_List *list) +{ + if (!list) return NULL; + return list->prev; +} + +void * +evas_list_data(Evas_List *list) +{ + if (!list) return NULL; + return list->data; +} + +int +evas_list_count(Evas_List *list) +{ + if (!list) return 0; + return list->count; +} + +void * +evas_list_nth(Evas_List *list, int n) +{ + int i; + Evas_List *l; + + if (n < 0) return NULL; + for (i = 0, l = list; l; l = l->next, i++) + { + if (i == n) return l->data; + } + return NULL; +} + +Evas_List * +evas_list_reverse(Evas_List *list) +{ + Evas_List *new_l = NULL; + + while (list) + { + void *data; + + data = list->data; + list = evas_list_remove_list(list, list); + new_l = evas_list_prepend(new_l, data); + } + return new_l; +} diff --git a/legacy/evas/src/lib/data/evas_object_list.c b/legacy/evas/src/lib/data/evas_object_list.c new file mode 100644 index 0000000000..38cd92e862 --- /dev/null +++ b/legacy/evas/src/lib/data/evas_object_list.c @@ -0,0 +1,172 @@ +#include "evas_common.h" + +/* list ops */ +void * +evas_object_list_append(void *in_list, void *in_item) +{ + Evas_Object_List *l, *new_l; + Evas_Object_List *list, *item; + + list = in_list; + item = in_item; + new_l = item; + new_l->next = NULL; + if (!list) + { + new_l->prev = NULL; + new_l->last = new_l; + return new_l; + } + if (list->last) l = list->last; + else for (l = list; l; l = l->next); + l->next = new_l; + new_l->prev = l; + list->last = new_l; + return list; +} + +void * +evas_object_list_prepend(void *in_list, void *in_item) +{ + Evas_Object_List *new_l; + Evas_Object_List *list, *item; + + list = in_list; + item = in_item; + new_l = item; + new_l->prev = NULL; + if (!list) + { + new_l->next = NULL; + new_l->last = new_l; + return new_l; + } + new_l->next = list; + list->prev = new_l; + new_l->last = list->last; + list->last = NULL; + return new_l; +} + +void * +evas_object_list_append_relative(void *in_list, void *in_item, void *in_relative) +{ + Evas_Object_List *l; + Evas_Object_List *list, *item, *relative; + + list = in_list; + item = in_item; + relative = in_relative; + for (l = list; l; l = l->next) + { + if (l == relative) + { + Evas_Object_List *new_l; + + new_l = item; + if (l->next) + { + new_l->next = l->next; + l->next->prev = new_l; + } + + else new_l->next = NULL; + l->next = new_l; + new_l->prev = l; + if (!new_l->next) + list->last = new_l; + return list; + } + } + return evas_object_list_append(list, item); +} + +void * +evas_object_list_prepend_relative(void *in_list, void *in_item, void *in_relative) +{ + Evas_Object_List *l; + Evas_Object_List *list, *item, *relative; + + list = in_list; + item = in_item; + relative = in_relative; + for (l = list; l; l = l->next) + { + if (l == relative) + { + Evas_Object_List *new_l; + + new_l = item; + new_l->prev = l->prev; + new_l->next = l; + l->prev = new_l; + if (new_l->prev) + { + new_l->prev->next = new_l; + if (!new_l->next) + list->last = new_l; + return list; + } + else + { + if (!new_l->next) + new_l->last = new_l; + else + { + new_l->last = list->last; + list->last = NULL; + } + return new_l; + } + } + } + return evas_object_list_prepend(list, item); +} + +void * +evas_object_list_remove(void *in_list, void *in_item) +{ + Evas_Object_List *return_l; + Evas_Object_List *list, *item; + + /* checkme */ + if(!in_list) + return in_list; + + list = in_list; + item = in_item; + if (!item) return list; + if (item->next) + item->next->prev = item->prev; + if (item->prev) + { + item->prev->next = item->next; + return_l = list; + } + else + { + return_l = item->next; + if (return_l) + return_l->last = list->last; + } + if (item == list->last) + list->last = item->prev; + item->next = NULL; + item->prev = NULL; + return return_l; +} + +void * +evas_object_list_find(void *in_list, void *in_item) +{ + Evas_Object_List *l; + Evas_Object_List *list, *item; + + list = in_list; + item = in_item; + for (l = list; l; l = l->next) + { + if (l == item) return item; + } + return NULL; +} diff --git a/legacy/evas/src/lib/engines/Makefile.am b/legacy/evas/src/lib/engines/Makefile.am new file mode 100644 index 0000000000..3d8ee4f70d --- /dev/null +++ b/legacy/evas/src/lib/engines/Makefile.am @@ -0,0 +1,11 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = \ +common \ +software_x11 \ +fb \ +software_win32_gdi \ +software_qtopia \ +directfb \ +gl_common \ +gl_x11 diff --git a/legacy/evas/src/lib/engines/common/Makefile.am b/legacy/evas/src/lib/engines/common/Makefile.am new file mode 100644 index 0000000000..20c3b94bcb --- /dev/null +++ b/legacy/evas/src/lib/engines/common/Makefile.am @@ -0,0 +1,58 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = 1.4 foreign + +# A list of all the files in the current directory which can be regenerated +MAINTAINERCLEANFILES = Makefile.in + +LDFLAGS = -L/usr/local/lib +INCLUDES = \ + -I. \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/lib/include \ + -I$(includedir) \ + -I/usr/local/include \ + @freetype_cflags@ + +noinst_LTLIBRARIES = libevas_engine_common.la +libevas_engine_common_la_SOURCES = \ +evas_blend_alpha_color_pixel.c \ +evas_blend_color_pixel.c \ +evas_blend_main.c \ +evas_blend_pixel_cmod_pixel.c \ +evas_blend_pixel_mul_pixel.c \ +evas_blend_pixel_pixel.c \ +evas_blit_main.c \ +evas_convert_color.c \ +evas_convert_gry_1.c \ +evas_convert_gry_4.c \ +evas_convert_gry_8.c \ +evas_convert_main.c \ +evas_convert_rgb_16.c \ +evas_convert_rgb_24.c \ +evas_convert_rgb_32.c \ +evas_convert_rgb_8.c \ +evas_cpu.c \ +evas_draw_main.c \ +evas_font_draw.c \ +evas_font_load.c \ +evas_font_main.c \ +evas_font_query.c \ +evas_gradient_main.c \ +evas_image_load.c \ +evas_image_main.c \ +evas_line_main.c \ +evas_polygon_main.c \ +evas_rectangle_main.c \ +evas_scale_main.c \ +evas_scale_sample.c \ +evas_scale_smooth.c \ +evas_tiler.c + +EXTRA_DIST = evas_scale_smooth_scaler.c + +libevas_engine_common_la_LIBADD = \ +$(LDFLAGS) + +libevas_engine_common_la_DEPENDENCIES = \ +$(top_builddir)/config.h diff --git a/legacy/evas/src/lib/engines/common/evas_blend_alpha_color_pixel.c b/legacy/evas/src/lib/engines/common/evas_blend_alpha_color_pixel.c new file mode 100644 index 0000000000..15c4e9f43b --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_blend_alpha_color_pixel.c @@ -0,0 +1,142 @@ +#include "evas_common.h" + +#ifdef BUILD_MMX +#include "evas_mmx.h" +#endif + +extern DATA8 pow_lut[256][256]; +extern const DATA16 const_c1[4]; + +#ifdef BUILD_C +void +blend_alpha_color_rgba_to_rgb_c (DATA8 *src, DATA32 *dst, int len, DATA32 col) +{ + DATA8 *src_ptr; + DATA32 *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + while (dst_ptr < dst_end_ptr) + { + DATA32 tmp; + DATA8 aa; + + aa = (((*src_ptr) +1) * A_VAL(&col)) >> 8; + BLEND_COLOR(aa, R_VAL(dst_ptr), + R_VAL(&col), R_VAL(dst_ptr), + tmp); + BLEND_COLOR(aa, G_VAL(dst_ptr), + G_VAL(&col), G_VAL(dst_ptr), + tmp); + BLEND_COLOR(aa, B_VAL(dst_ptr), + B_VAL(&col), B_VAL(dst_ptr), + tmp); + src_ptr++; + dst_ptr++; + } +} +#endif + +#ifdef BUILD_MMX +void +blend_alpha_color_rgba_to_rgb_mmx (DATA8 *src, DATA32 *dst, int len, DATA32 col) +{ + DATA8 *src_ptr; + DATA32 *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + pxor_r2r(mm6, mm6); + movd_m2r(col, mm1); + punpcklbw_r2r(mm1, mm6); + psrlw_i2r(8, mm6); + movq_m2r(*const_c1, mm5); + paddw_r2r(mm5, mm6); + + pxor_r2r(mm4, mm4); + + while (dst_ptr < dst_end_ptr) + { + DATA32 tmp; + + tmp = 0xffffff; + A_VAL(&tmp) = *src_ptr; + + movd_m2r(tmp, mm1); + + /* this could be more optimial.. but it beats the c code by almost */ + /* double */ + pxor_r2r(mm7, mm7); + punpcklbw_r2r(mm1, mm7); + psrlw_i2r(8, mm7); + pmullw_r2r(mm6, mm7); + psrlw_i2r(8, mm7); + packuswb_r2r(mm7, mm7); + movq_r2r(mm7, mm1); + /* and back to our normal programming... */ + movd_m2r(dst_ptr[0], mm2); + + movq_r2r(mm1, mm3); + + punpcklbw_r2r(mm3, mm3); + punpckhwd_r2r(mm3, mm3); + punpckhdq_r2r(mm3, mm3); + psrlw_i2r(1, mm3); + + psrlq_i2r(16, mm3); + + punpcklbw_r2r(mm4, mm1); + punpcklbw_r2r(mm4, mm2); + + psubw_r2r(mm2, mm1); + psllw_i2r(1, mm1); + paddw_r2r(mm5, mm1); + pmulhw_r2r(mm3, mm1); + paddw_r2r(mm1, mm2); + + packuswb_r2r(mm4, mm2); + movd_r2m(mm2, dst_ptr[0]); + + src_ptr++; + dst_ptr++; + } +} +#endif + +void +blend_alpha_color_rgba_to_rgba_c (DATA8 *src, DATA32 *dst, int len, DATA32 col) +{ + DATA8 *src_ptr; + DATA32 *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + while (dst_ptr < dst_end_ptr) + { + DATA32 tmp; + DATA8 a; + DATA8 aa; + + aa = (((*src_ptr) + 1) * A_VAL(&col)) >> 8; + a = pow_lut[aa][A_VAL(dst_ptr)]; + + BLEND_COLOR(a, R_VAL(dst_ptr), + R_VAL(&col), R_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, G_VAL(dst_ptr), + G_VAL(&col), G_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, B_VAL(dst_ptr), + B_VAL(&col), B_VAL(dst_ptr), + tmp); + A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((aa * (255 - A_VAL(dst_ptr))) / 255); + src_ptr++; + dst_ptr++; + } +} diff --git a/legacy/evas/src/lib/engines/common/evas_blend_color_pixel.c b/legacy/evas/src/lib/engines/common/evas_blend_color_pixel.c new file mode 100644 index 0000000000..13c54d3be7 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_blend_color_pixel.c @@ -0,0 +1,215 @@ +#include "evas_common.h" + +#ifdef BUILD_MMX +#include "evas_mmx.h" +#endif + +extern DATA8 pow_lut[256][256]; +extern const DATA16 const_c1[4]; + +#ifdef BUILD_C +void +blend_color_rgba_to_rgb_c(DATA32 src, DATA32 *dst, int len) +{ + DATA32 *dst_ptr, *dst_end_ptr; + + dst_ptr = dst; + dst_end_ptr = dst + len; + + while (dst_ptr < dst_end_ptr) + { + DATA32 tmp; + + BLEND_COLOR(A_VAL(&src), R_VAL(dst_ptr), + R_VAL(&src), R_VAL(dst_ptr), + tmp); + BLEND_COLOR(A_VAL(&src), G_VAL(dst_ptr), + G_VAL(&src), G_VAL(dst_ptr), + tmp); + BLEND_COLOR(A_VAL(&src), B_VAL(dst_ptr), + B_VAL(&src), B_VAL(dst_ptr), + tmp); + dst_ptr++; + } +} +#endif + +#ifdef BUILD_MMX +void +blend_color_rgba_to_rgb_mmx(DATA32 src, DATA32 *dst, int len) +{ + DATA32 *dst_ptr, *dst_end_ptr; + + dst_ptr = dst; + dst_end_ptr = dst + len; + + pxor_r2r(mm4, mm4); + movq_m2r(*const_c1, mm5); + + movd_m2r(src, mm6); + + movq_r2r(mm6, mm3); + punpcklbw_r2r(mm3, mm3); + punpckhwd_r2r(mm3, mm3); + punpckhdq_r2r(mm3, mm3); + psrlw_i2r(1, mm3); + + psrlq_i2r(16, mm3); + + while (dst_ptr < dst_end_ptr) + { + movq_r2r(mm6, mm1); + + movd_m2r(dst_ptr[0], mm2); + + punpcklbw_r2r(mm4, mm1); + punpcklbw_r2r(mm4, mm2); + + psubw_r2r(mm2, mm1); + psllw_i2r(1, mm1); + paddw_r2r(mm5, mm1); + pmulhw_r2r(mm3, mm1); + paddw_r2r(mm1, mm2); + + packuswb_r2r(mm4, mm2); + movd_r2m(mm2, dst_ptr[0]); + + dst_ptr++; + } +} +#endif + +/****************************************************************************/ + +void +blend_color_rgba_to_rgba_c(DATA32 src, DATA32 *dst, int len) +{ + DATA32 *dst_ptr, *dst_end_ptr; + + dst_ptr = dst; + dst_end_ptr = dst + len; + + while (dst_ptr < dst_end_ptr) + { + DATA32 tmp; + DATA8 a; + + a = pow_lut[A_VAL(&src)][A_VAL(dst_ptr)]; + + BLEND_COLOR(a, R_VAL(dst_ptr), + R_VAL(&src), R_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, G_VAL(dst_ptr), + G_VAL(&src), G_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, B_VAL(dst_ptr), + B_VAL(&src), B_VAL(dst_ptr), + tmp); + A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((A_VAL(&src) * (255 - A_VAL(dst_ptr))) / 255); + + dst_ptr++; + } +} + +/****************************************************************************/ + +#ifdef BUILD_C +void +copy_color_rgba_to_rgba_c(DATA32 src, DATA32 *dst, int len) +{ + DATA32 *dst_ptr, *dst_end_ptr; + + dst_ptr = dst; + dst_end_ptr = dst + len; + + while (dst_ptr < dst_end_ptr) + { + *dst_ptr = src; + dst_ptr++; + } +} +#endif + +#ifdef BUILD_MMX +void +copy_color_rgba_to_rgba_mmx(DATA32 src, DATA32 *dst, int len) +{ + DATA32 *dst_ptr, *dst_end_ptr, *dst_end_ptr_pre; + + dst_ptr = dst; + dst_end_ptr = dst + len; + dst_end_ptr_pre = dst + ((len / 10) * 10); + + movd_m2r(src, mm0); + movd_m2r(src, mm1); + psllq_i2r(32, mm0); + por_r2r(mm1, mm0); + + while (dst_ptr < dst_end_ptr_pre) + { + movq_r2m(mm0, dst_ptr[0]); + movq_r2m(mm0, dst_ptr[2]); + movq_r2m(mm0, dst_ptr[4]); + movq_r2m(mm0, dst_ptr[6]); + movq_r2m(mm0, dst_ptr[8]); + dst_ptr+=10; + } + while (dst_ptr < dst_end_ptr) + { + *dst_ptr = src; + dst_ptr++; + } +} +#endif + +#ifdef BUILD_SSE +void +copy_color_rgba_to_rgba_sse(DATA32 src, DATA32 *dst, int len) +{ + DATA32 *dst_ptr, *dst_end_ptr, *dst_end_ptr_pre; + + dst_ptr = dst; + dst_end_ptr = dst + len; + dst_end_ptr_pre = dst + ((len / 10) * 10); + + movd_m2r(src, mm0); + movd_m2r(src, mm1); + psllq_i2r(32, mm0); + por_r2r(mm1, mm0); + + while (dst_ptr < dst_end_ptr_pre) + { + prefetch(&dst_ptr[128]); + movq_r2m(mm0, dst_ptr[0]); + movq_r2m(mm0, dst_ptr[2]); + movq_r2m(mm0, dst_ptr[4]); + movq_r2m(mm0, dst_ptr[6]); + movq_r2m(mm0, dst_ptr[8]); + dst_ptr+=10; + } + while (dst_ptr < dst_end_ptr) + { + *dst_ptr = src; + dst_ptr++; + } +} +#endif + +/****************************************************************************/ + +void +copy_color_rgb_to_rgba_c(DATA32 src, DATA32 *dst, int len) +{ + DATA32 *dst_ptr, *dst_end_ptr; + + dst_ptr = dst; + dst_end_ptr = dst + len; + + src |= PIXEL_SOLID_ALPHA; + + while (dst_ptr < dst_end_ptr) + { + *dst_ptr = src; + dst_ptr++; + } +} diff --git a/legacy/evas/src/lib/engines/common/evas_blend_main.c b/legacy/evas/src/lib/engines/common/evas_blend_main.c new file mode 100644 index 0000000000..8ab588ab1e --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_blend_main.c @@ -0,0 +1,44 @@ +#include "evas_common.h" + +#ifdef BUILD_MMX +#include "evas_mmx.h" +#endif + +static void blend_init_pow_lut(void); + +DATA8 pow_lut[256][256]; +const DATA16 const_c1[4] = {1, 1, 1, 1}; + +void +blend_init(void) +{ + static int initialised = 0; + static int mmx = 0; + static int sse = 0; + static int sse2 = 0; + + if (initialised) return; + initialised = 1; + + cpu_can_do(&mmx, &sse, &sse2); + + blend_init_pow_lut(); +} + +void +blend_init_pow_lut(void) +{ + int i, j; + + for (i = 0; i < 256; i++) + { + for (j = 0; j < 256; j++) + { + int divisor; + + divisor = (i + (j * (255 - i)) / 255); + if (divisor > 0) pow_lut[i][j] = (i * 255) / divisor; + else pow_lut[i][j] = 0; + } + } +} diff --git a/legacy/evas/src/lib/engines/common/evas_blend_pixel_cmod_pixel.c b/legacy/evas/src/lib/engines/common/evas_blend_pixel_cmod_pixel.c new file mode 100644 index 0000000000..b5509217d5 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_blend_pixel_cmod_pixel.c @@ -0,0 +1,119 @@ +#include "evas_common.h" + +#ifdef BUILD_MMX +#include "evas_mmx.h" +#endif + +extern DATA8 pow_lut[256][256]; +extern const DATA16 const_c1[4]; + +void +blend_pixels_cmod_rgba_to_rgb_c(DATA32 *src, DATA32 *dst, int len, DATA8 *rmod, DATA8 *gmod, DATA8 *bmod, DATA8 *amod) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + while (dst_ptr < dst_end_ptr) + { + DATA32 tmp; + DATA8 a; + + a = amod[A_VAL(src_ptr)]; + if (a) /* hmmm - do we need this? */ + { + BLEND_COLOR(a, R_VAL(dst_ptr), + rmod[R_VAL(src_ptr)], R_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, G_VAL(dst_ptr), + gmod[G_VAL(src_ptr)], G_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, B_VAL(dst_ptr), + bmod[B_VAL(src_ptr)], B_VAL(dst_ptr), + tmp); + } + src_ptr++; + dst_ptr++; + } +} + +/****************************************************************************/ + +void +blend_pixels_cmod_rgba_to_rgba_c(DATA32 *src, DATA32 *dst, int len, DATA8 *rmod, DATA8 *gmod, DATA8 *bmod, DATA8 *amod) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + while (dst_ptr < dst_end_ptr) + { + DATA32 tmp; + DATA8 a; + + a = pow_lut[amod[A_VAL(src_ptr)]][A_VAL(dst_ptr)]; + if (a) /* hmmm - do we need this? */ + { + BLEND_COLOR(a, R_VAL(dst_ptr), + rmod[R_VAL(src_ptr)], R_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, G_VAL(dst_ptr), + gmod[G_VAL(src_ptr)], G_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, B_VAL(dst_ptr), + bmod[B_VAL(src_ptr)], B_VAL(dst_ptr), + tmp); + A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((amod[A_VAL(src_ptr)] * (255 - A_VAL(dst_ptr))) / 255); + } + src_ptr++; + dst_ptr++; + } +} + +/****************************************************************************/ + +void +copy_pixels_cmod_rgba_to_rgba_c(DATA32 *src, DATA32 *dst, int len, DATA8 *rmod, DATA8 *gmod, DATA8 *bmod, DATA8 *amod) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + while (dst_ptr < dst_end_ptr) + { + R_VAL(dst_ptr) = rmod[R_VAL(src_ptr)]; + G_VAL(dst_ptr) = gmod[G_VAL(src_ptr)]; + B_VAL(dst_ptr) = bmod[B_VAL(src_ptr)]; + A_VAL(dst_ptr) = amod[A_VAL(src_ptr)]; + src_ptr++; + dst_ptr++; + } +} + +/****************************************************************************/ + +void +copy_pixels_cmod_rgb_to_rgba_c(DATA32 *src, DATA32 *dst, int len, DATA8 *rmod, DATA8 *gmod, DATA8 *bmod, DATA8 *amod) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + while (dst_ptr < dst_end_ptr) + { + R_VAL(dst_ptr) = rmod[R_VAL(src_ptr)]; + G_VAL(dst_ptr) = gmod[G_VAL(src_ptr)]; + B_VAL(dst_ptr) = bmod[B_VAL(src_ptr)]; + A_VAL(dst_ptr) = amod[255]; + src_ptr++; + dst_ptr++; + } +} diff --git a/legacy/evas/src/lib/engines/common/evas_blend_pixel_mul_pixel.c b/legacy/evas/src/lib/engines/common/evas_blend_pixel_mul_pixel.c new file mode 100644 index 0000000000..2902105033 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_blend_pixel_mul_pixel.c @@ -0,0 +1,202 @@ +#include "evas_common.h" + +#ifdef BUILD_MMX +#include "evas_mmx.h" +#endif + +extern DATA8 pow_lut[256][256]; +extern const DATA16 const_c1[4]; + +#ifdef BUILD_C +void +blend_pixels_mul_color_rgba_to_rgb_c(DATA32 *src, DATA32 *dst, int len, DATA32 mul_color) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + if ((R_VAL(&mul_color) == 255) && + (G_VAL(&mul_color) == 255) && + (B_VAL(&mul_color) == 255)) + { + while (dst_ptr < dst_end_ptr) + { + DATA32 tmp; + DATA8 a; + + a = (A_VAL(src_ptr) * (A_VAL(&mul_color) + 1)) >> 8; + if (a) /* hmmm - do we need this? */ + { + BLEND_COLOR(a, R_VAL(dst_ptr), + R_VAL(src_ptr), R_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, G_VAL(dst_ptr), + G_VAL(src_ptr), G_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, B_VAL(dst_ptr), + B_VAL(src_ptr), B_VAL(dst_ptr), + tmp); + } + src_ptr++; + dst_ptr++; + } + } + else + { + while (dst_ptr < dst_end_ptr) + { + DATA32 tmp; + DATA8 a; + + a = (A_VAL(src_ptr) * (A_VAL(&mul_color) + 1)) >> 8; + if (a) /* hmmm - do we need this? */ + { + BLEND_COLOR(a, R_VAL(dst_ptr), + ((R_VAL(src_ptr) * (R_VAL(&mul_color) + 1)) >> 8), R_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, G_VAL(dst_ptr), + ((G_VAL(src_ptr) * (G_VAL(&mul_color) + 1)) >> 8), G_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, B_VAL(dst_ptr), + ((B_VAL(src_ptr) * (B_VAL(&mul_color) + 1)) >> 8), B_VAL(dst_ptr), + tmp); + } + src_ptr++; + dst_ptr++; + } + } +} +#endif + +#ifdef BUILD_MMX +void +blend_pixels_mul_color_rgba_to_rgb_mmx(DATA32 *src, DATA32 *dst, int len, DATA32 mul_color) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + pxor_r2r(mm6, mm6); + movd_m2r(mul_color, mm1); + punpcklbw_r2r(mm1, mm6); + psrlw_i2r(8, mm6); + movq_m2r(*const_c1, mm5); + paddw_r2r(mm5, mm6); + + pxor_r2r(mm4, mm4); + + while (dst_ptr < dst_end_ptr) + { + movd_m2r(src_ptr[0], mm1); + + /* this could be more optimial.. but it beats the c code by almost */ + /* double */ + pxor_r2r(mm7, mm7); + punpcklbw_r2r(mm1, mm7); + psrlw_i2r(8, mm7); + pmullw_r2r(mm6, mm7); + psrlw_i2r(8, mm7); + packuswb_r2r(mm7, mm7); + movq_r2r(mm7, mm1); + /* and back to our normal programming... */ + movd_m2r(dst_ptr[0], mm2); + + movq_r2r(mm1, mm3); + + punpcklbw_r2r(mm3, mm3); + punpckhwd_r2r(mm3, mm3); + punpckhdq_r2r(mm3, mm3); + psrlw_i2r(1, mm3); + + psrlq_i2r(16, mm3); + + punpcklbw_r2r(mm4, mm1); + punpcklbw_r2r(mm4, mm2); + + psubw_r2r(mm2, mm1); + psllw_i2r(1, mm1); + paddw_r2r(mm5, mm1); + pmulhw_r2r(mm3, mm1); + paddw_r2r(mm1, mm2); + + packuswb_r2r(mm4, mm2); + movd_r2m(mm2, dst_ptr[0]); + + src_ptr++; + dst_ptr++; + } +} +#endif + +/****************************************************************************/ + +void +blend_pixels_mul_color_rgba_to_rgba_c(DATA32 *src, DATA32 *dst, int len, DATA32 mul_color) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + if ((R_VAL(&mul_color) == 255) && + (G_VAL(&mul_color) == 255) && + (B_VAL(&mul_color) == 255)) + { + while (dst_ptr < dst_end_ptr) + { + DATA32 tmp; + DATA8 a, aa; + + aa = (A_VAL(src_ptr) * (A_VAL(&mul_color) + 1)) >> 8; + if (aa) /* hmmm - do we need this? */ + { + a = pow_lut[aa][A_VAL(dst_ptr)]; + + BLEND_COLOR(a, R_VAL(dst_ptr), + R_VAL(src_ptr), R_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, G_VAL(dst_ptr), + G_VAL(src_ptr), G_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, B_VAL(dst_ptr), + B_VAL(src_ptr), B_VAL(dst_ptr), + tmp); + A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((aa * (255 - A_VAL(dst_ptr))) / 255); + } + src_ptr++; + dst_ptr++; + } + } + else + { + while (dst_ptr < dst_end_ptr) + { + DATA32 tmp; + DATA8 a, aa; + + aa = (A_VAL(src_ptr) * (A_VAL(&mul_color) + 1)) >> 8; + if (aa) /* hmmm - do we need this? */ + { + a = pow_lut[aa][A_VAL(dst_ptr)]; + + BLEND_COLOR(a, R_VAL(dst_ptr), + ((R_VAL(src_ptr) * (R_VAL(&mul_color) + 1)) >> 8), R_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, G_VAL(dst_ptr), + ((G_VAL(src_ptr) * (G_VAL(&mul_color) + 1)) >> 8), G_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, B_VAL(dst_ptr), + ((B_VAL(src_ptr) * (B_VAL(&mul_color) + 1)) >> 8), B_VAL(dst_ptr), + tmp); + A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((aa * (255 - A_VAL(dst_ptr))) / 255); + } + src_ptr++; + dst_ptr++; + } + } +} diff --git a/legacy/evas/src/lib/engines/common/evas_blend_pixel_pixel.c b/legacy/evas/src/lib/engines/common/evas_blend_pixel_pixel.c new file mode 100644 index 0000000000..d3c27d03aa --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_blend_pixel_pixel.c @@ -0,0 +1,334 @@ +#include "evas_common.h" + +#ifdef BUILD_MMX +#include "evas_mmx.h" +#endif + +extern DATA8 pow_lut[256][256]; +extern const DATA16 const_c1[4]; + +#ifdef BUILD_C +void +blend_pixels_rgba_to_rgb_c(DATA32 *src, DATA32 *dst, int len) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + while (dst_ptr < dst_end_ptr) + { + DATA32 tmp; + + if (A_VAL(src_ptr)) /* hmmm - do we need this? */ + { + BLEND_COLOR(A_VAL(src_ptr), R_VAL(dst_ptr), + R_VAL(src_ptr), R_VAL(dst_ptr), + tmp); + BLEND_COLOR(A_VAL(src_ptr), G_VAL(dst_ptr), + G_VAL(src_ptr), G_VAL(dst_ptr), + tmp); + BLEND_COLOR(A_VAL(src_ptr), B_VAL(dst_ptr), + B_VAL(src_ptr), B_VAL(dst_ptr), + tmp); + } + src_ptr++; + dst_ptr++; + } +} +#endif + +#ifdef BUILD_MMX +void +blend_pixels_rgba_to_rgb_mmx(DATA32 *src, DATA32 *dst, int len) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + pxor_r2r(mm4, mm4); + movq_m2r(*const_c1, mm5); + + while (dst_ptr < dst_end_ptr) + { + movd_m2r(src_ptr[0], mm1); + movd_m2r(dst_ptr[0], mm2); + + movq_r2r(mm1, mm3); + punpcklbw_r2r(mm3, mm3); + punpckhwd_r2r(mm3, mm3); + punpckhdq_r2r(mm3, mm3); + psrlw_i2r(1, mm3); + + psrlq_i2r(16, mm3); + + punpcklbw_r2r(mm4, mm1); + punpcklbw_r2r(mm4, mm2); + + psubw_r2r(mm2, mm1); + psllw_i2r(1, mm1); + paddw_r2r(mm5, mm1); + pmulhw_r2r(mm3, mm1); + paddw_r2r(mm1, mm2); + + packuswb_r2r(mm4, mm2); + movd_r2m(mm2, dst_ptr[0]); + + src_ptr++; + dst_ptr++; + } +} +#endif + +void +blend_pixels_rgba_to_rgba_c(DATA32 *src, DATA32 *dst, int len) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + while (dst_ptr < dst_end_ptr) + { + DATA32 tmp; + DATA8 a; + + if (A_VAL(src_ptr)) /* hmmm - do we need this? */ + { + a = pow_lut[A_VAL(src_ptr)][A_VAL(dst_ptr)]; + + BLEND_COLOR(a, R_VAL(dst_ptr), + R_VAL(src_ptr), R_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, G_VAL(dst_ptr), + G_VAL(src_ptr), G_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, B_VAL(dst_ptr), + B_VAL(src_ptr), B_VAL(dst_ptr), + tmp); + A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((A_VAL(src_ptr) * (255 - A_VAL(dst_ptr))) / 255); + } + src_ptr++; + dst_ptr++; + } +} + +/****************************************************************************/ + +#ifdef BUILD_C +void +copy_pixels_rgba_to_rgba_c(DATA32 *src, DATA32 *dst, int len) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + while (dst_ptr < dst_end_ptr) + { + *dst_ptr = *src_ptr; + src_ptr++; + dst_ptr++; + } +} +#endif + +#ifdef BUILD_MMX +void +copy_pixels_rgba_to_rgba_mmx(DATA32 *src, DATA32 *dst, int len) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr, *dst_end_ptr_pre; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + dst_end_ptr_pre = dst + ((len / 10) * 10); + + while (dst_ptr < dst_end_ptr_pre) + { + MOVE_10DWORDS_MMX(src_ptr, dst_ptr); + src_ptr+=10; + dst_ptr+=10; + } + while (dst_ptr < dst_end_ptr) + { + *dst_ptr = *src_ptr; + src_ptr++; + dst_ptr++; + } +} +#endif + +#ifdef BUILD_SSE +void +copy_pixels_rgba_to_rgba_sse(DATA32 *src, DATA32 *dst, int len) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr, *dst_end_ptr_pre; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + dst_end_ptr_pre = dst + ((len / 10) * 10); + + while (dst_ptr < dst_end_ptr_pre) + { + prefetch(&src_ptr[128]); + prefetch(&dst_ptr[128]); + MOVE_10DWORDS_MMX(src_ptr, dst_ptr); + src_ptr+=10; + dst_ptr+=10; + } + while (dst_ptr < dst_end_ptr) + { + *dst_ptr = *src_ptr; + src_ptr++; + dst_ptr++; + } +} +#endif + +void +copy_pixels_rgb_to_rgba_c(DATA32 *src, DATA32 *dst, int len) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src; + dst_ptr = dst; + dst_end_ptr = dst + len; + + while (dst_ptr < dst_end_ptr) + { + *dst_ptr = *src_ptr | PIXEL_SOLID_ALPHA; + src_ptr++; + dst_ptr++; + } +} + +/****************************************************************************/ + +#ifdef BUILD_C +void +copy_pixels_rev_rgba_to_rgba_c(DATA32 *src, DATA32 *dst, int len) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src + len - 1; + dst_ptr = dst + len - 1; + dst_end_ptr = dst; + + while (dst_ptr >= dst_end_ptr) + { + *dst_ptr = *src_ptr; + src_ptr--; + dst_ptr--; + } +} +#endif + +#ifdef BUILD_MMX +void +copy_pixels_rev_rgba_to_rgba_mmx(DATA32 *src, DATA32 *dst, int len) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr, *dst_end_ptr_pre; + + src_ptr = src + len - 10; + dst_ptr = dst + len - 10; + dst_end_ptr = dst; + dst_end_ptr_pre = dst + len - ((len / 10) * 10); + + if (len >= 10) + { + while (dst_ptr >= dst_end_ptr_pre) + { + MOVE_10DWORDS_MMX(src_ptr, dst_ptr); + src_ptr-=10; + dst_ptr-=10; + } + src_ptr+=9; + dst_ptr+=9; + while (dst_ptr >= dst_end_ptr) + { + *dst_ptr = *src_ptr; + src_ptr--; + dst_ptr--; + } + } + else + { + src_ptr = src + len - 1; + dst_ptr = dst + len - 1; + while (dst_ptr >= dst_end_ptr) + { + *dst_ptr = *src_ptr; + src_ptr--; + dst_ptr--; + } + } +} +#endif + +#ifdef BUILD_SSE +void +copy_pixels_rev_rgba_to_rgba_sse(DATA32 *src, DATA32 *dst, int len) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr, *dst_end_ptr_pre; + + src_ptr = src + len - 10; + dst_ptr = dst + len - 10; + dst_end_ptr = dst; + dst_end_ptr_pre = dst + len - ((len / 10) * 10); + + if (len >= 10) + { + while (dst_ptr >= dst_end_ptr_pre) + { + prefetch(&src_ptr[-128]); + prefetch(&dst_ptr[-128]); + MOVE_10DWORDS_MMX(src_ptr, dst_ptr); + src_ptr-=10; + dst_ptr-=10; + } + src_ptr+=9; + dst_ptr+=9; + while (dst_ptr >= dst_end_ptr) + { + *dst_ptr = *src_ptr; + src_ptr--; + dst_ptr--; + } + } + else + { + src_ptr = src + len - 1; + dst_ptr = dst + len - 1; + while (dst_ptr >= dst_end_ptr) + { + *dst_ptr = *src_ptr; + src_ptr--; + dst_ptr--; + } + } +} +#endif + +void +copy_pixels_rev_rgb_to_rgba_c(DATA32 *src, DATA32 *dst, int len) +{ + DATA32 *src_ptr, *dst_ptr, *dst_end_ptr; + + src_ptr = src + len - 1; + dst_ptr = dst + len - 1; + dst_end_ptr = dst; + + while (dst_ptr >= dst_end_ptr) + { + *dst_ptr = *src_ptr | PIXEL_SOLID_ALPHA; + src_ptr--; + dst_ptr--; + } +} diff --git a/legacy/evas/src/lib/engines/common/evas_blit_main.c b/legacy/evas/src/lib/engines/common/evas_blit_main.c new file mode 100644 index 0000000000..bd6e2fedea --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_blit_main.c @@ -0,0 +1,95 @@ +#include "evas_common.h" + +void +blit_init(void) +{ +} + +void +blit_rectangle(RGBA_Image *src, RGBA_Image *dst, int src_x, int src_y, int w, int h, int dst_x, int dst_y) +{ + int y; + Gfx_Func_Blend_Src_Dst func; + DATA32 *src_ptr, *dst_ptr; + + /* clip clip clip */ + if (w <= 0) return; + if (src_x + w > src->image->w) w = src->image->w - src_x; + if (w <= 0) return; + if (src_x < 0) + { + dst_x -= src_x; + w += src_x; + src_x = 0; + } + if (w <= 0) return; + + if (h <= 0) return; + if (src_y + h > src->image->h) h = src->image->h - src_y; + if (h <= 0) return; + if (src_y < 0) + { + dst_y -= src_y; + h += src_y; + src_y = 0; + } + if (h <= 0) return; + + if (w <= 0) return; + if (dst_x + w > dst->image->w) w = dst->image->w - dst_x; + if (w <= 0) return; + if (dst_x < 0) + { + src_x -= dst_x; + w += dst_x; + dst_x = 0; + } + if (w <= 0) return; + + if (h <= 0) return; + if (dst_y + h > dst->image->h) h = dst->image->h - dst_y; + if (h <= 0) return; + if (dst_y < 0) + { + src_y -= dst_y; + h += dst_y; + dst_y = 0; + } + if (h <= 0) return; + + if (dst == src) + { + /* src after dst - go forward */ + if (((src_y * src->image->w) + src_x) > ((dst_y * dst->image->w) + dst_x)) + { + func = draw_func_copy_get(w, 0); + for (y = 0; y < h; y++) + { + src_ptr = src->image->data + ((y + src_y) * src->image->w) + src_x; + dst_ptr = dst->image->data + ((y + dst_y) * dst->image->w) + dst_x; + func(src_ptr, dst_ptr, w); + } + } + /* reverse */ + else + { + func = draw_func_copy_get(w, 1); + for (y = h - 1; y >= 0; y--) + { + src_ptr = src->image->data + ((y + src_y) * src->image->w) + src_x; + dst_ptr = dst->image->data + ((y + dst_y) * dst->image->w) + dst_x; + func(src_ptr, dst_ptr, w); + } + } + } + else + { + func = draw_func_copy_get(w, 0); + for (y = 0; y < h; y++) + { + src_ptr = src->image->data + ((y + src_y) * src->image->w) + src_x; + dst_ptr = dst->image->data + ((y + dst_y) * dst->image->w) + dst_x; + func(src_ptr, dst_ptr, w); + } + } +} diff --git a/legacy/evas/src/lib/engines/common/evas_convert_color.c b/legacy/evas/src/lib/engines/common/evas_convert_color.c new file mode 100644 index 0000000000..ba702f822d --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_convert_color.c @@ -0,0 +1 @@ +#include "evas_common.h" diff --git a/legacy/evas/src/lib/engines/common/evas_convert_gry_1.c b/legacy/evas/src/lib/engines/common/evas_convert_gry_1.c new file mode 100644 index 0000000000..d444c6ac61 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_convert_gry_1.c @@ -0,0 +1,5 @@ +#include "evas_common.h" + +#ifdef BUILD_CONVERT_1_GRY_1 +void convert_rgba_to_1bpp_gry_1_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} +#endif diff --git a/legacy/evas/src/lib/engines/common/evas_convert_gry_4.c b/legacy/evas/src/lib/engines/common/evas_convert_gry_4.c new file mode 100644 index 0000000000..dea10de404 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_convert_gry_4.c @@ -0,0 +1,8 @@ +#include "evas_common.h" + +#ifdef BUILD_CONVERT_4_GRY_4 +void convert_rgba_to_4bpp_gry_4_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} +#endif +#ifdef BUILD_CONVERT_4_GRY_1 +void convert_rgba_to_4bpp_gry_1_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} +#endif diff --git a/legacy/evas/src/lib/engines/common/evas_convert_gry_8.c b/legacy/evas/src/lib/engines/common/evas_convert_gry_8.c new file mode 100644 index 0000000000..393bef49ea --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_convert_gry_8.c @@ -0,0 +1,17 @@ +#include "evas_common.h" + +#ifdef BUILD_CONVERT_8_GRY_1 +void convert_rgba_to_8bpp_gry_256_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} +#endif +#ifdef BUILD_CONVERT_8_GRY_4 +void convert_rgba_to_8bpp_gry_64_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} +#endif +#ifdef BUILD_CONVERT_8_GRY_16 +void convert_rgba_to_8bpp_gry_16_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} +#endif +#ifdef BUILD_CONVERT_8_GRY_64 +void convert_rgba_to_8bpp_gry_4_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} +#endif +#ifdef BUILD_CONVERT_8_GRY_256 +void convert_rgba_to_8bpp_gry_1_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} +#endif diff --git a/legacy/evas/src/lib/engines/common/evas_convert_main.c b/legacy/evas/src/lib/engines/common/evas_convert_main.c new file mode 100644 index 0000000000..4c101efd00 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_convert_main.c @@ -0,0 +1,479 @@ +#include "evas_common.h" + +#ifdef USE_DITHER_44 +const DATA8 _dither_44[4][4] = +{ + { 0, 8, 2, 10}, + {12, 4, 14, 6}, + { 3, 11, 1, 9}, + {15, 7, 13, 5} +}; +#endif + +#ifdef USE_DITHER_128128 +const DATA8 _dither_128128[128][128] = +{ + { 0, 41, 23, 5, 17, 39, 7, 15, 62, 23, 40, 51, 31, 47, 9, 32, 52, 27, 57, 25, 6, 61, 27, 52, 37, 7, 40, 63, 18, 36, 10, 42, 25, 62, 45, 34, 20, 42, 37, 14, 35, 29, 50, 10, 61, 2, 40, 8, 37, 12, 58, 22, 5, 41, 10, 39, 0, 60, 11, 46, 2, 55, 38, 17, 36, 59, 13, 54, 37, 56, 8, 29, 16, 13, 63, 22, 41, 55, 7, 20, 49, 14, 23, 55, 37, 23, 19, 36, 15, 49, 23, 63, 30, 14, 38, 27, 53, 13, 22, 41, 19, 31, 7, 19, 50, 30, 49, 16, 3, 32, 56, 40, 29, 34, 8, 48, 19, 45, 4, 51, 12, 46, 35, 49, 16, 42, 12, 62 }, + { 30, 57, 36, 54, 47, 34, 52, 27, 43, 4, 28, 7, 17, 36, 62, 13, 44, 7, 18, 48, 33, 21, 44, 14, 30, 47, 12, 33, 5, 55, 31, 58, 13, 30, 4, 17, 52, 10, 60, 26, 46, 0, 39, 27, 42, 22, 47, 25, 60, 32, 9, 38, 48, 17, 59, 30, 49, 18, 34, 25, 51, 19, 5, 48, 21, 8, 28, 46, 1, 32, 41, 19, 54, 47, 37, 18, 28, 11, 44, 30, 39, 56, 2, 33, 8, 42, 61, 28, 58, 8, 46, 9, 41, 4, 58, 7, 21, 48, 59, 10, 52, 14, 42, 57, 12, 25, 7, 53, 42, 24, 11, 50, 17, 59, 42, 2, 36, 60, 32, 17, 63, 29, 21, 7, 59, 32, 24, 39 }, + { 22, 8, 16, 32, 3, 25, 13, 57, 18, 45, 58, 39, 55, 20, 5, 42, 23, 34, 63, 1, 51, 10, 58, 4, 60, 23, 53, 27, 44, 21, 3, 48, 8, 50, 43, 54, 27, 32, 5, 55, 21, 58, 12, 53, 6, 36, 14, 50, 17, 29, 53, 15, 24, 52, 7, 36, 13, 42, 4, 53, 9, 35, 61, 26, 56, 32, 49, 15, 62, 23, 6, 60, 2, 31, 4, 48, 58, 38, 15, 61, 5, 25, 47, 28, 50, 15, 7, 40, 3, 32, 33, 52, 25, 50, 35, 42, 61, 3, 28, 36, 23, 63, 4, 33, 46, 62, 36, 23, 60, 6, 54, 28, 4, 37, 23, 55, 25, 8, 42, 54, 14, 6, 56, 38, 19, 52, 4, 46 }, + { 48, 53, 43, 12, 45, 63, 30, 37, 9, 34, 21, 1, 25, 47, 29, 58, 3, 54, 15, 39, 29, 17, 38, 35, 20, 43, 1, 49, 15, 59, 29, 39, 22, 35, 16, 23, 1, 47, 39, 18, 8, 44, 25, 31, 57, 19, 63, 4, 45, 3, 42, 61, 1, 31, 45, 20, 57, 29, 62, 21, 32, 41, 14, 44, 3, 39, 5, 34, 10, 43, 51, 35, 23, 52, 40, 10, 21, 1, 53, 18, 51, 43, 12, 62, 18, 54, 26, 51, 20, 57, 14, 1, 62, 16, 11, 18, 32, 39, 17, 44, 1, 48, 26, 37, 18, 2, 51, 14, 28, 45, 35, 18, 57, 13, 47, 11, 51, 20, 2, 39, 31, 47, 25, 1, 50, 11, 60, 7 }, + { 18, 28, 1, 56, 21, 10, 51, 2, 46, 54, 14, 61, 11, 50, 13, 38, 19, 31, 45, 9, 55, 24, 47, 5, 54, 9, 62, 11, 35, 8, 51, 14, 57, 6, 63, 40, 58, 14, 51, 28, 62, 34, 15, 48, 1, 41, 30, 35, 55, 21, 34, 11, 49, 37, 8, 52, 4, 23, 15, 43, 1, 58, 11, 23, 53, 16, 55, 26, 58, 18, 27, 12, 45, 14, 25, 63, 42, 33, 27, 35, 9, 31, 21, 38, 1, 44, 34, 12, 48, 38, 21, 44, 29, 47, 26, 53, 1, 46, 54, 8, 59, 29, 11, 55, 22, 41, 33, 20, 39, 1, 48, 9, 44, 32, 5, 62, 29, 44, 57, 23, 10, 58, 34, 43, 15, 37, 26, 33 }, + { 51, 38, 59, 24, 35, 42, 19, 60, 5, 32, 41, 26, 43, 33, 7, 53, 48, 11, 59, 23, 42, 2, 61, 30, 16, 40, 32, 24, 56, 41, 19, 33, 37, 26, 47, 9, 31, 22, 2, 45, 9, 54, 4, 37, 21, 52, 11, 23, 7, 57, 16, 25, 55, 18, 63, 27, 46, 39, 56, 10, 50, 37, 29, 47, 19, 63, 24, 9, 46, 2, 39, 60, 9, 57, 30, 7, 49, 11, 59, 3, 45, 57, 5, 60, 29, 22, 5, 60, 30, 9, 59, 18, 40, 6, 57, 36, 30, 12, 24, 34, 15, 40, 52, 6, 49, 9, 58, 4, 63, 12, 26, 61, 22, 53, 38, 16, 35, 14, 28, 50, 42, 17, 5, 28, 62, 20, 54, 12 }, + { 26, 6, 31, 15, 49, 6, 38, 27, 22, 49, 16, 56, 2, 62, 30, 21, 0, 36, 28, 6, 49, 32, 13, 52, 26, 50, 19, 46, 3, 26, 62, 0, 53, 12, 29, 3, 53, 41, 60, 24, 38, 13, 58, 16, 43, 9, 59, 39, 46, 28, 44, 40, 2, 33, 13, 41, 16, 6, 47, 31, 26, 17, 57, 6, 38, 0, 42, 36, 29, 52, 20, 31, 48, 0, 34, 56, 20, 36, 23, 54, 14, 41, 24, 37, 10, 55, 46, 25, 16, 45, 36, 4, 55, 23, 15, 8, 50, 62, 5, 56, 44, 20, 13, 28, 59, 31, 24, 47, 31, 52, 37, 17, 40, 0, 26, 49, 3, 60, 7, 33, 0, 61, 53, 40, 8, 45, 2, 41 }, + { 16, 63, 43, 4, 61, 24, 56, 13, 53, 8, 36, 12, 24, 41, 16, 46, 60, 26, 52, 39, 14, 57, 21, 37, 0, 45, 7, 59, 38, 17, 43, 10, 45, 20, 61, 43, 19, 11, 33, 17, 50, 32, 23, 61, 28, 49, 26, 0, 18, 51, 5, 60, 22, 58, 29, 0, 59, 34, 19, 62, 3, 52, 7, 44, 30, 59, 13, 50, 15, 62, 7, 17, 38, 22, 44, 15, 40, 4, 47, 28, 33, 17, 49, 16, 51, 40, 10, 56, 0, 53, 13, 49, 28, 38, 60, 21, 43, 19, 37, 27, 3, 51, 34, 39, 0, 45, 15, 43, 10, 21, 3, 55, 8, 33, 59, 10, 41, 18, 52, 24, 46, 20, 30, 13, 58, 22, 36, 57 }, + { 50, 34, 11, 47, 29, 17, 44, 0, 33, 63, 28, 46, 52, 5, 57, 10, 42, 18, 4, 63, 20, 8, 44, 10, 56, 34, 14, 29, 5, 54, 23, 59, 32, 49, 7, 34, 49, 27, 56, 0, 42, 7, 46, 3, 40, 6, 54, 32, 62, 13, 36, 10, 47, 8, 35, 49, 24, 51, 12, 40, 22, 35, 60, 12, 22, 51, 33, 4, 40, 25, 43, 55, 5, 54, 12, 61, 26, 51, 8, 62, 0, 53, 7, 63, 2, 32, 19, 34, 42, 24, 31, 63, 2, 10, 45, 33, 0, 48, 9, 61, 22, 47, 8, 62, 18, 56, 7, 54, 27, 57, 46, 30, 50, 19, 45, 30, 56, 36, 22, 47, 11, 38, 3, 51, 32, 48, 18, 9 }, + { 0, 21, 40, 19, 52, 9, 37, 48, 20, 40, 3, 18, 27, 38, 35, 22, 31, 56, 13, 35, 46, 28, 60, 40, 27, 18, 61, 50, 41, 30, 7, 36, 2, 25, 16, 57, 5, 15, 47, 29, 55, 19, 30, 52, 15, 34, 20, 12, 43, 30, 20, 54, 25, 44, 53, 12, 38, 5, 55, 27, 48, 15, 33, 27, 45, 8, 19, 28, 56, 11, 33, 49, 18, 36, 29, 2, 45, 16, 39, 19, 31, 43, 27, 35, 20, 52, 26, 6, 61, 11, 41, 17, 29, 51, 20, 56, 25, 32, 41, 17, 53, 31, 25, 14, 42, 23, 35, 16, 38, 6, 34, 12, 15, 62, 6, 21, 13, 1, 63, 9, 55, 27, 43, 25, 14, 4, 31, 55 }, + { 44, 29, 61, 2, 35, 58, 26, 15, 60, 10, 51, 59, 14, 55, 8, 50, 2, 44, 25, 51, 1, 33, 16, 4, 48, 36, 2, 21, 12, 57, 48, 13, 51, 55, 40, 28, 37, 62, 8, 39, 12, 63, 36, 10, 59, 24, 56, 47, 9, 50, 41, 1, 32, 17, 6, 21, 61, 30, 9, 43, 1, 54, 41, 2, 54, 37, 48, 61, 1, 46, 21, 3, 58, 24, 50, 32, 60, 10, 57, 25, 46, 12, 59, 4, 45, 13, 57, 47, 27, 39, 5, 58, 47, 14, 35, 4, 52, 13, 60, 6, 36, 10, 45, 55, 4, 50, 29, 2, 61, 50, 25, 58, 44, 24, 36, 42, 54, 28, 40, 32, 16, 56, 6, 62, 46, 39, 60, 23 }, + { 7, 48, 14, 54, 23, 40, 4, 45, 30, 22, 42, 32, 1, 44, 20, 29, 58, 8, 37, 19, 41, 54, 24, 58, 9, 53, 25, 46, 34, 16, 23, 38, 27, 11, 18, 1, 52, 21, 35, 22, 48, 5, 25, 45, 18, 38, 2, 27, 35, 4, 57, 15, 62, 39, 57, 28, 42, 16, 36, 60, 24, 18, 10, 63, 20, 5, 16, 23, 37, 14, 59, 27, 41, 8, 13, 42, 21, 35, 6, 50, 3, 38, 15, 48, 30, 39, 17, 3, 49, 14, 53, 33, 24, 7, 61, 44, 11, 39, 23, 49, 19, 58, 1, 32, 36, 12, 60, 41, 20, 13, 41, 4, 39, 1, 48, 8, 18, 51, 14, 44, 5, 37, 21, 34, 1, 26, 10, 37 }, + { 53, 36, 27, 9, 50, 12, 32, 55, 2, 57, 7, 17, 48, 34, 63, 15, 40, 26, 62, 11, 49, 6, 31, 39, 22, 42, 6, 63, 1, 39, 60, 4, 42, 61, 32, 45, 24, 44, 2, 60, 16, 41, 53, 1, 33, 61, 49, 17, 63, 23, 45, 26, 33, 3, 23, 46, 2, 50, 20, 4, 45, 34, 49, 30, 39, 58, 44, 31, 53, 34, 6, 52, 30, 47, 63, 1, 53, 22, 42, 31, 58, 23, 54, 22, 61, 8, 36, 59, 22, 35, 21, 1, 55, 40, 27, 16, 30, 54, 2, 29, 43, 16, 39, 63, 21, 46, 26, 10, 48, 32, 19, 53, 30, 56, 26, 60, 33, 4, 61, 23, 49, 59, 15, 53, 19, 58, 42, 16 }, + { 20, 5, 59, 46, 25, 62, 7, 19, 43, 25, 37, 61, 11, 24, 4, 54, 12, 52, 3, 32, 17, 61, 12, 47, 15, 55, 18, 31, 53, 28, 9, 50, 21, 6, 55, 9, 58, 14, 54, 26, 33, 7, 31, 58, 13, 21, 8, 42, 29, 6, 37, 11, 48, 52, 14, 60, 11, 39, 56, 32, 14, 58, 7, 26, 17, 4, 42, 8, 11, 47, 19, 38, 10, 17, 26, 37, 9, 55, 28, 13, 18, 40, 6, 33, 1, 43, 25, 11, 51, 7, 62, 43, 18, 37, 3, 57, 45, 9, 38, 58, 5, 52, 27, 7, 17, 53, 5, 57, 37, 2, 63, 9, 22, 15, 11, 38, 25, 45, 35, 0, 28, 10, 41, 30, 50, 8, 31, 57 }, + { 49, 33, 16, 38, 1, 42, 51, 34, 53, 14, 28, 49, 30, 56, 36, 23, 43, 20, 38, 56, 22, 45, 28, 0, 62, 35, 26, 44, 11, 19, 52, 35, 44, 15, 30, 38, 10, 31, 40, 4, 46, 50, 20, 40, 27, 44, 51, 14, 56, 53, 19, 59, 7, 29, 41, 19, 35, 25, 8, 52, 22, 44, 13, 53, 50, 32, 61, 24, 56, 25, 63, 0, 45, 57, 33, 59, 16, 46, 4, 62, 50, 11, 60, 37, 52, 19, 55, 29, 37, 46, 13, 26, 48, 10, 50, 34, 21, 63, 26, 13, 42, 33, 22, 55, 35, 28, 43, 15, 24, 51, 27, 34, 46, 49, 58, 3, 52, 9, 57, 19, 48, 55, 3, 35, 12, 45, 24, 3 }, + { 41, 11, 56, 28, 18, 31, 22, 10, 37, 6, 47, 13, 3, 41, 9, 46, 0, 48, 29, 6, 34, 10, 55, 37, 20, 8, 49, 3, 41, 59, 14, 25, 0, 63, 19, 47, 27, 51, 17, 57, 23, 10, 61, 6, 54, 3, 38, 31, 0, 22, 34, 43, 20, 55, 31, 0, 49, 63, 29, 38, 3, 62, 28, 40, 0, 22, 14, 35, 2, 48, 15, 43, 23, 14, 3, 29, 49, 20, 39, 34, 0, 44, 29, 9, 15, 47, 5, 42, 0, 31, 58, 5, 31, 61, 23, 15, 0, 47, 19, 50, 24, 3, 59, 11, 44, 0, 31, 59, 6, 42, 17, 60, 0, 39, 20, 31, 43, 17, 29, 40, 12, 25, 60, 22, 52, 15, 63, 29 }, + { 20, 52, 8, 44, 62, 4, 59, 49, 17, 63, 21, 39, 60, 18, 52, 27, 33, 59, 14, 51, 59, 43, 24, 5, 51, 30, 57, 17, 32, 5, 37, 56, 48, 34, 42, 3, 60, 5, 36, 13, 43, 37, 18, 34, 25, 12, 59, 24, 47, 36, 11, 50, 3, 38, 9, 58, 16, 5, 43, 18, 47, 10, 37, 18, 59, 46, 29, 52, 40, 12, 34, 28, 56, 36, 53, 7, 43, 8, 24, 52, 26, 17, 56, 43, 24, 32, 63, 20, 57, 16, 22, 52, 36, 8, 41, 56, 29, 32, 54, 7, 35, 57, 14, 48, 20, 62, 13, 39, 53, 29, 8, 45, 13, 29, 7, 61, 14, 54, 6, 63, 38, 32, 18, 43, 2, 39, 6, 47 }, + { 0, 58, 23, 35, 13, 46, 12, 39, 0, 31, 55, 24, 5, 35, 15, 61, 17, 5, 39, 25, 18, 2, 50, 33, 41, 13, 39, 23, 62, 46, 29, 12, 22, 8, 56, 25, 20, 49, 32, 62, 0, 56, 11, 46, 63, 42, 9, 16, 55, 5, 60, 15, 62, 26, 45, 21, 36, 51, 13, 57, 31, 24, 55, 6, 35, 9, 57, 5, 20, 60, 7, 51, 5, 19, 40, 25, 61, 32, 56, 12, 36, 48, 21, 2, 58, 12, 39, 28, 9, 50, 40, 12, 44, 18, 25, 49, 6, 38, 11, 62, 18, 46, 30, 9, 40, 25, 49, 19, 10, 36, 55, 22, 33, 52, 41, 18, 37, 27, 49, 21, 2, 46, 7, 53, 33, 61, 27, 35 }, + { 41, 31, 5, 39, 51, 26, 33, 57, 27, 41, 9, 44, 54, 29, 48, 7, 44, 36, 57, 10, 31, 63, 16, 45, 11, 60, 1, 47, 7, 20, 43, 3, 58, 36, 13, 52, 39, 7, 15, 28, 22, 48, 30, 21, 1, 29, 49, 44, 27, 17, 40, 30, 24, 42, 12, 53, 33, 7, 47, 20, 1, 42, 11, 49, 25, 43, 17, 32, 45, 27, 41, 21, 31, 62, 11, 49, 2, 15, 42, 5, 63, 7, 41, 27, 49, 6, 54, 23, 46, 34, 2, 28, 54, 3, 59, 12, 46, 17, 42, 28, 40, 1, 37, 51, 5, 55, 2, 34, 47, 16, 3, 62, 47, 5, 23, 56, 1, 44, 12, 34, 51, 16, 57, 11, 25, 17, 54, 13 }, + { 60, 26, 55, 18, 3, 60, 20, 6, 52, 15, 50, 19, 32, 11, 23, 53, 26, 21, 1, 47, 42, 27, 8, 58, 21, 27, 53, 36, 26, 54, 31, 50, 17, 30, 45, 1, 29, 59, 44, 53, 41, 4, 35, 58, 51, 19, 32, 4, 52, 34, 48, 8, 51, 5, 56, 2, 25, 61, 27, 38, 54, 27, 62, 21, 51, 1, 39, 62, 10, 50, 1, 58, 13, 47, 38, 18, 35, 54, 22, 51, 30, 19, 59, 34, 14, 32, 44, 4, 60, 15, 52, 62, 20, 43, 30, 35, 21, 60, 4, 52, 12, 24, 61, 18, 30, 42, 23, 61, 25, 50, 27, 38, 11, 59, 12, 35, 50, 30, 59, 24, 8, 42, 28, 37, 48, 9, 44, 21 }, + { 10, 47, 15, 50, 30, 43, 8, 45, 29, 2, 36, 59, 1, 58, 41, 3, 63, 31, 54, 20, 13, 55, 35, 38, 4, 44, 15, 9, 61, 2, 14, 38, 61, 10, 23, 54, 18, 12, 24, 2, 14, 55, 16, 8, 38, 14, 41, 60, 10, 23, 1, 58, 32, 17, 28, 37, 41, 15, 3, 60, 15, 33, 4, 36, 16, 59, 28, 14, 23, 55, 37, 18, 44, 28, 2, 57, 30, 10, 27, 46, 14, 38, 3, 53, 21, 61, 17, 35, 10, 41, 26, 7, 33, 9, 57, 1, 53, 37, 26, 20, 56, 48, 9, 33, 58, 16, 37, 7, 45, 1, 57, 15, 32, 26, 42, 23, 7, 20, 4, 54, 31, 62, 22, 1, 59, 30, 4, 51 }, + { 36, 2, 38, 11, 24, 36, 54, 22, 62, 47, 25, 8, 28, 45, 16, 38, 12, 43, 9, 37, 49, 3, 23, 52, 18, 30, 50, 33, 19, 42, 49, 26, 6, 40, 47, 35, 63, 38, 50, 33, 60, 26, 36, 47, 24, 57, 6, 26, 39, 63, 19, 44, 14, 46, 61, 9, 50, 30, 45, 23, 10, 50, 44, 8, 31, 54, 6, 46, 36, 4, 30, 54, 8, 52, 22, 41, 4, 60, 40, 0, 58, 24, 45, 10, 37, 1, 48, 30, 56, 17, 38, 48, 24, 47, 19, 39, 14, 8, 45, 32, 2, 34, 27, 44, 4, 52, 11, 56, 31, 21, 40, 19, 44, 51, 2, 63, 46, 58, 36, 43, 14, 5, 50, 38, 14, 56, 40, 23 }, + { 61, 46, 32, 63, 54, 1, 14, 34, 12, 40, 18, 49, 37, 10, 61, 30, 51, 24, 60, 7, 29, 40, 62, 11, 46, 58, 6, 56, 24, 10, 34, 52, 21, 59, 16, 3, 27, 5, 20, 46, 9, 40, 7, 62, 2, 30, 53, 15, 48, 10, 28, 35, 54, 6, 21, 34, 18, 55, 7, 40, 57, 19, 26, 60, 41, 13, 24, 51, 19, 61, 9, 25, 34, 15, 63, 11, 45, 17, 20, 47, 33, 8, 31, 62, 43, 26, 53, 7, 24, 59, 0, 13, 55, 4, 62, 27, 51, 31, 63, 15, 58, 7, 54, 14, 46, 22, 28, 43, 12, 63, 8, 54, 5, 17, 39, 33, 15, 10, 27, 17, 47, 34, 19, 45, 27, 12, 33, 17 }, + { 5, 28, 21, 7, 17, 48, 42, 58, 23, 4, 63, 14, 55, 21, 34, 5, 19, 0, 45, 17, 52, 15, 25, 32, 0, 22, 40, 13, 45, 62, 18, 0, 43, 11, 33, 55, 30, 42, 57, 19, 51, 31, 22, 43, 18, 45, 34, 0, 43, 31, 56, 3, 23, 40, 59, 0, 44, 13, 48, 35, 2, 32, 46, 0, 21, 48, 35, 3, 40, 32, 43, 59, 0, 48, 33, 26, 53, 36, 55, 12, 51, 16, 55, 5, 18, 29, 11, 39, 51, 19, 45, 31, 42, 21, 35, 6, 22, 47, 10, 38, 23, 50, 20, 36, 0, 60, 38, 4, 50, 35, 48, 34, 24, 57, 9, 53, 28, 48, 61, 0, 56, 24, 53, 3, 63, 6, 42, 57 }, + { 13, 53, 45, 40, 58, 27, 6, 16, 38, 51, 33, 30, 43, 2, 47, 56, 40, 50, 33, 57, 27, 5, 47, 42, 60, 36, 16, 54, 28, 4, 37, 57, 28, 51, 22, 8, 45, 14, 6, 39, 0, 54, 11, 59, 28, 12, 50, 21, 61, 13, 19, 38, 49, 11, 25, 37, 58, 29, 22, 63, 14, 56, 12, 53, 30, 63, 9, 57, 26, 12, 47, 16, 23, 39, 50, 6, 31, 2, 25, 6, 28, 41, 36, 22, 50, 57, 42, 3, 34, 8, 28, 61, 11, 50, 16, 54, 41, 0, 55, 43, 5, 29, 41, 63, 25, 16, 53, 18, 26, 10, 21, 0, 61, 30, 41, 22, 3, 38, 20, 39, 29, 8, 41, 16, 36, 52, 22, 19 }, + { 55, 34, 0, 25, 10, 32, 56, 44, 28, 0, 57, 7, 26, 53, 23, 8, 13, 35, 22, 12, 36, 60, 20, 8, 14, 29, 48, 2, 41, 49, 23, 13, 39, 7, 48, 58, 25, 53, 34, 62, 28, 16, 48, 4, 37, 56, 27, 5, 36, 52, 46, 7, 62, 33, 52, 11, 17, 53, 5, 28, 41, 24, 38, 17, 5, 39, 20, 45, 15, 56, 5, 38, 60, 8, 14, 57, 21, 48, 62, 39, 59, 13, 1, 60, 9, 32, 16, 63, 44, 25, 52, 15, 36, 2, 60, 29, 12, 33, 25, 17, 59, 45, 13, 8, 49, 32, 6, 40, 59, 29, 45, 37, 13, 47, 6, 55, 30, 45, 9, 52, 13, 59, 25, 47, 32, 1, 49, 30 }, + { 9, 39, 14, 61, 49, 37, 3, 20, 50, 13, 41, 19, 46, 17, 38, 59, 28, 62, 4, 44, 54, 1, 34, 51, 55, 7, 63, 32, 21, 8, 56, 31, 62, 19, 36, 1, 41, 17, 24, 12, 42, 35, 25, 52, 20, 8, 44, 59, 25, 2, 22, 42, 16, 29, 4, 46, 20, 36, 43, 9, 51, 8, 49, 26, 58, 33, 54, 1, 37, 29, 52, 20, 27, 45, 19, 35, 42, 16, 10, 32, 20, 49, 46, 27, 40, 4, 47, 22, 13, 55, 4, 47, 26, 44, 23, 40, 58, 19, 48, 13, 31, 2, 57, 34, 42, 19, 61, 32, 14, 55, 5, 51, 26, 19, 58, 16, 49, 14, 62, 5, 33, 44, 21, 7, 60, 26, 11, 41 }, + { 62, 24, 47, 29, 8, 19, 53, 11, 60, 24, 32, 61, 4, 55, 31, 2, 49, 16, 39, 9, 31, 24, 43, 17, 26, 38, 11, 25, 58, 43, 12, 35, 3, 46, 15, 32, 63, 4, 49, 56, 2, 60, 10, 32, 63, 17, 39, 12, 55, 30, 57, 9, 48, 55, 39, 24, 60, 2, 58, 31, 19, 61, 34, 3, 42, 11, 22, 46, 7, 61, 10, 42, 3, 55, 32, 1, 58, 28, 44, 54, 4, 34, 23, 15, 56, 20, 37, 58, 6, 30, 38, 18, 63, 9, 32, 5, 51, 3, 62, 37, 52, 18, 39, 23, 3, 51, 9, 47, 1, 23, 43, 15, 60, 35, 11, 40, 1, 36, 31, 26, 57, 2, 37, 54, 18, 44, 58, 16 }, + { 5, 51, 3, 33, 43, 62, 21, 42, 35, 9, 48, 15, 36, 10, 22, 42, 20, 46, 26, 56, 50, 12, 59, 3, 48, 19, 45, 53, 1, 27, 47, 17, 52, 24, 56, 11, 51, 21, 37, 30, 20, 46, 14, 41, 1, 47, 33, 7, 41, 17, 35, 27, 20, 1, 14, 54, 26, 33, 18, 47, 1, 44, 14, 59, 16, 52, 28, 18, 49, 31, 25, 34, 63, 13, 51, 24, 9, 50, 3, 23, 38, 63, 7, 52, 29, 46, 11, 33, 50, 22, 57, 36, 1, 57, 49, 17, 39, 28, 9, 35, 6, 27, 53, 15, 55, 30, 24, 58, 36, 41, 11, 52, 32, 3, 44, 25, 62, 23, 51, 15, 42, 22, 50, 10, 39, 4, 31, 35 }, + { 46, 22, 57, 17, 12, 39, 26, 5, 31, 59, 1, 45, 27, 62, 52, 7, 58, 33, 6, 18, 39, 22, 33, 41, 57, 5, 35, 18, 40, 16, 60, 5, 29, 42, 7, 39, 27, 44, 9, 47, 8, 26, 54, 22, 51, 29, 24, 49, 15, 61, 4, 51, 31, 63, 43, 6, 50, 8, 39, 12, 53, 37, 23, 30, 40, 6, 62, 43, 14, 53, 2, 49, 7, 36, 17, 41, 61, 37, 18, 56, 11, 18, 44, 35, 2, 19, 61, 0, 41, 14, 8, 30, 43, 12, 24, 46, 14, 54, 42, 21, 44, 61, 10, 46, 37, 11, 44, 7, 18, 63, 20, 29, 7, 49, 28, 54, 8, 43, 4, 48, 18, 63, 12, 29, 48, 24, 59, 20 }, + { 13, 36, 28, 54, 35, 2, 56, 46, 16, 49, 22, 40, 11, 34, 14, 43, 29, 12, 63, 48, 2, 61, 7, 15, 28, 30, 50, 9, 61, 33, 38, 23, 54, 13, 61, 33, 3, 59, 16, 35, 58, 40, 5, 38, 13, 57, 3, 58, 37, 21, 45, 12, 39, 7, 35, 30, 13, 56, 22, 62, 27, 6, 55, 10, 48, 21, 33, 2, 38, 23, 40, 20, 44, 29, 59, 4, 26, 12, 33, 47, 28, 53, 31, 13, 59, 41, 27, 49, 26, 54, 45, 16, 53, 21, 35, 7, 59, 26, 11, 56, 1, 24, 33, 4, 28, 62, 21, 49, 31, 2, 56, 39, 24, 58, 13, 17, 37, 21, 56, 10, 38, 0, 34, 55, 15, 43, 1, 52 }, + { 42, 9, 50, 6, 25, 60, 14, 38, 10, 29, 53, 18, 57, 3, 25, 51, 0, 53, 25, 17, 29, 37, 52, 46, 0, 62, 14, 37, 4, 50, 10, 44, 0, 46, 20, 25, 50, 19, 55, 0, 23, 31, 62, 34, 11, 45, 19, 32, 0, 53, 10, 59, 23, 47, 18, 60, 42, 28, 37, 3, 50, 15, 35, 44, 0, 51, 27, 60, 9, 57, 16, 58, 11, 22, 46, 15, 53, 48, 7, 42, 0, 60, 5, 49, 24, 54, 9, 17, 39, 5, 34, 62, 3, 40, 60, 31, 0, 47, 29, 16, 49, 39, 59, 17, 50, 0, 40, 13, 53, 38, 16, 46, 0, 42, 34, 60, 2, 53, 29, 31, 58, 46, 27, 6, 61, 8, 37, 28 }, + { 0, 63, 21, 40, 45, 18, 51, 23, 63, 34, 6, 43, 28, 38, 55, 19, 40, 35, 8, 41, 54, 10, 21, 32, 39, 23, 53, 26, 55, 28, 22, 63, 30, 34, 9, 48, 6, 38, 29, 43, 49, 6, 18, 52, 27, 61, 9, 43, 28, 42, 33, 26, 56, 3, 51, 23, 0, 48, 16, 45, 32, 25, 63, 20, 57, 17, 42, 12, 35, 47, 5, 31, 39, 56, 6, 30, 34, 21, 61, 25, 14, 40, 22, 38, 15, 6, 36, 56, 20, 60, 25, 12, 51, 27, 10, 56, 42, 20, 36, 63, 32, 6, 21, 41, 12, 34, 60, 26, 5, 48, 27, 10, 62, 19, 6, 47, 39, 14, 45, 7, 24, 17, 41, 32, 23, 51, 19, 56 }, + { 45, 31, 15, 59, 4, 33, 7, 47, 0, 41, 13, 61, 4, 47, 9, 23, 60, 14, 57, 31, 4, 45, 59, 6, 58, 10, 44, 20, 8, 42, 15, 6, 55, 17, 58, 31, 53, 12, 61, 10, 15, 57, 43, 2, 23, 35, 48, 14, 54, 6, 18, 49, 15, 38, 11, 34, 62, 9, 21, 58, 11, 41, 4, 31, 38, 8, 29, 55, 19, 36, 27, 52, 0, 25, 50, 43, 1, 39, 8, 55, 35, 51, 10, 30, 45, 62, 29, 2, 46, 10, 32, 48, 18, 38, 5, 22, 33, 8, 51, 3, 14, 44, 54, 25, 57, 30, 18, 52, 33, 22, 59, 28, 36, 52, 32, 21, 26, 50, 5, 55, 35, 60, 14, 54, 4, 40, 16, 33 }, + { 27, 3, 49, 10, 30, 40, 55, 27, 57, 24, 52, 21, 32, 17, 60, 30, 5, 44, 27, 49, 19, 34, 13, 24, 43, 36, 3, 49, 31, 59, 37, 48, 26, 41, 2, 41, 14, 36, 21, 32, 40, 26, 13, 49, 55, 5, 16, 40, 25, 60, 36, 1, 63, 29, 17, 44, 25, 40, 52, 5, 29, 47, 54, 13, 46, 24, 60, 4, 51, 22, 63, 14, 45, 18, 12, 62, 17, 57, 19, 42, 3, 26, 58, 48, 1, 21, 40, 52, 23, 37, 44, 1, 29, 58, 43, 50, 15, 61, 19, 45, 58, 28, 7, 48, 2, 46, 8, 42, 3, 55, 8, 50, 12, 4, 55, 10, 63, 33, 20, 40, 11, 3, 46, 20, 48, 26, 61, 11 }, + { 44, 56, 24, 36, 53, 19, 12, 37, 16, 44, 7, 36, 49, 54, 11, 37, 48, 21, 15, 1, 62, 25, 47, 56, 16, 18, 51, 12, 40, 1, 24, 11, 52, 16, 23, 59, 28, 1, 45, 53, 4, 60, 37, 21, 39, 30, 63, 20, 52, 10, 30, 45, 8, 41, 54, 4, 57, 7, 34, 55, 36, 18, 23, 59, 2, 48, 11, 32, 44, 1, 41, 8, 33, 54, 38, 23, 30, 46, 6, 29, 62, 18, 32, 16, 55, 34, 14, 11, 61, 7, 55, 16, 53, 13, 23, 2, 55, 37, 26, 10, 33, 23, 36, 16, 38, 22, 56, 15, 24, 43, 35, 17, 44, 40, 25, 46, 16, 1, 57, 25, 49, 36, 28, 62, 9, 35, 7, 53 }, + { 17, 38, 8, 61, 1, 50, 26, 62, 3, 31, 56, 15, 1, 26, 40, 2, 34, 51, 56, 36, 42, 9, 38, 2, 29, 60, 32, 57, 19, 62, 34, 47, 4, 57, 39, 7, 44, 63, 24, 18, 46, 28, 8, 54, 1, 34, 7, 46, 3, 37, 50, 23, 57, 21, 13, 46, 31, 20, 43, 15, 1, 61, 8, 33, 37, 17, 56, 26, 15, 49, 24, 59, 28, 3, 56, 9, 52, 32, 13, 49, 10, 43, 5, 45, 8, 25, 59, 42, 28, 33, 19, 40, 8, 63, 35, 47, 25, 4, 40, 52, 1, 60, 12, 53, 63, 9, 29, 60, 37, 19, 1, 62, 31, 20, 58, 12, 41, 30, 43, 9, 18, 52, 22, 1, 39, 30, 58, 21 }, + { 13, 47, 29, 18, 43, 34, 5, 48, 20, 42, 10, 45, 30, 58, 20, 63, 24, 11, 6, 28, 54, 14, 22, 52, 41, 7, 26, 5, 45, 15, 53, 13, 35, 27, 18, 50, 12, 33, 5, 56, 10, 17, 45, 24, 59, 15, 50, 26, 56, 13, 19, 5, 32, 52, 27, 36, 2, 61, 12, 26, 49, 40, 27, 52, 13, 50, 6, 39, 61, 34, 10, 37, 48, 20, 41, 27, 2, 36, 59, 24, 54, 33, 63, 20, 38, 50, 3, 17, 52, 4, 58, 27, 45, 21, 32, 11, 48, 17, 57, 20, 46, 38, 25, 43, 4, 34, 51, 6, 13, 45, 57, 26, 6, 48, 2, 35, 53, 23, 61, 34, 59, 6, 42, 56, 13, 51, 2, 41 }, + { 32, 5, 55, 23, 58, 14, 22, 52, 29, 15, 61, 25, 51, 8, 43, 13, 53, 41, 46, 20, 3, 33, 63, 11, 48, 21, 54, 38, 28, 3, 30, 43, 21, 62, 9, 31, 55, 22, 51, 29, 37, 62, 32, 12, 42, 29, 41, 9, 33, 44, 62, 28, 43, 1, 59, 19, 48, 30, 51, 39, 24, 4, 58, 19, 42, 29, 22, 43, 3, 18, 53, 5, 13, 50, 16, 60, 45, 21, 7, 40, 15, 0, 26, 53, 13, 31, 43, 24, 47, 31, 15, 49, 2, 41, 6, 59, 29, 42, 9, 30, 14, 7, 49, 18, 31, 47, 20, 39, 49, 32, 11, 41, 54, 15, 61, 18, 7, 38, 4, 13, 44, 28, 15, 32, 45, 19, 27, 49 }, + { 63, 34, 11, 39, 2, 45, 37, 8, 59, 39, 33, 4, 36, 17, 48, 5, 29, 18, 32, 61, 39, 50, 5, 27, 35, 0, 46, 12, 22, 49, 60, 6, 54, 0, 38, 49, 2, 42, 15, 40, 0, 47, 20, 51, 3, 57, 18, 61, 22, 0, 39, 16, 55, 12, 35, 8, 41, 22, 6, 59, 16, 45, 10, 36, 0, 62, 9, 54, 30, 58, 21, 43, 63, 31, 7, 35, 12, 48, 58, 28, 47, 37, 41, 9, 57, 20, 61, 0, 36, 11, 57, 35, 23, 52, 37, 18, 0, 62, 22, 55, 35, 62, 27, 54, 0, 15, 61, 28, 2, 59, 22, 9, 37, 27, 33, 51, 29, 48, 19, 50, 25, 37, 10, 57, 5, 37, 60, 8 }, + { 20, 25, 46, 52, 31, 60, 12, 55, 0, 19, 11, 46, 62, 35, 23, 38, 57, 0, 55, 10, 16, 30, 58, 44, 17, 59, 29, 63, 42, 8, 36, 20, 33, 46, 16, 61, 25, 35, 8, 54, 26, 7, 58, 22, 34, 6, 47, 14, 53, 31, 48, 9, 37, 25, 49, 63, 16, 55, 45, 14, 34, 63, 21, 53, 25, 33, 46, 16, 35, 7, 46, 29, 0, 39, 25, 55, 22, 34, 18, 4, 56, 11, 23, 51, 28, 6, 39, 14, 62, 44, 19, 8, 60, 12, 56, 28, 50, 34, 39, 5, 51, 3, 41, 12, 57, 35, 10, 53, 25, 17, 52, 30, 47, 0, 43, 14, 5, 57, 31, 55, 0, 63, 47, 23, 54, 24, 14, 43 }, + { 0, 57, 16, 6, 26, 19, 35, 28, 49, 42, 54, 26, 21, 1, 59, 27, 9, 47, 26, 44, 50, 22, 13, 40, 8, 37, 10, 34, 17, 56, 25, 58, 13, 27, 44, 9, 20, 58, 31, 17, 60, 36, 10, 41, 53, 25, 36, 39, 4, 24, 58, 17, 60, 4, 22, 38, 10, 32, 0, 50, 31, 7, 28, 47, 12, 57, 5, 26, 52, 23, 14, 40, 57, 17, 47, 5, 53, 1, 44, 31, 19, 60, 46, 2, 35, 48, 30, 54, 22, 5, 51, 39, 25, 31, 4, 43, 14, 9, 45, 16, 24, 44, 19, 29, 40, 23, 44, 7, 38, 42, 4, 63, 12, 54, 23, 59, 22, 42, 8, 15, 40, 21, 8, 34, 3, 41, 30, 50 }, + { 39, 10, 48, 33, 41, 54, 5, 47, 23, 13, 32, 7, 52, 44, 14, 39, 58, 18, 35, 6, 37, 2, 60, 24, 55, 19, 53, 2, 51, 32, 1, 41, 51, 4, 40, 29, 47, 3, 52, 44, 13, 49, 28, 16, 1, 62, 11, 27, 52, 35, 5, 42, 29, 47, 14, 56, 28, 53, 26, 38, 9, 56, 40, 3, 38, 15, 41, 60, 1, 37, 50, 25, 11, 28, 61, 19, 42, 62, 10, 52, 39, 6, 32, 14, 58, 17, 7, 26, 42, 34, 27, 10, 54, 40, 20, 63, 26, 53, 21, 61, 32, 7, 59, 48, 3, 56, 18, 31, 58, 14, 49, 21, 36, 16, 45, 9, 36, 24, 62, 45, 27, 31, 53, 17, 49, 12, 62, 18 }, + { 28, 59, 21, 58, 2, 16, 38, 9, 62, 3, 56, 41, 10, 31, 50, 4, 32, 52, 12, 63, 23, 46, 33, 31, 4, 48, 25, 43, 14, 23, 47, 11, 22, 55, 14, 60, 23, 37, 11, 39, 23, 2, 45, 56, 31, 43, 19, 55, 16, 46, 21, 51, 11, 33, 44, 2, 41, 18, 5, 52, 23, 44, 17, 60, 27, 49, 11, 32, 44, 10, 54, 2, 56, 33, 8, 38, 13, 29, 36, 16, 24, 63, 27, 51, 21, 43, 56, 12, 49, 3, 59, 48, 1, 15, 46, 7, 36, 2, 47, 11, 50, 27, 37, 13, 33, 8, 51, 46, 1, 34, 28, 40, 3, 33, 60, 29, 47, 1, 35, 11, 59, 42, 2, 60, 26, 46, 6, 35 }, + { 4, 43, 9, 29, 36, 63, 24, 44, 20, 50, 30, 17, 60, 22, 16, 43, 25, 3, 42, 19, 51, 15, 8, 54, 42, 15, 61, 5, 39, 57, 18, 61, 31, 48, 34, 2, 50, 19, 57, 5, 63, 33, 19, 38, 13, 27, 48, 7, 32, 61, 2, 26, 58, 6, 24, 50, 13, 61, 42, 20, 62, 2, 35, 20, 51, 4, 62, 18, 23, 58, 20, 31, 43, 15, 51, 45, 26, 50, 4, 55, 45, 3, 35, 9, 38, 1, 32, 61, 20, 45, 17, 33, 24, 57, 29, 51, 22, 58, 38, 30, 15, 1, 54, 21, 63, 43, 26, 12, 24, 56, 8, 60, 50, 19, 5, 52, 13, 54, 17, 50, 4, 16, 36, 12, 32, 56, 22, 54 }, + { 51, 25, 40, 53, 12, 49, 15, 57, 34, 7, 38, 47, 2, 36, 55, 8, 61, 30, 56, 7, 28, 59, 48, 11, 27, 35, 21, 45, 28, 36, 9, 38, 6, 16, 24, 63, 10, 32, 28, 43, 21, 53, 5, 60, 8, 57, 3, 45, 11, 37, 15, 54, 40, 20, 62, 36, 27, 34, 11, 48, 30, 15, 54, 8, 30, 42, 22, 34, 48, 13, 35, 63, 4, 37, 22, 2, 59, 9, 41, 23, 13, 41, 49, 18, 59, 24, 40, 5, 37, 30, 9, 61, 44, 6, 37, 11, 33, 17, 5, 55, 41, 60, 23, 39, 17, 5, 30, 62, 41, 16, 46, 25, 11, 56, 39, 26, 20, 38, 29, 39, 22, 52, 44, 20, 48, 1, 38, 14 }, + { 15, 33, 2, 18, 44, 6, 27, 0, 32, 61, 25, 12, 58, 28, 40, 20, 47, 13, 34, 43, 38, 1, 23, 62, 40, 0, 51, 10, 63, 3, 52, 26, 44, 30, 45, 6, 41, 54, 0, 51, 12, 30, 46, 24, 49, 22, 40, 33, 63, 23, 43, 30, 9, 47, 0, 17, 54, 7, 57, 3, 37, 47, 24, 46, 13, 55, 7, 52, 2, 42, 6, 26, 49, 18, 60, 34, 16, 57, 33, 20, 61, 30, 8, 54, 14, 46, 12, 53, 16, 55, 38, 13, 22, 53, 18, 59, 46, 27, 43, 19, 32, 10, 45, 6, 49, 36, 52, 2, 20, 55, 6, 39, 32, 15, 44, 3, 58, 10, 63, 6, 56, 30, 7, 58, 9, 40, 19, 63 }, + { 10, 47, 61, 23, 55, 31, 52, 42, 17, 45, 4, 51, 27, 6, 15, 53, 0, 49, 26, 10, 56, 18, 36, 6, 20, 58, 32, 30, 13, 49, 19, 56, 0, 59, 12, 53, 27, 17, 38, 25, 48, 9, 15, 36, 14, 30, 59, 17, 0, 50, 8, 58, 18, 56, 31, 45, 21, 41, 29, 19, 60, 6, 32, 59, 0, 36, 29, 39, 19, 59, 46, 12, 55, 30, 10, 47, 24, 3, 28, 48, 0, 55, 44, 27, 33, 4, 63, 29, 49, 0, 26, 50, 34, 2, 42, 14, 0, 62, 9, 56, 3, 52, 28, 34, 58, 9, 20, 48, 37, 32, 22, 53, 0, 62, 27, 49, 34, 46, 21, 33, 41, 14, 25, 37, 53, 29, 31, 45 }, + { 56, 28, 7, 37, 11, 36, 20, 9, 54, 14, 39, 19, 34, 63, 45, 37, 24, 17, 60, 31, 21, 45, 53, 29, 47, 15, 7, 55, 40, 23, 34, 14, 42, 20, 37, 35, 15, 59, 7, 62, 34, 40, 59, 1, 51, 42, 10, 28, 54, 21, 35, 5, 38, 13, 36, 4, 59, 12, 39, 53, 15, 43, 9, 21, 39, 62, 16, 56, 25, 9, 32, 38, 0, 41, 14, 51, 40, 53, 43, 11, 37, 17, 5, 22, 57, 39, 19, 7, 42, 21, 60, 10, 31, 63, 25, 52, 30, 49, 36, 25, 48, 17, 61, 14, 22, 42, 29, 13, 60, 11, 47, 18, 35, 41, 7, 23, 4, 16, 51, 11, 0, 48, 61, 3, 17, 50, 5, 24 }, + { 0, 42, 21, 49, 60, 3, 57, 40, 29, 48, 23, 56, 42, 11, 22, 5, 59, 39, 4, 50, 3, 41, 12, 57, 25, 50, 44, 18, 4, 46, 7, 62, 33, 50, 4, 56, 21, 32, 43, 18, 3, 23, 55, 34, 20, 4, 53, 38, 12, 46, 29, 52, 25, 61, 23, 51, 26, 46, 1, 34, 25, 57, 28, 51, 26, 11, 50, 3, 44, 28, 53, 21, 57, 27, 62, 6, 31, 19, 8, 63, 26, 59, 36, 47, 15, 29, 50, 25, 35, 47, 18, 41, 4, 48, 8, 40, 12, 23, 6, 44, 13, 40, 1, 31, 55, 0, 61, 43, 4, 50, 26, 58, 9, 53, 24, 61, 42, 55, 31, 43, 57, 20, 34, 27, 43, 8, 59, 39 }, + { 18, 51, 30, 13, 26, 16, 46, 22, 2, 59, 8, 30, 1, 48, 33, 51, 29, 9, 46, 16, 62, 14, 33, 2, 38, 9, 27, 60, 37, 26, 53, 17, 28, 10, 24, 46, 2, 49, 8, 57, 29, 45, 6, 26, 62, 44, 18, 25, 61, 3, 42, 14, 49, 10, 43, 6, 17, 32, 63, 10, 49, 4, 40, 14, 45, 33, 22, 37, 12, 61, 5, 17, 43, 7, 23, 37, 15, 58, 49, 13, 39, 21, 10, 52, 1, 62, 9, 56, 12, 2, 58, 28, 36, 16, 56, 28, 56, 35, 20, 63, 24, 37, 51, 8, 45, 25, 16, 33, 27, 38, 2, 44, 13, 30, 17, 36, 12, 26, 5, 18, 28, 47, 13, 60, 23, 45, 13, 33 }, + { 55, 4, 62, 34, 52, 38, 7, 63, 32, 37, 13, 53, 25, 62, 18, 12, 55, 41, 27, 35, 24, 49, 31, 52, 17, 63, 34, 1, 56, 12, 41, 2, 48, 58, 39, 16, 61, 27, 41, 52, 13, 19, 50, 39, 11, 31, 57, 6, 32, 40, 20, 55, 1, 28, 33, 57, 48, 8, 37, 22, 44, 18, 53, 1, 61, 5, 54, 16, 47, 36, 50, 24, 55, 34, 48, 45, 1, 30, 33, 46, 2, 50, 32, 42, 25, 34, 43, 21, 38, 52, 23, 45, 14, 54, 21, 4, 44, 16, 53, 29, 10, 47, 19, 57, 12, 54, 39, 10, 51, 15, 63, 21, 57, 40, 51, 1, 48, 57, 37, 62, 2, 38, 9, 52, 1, 35, 58, 22 }, + { 36, 46, 10, 42, 1, 27, 43, 15, 50, 21, 45, 16, 41, 3, 35, 44, 20, 1, 57, 11, 55, 7, 43, 8, 22, 42, 13, 46, 21, 39, 31, 60, 22, 5, 29, 44, 11, 35, 20, 4, 36, 58, 32, 15, 47, 2, 36, 48, 16, 60, 8, 35, 44, 63, 16, 2, 40, 26, 55, 14, 58, 35, 24, 31, 19, 42, 31, 58, 1, 29, 10, 40, 2, 19, 12, 54, 22, 61, 7, 24, 56, 5, 28, 16, 54, 3, 15, 58, 6, 30, 8, 62, 1, 43, 31, 47, 7, 59, 1, 38, 58, 4, 34, 27, 38, 5, 31, 59, 7, 46, 30, 3, 34, 6, 28, 59, 20, 8, 32, 15, 53, 24, 55, 31, 19, 49, 11, 26 }, + { 2, 24, 16, 58, 19, 55, 5, 35, 10, 61, 4, 28, 57, 24, 58, 7, 31, 47, 22, 38, 19, 28, 61, 36, 54, 5, 59, 29, 6, 52, 15, 11, 43, 36, 8, 54, 52, 1, 62, 25, 47, 9, 1, 60, 28, 53, 24, 14, 46, 27, 51, 22, 12, 24, 38, 53, 20, 11, 51, 3, 29, 7, 48, 63, 8, 49, 9, 21, 52, 14, 63, 32, 46, 60, 35, 4, 41, 16, 52, 35, 18, 42, 59, 7, 36, 61, 45, 27, 33, 51, 19, 39, 34, 11, 61, 18, 33, 41, 28, 15, 54, 22, 42, 3, 49, 21, 47, 18, 36, 23, 55, 19, 48, 24, 45, 10, 33, 44, 50, 40, 7, 35, 15, 41, 63, 6, 40, 54 }, + { 62, 41, 32, 8, 47, 28, 60, 24, 44, 30, 38, 49, 9, 33, 14, 40, 50, 14, 60, 2, 54, 40, 0, 20, 25, 39, 16, 49, 24, 35, 57, 47, 19, 61, 33, 18, 23, 37, 13, 55, 31, 43, 22, 41, 17, 8, 42, 58, 0, 37, 5, 56, 31, 54, 7, 30, 60, 33, 42, 17, 59, 39, 12, 27, 38, 17, 35, 41, 27, 45, 20, 7, 25, 15, 29, 58, 27, 47, 11, 40, 14, 54, 23, 46, 19, 31, 11, 40, 13, 49, 5, 58, 24, 51, 26, 6, 50, 20, 49, 9, 32, 46, 17, 60, 14, 63, 24, 1, 57, 41, 9, 43, 14, 62, 16, 52, 3, 27, 14, 22, 61, 45, 4, 28, 9, 47, 29, 17 }, + { 5, 50, 12, 53, 38, 18, 11, 51, 0, 55, 17, 6, 47, 54, 19, 63, 5, 26, 34, 45, 13, 30, 47, 58, 10, 48, 32, 3, 62, 9, 26, 0, 25, 14, 50, 3, 47, 30, 42, 16, 6, 63, 12, 49, 33, 55, 21, 10, 34, 63, 18, 41, 3, 47, 19, 43, 0, 49, 8, 28, 46, 20, 52, 0, 56, 24, 60, 3, 59, 5, 39, 57, 48, 52, 9, 38, 3, 21, 26, 60, 0, 32, 12, 38, 4, 48, 53, 0, 60, 15, 29, 44, 18, 10, 38, 57, 13, 60, 2, 26, 62, 7, 50, 29, 35, 8, 40, 53, 28, 12, 60, 33, 38, 5, 37, 29, 60, 39, 56, 0, 30, 18, 50, 34, 59, 25, 14, 44 }, + { 20, 31, 60, 22, 3, 49, 33, 25, 40, 13, 34, 59, 22, 36, 0, 28, 37, 56, 8, 18, 51, 16, 4, 45, 27, 12, 53, 42, 18, 44, 51, 31, 55, 40, 28, 58, 7, 60, 10, 51, 27, 37, 24, 56, 5, 26, 44, 29, 50, 23, 45, 11, 34, 15, 59, 27, 13, 23, 62, 37, 4, 57, 15, 32, 42, 6, 47, 11, 30, 43, 23, 13, 0, 36, 18, 44, 63, 51, 37, 29, 49, 20, 57, 27, 62, 9, 24, 35, 23, 53, 37, 3, 42, 55, 0, 36, 23, 39, 31, 43, 17, 37, 24, 11, 52, 43, 19, 32, 5, 50, 26, 0, 56, 21, 54, 11, 19, 6, 47, 25, 59, 42, 12, 54, 21, 3, 38, 57 }, + { 48, 0, 35, 27, 44, 14, 59, 7, 57, 46, 26, 2, 42, 12, 52, 43, 10, 27, 53, 42, 32, 62, 37, 21, 34, 61, 7, 23, 36, 4, 38, 12, 41, 5, 17, 45, 22, 27, 39, 21, 59, 0, 45, 18, 39, 62, 3, 38, 14, 7, 54, 26, 61, 39, 9, 52, 45, 36, 18, 50, 10, 34, 44, 22, 50, 14, 36, 55, 17, 34, 53, 62, 33, 26, 56, 6, 31, 12, 6, 53, 9, 44, 2, 50, 20, 40, 55, 17, 47, 7, 26, 63, 22, 32, 48, 16, 46, 8, 52, 12, 57, 41, 0, 56, 25, 3, 61, 14, 45, 35, 18, 44, 12, 46, 23, 42, 32, 51, 35, 10, 17, 36, 23, 1, 45, 52, 32, 10 }, + { 37, 15, 43, 8, 63, 39, 21, 31, 16, 37, 19, 62, 30, 46, 17, 60, 21, 48, 1, 23, 6, 25, 11, 56, 1, 40, 30, 58, 15, 54, 21, 59, 9, 63, 35, 56, 11, 51, 2, 46, 34, 14, 53, 7, 30, 11, 51, 19, 60, 40, 30, 1, 24, 50, 20, 32, 3, 56, 5, 25, 31, 13, 61, 2, 29, 60, 25, 20, 51, 2, 27, 8, 18, 42, 10, 45, 21, 34, 43, 17, 62, 29, 41, 14, 34, 6, 30, 43, 2, 57, 33, 13, 45, 12, 27, 62, 4, 55, 21, 35, 5, 27, 45, 33, 16, 47, 30, 54, 22, 10, 51, 27, 63, 7, 49, 1, 58, 22, 15, 43, 53, 7, 57, 39, 27, 12, 61, 24 }, + { 56, 51, 26, 56, 19, 2, 41, 54, 5, 52, 9, 48, 6, 23, 39, 4, 32, 15, 63, 35, 59, 49, 43, 15, 52, 19, 50, 9, 46, 33, 1, 29, 48, 20, 32, 1, 38, 33, 19, 54, 9, 32, 24, 48, 58, 35, 16, 48, 4, 52, 13, 57, 33, 5, 45, 59, 15, 29, 41, 55, 47, 39, 23, 53, 9, 40, 4, 57, 10, 44, 48, 40, 50, 14, 61, 24, 55, 1, 59, 22, 33, 8, 51, 25, 58, 46, 11, 59, 20, 41, 17, 51, 6, 56, 35, 25, 42, 30, 15, 58, 48, 18, 61, 9, 58, 39, 13, 2, 37, 59, 40, 2, 31, 16, 34, 41, 8, 30, 62, 3, 29, 48, 33, 5, 63, 16, 41, 7 }, + { 22, 4, 46, 11, 33, 51, 29, 10, 62, 24, 43, 27, 15, 58, 50, 25, 54, 44, 9, 38, 18, 3, 29, 57, 32, 5, 26, 43, 17, 61, 24, 52, 8, 42, 23, 53, 15, 61, 7, 28, 57, 43, 4, 40, 20, 2, 43, 25, 32, 35, 21, 43, 17, 48, 10, 22, 38, 54, 11, 21, 1, 58, 16, 30, 48, 18, 46, 32, 38, 13, 22, 4, 59, 35, 2, 51, 30, 39, 15, 47, 4, 56, 13, 37, 1, 28, 16, 52, 32, 9, 61, 29, 38, 19, 3, 52, 10, 48, 1, 32, 11, 40, 20, 36, 6, 22, 49, 29, 55, 6, 20, 56, 36, 52, 19, 60, 26, 46, 18, 54, 40, 13, 20, 46, 35, 19, 49, 29 }, + { 61, 17, 34, 53, 23, 6, 48, 35, 20, 40, 1, 56, 36, 29, 11, 34, 7, 41, 14, 30, 55, 20, 46, 8, 24, 38, 63, 2, 37, 10, 45, 14, 34, 49, 6, 13, 44, 25, 49, 41, 21, 12, 61, 15, 54, 29, 63, 12, 56, 8, 49, 2, 62, 36, 28, 61, 0, 25, 41, 63, 35, 8, 44, 6, 37, 62, 7, 21, 63, 28, 55, 31, 16, 24, 41, 19, 9, 57, 27, 36, 18, 42, 31, 62, 22, 55, 38, 4, 27, 47, 1, 40, 14, 54, 43, 20, 60, 23, 38, 63, 25, 51, 2, 53, 26, 63, 10, 42, 17, 34, 47, 25, 13, 5, 44, 11, 55, 2, 38, 27, 6, 60, 52, 25, 9, 55, 1, 40 }, + { 8, 30, 58, 3, 42, 61, 17, 38, 13, 59, 32, 10, 54, 3, 51, 20, 61, 26, 57, 2, 46, 33, 12, 60, 41, 13, 48, 29, 55, 20, 39, 27, 57, 18, 62, 29, 55, 2, 31, 16, 37, 50, 26, 36, 6, 46, 9, 41, 27, 57, 23, 39, 26, 6, 51, 12, 31, 46, 7, 16, 27, 52, 19, 56, 26, 12, 33, 53, 1, 41, 8, 57, 46, 7, 54, 32, 47, 5, 49, 11, 60, 23, 5, 48, 10, 43, 19, 63, 35, 24, 49, 21, 59, 5, 31, 37, 14, 44, 7, 42, 6, 30, 46, 13, 44, 32, 19, 50, 4, 58, 8, 30, 62, 38, 28, 53, 21, 36, 13, 50, 21, 33, 15, 2, 44, 31, 14, 47 }, + { 37, 13, 39, 16, 28, 9, 57, 0, 25, 49, 21, 45, 18, 47, 12, 42, 0, 49, 22, 39, 16, 53, 25, 36, 0, 52, 22, 16, 6, 60, 4, 51, 0, 26, 37, 47, 10, 36, 63, 5, 57, 0, 18, 59, 23, 33, 51, 19, 0, 44, 15, 11, 54, 17, 42, 35, 53, 18, 58, 33, 49, 4, 34, 42, 0, 50, 43, 25, 16, 49, 34, 20, 37, 28, 12, 63, 16, 38, 25, 44, 0, 40, 52, 17, 35, 3, 50, 14, 8, 53, 11, 36, 25, 45, 9, 62, 0, 54, 28, 17, 50, 55, 15, 24, 57, 0, 53, 34, 23, 41, 15, 45, 0, 49, 16, 4, 48, 9, 63, 45, 0, 42, 58, 37, 61, 22, 54, 26 }, + { 0, 50, 21, 47, 54, 36, 27, 45, 52, 4, 34, 15, 63, 29, 37, 59, 17, 31, 6, 61, 28, 5, 48, 18, 59, 27, 34, 56, 44, 31, 35, 12, 41, 59, 16, 3, 40, 20, 50, 22, 30, 40, 52, 10, 45, 3, 59, 22, 37, 61, 29, 46, 31, 58, 2, 22, 9, 43, 3, 39, 14, 61, 24, 54, 15, 29, 11, 60, 39, 17, 5, 61, 0, 44, 50, 3, 31, 14, 58, 21, 54, 28, 15, 45, 60, 26, 33, 58, 44, 22, 60, 2, 57, 34, 49, 27, 18, 34, 21, 59, 29, 4, 36, 41, 8, 39, 28, 11, 62, 26, 53, 20, 35, 24, 59, 32, 29, 39, 24, 31, 57, 23, 11, 28, 5, 36, 11, 59 }, + { 44, 32, 63, 5, 20, 12, 41, 7, 30, 61, 42, 8, 39, 5, 33, 8, 24, 53, 45, 11, 37, 58, 7, 44, 10, 50, 3, 40, 8, 22, 53, 19, 46, 9, 33, 52, 24, 58, 8, 44, 13, 47, 8, 34, 38, 30, 14, 47, 7, 34, 4, 55, 9, 19, 40, 49, 56, 26, 60, 21, 30, 45, 10, 19, 40, 58, 23, 36, 3, 52, 45, 23, 54, 13, 22, 42, 53, 45, 7, 33, 10, 36, 57, 6, 29, 12, 41, 0, 30, 15, 41, 30, 17, 7, 16, 53, 40, 56, 2, 39, 12, 61, 10, 52, 31, 60, 16, 45, 1, 37, 7, 61, 40, 10, 43, 17, 58, 7, 54, 14, 4, 51, 39, 49, 18, 56, 42, 20 }, + { 14, 6, 24, 36, 56, 49, 22, 60, 18, 14, 23, 51, 26, 57, 21, 52, 41, 14, 35, 50, 19, 31, 40, 23, 33, 14, 63, 17, 32, 47, 7, 62, 23, 30, 56, 11, 42, 27, 14, 60, 35, 19, 28, 61, 17, 55, 25, 39, 53, 17, 42, 21, 38, 63, 25, 5, 14, 36, 12, 50, 1, 37, 59, 32, 2, 51, 6, 56, 27, 32, 11, 30, 38, 26, 60, 8, 26, 19, 62, 39, 50, 2, 21, 39, 53, 23, 56, 19, 49, 39, 5, 46, 55, 23, 42, 4, 31, 11, 47, 26, 45, 22, 48, 18, 21, 5, 48, 25, 57, 14, 47, 30, 3, 56, 12, 50, 1, 42, 19, 47, 35, 17, 8, 30, 45, 25, 4, 51 }, + { 28, 58, 43, 1, 31, 8, 33, 2, 44, 55, 32, 1, 60, 12, 46, 27, 4, 62, 23, 1, 56, 13, 62, 2, 54, 36, 25, 51, 1, 57, 26, 42, 3, 49, 17, 38, 1, 48, 31, 4, 54, 3, 50, 24, 1, 49, 5, 63, 13, 27, 52, 1, 48, 13, 45, 33, 52, 30, 46, 20, 55, 28, 6, 48, 24, 38, 20, 47, 14, 62, 48, 9, 58, 4, 36, 30, 56, 1, 34, 12, 18, 63, 25, 48, 4, 16, 37, 7, 62, 10, 52, 28, 13, 50, 36, 63, 24, 51, 15, 58, 8, 33, 1, 38, 56, 35, 42, 9, 33, 51, 22, 18, 48, 32, 27, 37, 23, 61, 33, 11, 59, 29, 62, 1, 53, 10, 60, 33 }, + { 12, 39, 17, 52, 26, 46, 53, 38, 25, 11, 48, 36, 16, 43, 2, 35, 55, 17, 39, 29, 43, 9, 28, 45, 20, 5, 46, 12, 42, 28, 13, 52, 36, 6, 60, 22, 54, 17, 62, 39, 25, 42, 15, 55, 44, 20, 31, 10, 35, 57, 24, 32, 29, 6, 59, 18, 7, 62, 3, 41, 10, 44, 16, 54, 13, 62, 31, 9, 41, 1, 21, 43, 18, 47, 15, 40, 11, 49, 28, 55, 46, 30, 8, 43, 32, 61, 28, 47, 25, 34, 21, 61, 32, 1, 20, 9, 46, 6, 35, 19, 41, 54, 27, 63, 14, 3, 51, 20, 62, 2, 38, 55, 8, 21, 63, 6, 46, 9, 26, 51, 3, 24, 43, 34, 16, 41, 18, 48 }, + { 62, 23, 55, 9, 15, 62, 19, 13, 58, 40, 6, 30, 54, 19, 50, 31, 10, 44, 6, 59, 21, 47, 51, 15, 60, 39, 30, 54, 21, 61, 19, 33, 14, 29, 43, 11, 34, 45, 7, 21, 10, 56, 36, 6, 38, 11, 58, 42, 2, 47, 11, 60, 50, 16, 41, 28, 38, 23, 47, 17, 35, 63, 22, 33, 42, 5, 45, 17, 53, 35, 25, 56, 33, 6, 51, 19, 60, 23, 43, 15, 5, 40, 58, 13, 51, 1, 45, 11, 54, 3, 43, 8, 37, 48, 59, 29, 39, 21, 61, 43, 3, 31, 10, 44, 24, 29, 60, 12, 28, 40, 11, 25, 43, 52, 14, 41, 16, 57, 44, 20, 40, 55, 12, 21, 57, 27, 35, 2 }, + { 37, 6, 31, 42, 40, 4, 29, 50, 0, 20, 63, 28, 9, 58, 14, 24, 63, 26, 48, 16, 34, 4, 32, 38, 23, 11, 58, 4, 37, 9, 45, 5, 63, 48, 26, 57, 2, 28, 32, 51, 46, 29, 13, 62, 27, 46, 28, 18, 50, 15, 40, 4, 19, 34, 54, 0, 53, 9, 26, 58, 28, 5, 49, 0, 57, 27, 19, 60, 29, 8, 59, 12, 37, 63, 24, 46, 3, 37, 6, 52, 26, 32, 20, 36, 9, 22, 59, 18, 35, 51, 14, 57, 17, 24, 12, 44, 56, 0, 30, 13, 59, 20, 49, 17, 54, 43, 6, 34, 46, 17, 58, 36, 0, 34, 29, 54, 25, 2, 36, 15, 60, 6, 37, 46, 4, 50, 9, 45 }, + { 19, 59, 48, 3, 24, 60, 44, 22, 34, 51, 15, 45, 41, 5, 33, 47, 0, 37, 12, 55, 25, 54, 8, 57, 0, 47, 18, 34, 49, 15, 55, 24, 40, 20, 8, 35, 53, 13, 41, 18, 0, 59, 22, 33, 4, 52, 8, 60, 24, 36, 31, 56, 45, 26, 10, 43, 15, 56, 36, 4, 51, 14, 39, 30, 12, 55, 36, 2, 39, 49, 4, 44, 17, 0, 32, 13, 53, 35, 59, 17, 62, 0, 55, 24, 52, 38, 31, 6, 42, 19, 29, 40, 4, 54, 33, 5, 16, 27, 52, 37, 23, 55, 7, 37, 0, 39, 23, 49, 4, 53, 31, 15, 59, 10, 50, 4, 60, 34, 48, 7, 31, 49, 27, 14, 62, 22, 53, 29 }, + { 46, 21, 14, 51, 36, 17, 7, 57, 10, 32, 3, 37, 22, 60, 39, 18, 56, 20, 42, 3, 36, 10, 44, 26, 41, 29, 53, 27, 2, 39, 30, 52, 0, 59, 15, 48, 23, 61, 6, 58, 37, 12, 40, 49, 16, 39, 20, 44, 0, 62, 8, 21, 3, 59, 23, 32, 49, 31, 12, 44, 22, 59, 18, 50, 24, 7, 43, 52, 15, 23, 41, 26, 51, 28, 55, 39, 21, 27, 10, 42, 12, 45, 27, 47, 3, 15, 63, 26, 55, 0, 60, 26, 45, 18, 62, 38, 58, 49, 8, 47, 4, 33, 46, 29, 57, 13, 56, 16, 59, 21, 5, 47, 23, 39, 18, 44, 13, 22, 28, 53, 19, 0, 58, 32, 41, 7, 26, 13 }, + { 0, 56, 34, 28, 11, 55, 31, 47, 26, 41, 56, 13, 53, 28, 11, 49, 7, 52, 32, 61, 50, 22, 63, 17, 13, 56, 7, 19, 43, 62, 10, 21, 37, 32, 43, 4, 38, 19, 44, 25, 31, 54, 5, 23, 61, 30, 53, 12, 35, 22, 43, 53, 37, 48, 7, 62, 20, 2, 61, 41, 8, 34, 47, 9, 63, 34, 28, 10, 55, 33, 14, 57, 7, 47, 9, 61, 4, 49, 31, 50, 21, 38, 8, 16, 57, 44, 33, 5, 49, 36, 12, 50, 7, 34, 10, 25, 2, 22, 36, 15, 26, 61, 18, 9, 22, 46, 32, 8, 27, 37, 44, 30, 55, 3, 62, 24, 38, 56, 5, 45, 38, 24, 43, 10, 19, 54, 39, 61 }, + { 41, 30, 8, 63, 43, 23, 38, 3, 62, 19, 8, 49, 25, 1, 58, 30, 23, 40, 9, 28, 18, 40, 6, 38, 49, 22, 35, 59, 8, 27, 50, 5, 56, 17, 11, 50, 30, 9, 55, 2, 51, 19, 34, 47, 9, 41, 6, 26, 48, 57, 14, 28, 17, 12, 39, 13, 37, 46, 25, 19, 54, 27, 1, 37, 16, 45, 20, 60, 1, 48, 20, 38, 31, 22, 42, 15, 19, 44, 1, 61, 6, 34, 56, 40, 29, 10, 20, 46, 13, 22, 41, 23, 59, 42, 30, 51, 45, 13, 63, 53, 42, 12, 51, 38, 62, 2, 26, 41, 50, 1, 61, 10, 19, 42, 31, 8, 49, 32, 12, 63, 9, 52, 16, 56, 36, 2, 31, 16 }, + { 52, 5, 47, 20, 1, 53, 12, 50, 16, 35, 43, 21, 33, 43, 16, 44, 3, 59, 14, 46, 1, 30, 60, 33, 2, 45, 12, 42, 31, 47, 14, 33, 46, 25, 55, 27, 60, 36, 16, 42, 14, 46, 26, 1, 55, 15, 63, 32, 2, 38, 5, 47, 33, 61, 30, 52, 4, 57, 6, 38, 11, 43, 61, 24, 52, 3, 31, 22, 42, 10, 62, 3, 59, 11, 35, 57, 33, 54, 24, 14, 29, 48, 18, 2, 60, 41, 53, 24, 32, 62, 3, 53, 15, 1, 55, 17, 32, 40, 6, 31, 1, 40, 28, 5, 35, 52, 19, 63, 13, 33, 17, 41, 52, 26, 15, 57, 1, 20, 42, 17, 35, 27, 48, 5, 25, 50, 44, 11 }, + { 35, 25, 38, 57, 33, 17, 40, 6, 59, 27, 54, 5, 61, 10, 52, 26, 36, 19, 51, 35, 57, 48, 11, 20, 54, 25, 61, 16, 1, 58, 24, 61, 3, 39, 7, 47, 1, 22, 49, 28, 63, 10, 58, 32, 17, 36, 45, 19, 51, 29, 59, 10, 50, 1, 23, 42, 18, 29, 51, 21, 56, 32, 14, 5, 40, 58, 47, 13, 54, 35, 29, 45, 18, 52, 26, 2, 38, 8, 46, 36, 58, 11, 52, 35, 17, 28, 1, 58, 9, 39, 17, 28, 37, 48, 20, 9, 57, 24, 50, 19, 58, 16, 48, 25, 43, 11, 35, 6, 45, 24, 56, 4, 36, 7, 47, 35, 52, 28, 59, 30, 2, 61, 21, 33, 63, 12, 18, 59 }, + { 3, 49, 15, 10, 27, 61, 25, 45, 30, 0, 14, 47, 31, 38, 17, 62, 7, 55, 27, 4, 15, 24, 42, 52, 10, 34, 5, 51, 36, 18, 41, 11, 35, 21, 62, 13, 33, 57, 8, 35, 5, 40, 21, 43, 52, 3, 24, 56, 11, 16, 33, 25, 41, 20, 55, 8, 60, 35, 15, 48, 2, 57, 30, 49, 18, 25, 6, 39, 17, 57, 7, 25, 43, 5, 49, 16, 62, 22, 55, 4, 25, 43, 23, 7, 50, 11, 37, 48, 14, 51, 33, 57, 7, 27, 39, 46, 4, 29, 11, 43, 34, 56, 7, 60, 20, 54, 30, 57, 22, 49, 9, 33, 54, 14, 63, 23, 6, 43, 10, 40, 50, 13, 44, 8, 38, 33, 46, 23 }, + { 55, 39, 22, 50, 44, 4, 36, 9, 52, 23, 37, 59, 21, 2, 46, 13, 31, 41, 11, 45, 62, 29, 6, 37, 19, 48, 30, 23, 44, 7, 53, 28, 54, 16, 41, 29, 44, 18, 52, 24, 60, 15, 48, 7, 27, 59, 9, 34, 42, 54, 7, 63, 4, 46, 31, 27, 45, 0, 40, 26, 34, 17, 37, 10, 53, 29, 36, 50, 2, 27, 51, 11, 61, 37, 23, 41, 30, 7, 18, 50, 39, 14, 63, 32, 45, 61, 19, 30, 25, 44, 2, 47, 23, 63, 11, 34, 59, 37, 60, 3, 22, 14, 44, 30, 15, 0, 47, 15, 3, 38, 61, 20, 27, 45, 11, 39, 51, 16, 55, 3, 22, 54, 29, 58, 1, 57, 6, 29 }, + { 9, 17, 60, 2, 34, 56, 20, 62, 39, 12, 49, 6, 29, 56, 34, 48, 0, 58, 22, 38, 18, 43, 56, 0, 63, 14, 55, 3, 59, 31, 15, 45, 0, 49, 6, 58, 3, 38, 12, 45, 0, 37, 29, 57, 13, 39, 30, 49, 0, 23, 44, 36, 16, 57, 13, 54, 11, 24, 63, 9, 53, 7, 62, 42, 0, 59, 15, 23, 63, 34, 40, 16, 32, 0, 53, 12, 48, 28, 59, 33, 0, 53, 9, 27, 3, 22, 54, 5, 56, 9, 61, 13, 42, 14, 52, 19, 0, 21, 47, 27, 53, 36, 3, 50, 39, 58, 25, 40, 53, 28, 12, 50, 0, 59, 32, 2, 21, 34, 26, 46, 37, 7, 18, 47, 24, 14, 53, 42 }, + { 61, 32, 13, 54, 29, 7, 46, 13, 28, 57, 18, 41, 53, 15, 9, 39, 24, 49, 33, 3, 53, 9, 26, 32, 40, 28, 46, 39, 25, 9, 56, 21, 63, 37, 26, 22, 51, 27, 17, 56, 31, 53, 4, 43, 22, 46, 12, 18, 60, 40, 20, 26, 50, 21, 39, 5, 49, 33, 16, 44, 22, 46, 20, 32, 24, 45, 8, 43, 12, 46, 4, 48, 56, 20, 29, 58, 3, 40, 10, 42, 31, 21, 47, 41, 56, 38, 15, 42, 36, 27, 20, 33, 55, 3, 26, 44, 31, 54, 12, 35, 9, 63, 28, 10, 21, 32, 9, 60, 17, 8, 43, 29, 40, 16, 36, 48, 60, 7, 57, 14, 62, 31, 42, 15, 36, 40, 20, 26 }, + { 0, 37, 47, 23, 41, 18, 32, 48, 1, 35, 8, 25, 4, 26, 63, 20, 54, 8, 16, 61, 35, 23, 51, 15, 58, 7, 12, 20, 50, 34, 42, 4, 38, 10, 32, 47, 8, 60, 41, 20, 9, 25, 50, 19, 62, 1, 37, 56, 28, 8, 53, 11, 3, 58, 34, 43, 19, 60, 38, 4, 58, 31, 3, 51, 11, 55, 38, 30, 21, 58, 19, 26, 9, 44, 36, 13, 46, 20, 62, 24, 13, 60, 5, 28, 12, 34, 7, 59, 0, 53, 45, 6, 38, 30, 50, 7, 62, 16, 41, 5, 46, 18, 55, 42, 51, 5, 45, 23, 34, 48, 19, 58, 5, 25, 54, 19, 13, 41, 28, 21, 0, 49, 10, 60, 4, 51, 9, 45 }, + { 19, 28, 6, 58, 10, 51, 4, 22, 55, 42, 60, 45, 34, 51, 42, 5, 30, 45, 27, 40, 13, 47, 4, 49, 21, 38, 60, 29, 2, 57, 17, 27, 52, 19, 61, 14, 30, 34, 2, 44, 63, 33, 11, 35, 16, 51, 25, 6, 14, 47, 31, 61, 37, 29, 18, 8, 52, 2, 28, 54, 13, 41, 15, 62, 35, 18, 2, 60, 6, 33, 41, 61, 31, 6, 56, 17, 34, 50, 6, 52, 44, 35, 16, 51, 59, 24, 48, 18, 31, 40, 16, 49, 21, 60, 17, 39, 10, 49, 32, 57, 24, 39, 1, 25, 18, 62, 37, 12, 56, 1, 37, 11, 52, 44, 9, 30, 47, 4, 51, 40, 55, 25, 34, 27, 56, 30, 32, 54 }, + { 63, 40, 49, 15, 43, 26, 63, 38, 16, 20, 30, 12, 57, 14, 19, 60, 36, 12, 59, 2, 57, 17, 42, 31, 1, 44, 16, 35, 47, 11, 32, 48, 13, 43, 1, 39, 51, 12, 57, 23, 6, 40, 53, 3, 55, 31, 39, 60, 35, 44, 5, 15, 45, 1, 62, 41, 26, 14, 47, 22, 36, 27, 50, 9, 26, 47, 52, 28, 54, 16, 1, 13, 51, 39, 23, 63, 1, 30, 15, 26, 2, 57, 19, 37, 1, 44, 21, 50, 13, 63, 8, 24, 56, 1, 35, 25, 58, 20, 2, 28, 14, 51, 33, 59, 13, 30, 4, 49, 31, 24, 63, 26, 33, 3, 58, 38, 62, 24, 32, 8, 17, 45, 5, 48, 18, 3, 43, 11 }, + { 21, 4, 24, 34, 59, 1, 37, 11, 53, 5, 47, 2, 22, 40, 32, 1, 24, 50, 21, 29, 38, 25, 63, 8, 55, 24, 53, 6, 62, 23, 59, 3, 54, 20, 58, 24, 5, 46, 15, 38, 48, 14, 27, 42, 23, 7, 46, 10, 17, 58, 25, 52, 23, 32, 49, 12, 55, 30, 40, 7, 59, 1, 56, 21, 39, 4, 23, 15, 37, 46, 55, 42, 21, 4, 48, 8, 45, 54, 37, 55, 32, 8, 46, 10, 30, 54, 4, 41, 25, 29, 36, 48, 11, 43, 14, 47, 5, 43, 53, 36, 61, 10, 45, 6, 41, 54, 27, 43, 16, 55, 6, 46, 18, 42, 23, 15, 1, 45, 12, 60, 37, 22, 62, 12, 39, 59, 16, 52 }, + { 47, 35, 56, 7, 19, 46, 31, 50, 33, 24, 61, 35, 50, 7, 53, 44, 55, 6, 46, 10, 52, 5, 21, 43, 36, 10, 18, 41, 26, 37, 8, 29, 40, 36, 9, 49, 34, 26, 61, 21, 7, 59, 18, 62, 29, 54, 20, 32, 51, 0, 40, 10, 55, 6, 20, 36, 9, 61, 5, 51, 44, 19, 33, 43, 13, 57, 40, 63, 8, 24, 29, 10, 60, 34, 27, 40, 25, 18, 10, 42, 21, 49, 26, 62, 38, 12, 33, 61, 5, 57, 2, 19, 54, 28, 62, 22, 38, 31, 16, 7, 22, 47, 29, 17, 35, 8, 20, 51, 2, 40, 22, 50, 13, 61, 28, 53, 35, 20, 56, 30, 2, 53, 14, 41, 23, 34, 8, 31 }, + { 12, 2, 42, 29, 52, 13, 21, 8, 55, 14, 41, 17, 28, 58, 23, 11, 17, 36, 31, 62, 17, 34, 50, 14, 28, 61, 33, 52, 2, 51, 17, 45, 7, 25, 62, 30, 18, 55, 0, 42, 30, 35, 45, 1, 12, 48, 3, 63, 21, 36, 30, 48, 19, 59, 43, 27, 46, 17, 34, 25, 12, 29, 53, 6, 48, 31, 11, 34, 49, 3, 36, 50, 19, 47, 14, 61, 11, 36, 58, 4, 60, 14, 39, 22, 6, 52, 15, 35, 17, 46, 31, 42, 9, 34, 3, 52, 12, 60, 26, 56, 40, 2, 53, 23, 57, 38, 62, 14, 36, 59, 10, 31, 39, 6, 49, 9, 41, 26, 5, 48, 43, 27, 33, 58, 1, 50, 25, 57 }, + { 61, 37, 15, 61, 3, 39, 58, 43, 26, 0, 44, 10, 47, 3, 37, 63, 28, 43, 13, 39, 3, 57, 30, 59, 0, 48, 5, 43, 13, 22, 60, 33, 55, 15, 42, 4, 52, 10, 45, 13, 54, 4, 24, 49, 37, 26, 41, 14, 42, 9, 61, 13, 38, 23, 3, 53, 0, 58, 21, 42, 63, 10, 17, 61, 25, 0, 58, 28, 17, 44, 57, 12, 27, 0, 55, 5, 52, 28, 23, 47, 29, 0, 43, 17, 58, 28, 47, 23, 55, 10, 58, 23, 51, 40, 18, 33, 45, 0, 49, 8, 32, 61, 19, 48, 0, 26, 7, 47, 29, 18, 44, 0, 56, 34, 20, 59, 15, 51, 37, 18, 10, 52, 7, 20, 46, 9, 38, 17 }, + { 6, 27, 48, 23, 45, 29, 5, 18, 38, 62, 27, 56, 20, 32, 15, 9, 48, 0, 54, 22, 45, 20, 7, 41, 23, 39, 19, 27, 58, 31, 44, 0, 12, 50, 23, 56, 20, 39, 32, 59, 16, 52, 33, 9, 57, 22, 6, 58, 28, 50, 24, 2, 56, 35, 16, 45, 32, 38, 15, 54, 2, 38, 46, 22, 35, 45, 20, 5, 52, 25, 7, 35, 59, 32, 22, 43, 38, 3, 51, 16, 34, 53, 32, 50, 3, 40, 8, 43, 0, 39, 27, 4, 14, 61, 8, 55, 15, 41, 20, 44, 27, 13, 39, 11, 46, 42, 54, 33, 4, 52, 23, 61, 14, 25, 43, 2, 33, 11, 63, 29, 61, 17, 40, 55, 22, 62, 28, 44 }, + { 20, 54, 8, 56, 35, 10, 63, 31, 52, 12, 48, 6, 59, 41, 52, 33, 19, 58, 25, 49, 11, 37, 47, 12, 54, 15, 56, 35, 7, 47, 16, 53, 28, 34, 5, 37, 28, 8, 48, 3, 28, 38, 18, 61, 16, 43, 53, 32, 4, 17, 47, 27, 44, 8, 63, 10, 25, 49, 6, 37, 24, 52, 32, 3, 50, 12, 41, 56, 38, 14, 62, 20, 40, 16, 53, 31, 18, 63, 41, 9, 59, 7, 13, 25, 57, 20, 63, 26, 53, 18, 48, 62, 30, 46, 21, 25, 58, 29, 36, 4, 55, 34, 6, 60, 31, 16, 21, 12, 58, 38, 9, 29, 47, 7, 52, 30, 57, 44, 22, 0, 35, 45, 3, 31, 14, 36, 0, 51 }, + { 42, 14, 33, 24, 16, 49, 40, 2, 22, 33, 16, 36, 25, 1, 21, 61, 38, 8, 33, 4, 62, 26, 29, 60, 6, 46, 30, 11, 63, 4, 36, 40, 19, 57, 46, 11, 41, 63, 22, 25, 58, 10, 46, 2, 34, 27, 11, 38, 56, 34, 12, 53, 18, 33, 41, 51, 13, 28, 60, 20, 47, 14, 29, 59, 16, 62, 8, 22, 32, 47, 9, 49, 2, 44, 7, 12, 45, 6, 20, 27, 45, 24, 62, 42, 36, 11, 33, 15, 37, 7, 32, 10, 37, 1, 35, 50, 6, 11, 63, 24, 52, 15, 50, 24, 3, 37, 56, 27, 34, 22, 49, 16, 36, 62, 17, 39, 4, 15, 54, 24, 50, 8, 58, 26, 49, 54, 11, 30 }, + { 4, 59, 41, 1, 53, 12, 25, 45, 59, 7, 51, 39, 54, 14, 46, 4, 27, 53, 16, 44, 18, 51, 1, 32, 25, 2, 50, 40, 20, 54, 24, 9, 62, 2, 27, 60, 1, 17, 36, 50, 6, 40, 30, 55, 41, 19, 49, 1, 21, 60, 40, 5, 62, 1, 22, 30, 57, 4, 43, 31, 1, 55, 40, 7, 27, 37, 30, 54, 1, 19, 42, 30, 56, 26, 62, 49, 24, 57, 37, 56, 2, 39, 16, 5, 30, 55, 3, 49, 60, 23, 56, 44, 17, 52, 13, 42, 28, 48, 18, 45, 9, 37, 21, 41, 58, 10, 48, 1, 63, 5, 41, 57, 2, 24, 12, 48, 27, 42, 32, 46, 13, 38, 19, 34, 5, 41, 25, 60 }, + { 39, 28, 21, 46, 32, 57, 36, 9, 19, 42, 4, 29, 11, 43, 30, 49, 13, 42, 35, 56, 9, 39, 15, 52, 36, 61, 18, 26, 45, 14, 31, 48, 21, 43, 14, 33, 49, 54, 14, 44, 21, 62, 13, 23, 8, 62, 15, 51, 44, 7, 30, 37, 20, 42, 56, 7, 39, 18, 50, 11, 61, 9, 19, 43, 57, 2, 48, 11, 39, 60, 28, 4, 37, 17, 35, 1, 33, 11, 31, 14, 48, 19, 35, 51, 46, 21, 44, 29, 12, 41, 2, 22, 58, 26, 54, 4, 59, 38, 2, 33, 57, 1, 63, 13, 28, 51, 15, 40, 18, 45, 8, 30, 43, 37, 54, 19, 8, 59, 21, 6, 60, 29, 55, 10, 63, 15, 47, 17 }, + { 3, 50, 10, 62, 18, 5, 27, 49, 60, 23, 55, 18, 62, 24, 56, 10, 59, 28, 2, 23, 34, 59, 43, 20, 10, 42, 8, 49, 1, 37, 57, 6, 51, 29, 53, 7, 23, 31, 5, 32, 51, 0, 35, 54, 45, 31, 5, 26, 36, 24, 55, 15, 48, 29, 14, 48, 26, 60, 21, 41, 36, 26, 50, 33, 14, 44, 17, 24, 52, 15, 46, 23, 54, 6, 47, 21, 60, 50, 4, 53, 29, 61, 8, 23, 1, 60, 19, 6, 53, 16, 47, 34, 6, 39, 16, 31, 12, 20, 53, 22, 30, 43, 25, 46, 35, 6, 44, 32, 53, 26, 55, 19, 11, 59, 5, 33, 51, 1, 35, 53, 25, 3, 42, 23, 44, 32, 7, 53 }, + { 22, 44, 37, 6, 26, 51, 38, 0, 34, 13, 31, 46, 3, 37, 6, 19, 40, 21, 47, 63, 12, 5, 29, 55, 22, 58, 34, 28, 60, 22, 11, 41, 17, 38, 9, 44, 59, 39, 56, 19, 11, 47, 25, 15, 3, 39, 57, 17, 61, 11, 46, 3, 58, 9, 54, 35, 2, 34, 8, 45, 15, 56, 5, 23, 53, 33, 63, 35, 4, 59, 10, 51, 13, 61, 29, 41, 15, 25, 43, 19, 40, 10, 54, 33, 41, 12, 38, 51, 31, 26, 61, 9, 30, 45, 24, 62, 49, 40, 10, 61, 14, 49, 5, 17, 54, 20, 60, 23, 3, 13, 35, 50, 32, 23, 46, 27, 38, 63, 16, 12, 39, 48, 18, 51, 1, 27, 56, 35 }, + { 63, 15, 30, 55, 43, 14, 57, 17, 53, 44, 7, 48, 26, 50, 32, 60, 0, 53, 14, 31, 50, 24, 46, 0, 38, 13, 4, 52, 16, 45, 30, 59, 0, 25, 55, 35, 16, 10, 26, 42, 58, 29, 60, 38, 50, 22, 28, 47, 0, 50, 28, 19, 33, 39, 11, 44, 16, 52, 24, 59, 3, 38, 27, 51, 0, 21, 7, 42, 26, 34, 21, 40, 33, 18, 39, 3, 54, 38, 8, 59, 0, 44, 27, 15, 58, 28, 57, 9, 43, 0, 36, 50, 20, 59, 8, 34, 0, 27, 47, 7, 36, 19, 56, 32, 0, 38, 11, 29, 62, 47, 6, 61, 0, 41, 14, 56, 10, 23, 45, 31, 57, 8, 36, 13, 58, 38, 11, 19 }, + { 0, 34, 12, 47, 21, 2, 40, 30, 11, 25, 61, 20, 40, 15, 35, 22, 45, 36, 7, 41, 17, 57, 9, 48, 32, 62, 44, 24, 35, 3, 54, 13, 33, 63, 19, 4, 48, 22, 62, 2, 37, 8, 33, 6, 20, 52, 9, 32, 43, 13, 39, 63, 25, 4, 49, 23, 62, 32, 9, 30, 48, 18, 63, 12, 46, 29, 58, 13, 48, 8, 57, 31, 0, 51, 9, 58, 12, 22, 47, 29, 35, 22, 49, 5, 46, 4, 34, 20, 63, 24, 56, 11, 41, 3, 51, 19, 56, 35, 17, 58, 28, 42, 9, 45, 59, 26, 51, 42, 17, 36, 25, 15, 53, 21, 44, 3, 30, 55, 5, 50, 21, 28, 61, 32, 6, 49, 28, 46 }, + { 58, 42, 60, 4, 31, 59, 22, 63, 35, 38, 9, 54, 1, 57, 8, 51, 16, 58, 27, 53, 3, 38, 30, 15, 27, 6, 19, 56, 10, 50, 21, 36, 47, 5, 43, 28, 51, 32, 13, 46, 18, 54, 16, 43, 63, 12, 36, 59, 22, 34, 5, 52, 17, 59, 27, 41, 0, 19, 55, 37, 13, 43, 6, 34, 41, 10, 36, 55, 19, 44, 3, 16, 58, 27, 49, 25, 32, 62, 17, 55, 13, 63, 18, 52, 25, 37, 17, 48, 13, 32, 5, 46, 28, 37, 14, 43, 25, 5, 51, 39, 3, 52, 33, 22, 8, 40, 12, 4, 57, 9, 46, 39, 28, 58, 13, 62, 17, 42, 19, 36, 0, 47, 16, 43, 24, 21, 54, 13 }, + { 25, 9, 23, 50, 36, 8, 45, 14, 3, 51, 16, 28, 44, 12, 42, 29, 4, 26, 10, 47, 22, 61, 18, 54, 51, 39, 46, 13, 41, 26, 58, 7, 18, 39, 12, 57, 15, 1, 52, 27, 41, 23, 48, 1, 27, 45, 18, 2, 57, 26, 55, 8, 43, 31, 6, 58, 14, 51, 40, 5, 61, 31, 24, 54, 17, 60, 22, 1, 39, 30, 53, 45, 36, 13, 43, 5, 45, 2, 37, 6, 34, 42, 2, 39, 10, 62, 7, 54, 40, 18, 60, 15, 52, 21, 63, 8, 55, 46, 15, 30, 23, 13, 62, 16, 50, 24, 58, 31, 48, 21, 34, 2, 49, 7, 31, 37, 26, 48, 9, 61, 40, 11, 52, 2, 60, 40, 4, 37 }, + { 52, 28, 39, 16, 54, 19, 29, 55, 42, 20, 58, 33, 24, 63, 18, 55, 39, 62, 43, 34, 12, 40, 6, 35, 2, 25, 8, 62, 34, 1, 31, 42, 61, 27, 53, 24, 40, 61, 34, 8, 59, 4, 30, 56, 40, 6, 53, 42, 10, 48, 16, 37, 12, 46, 21, 36, 47, 11, 28, 45, 22, 10, 57, 2, 49, 31, 14, 44, 61, 11, 25, 6, 23, 63, 18, 36, 28, 56, 20, 51, 11, 48, 27, 56, 32, 22, 45, 30, 2, 42, 27, 39, 1, 44, 23, 31, 38, 22, 11, 61, 43, 54, 4, 47, 35, 2, 44, 16, 28, 54, 12, 62, 18, 43, 10, 52, 1, 58, 33, 15, 29, 56, 20, 34, 9, 30, 48, 17 }, + { 46, 2, 56, 11, 41, 1, 49, 6, 27, 47, 2, 48, 5, 32, 37, 3, 13, 19, 32, 1, 55, 28, 60, 17, 43, 59, 32, 20, 49, 16, 55, 23, 14, 46, 2, 36, 6, 30, 20, 49, 12, 47, 35, 14, 21, 60, 29, 14, 35, 24, 46, 1, 56, 29, 53, 8, 33, 23, 56, 1, 35, 46, 20, 39, 26, 4, 53, 28, 17, 38, 60, 34, 48, 9, 55, 15, 46, 7, 41, 31, 60, 24, 16, 36, 1, 59, 19, 52, 35, 6, 55, 11, 59, 33, 7, 57, 4, 29, 48, 1, 19, 26, 37, 30, 18, 63, 37, 6, 59, 1, 40, 24, 56, 33, 46, 22, 35, 7, 24, 53, 39, 5, 26, 45, 55, 18, 62, 7 }, + { 20, 60, 29, 34, 20, 62, 33, 52, 10, 36, 13, 60, 41, 21, 50, 27, 56, 49, 8, 51, 21, 45, 11, 48, 8, 23, 53, 3, 29, 44, 5, 52, 9, 32, 50, 17, 43, 56, 3, 38, 24, 10, 62, 25, 51, 9, 33, 49, 61, 7, 30, 62, 22, 19, 2, 42, 63, 5, 49, 18, 60, 15, 52, 7, 43, 56, 23, 50, 5, 50, 2, 20, 41, 30, 1, 52, 22, 61, 14, 26, 3, 43, 53, 7, 47, 28, 11, 14, 23, 58, 33, 25, 47, 13, 50, 17, 40, 54, 34, 60, 41, 6, 59, 14, 50, 7, 25, 55, 20, 42, 51, 8, 27, 4, 16, 60, 28, 50, 44, 3, 22, 49, 63, 12, 33, 1, 43, 31 }, + { 36, 5, 46, 8, 44, 24, 13, 39, 25, 57, 31, 18, 8, 52, 10, 45, 6, 30, 36, 24, 63, 4, 33, 26, 57, 40, 15, 56, 37, 12, 40, 25, 37, 58, 11, 63, 21, 45, 16, 60, 31, 53, 18, 33, 3, 45, 23, 0, 20, 54, 40, 15, 50, 38, 60, 16, 25, 42, 29, 38, 7, 41, 25, 62, 18, 33, 8, 35, 42, 16, 32, 56, 12, 39, 59, 19, 34, 9, 49, 38, 57, 12, 21, 50, 14, 40, 61, 44, 50, 9, 49, 19, 3, 29, 35, 62, 12, 24, 7, 18, 52, 32, 10, 46, 21, 41, 32, 11, 36, 29, 14, 34, 60, 38, 54, 11, 41, 14, 19, 57, 32, 16, 7, 41, 51, 25, 14, 57 }, + { 53, 18, 26, 50, 15, 58, 4, 63, 17, 43, 7, 40, 61, 35, 15, 41, 23, 60, 16, 38, 14, 42, 19, 50, 0, 31, 10, 46, 27, 63, 18, 60, 0, 20, 29, 39, 8, 26, 37, 5, 42, 0, 44, 39, 57, 17, 58, 41, 28, 37, 4, 32, 9, 44, 12, 31, 54, 10, 59, 14, 27, 53, 12, 36, 0, 47, 13, 63, 21, 58, 10, 24, 50, 27, 4, 26, 44, 53, 31, 0, 18, 42, 29, 33, 57, 4, 32, 26, 0, 38, 16, 61, 41, 53, 20, 0, 42, 44, 49, 27, 10, 56, 39, 0, 57, 15, 53, 49, 3, 61, 22, 47, 17, 5, 49, 26, 2, 63, 39, 10, 47, 27, 37, 23, 4, 59, 38, 10 }, + { 23, 39, 61, 3, 37, 28, 48, 31, 0, 34, 51, 23, 2, 26, 58, 0, 53, 11, 46, 1, 57, 29, 52, 14, 37, 61, 21, 35, 2, 49, 7, 34, 47, 55, 4, 33, 54, 13, 58, 52, 19, 50, 22, 7, 13, 29, 36, 11, 51, 17, 60, 25, 55, 4, 34, 51, 0, 35, 20, 48, 32, 3, 51, 30, 59, 28, 40, 3, 46, 29, 54, 43, 7, 62, 47, 11, 39, 4, 23, 46, 55, 8, 63, 5, 25, 37, 18, 46, 21, 56, 31, 5, 36, 8, 45, 58, 26, 15, 2, 36, 47, 21, 29, 44, 25, 34, 3, 27, 43, 10, 52, 0, 45, 30, 24, 36, 43, 18, 34, 59, 0, 52, 61, 15, 44, 19, 30, 49 }, + { 0, 27, 12, 43, 54, 9, 22, 53, 21, 46, 15, 55, 29, 47, 20, 33, 39, 28, 59, 35, 9, 44, 5, 24, 47, 7, 52, 17, 56, 22, 30, 42, 14, 26, 45, 18, 49, 1, 24, 34, 11, 27, 55, 32, 61, 47, 2, 56, 6, 44, 13, 47, 36, 27, 58, 22, 16, 47, 40, 4, 57, 38, 21, 45, 16, 9, 56, 26, 11, 38, 0, 22, 36, 17, 33, 57, 16, 30, 62, 15, 35, 40, 20, 45, 59, 10, 54, 8, 63, 13, 52, 27, 22, 57, 28, 12, 32, 51, 55, 22, 63, 4, 16, 54, 12, 62, 45, 19, 58, 13, 32, 40, 20, 56, 7, 57, 9, 54, 6, 29, 42, 21, 8, 55, 35, 47, 6, 41 }, + { 56, 33, 58, 32, 19, 35, 42, 6, 59, 11, 38, 5, 49, 12, 62, 7, 52, 17, 5, 25, 54, 20, 61, 31, 54, 27, 41, 11, 44, 5, 59, 12, 36, 51, 10, 61, 28, 41, 48, 9, 43, 63, 5, 40, 20, 8, 49, 26, 34, 21, 58, 1, 18, 45, 7, 39, 61, 26, 8, 50, 23, 10, 63, 5, 55, 37, 19, 49, 52, 15, 59, 47, 13, 54, 1, 25, 42, 58, 10, 48, 3, 27, 50, 1, 17, 48, 34, 41, 16, 40, 2, 45, 10, 39, 17, 61, 5, 38, 19, 9, 41, 31, 60, 38, 5, 23, 36, 8, 30, 55, 24, 63, 12, 48, 14, 51, 31, 20, 45, 25, 12, 50, 32, 2, 28, 11, 62, 14 }, + { 44, 16, 7, 48, 1, 62, 16, 50, 27, 33, 61, 25, 17, 44, 31, 14, 22, 43, 32, 48, 18, 40, 8, 36, 3, 16, 33, 62, 23, 38, 25, 53, 2, 21, 41, 6, 22, 15, 59, 29, 16, 37, 26, 15, 52, 42, 23, 15, 54, 39, 10, 30, 53, 11, 49, 24, 2, 43, 55, 17, 34, 44, 15, 31, 24, 44, 2, 32, 7, 35, 25, 5, 40, 45, 29, 51, 6, 21, 37, 52, 24, 60, 13, 31, 53, 23, 2, 28, 49, 24, 31, 60, 20, 51, 1, 34, 48, 14, 59, 33, 50, 1, 18, 33, 48, 60, 17, 51, 39, 6, 38, 2, 35, 29, 40, 23, 1, 62, 15, 53, 37, 17, 46, 57, 40, 51, 24, 22 }, + { 5, 37, 52, 24, 45, 13, 40, 3, 45, 9, 19, 42, 56, 4, 37, 46, 56, 2, 63, 11, 51, 1, 49, 13, 59, 45, 39, 1, 48, 15, 58, 9, 46, 31, 54, 35, 57, 38, 3, 46, 56, 4, 47, 57, 1, 30, 38, 63, 3, 46, 28, 63, 41, 14, 33, 62, 19, 32, 13, 28, 61, 1, 53, 42, 11, 60, 22, 62, 27, 42, 61, 31, 19, 8, 61, 12, 32, 55, 2, 18, 33, 12, 43, 36, 9, 62, 30, 55, 6, 58, 35, 7, 43, 29, 54, 23, 43, 30, 3, 25, 11, 45, 52, 28, 7, 14, 42, 1, 22, 50, 16, 53, 19, 59, 4, 46, 33, 41, 4, 35, 58, 5, 26, 13, 20, 2, 34, 54 }, + { 30, 63, 21, 10, 26, 55, 29, 59, 23, 39, 53, 1, 36, 24, 59, 27, 10, 34, 23, 38, 30, 60, 22, 42, 28, 19, 9, 57, 30, 19, 43, 33, 13, 63, 3, 19, 11, 50, 31, 20, 14, 34, 10, 35, 17, 59, 7, 31, 19, 25, 50, 5, 20, 57, 29, 6, 52, 41, 4, 46, 20, 37, 26, 17, 49, 6, 39, 18, 53, 14, 3, 49, 57, 23, 34, 48, 14, 41, 28, 38, 56, 6, 58, 25, 39, 19, 43, 15, 37, 11, 47, 18, 53, 4, 37, 9, 62, 21, 53, 40, 57, 24, 13, 40, 56, 26, 47, 31, 59, 25, 45, 27, 10, 43, 21, 61, 13, 27, 48, 9, 23, 43, 31, 62, 38, 59, 9, 47 }, + { 25, 4, 40, 60, 34, 6, 18, 36, 8, 57, 12, 30, 49, 14, 6, 54, 41, 16, 50, 6, 43, 15, 34, 4, 53, 24, 50, 35, 4, 51, 7, 55, 28, 24, 39, 44, 60, 7, 25, 62, 42, 53, 24, 61, 28, 45, 52, 12, 48, 37, 9, 35, 43, 3, 37, 48, 12, 58, 30, 52, 9, 59, 6, 57, 33, 29, 48, 4, 37, 45, 20, 34, 10, 39, 0, 60, 22, 45, 8, 63, 21, 42, 14, 49, 3, 56, 11, 46, 21, 61, 0, 42, 25, 13, 63, 17, 36, 8, 46, 16, 6, 35, 63, 0, 21, 37, 4, 57, 9, 34, 5, 61, 48, 32, 8, 37, 54, 17, 56, 30, 60, 0, 50, 16, 7, 29, 42, 17 }, + { 32, 50, 15, 48, 2, 43, 52, 25, 47, 16, 32, 63, 21, 52, 40, 19, 0, 61, 29, 58, 20, 56, 26, 46, 12, 55, 6, 22, 62, 32, 17, 40, 0, 49, 34, 8, 27, 32, 48, 0, 21, 39, 5, 44, 12, 6, 22, 40, 0, 57, 16, 60, 23, 17, 54, 22, 36, 15, 24, 39, 19, 34, 47, 23, 0, 54, 13, 51, 24, 9, 55, 16, 52, 27, 44, 20, 4, 54, 26, 49, 0, 30, 46, 16, 29, 51, 34, 4, 52, 28, 33, 15, 57, 39, 26, 49, 0, 56, 27, 31, 48, 20, 43, 29, 53, 11, 46, 19, 41, 13, 55, 18, 0, 57, 26, 51, 2, 44, 6, 38, 14, 40, 22, 45, 36, 53, 3, 57 }, + { 44, 12, 37, 28, 22, 57, 11, 38, 0, 51, 9, 41, 4, 29, 11, 47, 33, 45, 12, 26, 3, 36, 9, 63, 31, 16, 38, 44, 14, 47, 25, 61, 20, 58, 15, 47, 17, 57, 13, 36, 9, 51, 18, 29, 50, 36, 54, 20, 61, 27, 32, 13, 53, 44, 9, 27, 0, 63, 45, 2, 56, 10, 14, 43, 41, 28, 58, 11, 35, 60, 30, 41, 6, 63, 11, 51, 37, 32, 15, 10, 35, 53, 5, 61, 22, 7, 26, 59, 23, 9, 44, 48, 21, 3, 51, 32, 24, 41, 12, 61, 2, 55, 9, 15, 35, 58, 28, 15, 62, 30, 37, 23, 42, 29, 11, 17, 35, 24, 63, 20, 52, 28, 8, 55, 11, 23, 47, 19 }, + { 0, 56, 8, 53, 14, 31, 61, 20, 55, 28, 62, 18, 35, 60, 25, 57, 7, 23, 39, 54, 47, 17, 43, 0, 40, 59, 29, 2, 56, 10, 37, 5, 43, 11, 29, 52, 1, 23, 54, 41, 59, 30, 55, 1, 62, 15, 33, 4, 43, 10, 47, 39, 1, 31, 40, 60, 49, 33, 7, 55, 26, 50, 31, 61, 8, 18, 21, 32, 44, 1, 25, 47, 18, 36, 30, 23, 59, 7, 40, 59, 27, 19, 38, 32, 44, 54, 40, 17, 38, 60, 27, 6, 35, 55, 10, 14, 44, 5, 50, 17, 38, 26, 42, 50, 18, 3, 44, 52, 2, 49, 7, 52, 15, 46, 62, 39, 55, 10, 31, 48, 3, 58, 33, 18, 61, 34, 13, 59 }, + { 39, 27, 63, 20, 35, 41, 4, 45, 26, 5, 38, 13, 44, 2, 50, 17, 37, 52, 2, 13, 28, 58, 24, 51, 21, 8, 34, 48, 27, 42, 18, 51, 31, 56, 5, 36, 38, 44, 4, 17, 26, 11, 38, 23, 42, 8, 56, 39, 24, 51, 5, 56, 21, 59, 14, 6, 18, 42, 22, 35, 16, 37, 3, 25, 39, 46, 63, 5, 50, 17, 58, 8, 55, 3, 50, 12, 43, 17, 47, 2, 51, 9, 62, 12, 1, 35, 13, 50, 1, 37, 12, 51, 19, 29, 46, 59, 22, 58, 33, 45, 22, 60, 10, 32, 61, 39, 8, 33, 25, 36, 20, 60, 38, 4, 21, 5, 28, 45, 12, 18, 42, 11, 49, 1, 27, 40, 6, 30 }, + { 24, 16, 42, 1, 50, 10, 48, 17, 33, 43, 24, 48, 21, 55, 31, 42, 10, 21, 63, 35, 49, 6, 33, 13, 41, 53, 10, 20, 60, 6, 53, 26, 12, 41, 22, 60, 14, 28, 63, 33, 49, 3, 45, 16, 48, 26, 14, 46, 18, 30, 35, 26, 8, 50, 29, 51, 25, 57, 12, 47, 53, 9, 62, 20, 54, 2, 36, 15, 40, 28, 33, 13, 38, 24, 46, 1, 29, 56, 33, 20, 44, 24, 41, 26, 57, 20, 63, 8, 30, 55, 5, 41, 62, 8, 34, 2, 37, 10, 19, 6, 37, 1, 53, 23, 5, 27, 58, 22, 43, 12, 50, 26, 9, 34, 54, 32, 49, 1, 59, 37, 22, 46, 25, 36, 51, 15, 54, 46 }, + { 52, 7, 45, 33, 26, 58, 14, 60, 7, 54, 3, 58, 8, 34, 14, 5, 59, 30, 18, 44, 8, 22, 48, 62, 3, 26, 55, 38, 23, 16, 39, 1, 62, 24, 49, 9, 53, 19, 46, 7, 19, 60, 31, 58, 2, 34, 53, 7, 59, 2, 62, 42, 46, 19, 36, 11, 44, 4, 38, 28, 1, 43, 32, 51, 12, 29, 56, 22, 52, 2, 62, 49, 22, 60, 14, 35, 63, 5, 25, 57, 14, 53, 4, 46, 18, 31, 42, 22, 47, 20, 58, 31, 16, 43, 23, 54, 30, 42, 52, 57, 29, 49, 30, 13, 45, 48, 16, 55, 6, 63, 1, 44, 14, 58, 19, 47, 15, 24, 51, 34, 6, 55, 5, 63, 20, 41, 21, 9 }, + { 30, 62, 18, 55, 5, 23, 39, 29, 49, 30, 15, 36, 28, 46, 60, 25, 39, 46, 4, 32, 61, 40, 15, 30, 36, 45, 14, 2, 49, 33, 57, 45, 18, 32, 3, 45, 30, 2, 35, 52, 40, 27, 13, 21, 38, 63, 20, 28, 37, 23, 16, 10, 13, 55, 2, 62, 21, 32, 60, 17, 58, 23, 5, 40, 16, 48, 7, 45, 10, 26, 43, 19, 6, 31, 52, 21, 39, 16, 48, 9, 37, 28, 36, 55, 7, 48, 3, 59, 15, 45, 25, 1, 53, 13, 47, 7, 62, 15, 4, 25, 12, 41, 18, 60, 38, 11, 34, 19, 39, 31, 29, 56, 23, 42, 3, 27, 60, 41, 8, 16, 61, 29, 43, 9, 32, 2, 60, 34 }, + { 3, 38, 13, 37, 52, 44, 2, 19, 12, 42, 63, 19, 40, 1, 20, 50, 12, 55, 15, 56, 27, 1, 54, 11, 57, 18, 32, 63, 44, 4, 29, 13, 37, 61, 35, 16, 42, 57, 12, 22, 6, 55, 43, 10, 50, 5, 44, 11, 48, 52, 34, 58, 28, 41, 38, 30, 7, 52, 11, 49, 30, 14, 45, 27, 59, 34, 21, 38, 32, 58, 11, 36, 56, 42, 9, 41, 3, 54, 31, 42, 0, 60, 16, 11, 39, 24, 52, 33, 6, 36, 10, 40, 32, 60, 26, 20, 39, 28, 47, 34, 63, 8, 54, 3, 24, 56, 0, 51, 13, 47, 16, 40, 7, 35, 52, 11, 36, 4, 57, 30, 39, 13, 18, 50, 58, 28, 12, 48 }, + { 57, 24, 49, 21, 10, 31, 61, 36, 56, 0, 22, 53, 11, 56, 32, 7, 36, 27, 41, 9, 46, 19, 34, 42, 25, 7, 50, 9, 28, 21, 54, 8, 50, 7, 27, 59, 10, 25, 48, 62, 37, 0, 33, 58, 25, 18, 32, 61, 0, 15, 45, 5, 50, 3, 23, 55, 47, 17, 40, 6, 60, 34, 53, 8, 41, 0, 61, 13, 54, 4, 46, 28, 0, 17, 48, 27, 58, 13, 23, 61, 33, 21, 50, 30, 62, 8, 14, 29, 56, 27, 61, 49, 17, 2, 44, 11, 51, 0, 59, 17, 40, 20, 32, 47, 36, 21, 42, 28, 60, 4, 54, 10, 59, 17, 30, 62, 21, 43, 26, 48, 0, 56, 36, 25, 8, 44, 39, 17 }, + { 10, 42, 4, 59, 27, 47, 8, 23, 51, 32, 45, 6, 37, 26, 48, 43, 62, 0, 21, 53, 38, 12, 51, 5, 60, 47, 24, 37, 59, 15, 35, 47, 22, 55, 0, 50, 21, 40, 6, 29, 15, 52, 24, 8, 41, 55, 13, 29, 40, 56, 24, 31, 19, 33, 61, 15, 0, 35, 24, 42, 21, 2, 19, 57, 24, 15, 30, 50, 20, 25, 40, 16, 57, 34, 61, 8, 29, 45, 6, 49, 11, 47, 2, 44, 19, 57, 38, 50, 12, 42, 21, 4, 35, 52, 28, 56, 23, 36, 13, 45, 4, 52, 27, 14, 6, 62, 9, 45, 21, 37, 25, 46, 33, 49, 0, 44, 7, 53, 13, 19, 53, 31, 3, 47, 15, 56, 22, 51 }, + { 35, 28, 53, 32, 1, 16, 54, 40, 9, 17, 25, 58, 14, 59, 3, 22, 16, 51, 31, 5, 23, 58, 28, 17, 35, 20, 0, 42, 11, 52, 3, 31, 41, 17, 43, 13, 32, 54, 18, 60, 32, 45, 17, 49, 2, 36, 51, 22, 7, 36, 9, 63, 48, 12, 46, 26, 43, 28, 63, 13, 48, 37, 51, 33, 5, 47, 55, 9, 42, 63, 7, 51, 24, 12, 37, 19, 55, 34, 18, 38, 15, 28, 54, 34, 5, 43, 22, 0, 48, 14, 54, 24, 58, 9, 38, 5, 32, 55, 21, 30, 49, 9, 59, 43, 30, 51, 35, 26, 7, 53, 2, 22, 14, 27, 57, 18, 38, 24, 33, 45, 10, 41, 20, 60, 37, 5, 32, 0 }, + { 63, 19, 15, 40, 62, 35, 14, 28, 46, 61, 4, 49, 35, 10, 29, 54, 33, 8, 45, 62, 37, 1, 43, 55, 10, 52, 61, 30, 19, 40, 25, 62, 11, 38, 27, 58, 36, 3, 46, 8, 39, 4, 62, 28, 47, 20, 4, 54, 47, 27, 43, 1, 21, 38, 8, 58, 10, 54, 4, 56, 9, 26, 12, 39, 60, 27, 18, 37, 1, 31, 35, 5, 45, 50, 2, 43, 26, 1, 59, 23, 56, 40, 7, 26, 58, 17, 32, 63, 25, 39, 7, 31, 45, 19, 63, 15, 48, 8, 37, 61, 16, 34, 1, 56, 18, 3, 15, 58, 49, 32, 63, 41, 55, 5, 40, 22, 50, 6, 59, 2, 63, 23, 52, 11, 26, 61, 44, 23 }, + { 11, 56, 46, 6, 22, 43, 58, 3, 34, 21, 38, 30, 18, 44, 52, 13, 41, 57, 17, 28, 14, 49, 25, 7, 33, 39, 26, 6, 56, 48, 1, 20, 56, 5, 46, 9, 19, 51, 30, 25, 56, 21, 35, 14, 57, 42, 16, 33, 10, 57, 17, 59, 41, 25, 53, 37, 20, 40, 30, 18, 31, 62, 44, 22, 3, 44, 11, 48, 23, 53, 18, 60, 29, 22, 62, 15, 53, 47, 10, 41, 3, 19, 52, 36, 13, 46, 10, 35, 3, 61, 41, 16, 1, 50, 26, 42, 18, 46, 2, 25, 54, 20, 39, 23, 47, 31, 41, 12, 38, 17, 8, 19, 31, 48, 12, 61, 9, 54, 29, 35, 15, 38, 6, 43, 34, 14, 7, 47 }, + { 39, 2, 33, 26, 53, 8, 18, 50, 41, 12, 53, 1, 63, 24, 19, 39, 2, 24, 47, 10, 60, 38, 19, 63, 48, 4, 15, 45, 32, 14, 60, 36, 29, 53, 23, 63, 34, 12, 61, 1, 43, 11, 53, 30, 1, 26, 60, 45, 23, 39, 3, 29, 12, 50, 4, 16, 51, 3, 45, 36, 50, 1, 16, 54, 35, 14, 57, 30, 58, 9, 46, 14, 41, 10, 32, 38, 4, 30, 21, 51, 32, 63, 25, 1, 60, 27, 53, 18, 51, 22, 28, 55, 34, 12, 40, 3, 60, 29, 57, 41, 6, 44, 11, 53, 8, 61, 24, 57, 1, 28, 44, 59, 36, 3, 34, 25, 41, 31, 16, 44, 22, 47, 28, 58, 1, 49, 54, 29 }, + { 58, 25, 50, 13, 38, 30, 60, 24, 6, 57, 27, 42, 9, 45, 6, 61, 30, 50, 4, 34, 29, 3, 46, 13, 22, 42, 58, 28, 9, 39, 23, 44, 7, 15, 44, 2, 40, 15, 47, 41, 23, 37, 7, 59, 38, 11, 34, 6, 62, 14, 52, 35, 55, 19, 32, 61, 33, 24, 57, 6, 22, 59, 29, 7, 49, 25, 40, 3, 17, 39, 27, 52, 0, 55, 16, 57, 24, 61, 36, 6, 29, 12, 48, 39, 20, 44, 6, 40, 33, 5, 48, 10, 57, 36, 22, 51, 33, 9, 24, 12, 62, 29, 50, 35, 14, 43, 5, 33, 47, 52, 13, 23, 10, 51, 56, 16, 46, 1, 49, 4, 61, 9, 52, 18, 31, 21, 36, 17 }, + { 19, 42, 9, 48, 2, 44, 11, 37, 48, 20, 33, 16, 55, 35, 49, 15, 37, 20, 59, 16, 53, 22, 56, 31, 50, 11, 34, 54, 16, 51, 4, 49, 33, 53, 21, 28, 56, 24, 31, 9, 52, 16, 48, 24, 44, 13, 51, 20, 31, 49, 18, 6, 34, 2, 44, 14, 47, 8, 15, 43, 13, 41, 33, 52, 20, 61, 7, 51, 34, 62, 4, 20, 36, 33, 43, 8, 46, 13, 53, 17, 45, 42, 9, 31, 52, 11, 30, 56, 13, 59, 17, 44, 27, 6, 62, 11, 43, 17, 49, 38, 26, 2, 16, 27, 58, 21, 54, 18, 26, 5, 35, 61, 43, 27, 7, 39, 14, 58, 37, 55, 20, 33, 13, 40, 62, 10, 55, 5 }, + { 51, 14, 61, 29, 59, 20, 55, 31, 0, 49, 11, 60, 3, 26, 22, 56, 0, 40, 12, 43, 41, 8, 36, 0, 17, 57, 24, 2, 46, 26, 61, 18, 0, 38, 12, 59, 6, 49, 3, 57, 19, 63, 5, 33, 18, 54, 28, 56, 0, 43, 26, 46, 63, 27, 56, 22, 27, 54, 38, 28, 63, 24, 10, 45, 0, 31, 42, 21, 12, 25, 44, 49, 59, 6, 26, 50, 3, 34, 27, 59, 0, 35, 62, 16, 4, 58, 47, 0, 43, 24, 37, 2, 54, 20, 46, 31, 0, 56, 34, 5, 55, 45, 60, 37, 0, 40, 10, 38, 63, 46, 15, 20, 0, 53, 21, 62, 30, 11, 24, 27, 40, 0, 57, 26, 3, 45, 27, 35 } +}; +#endif + +void +convert_init(void) +{ +} + +Gfx_Func_Convert +convert_func_get(DATA8 *dest, int w, int h, int depth, DATA32 rmask, DATA32 gmask, DATA32 bmask, Convert_Pal_Mode pal_mode, int rotation) +{ + if ((rmask == 0) && (gmask == 0) && (bmask == 0)) + { + if (depth == 8) + { +#ifdef BUILD_CONVERT_8_RGB_332 + if (pal_mode == PAL_MODE_RGB332) + return convert_rgba_to_8bpp_rgb_332_dith; +#endif +#ifdef BUILD_CONVERT_8_RGB_666 + if (pal_mode == PAL_MODE_RGB666) + return convert_rgba_to_8bpp_rgb_666_dith; +#endif +#ifdef BUILD_CONVERT_8_RGB_232 + if (pal_mode == PAL_MODE_RGB232) + return convert_rgba_to_8bpp_rgb_232_dith; +#endif +#ifdef BUILD_CONVERT_8_RGB_222 + if (pal_mode == PAL_MODE_RGB222) + return convert_rgba_to_8bpp_rgb_222_dith; +#endif +#ifdef BUILD_CONVERT_8_RGB_221 + if (pal_mode == PAL_MODE_RGB221) + return convert_rgba_to_8bpp_rgb_221_dith; +#endif +#ifdef BUILD_CONVERT_8_RGB_121 + if (pal_mode == PAL_MODE_RGB121) + return convert_rgba_to_8bpp_rgb_121_dith; +#endif +#ifdef BUILD_CONVERT_8_RGB_111 + if (pal_mode == PAL_MODE_RGB111) + return convert_rgba_to_8bpp_rgb_111_dith; +#endif + } + if (depth == 1) + { + } + if (depth == 4) + { + } + } + else + { + if (depth == 16) + { +#ifdef BUILD_CONVERT_16_RGB_565 + if ((rmask == 0x0000f800) && (gmask == 0x000007e0) && (bmask == 0x0000001f)) + { +#ifdef BUILD_CONVERT_16_RGB_ROT0 + if (rotation == 0) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_565_dith; + else + return convert_rgba_to_16bpp_rgb_565_dith; + } +#endif +#ifdef BUILD_CONVERT_16_RGB_ROT270 + if (rotation == 270) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_565_dith_rot_270; + else + return convert_rgba_to_16bpp_rgb_565_dith_rot_270; + } +#endif +#ifdef BUILD_CONVERT_16_RGB_ROT90 + if (rotation == 90) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_565_dith_rot_90; + else + return convert_rgba_to_16bpp_rgb_565_dith_rot_90; + } +#endif + } +#endif +#ifdef BUILD_CONVERT_16_RGB_555 + if ((rmask == 0x00007c00) && (gmask == 0x000003e0) && (bmask == 0x0000001f)) + { +#ifdef BUILD_CONVERT_16_RGB_ROT0 + if (rotation == 0) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_555_dith; + else + return convert_rgba_to_16bpp_rgb_555_dith; + } +#endif +#ifdef BUILD_CONVERT_16_RGB_ROT270 + if (rotation == 270) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_555_dith_rot_270; + else + return convert_rgba_to_16bpp_rgb_555_dith_rot_270; + } +#endif +#ifdef BUILD_CONVERT_16_RGB_ROT90 + if (rotation == 90) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_555_dith_rot_90; + else + return convert_rgba_to_16bpp_rgb_555_dith_rot_90; + } +#endif + } +#endif +#ifdef BUILD_CONVERT_16_RGB_444 + if ((rmask == 0x00000f00) && (gmask == 0x000000f0) && (bmask == 0x0000000f)) + { +#ifdef BUILD_CONVERT_16_RGB_ROT0 + if (rotation == 0) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_444_dith; + else + return convert_rgba_to_16bpp_rgb_444_dith; + } +#endif +#ifdef BUILD_CONVERT_16_RGB_ROT270 + if (rotation == 270) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_444_dith_rot_270; + else + return convert_rgba_to_16bpp_rgb_444_dith_rot_270; + } +#endif +#ifdef BUILD_CONVERT_16_RGB_ROT90 + if (rotation == 90) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_444_dith_rot_90; + else + return convert_rgba_to_16bpp_rgb_444_dith_rot_90; + } +#endif + } +#endif +#ifdef BUILD_CONVERT_16_RGB_454645 + if ((rmask == 0x0000f000) && (gmask == 0x00000780) && (bmask == 0x0000001e)) + { +#ifdef BUILD_CONVERT_16_RGB_ROT0 + if (rotation == 0) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_454645_dith; + else + return convert_rgba_to_16bpp_rgb_454645_dith; + + } +#endif +#ifdef BUILD_CONVERT_16_RGB_ROT270 + if (rotation == 270) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_454645_dith_rot_270; + else + return convert_rgba_to_16bpp_rgb_454645_dith_rot_270; + } +#endif +#ifdef BUILD_CONVERT_16_RGB_ROT90 + if (rotation == 270) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_454645_dith_rot_90; + else + return convert_rgba_to_16bpp_rgb_454645_dith_rot_90; + } +#endif + } +#endif +#ifdef BUILD_CONVERT_16_RGB_454645 + if ((rmask == 0x0000f800) && (gmask == 0x000007e0) && (bmask == 0x0000001f)) + { +#ifdef BUILD_CONVERT_16_RGB_ROT0 + if (rotation == 0) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_454645_dith; + else + return convert_rgba_to_16bpp_rgb_454645_dith; + + } +#endif +#ifdef BUILD_CONVERT_16_RGB_ROT270 + if (rotation == 270) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_454645_dith_rot_270; + else + return convert_rgba_to_16bpp_rgb_454645_dith_rot_270; + } +#endif +#ifdef BUILD_CONVERT_16_RGB_ROT90 + if (rotation == 90) + { + if ((!(w & 0x1)) && (!((int)dest & 0x3))) + return convert_rgba2_to_16bpp_rgb_454645_dith_rot_90; + else + return convert_rgba_to_16bpp_rgb_454645_dith_rot_90; + } +#endif + } +#endif + } + if (depth == 32) + { +#ifdef BUILD_CONVERT_32_RGB_8888 + if ((rmask == 0x00ff0000) && (gmask == 0x0000ff00) && (bmask == 0x000000ff)) + { +#ifdef BUILD_CONVERT_32_RGB_ROT0 + if (rotation == 0) + return convert_rgba_to_32bpp_rgb_8888; +#endif +#ifdef BUILD_CONVERT_32_RGB_ROT270 + if (rotation == 270) + return convert_rgba_to_32bpp_rgb_8888_rot_270; +#endif +#ifdef BUILD_CONVERT_32_RGB_ROT90 + if (rotation == 90) + return convert_rgba_to_32bpp_rgb_8888_rot_90; +#endif + } +#endif +#ifdef BUILD_CONVERT_32_RGBX_8888 + if ((rmask == 0xff000000) && (gmask == 0x00ff0000) && (bmask == 0x0000ff00)) + { +#ifdef BUILD_CONVERT_32_RGB_ROT0 + if (rotation == 0) + return convert_rgba_to_32bpp_rgbx_8888; +#endif +#ifdef BUILD_CONVERT_32_RGB_ROT270 + if (rotation == 270) + return convert_rgba_to_32bpp_rgbx_8888_rot_270; +#endif +#ifdef BUILD_CONVERT_32_RGB_ROT90 + if (rotation == 90) + return convert_rgba_to_32bpp_rgbx_8888_rot_90; +#endif + } +#endif +#ifdef BUILD_CONVERT_32_BGR_8888 + if ((rmask == 0x000000ff) && (gmask == 0x0000ff00) && (bmask == 0x00ff0000)) + { +#ifdef BUILD_CONVERT_32_RGB_ROT0 + if (rotation == 0) + return convert_rgba_to_32bpp_bgr_8888; +#endif +#ifdef BUILD_CONVERT_32_RGB_ROT270 + if (rotation == 270) + return convert_rgba_to_32bpp_bgr_8888_rot_270; +#endif +#ifdef BUILD_CONVERT_32_RGB_ROT90 + if (rotation == 90) + return convert_rgba_to_32bpp_bgr_8888_rot_90; +#endif + } +#endif +#ifdef BUILD_CONVERT_32_BGRX_8888 + if ((rmask == 0x0000ff00) && (gmask == 0x00ff0000) && (bmask == 0xff000000)) + { +#ifdef BUILD_CONVERT_32_RGB_ROT0 + if (rotation == 0) + return convert_rgba_to_32bpp_bgrx_8888; +#endif +#ifdef BUILD_CONVERT_32_RGB_ROT270 + if (rotation == 270) + return convert_rgba_to_32bpp_bgrx_8888_rot_270; +#endif +#ifdef BUILD_CONVERT_32_RGB_ROT90 + if (rotation == 90) + return convert_rgba_to_32bpp_bgrx_8888_rot_90; +#endif + } +#endif + } + if (depth == 24) + { + } + printf("depth = %i mode = %i\n", depth, pal_mode); + if (depth == 8) + { +#ifdef BUILD_CONVERT_8_RGB_332 + if (pal_mode == PAL_MODE_RGB332) + return convert_rgba_to_8bpp_rgb_332_dith; +#endif +#ifdef BUILD_CONVERT_8_RGB_666 + if (pal_mode == PAL_MODE_RGB666) + return convert_rgba_to_8bpp_rgb_666_dith; +#endif +#ifdef BUILD_CONVERT_8_RGB_232 + if (pal_mode == PAL_MODE_RGB232) + return convert_rgba_to_8bpp_rgb_232_dith; +#endif +#ifdef BUILD_CONVERT_8_RGB_222 + if (pal_mode == PAL_MODE_RGB222) + return convert_rgba_to_8bpp_rgb_222_dith; +#endif +#ifdef BUILD_CONVERT_8_RGB_221 + if (pal_mode == PAL_MODE_RGB221) + return convert_rgba_to_8bpp_rgb_221_dith; +#endif +#ifdef BUILD_CONVERT_8_RGB_121 + if (pal_mode == PAL_MODE_RGB121) + return convert_rgba_to_8bpp_rgb_121_dith; +#endif +#ifdef BUILD_CONVERT_8_RGB_111 + if (pal_mode == PAL_MODE_RGB111) + return convert_rgba_to_8bpp_rgb_111_dith; +#endif + } + if (depth == 1) + { + } + if (depth == 4) + { + } + } + /* no optimised converter for this... no generic one either. NULL */ + return NULL; + h = 0; + pal_mode = 0; +} diff --git a/legacy/evas/src/lib/engines/common/evas_convert_rgb_16.c b/legacy/evas/src/lib/engines/common/evas_convert_rgb_16.c new file mode 100644 index 0000000000..f4254a2c4b --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_convert_rgb_16.c @@ -0,0 +1,1012 @@ +#include "evas_common.h" + +#ifdef USE_DITHER_44 +extern const DATA8 _dither_44[4][4]; +#endif +#ifdef USE_DITHER_128128 +extern const DATA8 _dither_128128[128][128]; +#endif + +#ifdef BUILD_CONVERT_16_RGB_565 +#ifdef BUILD_CONVERT_16_RGB_ROT0 +void +convert_rgba2_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r1, g1, b1; + DATA8 r2, g2, b2; + DATA8 dith, dith2; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP2_START_ROT_0(); + + r1 = (R_VAL(src_ptr)) >> 3; + g1 = (G_VAL(src_ptr)) >> 2; + b1 = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); + if (((R_VAL(src_ptr) - (r1 << 3)) >= dith ) && (r1 < 0x1f)) r1++; + if (((G_VAL(src_ptr) - (g1 << 2)) >= dith2) && (g1 < 0x3f)) g1++; + if (((B_VAL(src_ptr) - (b1 << 3)) >= dith ) && (b1 < 0x1f)) b1++; + CONVERT_LOOP2_INC_ROT_0(); + + r2 = (R_VAL(src_ptr)) >> 3; + g2 = (G_VAL(src_ptr)) >> 2; + b2 = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); + if (((R_VAL(src_ptr) - (r2 << 3)) >= dith ) && (r2 < 0x1f)) r2++; + if (((G_VAL(src_ptr) - (g2 << 2)) >= dith2) && (g2 < 0x3f)) g2++; + if (((B_VAL(src_ptr) - (b2 << 3)) >= dith ) && (b2 < 0x1f)) b2++; + +#ifndef WORDS_BIGENDIAN + *((DATA32 *)dst_ptr) = + (r2 << 27) | (g2 << 21) | (b2 << 16) | + (r1 << 11) | (g1 << 5 ) | (b1 ); +#else + *((DATA32 *)dst_ptr) = + (r1 << 27) | (g1 << 21) | (b1 << 16) | + (r2 << 11) | (g2 << 5 ) | (b2 ); +#endif + + CONVERT_LOOP2_END_ROT_0(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_565 +#ifdef BUILD_CONVERT_16_RGB_ROT0 +void +convert_rgba_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith, dith2; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + r = (R_VAL(src_ptr)) >> 3; + g = (G_VAL(src_ptr)) >> 2; + b = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); + if (((R_VAL(src_ptr) - (r << 3)) >= dith ) && (r < 0x1f)) r++; + if (((G_VAL(src_ptr) - (g << 2)) >= dith2) && (g < 0x3f)) g++; + if (((B_VAL(src_ptr) - (b << 3)) >= dith ) && (b < 0x1f)) b++; + + *dst_ptr = (r << 11) | (g << 5) | (b); + + CONVERT_LOOP_END_ROT_0(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_565 +#ifdef BUILD_CONVERT_16_RGB_ROT270 +void +convert_rgba2_to_16bpp_rgb_565_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r1, g1, b1; + DATA8 r2, g2, b2; + DATA8 dith, dith2; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP2_START_ROT_270(); + + r1 = (R_VAL(src_ptr)) >> 3; + g1 = (G_VAL(src_ptr)) >> 2; + b1 = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); + if (((R_VAL(src_ptr) - (r1 << 3)) >= dith ) && (r1 < 0x1f)) r1++; + if (((G_VAL(src_ptr) - (g1 << 2)) >= dith2) && (g1 < 0x3f)) g1++; + if (((B_VAL(src_ptr) - (b1 << 3)) >= dith ) && (b1 < 0x1f)) b1++; + + CONVERT_LOOP2_INC_ROT_270(); + + r2 = (R_VAL(src_ptr)) >> 3; + g2 = (G_VAL(src_ptr)) >> 2; + b2 = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); + if (((R_VAL(src_ptr) - (r2 << 3)) >= dith ) && (r2 < 0x1f)) r2++; + if (((G_VAL(src_ptr) - (g2 << 2)) >= dith2) && (g2 < 0x3f)) g2++; + if (((B_VAL(src_ptr) - (b2 << 3)) >= dith ) && (b2 < 0x1f)) b2++; + +#ifndef WORDS_BIGENDIAN + *((DATA32 *)dst_ptr) = + (r2 << 27) | (g2 << 21) | (b2 << 16) | + (r1 << 11) | (g1 << 5 ) | (b1 ); +#else + *((DATA32 *)dst_ptr) = + (r1 << 27) | (g1 << 21) | (b1 << 16) | + (r2 << 11) | (g2 << 5 ) | (b2 ); +#endif + + CONVERT_LOOP2_END_ROT_270(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_565 +#ifdef BUILD_CONVERT_16_RGB_ROT270 +void +convert_rgba_to_16bpp_rgb_565_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith, dith2; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP_START_ROT_270(); + + r = (R_VAL(src_ptr)) >> 3; + g = (G_VAL(src_ptr)) >> 2; + b = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); + if (((R_VAL(src_ptr) - (r << 3)) >= dith ) && (r < 0x1f)) r++; + if (((G_VAL(src_ptr) - (g << 2)) >= dith2) && (g < 0x3f)) g++; + if (((B_VAL(src_ptr) - (b << 3)) >= dith ) && (b < 0x1f)) b++; + + *dst_ptr = (r << 11) | (g << 5) | (b); + + CONVERT_LOOP_END_ROT_270(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_565 +#ifdef BUILD_CONVERT_16_RGB_ROT90 +void +convert_rgba2_to_16bpp_rgb_565_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r1, g1, b1; + DATA8 r2, g2, b2; + DATA8 dith, dith2; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP2_START_ROT_90(); + + r1 = (R_VAL(src_ptr)) >> 3; + g1 = (G_VAL(src_ptr)) >> 2; + b1 = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); + if (((R_VAL(src_ptr) - (r1 << 3)) >= dith ) && (r1 < 0x1f)) r1++; + if (((G_VAL(src_ptr) - (g1 << 2)) >= dith2) && (g1 < 0x3f)) g1++; + if (((B_VAL(src_ptr) - (b1 << 3)) >= dith ) && (b1 < 0x1f)) b1++; + + CONVERT_LOOP2_INC_ROT_90(); + + r2 = (R_VAL(src_ptr)) >> 3; + g2 = (G_VAL(src_ptr)) >> 2; + b2 = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); + if (((R_VAL(src_ptr) - (r2 << 3)) >= dith ) && (r2 < 0x1f)) r2++; + if (((G_VAL(src_ptr) - (g2 << 2)) >= dith2) && (g2 < 0x3f)) g2++; + if (((B_VAL(src_ptr) - (b2 << 3)) >= dith ) && (b2 < 0x1f)) b2++; + +#ifndef WORDS_BIGENDIAN + *((DATA32 *)dst_ptr) = + (r2 << 27) | (g2 << 21) | (b2 << 16) | + (r1 << 11) | (g1 << 5 ) | (b1 ); +#else + *((DATA32 *)dst_ptr) = + (r1 << 27) | (g1 << 21) | (b1 << 16) | + (r2 << 11) | (g2 << 5 ) | (b2 ); +#endif + + CONVERT_LOOP2_END_ROT_90(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_565 +#ifdef BUILD_CONVERT_16_RGB_ROT90 +void +convert_rgba_to_16bpp_rgb_565_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith, dith2; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP_START_ROT_90(); + + r = (R_VAL(src_ptr)) >> 3; + g = (G_VAL(src_ptr)) >> 2; + b = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6); + if (((R_VAL(src_ptr) - (r << 3)) >= dith ) && (r < 0x1f)) r++; + if (((G_VAL(src_ptr) - (g << 2)) >= dith2) && (g < 0x3f)) g++; + if (((B_VAL(src_ptr) - (b << 3)) >= dith ) && (b < 0x1f)) b++; + + *dst_ptr = (r << 11) | (g << 5) | (b); + + CONVERT_LOOP_END_ROT_90(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_444 +#ifdef BUILD_CONVERT_16_RGB_ROT0 +void +convert_rgba2_to_16bpp_rgb_444_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r1, g1, b1; + DATA8 r2, g2, b2; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP2_START_ROT_0(); + + r1 = (R_VAL(src_ptr)) >> 4; + g1 = (G_VAL(src_ptr)) >> 4; + b1 = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; + if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; + if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; + + CONVERT_LOOP2_INC_ROT_0(); + + r2 = (R_VAL(src_ptr)) >> 4; + g2 = (G_VAL(src_ptr)) >> 4; + b2 = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; + if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; + if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; + +#ifndef WORDS_BIGENDIAN + *((DATA32 *)dst_ptr) = + (r2 << 24) | (g2 << 20) | (b2 << 16) | + (r1 << 8 ) | (g1 << 4 ) | (b1 ); +#else + *((DATA32 *)dst_ptr) = + (r1 << 24) | (g1 << 20) | (b1 << 16) | + (r2 << 8 ) | (g2 << 4 ) | (b2 ); +#endif + + CONVERT_LOOP2_END_ROT_0(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_444 +#ifdef BUILD_CONVERT_16_RGB_ROT0 +void +convert_rgba_to_16bpp_rgb_444_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + r = (R_VAL(src_ptr)) >> 4; + g = (G_VAL(src_ptr)) >> 4; + b = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; + if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; + if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; + + *dst_ptr = (r << 8) | (g << 4) | (b); + + CONVERT_LOOP_END_ROT_0(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_444 +#ifdef BUILD_CONVERT_16_RGB_ROT270 +void +convert_rgba2_to_16bpp_rgb_444_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r1, g1, b1; + DATA8 r2, g2, b2; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP2_START_ROT_270(); + + r1 = (R_VAL(src_ptr)) >> 4; + g1 = (G_VAL(src_ptr)) >> 4; + b1 = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; + if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; + if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; + + CONVERT_LOOP2_INC_ROT_270(); + + r2 = (R_VAL(src_ptr)) >> 4; + g2 = (G_VAL(src_ptr)) >> 4; + b2 = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; + if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; + if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; + +#ifndef WORDS_BIGENDIAN + *((DATA32 *)dst_ptr) = + (r2 << 24) | (g2 << 20) | (b2 << 16) | + (r1 << 8 ) | (g1 << 4 ) | (b1 ); +#else + *((DATA32 *)dst_ptr) = + (r1 << 24) | (g1 << 20) | (b1 << 16) | + (r2 << 8 ) | (g2 << 4 ) | (b2 ); +#endif + + CONVERT_LOOP2_END_ROT_270(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_444 +#ifdef BUILD_CONVERT_16_RGB_ROT270 +void +convert_rgba_to_16bpp_rgb_444_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP_START_ROT_270(); + + r = (R_VAL(src_ptr)) >> 4; + g = (G_VAL(src_ptr)) >> 4; + b = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; + if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; + if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; + + *dst_ptr = (r << 8) | (g << 4) | (b); + + CONVERT_LOOP_END_ROT_270(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_444 +#ifdef BUILD_CONVERT_16_RGB_ROT90 +void +convert_rgba2_to_16bpp_rgb_444_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r1, g1, b1; + DATA8 r2, g2, b2; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP2_START_ROT_90(); + + r1 = (R_VAL(src_ptr)) >> 4; + g1 = (G_VAL(src_ptr)) >> 4; + b1 = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; + if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; + if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; + + CONVERT_LOOP2_INC_ROT_90(); + + r2 = (R_VAL(src_ptr)) >> 4; + g2 = (G_VAL(src_ptr)) >> 4; + b2 = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; + if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; + if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; + +#ifndef WORDS_BIGENDIAN + *((DATA32 *)dst_ptr) = + (r2 << 24) | (g2 << 20) | (b2 << 16) | + (r1 << 8 ) | (g1 << 4 ) | (b1 ); +#else + *((DATA32 *)dst_ptr) = + (r1 << 24) | (g1 << 20) | (b1 << 16) | + (r2 << 8 ) | (g2 << 4 ) | (b2 ); +#endif + + CONVERT_LOOP2_END_ROT_90(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_444 +#ifdef BUILD_CONVERT_16_RGB_ROT90 +void +convert_rgba_to_16bpp_rgb_444_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP_START_ROT_90(); + + r = (R_VAL(src_ptr)) >> 4; + g = (G_VAL(src_ptr)) >> 4; + b = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; + if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; + if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; + + *dst_ptr = (r << 8) | (g << 4) | (b); + + CONVERT_LOOP_END_ROT_90(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_454645 +#ifdef BUILD_CONVERT_16_RGB_ROT0 +void +convert_rgba2_to_16bpp_rgb_454645_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r1, g1, b1; + DATA8 r2, g2, b2; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP2_START_ROT_0(); + + r1 = (R_VAL(src_ptr)) >> 4; + g1 = (G_VAL(src_ptr)) >> 4; + b1 = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; + if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; + if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; + + CONVERT_LOOP2_INC_ROT_0(); + + r2 = (R_VAL(src_ptr)) >> 4; + g2 = (G_VAL(src_ptr)) >> 4; + b2 = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; + if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; + if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; + +#ifndef WORDS_BIGENDIAN + *((DATA32 *)dst_ptr) = + (r2 << 28) | (g2 << 23) | (b2 << 17) | + (r1 << 12) | (g1 << 7 ) | (b1 << 1 ); +#else + *((DATA32 *)dst_ptr) = + (r1 << 28) | (g1 << 23) | (b1 << 17) | + (r2 << 12) | (g2 << 7 ) | (b2 << 1 ); +#endif + + CONVERT_LOOP2_END_ROT_0(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_454645 +#ifdef BUILD_CONVERT_16_RGB_ROT0 +void +convert_rgba_to_16bpp_rgb_454645_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + r = (R_VAL(src_ptr)) >> 4; + g = (G_VAL(src_ptr)) >> 4; + b = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; + if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; + if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; + + *dst_ptr = (r << 12) | (g << 7) | (b << 1); + + CONVERT_LOOP_END_ROT_0(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_454645 +#ifdef BUILD_CONVERT_16_RGB_ROT270 +void +convert_rgba2_to_16bpp_rgb_454645_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r1, g1, b1; + DATA8 r2, g2, b2; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP2_START_ROT_270(); + + r1 = (R_VAL(src_ptr)) >> 4; + g1 = (G_VAL(src_ptr)) >> 4; + b1 = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; + if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; + if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; + + CONVERT_LOOP2_INC_ROT_270(); + + r2 = (R_VAL(src_ptr)) >> 4; + g2 = (G_VAL(src_ptr)) >> 4; + b2 = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; + if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; + if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; + +#ifndef WORDS_BIGENDIAN + *((DATA32 *)dst_ptr) = + (r2 << 28) | (g2 << 23) | (b2 << 17) | + (r1 << 12) | (g1 << 7 ) | (b1 << 1 ); +#else + *((DATA32 *)dst_ptr) = + (r1 << 28) | (g1 << 23) | (b1 << 17) | + (r2 << 12) | (g2 << 7 ) | (b2 << 1 ); +#endif + + CONVERT_LOOP2_END_ROT_270(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_454645 +#ifdef BUILD_CONVERT_16_RGB_ROT270 +void +convert_rgba_to_16bpp_rgb_454645_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP_START_ROT_270(); + + r = (R_VAL(src_ptr)) >> 4; + g = (G_VAL(src_ptr)) >> 4; + b = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; + if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; + if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; + + *dst_ptr = (r << 12) | (g << 7) | (b << 1); + + CONVERT_LOOP_END_ROT_270(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_454645 +#ifdef BUILD_CONVERT_16_RGB_ROT90 +void +convert_rgba2_to_16bpp_rgb_454645_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r1, g1, b1; + DATA8 r2, g2, b2; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP2_START_ROT_90(); + + r1 = (R_VAL(src_ptr)) >> 4; + g1 = (G_VAL(src_ptr)) >> 4; + b1 = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++; + if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++; + if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++; + + CONVERT_LOOP2_INC_ROT_90(); + + r2 = (R_VAL(src_ptr)) >> 4; + g2 = (G_VAL(src_ptr)) >> 4; + b2 = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++; + if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++; + if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++; + +#ifndef WORDS_BIGENDIAN + *((DATA32 *)dst_ptr) = + (r2 << 28) | (g2 << 23) | (b2 << 17) | + (r1 << 12) | (g1 << 7 ) | (b1 << 1 ); +#else + *((DATA32 *)dst_ptr) = + (r1 << 28) | (g1 << 23) | (b1 << 17) | + (r2 << 12) | (g2 << 7 ) | (b2 << 1 ); +#endif + + CONVERT_LOOP2_END_ROT_90(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_454645 +#ifdef BUILD_CONVERT_16_RGB_ROT90 +void +convert_rgba_to_16bpp_rgb_454645_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP_START_ROT_90(); + + r = (R_VAL(src_ptr)) >> 4; + g = (G_VAL(src_ptr)) >> 4; + b = (B_VAL(src_ptr)) >> 4; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4); + if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++; + if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++; + if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++; + + *dst_ptr = (r << 12) | (g << 7) | (b << 1); + + CONVERT_LOOP_END_ROT_90(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_555 +#ifdef BUILD_CONVERT_16_RGB_ROT0 +void +convert_rgba2_to_16bpp_rgb_555_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r1, g1, b1; + DATA8 r2, g2, b2; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP2_START_ROT_0(); + + r1 = (R_VAL(src_ptr)) >> 3; + g1 = (G_VAL(src_ptr)) >> 3; + b1 = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + if (((R_VAL(src_ptr) - (r1 << 3)) >= dith) && (r1 < 0x1f)) r1++; + if (((G_VAL(src_ptr) - (g1 << 3)) >= dith) && (g1 < 0x1f)) g1++; + if (((B_VAL(src_ptr) - (b1 << 3)) >= dith) && (b1 < 0x1f)) b1++; + + CONVERT_LOOP2_INC_ROT_0(); + + r2 = (R_VAL(src_ptr)) >> 3; + g2 = (G_VAL(src_ptr)) >> 3; + b2 = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + if (((R_VAL(src_ptr) - (r2 << 3)) >= dith) && (r2 < 0x1f)) r2++; + if (((G_VAL(src_ptr) - (g2 << 3)) >= dith) && (g2 < 0x1f)) g2++; + if (((B_VAL(src_ptr) - (b2 << 3)) >= dith) && (b2 < 0x1f)) b2++; + +#ifndef WORDS_BIGENDIAN + *((DATA32 *)dst_ptr) = + (r2 << 26) | (g2 << 21) | (b2 << 16) | + (r1 << 10) | (g1 << 5 ) | (b1 ); +#else + *((DATA32 *)dst_ptr) = + (r1 << 26) | (g1 << 21) | (b1 << 16) | + (r2 << 10) | (g2 << 5 ) | (b2 ); +#endif + + CONVERT_LOOP2_END_ROT_0(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_555 +#ifdef BUILD_CONVERT_16_RGB_ROT0 +void +convert_rgba_to_16bpp_rgb_555_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + r = (R_VAL(src_ptr)) >> 3; + g = (G_VAL(src_ptr)) >> 3; + b = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + if (((R_VAL(src_ptr) - (r << 3)) >= dith) && (r < 0x1f)) r++; + if (((G_VAL(src_ptr) - (g << 3)) >= dith) && (g < 0x1f)) g++; + if (((B_VAL(src_ptr) - (b << 3)) >= dith) && (b < 0x1f)) b++; + + *dst_ptr = (r << 10) | (g << 5) | (b); + + CONVERT_LOOP_END_ROT_0(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_555 +#ifdef BUILD_CONVERT_16_RGB_ROT270 +void +convert_rgba2_to_16bpp_rgb_555_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r1, g1, b1; + DATA8 r2, g2, b2; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP2_START_ROT_270(); + + r1 = (R_VAL(src_ptr)) >> 3; + g1 = (G_VAL(src_ptr)) >> 3; + b1 = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + if (((R_VAL(src_ptr) - (r1 << 3)) >= dith) && (r1 < 0x1f)) r1++; + if (((G_VAL(src_ptr) - (g1 << 3)) >= dith) && (g1 < 0x1f)) g1++; + if (((B_VAL(src_ptr) - (b1 << 3)) >= dith) && (b1 < 0x1f)) b1++; + + CONVERT_LOOP2_INC_ROT_270(); + + r2 = (R_VAL(src_ptr)) >> 3; + g2 = (G_VAL(src_ptr)) >> 3; + b2 = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + if (((R_VAL(src_ptr) - (r2 << 3)) >= dith) && (r2 < 0x1f)) r2++; + if (((G_VAL(src_ptr) - (g2 << 3)) >= dith) && (g2 < 0x1f)) g2++; + if (((B_VAL(src_ptr) - (b2 << 3)) >= dith) && (b2 < 0x1f)) b2++; + +#ifndef WORDS_BIGENDIAN + *((DATA32 *)dst_ptr) = + (r2 << 26) | (g2 << 21) | (b2 << 16) | + (r1 << 10) | (g1 << 5 ) | (b1 ); +#else + *((DATA32 *)dst_ptr) = + (r1 << 26) | (g1 << 21) | (b1 << 16) | + (r2 << 10) | (g2 << 5 ) | (b2 ); +#endif + + CONVERT_LOOP2_END_ROT_270(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_555 +#ifdef BUILD_CONVERT_16_RGB_ROT270 +void +convert_rgba_to_16bpp_rgb_555_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP_START_ROT_270(); + + r = (R_VAL(src_ptr)) >> 3; + g = (G_VAL(src_ptr)) >> 3; + b = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + if (((R_VAL(src_ptr) - (r << 3)) >= dith) && (r < 0x1f)) r++; + if (((G_VAL(src_ptr) - (g << 3)) >= dith) && (g < 0x1f)) g++; + if (((B_VAL(src_ptr) - (b << 3)) >= dith) && (b < 0x1f)) b++; + + *dst_ptr = (r << 10) | (g << 5) | (b); + + CONVERT_LOOP_END_ROT_270(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_555 +#ifdef BUILD_CONVERT_16_RGB_ROT90 +void +convert_rgba2_to_16bpp_rgb_555_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r1, g1, b1; + DATA8 r2, g2, b2; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP2_START_ROT_90(); + + r1 = (R_VAL(src_ptr)) >> 3; + g1 = (G_VAL(src_ptr)) >> 3; + b1 = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + if (((R_VAL(src_ptr) - (r1 << 3)) >= dith) && (r1 < 0x1f)) r1++; + if (((G_VAL(src_ptr) - (g1 << 3)) >= dith) && (g1 < 0x1f)) g1++; + if (((B_VAL(src_ptr) - (b1 << 3)) >= dith) && (b1 < 0x1f)) b1++; + + CONVERT_LOOP2_INC_ROT_90(); + + r2 = (R_VAL(src_ptr)) >> 3; + g2 = (G_VAL(src_ptr)) >> 3; + b2 = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + if (((R_VAL(src_ptr) - (r2 << 3)) >= dith) && (r2 < 0x1f)) r2++; + if (((G_VAL(src_ptr) - (g2 << 3)) >= dith) && (g2 < 0x1f)) g2++; + if (((B_VAL(src_ptr) - (b2 << 3)) >= dith) && (b2 < 0x1f)) b2++; + +#ifndef WORDS_BIGENDIAN + *((DATA32 *)dst_ptr) = + (r2 << 26) | (g2 << 21) | (b2 << 16) | + (r1 << 10) | (g1 << 5 ) | (b1 ); +#else + *((DATA32 *)dst_ptr) = + (r1 << 26) | (g1 << 21) | (b1 << 16) | + (r2 << 10) | (g2 << 5 ) | (b2 ); +#endif + + CONVERT_LOOP2_END_ROT_90(); + return; + pal = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_16_RGB_555 +#ifdef BUILD_CONVERT_16_RGB_ROT90 +void +convert_rgba_to_16bpp_rgb_555_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA16 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith; + + dst_ptr = (DATA16 *)dst; + + CONVERT_LOOP_START_ROT_90(); + + r = (R_VAL(src_ptr)) >> 3; + g = (G_VAL(src_ptr)) >> 3; + b = (B_VAL(src_ptr)) >> 3; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5); + if (((R_VAL(src_ptr) - (r << 3)) >= dith) && (r < 0x1f)) r++; + if (((G_VAL(src_ptr) - (g << 3)) >= dith) && (g < 0x1f)) g++; + if (((B_VAL(src_ptr) - (b << 3)) >= dith) && (b < 0x1f)) b++; + + *dst_ptr = (r << 10) | (g << 5) | (b); + + CONVERT_LOOP_END_ROT_90(); + return; + pal = 0; +} +#endif +#endif diff --git a/legacy/evas/src/lib/engines/common/evas_convert_rgb_24.c b/legacy/evas/src/lib/engines/common/evas_convert_rgb_24.c new file mode 100644 index 0000000000..dcadb3edf7 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_convert_rgb_24.c @@ -0,0 +1,8 @@ +#include "evas_common.h" + +#ifdef BUILD_CONVERT_24_RGB_888 +void convert_rgba_to_24bpp_rgb_888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} +#endif +#ifdef BUILD_CONVERT_24_BGR_888 +void convert_rgba_to_24bpp_bgr_888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal){} +#endif diff --git a/legacy/evas/src/lib/engines/common/evas_convert_rgb_32.c b/legacy/evas/src/lib/engines/common/evas_convert_rgb_32.c new file mode 100644 index 0000000000..3e122beed1 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_convert_rgb_32.c @@ -0,0 +1,294 @@ +#include "evas_common.h" + +#ifdef BUILD_CONVERT_32_RGB_8888 +#ifdef BUILD_CONVERT_32_RGB_ROT0 +void +convert_rgba_to_32bpp_rgb_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA32 *dst_ptr; + int y; + Gfx_Func_Blend_Src_Dst func; + + dst_ptr = (DATA32 *)dst; + src_ptr = src; + + func = draw_func_copy_get(w, 0); + + for (y = 0; y < h; y++) + { + func(src_ptr, dst_ptr, w); + src_ptr += w + src_jump; + dst_ptr += w + dst_jump; + } + return; + pal = 0; + dith_x = 0; + dith_y = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_32_RGB_8888 +#ifdef BUILD_CONVERT_32_RGB_ROT270 +void +convert_rgba_to_32bpp_rgb_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA32 *dst_ptr; + int x, y; + + dst_ptr = (DATA32 *)dst; + + CONVERT_LOOP_START_ROT_270(); + + *dst_ptr = *src_ptr; + + CONVERT_LOOP_END_ROT_270(); + return; + pal = 0; + dith_x = 0; + dith_y = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_32_RGB_8888 +#ifdef BUILD_CONVERT_32_RGB_ROT90 +void +convert_rgba_to_32bpp_rgb_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA32 *dst_ptr; + int x, y; + + dst_ptr = (DATA32 *)dst; + + CONVERT_LOOP_START_ROT_90(); + + *dst_ptr = *src_ptr; + + CONVERT_LOOP_END_ROT_90(); + return; + pal = 0; + dith_x = 0; + dith_y = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_32_RGBX_8888 +#ifdef BUILD_CONVERT_32_RGB_ROT0 +void +convert_rgba_to_32bpp_rgbx_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA32 *dst_ptr; + int x, y; + + dst_ptr = (DATA32 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + *dst_ptr = (R_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (B_VAL(src_ptr) << 8); + + CONVERT_LOOP_END_ROT_0(); + return; + pal = 0; + dith_x = 0; + dith_y = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_32_RGBX_8888 +#ifdef BUILD_CONVERT_32_RGB_ROT270 +void +convert_rgba_to_32bpp_rgbx_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA32 *dst_ptr; + int x, y; + + dst_ptr = (DATA32 *)dst; + + CONVERT_LOOP_START_ROT_270(); + + *dst_ptr = (R_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (B_VAL(src_ptr) << 8); + + CONVERT_LOOP_END_ROT_270(); + return; + pal = 0; + dith_x = 0; + dith_y = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_32_RGBX_8888 +#ifdef BUILD_CONVERT_32_RGB_ROT90 +void +convert_rgba_to_32bpp_rgbx_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA32 *dst_ptr; + int x, y; + + dst_ptr = (DATA32 *)dst; + + CONVERT_LOOP_START_ROT_90(); + + *dst_ptr = (R_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (B_VAL(src_ptr) << 8); + + CONVERT_LOOP_END_ROT_90(); + return; + pal = 0; + dith_x = 0; + dith_y = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_32_BGR_8888 +#ifdef BUILD_CONVERT_32_RGB_ROT0 +void +convert_rgba_to_32bpp_bgr_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA32 *dst_ptr; + int x, y; + + dst_ptr = (DATA32 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + *dst_ptr = (B_VAL(src_ptr) << 16) | (G_VAL(src_ptr) << 8) | (R_VAL(src_ptr)); + + CONVERT_LOOP_END_ROT_0(); + return; + pal = 0; + dith_x = 0; + dith_y = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_32_BGR_8888 +#ifdef BUILD_CONVERT_32_RGB_ROT270 +void +convert_rgba_to_32bpp_bgr_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA32 *dst_ptr; + int x, y; + + dst_ptr = (DATA32 *)dst; + + CONVERT_LOOP_START_ROT_270(); + + *dst_ptr = (B_VAL(src_ptr) << 16) | (G_VAL(src_ptr) << 8) | (R_VAL(src_ptr)); + + CONVERT_LOOP_END_ROT_270(); + return; + pal = 0; + dith_x = 0; + dith_y = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_32_BGR_8888 +#ifdef BUILD_CONVERT_32_RGB_ROT90 +void +convert_rgba_to_32bpp_bgr_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA32 *dst_ptr; + int x, y; + + dst_ptr = (DATA32 *)dst; + + CONVERT_LOOP_START_ROT_90(); + + *dst_ptr = (B_VAL(src_ptr) << 16) | (G_VAL(src_ptr) << 8) | (R_VAL(src_ptr)); + + CONVERT_LOOP_END_ROT_90(); + return; + pal = 0; + dith_x = 0; + dith_y = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_32_BGRX_8888 +#ifdef BUILD_CONVERT_32_RGB_ROT0 +void +convert_rgba_to_32bpp_bgrx_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA32 *dst_ptr; + int x, y; + + dst_ptr = (DATA32 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + *dst_ptr = (B_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (R_VAL(src_ptr) << 8); + + CONVERT_LOOP_END_ROT_0(); + return; + pal = 0; + dith_x = 0; + dith_y = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_32_BGRX_8888 +#ifdef BUILD_CONVERT_32_RGB_ROT270 +void +convert_rgba_to_32bpp_bgrx_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA32 *dst_ptr; + int x, y; + + dst_ptr = (DATA32 *)dst; + + CONVERT_LOOP_START_ROT_270(); + + *dst_ptr = (B_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (R_VAL(src_ptr) << 8); + + CONVERT_LOOP_END_ROT_270(); + return; + pal = 0; + dith_x = 0; + dith_y = 0; +} +#endif +#endif + +#ifdef BUILD_CONVERT_32_BGRX_8888 +#ifdef BUILD_CONVERT_32_RGB_ROT90 +void +convert_rgba_to_32bpp_bgrx_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA32 *dst_ptr; + int x, y; + + dst_ptr = (DATA32 *)dst; + + CONVERT_LOOP_START_ROT_90(); + + *dst_ptr = (B_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | (R_VAL(src_ptr) << 8); + + CONVERT_LOOP_END_ROT_90(); + return; + pal = 0; + dith_x = 0; + dith_y = 0; +} +#endif +#endif diff --git a/legacy/evas/src/lib/engines/common/evas_convert_rgb_8.c b/legacy/evas/src/lib/engines/common/evas_convert_rgb_8.c new file mode 100644 index 0000000000..2dd8064184 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_convert_rgb_8.c @@ -0,0 +1,209 @@ +#include "evas_common.h" + +#ifdef USE_DITHER_44 +extern const DATA8 _dither_44[4][4]; +#endif +#ifdef USE_DITHER_128128 +extern const DATA8 _dither_128128[128][128]; +#endif + +#ifdef BUILD_CONVERT_8_RGB_332 +void convert_rgba_to_8bpp_rgb_332_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA8 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith, dith2; + + dst_ptr = (DATA8 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + r = (R_VAL(src_ptr)) >> (8 - 3); + g = (G_VAL(src_ptr)) >> (8 - 3); + b = (B_VAL(src_ptr)) >> (8 - 2); + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(3); + dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(2); + if (((R_VAL(src_ptr) - (r << (8 - 3))) >= dith ) && (r < 0x07)) r++; + if (((G_VAL(src_ptr) - (g << (8 - 3))) >= dith ) && (g < 0x07)) g++; + if (((B_VAL(src_ptr) - (b << (8 - 2))) >= dith2) && (b < 0x03)) b++; + + *dst_ptr = pal[(r << 5) | (g << 2) | (b)]; + + CONVERT_LOOP_END_ROT_0(); +} +#endif +#ifdef BUILD_CONVERT_8_RGB_666 +static DATA8 p_to_6[256]; +static DATA8 p_to_6_err[256]; + +void convert_rgba_to_8bpp_rgb_666_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA8 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith; + static int tables_calcualted = 0; + + if (!tables_calcualted) + { + int i; + + tables_calcualted = 1; + for (i = 0; i < 256; i++) + p_to_6[i] = (i * 6) / 256; + for (i = 0; i < 256; i++) + p_to_6_err[i] = ((i * 6) - (p_to_6[i] * 256)) * DM_DIV / 256; + } + dst_ptr = (DATA8 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + r = p_to_6[(R_VAL(src_ptr))]; + g = p_to_6[(G_VAL(src_ptr))]; + b = p_to_6[(B_VAL(src_ptr))]; + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK]; + if ((p_to_6_err[(R_VAL(src_ptr))] >= dith ) && (r < 5)) r++; + if ((p_to_6_err[(G_VAL(src_ptr))] >= dith ) && (g < 5)) g++; + if ((p_to_6_err[(B_VAL(src_ptr))] >= dith ) && (b < 5)) b++; + + *dst_ptr = pal[(r * 36) + (g * 6) + (b)]; + + CONVERT_LOOP_END_ROT_0(); +} +#endif +#ifdef BUILD_CONVERT_8_RGB_232 +void convert_rgba_to_8bpp_rgb_232_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA8 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith, dith2; + + dst_ptr = (DATA8 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + r = (R_VAL(src_ptr)) >> (8 - 2); + g = (G_VAL(src_ptr)) >> (8 - 3); + b = (B_VAL(src_ptr)) >> (8 - 2); + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(3); + dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(2); + if (((R_VAL(src_ptr) - (r << (8 - 2))) >= dith2) && (r < 0x03)) r++; + if (((G_VAL(src_ptr) - (g << (8 - 3))) >= dith ) && (g < 0x07)) g++; + if (((B_VAL(src_ptr) - (b << (8 - 2))) >= dith2) && (b < 0x03)) b++; + + *dst_ptr = pal[(r << 5) | (g << 2) | (b)]; + + CONVERT_LOOP_END_ROT_0(); +} +#endif +#ifdef BUILD_CONVERT_8_RGB_222 +void convert_rgba_to_8bpp_rgb_222_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA8 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith; + + dst_ptr = (DATA8 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + r = (R_VAL(src_ptr)) >> (8 - 2); + g = (G_VAL(src_ptr)) >> (8 - 2); + b = (B_VAL(src_ptr)) >> (8 - 2); + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(2); + if (((R_VAL(src_ptr) - (r << (8 - 2))) >= dith ) && (r < 0x03)) r++; + if (((G_VAL(src_ptr) - (g << (8 - 2))) >= dith ) && (g < 0x03)) g++; + if (((B_VAL(src_ptr) - (b << (8 - 2))) >= dith ) && (b < 0x03)) b++; + + *dst_ptr = pal[(r << 4) | (g << 2) | (b)]; + + CONVERT_LOOP_END_ROT_0(); +} +#endif +#ifdef BUILD_CONVERT_8_RGB_221 +void convert_rgba_to_8bpp_rgb_221_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA8 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith, dith2; + + dst_ptr = (DATA8 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + r = (R_VAL(src_ptr)) >> (8 - 2); + g = (G_VAL(src_ptr)) >> (8 - 2); + b = (B_VAL(src_ptr)) >> (8 - 1); + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(2); + dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(1); + if (((R_VAL(src_ptr) - (r << (8 - 2))) >= dith ) && (r < 0x03)) r++; + if (((G_VAL(src_ptr) - (g << (8 - 2))) >= dith ) && (g < 0x03)) g++; + if (((B_VAL(src_ptr) - (b << (8 - 1))) >= dith2) && (b < 0x01)) b++; + + *dst_ptr = pal[(r << 3) | (g << 1) | (b)]; + + CONVERT_LOOP_END_ROT_0(); +} +#endif +#ifdef BUILD_CONVERT_8_RGB_121 +void convert_rgba_to_8bpp_rgb_121_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA8 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith, dith2; + + dst_ptr = (DATA8 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + r = (R_VAL(src_ptr)) >> (8 - 1); + g = (G_VAL(src_ptr)) >> (8 - 2); + b = (B_VAL(src_ptr)) >> (8 - 1); + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(2); + dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(1); + if (((R_VAL(src_ptr) - (r << (8 - 1))) >= dith2) && (r < 0x01)) r++; + if (((G_VAL(src_ptr) - (g << (8 - 2))) >= dith ) && (g < 0x03)) g++; + if (((B_VAL(src_ptr) - (b << (8 - 1))) >= dith2) && (b < 0x01)) b++; + + *dst_ptr = pal[(r << 3) | (g << 1) | (b)]; + + CONVERT_LOOP_END_ROT_0(); +} +#endif +#ifdef BUILD_CONVERT_8_RGB_111 +void convert_rgba_to_8bpp_rgb_111_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal) +{ + DATA32 *src_ptr; + DATA8 *dst_ptr; + int x, y; + DATA8 r, g, b; + DATA8 dith; + + dst_ptr = (DATA8 *)dst; + + CONVERT_LOOP_START_ROT_0(); + + r = (R_VAL(src_ptr)) >> (8 - 1); + g = (G_VAL(src_ptr)) >> (8 - 1); + b = (B_VAL(src_ptr)) >> (8 - 1); + dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(1); + if (((R_VAL(src_ptr) - (r << (8 - 1))) >= dith ) && (r < 0x01)) r++; + if (((G_VAL(src_ptr) - (g << (8 - 1))) >= dith ) && (g < 0x01)) g++; + if (((B_VAL(src_ptr) - (b << (8 - 1))) >= dith ) && (b < 0x01)) b++; + + *dst_ptr = pal[(r << 2) | (g << 1) | (b)]; + + CONVERT_LOOP_END_ROT_0(); +} +#endif diff --git a/legacy/evas/src/lib/engines/common/evas_cpu.c b/legacy/evas/src/lib/engines/common/evas_cpu.c new file mode 100644 index 0000000000..67da73fc45 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_cpu.c @@ -0,0 +1,97 @@ +#include "evas_common.h" + +#ifdef BUILD_MMX +#include "evas_mmx.h" +#endif + +void +cpu_init(void) +{ +} + +int +cpu_have_cpuid(void) +{ +#ifdef BUILD_MMX + unsigned int have_cpu_id; + + have_cpu_id = 0; + have_cpuid(have_cpu_id); + return have_cpu_id; +#else + return 0; +#endif +} + +void +cpu_can_do(int *mmx, int *sse, int *sse2) +{ +#ifdef BUILD_MMX +#ifndef HARD_CODED_P3 +#ifndef HARD_CODED_P2 + static int do_mmx = 0, do_sse = 0, do_sse2 = 0, done = 0; + unsigned int have_cpu_id; +#endif +#endif +#endif + +#ifndef BUILD_MMX + *mmx = 0; + *sse = 0; + *sse2 = 0; + return; +#else +# ifdef HARD_CODED_P3 + *mmx = 1; + *sse = 1; + *sse2 = 0; + return; +# else +# ifdef HARD_CODED_P2 + *mmx = 1; + *sse = 0; + *sse2 = 0; + return; +# else + if (done) + { + *mmx = do_mmx; + *sse = do_sse; + *sse2 = do_sse2; + return; + } + +# ifdef BUILD_MMX + have_cpu_id = cpu_have_cpuid(); + if (have_cpu_id) + { + unsigned int cpu_id; + + cpu_id = 0; + get_cpuid(cpu_id); + if (cpu_id & CPUID_MMX) do_mmx = 1; + if (cpu_id & CPUID_SSE) do_sse = 1; + if (cpu_id & CPUID_SSE2) do_sse2 = 1; + } +# endif + *mmx = do_mmx; + *sse = do_sse; + *sse2 = do_sse2; + done = 1; +# endif +# endif +#endif +} + +#ifdef BUILD_MMX +void +cpu_end_opt(void) +{ + emms(); +} +#else +void +cpu_end_opt(void) +{ +} +#endif diff --git a/legacy/evas/src/lib/engines/common/evas_draw_main.c b/legacy/evas/src/lib/engines/common/evas_draw_main.c new file mode 100644 index 0000000000..1d90483fdf --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_draw_main.c @@ -0,0 +1,782 @@ +#include "evas_common.h" + +void +draw_init(void) +{ +} + +RGBA_Draw_Context * +draw_context_new(void) +{ + RGBA_Draw_Context *dc; + + dc = calloc(1, sizeof(RGBA_Draw_Context)); + return dc; +} + +void +draw_context_free(RGBA_Draw_Context *dc) +{ + free(dc); +} + +void +draw_context_clip_clip(RGBA_Draw_Context *dc, int x, int y, int w, int h) +{ + if (dc->clip.use) + { + RECTS_CLIP_TO_RECT(dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h, + x, y, w, h); + } + else + draw_context_set_clip(dc, x, y, w, h); +} + +void +draw_context_set_clip(RGBA_Draw_Context *dc, int x, int y, int w, int h) +{ + dc->clip.use = 1; + dc->clip.x = x; + dc->clip.y = y; + dc->clip.w = w; + dc->clip.h = h; +} + +void +draw_context_unset_clip(RGBA_Draw_Context *dc) +{ + dc->clip.use = 0; +} + +void +draw_context_set_color(RGBA_Draw_Context *dc, int r, int g, int b, int a) +{ + R_VAL(&(dc->col.col)) = (DATA8)r; + G_VAL(&(dc->col.col)) = (DATA8)g; + B_VAL(&(dc->col.col)) = (DATA8)b; + A_VAL(&(dc->col.col)) = (DATA8)a; +} + +void +draw_context_set_multiplier(RGBA_Draw_Context *dc, int r, int g, int b, int a) +{ + dc->mul.use = 1; + dc->mod.use = 0; + R_VAL(&(dc->mul.col)) = (DATA8)r; + G_VAL(&(dc->mul.col)) = (DATA8)g; + B_VAL(&(dc->mul.col)) = (DATA8)b; + A_VAL(&(dc->mul.col)) = (DATA8)a; +} + +void +draw_context_unset_multiplier(RGBA_Draw_Context *dc) +{ + dc->mul.use = 0; +} + +void +draw_context_set_modifiers(RGBA_Draw_Context *dc, DATA8 *rmod, DATA8 *gmod, DATA8 *bmod, DATA8 *amod) +{ + int i; + + dc->mod.use = 1; + dc->mul.use = 0; + if (rmod) memcpy(dc->mod.r, rmod, sizeof(DATA8) * 256); + else + { + for (i = 0; i < 256; i++) dc->mod.r[i] = (DATA8)i; + } + if (gmod) memcpy(dc->mod.g, gmod, sizeof(DATA8) * 256); + else + { + for (i = 0; i < 256; i++) dc->mod.g[i] = (DATA8)i; + } + if (bmod) memcpy(dc->mod.b, bmod, sizeof(DATA8) * 256); + else + { + for (i = 0; i < 256; i++) dc->mod.b[i] = (DATA8)i; + } + if (amod) memcpy(dc->mod.a, amod, sizeof(DATA8) * 256); + else + { + for (i = 0; i < 256; i++) dc->mod.a[i] = (DATA8)i; + } +} + +void +draw_context_ununset_modifiers(RGBA_Draw_Context *dc) +{ + dc->mod.use = 0; +} + +void +draw_context_add_cutout(RGBA_Draw_Context *dc, int x, int y, int w, int h) +{ + Cutout_Rect *r; + + r = calloc(1, sizeof(Cutout_Rect)); + r->x = x; + r->y = y; + r->w = w; + r->h = h; + dc->cutout.rects = evas_object_list_append(dc->cutout.rects, r); +} + +void +draw_context_clear_cutouts(RGBA_Draw_Context *dc) +{ + draw_context_apply_free_cutouts(dc->cutout.rects); + dc->cutout.rects = NULL; +} + +Cutout_Rect * +draw_context_apply_cutouts(RGBA_Draw_Context *dc) +{ + Cutout_Rect *r, *rects; + Evas_Object_List *l; + + if (!dc->clip.use) return NULL; + if ((dc->clip.w <= 0) || (dc->clip.h <= 0)) return NULL; + r = calloc(1, sizeof(Cutout_Rect)); + r->x = dc->clip.x; + r->y = dc->clip.y; + r->w = dc->clip.w; + r->h = dc->clip.h; + rects = r; + for (l = (Evas_Object_List *)dc->cutout.rects; l; l = l->next) + { + r = (Cutout_Rect *)l; + rects = draw_context_cutouts_split(rects, r); + } + return rects; +} + +void +draw_context_apply_free_cutouts(Cutout_Rect *rects) +{ + while (rects) + { + Cutout_Rect *r; + + r = rects; + rects = evas_object_list_remove(rects, rects); + free(r); + } +} + +Cutout_Rect * +draw_context_cutouts_split(Cutout_Rect *in, Cutout_Rect *split) +{ + /* multiple rect in, multiple out */ + Cutout_Rect *out; + Evas_Object_List *l; + + out = NULL; + for (l = (Evas_Object_List *)in; l; l = l->next) + { + Cutout_Rect *r; + + r = (Cutout_Rect *)l; + r = draw_context_cutout_split(r, split); + while (r) + { + Cutout_Rect *r2; + + r2 = r; + r = evas_object_list_remove(r, r); + out = evas_object_list_append(out, r2); + } + } + draw_context_apply_free_cutouts(in); + return out; +} + +Cutout_Rect * +draw_context_cutout_split(Cutout_Rect *in, Cutout_Rect *split) +{ + /* 1 input rect, multiple out */ + Cutout_Rect *out; + Cutout_Rect *r; + + /* this is to save me a LOT of typing */ +#define INX1 (in->x) +#define INX2 (in->x + in->w) +#define SPX1 (split->x) +#define SPX2 (split->x + split->w) +#define INY1 (in->y) +#define INY2 (in->y + in->h) +#define SPY1 (split->y) +#define SPY2 (split->y + split->h) +#define X1_IN (in->x < split->x) +#define X2_IN ((in->x + in->w) > (split->x + split->w)) +#define Y1_IN (in->y < split->y) +#define Y2_IN ((in->y + in->h) > (split->y + split->h)) +#define R_NEW(_r, _x, _y, _w, _h) {(_r) = calloc(1, sizeof(Cutout_Rect)); (_r)->x = (_x); (_r)->y = (_y); (_r)->w = (_w); (_r)->h = (_h);} + out = NULL; + if (!RECTS_INTERSECT(in->x, in->y, in->w, in->h, + split->x, split->y, split->w, split->h)) + { + R_NEW(r, in->x, in->y, in->w, in->h); + out = evas_object_list_append(out, r); + return out; + } + + /* S = split (ie cut out rect) */ + /* +--+ = in (rect to be cut) */ + + /* + * +---+ + * | | + * | S | + * | | + * +---+ + * + */ + if (X1_IN && X2_IN && Y1_IN && Y2_IN) + { + R_NEW(r, in->x, in->y, in->w, SPY1 - in->y); + out = evas_object_list_append(out, r); + R_NEW(r, in->x, SPY1, SPX1 - in->x, SPY2 - SPY1); + out = evas_object_list_append(out, r); + R_NEW(r, SPX2, SPY1, INX2 - SPX2, SPY2 - SPY1); + out = evas_object_list_append(out, r); + R_NEW(r, in->x, SPY2, in->w, INY2 - SPY2); + out = evas_object_list_append(out, r); + return out; + } + /* SSSSSSS + * S+---+S + * S|SSS|S + * S|SSS|S + * S|SSS|S + * S+---+S + * SSSSSSS + */ + if (!X1_IN && !X2_IN && !Y1_IN && !Y2_IN) + { + return NULL; + } + /* SSS + * S+---+ + * S|S | + * S|S | + * S|S | + * S+---+ + * SSS + */ + if (!X1_IN && X2_IN && !Y1_IN && !Y2_IN) + { + R_NEW(r, SPX2, in->y, INX2 - SPX2, in->h); + out = evas_object_list_append(out, r); + return out; + } + /* S + * +---+ + * | S | + * | S | + * | S | + * +---+ + * S + */ + if (X1_IN && X2_IN && !Y1_IN && !Y2_IN) + { + R_NEW(r, in->x, in->y, SPX1 - in->x, in->h); + out = evas_object_list_append(out, r); + R_NEW(r, SPX2, in->y, INX2 - SPX2, in->h); + out = evas_object_list_append(out, r); + return out; + } + /* SSS + * +---+S + * | S|S + * | S|S + * | S|S + * +---+S + * SSS + */ + if (X1_IN && !X2_IN && !Y1_IN && !Y2_IN) + { + R_NEW(r, in->x, in->y, SPX1 - in->x, in->h); + out = evas_object_list_append(out, r); + return out; + } + /* SSSSSSS + * S+---+S + * S|SSS|S + * | | + * | | + * +---+ + * + */ + if (!X1_IN && !X2_IN && !Y1_IN && Y2_IN) + { + R_NEW(r, in->x, SPY2, in->w, INY2 - SPY2); + out = evas_object_list_append(out, r); + return out; + } + /* + * +---+ + * | | + * S|SSS|S + * | | + * +---+ + * + */ + if (!X1_IN && !X2_IN && Y1_IN && Y2_IN) + { + R_NEW(r, in->x, in->y, in->w, SPY1 - in->y); + out = evas_object_list_append(out, r); + R_NEW(r, in->x, SPY2, in->w, INY2 - SPY2); + out = evas_object_list_append(out, r); + return out; + } + /* + * +---+ + * | | + * | | + * S|SSS|S + * S+---+S + * SSSSSSS + */ + if (!X1_IN && !X2_IN && Y1_IN && !Y2_IN) + { + R_NEW(r, in->x, in->y, in->w, SPY1 - in->y); + out = evas_object_list_append(out, r); + return out; + } + /* SSS + * S+---+ + * S|S | + * | | + * | | + * +---+ + * + */ + if (!X1_IN && X2_IN && !Y1_IN && Y2_IN) + { + R_NEW(r, SPX2, in->y, INX2 - SPX2, SPY2 - in->y); + out = evas_object_list_append(out, r); + R_NEW(r, in->x, SPY2, in->w, INY2 - SPY2); + out = evas_object_list_append(out, r); + return out; + } + /* S + * +---+ + * | S | + * | | + * | | + * +---+ + * + */ + if (X1_IN && X2_IN && !Y1_IN && Y2_IN) + { + R_NEW(r, in->x, in->y, SPX1 - in->x, SPY2 - in->y); + out = evas_object_list_append(out, r); + R_NEW(r, SPX2, in->y, INX2 - SPX2, SPY2 - in->y); + out = evas_object_list_append(out, r); + R_NEW(r, in->x, SPY2, in->w, INY2 - SPY2); + out = evas_object_list_append(out, r); + return out; + } + /* SSS + * +---+S + * | S|S + * | | + * | | + * +---+ + * + */ + if (X1_IN && !X2_IN && !Y1_IN && Y2_IN) + { + R_NEW(r, in->x, in->y, SPX1 - in->x, SPY2 - in->y); + out = evas_object_list_append(out, r); + R_NEW(r, in->x, SPY2, in->w, INY2 - SPY2); + out = evas_object_list_append(out, r); + return out; + } + /* + * +---+ + * | | + * S|S | + * | | + * +---+ + * + */ + if (!X1_IN && X2_IN && Y1_IN && Y2_IN) + { + R_NEW(r, in->x, in->y, in->w, SPY1 - in->y); + out = evas_object_list_append(out, r); + R_NEW(r, SPX2, SPY1, INX2 - SPX2, SPY2 - SPY1); + out = evas_object_list_append(out, r); + R_NEW(r, in->x, SPY2, in->w, INY2 - SPY2); + out = evas_object_list_append(out, r); + return out; + } + /* + * +---+ + * | | + * | S|S + * | | + * +---+ + * + */ + if (X1_IN && !X2_IN && Y1_IN && Y2_IN) + { + R_NEW(r, in->x, in->y, in->w, SPY1 - in->y); + out = evas_object_list_append(out, r); + R_NEW(r, in->x, SPY1, SPX1 - in->x, SPY2 - SPY1); + out = evas_object_list_append(out, r); + R_NEW(r, in->x, SPY2, in->w, INY2 - SPY2); + out = evas_object_list_append(out, r); + return out; + } + /* + * +---+ + * | | + * | | + * S|S | + * S+---+ + * SSS + */ + if (!X1_IN && X2_IN && Y1_IN && !Y2_IN) + { + R_NEW(r, in->x, in->y, in->w, SPY1 - in->y); + out = evas_object_list_append(out, r); + R_NEW(r, SPX2, SPY1, INX2 - SPX2, INY2 - SPY1); + out = evas_object_list_append(out, r); + return out; + } + /* + * +---+ + * | | + * | | + * | S | + * +---+ + * S + */ + if (X1_IN && X2_IN && Y1_IN && !Y2_IN) + { + R_NEW(r, in->x, in->y, in->w, SPY1 - in->y); + out = evas_object_list_append(out, r); + R_NEW(r, in->x, SPY1, SPX1 - in->x, INY2 - SPY1); + out = evas_object_list_append(out, r); + R_NEW(r, SPX2, SPY1, INX2 - SPX2, INY2 - SPY1); + out = evas_object_list_append(out, r); + return out; + } + /* + * +---+ + * | | + * | | + * | S|S + * +---+S + * SSS + */ + if (X1_IN && !X2_IN && Y1_IN && !Y2_IN) + { + R_NEW(r, in->x, in->y, in->w, SPY1 - in->y); + out = evas_object_list_append(out, r); + R_NEW(r, in->x, SPY1, SPX1 - in->x, INY2 - SPY1); + out = evas_object_list_append(out, r); + return out; + } + return NULL; +} + +Gfx_Func_Blend_Src_Dst +draw_func_blend_get(RGBA_Image *src, RGBA_Image *dst, int pixels) +{ +#ifdef BUILD_MMX + int mmx, sse, sse2; + + cpu_can_do(&mmx, &sse, &sse2); +#endif + if (src->flags & RGBA_IMAGE_HAS_ALPHA) + { + if (dst->flags & RGBA_IMAGE_HAS_ALPHA) + { + return blend_pixels_rgba_to_rgba_c; + } + else + { +#ifdef BUILD_MMX +# ifdef BUILD_C + if (mmx) +# endif + return blend_pixels_rgba_to_rgb_mmx; +# ifdef BUILD_C + else +# endif +#endif +#ifdef BUILD_C + return blend_pixels_rgba_to_rgb_c; +#endif + } + } + else + { + if (dst->flags & RGBA_IMAGE_HAS_ALPHA) + { + return copy_pixels_rgb_to_rgba_c; + } + else + { +#ifdef BUILD_SSE + if ((sse) && (pixels > 256 * 256)) + return copy_pixels_rgba_to_rgba_sse; +# ifdef BUILD_MMX + else +# endif +#endif +#ifdef BUILD_MMX +# ifdef BUILD_C + if (mmx) +# endif + return copy_pixels_rgba_to_rgba_mmx; +# ifdef BUILD_C + else +# endif +#endif +#ifdef BUILD_C + return copy_pixels_rgba_to_rgba_c; +#endif + } + } + return blend_pixels_rgba_to_rgba_c; + pixels = 0; +} + +Gfx_Func_Blend_Color_Dst +draw_func_blend_color_get(DATA32 src, RGBA_Image *dst, int pixels) +{ +#ifdef BUILD_MMX + int mmx, sse, sse2; + + cpu_can_do(&mmx, &sse, &sse2); +#endif + if (A_VAL(&src) != 0xff) + { + if (dst->flags & RGBA_IMAGE_HAS_ALPHA) + { + return blend_color_rgba_to_rgba_c; + } + else + { +#ifdef BUILD_MMX + if (mmx) + return blend_color_rgba_to_rgb_mmx; +#endif +#ifdef BUILD_C +# ifdef BUILD_MMX + else +# endif + return blend_color_rgba_to_rgb_c; +#endif + } + } + else + { + if (dst->flags & RGBA_IMAGE_HAS_ALPHA) + { + return copy_color_rgb_to_rgba_c; + } + else + { +#ifdef BUILD_SSE + if ((sse) && (pixels > 256 * 256)) + return copy_color_rgba_to_rgba_sse; +#endif +#ifdef BUILD_MMX +# ifdef BUILD_SSE + else +# endif + if (mmx) + return copy_color_rgba_to_rgba_mmx; +#endif +#ifdef BUILD_C +# ifdef BUILD_MMX + else +# endif + return copy_color_rgba_to_rgba_c; +#endif + } + } + return blend_color_rgba_to_rgba_c; + pixels = 0; +} + +Gfx_Func_Blend_Src_Cmod_Dst +draw_func_blend_cmod_get(RGBA_Image *src, RGBA_Image *dst, int pixels) +{ +#ifdef BUILD_MMX + int mmx, sse, sse2; + + cpu_can_do(&mmx, &sse, &sse2); +#endif + if (src->flags & RGBA_IMAGE_HAS_ALPHA) + { + if (dst->flags & RGBA_IMAGE_HAS_ALPHA) + { + return blend_pixels_cmod_rgba_to_rgba_c; + } + else + { + return blend_pixels_cmod_rgba_to_rgb_c; + } + } + else + { + if (dst->flags & RGBA_IMAGE_HAS_ALPHA) + { + return copy_pixels_cmod_rgb_to_rgba_c; + } + else + { + return copy_pixels_cmod_rgba_to_rgba_c; + } + } + return blend_pixels_cmod_rgba_to_rgba_c; + pixels = 0; +} + +Gfx_Func_Blend_Src_Mul_Dst +draw_func_blend_mul_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels) +{ +#ifdef BUILD_MMX + int mmx, sse, sse2; + + cpu_can_do(&mmx, &sse, &sse2); +#endif + if (src->flags & RGBA_IMAGE_HAS_ALPHA) + { + if (dst->flags & RGBA_IMAGE_HAS_ALPHA) + { + return blend_pixels_mul_color_rgba_to_rgba_c; + } + else + { +#ifdef BUILD_MMX + if (mmx) + return blend_pixels_mul_color_rgba_to_rgb_mmx; +#endif +#ifdef BUILD_C +# ifdef BUILD_MMX + else +# endif + return blend_pixels_mul_color_rgba_to_rgb_c; +#endif + } + } + else + { + if (dst->flags & RGBA_IMAGE_HAS_ALPHA) + { + return blend_pixels_mul_color_rgba_to_rgba_c; + } + else + { +#ifdef BUILD_MMX + if (mmx) + return blend_pixels_mul_color_rgba_to_rgb_mmx; +#endif +#ifdef BUILD_C +# ifdef BUILD_MMX + else +# endif + return blend_pixels_mul_color_rgba_to_rgb_c; +#endif + } + } + return blend_pixels_mul_color_rgba_to_rgba_c; + col = 0; + pixels = 0; +} + +Gfx_Func_Blend_Src_Alpha_Mul_Dst +draw_func_blend_alpha_get(RGBA_Image *dst) +{ +#ifdef BUILD_MMX + int mmx, sse, sse2; + + cpu_can_do(&mmx, &sse, &sse2); +#endif + if (dst->flags & RGBA_IMAGE_HAS_ALPHA) + { + return blend_alpha_color_rgba_to_rgba_c; + } + else + { +#ifdef BUILD_MMX + if (mmx) + return blend_alpha_color_rgba_to_rgb_mmx; +#endif +#ifdef BUILD_C +# ifdef BUILD_MMX + else +# endif + return blend_alpha_color_rgba_to_rgb_c; +#endif + } +#ifdef BUILD_C + return blend_alpha_color_rgba_to_rgba_c; +#else + return NULL; +#endif +} + +Gfx_Func_Blend_Src_Dst +draw_func_copy_get(int pixels, int reverse) +{ +#ifdef BUILD_MMX + int mmx, sse, sse2; + + cpu_can_do(&mmx, &sse, &sse2); +#endif + if (reverse) + { +#ifdef BUILD_SSE + if ((sse) && (pixels > 256 * 256)) + return copy_pixels_rev_rgba_to_rgba_sse; +#endif +#ifdef BUILD_MMX +# ifdef BUILD_SSE + else +# endif + if (mmx) + return copy_pixels_rev_rgba_to_rgba_mmx; +#endif +#ifdef BUILD_C +# ifdef BUILD_MMX + else +# endif + return copy_pixels_rev_rgba_to_rgba_c; +#endif + } + else + { +#ifdef BUILD_SSE + if ((sse) && (pixels > 256 * 256)) + return copy_pixels_rgba_to_rgba_sse; +#endif +#ifdef BUILD_MMX +# ifdef BUILD_SSE + else +# endif + if (mmx) + return copy_pixels_rgba_to_rgba_mmx; +#endif +#ifdef BUILD_C +# ifdef BUILD_MMX + else +# endif + return copy_pixels_rgba_to_rgba_c; +#endif + } +#ifdef BUILD_C + return copy_pixels_rgba_to_rgba_c; +#else + return NULL; +#endif + pixels = 0; +} + diff --git a/legacy/evas/src/lib/engines/common/evas_font_draw.c b/legacy/evas/src/lib/engines/common/evas_font_draw.c new file mode 100644 index 0000000000..0281fa288a --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_font_draw.c @@ -0,0 +1,169 @@ +#include "evas_common.h" + +extern FT_Library ft_lib; + +RGBA_Font_Glyph * +font_cache_glyph_get(RGBA_Font *fn, FT_UInt index) +{ + RGBA_Font_Glyph *fg; + char key[6]; + FT_Error error; + + key[0] = ((index ) & 0x7f) + 1; + key[1] = ((index >> 7 ) & 0x7f) + 1; + key[2] = ((index >> 14 ) & 0x7f) + 1; + key[3] = ((index >> 21 ) & 0x7f) + 1; + key[4] = ((index >> 28 ) & 0x0f) + 1; + key[5] = 0; + + fg = evas_hash_find(fn->glyphs, key); + if (fg) return fg; + + error = FT_Load_Glyph(fn->ft.face, index, FT_LOAD_DEFAULT); + if (error) return NULL; + + fg = malloc(sizeof(struct _RGBA_Font_Glyph)); + if (!fg) return NULL; + memset(fg, 0, (sizeof(struct _RGBA_Font_Glyph))); + + error = FT_Get_Glyph(fn->ft.face->glyph, &(fg->glyph)); + if (error) + { + free(fg); + return NULL; + } + if (fg->glyph->format != ft_glyph_format_bitmap) + { + error = FT_Glyph_To_Bitmap(&(fg->glyph), ft_render_mode_normal, 0, 1); + if (error) + { + FT_Done_Glyph(fg->glyph); + free(fg); + return NULL; + } + } + fg->glyph_out = (FT_BitmapGlyph)fg->glyph; + + fn->glyphs = evas_hash_add(fn->glyphs, key, fg); + return fg; +} + +void +font_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn, int x, int y, const char *text) +{ + int use_kerning; + int pen_x, pen_y; + int chr; + FT_UInt prev_index; + Gfx_Func_Blend_Src_Alpha_Mul_Dst func; + int ext_x, ext_y, ext_w, ext_h; + DATA32 *im; + int im_w, im_h; + + im = dst->image->data; + im_w = dst->image->w; + im_h = dst->image->h; + + ext_x = 0; ext_y = 0; ext_w = im_w; ext_h = im_h; + if (dc->clip.use) + { + ext_x = dc->clip.x; + ext_y = dc->clip.y; + ext_w = dc->clip.w; + ext_h = dc->clip.h; + if (ext_x < 0) + { + ext_w += ext_x; + ext_x = 0; + } + if (ext_y < 0) + { + ext_h += ext_y; + ext_y = 0; + } + if ((ext_x + ext_w) > im_w) + ext_w = im_w - ext_x; + if ((ext_y + ext_h) > im_h) + ext_h = im_h - ext_y; + } + if (ext_w <= 0) return; + if (ext_h <= 0) return; + + pen_x = x << 8; + pen_y = y << 8; + use_kerning = FT_HAS_KERNING(fn->ft.face); + prev_index = 0; + func = draw_func_blend_alpha_get(dst); + for (chr = 0; text[chr];) + { + FT_UInt index; + RGBA_Font_Glyph *fg; + int chr_x, chr_y; + int gl; + + gl = font_utf8_get_next((unsigned char *)text, &chr); + if (gl == 0) break; + index = FT_Get_Char_Index(fn->ft.face, gl); + if ((use_kerning) && (prev_index) && (index)) + { + FT_Vector delta; + + FT_Get_Kerning(fn->ft.face, prev_index, index, + ft_kerning_default, &delta); + pen_x += delta.x << 2; + } + fg = font_cache_glyph_get(fn, index); + if (!fg) continue; + + chr_x = (pen_x + (fg->glyph_out->left << 8)) >> 8; + chr_y = (pen_y + (fg->glyph_out->top << 8)) >> 8; + + if (chr_x < (ext_x + ext_w)) + { + DATA8 *data; + int i, j, w, h; + + data = fg->glyph_out->bitmap.buffer; + j = fg->glyph_out->bitmap.pitch; + w = fg->glyph_out->bitmap.width; + h = fg->glyph_out->bitmap.rows; + if ((j > 0) && (chr_x + w > ext_x)) + { + for (i = 0; i < h; i++) + { + int dx, dy; + int in_x, in_w; + + in_x = 0; + in_w = 0; + dx = chr_x; + dy = y - (chr_y - i - y); + if ((dx < (ext_x + ext_w)) && + (dy >= (ext_y)) && + (dy < (ext_y + ext_h))) + { + if (dx + w > (ext_x + ext_w)) + in_w += (dx + w) - (ext_x + ext_w); + if (dx < ext_x) + { + in_w += ext_x - dx; + in_x = ext_x - dx; + dx = ext_x; + } + if (in_w < w) + { + func(data + (i * j) + in_x, + im + (dy * im_w) + dx, + w - in_w, + dc->col.col); + } + } + } + } + } + else + break; + pen_x += fg->glyph->advance.x >> 8; + prev_index = index; + } +} diff --git a/legacy/evas/src/lib/engines/common/evas_font_load.c b/legacy/evas/src/lib/engines/common/evas_font_load.c new file mode 100644 index 0000000000..4c9a31d174 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_font_load.c @@ -0,0 +1,239 @@ +#include "evas_common.h" + +extern FT_Library ft_lib; + +static int font_cache_usage = 0; +static int font_cache = 0; +static Evas_Object_List * fonts = NULL; + +static int font_modify_cache_cb(Evas_Hash *hash, const char *key, void *data, void *fdata); +static int font_flush_free_glyph_cb(Evas_Hash *hash, const char *key, void *data, void *fdata); + +/* FIXME: */ +/* we should share face handles and have different ft sizes from the same */ +/* face (if applicable) */ + +RGBA_Font * +font_load(const char *name, int size) +{ + int error; + RGBA_Font *fn; + char *file; + + fn = font_find(name, size); + if (fn) return fn; + + fn = malloc(sizeof(RGBA_Font)); + file = (char *)name; + + error = FT_New_Face(ft_lib, file, 0, &(fn->ft.face)); + if (error) + { + free(fn); + return NULL; + } + error = FT_Set_Char_Size(fn->ft.face, 0, (size * 64), 96, 96); + if (error) + error = FT_Set_Pixel_Sizes(fn->ft.face, 0, size); + if (error) + { + int i; + int chosen_size = 0; + int chosen_width = 0; + + for (i = 0; i < fn->ft.face->num_fixed_sizes; i++) + { + int s; + int d, cd; + + s = fn->ft.face->available_sizes[i].height; + cd = chosen_size - size; + if (cd < 0) cd = -cd; + d = s - size; + if (d < 0) d = -d; + if (d < cd) + { + chosen_width = fn->ft.face->available_sizes[i].width; + chosen_size = s; + } + if (d == 0) break; + } + error = FT_Set_Pixel_Sizes(fn->ft.face, chosen_width, chosen_size); + if (error) + { + /* couldn't choose the size anyway... what now? */ + } + } + +#if 0 /* debugging to look at charmaps in a ttf */ + printf("%i\n", fn->ft.face->num_charmaps); + { + int i; + + for (i = 0; i < fn->ft.face->num_charmaps; i++) + { + printf("%i: %x, %c\n", + i, fn->ft.face->charmaps[i]->encoding, + fn->ft.face->charmaps[i]->encoding); + } + } +#endif + error = FT_Select_Charmap(fn->ft.face, ft_encoding_unicode); + if (error) + { +/* disable this for now... + error = FT_Select_Charmap(fn->ft.face, ft_encoding_latin_2); + if (error) + { + error = FT_Select_Charmap(fn->ft.face, ft_encoding_sjis); + if (error) + { + error = FT_Select_Charmap(fn->ft.face, ft_encoding_gb2312); + if (error) + { + error = FT_Select_Charmap(fn->ft.face, ft_encoding_big5); + if (error) + { + } + } + } + } + */ + } + + fn->file = strdup(file); + fn->name = strdup(file); + fn->size = size; + + fn->glyphs = NULL; + + fn->usage = 0; + + fn->references = 1; + + fonts = evas_object_list_prepend(fonts, fn); + return fn; +} + +void +font_free(RGBA_Font *fn) +{ + fn->references--; + if (fn->references == 0) + { + font_modify_cache_by(fn, 1); + font_flush(); + } +} + +static int +font_modify_cache_cb(Evas_Hash *hash, const char *key, void *data, void *fdata) +{ + int *dir; + RGBA_Font_Glyph *fg; + + fg = data; + dir = fdata; + font_cache_usage += (*dir) * + ((fg->glyph_out->bitmap.width * fg->glyph_out->bitmap.rows) + + sizeof(RGBA_Font_Glyph) + sizeof(Evas_List) + 400); /* fudge values */ + return 1; + hash = 0; + key = 0; +} + +void +font_modify_cache_by(RGBA_Font *fn, int dir) +{ + int sz_name = 0, sz_file = 0, sz_hash = 0; + + if (fn->name) sz_name = strlen(fn->name); + if (fn->file) sz_file = strlen(fn->file); + if (fn->glyphs) sz_hash = sizeof(Evas_Hash); + evas_hash_foreach(fn->glyphs, font_modify_cache_cb, &dir); + font_cache_usage += dir * (sizeof(RGBA_Font) + sz_name + sz_file + sz_hash + + sizeof(FT_FaceRec) + 16384); /* fudge values */ +} + +int +font_cache_get(void) +{ + return font_cache; +} + +void +font_cache_set(int size) +{ + font_cache = size; + font_flush(); +} + +void +font_flush(void) +{ + if (font_cache_usage < font_cache) return; + while (font_cache_usage > font_cache) font_flush_last(); +} + +static int +font_flush_free_glyph_cb(Evas_Hash *hash, const char *key, void *data, void *fdata) +{ + RGBA_Font_Glyph *fg; + + fg = data; + FT_Done_Glyph(fg->glyph); + free(fg); + return 1; + hash = 0; + key = 0; + fdata = 0; +} + +void +font_flush_last(void) +{ + Evas_Object_List *l; + RGBA_Font *fn = NULL; + + for (l = fonts; l; l = l->next) + { + RGBA_Font *fn_tmp; + + fn_tmp = (RGBA_Font *)l; + if (fn_tmp->references == 0) fn = fn_tmp; + } + if (!fn) return; + + fonts = evas_object_list_remove(fonts, fn); + font_modify_cache_by(fn, -1); + + evas_hash_foreach(fn->glyphs, font_flush_free_glyph_cb, NULL); + evas_hash_free(fn->glyphs); + + if (fn->file) free(fn->file); + if (fn->name) free(fn->name); + FT_Done_Face(fn->ft.face); + free(fn); +} + +RGBA_Font * +font_find(const char *name, int size) +{ + Evas_Object_List *l; + + for (l = fonts; l; l = l->next) + { + RGBA_Font *fn; + + fn = (RGBA_Font *)l; + if ((fn->size == size) && (!strcmp(name, fn->name))) + { + if (fn->references == 0) font_modify_cache_by(fn, -1); + fn->references++; + fonts = evas_object_list_remove(fonts, fn); + fonts = evas_object_list_prepend(fonts, fn); + return fn; + } + } + return NULL; +} diff --git a/legacy/evas/src/lib/engines/common/evas_font_main.c b/legacy/evas/src/lib/engines/common/evas_font_main.c new file mode 100644 index 0000000000..019e20c355 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_font_main.c @@ -0,0 +1,147 @@ +#include "evas_common.h" + +FT_Library ft_lib; + +void +font_init(void) +{ + static int initialised = 0; + int error; + + if (initialised) return; + error = FT_Init_FreeType(&ft_lib); + if (error) return; + initialised = 1; +} + +int +font_ascent_get(RGBA_Font *fn) +{ + int val; + int ret; + + val = (int)fn->ft.face->ascender; + fn->ft.face->units_per_EM = 2048; /* nasy hack - need to have correct val */ + ret = (val * fn->ft.face->size->metrics.y_scale) / (fn->ft.face->units_per_EM * fn->ft.face->units_per_EM); + return ret; +} + +int +font_descent_get(RGBA_Font *fn) +{ + int val; + int ret; + + val = -(int)fn->ft.face->descender; + fn->ft.face->units_per_EM = 2048; /* nasy hack - need to have correct val */ + ret = (val * fn->ft.face->size->metrics.y_scale) / (fn->ft.face->units_per_EM * fn->ft.face->units_per_EM); + return ret; +} + +int +font_max_ascent_get(RGBA_Font *fn) +{ + int val; + int ret; + + val = (int)fn->ft.face->bbox.yMax; + fn->ft.face->units_per_EM = 2048; /* nasy hack - need to have correct val */ + ret = (val * fn->ft.face->size->metrics.y_scale) / (fn->ft.face->units_per_EM * fn->ft.face->units_per_EM); + return ret; +} + +int +font_max_descent_get(RGBA_Font *fn) +{ + int val; + int ret; + + val = -(int)fn->ft.face->bbox.yMin; + fn->ft.face->units_per_EM = 2048; /* nasy hack - need to have correct val */ + ret = (val * fn->ft.face->size->metrics.y_scale) / (fn->ft.face->units_per_EM * fn->ft.face->units_per_EM); + return ret; +} + +int +font_get_line_advance(RGBA_Font *fn) +{ + int val; + int ret; + + val = (int)fn->ft.face->height; + fn->ft.face->units_per_EM = 2048; /* nasy hack - need to have correct val */ + ret = (val * fn->ft.face->size->metrics.y_scale) / (fn->ft.face->units_per_EM * fn->ft.face->units_per_EM); + return ret; +} + +int +font_utf8_get_next(unsigned char *buf, int *iindex) +{ + /* Reads UTF8 bytes from @buf, starting at *@index and returns + * the code point of the next valid code point. @index is + * updated ready for the next call. + * + * Returns 0 to indicate an error (e.g. invalid UTF8) + */ + int index = *iindex, r; + unsigned char d = buf[index++], d2, d3, d4; + + if (!d) + return 0; + if (d < 0x80) + { + *iindex = index; + return d; + } + if ((d & 0xe0) == 0xc0) + { + /* 2 byte */ + d2 = buf[index++]; + if ((d2 & 0xc0) != 0x80) + return 0; + r = d & 0x1f; /* copy lower 5 */ + r <<= 6; + r |= (d2 & 0x3f); /* copy lower 6 */ + } + else if ((d & 0xf0) == 0xe0) + { + /* 3 byte */ + d2 = buf[index++]; + d3 = buf[index++]; + if ((d2 & 0xc0) != 0x80 || + (d3 & 0xc0) != 0x80) + return 0; + r = d & 0x0f; /* copy lower 4 */ + r <<= 6; + r |= (d2 & 0x3f); + r <<= 6; + r |= (d3 & 0x3f); + } + else + { + /* 4 byte */ + d2 = buf[index++]; + d3 = buf[index++]; + d4 = buf[index++]; + if ((d2 & 0xc0) != 0x80 || + (d3 & 0xc0) != 0x80 || + (d4 & 0xc0) != 0x80) + return 0; + r = d & 0x0f; /* copy lower 4 */ + r <<= 6; + r |= (d2 & 0x3f); + r <<= 6; + r |= (d3 & 0x3f); + r <<= 6; + r |= (d4 & 0x3f); + + } + if (r < 0xdfff && d > 0xd800) + { + /* ill-formed says Table 3.1B in the */ + /* Unicode 3.2 std */ + return 0; + } + *iindex = index; + return r; +} diff --git a/legacy/evas/src/lib/engines/common/evas_font_query.c b/legacy/evas/src/lib/engines/common/evas_font_query.c new file mode 100644 index 0000000000..918992905d --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_font_query.c @@ -0,0 +1,226 @@ +#include "evas_common.h" + +extern FT_Library ft_lib; + +/* string extents */ +void +font_query_size(RGBA_Font *fn, const char *text, int *w, int *h) +{ + int use_kerning; + int pen_x, pen_y; + int start_x, end_x; + int chr; + FT_UInt prev_index; + + start_x = 0; + end_x = 0; + pen_x = 0; + pen_y = 0; + use_kerning = FT_HAS_KERNING(fn->ft.face); + prev_index = 0; + for (chr = 0; text[chr];) + { + FT_UInt index; + RGBA_Font_Glyph *fg; + int chr_x, chr_y, chr_w; + int gl; + + gl = font_utf8_get_next((unsigned char *)text, &chr); + if (gl == 0) break; + index = FT_Get_Char_Index(fn->ft.face, gl); + if ((use_kerning) && (prev_index) && (index)) + { + FT_Vector delta; + + FT_Get_Kerning(fn->ft.face, prev_index, index, + ft_kerning_default, &delta); + pen_x += delta.x << 2; + } + fg = font_cache_glyph_get(fn, index); + if (!fg) continue; + + chr_x = (pen_x >> 8) + fg->glyph_out->left; + chr_y = (pen_y >> 8) + fg->glyph_out->top; + chr_w = fg->glyph_out->bitmap.width; + + if (chr_x < start_x) start_x = chr_x; + if ((chr_x + chr_w) > end_x) end_x = chr_x + chr_w; + + pen_x += fg->glyph->advance.x >> 8; + prev_index = index; + } + if (w) *w = end_x - start_x; + if (h) *h = font_max_ascent_get(fn) + font_max_descent_get(fn); +} + +/* text x inset */ +int +font_query_inset(RGBA_Font *fn, const char *text) +{ + FT_UInt index; + RGBA_Font_Glyph *fg; + int chr; + int gl; + + chr = 0; + if (!text[0]) return 0; + gl = font_utf8_get_next((unsigned char *)text, &chr); + if (gl == 0) return 0; + index = FT_Get_Char_Index(fn->ft.face, gl); + fg = font_cache_glyph_get(fn, index); + if (!fg) return 0; + return fg->glyph_out->left; +} + +/* h & v advance */ +void +font_query_advance(RGBA_Font *fn, const char *text, int *h_adv, int *v_adv) +{ + int use_kerning; + int pen_x, pen_y; + int start_x; + int chr; + FT_UInt prev_index; + + start_x = 0; + pen_x = 0; + pen_y = 0; + use_kerning = FT_HAS_KERNING(fn->ft.face); + prev_index = 0; + for (chr = 0; text[chr];) + { + FT_UInt index; + RGBA_Font_Glyph *fg; + int chr_x, chr_y, chr_w; + int gl; + + gl = font_utf8_get_next((unsigned char *)text, &chr); + if (gl == 0) break; + index = FT_Get_Char_Index(fn->ft.face, gl); + if ((use_kerning) && (prev_index) && (index)) + { + FT_Vector delta; + + FT_Get_Kerning(fn->ft.face, prev_index, index, + ft_kerning_default, &delta); + pen_x += delta.x << 2; + } + fg = font_cache_glyph_get(fn, index); + if (!fg) continue; + + chr_x = (pen_x >> 8) + fg->glyph_out->left; + chr_y = (pen_y >> 8) + fg->glyph_out->top; + chr_w = fg->glyph_out->bitmap.width; + + pen_x += fg->glyph->advance.x >> 8; + prev_index = index; + } + if (v_adv) *v_adv = font_get_line_advance(fn); + if (h_adv) *h_adv = (pen_x >> 8) - start_x; +} + +/* x y w h for char at char pos */ +int +font_query_char_coords(RGBA_Font *fn, const char *text, int pos, int *cx, int *cy, int *cw, int *ch) +{ + int use_kerning; + int pen_x, pen_y; + int chr; + FT_UInt prev_index; + + pen_x = 0; + pen_y = 0; + use_kerning = FT_HAS_KERNING(fn->ft.face); + prev_index = 0; + for (chr = 0; text[chr];) + { + FT_UInt index; + RGBA_Font_Glyph *fg; + int chr_x, chr_y, chr_w; + int gl; + + gl = font_utf8_get_next((unsigned char *)text, &chr); + if (gl == 0) break; + index = FT_Get_Char_Index(fn->ft.face, gl); + if ((use_kerning) && (prev_index) && (index)) + { + FT_Vector delta; + + FT_Get_Kerning(fn->ft.face, prev_index, index, + ft_kerning_default, &delta); + pen_x += delta.x << 2; + } + fg = font_cache_glyph_get(fn, index); + if (!fg) continue; + + chr_x = (pen_x >> 8) + fg->glyph_out->left; + chr_y = (pen_y >> 8) + fg->glyph_out->top; + chr_w = fg->glyph_out->bitmap.width; + + if (gl == pos) + { + if (cx) *cx = chr_x; + if (cy) *cy = - font_max_ascent_get(fn); + if (cw) *cw = chr_w; + if (ch) *ch = font_max_ascent_get(fn) + font_max_descent_get(fn); + return 1; + } + pen_x += fg->glyph->advance.x >> 8; + prev_index = index; + } + return 0; +} + +/* char pos of text at xy pos */ +int +font_query_text_at_pos(RGBA_Font *fn, const char *text, int x, int y, int *cx, int *cy, int *cw, int *ch) +{ + int use_kerning; + int pen_x, pen_y; + int chr; + FT_UInt prev_index; + + pen_x = 0; + pen_y = 0; + use_kerning = FT_HAS_KERNING(fn->ft.face); + prev_index = 0; + for (chr = 0; text[chr];) + { + FT_UInt index; + RGBA_Font_Glyph *fg; + int chr_x, chr_y, chr_w; + int gl; + + gl = font_utf8_get_next((unsigned char *)text, &chr); + if (gl == 0) break; + index = FT_Get_Char_Index(fn->ft.face, gl); + if ((use_kerning) && (prev_index) && (index)) + { + FT_Vector delta; + + FT_Get_Kerning(fn->ft.face, prev_index, index, + ft_kerning_default, &delta); + pen_x += delta.x << 6; + } + fg = font_cache_glyph_get(fn, index); + if (!fg) continue; + + chr_x = (pen_x >> 8) + fg->glyph_out->left; + chr_y = (pen_y >> 8) + fg->glyph_out->top; + chr_w = fg->glyph_out->bitmap.width; + + if ((x >= chr_x) && (x < (chr_x + chr_w)) && + (y > - font_max_ascent_get(fn)) && + (y < font_max_descent_get(fn))) + { + if (cx) *cx = chr_x; + if (cy) *cy = - font_max_ascent_get(fn); + if (cw) *cw = chr_w; + if (ch) *ch = font_max_ascent_get(fn) + font_max_descent_get(fn); + return gl; + } + pen_x += fg->glyph->advance.x >> 8; + prev_index = index; + } + return -1; +} diff --git a/legacy/evas/src/lib/engines/common/evas_gradient_main.c b/legacy/evas/src/lib/engines/common/evas_gradient_main.c new file mode 100644 index 0000000000..cc6e24cbf3 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_gradient_main.c @@ -0,0 +1,274 @@ +#include "evas_common.h" +#include + +void +gradient_init(void) +{ +} + +RGBA_Gradient * +gradient_new(void) +{ + RGBA_Gradient *gr; + + gr = calloc(1, sizeof(RGBA_Gradient)); + return gr; +} + +void +gradient_free(RGBA_Gradient *gr) +{ + gradient_colors_clear(gr); + free(gr); +} + +void +gradient_colors_clear(RGBA_Gradient *gr) +{ + if (gr->colors) + { + Evas_Object_List *l; + + while (gr->colors) + { + l = gr->colors; + gr->colors = evas_object_list_remove(gr->colors, gr->colors); + free(l); + } + gr->colors = NULL; + } +} + +void +gradient_color_add(RGBA_Gradient *gr, int r, int g, int b, int a, int dist) +{ + RGBA_Gradient_Color *gc; + + gc = malloc(sizeof(RGBA_Gradient_Color)); + gc->r = r; + gc->g = g; + gc->b = b; + gc->a = a; + gc->dist = dist; + gr->colors = evas_object_list_append(gr->colors, gc); +} + +void +gradient_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h, RGBA_Gradient *gr, double angle) +{ + Gfx_Func_Blend_Src_Dst func; + int yy, xx, i, len; + int xoff, yoff, divw, divh; + DATA32 *ptr, *dptr, *buf, *map; + int *hlut, *vlut; + int o_x, o_y, o_w, o_h; + RGBA_Image *tmp; + + o_x = x; o_y = y; o_w = w; o_h = h; + + if ((w <= 0) || (h <= 0)) return; + + if (!(RECTS_INTERSECT(x, y, w, h, 0, 0, dst->image->w, dst->image->h))) + return; + if (x < 0) + { + w += x; + x = 0; + } + if (y < 0) + { + h += y; + y = 0; + } + if ((w <= 0) || (h <= 0)) return; + if ((x + w) > dst->image->w) w = dst->image->w - x; + if ((y + h) > dst->image->h) h = dst->image->h - y; + if ((w <= 0) || (h <= 0)) return; + + if (dc->clip.use) + { + if (dc->clip.x > x) + { + w += x - dc->clip.x; + x = dc->clip.x; + } + if (dc->clip.y > y) + { + h += y - dc->clip.y; + y = dc->clip.y; + } + if ((w <= 0) || (h <= 0)) return; + if ((dc->clip.x + dc->clip.w) < (x + w)) + w = dc->clip.x + dc->clip.w - x; + if ((dc->clip.y + dc->clip.h) < (y + h)) + h = dc->clip.y + dc->clip.h - y; + } + if ((w <= 0) || (h <= 0)) return; + + hlut = malloc(sizeof(int) * o_w); + if (!hlut) return; + vlut = malloc(sizeof(int) * o_h); + if (!vlut) + { + free(hlut); + return; + } + + xoff = x - o_x; + yoff = y - o_y; + + if (o_w > o_h) len = o_w * 16; + else len = o_h * 16; + + map = gradient_map(gr, dc, len); + if (!map) + { + free(hlut); + free(vlut); + return; + } + tmp = image_create(w, 1); + if (!tmp) + { + free(hlut); + free(vlut); + free(map); + return; + } + tmp->flags |= RGBA_IMAGE_HAS_ALPHA; + + cpu_end_opt(); + xx = (int)(32 * sin(((angle + 180) * 2 * 3.141592654) / 360)); + yy = -(int)(32 * cos(((angle + 180) * 2 * 3.141592654) / 360)); + divw = ((o_w - 1) << 5); + divh = ((o_h - 1) << 5); + if (divw < 1) divw = 1; + if (divh < 1) divh = 1; + + if (xx < 0) + { + for (i = 0; i < o_w; i++) hlut[i] = (-xx * (o_w - 1 - i) * len) / divw; + } + else + { + for (i = 0; i < o_w; i++) hlut[i] = (xx * i * len) / divw; + } + if (yy < 0) + { + for (i = 0; i < o_h; i++) vlut[i] = (-yy * (o_h - 1 - i) * len) / divh; + } + else + { + for (i = 0; i < o_h; i++) vlut[i] = (yy * i * len) / divh; + } + + buf = tmp->image->data; + func = draw_func_blend_get(tmp, dst, w); + ptr = dst->image->data + (y * dst->image->w) + x; + for (yy = 0; yy < h; yy++) + { + dptr = buf; + for (xx = 0; xx < w; xx++) + { + i = vlut[yoff + yy] + hlut[xoff + xx]; + if (i < 0) i = 0; + else if (i >= len) i = len - 1; + *dptr = map[i]; + dptr++; + } + func(buf, ptr, w); + ptr += dst->image->w; + } + free(hlut); + free(vlut); + free(map); + image_free(tmp); +} + +DATA32 * +gradient_map(RGBA_Gradient *gr, RGBA_Draw_Context *dc, int len) +{ + DATA32 *map, *pmap, v, vv; + Evas_Object_List *l; + RGBA_Gradient_Color *gc, *gc_next; + int r, g, b, a, rr, gg, bb, aa, i, j, inc, v1, v2, total; + + if (!gr->colors) return NULL; + if (!gr->colors->next) return NULL; + + total = 1; + for (l = gr->colors; l->next; l = l->next) + { + gc = (RGBA_Gradient_Color *)l; + total += gc->dist; + } + map = malloc(len * sizeof(DATA32)); + if (!map) return NULL; + pmap = malloc(total * sizeof(DATA32)); + if (!pmap) + { + free(map); + return NULL; + } + i = 0; + for (l = gr->colors; l; l = l->next) + { + gc = (RGBA_Gradient_Color *)l; + + if (l->next) + { + gc_next = (RGBA_Gradient_Color *)l->next; + for (j = 0; j < gc->dist; j++) + { + v1 = (j << 16) / gc->dist; + v2 = 65536 - v1; + r = ((gc->r * v2) + (gc_next->r * v1)) >> 16; + g = ((gc->g * v2) + (gc_next->g * v1)) >> 16; + b = ((gc->b * v2) + (gc_next->b * v1)) >> 16; + a = ((gc->a * v2) + (gc_next->a * v1)) >> 16; + if (dc->mul.use) + { + r = ((r + 1) * (R_VAL(&dc->mul.col))) >> 8; + g = ((g + 1) * (G_VAL(&dc->mul.col))) >> 8; + b = ((b + 1) * (B_VAL(&dc->mul.col))) >> 8; + a = ((a + 1) * (A_VAL(&dc->mul.col))) >> 8; + } + pmap[i++] = (a << 24) | (r << 16) | (g << 8) | b; + } + } + else + { + r = gc->r; + g = gc->g; + b = gc->b; + a = gc->a; + pmap[i++] = (a << 24) | (r << 16) | (g << 8) | b; + } + } + inc = ((total - 1) << 16) / (len); + j = 0; + for (i = 0; i < len; i++) + { + v = pmap[j >> 16]; + if ((j >> 16) < total) vv = pmap[(j >> 16) + 1]; + else vv = pmap[(j >> 16) ]; + v1 = j - ((j >> 16) << 16); + v2 = 65536 - v1; + b = ((v) ) & 0xff; + g = ((v) >> 8 ) & 0xff; + r = ((v) >> 16 ) & 0xff; + a = ((v) >> 24 ) & 0xff; + bb = ((vv) ) & 0xff; + gg = ((vv) >> 8 ) & 0xff; + rr = ((vv) >> 16) & 0xff; + aa = ((vv) >> 24) & 0xff; + r = ((r * v2) + (rr * v1)) >> 16; + g = ((g * v2) + (gg * v1)) >> 16; + b = ((b * v2) + (bb * v1)) >> 16; + a = ((a * v2) + (aa * v1)) >> 16; + map[i] = (a << 24) | (r << 16) | (g << 8) | b; + j += inc; + } + free(pmap); + return map; +} diff --git a/legacy/evas/src/lib/engines/common/evas_image_load.c b/legacy/evas/src/lib/engines/common/evas_image_load.c new file mode 100644 index 0000000000..bc69045d14 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_image_load.c @@ -0,0 +1,1143 @@ +#include "config.h" +#include "evas_options.h" + +#define SWAP32(x) (x) = ((((x) & 0x000000ff ) << 24) | (((x) & 0x0000ff00 ) << 8) | (((x) & 0x00ff0000 ) >> 8) | (((x) & 0xff000000 ) >> 24)) + +#ifdef BUILD_LOADER_PNG +#include +#include +#define PNG_BYTES_TO_CHECK 4 +#endif + +#ifdef BUILD_LOADER_JPEG +#include +#include +#endif + +#ifdef BUILD_LOADER_EET +#include +#include +#endif + +#ifdef BUILD_LOADER_EDB +#include +#include +#endif + +#ifdef BUILD_LOADER_TEMPLATE +#include +#endif + +#include "evas_common.h" +#include "evas_private.h" + +#ifdef BUILD_LOADER_PNG +static int load_image_file_head_png(RGBA_Image *im, const char *file, const char *key); +static int +load_image_file_head_png(RGBA_Image *im, const char *file, const char *key) +{ + png_uint_32 w32, h32; + FILE *f; + png_structp png_ptr = NULL; + png_infop info_ptr = NULL; + int bit_depth, color_type, interlace_type; + unsigned char buf[PNG_BYTES_TO_CHECK]; + char hasa, hasg; + + if ((!file)) return -1; + hasa = 0; + hasg = 0; + f = fopen(file, "rb"); + if (!f) return -1; + + /* if we havent read the header before, set the header data */ + fread(buf, 1, PNG_BYTES_TO_CHECK, f); + if (!png_check_sig(buf, PNG_BYTES_TO_CHECK)) + { + fclose(f); + return -1; + } + rewind(f); + png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + if (!png_ptr) + { + fclose(f); + return -1; + } + info_ptr = png_create_info_struct(png_ptr); + if (!info_ptr) + { + png_destroy_read_struct(&png_ptr, NULL, NULL); + fclose(f); + return -1; + } + if (setjmp(png_ptr->jmpbuf)) + { + png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + fclose(f); + return -1; + } + png_init_io(png_ptr, f); + png_read_info(png_ptr, info_ptr); + png_get_IHDR(png_ptr, info_ptr, (png_uint_32 *) (&w32), + (png_uint_32 *) (&h32), &bit_depth, &color_type, + &interlace_type, NULL, NULL); + if (!im->image) + im->image = image_surface_new(); + if (!im->image) + { + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL); + fclose(f); + return -1; + } + im->image->w = (int) w32; + im->image->h = (int) h32; + if (color_type == PNG_COLOR_TYPE_PALETTE) png_set_expand(png_ptr); + if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA) hasa = 1; + if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) + { + hasa = 1; + hasg = 1; + } + if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY) hasg = 1; + if (hasa) im->flags |= RGBA_IMAGE_HAS_ALPHA; + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL); + fclose(f); + return 1; + key = 0; +} + +static int load_image_file_data_png(RGBA_Image *im, const char *file, const char *key); +static int +load_image_file_data_png(RGBA_Image *im, const char *file, const char *key) +{ + png_uint_32 w32, h32; + int w, h; + FILE *f; + png_structp png_ptr = NULL; + png_infop info_ptr = NULL; + int bit_depth, color_type, interlace_type; + unsigned char buf[PNG_BYTES_TO_CHECK]; + unsigned char **lines; + char hasa, hasg; + int i; + + if ((!file)) return -1; + hasa = 0; + hasg = 0; + f = fopen(file, "rb"); + if (!f) return -1; + + /* if we havent read the header before, set the header data */ + fread(buf, 1, PNG_BYTES_TO_CHECK, f); + if (!png_check_sig(buf, PNG_BYTES_TO_CHECK)) + { + fclose(f); + return -1; + } + rewind(f); + png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + if (!png_ptr) + { + fclose(f); + return -1; + } + info_ptr = png_create_info_struct(png_ptr); + if (!info_ptr) + { + png_destroy_read_struct(&png_ptr, NULL, NULL); + fclose(f); + return -1; + } + if (setjmp(png_ptr->jmpbuf)) + { + png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + fclose(f); + return -1; + } + png_init_io(png_ptr, f); + png_read_info(png_ptr, info_ptr); + png_get_IHDR(png_ptr, info_ptr, (png_uint_32 *) (&w32), + (png_uint_32 *) (&h32), &bit_depth, &color_type, + &interlace_type, NULL, NULL); + im->image->w = (int) w32; + im->image->h = (int) h32; + if (color_type == PNG_COLOR_TYPE_PALETTE) png_set_expand(png_ptr); + if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA) hasa = 1; + if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) + { + hasa = 1; + hasg = 1; + } + if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY) hasg = 1; + if (hasa) im->flags |= RGBA_IMAGE_HAS_ALPHA; + + w = im->image->w; + h = im->image->h; + if (hasa) png_set_expand(png_ptr); + /* we want ARGB */ +#ifdef WORDS_BIGENDIAN + png_set_swap_alpha(png_ptr); + png_set_filler(png_ptr, 0xff, PNG_FILLER_BEFORE); +#else + png_set_bgr(png_ptr); + png_set_filler(png_ptr, 0xff, PNG_FILLER_AFTER); +#endif + /* 16bit color -> 8bit color */ + png_set_strip_16(png_ptr); + /* pack all pixels to byte boundaires */ + png_set_packing(png_ptr); + if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) png_set_expand(png_ptr); + image_surface_alloc(im->image); + if (!im->image->data) + { + image_surface_free(im->image); + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL); + fclose(f); + return -1; + } + lines = (unsigned char **) malloc(h * sizeof(unsigned char *)); + + if (!lines) + { + image_surface_free(im->image); + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL); + fclose(f); + return -1; + } + if (hasg) + { + png_set_gray_to_rgb(png_ptr); + if (png_get_bit_depth(png_ptr, info_ptr) < 8) + png_set_gray_1_2_4_to_8(png_ptr); + } + for (i = 0; i < h; i++) + lines[i] = ((unsigned char *)(im->image->data)) + (i * w * sizeof(DATA32)); + png_read_image(png_ptr, lines); + free(lines); + png_read_end(png_ptr, info_ptr); + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL); + fclose(f); + return 1; + key = 0; +} +#endif + +#ifdef BUILD_LOADER_JPEG +struct _JPEG_error_mgr +{ + struct jpeg_error_mgr pub; + jmp_buf setjmp_buffer; +}; +typedef struct _JPEG_error_mgr *emptr; + +static void _JPEGFatalErrorHandler(j_common_ptr cinfo); +static void +_JPEGFatalErrorHandler(j_common_ptr cinfo) +{ + emptr errmgr; + + errmgr = (emptr) cinfo->err; + /* cinfo->err->output_message(cinfo);*/ + longjmp(errmgr->setjmp_buffer, 1); + return; +} + +static void _JPEGErrorHandler(j_common_ptr cinfo); +static void +_JPEGErrorHandler(j_common_ptr cinfo) +{ + emptr errmgr; + + errmgr = (emptr) cinfo->err; + /* cinfo->err->output_message(cinfo);*/ + /* longjmp(errmgr->setjmp_buffer, 1);*/ + return; +} + +static void _JPEGErrorHandler2(j_common_ptr cinfo, int msg_level); +static void +_JPEGErrorHandler2(j_common_ptr cinfo, int msg_level) +{ + emptr errmgr; + + errmgr = (emptr) cinfo->err; + /* cinfo->err->output_message(cinfo);*/ + /* longjmp(errmgr->setjmp_buffer, 1);*/ + return; + msg_level = 0; +} + +static int load_image_file_head_jpeg_internal(RGBA_Image *im, FILE *f); +static int +load_image_file_head_jpeg_internal(RGBA_Image *im, FILE *f) +{ + int w, h; + struct jpeg_decompress_struct cinfo; + struct _JPEG_error_mgr jerr; + + if (!f) return -1; + cinfo.err = jpeg_std_error(&(jerr.pub)); + jerr.pub.error_exit = _JPEGFatalErrorHandler; + jerr.pub.emit_message = _JPEGErrorHandler2; + jerr.pub.output_message = _JPEGErrorHandler; + if (setjmp(jerr.setjmp_buffer)) + { + jpeg_destroy_decompress(&cinfo); + return -1; + } + jpeg_create_decompress(&cinfo); + jpeg_stdio_src(&cinfo, f); + jpeg_read_header(&cinfo, TRUE); + cinfo.do_fancy_upsampling = FALSE; + cinfo.do_block_smoothing = FALSE; + jpeg_start_decompress(&cinfo); + +/* head decoding */ + if (!im->image) + im->image = image_surface_new(); + if (!im->image) + { + jpeg_destroy_decompress(&cinfo); + return -1; + } + im->image->w = w = cinfo.output_width; + im->image->h = h = cinfo.output_height; +/* end head decoding */ + + jpeg_destroy_decompress(&cinfo); + return 1; +} + +static int load_image_file_data_jpeg_internal(RGBA_Image *im, FILE *f); +static int +load_image_file_data_jpeg_internal(RGBA_Image *im, FILE *f) +{ + int w, h; + struct jpeg_decompress_struct cinfo; + struct _JPEG_error_mgr jerr; + DATA8 *ptr, *line[16], *data; + DATA32 *ptr2; + int x, y, l, i, scans, count, prevy; + + if (!f) return -1; + cinfo.err = jpeg_std_error(&(jerr.pub)); + jerr.pub.error_exit = _JPEGFatalErrorHandler; + jerr.pub.emit_message = _JPEGErrorHandler2; + jerr.pub.output_message = _JPEGErrorHandler; + if (setjmp(jerr.setjmp_buffer)) + { + jpeg_destroy_decompress(&cinfo); + return -1; + } + jpeg_create_decompress(&cinfo); + jpeg_stdio_src(&cinfo, f); + jpeg_read_header(&cinfo, TRUE); + cinfo.do_fancy_upsampling = FALSE; + cinfo.do_block_smoothing = FALSE; + jpeg_start_decompress(&cinfo); + +/* head decoding */ + im->image->w = w = cinfo.output_width; + im->image->h = h = cinfo.output_height; +/* end head decoding */ +/* data decoding */ + if (cinfo.rec_outbuf_height > 16) + { + jpeg_destroy_decompress(&cinfo); + return -1; + } + data = malloc(w * 16 * 3); + if (!data) + { + jpeg_destroy_decompress(&cinfo); + return -1; + } + image_surface_alloc(im->image); + if (!im->image->data) + { + free(data); + jpeg_destroy_decompress(&cinfo); + return -1; + } + ptr2 = im->image->data; + count = 0; + prevy = 0; + if (cinfo.output_components == 3) + { + for (i = 0; i < cinfo.rec_outbuf_height; i++) + line[i] = data + (i * w * 3); + for (l = 0; l < h; l += cinfo.rec_outbuf_height) + { + jpeg_read_scanlines(&cinfo, line, cinfo.rec_outbuf_height); + scans = cinfo.rec_outbuf_height; + if ((h - l) < scans) scans = h - l; + ptr = data; + for (y = 0; y < scans; y++) + { + for (x = 0; x < w; x++) + { + *ptr2 = + (0xff000000) | ((ptr[0]) << 16) | ((ptr[1]) << 8) | (ptr[2]); + ptr += 3; + ptr2++; + } + } + } + } + else if (cinfo.output_components == 1) + { + for (i = 0; i < cinfo.rec_outbuf_height; i++) + line[i] = data + (i * w); + for (l = 0; l < h; l += cinfo.rec_outbuf_height) + { + jpeg_read_scanlines(&cinfo, line, cinfo.rec_outbuf_height); + scans = cinfo.rec_outbuf_height; + if ((h - l) < scans) scans = h - l; + ptr = data; + for (y = 0; y < scans; y++) + { + for (x = 0; x < w; x++) + { + *ptr2 = + (0xff000000) | ((ptr[0]) << 16) | ((ptr[0]) << 8) | (ptr[0]); + ptr++; + ptr2++; + } + } + } + } + free(data); +/* end data decoding */ + jpeg_finish_decompress(&cinfo); + jpeg_destroy_decompress(&cinfo); + return 1; +} + +static int load_image_file_data_jpeg_alpha_internal(RGBA_Image *im, FILE *f); +static int +load_image_file_data_jpeg_alpha_internal(RGBA_Image *im, FILE *f) +{ + int w, h; + struct jpeg_decompress_struct cinfo; + struct _JPEG_error_mgr jerr; + DATA8 *ptr, *line[16], *data; + DATA32 *ptr2; + int x, y, l, i, scans, count, prevy; + + if (!f) return -1; + cinfo.err = jpeg_std_error(&(jerr.pub)); + jerr.pub.error_exit = _JPEGFatalErrorHandler; + jerr.pub.emit_message = _JPEGErrorHandler2; + jerr.pub.output_message = _JPEGErrorHandler; + if (setjmp(jerr.setjmp_buffer)) + { + jpeg_destroy_decompress(&cinfo); + return -1; + } + jpeg_create_decompress(&cinfo); + jpeg_stdio_src(&cinfo, f); + jpeg_read_header(&cinfo, TRUE); + cinfo.do_fancy_upsampling = FALSE; + cinfo.do_block_smoothing = FALSE; + jpeg_start_decompress(&cinfo); + +/* head decoding */ + im->image->w = w = cinfo.output_width; + im->image->h = h = cinfo.output_height; +/* end head decoding */ +/* data decoding */ + if (cinfo.rec_outbuf_height > 16) + { + jpeg_destroy_decompress(&cinfo); + return -1; + } + data = malloc(w * 16 * 3); + if (!data) + { + jpeg_destroy_decompress(&cinfo); + return -1; + } + if (!im->image->data) + { + free(data); + jpeg_destroy_decompress(&cinfo); + return -1; + } + ptr2 = im->image->data; + count = 0; + prevy = 0; + if (cinfo.output_components == 3) + { + for (i = 0; i < cinfo.rec_outbuf_height; i++) + line[i] = data + (i * w * 3); + for (l = 0; l < h; l += cinfo.rec_outbuf_height) + { + jpeg_read_scanlines(&cinfo, line, cinfo.rec_outbuf_height); + scans = cinfo.rec_outbuf_height; + if ((h - l) < scans) scans = h - l; + ptr = data; + for (y = 0; y < scans; y++) + { + for (x = 0; x < w; x++) + { + *ptr2 = + ((*ptr2) & 0x00ffffff) | + (((ptr[0] + ptr[1] + ptr[2]) / 3) << 24); + ptr += 3; + ptr2++; + } + } + } + } + else if (cinfo.output_components == 1) + { + for (i = 0; i < cinfo.rec_outbuf_height; i++) + line[i] = data + (i * w); + for (l = 0; l < h; l += cinfo.rec_outbuf_height) + { + jpeg_read_scanlines(&cinfo, line, cinfo.rec_outbuf_height); + scans = cinfo.rec_outbuf_height; + if ((h - l) < scans) scans = h - l; + ptr = data; + for (y = 0; y < scans; y++) + { + for (x = 0; x < w; x++) + { + *ptr2 = + ((*ptr2) & 0x00ffffff) | + ((ptr[0]) << 24); + ptr++; + ptr2++; + } + } + } + } + free(data); +/* end data decoding */ + jpeg_finish_decompress(&cinfo); + jpeg_destroy_decompress(&cinfo); + return 1; +} + +static int load_image_file_head_jpeg(RGBA_Image *im, const char *file, const char *key); +static int +load_image_file_head_jpeg(RGBA_Image *im, const char *file, const char *key) +{ + int val; + FILE *f; + + if ((!file)) return -1; + f = fopen(file, "rb"); + if (!f) return -1; + val = load_image_file_head_jpeg_internal(im, f); + fclose(f); + return val; + key = 0; +} + +static int load_image_file_data_jpeg(RGBA_Image *im, const char *file, const char *key); +static int +load_image_file_data_jpeg(RGBA_Image *im, const char *file, const char *key) +{ + int val; + FILE *f; + + if ((!file)) return -1; + f = fopen(file, "rb"); + if (!f) return -1; + val = load_image_file_data_jpeg_internal(im, f); + fclose(f); + return val; + key = 0; +} +#endif + +/* NB: look into: + * fmemopen(); + * open_memstream(); + */ + +#ifdef BUILD_LOADER_EET +static int load_image_file_head_eet(RGBA_Image *im, const char *file, const char *key); +static int +load_image_file_head_eet(RGBA_Image *im, const char *file, const char *key) +{ + int w, h, alpha, compression, size; + Eet_File *ef; + DATA32 *ret; + DATA32 *body; + DATA32 header[8]; + + if ((!file) || (!key)) return -1; + ef = eet_open((char *)file, EET_FILE_MODE_READ); + if (!ef) return -1; + ret = eet_read(ef, (char *)key, &size); + if (!ret) + { + eet_close(ef); + return -1; + } + if (size < 32) + { + free(ret); + eet_close(ef); + return -1; + } + memcpy(header, ret, 32); +#ifdef WORDS_BIGENDIAN + { + int i; + + for (i = 0; i < 8; i++) SWAP32(header[i]); + } +#endif + if (header[0] != 0xac1dfeed) + { + int val = -1; + +#ifdef BUILD_LOADER_JPEG +#ifdef BUILD_FMEMOPEN + /* if we built the jpeg loader in.. try load an inlined jpeg */ + if (header[0] == 0xbeeff00d) + /* magic number for 2 jpegs. 1 color, 1 gray. gray is alpha */ + { + FILE *f; + int sz1, sz2; + + /* next int is byte size of first jpg */ + /* then next int is byte size of 2nd jpeg */ + /* all bytes after the first 12 are jpeg data */ + sz1 = header[1]; + sz2 = header[2]; + + if ((sz1 <= 0) || (sz2 <= 0) || + ((sz1 + sz2 + 12) > size)) + { + free(ret); + eet_close(ef); + return -1; + } + f = fmemopen(((DATA8 *)ret) + 12, (size_t)sz1, "r"); + if (!f) + { + free(ret); + eet_close(ef); + return -1; + } + val = load_image_file_head_jpeg_internal(im, f); + fclose(f); + im->flags |= RGBA_IMAGE_HAS_ALPHA; + } + else + { + FILE *f; + + f = fmemopen(ret, (size_t)size, "r"); + if (!f) + { + free(ret); + eet_close(ef); + return -1; + } + val = load_image_file_head_jpeg_internal(im, f); + fclose(f); + } +#endif +#endif + free(ret); + eet_close(ef); + return val; + } + w = header[1]; + h = header[2]; + alpha = header[3]; + compression = header[4]; + if ((w > 8192) || (h > 8192)) + { + free(ret); + eet_close(ef); + return -1; + } + if ((compression == 0) && (size < ((w * h * 4) + 32))) + { + free(ret); + eet_close(ef); + return -1; + } + if (alpha) im->flags |= RGBA_IMAGE_HAS_ALPHA; + if (!im->image) + im->image = image_surface_new(); + if (!im->image) + { + free(ret); + eet_close(ef); + return -1; + } + im->image->w = w; + im->image->h = h; + free(ret); + eet_close(ef); + return 1; +} + +static int load_image_file_data_eet(RGBA_Image *im, const char *file, const char *key); +static int +load_image_file_data_eet(RGBA_Image *im, const char *file, const char *key) +{ + int w, h, alpha, compression, size; + Eet_File *ef; + DATA32 *ret; + DATA32 *body; + DATA32 header[8]; + + if ((!file) || (!key)) return -1; + ef = eet_open((char *)file, EET_FILE_MODE_READ); + if (!ef) return -1; + ret = eet_read(ef, (char *)key, &size); + if (!ret) + { + eet_close(ef); + return -1; + } + if (size < 32) + { + free(ret); + eet_close(ef); + return -1; + } + memcpy(header, ret, 32); +#ifdef WORDS_BIGENDIAN + { + int i; + + for (i = 0; i < 8; i++) SWAP32(header[i]); + } +#endif + if (header[0] != 0xac1dfeed) + { + int val = -1; + +#ifdef BUILD_LOADER_JPEG +#ifdef BUILD_FMEMOPEN + /* if we built the jpeg loader in.. try load an inlined jpeg */ + if (header[0] == 0xbeeff00d) + /* magic number for 2 jpegs. 1 color, 1 gray. gray is alpha */ + { + FILE *f; + int sz1, sz2; + + /* next int is byte size of first jpg */ + /* then next int is byte size of 2nd jpeg */ + /* all bytes after the first 12 are jpeg data */ + sz1 = header[1]; + sz2 = header[2]; + + if ((sz1 <= 0) || (sz2 <= 0) || + ((sz1 + sz2 + 12) > size)) + { + free(ret); + eet_close(ef); + return -1; + } + f = fmemopen(((DATA8 *)ret) + 12, (size_t)sz1, "r"); + if (!f) + { + free(ret); + eet_close(ef); + return -1; + } + val = load_image_file_data_jpeg_internal(im, f); + fclose(f); + f = fmemopen(((DATA8 *)ret) + 12 + sz1, (size_t)sz2, "r"); + if (!f) + { + free(ret); + eet_close(ef); + return -1; + } + val = load_image_file_data_jpeg_alpha_internal(im, f); + fclose(f); + im->flags |= RGBA_IMAGE_HAS_ALPHA; + } + else + { + FILE *f; + + f = fmemopen(ret, (size_t)size, "r"); + if (!f) + { + free(ret); + eet_close(ef); + return -1; + } + val = load_image_file_data_jpeg_internal(im, f); + fclose(f); + } +#endif +#endif + free(ret); + eet_close(ef); + return val; + } + w = header[1]; + h = header[2]; + alpha = header[3]; + compression = header[4]; + if ((w > 8192) || (h > 8192)) + { + free(ret); + eet_close(ef); + return -1; + } + if ((compression == 0) && (size < ((w * h * 4) + 32))) + { + free(ret); + eet_close(ef); + return -1; + } + if (alpha) im->flags |= RGBA_IMAGE_HAS_ALPHA; + if (!im->image) + im->image = image_surface_new(); + if (!im->image) + { + free(ret); + eet_close(ef); + return -1; + } + im->image->w = w; + im->image->h = h; + body = &(ret[8]); + image_surface_alloc(im->image); + if (!im->image->data) + { + free(ret); + eet_close(ef); + return -1; + } + if (!compression) + { +#ifdef WORDS_BIGENDIAN + { + int x; + + memcpy(im->image->data, body, w * h * sizeof(DATA32)); + for (x = 0; x < (w * h); x++) SWAP32(im->image->data[x]); + } +#else + memcpy(im->image->data, body, w * h * sizeof(DATA32)); +#endif + } + else + { + uLongf dlen; + + dlen = w * h * sizeof(DATA32); + uncompress((Bytef *)im->image->data, &dlen, (Bytef *)body, + (uLongf)(size - 32)); +#ifdef WORDS_BIGENDIAN + { + int x; + + for (x = 0; x < (w * h); x++) SWAP32(im->image->data[x]); + } +#endif + } + free(ret); + eet_close(ef); + return 1; +} +#endif + +#ifdef BUILD_LOADER_EDB +static int load_image_file_head_edb(RGBA_Image *im, const char *file, const char *key); +static int +load_image_file_head_edb(RGBA_Image *im, const char *file, const char *key) +{ + int w, h, alpha, compression, size; + E_DB_File *db; + DATA32 *ret; + DATA32 *body; + DATA32 header[8]; + + if ((!file) || (!key)) return -1; + db = e_db_open_read((char *)file); + if (!db) return -1; + ret = e_db_data_get(db, (char *)key, &size); + if (!ret) + { + e_db_close(db); + return -1; + } + if (size < 32) + { + free(ret); + e_db_close(db); + return -1; + } + memcpy(header, ret, 32); +#ifdef WORDS_BIGENDIAN + { + int i; + + for (i = 0; i < 8; i++) SWAP32(header[i]); + } +#endif + if (header[0] != 0xac1dfeed) + { + free(ret); + e_db_close(db); + return -1; + } + w = header[1]; + h = header[2]; + alpha = header[3]; + compression = header[4]; + if ((w > 8192) || (h > 8192)) + { + free(ret); + e_db_close(db); + return -1; + } + if ((compression == 0) && (size < ((w * h * 4) + 32))) + { + free(ret); + e_db_close(db); + return -1; + } + if (alpha) im->flags |= RGBA_IMAGE_HAS_ALPHA; + if (!im->image) + im->image = image_surface_new(); + if (!im->image) + { + free(ret); + e_db_close(db); + return -1; + } + im->image->w = w; + im->image->h = h; + free(ret); + e_db_close(db); + return 1; +} + +static int load_image_file_data_edb(RGBA_Image *im, const char *file, const char *key); +static int +load_image_file_data_edb(RGBA_Image *im, const char *file, const char *key) +{ + int w, h, alpha, compression, size; + E_DB_File *db; + DATA32 *ret; + DATA32 *body; + DATA32 header[8]; + + if ((!file) || (!key)) return -1; + db = e_db_open_read((char *)file); + if (!db) return -1; + ret = e_db_data_get(db, (char *)key, &size); + if (!ret) + { + e_db_close(db); + return -1; + } + if (size < 32) + { + free(ret); + e_db_close(db); + return -1; + } + memcpy(header, ret, 32); +#ifdef WORDS_BIGENDIAN + { + int i; + + for (i = 0; i < 8; i++) SWAP32(header[i]); + } +#endif + if (header[0] != 0xac1dfeed) + { + free(ret); + e_db_close(db); + return -1; + } + w = header[1]; + h = header[2]; + alpha = header[3]; + compression = header[4]; + if ((w > 8192) || (h > 8192)) + { + free(ret); + e_db_close(db); + return -1; + } + if ((compression == 0) && (size < ((w * h * 4) + 32))) + { + free(ret); + e_db_close(db); + return -1; + } + if (alpha) im->flags |= RGBA_IMAGE_HAS_ALPHA; + if (!im->image) + im->image = image_surface_new(); + if (!im->image) + { + free(ret); + e_db_close(db); + return -1; + } + im->image->w = w; + im->image->h = h; + body = &(ret[8]); + image_surface_alloc(im->image); + if (!im->image->data) + { + free(ret); + e_db_close(db); + return -1; + } + if (!compression) + { +#ifdef WORDS_BIGENDIAN + { + int x; + + memcpy(im->image->data, body, w * h * sizeof(DATA32)); + for (x = 0; x < (w * h); x++) SWAP32(im->image->data[x]); + } +#else + memcpy(im->image->data, body, w * h * sizeof(DATA32)); +#endif + } + else + { + uLongf dlen; + + dlen = w * h * sizeof(DATA32); + uncompress((Bytef *)im->image->data, &dlen, (Bytef *)body, + (uLongf)(size - 32)); +#ifdef WORDS_BIGENDIAN + { + int x; + + for (x = 0; x < (w * h); x++) SWAP32(im->image->data[x]); + } +#endif + } + free(ret); + e_db_close(db); + return 1; +} +#endif + +#ifdef BUILD_LOADER_TEMPLATE +static int load_image_file_head_template(RGBA_Image *im, const char *file, const char *key); +static int +load_image_file_head_template(RGBA_Image *im, const char *file, const char *key) +{ + return -1; +} + +static int load_image_file_data_template(RGBA_Image *im, const char *file, const char *key); +static int +load_image_file_data_template(RGBA_Image *im, const char *file, const char *key) +{ + return -1; +} +#endif + +RGBA_Image * +load_image_from_file(const char *file, const char *key) +{ + RGBA_Image *im; + int ok; + DATA64 mod_time; + + mod_time = evas_file_modified_time(file); + im = image_find(file, key, mod_time); + if (im) + { + image_ref(im); + return im; + } + im = image_new(); + if (!im) return NULL; + ok = -1; +#ifdef BUILD_LOADER_PNG + if (ok == -1) + { + ok = load_image_file_head_png(im, file, key); + if (ok != -1) im->info.format = 1; + } +#endif +#ifdef BUILD_LOADER_JPEG + if (ok == -1) + { + ok = load_image_file_head_jpeg(im, file, key); + if (ok != -1) im->info.format = 2; + } +#endif +#ifdef BUILD_LOADER_EET + if (ok == -1) + { + ok = load_image_file_head_eet(im, file, key); + if (ok != -1) im->info.format = 3; + } +#endif +#ifdef BUILD_LOADER_EDB + if (ok == -1) + { + ok = load_image_file_head_edb(im, file, key); + if (ok != -1) im->info.format = 4; + } +#endif + if (ok == -1) + { + image_free(im); + return NULL; + } + im->timestamp = mod_time; + if (file) + im->info.file = strdup(file); + if (key) + im->info.key = strdup(key); + image_ref(im); + return im; +} + +void +load_image_data_from_file(RGBA_Image *im) +{ + int ok; + + if (im->image->data) return; + ok = -1; +#ifdef BUILD_LOADER_PNG + if (im->info.format == 1) + ok = load_image_file_data_png(im, im->info.file, im->info.key); +#endif +#ifdef BUILD_LOADER_JPEG + if (im->info.format == 2) + ok = load_image_file_data_jpeg(im, im->info.file, im->info.key); +#endif +#ifdef BUILD_LOADER_EET + if (im->info.format == 3) + ok = load_image_file_data_eet(im, im->info.file, im->info.key); +#endif +#ifdef BUILD_LOADER_EDB + if (im->info.format == 4) + ok = load_image_file_data_edb(im, im->info.file, im->info.key); +#endif + if (ok == -1) + { + image_surface_alloc(im->image); + if (!im->image->data) + { + const DATA32 pixel = 0xffffffff; + + im->image->w = 1; + im->image->h = 1; + im->image->data = (DATA32 *)&pixel; + im->image->no_free = 1; + } + } +} diff --git a/legacy/evas/src/lib/engines/common/evas_image_main.c b/legacy/evas/src/lib/engines/common/evas_image_main.c new file mode 100644 index 0000000000..b131856e65 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_image_main.c @@ -0,0 +1,376 @@ +#include "evas_common.h" + +static Evas_Hash * images = NULL; +static Evas_Object_List * cache = NULL; +static int cache_size = 0; +static int cache_usage = 0; + +#if 0 +int +image_debug_hash_cb(Evas_Hash *hash, const char *key, void *data, void *fdata) +{ + RGBA_Image *im; + + im = data; + printf(" [%i] %3ix%3i %6i %6i [%2x %2x] %i %s\n", + im->references, + im->image->w, im->image->h, + im->image->w * im->image->h * 4, + image_ram_usage(im), + im->flags & RGBA_IMAGE_IS_DIRTY, + im->flags & RGBA_IMAGE_INDEXED, + im->info.format, + im->info.file); +} + +static void +image_debug(void) +{ + Evas_Object_List *l; + + printf("active images:\n"); + evas_hash_foreach(images, image_debug_hash_cb, NULL); + printf("cache size: %i\n", cache_size); + printf("cache usage: %i\n", cache_usage); + printf("cached images:\n"); + for (l = cache; l; l = l->next) + { + RGBA_Image *im; + + im = l; + printf(" [%i] %3ix%3i %6i %6i [%2x %2x] %i %s\n", + im->references, + im->image->w, im->image->h, + im->image->w * im->image->h * 4, + image_ram_usage(im), + im->flags & RGBA_IMAGE_IS_DIRTY, + im->flags & RGBA_IMAGE_INDEXED, + im->info.format, + im->info.file); + } +} +#endif + +void +image_init(void) +{ +} + +RGBA_Surface * +image_surface_new(void) +{ + RGBA_Surface *is; + + is = calloc(1, sizeof(RGBA_Surface)); + return is; +} + +void +image_surface_free(RGBA_Surface *is) +{ + image_surface_dealloc(is); + free(is); +} + +void +image_surface_alloc(RGBA_Surface *is) +{ + is->data = malloc(is->w * is->h * sizeof(DATA32)); +} + +void +image_surface_dealloc(RGBA_Surface *is) +{ + if ((is->data) && (!is->no_free)) + { + free(is->data); + is->data = NULL; + } +} + +RGBA_Image * +image_create(int w, int h) +{ + RGBA_Image *im; + + im = image_new(); + if (!im) return NULL; + im->image = image_surface_new(); + if (!im->image) + { + image_free(im); + return NULL; + } + im->image->w = w; + im->image->h = h; + image_surface_alloc(im->image); + if (!im->image->data) + { + image_free(im); + return NULL; + } + im->flags = RGBA_IMAGE_IS_DIRTY; + im->references = 1; + return im; +} + +RGBA_Image * +image_new(void) +{ + RGBA_Image *im; + + im = calloc(1, sizeof(RGBA_Image)); + if (!im) return NULL; + im->flags = RGBA_IMAGE_NOTHING; + return im; +} + +void +image_free(RGBA_Image *im) +{ + int i; + + if (im->image) image_surface_free(im->image); + for (i = 0; i < im->mipmaps.num; i++) + { + if (im->mipmaps.levels[i]) + image_surface_free(im->mipmaps.levels[i]); + } + if (im->mipmaps.levels) free(im->mipmaps.levels); + if (im->info.file) free(im->info.file); + if (im->info.key) free(im->info.key); + if (im->info.comment) free(im->info.comment); + free(im); +} + +void +image_ref(RGBA_Image *im) +{ + im->references++; + if (im->references == 1) /* we were in cache - take us out */ + { + image_uncache(im); + image_store(im); + } +} + +void +image_unref(RGBA_Image *im) +{ + im->references--; + if (im->references <= 0) /* we were are now in cache - put us in */ + { + image_unstore(im); + if ((cache_size > 0) && + (!(im->flags & RGBA_IMAGE_IS_DIRTY))) + { + image_cache(im); + image_flush_cache(); + } + else + { + image_free(im); + } + } +} + +void +image_cache(RGBA_Image *im) +{ + int ram; + + if (im->flags & RGBA_IMAGE_INDEXED) return; + im->flags |= RGBA_IMAGE_INDEXED; + cache = evas_object_list_prepend(cache, im); + ram = image_ram_usage(im); + cache_usage += ram; + image_flush_cache(); +} + +void +image_uncache(RGBA_Image *im) +{ + int ram; + + if (!(im->flags & RGBA_IMAGE_INDEXED)) return; + im->flags &= ~RGBA_IMAGE_INDEXED; + cache = evas_object_list_remove(cache, im); + ram = image_ram_usage(im); + cache_usage -= ram; +} + +void +image_flush_cache(void) +{ + Evas_Object_List *l, *l_next; + + if (!cache) return; + if (cache_usage < cache_size) return; + + for (l = cache->last; l;) + { + RGBA_Image *im; + + l_next = l->prev; + im = (RGBA_Image *)l; + image_uncache(im); + image_free(im); + if (cache_usage <= cache_size) return; + l = l_next; + } +} + +void +image_set_cache(int size) +{ + cache_size = size; + image_flush_cache(); +} + +int +image_get_cache(void) +{ + return cache_size; +} + +void +image_store(RGBA_Image *im) +{ + char *key; + int l1, l2, l3; + char buf[256]; + + if (im->flags & RGBA_IMAGE_IS_DIRTY) return; + if (im->flags & RGBA_IMAGE_INDEXED) return; + if ((!im->info.file) && (!im->info.key)) return; + l1 = 0; + if (im->info.file) l1 = strlen(im->info.file); + l2 = 0; + if (im->info.key) l2 = strlen(im->info.key); + snprintf(buf, sizeof(buf), "%llx", im->timestamp); + l3 = strlen(buf); + key = malloc(l1 + 3 + l2 + 3 + l3 +1); + if (!key) return; + key[0] = 0; + if (im->info.file) strcpy(key, im->info.file); + strcat(key, "/:/"); + if (im->info.key) strcat(key, im->info.key); + strcat(key, "/:/"); + strcat(key, buf); + images = evas_hash_add(images, key, im); + free(key); + im->flags |= RGBA_IMAGE_INDEXED; +} + +void +image_unstore(RGBA_Image *im) +{ + char *key; + int l1, l2, l3; + char buf[256]; + + if (!(im->flags & RGBA_IMAGE_INDEXED)) return; + if ((!im->info.file) && (!im->info.key)) return; + l1 = 0; + if (im->info.file) l1 = strlen(im->info.file); + l2 = 0; + if (im->info.key) l2 = strlen(im->info.key); + snprintf(buf, sizeof(buf), "%llx", im->timestamp); + l3 = strlen(buf); + key = malloc(l1 + 3 + l2 + 3 + l3 +1); + if (!key) return; + key[0] = 0; + if (im->info.file) strcpy(key, im->info.file); + strcat(key, "/:/"); + if (im->info.key) strcat(key, im->info.key); + strcat(key, "/:/"); + strcat(key, buf); + images = evas_hash_del(images, key, im); + free(key); + im->flags &= ~RGBA_IMAGE_INDEXED; +} + + +RGBA_Image * +image_find(const char *filename, const char *key, DATA64 timestamp) +{ + Evas_Object_List *l; + RGBA_Image *im; + char *str; + int l1, l2, l3; + char buf[256]; + + if ((!filename) && (!key)) return NULL; + l1 = 0; + if (filename) l1 = strlen(filename); + l2 = 0; + if (key) l2 = strlen(key); + sprintf(buf, "%llx", timestamp); + l3 = strlen(buf); + str = malloc(l1 + 3 + l2 + 3 + l3 +1); + if (!str) return NULL; + str[0] = 0; + if (filename) strcpy(str, filename); + strcat(str, "/:/"); + if (key) strcat(str, key); + strcat(str, "/:/"); + strcat(str, buf); + im = evas_hash_find(images, str); + free(str); + if (im) return im; + + for (l = cache; l; l = l->next) + { + int ok; + + im = (RGBA_Image *)l; + ok = 0; + if ((filename) && (im->info.file) && + (!strcmp(filename, im->info.file))) + ok++; + if ((!filename) && (!im->info.file)) + ok++; + if ((key) && (im->info.key) && + (!strcmp(key, im->info.key))) + ok++; + if ((!key) && (!im->info.key)) + ok++; + if (im->timestamp == timestamp) + ok++; + if (ok >= 3) return im; + } + return NULL; +} + +int +image_ram_usage(RGBA_Image *im) +{ + int ram = 0; + int i; + + ram += sizeof(struct _RGBA_Image); + if (im->info.file) ram += strlen(im->info.file); + if (im->info.key) ram += strlen(im->info.key); + if (im->info.comment) ram += strlen(im->info.comment); + if ((im->image) && (im->image->data) && (!im->image->no_free)) + ram += im->image->w * im->image->h * sizeof(DATA32); + ram += im->mipmaps.num * sizeof(RGBA_Surface); + for (i = 0; i < im->mipmaps.num; i++) + { + if ((im->mipmaps.levels[i]) && (im->mipmaps.levels[i]->data) && (!im->mipmaps.levels[i]->no_free)) + ram += im->mipmaps.levels[i]->w * im->mipmaps.levels[i]->h * sizeof(DATA32); + } + return ram; +} + +void +image_dirty(RGBA_Image *im) +{ + int i; + + image_unstore(im); + im->flags |= RGBA_IMAGE_IS_DIRTY; + for (i = 0; i < im->mipmaps.num; i++) + image_surface_dealloc(im->mipmaps.levels[i]); +} + diff --git a/legacy/evas/src/lib/engines/common/evas_line_main.c b/legacy/evas/src/lib/engines/common/evas_line_main.c new file mode 100644 index 0000000000..283fdc7f82 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_line_main.c @@ -0,0 +1,230 @@ +#include "evas_common.h" + +extern DATA8 pow_lut[256][256]; + +void +line_init(void) +{ +} + +#define ABS(_x) (((_x) < 0) ? - (_x) : (_x)) +#define SGN(_x) (((_x) < 0) ? -1 : 1) + +void +line_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x1, int y1, int x2, int y2) +{ + int dx, dy, ddx, ddy, ax, ay, sx, sy, x, y, d; + DATA32 *im; + DATA32 col; + DATA32 *ptr; + int ext_x, ext_y, ext_w, ext_h; + int im_w, im_h; + int bx, by, bw, bh; + + /* FIXME: i didn't impliment bresnham to save cases in the code. should */ + /* impliment using bresnham. */ + + dx = x2 - x1; + dy = y2 - y1; + ax = ABS(dx) << 1; + ay = ABS(dy) << 1; + sx = SGN(dx); + sy = SGN(dy); + + if ((dx == 0) && (dy == 0)) + { + /* point draw */ + return; + } + im = dst->image->data; + im_w = dst->image->w; + im_h = dst->image->h; + col = dc->col.col; + + ext_x = 0; ext_y = 0; ext_w = im_w; ext_h = im_h; + if (dc->clip.use) + { + ext_x = dc->clip.x; + ext_y = dc->clip.y; + ext_w = dc->clip.w; + ext_h = dc->clip.h; + if (ext_x < 0) + { + ext_w += ext_x; + ext_x = 0; + } + if (ext_y < 0) + { + ext_h += ext_y; + ext_y = 0; + } + if ((ext_x + ext_w) > im_w) + ext_w = im_w - ext_x; + if ((ext_y + ext_h) > im_h) + ext_h = im_h - ext_y; + } + if (ext_w <= 0) return; + if (ext_h <= 0) return; + + if (x1 < x2) bx = x1; + else bx = x2; + if (y1 < y2) by = y1; + else by = y2; + + ddx = dx; if (ddx < 0) ddx = -ddx; + ddy = dy; if (ddy < 0) ddy = -ddy; + + bw = ddx + 1; + bh = ddy + 1; + + if (!(RECTS_INTERSECT(ext_x, ext_y, ext_w, ext_h, bx, by, bw, bh))) return; + + x = x1; + y = y1; + if (dst->flags & RGBA_IMAGE_HAS_ALPHA) + { + if (ax > ay) + { + d = ay - (ax >> 1); + for (;;) + { + if ((y >= ext_y) && (y < (ext_y + ext_h)) && + (x >= ext_x) && (x < (ext_x + ext_w))) + { + ptr = im + (y * im_w) + x; + { + DATA32 __blend_tmp; + DATA8 __blend_a; + + __blend_a = pow_lut[A_VAL(&(col))][A_VAL(ptr)]; + + BLEND_COLOR(__blend_a, R_VAL(ptr), + R_VAL(&(col)), R_VAL(ptr), + __blend_tmp); + BLEND_COLOR(__blend_a, G_VAL(ptr), + G_VAL(&(col)), G_VAL(ptr), + __blend_tmp); + BLEND_COLOR(__blend_a, B_VAL(ptr), + B_VAL(&(col)), B_VAL(ptr), + __blend_tmp); + A_VAL(ptr) = A_VAL(ptr) + ((A_VAL(&(col)) * (255 - A_VAL(ptr))) / 255); + } + } + if (x == x2) return; + if (d >= 0) + { + y += sy; + d -= ax; + } + x += sx; + d += ay; + } + } + else + { + d = ax - (ay >> 1); + for (;;) + { + if ((y >= ext_y) && (y < (ext_y + ext_h)) && + (x >= ext_x) && (x < (ext_x + ext_w))) + { + ptr = im + (y * im_w) + x; + { + DATA32 __blend_tmp; + DATA8 __blend_a; + + __blend_a = pow_lut[A_VAL(&(col))][A_VAL(ptr)]; + + BLEND_COLOR(__blend_a, R_VAL(ptr), + R_VAL(&(col)), R_VAL(ptr), + __blend_tmp); + BLEND_COLOR(__blend_a, G_VAL(ptr), + G_VAL(&(col)), G_VAL(ptr), + __blend_tmp); + BLEND_COLOR(__blend_a, B_VAL(ptr), + B_VAL(&(col)), B_VAL(ptr), + __blend_tmp); + A_VAL(ptr) = A_VAL(ptr) + ((A_VAL(&(col)) * (255 - A_VAL(ptr))) / 255); + } + } + if (y == y2) return; + if (d >= 0) + { + x += sx; + d -= ay; + } + y += sy; + d += ax; + } + } + } + else + { + if (ax > ay) + { + d = ay - (ax >> 1); + for (;;) + { + if ((y >= ext_y) && (y < (ext_y + ext_h)) && + (x >= ext_x) && (x < (ext_x + ext_w))) + { + ptr = im + (y * im_w) + x; + { + DATA32 __blend_tmp; + + BLEND_COLOR(A_VAL(&(col)), R_VAL(ptr), + R_VAL(&(col)), R_VAL(ptr), + __blend_tmp); + BLEND_COLOR(A_VAL(&(col)), G_VAL(ptr), + G_VAL(&(col)), G_VAL(ptr), + __blend_tmp); + BLEND_COLOR(A_VAL(&(col)), B_VAL(ptr), + B_VAL(&(col)), B_VAL(ptr), + __blend_tmp); + } + } + if (x == x2) return; + if (d >= 0) + { + y += sy; + d -= ax; + } + x += sx; + d += ay; + } + } + else + { + d = ax - (ay >> 1); + for (;;) + { + if ((y >= ext_y) && (y < (ext_y + ext_h)) && + (x >= ext_x) && (x < (ext_x + ext_w))) + { + ptr = im + (y * im_w) + x; + { + DATA32 __blend_tmp; + + BLEND_COLOR(A_VAL(&(col)), R_VAL(ptr), + R_VAL(&(col)), R_VAL(ptr), + __blend_tmp); + BLEND_COLOR(A_VAL(&(col)), G_VAL(ptr), + G_VAL(&(col)), G_VAL(ptr), + __blend_tmp); + BLEND_COLOR(A_VAL(&(col)), B_VAL(ptr), + B_VAL(&(col)), B_VAL(ptr), + __blend_tmp); + } + } + if (y == y2) return; + if (d >= 0) + { + x += sx; + d -= ay; + } + y += sy; + d += ax; + } + } + } +} diff --git a/legacy/evas/src/lib/engines/common/evas_polygon_main.c b/legacy/evas/src/lib/engines/common/evas_polygon_main.c new file mode 100644 index 0000000000..1701e9c859 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_polygon_main.c @@ -0,0 +1,255 @@ +#include "evas_common.h" + +#include + +typedef struct _RGBA_Span RGBA_Span; +typedef struct _RGBA_Edge RGBA_Edge; +typedef struct _RGBA_Vertex RGBA_Vertex; + +struct _RGBA_Span +{ + Evas_Object_List _list_data; + int x, y, w; +}; + +struct _RGBA_Edge +{ + double x, dx; + int i; +}; + +struct _RGBA_Vertex +{ + double x, y; + int i; +}; + +void +polygon_init(void) +{ +} + +RGBA_Polygon_Point * +polygon_point_add(RGBA_Polygon_Point *points, int x, int y) +{ + RGBA_Polygon_Point *pt; + + pt = malloc(sizeof(RGBA_Polygon_Point)); + if (!pt) return points; + pt->x = x; + pt->y = y; + points = evas_object_list_append(points, pt); + return points; +} + +RGBA_Polygon_Point * +polygon_points_clear(RGBA_Polygon_Point *points) +{ + if (points) + { + while (points) + { + RGBA_Polygon_Point *old_p; + + old_p = points; + points = evas_object_list_remove(points, points); + free(old_p); + } + } + return NULL; +} + +static int +polygon_point_sorter(const void *a, const void *b) +{ + RGBA_Vertex *p, *q; + + p = (RGBA_Vertex *)a; + q = (RGBA_Vertex *)b; + if (p->y <= q->y) return -1; + return 1; +} + +static int +polygon_edge_sorter(const void *a, const void *b) +{ + RGBA_Edge *p, *q; + + p = (RGBA_Edge *)a; + q = (RGBA_Edge *)b; + if (p->x <= q->x) return -1; + return 1; +} + +void +polygon_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Polygon_Point *points) +{ + Gfx_Func_Blend_Color_Dst func; + RGBA_Polygon_Point *pt; + RGBA_Vertex *point; + RGBA_Edge *edges; + Evas_Object_List *spans, *l; + int num_active_edges; + int n; + int i, j, k; + int y0, y1, y; + int ext_x, ext_y, ext_w, ext_h; + int *sorted_index; + + ext_x = 0; + ext_y = 0; + ext_w = dst->image->w; + ext_h = dst->image->h; + if (dc->clip.use) + { + if (dc->clip.x > ext_x) + { + ext_w += ext_x - dc->clip.x; + ext_x = dc->clip.x; + } + if ((ext_x + ext_w) > (dc->clip.x + dc->clip.w)) + { + ext_w = (dc->clip.x + dc->clip.w) - ext_x; + } + if (dc->clip.y > ext_y) + { + ext_h += ext_y - dc->clip.y; + ext_y = dc->clip.y; + } + if ((ext_y + ext_h) > (dc->clip.y + dc->clip.h)) + { + ext_h = (dc->clip.y + dc->clip.h) - ext_y; + } + } + if ((ext_w <= 0) || (ext_h <= 0)) return; + + cpu_end_opt(); + + n = 0; for (l = (Evas_Object_List *)points; l; l = l->next) n++; + if (n < 3) return; + edges = malloc(sizeof(RGBA_Edge) * n); + if (!edges) return; + point = malloc(sizeof(RGBA_Vertex) * n); + if (!point) + { + free(edges); + return; + } + sorted_index = malloc(sizeof(int) * n); + if (!sorted_index) + { + free(edges); + free(point); + return; + } + + k = 0; + for (l = (Evas_Object_List *)points; l; l = l->next) + { + pt = (RGBA_Polygon_Point *)l; + point[k].x = pt->x; + point[k].y = pt->y; + point[k].i = k; + k++; + } + qsort(point, n, sizeof(RGBA_Vertex), polygon_point_sorter); + for (k = 0; k < n; k++) sorted_index[k] = point[k].i; + k = 0; + for (l = (Evas_Object_List *)points; l; l = l->next) + { + pt = (RGBA_Polygon_Point *)l; + point[k].x = pt->x; + point[k].y = pt->y; + point[k].i = k; + k++; + } + + y0 = MAX(ext_y, ceil(point[sorted_index[0]].y - 0.5)); + y1 = MIN(ext_y + ext_h - 1, floor(point[sorted_index[n - 1]].y - 0.5)); + + k = 0; + num_active_edges = 0; + spans = NULL; + + for (y = y0; y <= y1; y++) + { + for (; (k < n) && (point[sorted_index[k]].y <= ((double)y + 0.5)); k++) + { + i = sorted_index[k]; + + if (i > 0) j = i - 1; + else j = n - 1; + if (point[j].y <= ((double)y - 0.5)) + { + POLY_EDGE_DEL(j) + } + else if (point[j].y > ((double)y + 0.5)) + { + POLY_EDGE_ADD(j, y) + } + if (i < (n - 1)) j = i + 1; + else j = 0; + if (point[j].y <= ((double)y - 0.5)) + { + POLY_EDGE_DEL(i) + } + else if (point[j].y > ((double)y + 0.5)) + { + POLY_EDGE_ADD(i, y) + } + } + + qsort(edges, num_active_edges, sizeof(RGBA_Edge), polygon_edge_sorter); + + for (j = 0; j < num_active_edges; j += 2) + { + int x0, x1; + + x0 = ceil(edges[j].x - 0.5); + if (j < (num_active_edges - 1)) + x1 = floor(edges[j + 1].x - 0.5); + else + x1 = x0; + if ((x1 >= ext_x) && (x0 < (ext_x + ext_w)) && (x0 <= x1)) + { + RGBA_Span *span; + + if (x0 < ext_x) x0 = ext_x; + if (x1 >= (ext_x + ext_w)) x1 = ext_x + ext_w - 1; + span = malloc(sizeof(RGBA_Span)); + spans = evas_object_list_append(spans, span); + span->y = y; + span->x = x0; + span->w = (x1 - x0) + 1; + } + edges[j].x += edges[j].dx; + edges[j + 1].x += edges[j + 1].dx; + } + } + + free(edges); + free(point); + free(sorted_index); + + func = draw_func_blend_color_get(dc->col.col, dst, 0); + if (spans) + { + for (l = spans; l; l = l->next) + { + RGBA_Span *span; + DATA32 *ptr; + + span = (RGBA_Span *)l; + ptr = dst->image->data + (span->y * (dst->image->w)) + span->x; + func(dc->col.col, ptr, span->w); + } + while (spans) + { + RGBA_Span *span; + + span = (RGBA_Span *)spans; + spans = evas_object_list_remove(spans, spans); + free(span); + } + } +} diff --git a/legacy/evas/src/lib/engines/common/evas_rectangle_main.c b/legacy/evas/src/lib/engines/common/evas_rectangle_main.c new file mode 100644 index 0000000000..a54a53dee7 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_rectangle_main.c @@ -0,0 +1,73 @@ +#include "evas_common.h" + +static void rectangle_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h); + +void +rectangle_init(void) +{ +} + +void +rectangle_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h) +{ + int c, cx, cy, cw, ch; + Cutout_Rect *rects, *r; + Evas_Object_List *l; + /* handle cutouts here! */ + + if ((w <= 0) || (h <= 0)) return; + if (!(RECTS_INTERSECT(x, y, w, h, 0, 0, dst->image->w, dst->image->h))) + return; + /* no cutouts - cut right to the chase */ + if (!dc->cutout.rects) + { + rectangle_draw_internal(dst, dc, x, y, w, h); + return; + } + /* save out clip info */ + c = dc->clip.use; cx = dc->clip.x; cy = dc->clip.y; cw = dc->clip.w; ch = dc->clip.h; + draw_context_clip_clip(dc, 0, 0, dst->image->w, dst->image->h); + draw_context_clip_clip(dc, x, y, w, h); + /* our clip is 0 size.. abort */ + if ((dc->clip.w <= 0) || (dc->clip.h <= 0)) + { + dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; + return; + } + rects = draw_context_apply_cutouts(dc); + for (l = (Evas_Object_List *)rects; l; l = l->next) + { + r = (Cutout_Rect *)l; + draw_context_set_clip(dc, r->x, r->y, r->w, r->h); + rectangle_draw_internal(dst, dc, x, y, w, h); + } + draw_context_apply_free_cutouts(rects); + /* restore clip info */ + dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; +} + +static void +rectangle_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h) +{ + Gfx_Func_Blend_Color_Dst func; + int yy; + DATA32 *ptr; + + if ((w <= 0) || (h <= 0)) return; + RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, dst->image->w, dst->image->h); + if ((w <= 0) || (h <= 0)) return; + + if (dc->clip.use) + { + RECTS_CLIP_TO_RECT(x, y, w, h, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); + } + if ((w <= 0) || (h <= 0)) return; + + func = draw_func_blend_color_get(dc->col.col, dst, w); + ptr = dst->image->data + (y * dst->image->w) + x; + for (yy = 0; yy < h; yy++) + { + func(dc->col.col, ptr, w); + ptr += dst->image->w; + } +} diff --git a/legacy/evas/src/lib/engines/common/evas_scale_main.c b/legacy/evas/src/lib/engines/common/evas_scale_main.c new file mode 100644 index 0000000000..2f3a2df4da --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_scale_main.c @@ -0,0 +1,6 @@ +#include "evas_common.h" + +void +scale_init(void) +{ +} diff --git a/legacy/evas/src/lib/engines/common/evas_scale_sample.c b/legacy/evas/src/lib/engines/common/evas_scale_sample.c new file mode 100644 index 0000000000..5b15fdea5c --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_scale_sample.c @@ -0,0 +1,409 @@ +#include "evas_common.h" + +void scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h); + +#ifndef BUILD_SCALE_SMOOTH +#ifdef BUILD_SCALE_SAMPLE +void +scale_rgba_in_to_out_clip_smooth(RGBA_Image *src, RGBA_Image *dst, + RGBA_Draw_Context *dc, + int src_region_x, int src_region_y, + int src_region_w, int src_region_h, + int dst_region_x, int dst_region_y, + int dst_region_w, int dst_region_h) +{ + scale_rgba_in_to_out_clip_sample(src, dst, dc, + src_region_x, src_region_y, + src_region_w, src_region_h, + dst_region_x, dst_region_y, + dst_region_w, dst_region_h); +} +#endif +#endif + +#ifdef BUILD_SCALE_SAMPLE +void +scale_rgba_in_to_out_clip_sample(RGBA_Image *src, RGBA_Image *dst, + RGBA_Draw_Context *dc, + int src_region_x, int src_region_y, + int src_region_w, int src_region_h, + int dst_region_x, int dst_region_y, + int dst_region_w, int dst_region_h) +{ + int c, cx, cy, cw, ch; + Cutout_Rect *rects, *r; + Evas_Object_List *l; + /* handle cutouts here! */ + + if ((dst_region_w <= 0) || (dst_region_h <= 0)) return; + if (!(RECTS_INTERSECT(dst_region_x, dst_region_y, dst_region_w, dst_region_h, 0, 0, dst->image->w, dst->image->h))) + return; + /* no cutouts - cut right to the chase */ + if (!dc->cutout.rects) + { + scale_rgba_in_to_out_clip_sample_internal(src, dst, dc, + src_region_x, src_region_y, + src_region_w, src_region_h, + dst_region_x, dst_region_y, + dst_region_w, dst_region_h); + return; + } + /* save out clip info */ + c = dc->clip.use; cx = dc->clip.x; cy = dc->clip.y; cw = dc->clip.w; ch = dc->clip.h; + draw_context_clip_clip(dc, 0, 0, dst->image->w, dst->image->h); + draw_context_clip_clip(dc, dst_region_x, dst_region_y, dst_region_w, dst_region_h); + /* our clip is 0 size.. abort */ + if ((dc->clip.w <= 0) || (dc->clip.h <= 0)) + { + dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; + return; + } + rects = draw_context_apply_cutouts(dc); + for (l = (Evas_Object_List *)rects; l; l = l->next) + { + r = (Cutout_Rect *)l; + draw_context_set_clip(dc, r->x, r->y, r->w, r->h); + scale_rgba_in_to_out_clip_sample_internal(src, dst, dc, + src_region_x, src_region_y, + src_region_w, src_region_h, + dst_region_x, dst_region_y, + dst_region_w, dst_region_h); + + } + draw_context_apply_free_cutouts(rects); + /* restore clip info */ + dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; +} + +void +scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst, + RGBA_Draw_Context *dc, + int src_region_x, int src_region_y, + int src_region_w, int src_region_h, + int dst_region_x, int dst_region_y, + int dst_region_w, int dst_region_h) +{ + int x, y; + int *lin_ptr; + DATA32 *buf, *dptr; + DATA32 **row_ptr; + DATA32 *ptr, *dst_ptr, *src_data, *dst_data; + int dst_jump; + int dst_clip_x, dst_clip_y, dst_clip_w, dst_clip_h; + int src_w, src_h, dst_w, dst_h; + + if (!(RECTS_INTERSECT(dst_region_x, dst_region_y, dst_region_w, dst_region_h, 0, 0, dst->image->w, dst->image->h))) + return; + if (!(RECTS_INTERSECT(src_region_x, src_region_y, src_region_w, src_region_h, 0, 0, src->image->w, src->image->h))) + return; + + src_w = src->image->w; + src_h = src->image->h; + dst_w = dst->image->w; + dst_h = dst->image->h; + + src_data = src->image->data; + dst_data = dst->image->data; + + if (dc->clip.use) + { + dst_clip_x = dc->clip.x; + dst_clip_y = dc->clip.y; + dst_clip_w = dc->clip.w; + dst_clip_h = dc->clip.h; + if (dst_clip_x < 0) + { + dst_clip_w += dst_clip_x; + dst_clip_x = 0; + } + if (dst_clip_y < 0) + { + dst_clip_h += dst_clip_y; + dst_clip_y = 0; + } + if ((dst_clip_x + dst_clip_w) > dst_w) + dst_clip_w = dst_w - dst_clip_x; + if ((dst_clip_y + dst_clip_h) > dst_h) + dst_clip_h = dst_h - dst_clip_y; + } + else + { + dst_clip_x = 0; + dst_clip_y = 0; + dst_clip_w = dst_w; + dst_clip_h = dst_h; + } + + if (dst_clip_x < dst_region_x) + { + dst_clip_w += dst_clip_x - dst_region_x; + dst_clip_x = dst_region_x; + } + if ((dst_clip_x + dst_clip_w) > (dst_region_x + dst_region_w)) + dst_clip_w = dst_region_x + dst_region_w - dst_clip_x; + if (dst_clip_y < dst_region_y) + { + dst_clip_h += dst_clip_y - dst_region_y; + dst_clip_y = dst_region_y; + } + if ((dst_clip_y + dst_clip_h) > (dst_region_y + dst_region_h)) + dst_clip_h = dst_region_y + dst_region_h - dst_clip_y; + + if ((src_region_w <= 0) || (src_region_h <= 0) || + (dst_region_w <= 0) || (dst_region_h <= 0) || + (dst_clip_w <= 0) || (dst_clip_h <= 0)) + return; + + /* sanitise x */ + if (src_region_x < 0) + { + dst_region_x -= (src_region_x * dst_region_w) / src_region_w; + dst_region_w += (src_region_x * dst_region_w) / src_region_w; + src_region_w += src_region_x; + src_region_x = 0; + } + if (src_region_x >= src_w) return; + if ((src_region_x + src_region_w) > src_w) + { + dst_region_w = (dst_region_w * (src_w - src_region_x)) / (src_region_w); + src_region_w = src_w - src_region_x; + } + if (dst_region_w <= 0) return; + if (src_region_w <= 0) return; + if (dst_clip_x < 0) + { + dst_clip_w += dst_clip_x; + dst_clip_x = 0; + } + if (dst_clip_w <= 0) return; + if (dst_clip_x >= dst_w) return; + if (dst_clip_x < dst_region_x) + { + dst_clip_w += (dst_clip_x - dst_region_x); + dst_clip_x = dst_region_x; + } + if ((dst_clip_x + dst_clip_w) > dst_w) + { + dst_clip_w = dst_w - dst_clip_x; + } + if (dst_clip_w <= 0) return; + + /* sanitise y */ + if (src_region_y < 0) + { + dst_region_y -= (src_region_y * dst_region_h) / src_region_h; + dst_region_h += (src_region_y * dst_region_h) / src_region_h; + src_region_h += src_region_y; + src_region_y = 0; + } + if (src_region_y >= src_h) return; + if ((src_region_y + src_region_h) > src_h) + { + dst_region_h = (dst_region_h * (src_h - src_region_y)) / (src_region_h); + src_region_h = src_h - src_region_y; + } + if (dst_region_h <= 0) return; + if (src_region_h <= 0) return; + if (dst_clip_y < 0) + { + dst_clip_h += dst_clip_y; + dst_clip_y = 0; + } + if (dst_clip_h <= 0) return; + if (dst_clip_y >= dst_h) return; + if (dst_clip_y < dst_region_y) + { + dst_clip_h += (dst_clip_y - dst_region_y); + dst_clip_y = dst_region_y; + } + if ((dst_clip_y + dst_clip_h) > dst_h) + { + dst_clip_h = dst_h - dst_clip_y; + } + if (dst_clip_h <= 0) return; + + /* allocate scale lookup tables */ + lin_ptr = malloc(dst_clip_w * sizeof(int)); + if (!lin_ptr) goto no_lin_ptr; + row_ptr = malloc(dst_clip_h * sizeof(DATA32 *)); + if (!row_ptr) goto no_row_ptr; + + /* figure out dst jump */ + dst_jump = dst_w - dst_clip_w; + + /* figure out dest start ptr */ + dst_ptr = dst_data + dst_clip_x + (dst_clip_y * dst_w); + + if (dc->mod.use) + { + Gfx_Func_Blend_Src_Cmod_Dst func; + + func = draw_func_blend_cmod_get(src, dst, dst_clip_w); + /* if 1:1 scale */ + + if ((dst_region_w == src_region_w) && + (dst_region_h == src_region_h)) + { + ptr = src_data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x; + for (y = 0; y < dst_clip_h; y++) + { + /* * blend here [clip_w *] ptr -> dst_ptr * */ + func(ptr, dst_ptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + ptr += src_w; + dst_ptr += dst_w; + } + } + else + { + /* a scanline buffer */ + buf = malloc(dst_clip_w * sizeof(DATA32)); + if (!buf) goto no_buf; + + /* fill scale tables */ + for (x = 0; x < dst_clip_w; x++) + lin_ptr[x] = (((x + dst_clip_x - dst_region_x) * src_region_w) / dst_region_w) + src_region_x; + for (y = 0; y < dst_clip_h; y++) + row_ptr[y] = src_data + (((((y + dst_clip_y - dst_region_y) * src_region_h) / dst_region_h) + + src_region_y) * src_w); + /* scale to dst */ + dptr = dst_ptr; + for (y = 0; y < dst_clip_h; y++) + { + dst_ptr = buf; + for (x = 0; x < dst_clip_w; x++) + { + ptr = row_ptr[y] + lin_ptr[x]; + *dst_ptr = *ptr; + dst_ptr++; + } + /* * blend here [clip_w *] buf -> dptr * */ + func(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + dptr += dst_w; + } + free(buf); + } + } + else if (dc->mul.use) + { + Gfx_Func_Blend_Src_Mul_Dst func; + + func = draw_func_blend_mul_get(src, dc->mul.col, dst, dst_clip_w); + /* if 1:1 scale */ + if ((dst_region_w == src_region_w) && + (dst_region_h == src_region_h)) + { + ptr = src_data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x; + for (y = 0; y < dst_clip_h; y++) + { + /* * blend here [clip_w *] ptr -> dst_ptr * */ + func(ptr, dst_ptr, dst_clip_w, dc->mul.col); + ptr += src_w; + dst_ptr += dst_w; + } + } + else + { + /* a scanline buffer */ + buf = malloc(dst_clip_w * sizeof(DATA32)); + if (!buf) goto no_buf; + + /* fill scale tables */ + for (x = 0; x < dst_clip_w; x++) + lin_ptr[x] = (((x + dst_clip_x - dst_region_x) * src_region_w) / dst_region_w) + src_region_x; + for (y = 0; y < dst_clip_h; y++) + row_ptr[y] = src_data + (((((y + dst_clip_y - dst_region_y) * src_region_h) / dst_region_h) + + src_region_y) * src_w); + /* scale to dst */ + dptr = dst_ptr; + for (y = 0; y < dst_clip_h; y++) + { + dst_ptr = buf; + for (x = 0; x < dst_clip_w; x++) + { + ptr = row_ptr[y] + lin_ptr[x]; + *dst_ptr = *ptr; + dst_ptr++; + } + /* * blend here [clip_w *] buf -> dptr * */ + func(buf, dptr, dst_clip_w, dc->mul.col); + dptr += dst_w; + } + free(buf); + } + } + else + { + Gfx_Func_Blend_Src_Dst func; + + func = draw_func_blend_get(src, dst, dst_clip_w); + /* if 1:1 scale */ + if ((dst_region_w == src_region_w) && + (dst_region_h == src_region_h)) + { + ptr = src_data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x; + for (y = 0; y < dst_clip_h; y++) + { + /* * blend here [clip_w *] ptr -> dst_ptr * */ + func(ptr, dst_ptr, dst_clip_w); + ptr += src_w; + dst_ptr += dst_w; + } + } + else + { + /* a scanline buffer */ + buf = malloc(dst_clip_w * sizeof(DATA32)); + if (!buf) goto no_buf; + + /* fill scale tables */ + for (x = 0; x < dst_clip_w; x++) + lin_ptr[x] = (((x + dst_clip_x - dst_region_x) * src_region_w) / dst_region_w) + src_region_x; + for (y = 0; y < dst_clip_h; y++) + row_ptr[y] = src_data + (((((y + dst_clip_y - dst_region_y) * src_region_h) / dst_region_h) + + src_region_y) * src_w); + /* scale to dst */ + dptr = dst_ptr; + for (y = 0; y < dst_clip_h; y++) + { + dst_ptr = buf; + for (x = 0; x < dst_clip_w; x++) + { + ptr = row_ptr[y] + lin_ptr[x]; + *dst_ptr = *ptr; + dst_ptr++; + } + /* * blend here [clip_w *] buf -> dptr * */ + func(buf, dptr, dst_clip_w); + dptr += dst_w; + } + free(buf); + } + } + + no_buf: + /* free scale tables */ + free(row_ptr); + no_row_ptr: + free(lin_ptr); + + //_WIN32_WCE + no_lin_ptr: ; +} +#else +#ifdef BUILD_SCALE_SMOOTH +void +scale_rgba_in_to_out_clip_sample(RGBA_Image *src, RGBA_Image *dst, + RGBA_Draw_Context *dc, + int src_region_x, int src_region_y, + int src_region_w, int src_region_h, + int dst_region_x, int dst_region_y, + int dst_region_w, int dst_region_h) +{ + scale_rgba_in_to_out_clip_smooth(src, dst, dc, + src_region_x, src_region_y, + src_region_w, src_region_h, + dst_region_x, dst_region_y, + dst_region_w, dst_region_h); +} +#endif +#endif diff --git a/legacy/evas/src/lib/engines/common/evas_scale_smooth.c b/legacy/evas/src/lib/engines/common/evas_scale_smooth.c new file mode 100644 index 0000000000..0b1bebb075 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_scale_smooth.c @@ -0,0 +1,740 @@ +#include "evas_common.h" +#ifdef BUILD_MMX +#include "evas_mmx.h" +#endif + +static DATA32 **scale_calc_y_points(DATA32 *src, int sw, int sh, int dh); +static int *scale_calc_x_points(int sw, int dw); +static int *scale_calc_a_points(int s, int d); + +static DATA32 ** +scale_calc_y_points(DATA32 *src, int sw, int sh, int dh) +{ + DATA32 **p; + int i, val, inc; + + p = malloc((dh + 1) * sizeof(DATA32 *)); + val = 0; + inc = (sh << 16) / dh; + for (i = 0; i < dh; i++) + { + p[i] = src + ((val >> 16) * sw); + val += inc; + } + p[i] = p[i - 1]; + return p; +} + +static int * +scale_calc_x_points(int sw, int dw) +{ + int *p; + int i, val, inc; + + p = malloc((dw + 1) * sizeof(int)); + val = 0; + inc = (sw << 16) / dw; + for (i = 0; i < dw; i++) + { + p[i] = val >> 16; + val += inc; + } + p[i] = p[i - 1]; + return p; +} + +static int * +scale_calc_a_points(int s, int d) +{ + int *p; + int i, val, inc; + + p = malloc(d * sizeof(int)); + + if (d >= s) + { + val = 0; + inc = (s << 16) / d; + for (i = 0; i < d; i++) + { + p[i] = (val >> 8) - ((val >> 8) & 0xffffff00); + if ((val >> 16) >= (s - 1)) p[i] = 0; + val += inc; + } + } + else + { + int ap, Cp; + + val = 0; + inc = (s << 16) / d; + Cp = ((d << 14) / s) + 1; + for (i = 0; i < d; i++) + { + ap = ((0x100 - ((val >> 8) & 0xff)) * Cp) >> 8; + p[i] = ap | (Cp << 16); + val += inc; + } + } +// sleep(1); + return p; +} + +#ifdef BUILD_SCALE_SMOOTH +#ifdef BUILD_C +void +scale_rgba_mipmap_down_2x2_c(DATA32 *src, DATA32 *dst, int src_w, int src_h) +{ + int x, y, dst_w, dst_h; + DATA32 *src_ptr, *src_ptr2, *dst_ptr; + + dst_w = src_w >> 1; + dst_h = src_h >> 1; + + if (dst_w < 1) dst_w = 1; + if (dst_h < 1) dst_h = 1; + + src_ptr = src; + src_ptr2 = src + src_w; + dst_ptr = dst; + for (y = 0; y < dst_h; y++) + { + src_ptr = src + (y * src_w * 2); + src_ptr2 = src_ptr + src_w; + for (x = 0; x < dst_w; x++) + { + R_VAL(dst_ptr) = (R_VAL(src_ptr) + R_VAL(src_ptr + 1) + R_VAL(src_ptr2) + R_VAL(src_ptr2 + 1)) >> 2; + G_VAL(dst_ptr) = (G_VAL(src_ptr) + G_VAL(src_ptr + 1) + G_VAL(src_ptr2) + G_VAL(src_ptr2 + 1)) >> 2; + B_VAL(dst_ptr) = (B_VAL(src_ptr) + B_VAL(src_ptr + 1) + B_VAL(src_ptr2) + B_VAL(src_ptr2 + 1)) >> 2; + A_VAL(dst_ptr) = (A_VAL(src_ptr) + A_VAL(src_ptr + 1) + A_VAL(src_ptr2) + A_VAL(src_ptr2 + 1)) >> 2; + + src_ptr+=2; + src_ptr2+=2; + dst_ptr++; + } + } +} +#endif +#endif + +#ifdef BUILD_SCALE_SMOOTH +#ifdef BUILD_C +void +scale_rgba_mipmap_down_2x1_c(DATA32 *src, DATA32 *dst, int src_w, int src_h) +{ + int x, y, dst_w, dst_h; + DATA32 *src_ptr, *dst_ptr; + + dst_w = src_w >> 1; + dst_h = src_h >> 1; + + if (dst_w < 1) dst_w = 1; + if (dst_h < 1) dst_h = 1; + + src_ptr = src; + dst_ptr = dst; + for (y = 0; y < dst_h; y++) + { + src_ptr = src + (y * src_w * 2); + for (x = 0; x < dst_w; x++) + { + R_VAL(dst_ptr) = (R_VAL(src_ptr) + R_VAL(src_ptr + 1)) >> 1; + G_VAL(dst_ptr) = (G_VAL(src_ptr) + G_VAL(src_ptr + 1)) >> 1; + B_VAL(dst_ptr) = (B_VAL(src_ptr) + B_VAL(src_ptr + 1)) >> 1; + A_VAL(dst_ptr) = (A_VAL(src_ptr) + A_VAL(src_ptr + 1)) >> 1; + + src_ptr+=2; + dst_ptr++; + } + } +} +#endif +#endif + +#ifdef BUILD_SCALE_SMOOTH +#ifdef BUILD_C +void +scale_rgba_mipmap_down_1x2_c(DATA32 *src, DATA32 *dst, int src_w, int src_h) +{ + int x, y, dst_w, dst_h; + DATA32 *src_ptr, *src_ptr2, *dst_ptr; + + dst_w = src_w >> 1; + dst_h = src_h >> 1; + + if (dst_w < 1) dst_w = 1; + if (dst_h < 1) dst_h = 1; + + src_ptr = src; + src_ptr2 = src + src_w; + dst_ptr = dst; + for (y = 0; y < dst_h; y++) + { + src_ptr = src + (y * src_w * 2); + src_ptr2 = src_ptr + src_w; + for (x = 0; x < dst_w; x++) + { + R_VAL(dst_ptr) = (R_VAL(src_ptr) + R_VAL(src_ptr2)) >> 1; + G_VAL(dst_ptr) = (G_VAL(src_ptr) + G_VAL(src_ptr2)) >> 1; + B_VAL(dst_ptr) = (B_VAL(src_ptr) + B_VAL(src_ptr2)) >> 1; + A_VAL(dst_ptr) = (A_VAL(src_ptr) + A_VAL(src_ptr2)) >> 1; + + src_ptr+=2; + src_ptr2+=2; + dst_ptr++; + } + } +} +#endif +#endif + +#ifdef BUILD_SCALE_SMOOTH +#ifdef BUILD_C +void +scale_rgb_mipmap_down_2x2_c(DATA32 *src, DATA32 *dst, int src_w, int src_h) +{ + int x, y, dst_w, dst_h; + DATA32 *src_ptr, *src_ptr2, *dst_ptr; + + dst_w = src_w >> 1; + dst_h = src_h >> 1; + + if (dst_w < 1) dst_w = 1; + if (dst_h < 1) dst_h = 1; + + src_ptr = src; + src_ptr2 = src + src_w; + dst_ptr = dst; + for (y = 0; y < dst_h; y++) + { + for (x = 0; x < dst_w; x++) + { + R_VAL(dst_ptr) = (R_VAL(src_ptr) + R_VAL(src_ptr + 1) + R_VAL(src_ptr2) + R_VAL(src_ptr2 + 1)) >> 2; + G_VAL(dst_ptr) = (G_VAL(src_ptr) + G_VAL(src_ptr + 1) + G_VAL(src_ptr2) + G_VAL(src_ptr2 + 1)) >> 2; + B_VAL(dst_ptr) = (B_VAL(src_ptr) + B_VAL(src_ptr + 1) + B_VAL(src_ptr2) + B_VAL(src_ptr2 + 1)) >> 2; + A_VAL(dst_ptr) = 0xff; + + src_ptr+=2; + src_ptr2+=2; + dst_ptr++; + } + src_ptr += src_w; + src_ptr2 += src_w; + } +} +#endif +#endif + +#ifdef BUILD_SCALE_SMOOTH +#ifdef BUILD_C +void +scale_rgb_mipmap_down_2x1_c(DATA32 *src, DATA32 *dst, int src_w, int src_h) +{ + int x, y, dst_w, dst_h; + DATA32 *src_ptr, *dst_ptr; + + dst_w = src_w >> 1; + dst_h = src_h >> 1; + + if (dst_w < 1) dst_w = 1; + if (dst_h < 1) dst_h = 1; + + src_ptr = src; + dst_ptr = dst; + for (y = 0; y < dst_h; y++) + { + for (x = 0; x < dst_w; x++) + { + R_VAL(dst_ptr) = (R_VAL(src_ptr) + R_VAL(src_ptr + 1)) >> 1; + G_VAL(dst_ptr) = (G_VAL(src_ptr) + G_VAL(src_ptr + 1)) >> 1; + B_VAL(dst_ptr) = (B_VAL(src_ptr) + B_VAL(src_ptr + 1)) >> 1; + A_VAL(dst_ptr) = 0xff; + + src_ptr+=2; + dst_ptr++; + } + src_ptr += src_w; + } +} +#endif +#endif + +#ifdef BUILD_SCALE_SMOOTH +#ifdef BUILD_C +void +scale_rgb_mipmap_down_1x2_c(DATA32 *src, DATA32 *dst, int src_w, int src_h) +{ + int x, y, dst_w, dst_h; + DATA32 *src_ptr, *src_ptr2, *dst_ptr; + + dst_w = src_w >> 1; + dst_h = src_h >> 1; + + if (dst_w < 1) dst_w = 1; + if (dst_h < 1) dst_h = 1; + + src_ptr = src; + src_ptr2 = src + src_w; + dst_ptr = dst; + for (y = 0; y < dst_h; y++) + { + for (x = 0; x < dst_w; x++) + { + R_VAL(dst_ptr) = (R_VAL(src_ptr) + R_VAL(src_ptr2)) >> 1; + G_VAL(dst_ptr) = (G_VAL(src_ptr) + G_VAL(src_ptr2)) >> 1; + B_VAL(dst_ptr) = (B_VAL(src_ptr) + B_VAL(src_ptr2)) >> 1; + A_VAL(dst_ptr) = 0xff; + + src_ptr+=2; + src_ptr2+=2; + dst_ptr++; + } + src_ptr += src_w; + src_ptr2 += src_w; + } +} +#endif +#endif + +#ifdef BUILD_SCALE_SMOOTH +#ifdef BUILD_MMX +void +scale_rgba_mipmap_down_2x2_mmx(DATA32 *src, DATA32 *dst, int src_w, int src_h) +{ + int x, y, dst_w, dst_h; + DATA32 *src_ptr, *src_ptr2, *dst_ptr; + + dst_w = src_w >> 1; + dst_h = src_h >> 1; + + if (dst_w < 1) dst_w = 1; + if (dst_h < 1) dst_h = 1; + + src_ptr = src; + src_ptr2 = src + src_w; + dst_ptr = dst; + for (y = 0; y < dst_h; y++) + { + src_ptr = src + (y * src_w * 2); + src_ptr2 = src_ptr + src_w; + for (x = 0; x < dst_w; x++) + { + punpcklbw_m2r(src_ptr[0], mm0); + punpcklbw_m2r(src_ptr[1], mm1); + punpcklbw_m2r(src_ptr2[0], mm2); + punpcklbw_m2r(src_ptr2[1], mm3); + psrlw_i2r(8, mm0); + psrlw_i2r(8, mm1); + psrlw_i2r(8, mm2); + psrlw_i2r(8, mm3); + paddw_r2r(mm1, mm0); + paddw_r2r(mm2, mm0); + paddw_r2r(mm3, mm0); + psrlw_i2r(2, mm0); + packuswb_r2r(mm0, mm0); + movd_r2m(mm0, dst_ptr[0]); + + src_ptr+=2; + src_ptr2+=2; + dst_ptr++; + } + } +} +#endif +#endif + +#ifdef BUILD_SCALE_SMOOTH +#ifdef BUILD_MMX +void +scale_rgba_mipmap_down_2x1_mmx(DATA32 *src, DATA32 *dst, int src_w, int src_h) +{ + int x, y, dst_w, dst_h; + DATA32 *src_ptr, *dst_ptr; + + dst_w = src_w >> 1; + dst_h = src_h >> 1; + + if (dst_w < 1) dst_w = 1; + if (dst_h < 1) dst_h = 1; + + src_ptr = src; + dst_ptr = dst; + for (y = 0; y < dst_h; y++) + { + src_ptr = src + (y * src_w * 2); + for (x = 0; x < dst_w; x++) + { + punpcklbw_m2r(src_ptr[0], mm0); + punpcklbw_m2r(src_ptr[1], mm1); + psrlw_i2r(8, mm0); + psrlw_i2r(8, mm1); + paddw_r2r(mm1, mm0); + psrlw_i2r(1, mm0); + packuswb_r2r(mm0, mm0); + movd_r2m(mm0, dst_ptr[0]); + + src_ptr+=2; + dst_ptr++; + } + } +} +#endif +#endif + +#ifdef BUILD_SCALE_SMOOTH +#ifdef BUILD_MMX +void +scale_rgba_mipmap_down_1x2_mmx(DATA32 *src, DATA32 *dst, int src_w, int src_h) +{ + int x, y, dst_w, dst_h; + DATA32 *src_ptr, *src_ptr2, *dst_ptr; + + dst_w = src_w >> 1; + dst_h = src_h >> 1; + + if (dst_w < 1) dst_w = 1; + if (dst_h < 1) dst_h = 1; + + src_ptr = src; + src_ptr2 = src + src_w; + dst_ptr = dst; + for (y = 0; y < dst_h; y++) + { + src_ptr = src + (y * src_w * 2); + src_ptr2 = src_ptr + src_w; + for (x = 0; x < dst_w; x++) + { + punpcklbw_m2r(src_ptr[0], mm0); + punpcklbw_m2r(src_ptr2[0], mm1); + psrlw_i2r(8, mm0); + psrlw_i2r(8, mm1); + paddw_r2r(mm1, mm0); + psrlw_i2r(1, mm0); + packuswb_r2r(mm0, mm0); + movd_r2m(mm0, dst_ptr[0]); + + src_ptr+=2; + src_ptr2+=2; + dst_ptr++; + } + } +} +#endif +#endif + +#ifdef BUILD_SCALE_SMOOTH +void +scale_rgba_gen_mipmap_table(RGBA_Image *src) +{ + int w, h, i; + + w = src->image->w; + h = src->image->h; + do + { + w >>= 1; + h >>= 1; + if (w < 1) w = 1; + if (h < 1) h = 1; + src->mipmaps.num++; + } + while ((w > 1) && (h > 1)); + if (src->mipmaps.num <= 0) return; + src->mipmaps.levels = malloc(sizeof(RGBA_Surface) * src->mipmaps.num); + w = src->image->w; + h = src->image->h; + for (i = 0; i < src->mipmaps.num; i++) + { + w >>= 1; + h >>= 1; + if (w < 1) w = 1; + if (h < 1) h = 1; + src->mipmaps.levels[i] = image_surface_new(); + src->mipmaps.levels[i]->w = w; + src->mipmaps.levels[i]->h = h; + } +} +#endif + +#ifdef BUILD_SCALE_SMOOTH +void +scale_rgba_gen_mipmap_level(RGBA_Image *src, int l) +{ + RGBA_Surface *s_srf, *d_srf; +#ifdef BUILD_MMX + int mmx, sse, sse2; +#endif + + if (src->mipmaps.levels[l]->data) return; + image_surface_alloc(src->mipmaps.levels[l]); + if (l > 0) + scale_rgba_gen_mipmap_level(src, l - 1); + if (l > 0) + s_srf = src->mipmaps.levels[l - 1]; + else + s_srf = src->image; + d_srf = src->mipmaps.levels[l]; +#ifdef BUILD_MMX + cpu_can_do(&mmx, &sse, &sse2); + if (mmx) + { + if ((s_srf->w > 1) && (s_srf->h > 1)) + scale_rgba_mipmap_down_2x2_mmx(s_srf->data, d_srf->data, s_srf->w, s_srf->h); + else if ((s_srf->w > 1) && (s_srf->h <= 1)) + scale_rgba_mipmap_down_2x1_mmx(s_srf->data, d_srf->data, s_srf->w, s_srf->h); + else if ((s_srf->w <= 1) && (s_srf->h > 1)) + scale_rgba_mipmap_down_1x2_mmx(s_srf->data, d_srf->data, s_srf->w, s_srf->h); + } + else + { +#endif +#ifdef BUILD_C + if (src->flags & RGBA_IMAGE_HAS_ALPHA) + { + if ((s_srf->w > 1) && (s_srf->h > 1)) + scale_rgba_mipmap_down_2x2_c(s_srf->data, d_srf->data, s_srf->w, s_srf->h); + else if ((s_srf->w > 1) && (s_srf->h <= 1)) + scale_rgba_mipmap_down_2x1_c(s_srf->data, d_srf->data, s_srf->w, s_srf->h); + else if ((s_srf->w <= 1) && (s_srf->h > 1)) + scale_rgba_mipmap_down_1x2_c(s_srf->data, d_srf->data, s_srf->w, s_srf->h); + } + else + { + if ((s_srf->w > 1) && (s_srf->h > 1)) + scale_rgb_mipmap_down_2x2_c(s_srf->data, d_srf->data, s_srf->w, s_srf->h); + else if ((s_srf->w > 1) && (s_srf->h <= 1)) + scale_rgb_mipmap_down_2x1_c(s_srf->data, d_srf->data, s_srf->w, s_srf->h); + else if ((s_srf->w <= 1) && (s_srf->h > 1)) + scale_rgb_mipmap_down_1x2_c(s_srf->data, d_srf->data, s_srf->w, s_srf->h); + } +#endif +#ifdef BUILD_MMX + } +#endif +} +#endif + +#ifdef BUILD_SCALE_SMOOTH +#ifdef BUILD_SCALE_TRILINEAR +int +scale_rgba_get_mipmap_surfaces(RGBA_Image *src, int src_region_w, int src_region_h, int dst_region_w, int dst_region_h, RGBA_Surface **srf1, RGBA_Surface **srf2) +{ + int scale_x, scale_y; + int l, l1, l2; + int mix, pw, ph; + int w, h; + int dw, dh; + + scale_x = (dst_region_w << 16) / src_region_w; + scale_y = (dst_region_h << 16) / src_region_h; + + mix = 0; + l1 = -1; + l2 = -1; + w = src->image->w; + h = src->image->h; + dw = (dst_region_w * src->image->w) / src_region_w; + dh = (dst_region_h * src->image->h) / src_region_h; + + /* if we prefer smoothened use smaller scaling axis */ + if (scale_x < scale_y) + /* use x axis */ + { + for (l = 0; l < src->mipmaps.num; l++) + { + pw = w; + w >>=1; + if (dw > w) + { + mix = ((dw - w) << 8) / (pw - w); + l1 = l - 1; + l2 = l; + break; + } + } + } + else + /* use y axis */ + { + for (l = 0; l < src->mipmaps.num; l++) + { + ph = h; + h >>=1; + if (dh > h) + { + mix = ((dh - h) << 8) / (ph - h); + l1 = l - 1; + l2 = l; + break; + } + } + } + if (l1 == -1) *srf1 = src->image; + else + { + scale_rgba_gen_mipmap_level(src, l1); + *srf1 = src->mipmaps.levels[l1]; + } + if (l2 == -1) *srf2 = src->image; + else + { + scale_rgba_gen_mipmap_level(src, l2); + *srf2 = src->mipmaps.levels[l2]; + } + return mix; +} +#else +RGBA_Surface * +scale_rgba_get_mipmap_surface(RGBA_Image *src, int src_region_w, int src_region_h, int dst_region_w, int dst_region_h) +{ + int scale_x, scale_y; + int l; + int pw, ph; + int w, h; + int dw, dh; + RGBA_Surface *srf; + + scale_x = (dst_region_w << 16) / src_region_w; + scale_y = (dst_region_h << 16) / src_region_h; + + w = src->image->w; + h = src->image->h; + dw = (dst_region_w * src->image->w) / src_region_w; + dh = (dst_region_h * src->image->h) / src_region_h; + + /* if we prefer smoothened use larger scaling axis */ + if (scale_x > scale_y) + /* use x axis */ + { + for (l = 0; l < src->mipmaps.num; l++) + { + pw = w; + w >>=1; + if (dw > w) break; + } + } + else + /* use y axis */ + { + for (l = 0; l < src->mipmaps.num; l++) + { + ph = h; + h >>=1; + if (dh > h) break; + } + } + l--; + srf = src->image; + if (l == -1) srf = src->image; + else + { + scale_rgba_gen_mipmap_level(src, l); + srf = src->mipmaps.levels[l]; + } + return srf; +} +#endif +#endif + +#ifdef BUILD_SCALE_SMOOTH +# ifdef BUILD_MMX +# undef SCALE_FUNC +# define SCALE_FUNC scale_rgba_in_to_out_clip_smooth_mmx +# undef SCALE_USING_MMX +# define SCALE_USING_MMX +# include "evas_scale_smooth_scaler.c" +# endif +# ifdef BUILD_C +# undef SCALE_FUNC +# define SCALE_FUNC scale_rgba_in_to_out_clip_smooth_c +# undef SCALE_USING_MMX +# include "evas_scale_smooth_scaler.c" +# endif +void +scale_rgba_in_to_out_clip_smooth(RGBA_Image *src, RGBA_Image *dst, + RGBA_Draw_Context *dc, + int src_region_x, int src_region_y, + int src_region_w, int src_region_h, + int dst_region_x, int dst_region_y, + int dst_region_w, int dst_region_h) +{ +# ifdef BUILD_MMX +# ifndef BUILD_SCALE_TRILINEAR + int mmx, sse, sse2; +# endif +# endif + int c, cx, cy, cw, ch; + Cutout_Rect *rects, *r; + Evas_Object_List *l; + /* handle cutouts here! */ + + if ((dst_region_w <= 0) || (dst_region_h <= 0)) return; + if (!(RECTS_INTERSECT(dst_region_x, dst_region_y, dst_region_w, dst_region_h, 0, 0, dst->image->w, dst->image->h))) + return; +# ifdef BUILD_MMX +# ifndef BUILD_SCALE_TRILINEAR + cpu_can_do(&mmx, &sse, &sse2); +# endif +# endif + /* no cutouts - cut right to the chase */ + if (!dc->cutout.rects) + { +# ifdef BUILD_MMX +# ifndef BUILD_SCALE_TRILINEAR + if (mmx) + scale_rgba_in_to_out_clip_smooth_mmx(src, dst, dc, + src_region_x, src_region_y, + src_region_w, src_region_h, + dst_region_x, dst_region_y, + dst_region_w, dst_region_h); + else +# endif +# endif +# ifdef BUILD_C + scale_rgba_in_to_out_clip_smooth_c(src, dst, dc, + src_region_x, src_region_y, + src_region_w, src_region_h, + dst_region_x, dst_region_y, + dst_region_w, dst_region_h); +# endif + return; + } + /* save out clip info */ + c = dc->clip.use; cx = dc->clip.x; cy = dc->clip.y; cw = dc->clip.w; ch = dc->clip.h; + draw_context_clip_clip(dc, 0, 0, dst->image->w, dst->image->h); + draw_context_clip_clip(dc, dst_region_x, dst_region_y, dst_region_w, dst_region_h); + /* our clip is 0 size.. abort */ + if ((dc->clip.w <= 0) || (dc->clip.h <= 0)) + { + dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; + return; + } + rects = draw_context_apply_cutouts(dc); + for (l = (Evas_Object_List *)rects; l; l = l->next) + { + r = (Cutout_Rect *)l; + draw_context_set_clip(dc, r->x, r->y, r->w, r->h); +# ifdef BUILD_MMX +# ifndef BUILD_SCALE_TRILINEAR + if (mmx) + scale_rgba_in_to_out_clip_smooth_mmx(src, dst, dc, + src_region_x, src_region_y, + src_region_w, src_region_h, + dst_region_x, dst_region_y, + dst_region_w, dst_region_h); + else +# endif +# endif +# ifdef BUILD_C + scale_rgba_in_to_out_clip_smooth_c(src, dst, dc, + src_region_x, src_region_y, + src_region_w, src_region_h, + dst_region_x, dst_region_y, + dst_region_w, dst_region_h); +# endif + } + draw_context_apply_free_cutouts(rects); + /* restore clip info */ + dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch; +} +#endif diff --git a/legacy/evas/src/lib/engines/common/evas_scale_smooth_scaler.c b/legacy/evas/src/lib/engines/common/evas_scale_smooth_scaler.c new file mode 100644 index 0000000000..1cdab4960f --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_scale_smooth_scaler.c @@ -0,0 +1,1753 @@ +void +SCALE_FUNC(RGBA_Image *src, RGBA_Image *dst, + RGBA_Draw_Context *dc, + int src_region_x, int src_region_y, + int src_region_w, int src_region_h, + int dst_region_x, int dst_region_y, + int dst_region_w, int dst_region_h) +{ + int divx, divy; + int x, y; + int *lin_ptr, *lin2_ptr; + int *interp_x, *interp_y; + int *sample_x, *sample_y; + char *iterate_x, *iterate_y; + DATA32 *buf, *dptr; + DATA32 **row_ptr, **row2_ptr; + DATA32 *ptr, *dst_ptr, *dst_data, *ptr2, *ptr3, *ptr4; + int dst_jump; + int dst_clip_x, dst_clip_y, dst_clip_w, dst_clip_h; + int src_w, src_h, dst_w, dst_h; + + if (!(RECTS_INTERSECT(dst_region_x, dst_region_y, dst_region_w, dst_region_h, 0, 0, dst->image->w, dst->image->h))) + return; + if (!(RECTS_INTERSECT(src_region_x, src_region_y, src_region_w, src_region_h, 0, 0, src->image->w, src->image->h))) + return; + + src_w = src->image->w; + src_h = src->image->h; + dst_w = dst->image->w; + dst_h = dst->image->h; + + dst_data = dst->image->data; + + if (dc->clip.use) + { + dst_clip_x = dc->clip.x; + dst_clip_y = dc->clip.y; + dst_clip_w = dc->clip.w; + dst_clip_h = dc->clip.h; + if (dst_clip_x < 0) + { + dst_clip_w += dst_clip_x; + dst_clip_x = 0; + } + if (dst_clip_y < 0) + { + dst_clip_h += dst_clip_y; + dst_clip_y = 0; + } + if ((dst_clip_w <= 0) || (dst_clip_h <= 0)) return; + if ((dst_clip_x + dst_clip_w) > dst_w) dst_clip_w = dst_w - dst_clip_x; + if ((dst_clip_y + dst_clip_h) > dst_h) dst_clip_h = dst_h - dst_clip_y; + } + else + { + dst_clip_x = 0; + dst_clip_y = 0; + dst_clip_w = dst_w; + dst_clip_h = dst_h; + } + + if (dst_clip_x < dst_region_x) + { + dst_clip_w += dst_clip_x - dst_region_x; + dst_clip_x = dst_region_x; + } + if ((dst_clip_x + dst_clip_w) > (dst_region_x + dst_region_w)) + dst_clip_w = dst_region_x + dst_region_w - dst_clip_x; + if (dst_clip_y < dst_region_y) + { + dst_clip_h += dst_clip_y - dst_region_y; + dst_clip_y = dst_region_y; + } + if ((dst_clip_y + dst_clip_h) > (dst_region_y + dst_region_h)) + dst_clip_h = dst_region_y + dst_region_h - dst_clip_y; + + if ((src_region_w <= 0) || (src_region_h <= 0) || + (dst_region_w <= 0) || (dst_region_h <= 0) || + (dst_clip_w <= 0) || (dst_clip_h <= 0)) + return; + + /* sanitise x */ + if (src_region_x < 0) + { + dst_region_x -= (src_region_x * dst_region_w) / src_region_w; + dst_region_w += (src_region_x * dst_region_w) / src_region_w; + src_region_w += src_region_x; + src_region_x = 0; + } + if (src_region_x >= src_w) return; + if ((src_region_x + src_region_w) > src_w) + { + dst_region_w = (dst_region_w * (src_w - src_region_x)) / (src_region_w); + src_region_w = src_w - src_region_x; + } + if (dst_region_w <= 0) return; + if (src_region_w <= 0) return; + if (dst_clip_x < 0) + { + dst_clip_w += dst_clip_x; + dst_clip_x = 0; + } + if (dst_clip_w <= 0) return; + if (dst_clip_x >= dst_w) return; + if (dst_clip_x < dst_region_x) + { + dst_clip_w += (dst_clip_x - dst_region_x); + dst_clip_x = dst_region_x; + } + if ((dst_clip_x + dst_clip_w) > dst_w) + { + dst_clip_w = dst_w - dst_clip_x; + } + if (dst_clip_w <= 0) return; + + /* sanitise y */ + if (src_region_y < 0) + { + dst_region_y -= (src_region_y * dst_region_h) / src_region_h; + dst_region_h += (src_region_y * dst_region_h) / src_region_h; + src_region_h += src_region_y; + src_region_y = 0; + } + if (src_region_y >= src_h) return; + if ((src_region_y + src_region_h) > src_h) + { + dst_region_h = (dst_region_h * (src_h - src_region_y)) / (src_region_h); + src_region_h = src_h - src_region_y; + } + if (dst_region_h <= 0) return; + if (src_region_h <= 0) return; + if (dst_clip_y < 0) + { + dst_clip_h += dst_clip_y; + dst_clip_y = 0; + } + if (dst_clip_h <= 0) return; + if (dst_clip_y >= dst_h) return; + if (dst_clip_y < dst_region_y) + { + dst_clip_h += (dst_clip_y - dst_region_y); + dst_clip_y = dst_region_y; + } + if ((dst_clip_y + dst_clip_h) > dst_h) + { + dst_clip_h = dst_h - dst_clip_y; + } + if (dst_clip_h <= 0) return; + + lin_ptr = malloc(dst_clip_w * sizeof(int)); + if (!lin_ptr) goto no_lin_ptr; + row_ptr = malloc(dst_clip_h * sizeof(DATA32 *)); + if (!row_ptr) goto no_row_ptr; + lin2_ptr = malloc(dst_clip_w * sizeof(int)); + if (!lin2_ptr) goto no_lin2_ptr; + row2_ptr = malloc(dst_clip_h * sizeof(DATA32 *)); + if (!row2_ptr) goto no_row2_ptr; + interp_x = malloc(dst_clip_w * sizeof(int)); + if (!interp_x) goto no_interp_x; + interp_y = malloc(dst_clip_h * sizeof(int)); + if (!interp_y) goto no_interp_y; + sample_x = malloc(dst_clip_w * sizeof(int) * 3); + if (!sample_x) goto no_sample_x; + sample_y = malloc(dst_clip_h * sizeof(int) * 3); + if (!sample_y) goto no_sample_y; + iterate_x = malloc(dst_clip_w * sizeof(char)); + if (!iterate_x) goto no_iterate_x; + iterate_y = malloc(dst_clip_h * sizeof(char)); + if (!iterate_y) goto no_iterate_y; + + /* figure out dst jump */ + dst_jump = dst_w - dst_clip_w; + + /* figure out dest start ptr */ + dst_ptr = dst_data + dst_clip_x + (dst_clip_y * dst_w); + +/* FIXME: + * + * things to do later for speedups: + * + * break upscale into 3 cases (as listed below - up:up, 1:up, up:1) + * + * break downscale into more cases (as listed below) + * + * roll func (blend/copy/cultiply/cmod) code into inner loop of scaler. + * (578 fps vs 550 in mmx upscale in evas demo - this means probably + * a good 10-15% speedup over the func call, but means massively larger + * code) + * + * anything involving downscaling has no mmx equivalent code and maybe the + * C could do with a little work. + * + * --------------------------------------------------------------------------- + * + * (1 = no scaling (1:1 ratio), + = scale up, - = scale down) + * (* == fully optimised mmx, # = fully optimised C) + * + * h:v mmx C + * + * 1:1 * # + * + * +:+ * # + * 1:+ * # + * +:1 * # + * + * 1:- + * -:1 + * +:- + * -:+ + * -:- + * + */ + + /* if 1:1 scale */ + if ((dst_region_w == src_region_w) && + (dst_region_h == src_region_h)) + { + DATA32 *src_data; + + src_data = src->image->data; + ptr = src_data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x; + if (dc->mod.use) + { + Gfx_Func_Blend_Src_Cmod_Dst func; + + func = draw_func_blend_cmod_get(src, dst, dst_clip_w); + for (y = 0; y < dst_clip_h; y++) + { + func(ptr, dst_ptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + ptr += src_w; + dst_ptr += dst_w; + } + } + else if (dc->mul.use) + { + Gfx_Func_Blend_Src_Mul_Dst func; + + func = draw_func_blend_mul_get(src, dc->mul.col, dst, dst_clip_w); + for (y = 0; y < dst_clip_h; y++) + { + func(ptr, dst_ptr, dst_clip_w, dc->mul.col); + ptr += src_w; + dst_ptr += dst_w; + } + } + else + { + Gfx_Func_Blend_Src_Dst func; + + func = draw_func_blend_get(src, dst, dst_clip_w); + for (y = 0; y < dst_clip_h; y++) + { + func(ptr, dst_ptr, dst_clip_w); + ptr += src_w; + dst_ptr += dst_w; + } + } + } + else + { + Gfx_Func_Blend_Src_Cmod_Dst func_cmod; + Gfx_Func_Blend_Src_Mul_Dst func_mul; + Gfx_Func_Blend_Src_Dst func; + + /* a scanline buffer */ + buf = malloc(dst_clip_w * sizeof(DATA32)); + if (!buf) goto no_buf; + + func = draw_func_blend_get (src, dst, dst_clip_w); + func_cmod = draw_func_blend_cmod_get (src, dst, dst_clip_w); + func_mul = draw_func_blend_mul_get (src, dc->mul.col, dst, dst_clip_w); + + /* scaling up only - dont need anything except original */ + if ((dst_region_w >= src_region_w) && (dst_region_h >= src_region_h)) + { + DATA32 *src_data; + + src_data = src->image->data; + + for (x = 0; x < dst_clip_w; x++) + { + if (src_region_w > 1) + { + lin_ptr[x] = (((x + dst_clip_x - dst_region_x) * + (src_region_w)) / dst_region_w); + interp_x[x] = ((((x + dst_clip_x - dst_region_x) * + (src_region_w)) << 8) / dst_region_w) - + (lin_ptr[x] << 8); + lin_ptr[x] += src_region_x; + } + else + { + lin_ptr[x] = (((x + dst_clip_x - dst_region_x) * + src_region_w) / dst_region_w); + interp_x[x] = 0; + lin_ptr[x] += src_region_x; + } + } + for (y = 0; y < dst_clip_h; y++) + { + int pos; + + if (src_region_h > 1) + { + pos = (((y + dst_clip_y - dst_region_y) * + (src_region_h)) / dst_region_h); + row_ptr[y] = src_data + ((pos + src_region_y) * src_w); + interp_y[y] = ((((y + dst_clip_y - dst_region_y) * + (src_region_h)) << 8) / dst_region_h) - + (pos << 8); + } + else + { + pos = (((y + dst_clip_y - dst_region_y) * + src_region_h) / dst_region_h); + row_ptr[y] = src_data + ((pos + src_region_y) * src_w); + interp_y[y] = 0; + } + } + + dptr = dst_ptr; + +#ifndef SCALE_USING_MMX + if (src->flags & RGBA_IMAGE_HAS_ALPHA) + { + for (y = 0; y < dst_clip_h; y++) + { + int i, j, k, l, px; + DATA8 p1r, p1g, p1b, p1a; + DATA8 p2r, p2g, p2b, p2a; + DATA32 *lptr1, *lptr2; + + lptr1 = row_ptr[y]; + if ((lptr1 + src_w) >= + (src->image->data + + (src->image->w * + src->image->h))) + lptr2 = lptr1; + else + lptr2 = lptr1 + src_w; + + k = interp_y[y]; + l = 256 - k; + + dst_ptr = buf; + + px = -1; + + for (x = 0; x < dst_clip_w; x++) + { + i = interp_x[x]; + j = 256 - i; + + if (px != lin_ptr[x]) + { + px = lin_ptr[x]; + + ptr = lptr1 + lin_ptr[x]; + ptr3 = lptr2 + lin_ptr[x]; + if (lin_ptr[x] >= (src->image->w - 1)) + { + ptr2 = ptr; + ptr4 = ptr3; + } + else + { + ptr2 = ptr + 1; + ptr4 = ptr3 + 1; + } + + if (A_VAL(ptr) | + A_VAL(ptr2) | + A_VAL(ptr3) | + A_VAL(ptr4)) + { + p1r = INTERP_2(R_VAL(ptr), R_VAL(ptr3), k, l); + p1g = INTERP_2(G_VAL(ptr), G_VAL(ptr3), k, l); + p1b = INTERP_2(B_VAL(ptr), B_VAL(ptr3), k, l); + p1a = INTERP_2(A_VAL(ptr), A_VAL(ptr3), k, l); + p2r = INTERP_2(R_VAL(ptr2), R_VAL(ptr4), k, l); + p2g = INTERP_2(G_VAL(ptr2), G_VAL(ptr4), k, l); + p2b = INTERP_2(B_VAL(ptr2), B_VAL(ptr4), k, l); + p2a = INTERP_2(A_VAL(ptr2), A_VAL(ptr4), k, l); + } + else + { + p1a = 0; + p2a = 0; + } + } + if (p1a | p2a) + { + R_VAL(dst_ptr) = INTERP_2(p1r, p2r, i, j); + G_VAL(dst_ptr) = INTERP_2(p1g, p2g, i, j); + B_VAL(dst_ptr) = INTERP_2(p1b, p2b, i, j); + A_VAL(dst_ptr) = INTERP_2(p1a, p2a, i, j); + } + else + A_VAL(dst_ptr) = 0; + + dst_ptr++; + } + /* * blend here [clip_w *] buf -> dptr * */ + if (dc->mod.use) + func_cmod(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + else if (dc->mul.use) + func_mul(buf, dptr, dst_clip_w, dc->mul.col); + else + func(buf, dptr, dst_clip_w); + dptr += dst_w; + } + } + else + { + for (y = 0; y < dst_clip_h; y++) + { + int i, j, k, l, px; + DATA8 p1r, p1g, p1b; + DATA8 p2r, p2g, p2b; + DATA32 *lptr1, *lptr2; + + lptr1 = row_ptr[y]; + if ((lptr1 + src_w) >= + (src->image->data + + (src->image->w * + src->image->h))) + lptr2 = lptr1; + else + lptr2 = lptr1 + src_w; + + k = interp_y[y]; + l = 256 - k; + + dst_ptr = buf; + + px = -1; + + for (x = 0; x < dst_clip_w; x++) + { + i = interp_x[x]; + j = 256 - i; + + if (px != lin_ptr[x]) + { + px = lin_ptr[x]; + + ptr = lptr1 + lin_ptr[x]; + ptr3 = lptr2 + lin_ptr[x]; + if (lin_ptr[x] >= (src->image->w - 1)) + { + ptr2 = ptr; + ptr4 = ptr3; + } + else + { + ptr2 = ptr + 1; + ptr4 = ptr3 + 1; + } + + p1r = INTERP_2(R_VAL(ptr), R_VAL(ptr3), k, l); + p1g = INTERP_2(G_VAL(ptr), G_VAL(ptr3), k, l); + p1b = INTERP_2(B_VAL(ptr), B_VAL(ptr3), k, l); + p2r = INTERP_2(R_VAL(ptr2), R_VAL(ptr4), k, l); + p2g = INTERP_2(G_VAL(ptr2), G_VAL(ptr4), k, l); + p2b = INTERP_2(B_VAL(ptr2), B_VAL(ptr4), k, l); + } + R_VAL(dst_ptr) = INTERP_2(p1r, p2r, i, j); + G_VAL(dst_ptr) = INTERP_2(p1g, p2g, i, j); + B_VAL(dst_ptr) = INTERP_2(p1b, p2b, i, j); + A_VAL(dst_ptr) = 0xff; + + dst_ptr++; + } + /* * blend here [clip_w *] buf -> dptr * */ + if (dc->mod.use) + func_cmod(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + else if (dc->mul.use) + func_mul(buf, dptr, dst_clip_w, dc->mul.col); + else + func(buf, dptr, dst_clip_w); + dptr += dst_w; + } + } +#else + pxor_r2r(mm7, mm7); + for (y = 0; y < dst_clip_h; y++) + { + DATA32 *lptr1, *lptr2; + int i, j, k, l, px; + + lptr1 = row_ptr[y]; + if ((lptr1 + src_w) >= + (src->image->data + + (src->image->w * + src->image->h))) + lptr2 = lptr1; + else + lptr2 = lptr1 + src_w; + + k = interp_y[y]; + l = 256 - k; + + dst_ptr = buf; + + /* mm5 = k */ + /* mm6 = l */ + movd_m2r(k, mm5); + punpcklwd_r2r(mm5, mm5); + punpckldq_r2r(mm5, mm5); + movd_m2r(l, mm6); + punpcklwd_r2r(mm6, mm6); + punpckldq_r2r(mm6, mm6); + + px = -1; + + for (x = 0; x < dst_clip_w; x++) + { + i = interp_x[x]; + j = 256 - i; + + /* if we have a new pair of horizontal pixels to */ + /* interpolate between them vertically */ + if (px != lin_ptr[x]) + { + px = lin_ptr[x]; + + ptr = lptr1 + lin_ptr[x]; + ptr3 = lptr2 + lin_ptr[x]; + if (lin_ptr[x] >= (src->image->w - 1)) + { + ptr2 = ptr; + ptr4 = ptr3; + } + else + { + ptr2 = ptr + 1; + ptr4 = ptr3 + 1; + } + + /* left edge */ + movd_m2r(ptr[0], mm0); + punpcklbw_r2r(mm7, mm0); + pmullw_r2r(mm6, mm0); + + movd_m2r(ptr3[0], mm1); + punpcklbw_r2r(mm7, mm1); + pmullw_r2r(mm5, mm1); + + paddw_r2r(mm1, mm0); + psrlw_i2r(8, mm0); + /* mm0 = left edge */ + + /* right edge */ + movd_m2r(ptr2[0], mm1); + punpcklbw_r2r(mm7, mm1); + pmullw_r2r(mm6, mm1); + + movd_m2r(ptr4[0], mm2); + punpcklbw_r2r(mm7, mm2); + pmullw_r2r(mm5, mm2); + + paddw_r2r(mm2, mm1); + psrlw_i2r(8, mm1); + /* mm1 = right edge */ + } + + movq_r2r(mm1, mm4); + + movd_m2r(i, mm2); + punpcklwd_r2r(mm2, mm2); + punpckldq_r2r(mm2, mm2); + pmullw_r2r(mm2, mm4); + + movq_r2r(mm0, mm3); + + movd_m2r(j, mm2); + punpcklwd_r2r(mm2, mm2); + punpckldq_r2r(mm2, mm2); + pmullw_r2r(mm2, mm3); + + paddw_r2r(mm4, mm3); + psrlw_i2r(8, mm3); + + packuswb_r2r(mm3, mm3); + movd_r2m(mm3, dst_ptr[0]); + + dst_ptr++; + } + /* * blend here [clip_w *] buf -> dptr * */ + if (dc->mod.use) + func_cmod(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + else if (dc->mul.use) + func_mul(buf, dptr, dst_clip_w, dc->mul.col); + else + func(buf, dptr, dst_clip_w); + dptr += dst_w; + } +#endif + } + else +#ifdef BUILD_SCALE_TRILINEAR + /* scaling down... funkiness */ + { + DATA32 *src_data, *src2_data; + RGBA_Surface *srf1, *srf2; + int mix; + + /* no mipmaps at all- need to populate mipmap table */ + if (src->mipmaps.num == 0) + scale_rgba_gen_mipmap_table(src); + /* caclulate mix level between mipmaps */ + mix = scale_rgba_get_mipmap_surfaces(src, + src_region_w, src_region_h, + dst_region_w, dst_region_h, + &srf1, &srf2); + /* get 2 mipmap levels */ + src_data = srf1->data; /* high res surface (sample) */ + src2_data = srf2->data; /* lower res surface (interp) */ + /* fill scale + interp tables */ + /* lin & row ptr for lowest mipmap (hi res) */ + divx = src->image->w / srf1->w; + divy = src->image->h / srf1->h; + + /* merely sampled pixels in the hi-res mipmap */ + for (x = 0; x < dst_clip_w; x++) + { + lin_ptr[x] = (((x + dst_clip_x - dst_region_x) * src_region_w) / (dst_region_w * divx)) + src_region_x; + } + for (y = 0; y < dst_clip_h; y++) + { + row_ptr[y] = src_data + (((((y + dst_clip_y - dst_region_y) * src_region_h) / (dst_region_h * divy)) + src_region_y) * srf1->w); + } + + /* lin & row ptr for low-res mipmap */ + divx = src->image->w / srf2->w; + divy = src->image->h / srf2->h; + + for (x = 0; x < dst_clip_w; x++) + { + if (src_region_w > 1) + { + lin2_ptr[x] = (((x + dst_clip_x - dst_region_x) * + (src_region_w - 1)) / dst_region_w); + lin2_ptr[x] /= divx; + interp_x[x] = (((((x + dst_clip_x - dst_region_x) * + (src_region_w - 1)) << 8) / dst_region_w) / divx) - + (lin2_ptr[x] << 8); + lin2_ptr[x] += src_region_x; + } + else + { + lin2_ptr[x] = (((x + dst_clip_x - dst_region_x) * + src_region_w) / dst_region_w); + lin2_ptr[x] /= divx; + interp_x[x] = 0; + lin2_ptr[x] += src_region_x; + } + } + for (y = 0; y < dst_clip_h; y++) + { + int pos; + + if (src_region_h > 1) + { + pos = (((y + dst_clip_y - dst_region_y) * + (src_region_h - 1)) / dst_region_h); + pos /= divy; + row2_ptr[y] = src2_data + ((pos + src_region_y) * srf2->w); + interp_y[y] = (((((y + dst_clip_y - dst_region_y) * + (src_region_h - 1)) << 8) / dst_region_h) / divy) - + (pos << 8); + } + else + { + pos = (((y + dst_clip_y - dst_region_y) * + src_region_h) / dst_region_h); + pos /= divy; + row2_ptr[y] = src2_data + ((pos + src_region_y) * srf2->w); + interp_y[y] = 0; + } + } + /* lin2 & row2 ptr for higher mipmap - need interp too */ + /* ... */ + /* scale to dst */ + dptr = dst_ptr; + + if (src->flags & RGBA_IMAGE_HAS_ALPHA) + { + for (y = 0; y < dst_clip_h; y++) + { + dst_ptr = buf; + for (x = 0; x < dst_clip_w; x++) + { + DATA32 hi_col; + DATA32 lo_col; + + /* lowest (higest res) mipmap level - just pick it */ + ptr = row_ptr[y] + lin_ptr[x]; + hi_col = *ptr; + /* higer mipmap level - need to use interp */ + /* lowest (higest res) mipmap level - just pick it */ + ptr = row2_ptr[y] + lin2_ptr[x]; + ptr2 = row2_ptr[y] + lin2_ptr[x] + 1; + ptr3 = row2_ptr[y] + lin2_ptr[x] + srf2->w; + ptr4 = row2_ptr[y] + lin2_ptr[x] + srf2->w + 1; + + /* higer mipmap level - need to use interp */ + INTERP_VAL(A_VAL(&lo_col), + A_VAL(ptr), A_VAL(ptr2), + A_VAL(ptr3), A_VAL(ptr4), + interp_x[x], interp_y[y]); + if (A_VAL(&hi_col) | A_VAL(&lo_col)) + { + INTERP_VAL(R_VAL(&lo_col), + R_VAL(ptr), R_VAL(ptr2), + R_VAL(ptr3), R_VAL(ptr4), + interp_x[x], interp_y[y]); + INTERP_VAL(G_VAL(&lo_col), + G_VAL(ptr), G_VAL(ptr2), + G_VAL(ptr3), G_VAL(ptr4), + interp_x[x], interp_y[y]); + INTERP_VAL(B_VAL(&lo_col), + B_VAL(ptr), B_VAL(ptr2), + B_VAL(ptr3), B_VAL(ptr4), + interp_x[x], interp_y[y]); + + /* blend pixel 1 and 2, mix & 255 - mix each */ + R_VAL(dst_ptr) = ((R_VAL(&hi_col) * mix) + (R_VAL(&lo_col) * (256 - mix))) >> 8; + G_VAL(dst_ptr) = ((G_VAL(&hi_col) * mix) + (G_VAL(&lo_col) * (256 - mix))) >> 8; + B_VAL(dst_ptr) = ((B_VAL(&hi_col) * mix) + (B_VAL(&lo_col) * (256 - mix))) >> 8; + A_VAL(dst_ptr) = ((A_VAL(&hi_col) * mix) + (A_VAL(&lo_col) * (256 - mix))) >> 8; + } + else + { + A_VAL(dst_ptr) = 0; + } + dst_ptr++; + } + /* * blend here [clip_w *] buf -> dptr * */ + if (dc->mod.use) + { + func_cmod(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + } + else if (dc->mul.use) + { + func_mul(buf, dptr, dst_clip_w, dc->mul.col); + } + else + { + func(buf, dptr, dst_clip_w); + } + dptr += dst_w; + } + } + else + { + for (y = 0; y < dst_clip_h; y++) + { + dst_ptr = buf; + for (x = 0; x < dst_clip_w; x++) + { + DATA32 hi_col; + DATA32 lo_col; + + /* lowest (higest res) mipmap level - just pick it */ + ptr = row_ptr[y] + lin_ptr[x]; + hi_col = *ptr; + /* higer mipmap level - need to use interp */ + /* lowest (higest res) mipmap level - just pick it */ + ptr = row2_ptr[y] + lin2_ptr[x]; + ptr2 = row2_ptr[y] + lin2_ptr[x] + 1; + ptr3 = row2_ptr[y] + lin2_ptr[x] + srf2->w; + ptr4 = row2_ptr[y] + lin2_ptr[x] + srf2->w + 1; + + /* higer mipmap level - need to use interp */ + INTERP_VAL(R_VAL(&lo_col), + R_VAL(ptr), R_VAL(ptr2), + R_VAL(ptr3), R_VAL(ptr4), + interp_x[x], interp_y[y]); + INTERP_VAL(G_VAL(&lo_col), + G_VAL(ptr), G_VAL(ptr2), + G_VAL(ptr3), G_VAL(ptr4), + interp_x[x], interp_y[y]); + INTERP_VAL(B_VAL(&lo_col), + B_VAL(ptr), B_VAL(ptr2), + B_VAL(ptr3), B_VAL(ptr4), + interp_x[x], interp_y[y]); + + /* blend pixel 1 and 2, mix & 255 - mix each */ + R_VAL(dst_ptr) = ((R_VAL(&hi_col) * mix) + (R_VAL(&lo_col) * (256 - mix))) >> 8; + G_VAL(dst_ptr) = ((G_VAL(&hi_col) * mix) + (G_VAL(&lo_col) * (256 - mix))) >> 8; + B_VAL(dst_ptr) = ((B_VAL(&hi_col) * mix) + (B_VAL(&lo_col) * (256 - mix))) >> 8; + A_VAL(dst_ptr) = 0xff; + dst_ptr++; + } + /* * blend here [clip_w *] buf -> dptr * */ + if (dc->mod.use) + { + func_cmod(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + } + else if (dc->mul.use) + { + func_mul(buf, dptr, dst_clip_w, dc->mul.col); + } + else + { + func(buf, dptr, dst_clip_w); + } + dptr += dst_w; + } + } + } +#else + /* scaling down... funkiness */ + { +#if 1 +#define RGBA_COMPOSE(r, g, b, a) ((a) << 24) | ((r) << 16) | ((g) << 8) | (b) +#define INV_XAP (256 - xapoints[dxx + x]) +#define XAP (xapoints[dxx + x]) +#define INV_YAP (256 - yapoints[dyy + y]) +#define YAP (yapoints[dyy + y]) + /* NEW scaling code... */ + DATA32 *sptr; + int x, y, dyy; + DATA32 **ypoints; + int *xpoints; + int *xapoints; + int *yapoints; + DATA32 *src_data; + + src_data = src->image->data; + + xpoints = scale_calc_x_points(src_region_w, dst_region_w); + ypoints = scale_calc_y_points(src_data, src->image->w, src_region_h, dst_region_h); + xapoints = scale_calc_a_points(src_region_w, dst_region_w); + yapoints = scale_calc_a_points(src_region_h, dst_region_h); + /* scaling down vertically */ + if ((dst_region_w >= src_region_w) && + (dst_region_h < src_region_h)) + { + int Cy, j; + DATA32 *pix; + int r, g, b, a, rr, gg, bb, aa; + int yap; + int sow; + int dyy, dxx; + + dptr = dst_ptr; + sow = src->image->w; + dyy = dst_clip_y - dst_region_y; + dxx = dst_clip_x - dst_region_x; + if (src->flags & RGBA_IMAGE_HAS_ALPHA) + { + for (y = 0; y < dst_clip_h; y++) + { + Cy = YAP >> 16; + yap = YAP & 0xffff; + for (x = 0; x < dst_clip_w; x++) + { + pix = ypoints[dyy + y] + xpoints[dxx + x] + (src_region_y * sow) + src_region_x; + r = (R_VAL(pix) * yap) >> 10; + g = (G_VAL(pix) * yap) >> 10; + b = (B_VAL(pix) * yap) >> 10; + a = (A_VAL(pix) * yap) >> 10; + for (j = (1 << 14) - yap; j > Cy; j -= Cy) + { + pix += sow; + r += (R_VAL(pix) * Cy) >> 10; + g += (G_VAL(pix) * Cy) >> 10; + b += (B_VAL(pix) * Cy) >> 10; + a += (A_VAL(pix) * Cy) >> 10; + } + if (j > 0) + { + pix += sow; + r += (R_VAL(pix) * j) >> 10; + g += (G_VAL(pix) * j) >> 10; + b += (B_VAL(pix) * j) >> 10; + a += (A_VAL(pix) * j) >> 10; + } + if (XAP > 0) + { + pix = ypoints[dyy + y] + xpoints[dxx + x] + 1 + (src_region_y * sow) + src_region_x; + rr = (R_VAL(pix) * yap) >> 10; + gg = (G_VAL(pix) * yap) >> 10; + bb = (B_VAL(pix) * yap) >> 10; + aa = (A_VAL(pix) * yap) >> 10; + for (j = (1 << 14) - yap; j > Cy; j -= Cy) + { + pix += sow; + rr += (R_VAL(pix) * Cy) >> 10; + gg += (G_VAL(pix) * Cy) >> 10; + bb += (B_VAL(pix) * Cy) >> 10; + aa += (A_VAL(pix) * Cy) >> 10; + } + if (j > 0) + { + pix += sow; + rr += (R_VAL(pix) * j) >> 10; + gg += (G_VAL(pix) * j) >> 10; + bb += (B_VAL(pix) * j) >> 10; + aa += (A_VAL(pix) * j) >> 10; + } + r = r * INV_XAP; + g = g * INV_XAP; + b = b * INV_XAP; + a = a * INV_XAP; + r = (r + ((rr * XAP))) >> 12; + g = (g + ((gg * XAP))) >> 12; + b = (b + ((bb * XAP))) >> 12; + a = (a + ((aa * XAP))) >> 12; + } + else + { + r >>= 4; + g >>= 4; + b >>= 4; + a >>= 4; + } + buf[x] = RGBA_COMPOSE(r, g, b, a); + } + if (dc->mod.use) + func_cmod(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + else if (dc->mul.use) + func_mul(buf, dptr, dst_clip_w, dc->mul.col); + else + func(buf, dptr, dst_clip_w); + dptr += dst_w; + } + } + else + { + for (y = 0; y < dst_clip_h; y++) + { + Cy = YAP >> 16; + yap = YAP & 0xffff; + for (x = 0; x < dst_clip_w; x++) + { + pix = ypoints[dyy + y] + xpoints[dxx + x] + (src_region_y * sow) + src_region_x; + r = (R_VAL(pix) * yap) >> 10; + g = (G_VAL(pix) * yap) >> 10; + b = (B_VAL(pix) * yap) >> 10; + for (j = (1 << 14) - yap; j > Cy; j -= Cy) + { + pix += sow; + r += (R_VAL(pix) * Cy) >> 10; + g += (G_VAL(pix) * Cy) >> 10; + b += (B_VAL(pix) * Cy) >> 10; + } + if (j > 0) + { + pix += sow; + r += (R_VAL(pix) * j) >> 10; + g += (G_VAL(pix) * j) >> 10; + b += (B_VAL(pix) * j) >> 10; + } + if (XAP > 0) + { + pix = ypoints[dyy + y] + xpoints[dxx + x] + 1 + (src_region_y * sow) + src_region_x; + rr = (R_VAL(pix) * yap) >> 10; + gg = (G_VAL(pix) * yap) >> 10; + bb = (B_VAL(pix) * yap) >> 10; + for (j = (1 << 14) - yap; j > Cy; j -= Cy) + { + pix += sow; + rr += (R_VAL(pix) * Cy) >> 10; + gg += (G_VAL(pix) * Cy) >> 10; + bb += (B_VAL(pix) * Cy) >> 10; + } + if (j > 0) + { + pix += sow; + rr += (R_VAL(pix) * j) >> 10; + gg += (G_VAL(pix) * j) >> 10; + bb += (B_VAL(pix) * j) >> 10; + } + r = r * INV_XAP; + g = g * INV_XAP; + b = b * INV_XAP; + r = (r + ((rr * XAP))) >> 12; + g = (g + ((gg * XAP))) >> 12; + b = (b + ((bb * XAP))) >> 12; + } + else + { + r >>= 4; + g >>= 4; + b >>= 4; + } + buf[x] = RGBA_COMPOSE(r, g, b, 0xff); + } + if (dc->mod.use) + func_cmod(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + else if (dc->mul.use) + func_mul(buf, dptr, dst_clip_w, dc->mul.col); + else + func(buf, dptr, dst_clip_w); + dptr += dst_w; + } + } + } + /* scaling down horizontally */ + else if ((dst_region_w < src_region_w) && + (dst_region_h >= src_region_h)) + { + int Cx, j; + DATA32 *pix; + int r, g, b, a, rr, gg, bb, aa; + int xap; + int sow; + int dyy, dxx; + + dptr = dst_ptr; + sow = src->image->w; + dyy = dst_clip_y - dst_region_y; + dxx = dst_clip_x - dst_region_x; + if (src->flags & RGBA_IMAGE_HAS_ALPHA) + { + for (y = 0; y < dst_clip_h; y++) + { + for (x = 0; x < dst_clip_w; x++) + { + Cx = XAP >> 16; + xap = XAP & 0xffff; + + pix = ypoints[dyy + y] + xpoints[dxx + x] + (src_region_y * sow) + src_region_x; + r = (R_VAL(pix) * xap) >> 10; + g = (G_VAL(pix) * xap) >> 10; + b = (B_VAL(pix) * xap) >> 10; + a = (A_VAL(pix) * xap) >> 10; + for (j = (1 << 14) - xap; j > Cx; j -= Cx) + { + pix++; + r += (R_VAL(pix) * Cx) >> 10; + g += (G_VAL(pix) * Cx) >> 10; + b += (B_VAL(pix) * Cx) >> 10; + a += (A_VAL(pix) * Cx) >> 10; + } + if (j > 0) + { + pix++; + r += (R_VAL(pix) * j) >> 10; + g += (G_VAL(pix) * j) >> 10; + b += (B_VAL(pix) * j) >> 10; + a += (A_VAL(pix) * j) >> 10; + } + if (YAP > 0) + { + pix = ypoints[dyy + y] + xpoints[dxx + x] + sow + (src_region_y * sow) + src_region_x; + rr = (R_VAL(pix) * xap) >> 10; + gg = (G_VAL(pix) * xap) >> 10; + bb = (B_VAL(pix) * xap) >> 10; + aa = (A_VAL(pix) * xap) >> 10; + for (j = (1 << 14) - xap; j > Cx; j -= Cx) + { + pix++; + rr += (R_VAL(pix) * Cx) >> 10; + gg += (G_VAL(pix) * Cx) >> 10; + bb += (B_VAL(pix) * Cx) >> 10; + aa += (A_VAL(pix) * Cx) >> 10; + } + if (j > 0) + { + pix++; + rr += (R_VAL(pix) * j) >> 10; + gg += (G_VAL(pix) * j) >> 10; + bb += (B_VAL(pix) * j) >> 10; + aa += (A_VAL(pix) * j) >> 10; + } + r = r * INV_YAP; + g = g * INV_YAP; + b = b * INV_YAP; + a = a * INV_YAP; + r = (r + ((rr * YAP))) >> 12; + g = (g + ((gg * YAP))) >> 12; + b = (b + ((bb * YAP))) >> 12; + a = (a + ((aa * YAP))) >> 12; + } + else + { + r >>= 4; + g >>= 4; + b >>= 4; + a >>= 4; + } + buf[x] = RGBA_COMPOSE(r, g, b, a); + } + if (dc->mod.use) + func_cmod(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + else if (dc->mul.use) + func_mul(buf, dptr, dst_clip_w, dc->mul.col); + else + func(buf, dptr, dst_clip_w); + dptr += dst_w; + } + } + else + { + for (y = 0; y < dst_clip_h; y++) + { + for (x = 0; x < dst_clip_w; x++) + { + Cx = XAP >> 16; + xap = XAP & 0xffff; + + pix = ypoints[dyy + y] + xpoints[dxx + x] + (src_region_y * sow) + src_region_x; + r = (R_VAL(pix) * xap) >> 10; + g = (G_VAL(pix) * xap) >> 10; + b = (B_VAL(pix) * xap) >> 10; + for (j = (1 << 14) - xap; j > Cx; j -= Cx) + { + pix++; + r += (R_VAL(pix) * Cx) >> 10; + g += (G_VAL(pix) * Cx) >> 10; + b += (B_VAL(pix) * Cx) >> 10; + } + if (j > 0) + { + pix++; + r += (R_VAL(pix) * j) >> 10; + g += (G_VAL(pix) * j) >> 10; + b += (B_VAL(pix) * j) >> 10; + } + if (YAP > 0) + { + pix = ypoints[dyy + y] + xpoints[dxx + x] + sow + (src_region_y * sow) + src_region_x; + rr = (R_VAL(pix) * xap) >> 10; + gg = (G_VAL(pix) * xap) >> 10; + bb = (B_VAL(pix) * xap) >> 10; + for (j = (1 << 14) - xap; j > Cx; j -= Cx) + { + pix++; + rr += (R_VAL(pix) * Cx) >> 10; + gg += (G_VAL(pix) * Cx) >> 10; + bb += (B_VAL(pix) * Cx) >> 10; + } + if (j > 0) + { + pix++; + rr += (R_VAL(pix) * j) >> 10; + gg += (G_VAL(pix) * j) >> 10; + bb += (B_VAL(pix) * j) >> 10; + } + r = r * INV_YAP; + g = g * INV_YAP; + b = b * INV_YAP; + r = (r + ((rr * YAP))) >> 12; + g = (g + ((gg * YAP))) >> 12; + b = (b + ((bb * YAP))) >> 12; + } + else + { + r >>= 4; + g >>= 4; + b >>= 4; + } + buf[x] = RGBA_COMPOSE(r, g, b, 0xff); + } + if (dc->mod.use) + func_cmod(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + else if (dc->mul.use) + func_mul(buf, dptr, dst_clip_w, dc->mul.col); + else + func(buf, dptr, dst_clip_w); + dptr += dst_w; + } + } + } + /* scaling down both vertically & horizontally */ + else if ((dst_region_w < src_region_w) && + (dst_region_h < src_region_h)) + { + int Cx, Cy, i, j; + DATA32 *pix; + int a, r, g, b, rx, gx, bx, ax; + int xap, yap; + int sow; + int dyy, dxx; + + dptr = dst_ptr; + sow = src->image->w; + dyy = dst_clip_y - dst_region_y; + dxx = dst_clip_x - dst_region_x; +//#ifndef SCALE_USING_MMX +#if 1 + if (src->flags & RGBA_IMAGE_HAS_ALPHA) + { + for (y = 0; y < dst_clip_h; y++) + { + Cy = YAP >> 16; + yap = YAP & 0xffff; + + for (x = 0; x < dst_clip_w; x++) + { + Cx = XAP >> 16; + xap = XAP & 0xffff; + + sptr = ypoints[dyy + y] + xpoints[dxx + x] + (src_region_y * sow) + src_region_x; + pix = sptr; + sptr += sow; + rx = (R_VAL(pix) * xap) >> 9; + gx = (G_VAL(pix) * xap) >> 9; + bx = (B_VAL(pix) * xap) >> 9; + ax = (A_VAL(pix) * xap) >> 9; + pix++; + for (i = (1 << 14) - xap; i > Cx; i -= Cx) + { + rx += (R_VAL(pix) * Cx) >> 9; + gx += (G_VAL(pix) * Cx) >> 9; + bx += (B_VAL(pix) * Cx) >> 9; + ax += (A_VAL(pix) * Cx) >> 9; + pix++; + } + if (i > 0) + { + rx += (R_VAL(pix) * i) >> 9; + gx += (G_VAL(pix) * i) >> 9; + bx += (B_VAL(pix) * i) >> 9; + ax += (A_VAL(pix) * i) >> 9; + } + + r = (rx * yap) >> 14; + g = (gx * yap) >> 14; + b = (bx * yap) >> 14; + a = (ax * yap) >> 14; + + for (j = (1 << 14) - yap; j > Cy; j -= Cy) + { + pix = sptr; + sptr += sow; + rx = (R_VAL(pix) * xap) >> 9; + gx = (G_VAL(pix) * xap) >> 9; + bx = (B_VAL(pix) * xap) >> 9; + ax = (A_VAL(pix) * xap) >> 9; + pix++; + for (i = (1 << 14) - xap; i > Cx; i -= Cx) + { + rx += (R_VAL(pix) * Cx) >> 9; + gx += (G_VAL(pix) * Cx) >> 9; + bx += (B_VAL(pix) * Cx) >> 9; + ax += (A_VAL(pix) * Cx) >> 9; + pix++; + } + if (i > 0) + { + rx += (R_VAL(pix) * i) >> 9; + gx += (G_VAL(pix) * i) >> 9; + bx += (B_VAL(pix) * i) >> 9; + ax += (A_VAL(pix) * i) >> 9; + } + + r += (rx * Cy) >> 14; + g += (gx * Cy) >> 14; + b += (bx * Cy) >> 14; + a += (ax * Cy) >> 14; + } + if (j > 0) + { + pix = sptr; + sptr += sow; + rx = (R_VAL(pix) * xap) >> 9; + gx = (G_VAL(pix) * xap) >> 9; + bx = (B_VAL(pix) * xap) >> 9; + ax = (A_VAL(pix) * xap) >> 9; + pix++; + for (i = (1 << 14) - xap; i > Cx; i -= Cx) + { + rx += (R_VAL(pix) * Cx) >> 9; + gx += (G_VAL(pix) * Cx) >> 9; + bx += (B_VAL(pix) * Cx) >> 9; + ax += (A_VAL(pix) * Cx) >> 9; + pix++; + } + if (i > 0) + { + rx += (R_VAL(pix) * i) >> 9; + gx += (G_VAL(pix) * i) >> 9; + bx += (B_VAL(pix) * i) >> 9; + ax += (A_VAL(pix) * i) >> 9; + } + + r += (rx * j) >> 14; + g += (gx * j) >> 14; + b += (bx * j) >> 14; + a += (ax * j) >> 14; + } + buf[x] = RGBA_COMPOSE(r >> 5, g >> 5, b >> 5, a >> 5); + } + if (dc->mod.use) + func_cmod(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + else if (dc->mul.use) + func_mul(buf, dptr, dst_clip_w, dc->mul.col); + else + func(buf, dptr, dst_clip_w); + dptr += dst_w; + } + } + else + { + for (y = 0; y < dst_clip_h; y++) + { + Cy = YAP >> 16; + yap = YAP & 0xffff; + + for (x = 0; x < dst_clip_w; x++) + { + Cx = XAP >> 16; + xap = XAP & 0xffff; + + sptr = ypoints[dyy + y] + xpoints[dxx + x] + (src_region_y * sow) + src_region_x; + pix = sptr; + sptr += sow; + rx = (R_VAL(pix) * xap) >> 9; + gx = (G_VAL(pix) * xap) >> 9; + bx = (B_VAL(pix) * xap) >> 9; + pix++; + for (i = (1 << 14) - xap; i > Cx; i -= Cx) + { + rx += (R_VAL(pix) * Cx) >> 9; + gx += (G_VAL(pix) * Cx) >> 9; + bx += (B_VAL(pix) * Cx) >> 9; + pix++; + } + if (i > 0) + { + rx += (R_VAL(pix) * i) >> 9; + gx += (G_VAL(pix) * i) >> 9; + bx += (B_VAL(pix) * i) >> 9; + } + + r = (rx * yap) >> 14; + g = (gx * yap) >> 14; + b = (bx * yap) >> 14; + + for (j = (1 << 14) - yap; j > Cy; j -= Cy) + { + pix = sptr; + sptr += sow; + rx = (R_VAL(pix) * xap) >> 9; + gx = (G_VAL(pix) * xap) >> 9; + bx = (B_VAL(pix) * xap) >> 9; + pix++; + for (i = (1 << 14) - xap; i > Cx; i -= Cx) + { + rx += (R_VAL(pix) * Cx) >> 9; + gx += (G_VAL(pix) * Cx) >> 9; + bx += (B_VAL(pix) * Cx) >> 9; + pix++; + } + if (i > 0) + { + rx += (R_VAL(pix) * i) >> 9; + gx += (G_VAL(pix) * i) >> 9; + bx += (B_VAL(pix) * i) >> 9; + } + + r += (rx * Cy) >> 14; + g += (gx * Cy) >> 14; + b += (bx * Cy) >> 14; + } + if (j > 0) + { + pix = sptr; + sptr += sow; + rx = (R_VAL(pix) * xap) >> 9; + gx = (G_VAL(pix) * xap) >> 9; + bx = (B_VAL(pix) * xap) >> 9; + pix++; + for (i = (1 << 14) - xap; i > Cx; i -= Cx) + { + rx += (R_VAL(pix) * Cx) >> 9; + gx += (G_VAL(pix) * Cx) >> 9; + bx += (B_VAL(pix) * Cx) >> 9; + pix++; + } + if (i > 0) + { + rx += (R_VAL(pix) * i) >> 9; + gx += (G_VAL(pix) * i) >> 9; + bx += (B_VAL(pix) * i) >> 9; + } + + r += (rx * j) >> 14; + g += (gx * j) >> 14; + b += (bx * j) >> 14; + } + buf[x] = RGBA_COMPOSE(r >> 5, g >> 5, b >> 5, 0xff); + } + if (dc->mod.use) + func_cmod(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + else if (dc->mul.use) + func_mul(buf, dptr, dst_clip_w, dc->mul.col); + else + func(buf, dptr, dst_clip_w); + dptr += dst_w; + } + } +#else +#endif + } + free(xpoints); + free(ypoints); + free(xapoints); + free(yapoints); +#else + DATA32 *src_data; + RGBA_Surface *srf; + + /* no mipmaps at all- need to populate mipmap table */ + if (src->mipmaps.num == 0) + { + scale_rgba_gen_mipmap_table(src); + } + /* caclulate mix level between mipmaps */ + srf = scale_rgba_get_mipmap_surface(src, + src_region_w, src_region_h, + dst_region_w, dst_region_h); + /* get mipmap level */ + src_data = srf->data; /* high res surface (sample) */ + /* lin & row ptr for lowest mipmap (hi res) */ + divx = src->image->w / srf->w; + divy = src->image->h / srf->h; + + /* merely sampled pixels in the hi-res mipmap and interp no's */ + for (x = 0; x < dst_clip_w; x++) + { + unsigned int val, val2; + + val = (((x + dst_clip_x - dst_region_x) * src_region_w * 256) / (dst_region_w * divx)); + val2 = (((x + 1 + dst_clip_x - dst_region_x) * src_region_w * 256) / (dst_region_w * divx)); + lin_ptr[x] = val >> 8; + if (src->image->w < 2) + { + sample_x[(x * 3) + 0] = 256; + sample_x[(x * 3) + 1] = 0; + sample_x[(x * 3) + 2] = 0; + } + if (!(val & 0xff)) + /* start of pixel scan on src pixel boundary */ + { + sample_x[(x * 3) + 0] = 256; + sample_x[(x * 3) + 1] = val2 - val - 256; + sample_x[(x * 3) + 2] = 0; + } + else + /* start pixel scan in middle of src pixel */ + { + sample_x[(x * 3) + 0] = (val & 0xffffff00) + 256 - val; + if (val2 >= ((val & 0xffffff00) + 512)) + { + sample_x[(x * 3) + 1] = 256; + sample_x[(x * 3) + 2] = val2 - ((val & 0xffffff00) + 512); + } + else + { + sample_x[(x * 3) + 1] = val2 - ((val & 0xffffff00) + 256); + sample_x[(x * 3) + 2] = 0; + } + } + interp_x[x] = + sample_x[(x * 3) + 0] + + sample_x[(x * 3) + 1] + + sample_x[(x * 3) + 2]; + sample_x[(x * 3) + 0] = (sample_x[(x * 3) + 0] * 256) / interp_x[x]; + sample_x[(x * 3) + 1] = (sample_x[(x * 3) + 1] * 256) / interp_x[x]; + sample_x[(x * 3) + 2] = (sample_x[(x * 3) + 2] * 256) / interp_x[x]; + if (sample_x[(x * 3) + 2]) iterate_x[x] = 3; + else if (sample_x[(x * 3) + 1]) iterate_x[x] = 2; + else iterate_x[x] = 1; + } + for (y = 0; y < dst_clip_h; y++) + { + unsigned int val, val2; + + val = (((y + dst_clip_y - dst_region_y) * src_region_h * 256) / (dst_region_h * divy)); + val2 = (((y + 1 + dst_clip_y - dst_region_y) * src_region_h * 256) / (dst_region_h * divy)); + row_ptr[y] = src_data + ((val >> 8) * srf->w); + if (src->image->h < 2) + { + sample_y[(y * 3) + 0] = 256; + sample_y[(y * 3) + 1] = 0; + sample_y[(y * 3) + 2] = 0; + } + else if (!(val & 0xff)) + /* start of pixel scan on src pixel boundary */ + { + sample_y[(y * 3) + 0] = 256; + sample_y[(y * 3) + 1] = val2 - val - 256; + sample_y[(y * 3) + 2] = 0; + } + else + /* start pixel scan in middle of src pixel */ + { + sample_y[(y * 3) + 0] = (val & 0xffffff00) + 256 - val; + if (val2 >= ((val & 0xffffff00) + 512)) + { + sample_y[(y * 3) + 1] = 256; + sample_y[(y * 3) + 2] = val2 - ((val & 0xffffff00) + 512); + } + else + { + sample_y[(y * 3) + 1] = val2 - ((val & 0xffffff00) + 256); + sample_y[(y * 3) + 2] = 0; + } + } + interp_y[y] = + sample_y[(y * 3) + 0] + + sample_y[(y * 3) + 1] + + sample_y[(y * 3) + 2]; + sample_y[(y * 3) + 0] = (sample_y[(y * 3) + 0] * 256) / interp_y[y]; + sample_y[(y * 3) + 1] = (sample_y[(y * 3) + 1] * 256) / interp_y[y]; + sample_y[(y * 3) + 2] = (sample_y[(y * 3) + 2] * 256) / interp_y[y]; + if (sample_y[(y * 3) + 2]) iterate_y[y] = 3; + else if (sample_y[(y * 3) + 1]) iterate_y[y] = 2; + else iterate_y[y] = 1; + } + /* scale to dst */ + dptr = dst_ptr; + + if (src->flags & RGBA_IMAGE_HAS_ALPHA) + { + int srf_w_3; + + srf_w_3 = srf->w - 3; + for (y = 0; y < dst_clip_h; y++) + { + int ity; + + ity = iterate_y[y]; + dst_ptr = buf; + for (x = 0; x < dst_clip_w; x++) + { + int x3, y3, i, j; +#ifndef SCALE_USING_MMX + DATA32 r, g, b, a; +#endif + + x3 = x * 3; + y3 = y * 3; + ptr = row_ptr[y] + lin_ptr[x]; +#ifndef SCALE_USING_MMX + r = g = b = a = 0; + for (j = 0; j < ity; j++) + { + int mj; + int itx; + + itx = iterate_x[x]; + mj = sample_y[y3 + j]; + for (i = 0; i < itx; i++) + { + int multiplier; + + multiplier = sample_x[x3 + i] * mj; + r += R_VAL(ptr) * multiplier; + g += G_VAL(ptr) * multiplier; + b += B_VAL(ptr) * multiplier; + a += A_VAL(ptr) * multiplier; + ptr++; + } + ptr += 3 - itx + srf_w_3; + } + if (a) + { + A_VAL(dst_ptr) = a >> 16; + R_VAL(dst_ptr) = r >> 16; + G_VAL(dst_ptr) = g >> 16; + B_VAL(dst_ptr) = b >> 16; + } + else + { + A_VAL(dst_ptr) = 0; + } +#else + pxor_r2r(mm0, mm0); + for (j = 0; j < ity; j++) + { + int mj; + int itx; + + itx = iterate_x[x]; + mj = sample_y[y3 + j]; + for (i = 0; i < itx; i++) + { + int multiplier; + + multiplier = (sample_x[x3 + i] * mj) >> 8; + + punpcklbw_m2r(ptr[0], mm2); + psrlw_i2r(8, mm2); + + movd_m2r(multiplier, mm3); + punpcklwd_r2r(mm3, mm3); + punpckldq_r2r(mm3, mm3); + + pmullw_r2r(mm3, mm2); + + paddw_r2r(mm2, mm0); + ptr++; + } + ptr += 3 - itx + srf_w_3; + } + psrlw_i2r(8, mm0); + packuswb_r2r(mm0, mm0); + movd_r2m(mm0, dst_ptr[0]); +#endif + dst_ptr++; + } + /* * blend here [clip_w *] buf -> dptr * */ + if (dc->mod.use) + { + func_cmod(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + } + else if (dc->mul.use) + { + func_mul(buf, dptr, dst_clip_w, dc->mul.col); + } + else + { + func(buf, dptr, dst_clip_w); + } + dptr += dst_w; + } + } + else + { + int srf_w_3; + + srf_w_3 = srf->w - 3; + for (y = 0; y < dst_clip_h; y++) + { + int ity; + + ity = iterate_y[y]; + dst_ptr = buf; + for (x = 0; x < dst_clip_w; x++) + { + int x3, y3, i, j; +#ifndef SCALE_USING_MMX + DATA32 r, g, b; +#endif + + x3 = x * 3; + y3 = y * 3; + ptr = row_ptr[y] + lin_ptr[x]; +#ifndef SCALE_USING_MMX + r = g = b = 0; + for (j = 0; j < ity; j++) + { + int mj; + int itx; + + itx = iterate_x[x]; + mj = sample_y[y3 + j]; + for (i = 0; i < itx; i++) + { + int multiplier; + + multiplier = sample_x[x3 + i] * mj; + if (multiplier) + { + r += R_VAL(ptr) * multiplier; + g += G_VAL(ptr) * multiplier; + b += B_VAL(ptr) * multiplier; + } + ptr++; + } + ptr += 3 - itx + srf_w_3; + } + R_VAL(dst_ptr) = r >> 8; + G_VAL(dst_ptr) = g >> 8; + B_VAL(dst_ptr) = b >> 8; + A_VAL(dst_ptr) = 0xff; +#else + pxor_r2r(mm0, mm0); + for (j = 0; j < ity; j++) + { + int mj; + int itx; + + itx = iterate_x[x]; + mj = sample_y[y3 + j]; + for (i = 0; i < itx; i++) + { + int multiplier; + + multiplier = (sample_x[x3 + i] * mj) >> 8; + + punpcklbw_m2r(ptr[0], mm2); + psrlw_i2r(8, mm2); + + movd_m2r(multiplier, mm3); + punpcklwd_r2r(mm3, mm3); + punpckldq_r2r(mm3, mm3); + + pmullw_r2r(mm3, mm2); + + paddw_r2r(mm2, mm0); + ptr++; + } + ptr += 3 - itx + srf_w_3; + } + psrlw_i2r(8, mm0); + packuswb_r2r(mm0, mm0); + movd_r2m(mm0, dst_ptr[0]); +#endif + dst_ptr++; + } + /* * blend here [clip_w *] buf -> dptr * */ + if (dc->mod.use) + { + func_cmod(buf, dptr, dst_clip_w, dc->mod.r, dc->mod.g, dc->mod.b, dc->mod.a); + } + else if (dc->mul.use) + { + func_mul(buf, dptr, dst_clip_w, dc->mul.col); + } + else + { + func(buf, dptr, dst_clip_w); + } + dptr += dst_w; + } + } +#endif + } +#endif + free(buf); + } + no_buf: + /* free scale tables */ + free(iterate_y); + no_iterate_y: + free(iterate_x); + no_iterate_x: + free(sample_y); + no_sample_y: + free(sample_x); + no_sample_x: + free(interp_y); + no_interp_y: + free(interp_x); + no_interp_x: + free(row2_ptr); + no_row2_ptr: + free(lin2_ptr); + no_lin2_ptr: + free(row_ptr); + no_row_ptr: + free(lin_ptr); +//_WIN32_WCE + no_lin_ptr: ; +} diff --git a/legacy/evas/src/lib/engines/common/evas_tiler.c b/legacy/evas/src/lib/engines/common/evas_tiler.c new file mode 100644 index 0000000000..81559c04f6 --- /dev/null +++ b/legacy/evas/src/lib/engines/common/evas_tiler.c @@ -0,0 +1,361 @@ +#include "evas_common.h" + +#define TILE(tb, x, y) ((tb)->tiles.tiles[((y) * (tb)->tiles.w) + (x)]) + +static int tilebuf_x_intersect(Tilebuf *tb, int x, int w, int *x1, int *x2, int *x1_fill, int *x2_fill); +static int tilebuf_y_intersect(Tilebuf *tb, int y, int h, int *y1, int *y2, int *y1_fill, int *y2_fill); +static int tilebuf_intersect(int tsize, int tlen, int tnum, int x, int w, int *x1, int *x2, int *x1_fill, int *x2_fill); +static void tilebuf_setup(Tilebuf *tb); + +void +tilebuf_init(void) +{ +} + +Tilebuf * +tilebuf_new(int w, int h) +{ + Tilebuf *tb; + + tb = calloc(1, sizeof(Tilebuf)); + if (!tb) return NULL; + + tb->tile_size.w = 16; + tb->tile_size.h = 16; + tb->outbuf_w = w; + tb->outbuf_h = h; + + return tb; +} + +void +tilebuf_free(Tilebuf *tb) +{ + if (tb->tiles.tiles) free(tb->tiles.tiles); + free(tb); +} + +void +tilebuf_set_tile_size(Tilebuf *tb, int tw, int th) +{ + tb->tile_size.w = tw; + tb->tile_size.h = th; + tilebuf_setup(tb); +} + +void +tilebuf_get_tile_size(Tilebuf *tb, int *tw, int *th) +{ + if (tw) *tw = tb->tile_size.w; + if (th) *th = tb->tile_size.h; +} + +/* new update tile types: + * + * redraw R = redraw everything in the tile + * blit B = blit area by dx or dy != 0 + * blit alpha BA = area blit by dx or dy != 0 with alpha mask + * no blit N = no redraw, no blit (dx & dy == 0) + * no blit alpha NA = no blit, but alpha channel there + * edge E = edge of blit or no blit tile area that rect only + * partially fills + * + * existing tile types can be: + * + * R, B, N, E + * + * for delta rects: + * + * +-----+ + * dx| New | + * +-| | + * | +-----+ + * | Old | dy + * +-----+ + * + */ + +/* redraw rect logic + * + * existing rect | logic + * R ----> R + * B -+--> R in old input rect + * +--> R in new input rect + * N ----> R + * E ----> R + * + */ + +/* motion vector logic + * + * apply: B + * R -+--> new input rect: B + * +--> old input rect: B, from = 1 + * B -+--> new input rect: B + * +--> old input rect: if blits == then from = 0 + * +--> old input rect: if blits != then R in old,new rect + dxdy + * N + * E + * + * apply: BA + * R + * B + * N + * E + * + * apply: N + * R + * B + * N + * E + * + * apply: NA + * R + * B + * N + * E + * + * apply: E + * R + * B + * N + * E + * + */ + +int +tilebuf_add_redraw(Tilebuf *tb, int x, int y, int w, int h) +{ + int tx1, tx2, ty1, ty2, tfx1, tfx2, tfy1, tfy2, xx, yy; + int num; + + num = 0; + /* wipes out any motion vectors in tiles it touches into redraws */ + if (tilebuf_x_intersect(tb, x, w, &tx1, &tx2, &tfx1, &tfx2) && + tilebuf_y_intersect(tb, y, h, &ty1, &ty2, &tfy1, &tfy2)) + { + for (yy = ty1; yy <= ty2; yy++) + { + Tilebuf_Tile *tbt; + + tbt = &(TILE(tb, tx1, yy)); + for (xx = tx1; xx <= tx2; xx++) + { + tbt->redraw = 1; + num++; + tbt++; + } + } + } + return num; +} + +int +tilebuf_del_redraw(Tilebuf *tb, int x, int y, int w, int h) +{ + int tx1, tx2, ty1, ty2, tfx1, tfx2, tfy1, tfy2, xx, yy; + int num; + + num = 0; + /* wipes out any motion vectors in tiles it touches into redraws */ + if (tilebuf_x_intersect(tb, x, w, &tx1, &tx2, &tfx1, &tfx2) && + tilebuf_y_intersect(tb, y, h, &ty1, &ty2, &tfy1, &tfy2)) + { + if (!tfx1) tx1++; + if (!tfx2) tx2--; + if (!tfy1) ty1++; + if (!tfy2) ty2--; + for (yy = ty1; yy <= ty2; yy++) + { + Tilebuf_Tile *tbt; + + tbt = &(TILE(tb, tx1, yy)); + for (xx = tx1; xx <= tx2; xx++) + { + tbt->redraw = 0; + num++; + tbt++; + } + } + } + return num; +} + +int +tilebuf_add_motion_vector(Tilebuf *tb, int x, int y, int w, int h, int dx, int dy, int alpha) +{ + /* FIXME: need to actually impliment motion vectors. for now it just */ + /* implements redraws */ + int num; + + num = tilebuf_add_redraw(tb, x, y, w, h); + num += tilebuf_add_redraw(tb, x + dx, y + dy, w, h); + return num; + /* FIXME: unused */ + alpha = 0; +} + +void +tilebuf_clear(Tilebuf *tb) +{ + if (!tb->tiles.tiles) return; + memset(tb->tiles.tiles, 0, tb->tiles.w * tb->tiles.h * sizeof(Tilebuf_Tile)); +} + +Tilebuf_Rect * +tilebuf_get_render_rects(Tilebuf *tb) +{ + Tilebuf_Rect *rects = NULL; + int x, y; + + for (y = 0; y < tb->tiles.h; y++) + { + for (x = 0; x < tb->tiles.w; x++) + { + if (TILE(tb, x, y).redraw) + { + int can_expand_x = 1, can_expand_y = 1; + Tilebuf_Rect *r = NULL; + int xx = 0, yy = 0; + r = calloc(1, sizeof(Tilebuf_Rect)); +/* amalgamate tiles */ +#if 1 + while (can_expand_x) + { + xx++; + if ((x + xx) >= tb->tiles.w) + can_expand_x = 0; + else if (!(TILE(tb, x + xx, y).redraw)) + can_expand_x = 0; + if (can_expand_x) + TILE(tb, x + xx, y).redraw = 0; + } + while (can_expand_y) + { + int i; + + yy++; + if ((y + yy) >= tb->tiles.h) + can_expand_y = 0; + if (can_expand_y) + { + for (i = x; i < x + xx; i++) + { + if (!(TILE(tb, i, y + yy).redraw)) + { + can_expand_y = 0; + break; + } + } + } + if (can_expand_y) + { + for (i = x; i < x + xx; i++) + TILE(tb, i, y + yy).redraw = 0; + } + } + TILE(tb, x, y).redraw = 0; +#else + xx = 1; + yy = 1; +#endif + r->x = x * tb->tile_size.w; + r->y = y * tb->tile_size.h; + r->w = (xx) * tb->tile_size.w; + r->h = (yy) * tb->tile_size.h; + rects = evas_object_list_append(rects, r); + x = x + (xx - 1); + } + } + } + return rects; +} + +void +tilebuf_free_render_rects(Tilebuf_Rect *rects) +{ + while (rects) + { + Tilebuf_Rect *r; + + r = rects; + rects = evas_object_list_remove(rects, r); + free(r); + } +} + +/* need a way of getting rectangles to: blit, re-render */ + + + + + +/* internal usage */ + +static void +tilebuf_setup(Tilebuf *tb) +{ + if (tb->tiles.tiles) free(tb->tiles.tiles); + tb->tiles.tiles = NULL; + + tb->tiles.w = (tb->outbuf_w + (tb->tile_size.w - 1)) / tb->tile_size.w; + tb->tiles.h = (tb->outbuf_h + (tb->tile_size.h - 1)) / tb->tile_size.h; + + tb->tiles.tiles = malloc(tb->tiles.w * tb->tiles.h * sizeof(Tilebuf_Tile)); + + if (!tb->tiles.tiles) + { + tb->tiles.w = 0; + tb->tiles.h = 0; + return; + } + memset(tb->tiles.tiles, 0, tb->tiles.w * tb->tiles.h * sizeof(Tilebuf_Tile)); +} + +static int +tilebuf_x_intersect(Tilebuf *tb, int x, int w, int *x1, int *x2, int *x1_fill, int *x2_fill) +{ + return tilebuf_intersect(tb->tile_size.w, tb->outbuf_w, tb->tiles.w, + x, w, x1, x2, x1_fill, x2_fill); +} + +static int +tilebuf_y_intersect(Tilebuf *tb, int y, int h, int *y1, int *y2, int *y1_fill, int *y2_fill) +{ + return tilebuf_intersect(tb->tile_size.h, tb->outbuf_h, tb->tiles.h, + y, h, y1, y2, y1_fill, y2_fill); +} + +static int +tilebuf_intersect(int tsize, int tlen, int tnum, int x, int w, int *x1, int *x2, int *x1_fill, int *x2_fill) +{ + int p1, p2; + + /* initial clip out of region */ + if ((x + w) <= 0) return 0; + if (x >= tlen) return 0; + + /* adjust x & w so it all fits in region */ + if (x < 0) + { + w += x; + x = 0; + } + if (w < 0) return 0; + if ((x + w) > tlen) w = tlen - x; + + /* now figure if the first edge is fully filling its tile */ + p1 = (x) / tsize; + if ((p1 * tsize) == (x)) *x1_fill = 1; + else *x1_fill = 0; + *x1 = p1; + + /* now figure if the last edge is fully filling its tile */ + p2 = (x + w - 1) / tsize; + if (((p2 + 1) * tsize) == (x + w)) *x2_fill = 1; + else *x2_fill = 0; + *x2 = p2; + + return 1; + tnum = 0; +} diff --git a/legacy/evas/src/lib/engines/directfb/Makefile.am b/legacy/evas/src/lib/engines/directfb/Makefile.am new file mode 100644 index 0000000000..30b39064d0 --- /dev/null +++ b/legacy/evas/src/lib/engines/directfb/Makefile.am @@ -0,0 +1,38 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = 1.4 foreign + +# A list of all the files in the current directory which can be regenerated +MAINTAINERCLEANFILES = Makefile.in + +LDFLAGS = -L/usr/local/lib +INCLUDES = \ + -I. \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/lib/include \ + -I$(includedir) \ + -I/usr/local/include \ + @DIRECTFB_CFLAGS@\ + @freetype_cflags@ + +if BUILD_ENGINE_DIRECTFB + +noinst_LTLIBRARIES = libevas_engine_directfb.la +libevas_engine_directfb_la_SOURCES = \ +evas_engine_dfb.c \ +evas_engine_dfb_image_objects.c \ +evas_engine_dfb_image_objects.h \ +evas_engine_dfb.h + +libevas_engine_directfb_la_LIBADD = $(LDFLAGS) @DIRECTFB_LIBS@ + +libevas_engine_directfb_la_DEPENDENCIES = \ +$(top_builddir)/config.h + +endif + +EXTRA_DIST = \ +evas_engine_dfb.c \ +evas_engine_dfb_image_objects.c \ +evas_engine_dfb_image_objects.h \ +evas_engine_dfb.h diff --git a/legacy/evas/src/lib/engines/directfb/evas_engine_dfb.c b/legacy/evas/src/lib/engines/directfb/evas_engine_dfb.c new file mode 100644 index 0000000000..998a6fb18a --- /dev/null +++ b/legacy/evas/src/lib/engines/directfb/evas_engine_dfb.c @@ -0,0 +1,938 @@ +#include "evas_engine_dfb.h" +#include +#include + +Evas_Func evas_engine_directfb_func = { + evas_engine_directfb_info, + evas_engine_directfb_info_free, + evas_engine_directfb_setup, + evas_engine_directfb_output_free, + evas_engine_directfb_output_resize, + evas_engine_directfb_output_tile_size_set, + evas_engine_directfb_output_redraws_rect_add, + evas_engine_directfb_output_redraws_rect_del, + evas_engine_directfb_output_redraws_clear, + evas_engine_directfb_output_redraws_next_update_get, + evas_engine_directfb_output_redraws_next_update_push, + evas_engine_directfb_output_flush, + /* draw context virtual methods */ + evas_engine_directfb_context_new, + evas_engine_directfb_context_free, + evas_engine_directfb_context_clip_set, + evas_engine_directfb_context_clip_clip, + evas_engine_directfb_context_clip_unset, + evas_engine_directfb_context_clip_get, + evas_engine_directfb_context_color_set, + evas_engine_directfb_context_color_get, + evas_engine_directfb_context_multiplier_set, + evas_engine_directfb_context_multiplier_unset, + evas_engine_directfb_context_multiplier_get, + evas_engine_directfb_context_cutout_add, + evas_engine_directfb_context_cutout_clear, + /* rectangle draw funcs */ + evas_engine_directfb_draw_rectangle, + /* line draw funcs */ + evas_engine_directfb_line_draw, + /* poly draw funcs */ + evas_engine_directfb_polygon_point_add, + evas_engine_directfb_polygon_points_clear, + evas_engine_directfb_polygon_draw, + /* gardient draw funcs */ + evas_engine_directfb_gradient_color_add, + evas_engine_directfb_gradient_colors_clear, + evas_engine_directfb_gradient_draw, + /* image draw funcs */ + evas_engine_directfb_image_load, + evas_engine_directfb_image_new_from_data, + evas_engine_directfb_image_new_from_copied_data, + evas_engine_directfb_image_free, + evas_engine_directfb_image_size_get, + evas_engine_directfb_image_size_set, + evas_engine_directfb_image_dirty_region, + evas_engine_directfb_image_data_get, + evas_engine_directfb_image_data_put, + evas_engine_directfb_image_alpha_set, + evas_engine_directfb_image_alpha_get, + evas_engine_directfb_image_draw, + evas_engine_directfb_image_comment_get, + evas_engine_directfb_image_format_get, + + evas_engine_directfb_image_cache_flush, + evas_engine_directfb_image_cache_set, + evas_engine_directfb_image_cache_get, + /* more to come */ + evas_engine_directfb_font_load, + evas_engine_directfb_font_free, + evas_engine_directfb_font_ascent_get, + evas_engine_directfb_font_descent_get, + evas_engine_directfb_font_max_ascent_get, + evas_engine_directfb_font_max_descent_get, + evas_engine_directfb_font_string_size_get, + evas_engine_directfb_font_inset_get, + evas_engine_directfb_font_h_advance_get, + evas_engine_directfb_font_v_advance_get, + evas_engine_directfb_font_char_coords_get, + evas_engine_directfb_font_char_at_coords_get, + evas_engine_directfb_font_draw, + /* font cache functions */ + evas_engine_directfb_font_cache_flush, + evas_engine_directfb_font_cache_set, + evas_engine_directfb_font_cache_get +}; + + + +void * +evas_engine_directfb_info(Evas * e) +{ + Evas_Engine_Info_DirectFB *info; + + info = calloc(1, sizeof(Evas_Engine_Info_DirectFB)); + if (!info) + return NULL; + + info->magic.magic = rand(); + + return info; + e = NULL; +} + +void +evas_engine_directfb_info_free(Evas *e, void *info) +{ + Evas_Engine_Info_DirectFB *in; + + in = (Evas_Engine_Info_DirectFB *)info; + free(in); +} + +void +evas_engine_directfb_setup(Evas * e, void *in) +{ + Evas_Engine_Info_DirectFB *info; + IDirectFBImageProvider *provider; + + info = (Evas_Engine_Info_DirectFB *) in; + /* if we arent set to directfb, why the hell do we get called?! */ + if (evas_output_method_get(e) != RENDER_METHOD_DIRECTFB) + return; + /* lets just set up */ + e->engine.data.output = evas_engine_directfb_output_setup(e->output.w, + e->output.h, + info->info.dfb, + info->info.surface, + info->info.flags); + if (!e->engine.data.output) + return; + e->engine.func = &evas_engine_directfb_func; + e->engine.data.context = e->engine.func->context_new(e->engine.data.output); +} + +void * +evas_engine_directfb_output_setup(int w, int h, IDirectFB * dfb, + IDirectFBSurface * surf, + DFBSurfaceDrawingFlags flags) +{ + Render_Engine *re; + IDirectFBSurface *buf; + DFBSurfaceDescription dsc; + RGBA_Image *im; + + re = calloc(1, sizeof(Render_Engine)); + /* if we haven't initialized - init (automatic abort if already done) */ + cpu_init(); + blend_init(); + image_init(); + convert_init(); + scale_init(); + rectangle_init(); + gradient_init(); + polygon_init(); + line_init(); + font_init(); + draw_init(); + tilebuf_init(); + + re->tb = tilebuf_new(w, h); + /* in preliminary tests 16x16 gave highest framerates */ + tilebuf_set_tile_size(re->tb, 16, 16); + re->dfb = dfb; + re->surface = surf; + + memset(&dsc, 0, sizeof(DFBSurfaceDescription)); + dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT; + dsc.width = w; + dsc.height = h; + dsc.pixelformat = DSPF_ARGB; + + if (dfb->CreateSurface(dfb, &dsc, &buf) == DFB_OK) + re->backbuf = buf; + /* FIXME else exit with error. */ + + re->backbuf->SetDrawingFlags(re->backbuf, flags); + + /* We create a "fake" RGBA_Image which points the to DFB surface. Each access + * to that surface is wrapped in Lock / Unlock calls whenever the data is + * manipulated directly. */ + im = image_new(); + if (!im) return; + im->image = image_surface_new(); + if (!im->image) + { + image_free(im); + return; + } + im->image->w = w; + im->image->h = h; + im->image->data =(void*) re->backbuf; + im->image->no_free = 1; + re->rgba_image = im; + + return re; +} + +void +evas_engine_directfb_output_free(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + tilebuf_free(re->tb); + if (re->rects) + tilebuf_free_render_rects(re->rects); + re->backbuf->Release(re->backbuf); + image_free(re->rgba_image); + free(re); +} + +void +evas_engine_directfb_output_resize(void *data, int w, int h) +{ + Render_Engine *re; + IDirectFBSurface *new_surf; + DFBSurfaceDescription dsc; + + re = (Render_Engine *) data; + if (w == re->tb->outbuf_w && h == re->tb->outbuf_h) return; + tilebuf_free(re->tb); + re->tb = tilebuf_new(w, h); + if (re->tb) + tilebuf_set_tile_size(re->tb, 16, 16); + + memset(&dsc, 0, sizeof(DFBSurfaceDescription)); + dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT; + dsc.width = w; + dsc.height = h; + dsc.pixelformat = DSPF_ARGB; + + if (re->dfb->CreateSurface(re->dfb, &dsc, &new_surf) == DFB_OK) + { + new_surf->StretchBlit(new_surf, re->backbuf, NULL, NULL); + re->backbuf->Release(re->backbuf); + re->backbuf = new_surf; + re->rgba_image->image->w = w; + re->rgba_image->image->h = h; + re->rgba_image->image->data = new_surf; + } +} + + void +evas_engine_directfb_output_tile_size_set(void *data, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + tilebuf_set_tile_size(re->tb, w, h); +} + +void +evas_engine_directfb_output_redraws_rect_add(void *data, int x, int y, int w, + int h) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + tilebuf_add_redraw(re->tb, x, y, w, h); +} + +void +evas_engine_directfb_output_redraws_rect_del(void *data, int x, int y, int w, + int h) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + tilebuf_del_redraw(re->tb, x, y, w, h); +} + +void +evas_engine_directfb_output_redraws_clear(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + tilebuf_clear(re->tb); +} + +void * +evas_engine_directfb_output_redraws_next_update_get(void *data, int *x, int *y, + int *w, int *h, int *cx, + int *cy, int *cw, int *ch) +{ + Render_Engine *re; + RGBA_Image *surface; + Tilebuf_Rect *rect; + Evas_Object_List *l; + int ux, uy, uw, uh; + static first = 1; + + re = (Render_Engine *) data; + if (re->end) + { + re->end = 0; + return NULL; + } + if (!re->rects) + { + re->rects = tilebuf_get_render_rects(re->tb); + re->cur_rect = (Evas_Object_List *) re->rects; + } + if (!re->cur_rect) + return NULL; + rect = (Tilebuf_Rect *) re->cur_rect; + ux = rect->x; + uy = rect->y; + uw = rect->w; + uh = rect->h; + re->cur_rect = re->cur_rect->next; + if (!re->cur_rect) + { + tilebuf_free_render_rects(re->rects); + re->rects = NULL; + re->end = 1; + } + *cx = *x = ux; + *cy = *y = uy; + *cw = *w = uw; + *ch = *h = uh; + + /* Return the "fake" surface so it is passed to the drawing routines. */ + return re->rgba_image; +} + +void +evas_engine_directfb_output_redraws_next_update_push(void *data, void *surface, + int x, int y, int w, int h) +{ + Render_Engine *re; + DFBRectangle rect; + + rect.x = x; + rect.y = y; + rect.w = w; + rect.h = h; + re = (Render_Engine *) data; + re->surface->Blit(re->surface, re->backbuf, &rect, x, y); + cpu_end_opt(); +} + +void +evas_engine_directfb_output_flush(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *) data; +} + +void * +evas_engine_directfb_context_new(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + return draw_context_new(); +} + +void +evas_engine_directfb_context_free(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + draw_context_free(context); +} + +void +evas_engine_directfb_context_clip_set(void *data, void *context, int x, int y, + int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + draw_context_set_clip(context, x, y, w, h); +} + +void +evas_engine_directfb_context_clip_clip(void *data, void *context, int x, int y, + int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + draw_context_clip_clip(context, x, y, w, h); +} + +void +evas_engine_directfb_context_clip_unset(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + draw_context_unset_clip(context); +} + +int +evas_engine_directfb_context_clip_get(void *data, void *context, int *x, int *y, + int *w, int *h) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + *x = ((RGBA_Draw_Context *) data)->clip.x; + *y = ((RGBA_Draw_Context *) data)->clip.y; + *w = ((RGBA_Draw_Context *) data)->clip.w; + *h = ((RGBA_Draw_Context *) data)->clip.h; + return ((RGBA_Draw_Context *) data)->clip.use; +} + +void +evas_engine_directfb_context_color_set(void *data, void *context, int r, int g, + int b, int a) +{ + Render_Engine *re; + RGBA_Draw_Context *dc = (RGBA_Draw_Context *) context; + + re = (Render_Engine *) data; + draw_context_set_color(dc, r, g, b, a); +} + +int +evas_engine_directfb_context_color_get(void *data, void *context, int *r, + int *g, int *b, int *a) +{ + + DATA32 p; + DATA8 *pp; + RGBA_Draw_Context *dc = (RGBA_Draw_Context *) context; + + p = dc->col.col; + pp = (DATA8 *) & p; + *r = R_VAL(pp); + *g = G_VAL(pp); + *b = B_VAL(pp); + *a = A_VAL(pp); +} + +void +evas_engine_directfb_context_multiplier_set(void *data, void *context, int r, + int g, int b, int a) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + draw_context_set_multiplier(context, r, g, b, a); +} + +void +evas_engine_directfb_context_multiplier_unset(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + draw_context_unset_multiplier(context); +} + +int +evas_engine_directfb_context_multiplier_get(void *data, void *context, int *r, + int *g, int *b, int *a) +{ + DATA32 p; + DATA8 *pp; + RGBA_Draw_Context *dc = (RGBA_Draw_Context *) context; + + p = dc->mul.col; + pp = (DATA8 *) & p; + *r = R_VAL(pp); + *g = G_VAL(pp); + *b = B_VAL(pp); + *a = A_VAL(pp); + + return dc->mul.use; +} + +void +evas_engine_directfb_context_cutout_add(void *data, void *context, int x, int y, + int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + draw_context_add_cutout(context, x, y, w, h); +} + +void +evas_engine_directfb_context_cutout_clear(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + draw_context_clear_cutouts(context); +} + +/* + * Rectangles + * + * + * + * */ + +void +evas_engine_directfb_draw_rectangle(void *data, void *context, void *surface, + int x, int y, int w, int h) +{ + int c, cx, cy, cw, ch; + Cutout_Rect *rects, *r; + RGBA_Draw_Context *dc = (RGBA_Draw_Context *) context; + Evas_Object_List *l; + Render_Engine *re = (Render_Engine *) data; + + /* handle cutouts here! */ + + /* no cutouts - cut right to the chase */ + if (!dc->cutout.rects) + { + rectangle_draw_internal(data, dc, x, y, w, h); + return; + } + /* save out clip info */ + c = dc->clip.use; + cx = dc->clip.x; + cy = dc->clip.y; + cw = dc->clip.w; + ch = dc->clip.h; + draw_context_clip_clip(dc, 0, 0, re->tb->outbuf_w, re->tb->outbuf_h); + draw_context_clip_clip(dc, x, y, w, h); + /* our clip is 0 size.. abort */ + if ((dc->clip.w <= 0) || (dc->clip.h <= 0)) + { + dc->clip.use = c; + dc->clip.x = cx; + dc->clip.y = cy; + dc->clip.w = cw; + dc->clip.h = ch; + return; + } + rects = draw_context_apply_cutouts(dc); + for (l = (Evas_Object_List *) rects; l; l = l->next) + { + r = (Cutout_Rect *) l; + draw_context_set_clip(dc, r->x, r->y, r->w, r->h); + rectangle_draw_internal(data, dc, x, y, w, h); + } + draw_context_apply_free_cutouts(rects); + /* restore clip info */ + dc->clip.use = c; + dc->clip.x = cx; + dc->clip.y = cy; + dc->clip.w = cw; + dc->clip.h = ch; + +} + +void +rectangle_draw_internal(void *data, void *context, int x, int y, int w, int h) +{ + int yy; + DATA32 *ptr; + RGBA_Draw_Context *dc = (RGBA_Draw_Context *) context; + Render_Engine *re = (Render_Engine *) data; + int r, g, b, a; + + if ((w <= 0) || (h <= 0)) + return; + + if (!(RECTS_INTERSECT(x, y, w, h, 0, 0, re->tb->outbuf_w, re->tb->outbuf_h))) + return; + + if (x < 0) + { + w += x; + x = 0; + } + if ((x + w) > re->tb->outbuf_w) + w = re->tb->outbuf_w - x; + if (y < 0) + { + h += y; + y = 0; + } + if ((w <= 0) || (h <= 0)) + return; + + if (dc->clip.use) + { + if (dc->clip.x > x) + { + w += x - dc->clip.x; + x = dc->clip.x; + } + if ((dc->clip.x + dc->clip.w) < (x + w)) + w = dc->clip.x + dc->clip.w - x; + if (dc->clip.y > y) + { + h += y - dc->clip.y; + y = dc->clip.y; + } + if ((dc->clip.y + dc->clip.h) < (y + h)) + h = dc->clip.y + dc->clip.h - y; + } + if ((w <= 0) || (h <= 0)) + return; + + evas_engine_directfb_context_color_get(data, context, &r, &g, &b, &a); + re->backbuf->SetColor(re->backbuf, r, g, b, a); + re->backbuf->FillRectangle(re->backbuf, x, y, w, h); + cpu_end_opt(); +} + +/* + * Lines + * + * + * + * */ + +void +evas_engine_directfb_line_draw(void *data, void *context, void *surface, int x1, + int y1, int x2, int y2) +{ + int r, g, b, a; + Render_Engine *re = (Render_Engine *) data; + + evas_engine_directfb_context_color_get(data, context, &r, &g, &b, &a); + + re->backbuf->SetColor(re->backbuf, r, g, b, a); + re->backbuf->DrawLine(re->backbuf, x1, y1, x2, y2); +} + +/* + * Polygons + * + * + * + * */ + +void * +evas_engine_directfb_polygon_point_add(void *data, void *context, void *polygon, int x, int y) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return polygon_point_add(polygon, x, y); + context = NULL; +} + +void * +evas_engine_directfb_polygon_points_clear(void *data, void *context, void *polygon) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return polygon_points_clear(polygon); + context = NULL; +} + +void +evas_engine_directfb_polygon_draw(void *data, void *context, void *surface, void *polygon) +{ + + Render_Engine *re; + IDirectFBSurface *surf; + RGBA_Image *im; + void *p; + int pitch; + + re = (Render_Engine *)data; + im = surface; + surf = (IDirectFBSurface *)im->image->data; + surf->Lock(surf, DSLF_WRITE, &p, & pitch); + im->image->data = p; + polygon_draw(im, context, polygon); + surf->Unlock(surf); + im->image->data = (void *)surf; + cpu_end_opt(); +} + + +/* + * Gradients + * + * + * + * */ +void * +evas_engine_directfb_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + if (!gradient) + gradient = gradient_new(); + gradient_color_add(gradient, r, g, b, a, distance); + return gradient; + context = NULL; +} + +void * +evas_engine_directfb_gradient_colors_clear(void *data, void *context, void *gradient) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + if (gradient) gradient_free(gradient); + return NULL; + context = NULL; +} + +void +evas_engine_directfb_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle) +{ + Render_Engine *re; + IDirectFBSurface *surf; + RGBA_Image *im; + void *p; + int pitch; + + re = (Render_Engine *)data; + im = surface; + surf = (IDirectFBSurface *)im->image->data; + surf->Lock(surf, DSLF_WRITE, &p, & pitch); + im->image->data = p; + gradient_draw(im, context, x, y, w, h, gradient, angle); + surf->Unlock(surf); + im->image->data = (void *)surf; + cpu_end_opt(); +} + + + +/* + * Font objects + * + * + * + * */ + +void * +evas_engine_directfb_font_load(void *data, char *name, int size) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + return font_load(name, size); +} + +void +evas_engine_directfb_font_free(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + font_free(font); +} + +int +evas_engine_directfb_font_ascent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + return font_ascent_get(font); +} + +int +evas_engine_directfb_font_descent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + return font_descent_get(font); +} + +int +evas_engine_directfb_font_max_ascent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + return font_max_ascent_get(font); +} + +int +evas_engine_directfb_font_max_descent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + return font_max_descent_get(font); +} + +void +evas_engine_directfb_font_string_size_get(void *data, void *font, char *text, + int *w, int *h) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + font_query_size(font, text, w, h); +} + +int +evas_engine_directfb_font_inset_get(void *data, void *font, char *text) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + return font_query_inset(font, text); +} + +int +evas_engine_directfb_font_h_advance_get(void *data, void *font, char *text) +{ + Render_Engine *re; + int h, v; + + re = (Render_Engine *) data; + font_query_advance(font, text, &h, &v); + return h; +} + +int +evas_engine_directfb_font_v_advance_get(void *data, void *font, char *text) +{ + Render_Engine *re; + int h, v; + + re = (Render_Engine *) data; + font_query_advance(font, text, &h, &v); + return v; +} + +int +evas_engine_directfb_font_char_coords_get(void *data, void *font, char *text, + int pos, int *cx, int *cy, int *cw, + int *ch) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + return font_query_char_coords(font, text, pos, cx, cy, cw, ch); +} + +int +evas_engine_directfb_font_char_at_coords_get(void *data, void *font, char *text, + int x, int y, int *cx, int *cy, + int *cw, int *ch) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + return font_query_text_at_pos(font, text, x, y, cx, cy, cw, ch); +} + +void +evas_engine_directfb_font_draw(void *data, void *context, void *surface, + void *font, int x, int y, int w, int h, int ow, + int oh, char *text) +{ + Render_Engine *re; + void *p; + RGBA_Image *im; + IDirectFBSurface * surf; + int pitch; + + im = surface; + re = (Render_Engine *)data; + surf = (IDirectFBSurface *)im->image->data; + surf->Lock(surf, DSLF_WRITE, &p, &pitch); + im->image->data = p; + if ((w == ow) && (h == oh)) + font_draw(im, context, font, x, y, text); + else + { + /* create output surface size ow x oh and scale to w x h */ + RGBA_Draw_Context *dc, *dc_in; + + dc_in = context; + dc = draw_context_new(); + if (dc) + { + RGBA_Image *im; + + dc->col.col = dc_in->col.col; + im = image_create(ow, oh); + if (im) + { + int max_ascent; + int i, j; + + im->flags |= RGBA_IMAGE_HAS_ALPHA; + j = ow * oh; + for (i = 0; i < j; i++) im->image->data[i] = (dc->col.col & 0xffffff); + + max_ascent = font_max_ascent_get(font); + + font_draw(im, dc, font, 0, max_ascent, text); + cpu_end_opt(); + scale_rgba_in_to_out_clip_smooth(im, surface, context, + 0, 0, ow, oh, + x, y - ((max_ascent * h) / oh), + w, h); + image_free(im); + } + draw_context_free(dc); + } + } + + surf->Unlock(surf); + im->image->data = (void *)surf; + cpu_end_opt(); +} + +void +evas_engine_directfb_font_cache_flush(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + font_flush(); +} + +void +evas_engine_directfb_font_cache_set(void *data, int bytes) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + font_cache_set(bytes); +} + +int +evas_engine_directfb_font_cache_get(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + return font_cache_get(); +} + diff --git a/legacy/evas/src/lib/engines/directfb/evas_engine_dfb.h b/legacy/evas/src/lib/engines/directfb/evas_engine_dfb.h new file mode 100644 index 0000000000..a29e9e4046 --- /dev/null +++ b/legacy/evas/src/lib/engines/directfb/evas_engine_dfb.h @@ -0,0 +1,182 @@ +#ifndef EVAS_ENGINE_DFB_H +#define EVAS_ENGINE_DFB_H +#include "evas_common.h" +#include "evas_private.h" +#include "evas_engine_api_directfb.h" +#include "Evas_Engine_DirectFB.h" +#include "evas_engine_dfb_image_objects.h" + +typedef struct _Render_Engine Render_Engine; + +struct _Render_Engine +{ + Tilebuf *tb; + Tilebuf_Rect *rects; + Evas_Object_List *cur_rect; + IDirectFB *dfb; + IDirectFBSurface *surface; + IDirectFBSurface *backbuf; /* do we need an outbuf beyond this? */ + RGBA_Image *rgba_image; + int end:1; +}; + +void *evas_engine_directfb_info(Evas * evas); +void evas_engine_directfb_info_free(Evas *e, void *info); +void evas_engine_directfb_setup(Evas * evas, void *in); +void *evas_engine_directfb_output_setup(int w, int h, + IDirectFB * dfb, + IDirectFBSurface * surf, + DFBSurfaceDrawingFlags + flags); +void evas_engine_directfb_output_free(void *data); +void evas_engine_directfb_output_resize(void *data, int w, + int h); +void evas_engine_directfb_output_tile_size_set(void *data, int w, + int h); +void evas_engine_directfb_output_redraws_rect_add(void *data, + int x, int y, + int w, int h); +void evas_engine_directfb_output_redraws_rect_del(void *data, + int x, int y, + int w, int h); +void evas_engine_directfb_output_redraws_clear(void *data); +void *evas_engine_directfb_output_redraws_next_update_get(void + *data, + int *x, + int *y, + int *w, + int *h, + int *cx, + int *cy, + int *cw, + int + *ch); +void evas_engine_directfb_output_redraws_next_update_push(void + *data, + void + *surface, + int x, + int y, + int w, + int h); +void evas_engine_directfb_output_flush(void *data); +void *evas_engine_directfb_context_new(void *data); +void evas_engine_directfb_context_free(void *data, + void *context); +void evas_engine_directfb_context_clip_set(void *data, + void *context, int x, + int y, int w, int h); +void evas_engine_directfb_context_clip_clip(void *data, + void *context, int x, + int y, int w, int h); +void evas_engine_directfb_context_clip_unset(void *data, + void *context); +int evas_engine_directfb_context_clip_get(void *data, + void *context, int *x, + int *y, int *w, + int *h); +void evas_engine_directfb_context_color_set(void *data, + void *context, int r, + int g, int b, int a); +int evas_engine_directfb_context_color_get(void *data, + void *context, + int *r, int *g, + int *b, int *a); +void evas_engine_directfb_context_multiplier_set(void *data, + void *context, + int r, int g, + int b, int a); +void evas_engine_directfb_context_multiplier_unset(void *data, + void + *context); +int evas_engine_directfb_context_multiplier_get(void *data, + void *context, + int *r, int *g, + int *b, int *a); +void evas_engine_directfb_context_cutout_add(void *data, + void *context, + int x, int y, int w, + int h); +void evas_engine_directfb_context_cutout_clear(void *data, + void *context); +void evas_engine_directfb_draw_rectangle(void *data, + void *context, + void *surface, int x, + int y, int w, int h); +void evas_engine_directfb_line_draw(void *data, void *context, + void *surface, int x1, + int y1, int x2, int y2); +void *evas_engine_directfb_polygon_point_add(void *data, + void *context, + void *polygon, int x, + int y); +void *evas_engine_directfb_polygon_points_clear(void *data, + void *context, + void *polygon); +void evas_engine_directfb_polygon_draw(void *data, void *context, + void *surface, + void *polygon); +void *evas_engine_directfb_gradient_color_add(void *data, + void *context, + void *gradient, + int r, int g, int b, + int a, + int distance); +void *evas_engine_directfb_gradient_colors_clear(void *data, + void *context, + void *gradient); +void evas_engine_directfb_gradient_draw(void *data, + void *context, + void *surface, + void *gradient, int x, + int y, int w, int h, + double angle); +void *evas_engine_directfb_font_load(void *data, char *name, + int size); +void evas_engine_directfb_font_free(void *data, void *font); +int evas_engine_directfb_font_ascent_get(void *data, + void *font); +int evas_engine_directfb_font_descent_get(void *data, + void *font); +int evas_engine_directfb_font_max_ascent_get(void *data, + void *font); +int evas_engine_directfb_font_max_descent_get(void *data, + void *font); +void evas_engine_directfb_font_string_size_get(void *data, + void *font, + char *text, + int *w, int *h); +int evas_engine_directfb_font_inset_get(void *data, void *font, + char *text); +int evas_engine_directfb_font_h_advance_get(void *data, + void *font, + char *text); +int evas_engine_directfb_font_v_advance_get(void *data, + void *font, + char *text); +int evas_engine_directfb_font_char_coords_get(void *data, + void *font, + char *text, + int pos, int *cx, + int *cy, int *cw, + int *ch); +int evas_engine_directfb_font_char_at_coords_get(void *data, + void *font, + char *text, + int x, int y, + int *cx, + int *cy, + int *cw, + int *ch); +void evas_engine_directfb_font_draw(void *data, void *context, + void *surface, void *font, + int x, int y, int w, int h, + int ow, int oh, char *text); +void evas_engine_directfb_font_cache_flush(void *data); +void evas_engine_directfb_font_cache_set(void *data, int bytes); +int evas_engine_directfb_font_cache_get(void *data); + +void rectangle_draw_internal(void *dst, void *dc, int x, int y, + int w, int h); + +#endif diff --git a/legacy/evas/src/lib/engines/directfb/evas_engine_dfb_image_objects.c b/legacy/evas/src/lib/engines/directfb/evas_engine_dfb_image_objects.c new file mode 100644 index 0000000000..d06e73b95d --- /dev/null +++ b/legacy/evas/src/lib/engines/directfb/evas_engine_dfb_image_objects.c @@ -0,0 +1,806 @@ +#include "evas_engine_dfb.h" +#include +#include + +static Evas_Hash * images = NULL; +static Evas_Object_List * cache = NULL; +static int cache_size = 0; +static int cache_usage = 0; + +static RGBA_Image *_dfb_image_create(Render_Engine *, int w, int h); +static void _dfb_image_free(RGBA_Image *im); +static void _dfb_image_unref(RGBA_Image *im); +static void _dfb_image_dirty(RGBA_Image *im); +static void _dfb_image_set_cache(int size); +static int _dfb_image_get_cache(); +static void _dfb_image_flush_cache(); +static void _dfb_image_cache(RGBA_Image *im); +static void _dfb_image_uncache(RGBA_Image *im); +static void _dfb_image_store(RGBA_Image *im); +static void _dfb_image_unstore(RGBA_Image *im); +static void _dfb_image_ref(RGBA_Image *im); +static void _dfb_image_unref(RGBA_Image *im); + +static RGBA_Image *_dfb_image_find(const char *filename, const char *key, DATA64 timestamp); + +/* + * Image objects + */ + +void * +evas_engine_directfb_image_load(void *data, char *file, char *key, int *error) +{ + Render_Engine *re; + DFBSurfaceDescription dsc; + DFBImageDescription img_desc; + IDirectFBImageProvider *provider; + IDirectFBSurface *image; + RGBA_Image *im = NULL; + DFBResult err; + DATA64 mod_time; + + re = (Render_Engine *) data; + *error = 0; + + mod_time = evas_file_modified_time(file); + im = _dfb_image_find(file, key, mod_time); + if (im) + { + _dfb_image_ref(im); + return im; + } + + /* Image is not in cache or not already used -> create it */ + re->dfb->CreateImageProvider(re->dfb, file, &provider); + provider->GetSurfaceDescription(provider, &dsc); + provider->GetImageDescription(provider, &img_desc); + + dsc.flags |= DSDESC_PIXELFORMAT; + dsc.pixelformat = DSPF_ARGB; + + re->dfb->CreateSurface(re->dfb, &dsc, &image); + provider->RenderTo(provider, image, NULL); + provider->Release(provider); + + im = image_new(); + im->image = image_surface_new(); + if (!im->image) + { + _dfb_image_free(im); + return NULL; + } + im->image->w = dsc.width; + im->image->h = dsc.height; + im->image->data = (void *)image; + im->image->no_free = 0; + if (img_desc.caps & DICAPS_ALPHACHANNEL) + im->flags |= RGBA_IMAGE_HAS_ALPHA; + + im->timestamp = mod_time; + if (file) + im->info.file = strdup(file); + if (key) + im->info.key = strdup(key); + _dfb_image_ref(im); + + return im; +} + +void * +evas_engine_directfb_image_new_from_data(void *data, int w, int h, + DATA32 * image_data) +{ + /* FIXME document this peculiarity */ + return evas_engine_directfb_image_new_from_copied_data(data, w, h, image_data); +} + +void * +evas_engine_directfb_image_new_from_copied_data(void *data, int w, int h, + DATA32 * image_data) +{ + + Render_Engine *re; + RGBA_Image *im = NULL; + IDirectFBSurface *surf; + void *p; + int pitch; + + re = (Render_Engine *) data; + im = _dfb_image_create(re, w, h); + + if (im) + { + surf = (IDirectFBSurface *) im->image->data; + if (surf->Lock(surf, DSLF_WRITE, &p, &pitch) == DFB_OK) + { + memcpy(p, image_data, w * h * sizeof(DATA32)); + surf->Unlock(surf); + } + } + /* FIXME */ + free(image_data); + return im; +} + +void +evas_engine_directfb_image_free(void *data, void *image) +{ + Render_Engine *re; + + re = (Render_Engine *) data; + _dfb_image_unref(image); +} + +void +evas_engine_directfb_image_size_get(void *data, void *image, int *w, int *h) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *) data; + im = image; + if (w) + *w = im->image->w; + if (h) + *h = im->image->h; +} + +void * +evas_engine_directfb_image_size_set(void *data, void *image, int w, int h) +{ + Render_Engine *re; + IDirectFBSurface *old_surf; + IDirectFBSurface *new_surf; + DFBRectangle outrect; + RGBA_Image *im, *im_old; + + re = (Render_Engine *) data; + im_old = image; + im = _dfb_image_create(re, w,h); + old_surf = (IDirectFBSurface *) im_old->image->data; + if (im) + { + outrect.x = 0; + outrect.y = 0; + outrect.w = w; + outrect.h = h; + new_surf = (IDirectFBSurface *) im->image->data; + new_surf->StretchBlit(new_surf, old_surf, NULL, &outrect); + } + cpu_end_opt; + _dfb_image_unref(im_old); + + return im; +} + +void * +evas_engine_directfb_image_dirty_region(void *data, void *image, int x, int y, + int w, int h) +{ + _dfb_image_dirty(image); + return image; + x = 0; + y = 0; + w = 0; + h = 0; +} + +void * +evas_engine_directfb_image_data_get(void *data, void *image, int to_write, + DATA32 ** image_data) +{ + Render_Engine *re; + RGBA_Image *im; + IDirectFBSurface *surf; + void *p; + int pitch; + int *buf = NULL; + int size, i, tmp; + + re = (Render_Engine *) data; + im = image; + surf = (IDirectFBSurface *) im->image->data; + size = im->image->w * im->image->h * sizeof(DATA32); + surf->Lock(surf, DSLF_READ, &p, &pitch); + + if (buf = malloc(size)) + buf = memcpy(buf, p, size); + *image_data = buf; + + surf->Unlock(surf); + return im; +} + +void * +evas_engine_directfb_image_data_put(void *data, void *image, + DATA32 * image_data) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (image_data != im->image->data) + { + int w, h; + + w = im->image->w; + h = im->image->h; + _dfb_image_unref(im); + return evas_engine_directfb_image_new_from_data(data, w, h, image_data); + } + _dfb_image_dirty(im); + + return im; +} + +void * +evas_engine_directfb_image_alpha_set(void *data, void *image, int has_alpha) +{ + RGBA_Image *im; + + im = image; + if (has_alpha) + im->flags |= RGBA_IMAGE_HAS_ALPHA; + else + im->flags &= ~RGBA_IMAGE_HAS_ALPHA; +} + +int +evas_engine_directfb_image_alpha_get(void *data, void *image) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *) data; + im = image; + if (im->flags & RGBA_IMAGE_HAS_ALPHA) + return 1; + return 0; +} + +void +evas_engine_directfb_image_draw(void *data, void *context, void *surface, + void *image, int src_region_x, int src_region_y, + int src_region_w, int src_region_h, + int dst_region_x, int dst_region_y, + int dst_region_w, int dst_region_h, int smooth) +{ + int src_w, src_h, dst_w, dst_h; + int dst_clip_x, dst_clip_y, dst_clip_w, dst_clip_h; + double horiz_stretch, vert_stretch; + + Render_Engine *re = (Render_Engine *) data; + DFBRectangle inrect; + DFBRectangle outrect; + RGBA_Image *im = (RGBA_Image *) image; + RGBA_Draw_Context *dc = (RGBA_Draw_Context *) context; + IDirectFBSurface *img = (IDirectFBSurface *) im->image->data; + DFBSurfaceDescription dsc; + + src_w = im->image->w; + src_h = im->image->h; + dst_w = re->tb->outbuf_w; + dst_h = re->tb->outbuf_h; + + if (! + (RECTS_INTERSECT + (dst_region_x, dst_region_y, dst_region_w, dst_region_h, 0, 0, dst_w, + dst_h))) + return; + if (! + (RECTS_INTERSECT + (src_region_x, src_region_y, src_region_w, src_region_h, 0, 0, src_w, + src_h))) + return; + if (dc->clip.use) + { + dst_clip_x = dc->clip.x; + dst_clip_y = dc->clip.y; + dst_clip_w = dc->clip.w; + dst_clip_h = dc->clip.h; + if (dst_clip_x < 0) + { + dst_clip_w += dst_clip_x; + dst_clip_x = 0; + } + if (dst_clip_y < 0) + { + dst_clip_h += dst_clip_y; + dst_clip_y = 0; + } + if ((dst_clip_x + dst_clip_w) > dst_w) + dst_clip_w = dst_w - dst_clip_x; + if ((dst_clip_y + dst_clip_h) > dst_h) + dst_clip_h = dst_h - dst_clip_y; + } + else + { + dst_clip_x = 0; + dst_clip_y = 0; + dst_clip_w = dst_w; + dst_clip_h = dst_h; + } + + if (dst_clip_x < dst_region_x) + { + dst_clip_w += dst_clip_x - dst_region_x; + dst_clip_x = dst_region_x; + } + if ((dst_clip_x + dst_clip_w) > (dst_region_x + dst_region_w)) + dst_clip_w = dst_region_x + dst_region_w - dst_clip_x; + if (dst_clip_y < dst_region_y) + { + dst_clip_h += dst_clip_y - dst_region_y; + dst_clip_y = dst_region_y; + } + if ((dst_clip_y + dst_clip_h) > (dst_region_y + dst_region_h)) + dst_clip_h = dst_region_y + dst_region_h - dst_clip_y; + + if ((src_region_w <= 0) || (src_region_h <= 0) || + (dst_region_w <= 0) || (dst_region_h <= 0) || + (dst_clip_w <= 0) || (dst_clip_h <= 0)) + return; + /* sanitise x */ + if (src_region_x < 0) + { + dst_region_x -= (src_region_x * dst_region_w) / src_region_w; + dst_region_w += (src_region_x * dst_region_w) / src_region_w; + src_region_w += src_region_x; + src_region_x = 0; + } + if (src_region_x >= src_w) + return; + if ((src_region_x + src_region_w) > src_w) + { + dst_region_w = (dst_region_w * (src_w - src_region_x)) / (src_region_w); + src_region_w = src_w - src_region_x; + } + if (dst_region_w <= 0) + return; + if (src_region_w <= 0) + return; + if (dst_clip_x < 0) + { + dst_clip_w += dst_clip_x; + dst_clip_x = 0; + } + if (dst_clip_w <= 0) + return; + if (dst_clip_x >= dst_w) + return; + if (dst_clip_x < dst_region_x) + { + dst_clip_w += (dst_clip_x - dst_region_x); + dst_clip_x = dst_region_x; + } + if ((dst_clip_x + dst_clip_w) > dst_w) + { + dst_clip_w = dst_w - dst_clip_x; + } + if (dst_clip_w <= 0) + return; + + /* sanitise y */ + if (src_region_y < 0) + { + dst_region_y -= (src_region_y * dst_region_h) / src_region_h; + dst_region_h += (src_region_y * dst_region_h) / src_region_h; + src_region_h += src_region_y; + src_region_y = 0; + } + if (src_region_y >= src_h) + return; + if ((src_region_y + src_region_h) > src_h) + { + dst_region_h = (dst_region_h * (src_h - src_region_y)) / (src_region_h); + src_region_h = src_h - src_region_y; + } + if (dst_region_h <= 0) + return; + if (src_region_h <= 0) + return; + if (dst_clip_y < 0) + { + dst_clip_h += dst_clip_y; + dst_clip_y = 0; + } + if (dst_clip_h <= 0) + return; + if (dst_clip_y >= dst_h) + return; + if (dst_clip_y < dst_region_y) + { + dst_clip_h += (dst_clip_y - dst_region_y); + dst_clip_y = dst_region_y; + } + if ((dst_clip_y + dst_clip_h) > dst_h) + { + dst_clip_h = dst_h - dst_clip_y; + } + if (dst_clip_h <= 0) + return; + + /* Figure out scale ratios */ + horiz_stretch = (double)dst_region_w / (double)src_region_w; + vert_stretch = (double)dst_region_h / (double)src_region_h; + + inrect.x = src_region_x + floor((dst_clip_x - dst_region_x) / horiz_stretch); + inrect.y = src_region_y + floor((dst_clip_y - dst_region_y) / vert_stretch); + inrect.w = floor(src_region_w * dst_clip_w / dst_region_w); + inrect.h = floor(src_region_h * dst_clip_h / dst_region_h); + + outrect.x = dst_clip_x; + outrect.y = dst_clip_y; + outrect.w = dst_clip_w; + outrect.h = dst_clip_h; + + { + int r, g, b, a; + int mulr, mulg, mulb, mula; + int flags; + + if (im->flags & RGBA_IMAGE_HAS_ALPHA) + flags = DSBLIT_BLEND_COLORALPHA | DSBLIT_BLEND_ALPHACHANNEL; + else + flags = DSBLIT_NOFX; + + evas_engine_directfb_context_color_get(data, context, &r, &g, &b, &a); + if (evas_engine_directfb_context_multiplier_get + (data, context, &mulr, &mulg, &mulb, &mula)) + { + re->backbuf->SetColor(re->backbuf, mulr, mulg, mulb, mula); + flags |= DSBLIT_COLORIZE; + } + else + { + re->backbuf->SetColor(re->backbuf, r, g, b, a); + } + + re->backbuf->SetBlittingFlags(re->backbuf, flags); + re->backbuf->StretchBlit(re->backbuf, img, &inrect, &outrect); + } + + cpu_end_opt(); +} + +void +evas_engine_directfb_image_cache_flush(void *data) +{ + Render_Engine *re; + int tmp_size; + + re = (Render_Engine *) data; + tmp_size = cache_size; + cache_size = 0; + _dfb_image_set_cache(0); + _dfb_image_set_cache(tmp_size); +} + +void +evas_engine_directfb_image_cache_set(void *data, int bytes) +{ + _dfb_image_set_cache(bytes); +} + +int +evas_engine_directfb_image_cache_get(void *data) +{ + return _dfb_image_get_cache(); +} + +char * +evas_engine_directfb_image_comment_get(void *data, void *image, char *key) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *) data; + im = image; + return im->info.comment; +} + +char * +evas_engine_directfb_image_format_get(void *data, void *image) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *) data; + im = image; + if (im->info.format == 1) + return "png"; + return NULL; +} + + + + +/* + * Private routines. These are slightly modified versions of the ones in + * engines/common/evas_image_main.c + */ + +static void +_dfb_image_surface_free(RGBA_Surface *is) +{ + IDirectFBSurface *surf; + if ( (is->data) && (!is->no_free) ) + { + surf = (IDirectFBSurface *)is->data; + surf->Release(surf); + is->data = NULL; + } + free(is); +} + + +static RGBA_Image * +_dfb_image_create(Render_Engine *re, int w, int h) +{ + RGBA_Image *im; + DFBSurfaceDescription dsc; + IDirectFBSurface *surf; + + im = image_new(); + if (!im) return NULL; + im->image = image_surface_new(); + if (!im->image) + { + _dfb_image_free(im); + return NULL; + } + im->image->w = w; + im->image->h = h; + + dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT; + dsc.width = w; + dsc.height = h; + dsc.pixelformat = DSPF_ARGB; + + if (re->dfb->CreateSurface(re->dfb, &dsc, &surf) != DFB_OK) + { + _dfb_image_free(im); + return NULL; + } + im->image->data = (void*) surf; + im->flags = RGBA_IMAGE_IS_DIRTY; + im->references = 1; + return im; +} + + +static void +_dfb_image_free(RGBA_Image *im) +{ + int i; + + if (im->image) _dfb_image_surface_free(im->image); + /* FIXME what about mipmaps? */ + for (i = 0; i < im->mipmaps.num; i++) + { + if (im->mipmaps.levels[i]) + _dfb_image_surface_free(im->mipmaps.levels[i]); + } + if (im->mipmaps.levels) free(im->mipmaps.levels); + if (im->info.file) free(im->info.file); + if (im->info.key) free(im->info.key); + if (im->info.comment) free(im->info.comment); + free(im); +} + +static void +_dfb_image_ref(RGBA_Image *im) +{ + im->references++; + if (im->references == 1) /* we were in cache - take us out */ + { + _dfb_image_uncache(im); + _dfb_image_store(im); + } +} + +static void +_dfb_image_unref(RGBA_Image *im) +{ + im->references--; + if (im->references <= 0) /* we were are now in cache - put us in */ + { + _dfb_image_unstore(im); + if ((cache_size > 0) && + (!(im->flags & RGBA_IMAGE_IS_DIRTY))) + { + _dfb_image_cache(im); + _dfb_image_flush_cache(); + } + else + { + _dfb_image_free(im); + } + } +} + +static void +_dfb_image_set_cache(int size) +{ + cache_size = size; + _dfb_image_flush_cache(); +} + +static int +_dfb_image_get_cache(void) +{ + return cache_size; +} + + + +static void +_dfb_image_cache(RGBA_Image *im) +{ + int ram; + + if (im->flags & RGBA_IMAGE_INDEXED) return; + im->flags |= RGBA_IMAGE_INDEXED; + cache = evas_object_list_prepend(cache, im); + ram = image_ram_usage(im); + cache_usage += ram; + _dfb_image_flush_cache(); +} + +static void +_dfb_image_uncache(RGBA_Image *im) +{ + int ram; + + if (!(im->flags & RGBA_IMAGE_INDEXED)) return; + im->flags &= ~RGBA_IMAGE_INDEXED; + cache = evas_object_list_remove(cache, im); + ram = image_ram_usage(im); + cache_usage -= ram; +} + + +static void +_dfb_image_flush_cache(void) +{ + Evas_Object_List *l, *l_next; + + if (!cache) return; + if (cache_usage < cache_size) return; + + for (l = cache->last; l;) + { + RGBA_Image *im; + + l_next = l->prev; + im = (RGBA_Image *)l; + _dfb_image_uncache(im); + _dfb_image_free(im); + if (cache_usage <= cache_size) return; + l = l_next; + } +} + +static void +_dfb_image_dirty(RGBA_Image *im) +{ + int i; + + _dfb_image_unstore(im); + im->flags |= RGBA_IMAGE_IS_DIRTY; + for (i = 0; i < im->mipmaps.num; i++) + _dfb_image_surface_free(im->mipmaps.levels[i]); +} + + +static void +_dfb_image_store(RGBA_Image *im) +{ + char *key; + int l1, l2, l3; + char buf[256]; + + if (im->flags & RGBA_IMAGE_IS_DIRTY) return; + if (im->flags & RGBA_IMAGE_INDEXED) return; + if ((!im->info.file) && (!im->info.key)) return; + l1 = 0; + if (im->info.file) l1 = strlen(im->info.file); + l2 = 0; + if (im->info.key) l2 = strlen(im->info.key); + snprintf(buf, sizeof(buf), "%llx", im->timestamp); + l3 = strlen(buf); + key = malloc(l1 + 3 + l2 + 3 + l3 +1); + if (!key) return; + key[0] = 0; + if (im->info.file) strcpy(key, im->info.file); + strcat(key, "/:/"); + if (im->info.key) strcat(key, im->info.key); + strcat(key, "/:/"); + strcat(key, buf); + images = evas_hash_add(images, key, im); + free(key); + im->flags |= RGBA_IMAGE_INDEXED; +} + +static void +_dfb_image_unstore(RGBA_Image *im) +{ + char *key; + int l1, l2, l3; + char buf[256]; + + if (!(im->flags & RGBA_IMAGE_INDEXED)) return; + if ((!im->info.file) && (!im->info.key)) return; + l1 = 0; + if (im->info.file) l1 = strlen(im->info.file); + l2 = 0; + if (im->info.key) l2 = strlen(im->info.key); + snprintf(buf, sizeof(buf), "%llx", im->timestamp); + l3 = strlen(buf); + key = malloc(l1 + 3 + l2 + 3 + l3 +1); + if (!key) return; + key[0] = 0; + if (im->info.file) strcpy(key, im->info.file); + strcat(key, "/:/"); + if (im->info.key) strcat(key, im->info.key); + strcat(key, "/:/"); + strcat(key, buf); + images = evas_hash_del(images, key, im); + free(key); + im->flags &= ~RGBA_IMAGE_INDEXED; +} + + +static RGBA_Image * +_dfb_image_find(const char *filename, const char *key, DATA64 timestamp) +{ + Evas_Object_List *l; + RGBA_Image *im; + char *str; + int l1, l2, l3; + char buf[256]; + + if ((!filename) && (!key)) return NULL; + l1 = 0; + if (filename) l1 = strlen(filename); + l2 = 0; + if (key) l2 = strlen(key); + sprintf(buf, "%llx", timestamp); + l3 = strlen(buf); + str = malloc(l1 + 3 + l2 + 3 + l3 +1); + if (!str) return NULL; + str[0] = 0; + if (filename) strcpy(str, filename); + strcat(str, "/:/"); + if (key) strcat(str, key); + strcat(str, "/:/"); + strcat(str, buf); + im = evas_hash_find(images, str); + free(str); + if (im) return im; + + for (l = cache; l; l = l->next) + { + int ok; + + im = (RGBA_Image *)l; + ok = 0; + if ((filename) && (im->info.file) && + (!strcmp(filename, im->info.file))) + ok++; + if ((!filename) && (!im->info.file)) + ok++; + if ((key) && (im->info.key) && + (!strcmp(key, im->info.key))) + ok++; + if ((!key) && (!im->info.key)) + ok++; + if (im->timestamp == timestamp) + ok++; + if (ok >= 3) return im; + } + return NULL; +} + + diff --git a/legacy/evas/src/lib/engines/directfb/evas_engine_dfb_image_objects.h b/legacy/evas/src/lib/engines/directfb/evas_engine_dfb_image_objects.h new file mode 100644 index 0000000000..0bdf53e408 --- /dev/null +++ b/legacy/evas/src/lib/engines/directfb/evas_engine_dfb_image_objects.h @@ -0,0 +1,49 @@ +#ifndef EVAS_ENGINE_DFB_IMAGE_OBJECTS_H +#define EVAS_ENGINE_DFB_IMAGE_OBJECTS_H +void *evas_engine_directfb_image_load(void *data, char *file, + char *key, int *error); +void *evas_engine_directfb_image_new_from_data(void *data, int w, + int h, + DATA32 * + image_data); +void *evas_engine_directfb_image_new_from_copied_data(void *data, + int w, + int h, + DATA32 * + image_data); +void evas_engine_directfb_image_free(void *data, void *image); +void evas_engine_directfb_image_size_get(void *data, void *image, + int *w, int *h); +void *evas_engine_directfb_image_size_set(void *data, void *image, + int w, int h); +void *evas_engine_directfb_image_dirty_region(void *data, + void *image, int x, + int y, int w, + int h); +void *evas_engine_directfb_image_data_get(void *data, void *image, + int to_write, + DATA32 ** image_data); +void *evas_engine_directfb_image_data_put(void *data, void *image, + DATA32 * image_data); +void *evas_engine_directfb_image_alpha_set(void *data, + void *image, + int has_alpha); +int evas_engine_directfb_image_alpha_get(void *data, + void *image); +void evas_engine_directfb_image_draw(void *data, void *context, + void *surface, void *image, + int src_x, int src_y, + int src_w, int src_h, + int dst_x, int dst_y, + int dst_w, int dst_h, + int smooth); +char *evas_engine_directfb_image_comment_get(void *data, + void *image, + char *key); +char *evas_engine_directfb_image_format_get(void *data, + void *image); +void evas_engine_directfb_image_cache_flush(void *data); +void evas_engine_directfb_image_cache_set(void *data, int bytes); +int evas_engine_directfb_image_cache_get(void *data); + +#endif diff --git a/legacy/evas/src/lib/engines/fb/Makefile.am b/legacy/evas/src/lib/engines/fb/Makefile.am new file mode 100644 index 0000000000..72a5b8f203 --- /dev/null +++ b/legacy/evas/src/lib/engines/fb/Makefile.am @@ -0,0 +1,40 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = 1.4 foreign + +# A list of all the files in the current directory which can be regenerated +MAINTAINERCLEANFILES = Makefile.in + +LDFLAGS = -L/usr/local/lib +INCLUDES = \ + -I. \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/lib/include \ + -I$(includedir) \ + -I/usr/local/include \ + @freetype_cflags@ + +if BUILD_ENGINE_FB + +noinst_LTLIBRARIES = libevas_engine_fb.la +libevas_engine_fb_la_SOURCES = \ +evas_engine.h \ +evas_fb.h \ +evas_engine.c \ +evas_fb_main.c \ +evas_outbuf.c + +libevas_engine_fb_la_LIBADD = \ +$(LDFLAGS) + +libevas_engine_fb_la_DEPENDENCIES = \ +$(top_builddir)/config.h + +endif + +EXTRA_DIST = \ +evas_engine.h \ +evas_fb.h \ +evas_engine.c \ +evas_fb_main.c \ +evas_outbuf.c diff --git a/legacy/evas/src/lib/engines/fb/evas_engine.c b/legacy/evas/src/lib/engines/fb/evas_engine.c new file mode 100644 index 0000000000..23f97e8dba --- /dev/null +++ b/legacy/evas/src/lib/engines/fb/evas_engine.c @@ -0,0 +1,1017 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "evas_engine.h" +#include "evas_engine_api_fb.h" +#include "Evas.h" +#include "Evas_Engine_FB.h" + +static void *evas_engine_fb_info(Evas *e); +static void evas_engine_fb_info_free(Evas *e, void *info); +static void evas_engine_fb_setup(Evas *e, void *info); +static void *evas_engine_fb_output_setup(int w, int h, int rot, int vt, int dev, int refresh); +static void evas_engine_fb_output_free(void *data); +static void evas_engine_fb_output_resize(void *data, int w, int h); +static void evas_engine_fb_output_tile_size_set(void *data, int w, int h); +static void evas_engine_fb_output_redraws_rect_add(void *data, int x, int y, int w, int h); +static void evas_engine_fb_output_redraws_rect_del(void *data, int x, int y, int w, int h); +static void evas_engine_fb_output_redraws_clear(void *data); +static void *evas_engine_fb_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch); +static void evas_engine_fb_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h); +static void evas_engine_fb_output_flush(void *data); +static void *evas_engine_fb_context_new(void *data); +static void evas_engine_fb_context_free(void *data, void *context); +static void evas_engine_fb_context_clip_set(void *data, void *context, int x, int y, int w, int h); +static void evas_engine_fb_context_clip_clip(void *data, void *context, int x, int y, int w, int h); +static void evas_engine_fb_context_clip_unset(void *data, void *context); +static int evas_engine_fb_context_clip_get(void *data, void *context, int *x, int *y, int *w, int *h); +static void evas_engine_fb_context_color_set(void *data, void *context, int r, int g, int b, int a); +static int evas_engine_fb_context_color_get(void *data, void *context, int *r, int *g, int *b, int *a); +static void evas_engine_fb_context_multiplier_set(void *data, void *context, int r, int g, int b, int a); +static void evas_engine_fb_context_multiplier_unset(void *data, void *context); +static int evas_engine_fb_context_multiplier_get(void *data, void *context, int *r, int *g, int *b, int *a); +static void evas_engine_fb_context_cutout_add(void *data, void *context, int x, int y, int w, int h); +static void evas_engine_fb_context_cutout_clear(void *data, void *context); +static void evas_engine_fb_draw_rectangle(void *data, void *context, void *surface, int x, int y, int w, int h); +static void evas_engine_fb_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2); +static void *evas_engine_fb_polygon_point_add(void *data, void *context, void *polygon, int x, int y); +static void *evas_engine_fb_polygon_points_clear(void *data, void *context, void *polygon); +static void evas_engine_fb_polygon_draw(void *data, void *context, void *surface, void *polygon); +static void *evas_engine_fb_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance); +static void *evas_engine_fb_gradient_colors_clear(void *data, void *context, void *gradient); +static void evas_engine_fb_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle); +static void *evas_engine_fb_image_load(void *data, char *file, char *key, int *error); +static void *evas_engine_fb_image_new_from_data(void *data, int w, int h, DATA32 *image_data); +static void *evas_engine_fb_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data); +static void evas_engine_fb_image_free(void *data, void *image); +static void evas_engine_fb_image_size_get(void *data, void *image, int *w, int *h); +static void *evas_engine_fb_image_size_set(void *data, void *image, int w, int h); +static void *evas_engine_fb_image_dirty_region(void *data, void *image, int x, int y, int w, int h); +static void *evas_engine_fb_image_data_get(void *data, void *image, int to_write, DATA32 **image_data); +static void *evas_engine_fb_image_data_put(void *data, void *image, DATA32 *image_data); +static void *evas_engine_fb_image_alpha_set(void *data, void *image, int has_alpha); +static int evas_engine_fb_image_alpha_get(void *data, void *image); +static void evas_engine_fb_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth); +static char *evas_engine_fb_image_comment_get(void *data, void *image, char *key); +static char *evas_engine_fb_image_format_get(void *data, void *image); +static void evas_engine_fb_image_cache_flush(void *data); +static void evas_engine_fb_image_cache_set(void *data, int bytes); +static int evas_engine_fb_image_cache_get(void *data); +static void *evas_engine_fb_font_load(void *data, char *name, int size); +static void evas_engine_fb_font_free(void *data, void *font); +static int evas_engine_fb_font_ascent_get(void *data, void *font); +static int evas_engine_fb_font_descent_get(void *data, void *font); +static int evas_engine_fb_font_max_ascent_get(void *data, void *font); +static int evas_engine_fb_font_max_descent_get(void *data, void *font); +static void evas_engine_fb_font_string_size_get(void *data, void *font, char *text, int *w, int *h); +static int evas_engine_fb_font_inset_get(void *data, void *font, char *text); +static int evas_engine_fb_font_h_advance_get(void *data, void *font, char *text); +static int evas_engine_fb_font_v_advance_get(void *data, void *font, char *text); +static int evas_engine_fb_font_char_coords_get(void *data, void *font, char *text, int pos, int *cx, int *cy, int *cw, int *ch); +static int evas_engine_fb_font_char_at_coords_get(void *data, void *font, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch); +static void evas_engine_fb_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, char *text); +static void evas_engine_fb_font_cache_flush(void *data); +static void evas_engine_fb_font_cache_set(void *data, int bytes); +static int evas_engine_fb_font_cache_get(void *data); + +typedef struct _Render_Engine Render_Engine; + +struct _Render_Engine +{ + Tilebuf *tb; + Outbuf *ob; + Tilebuf_Rect *rects; + Evas_Object_List *cur_rect; + int end : 1; +}; + +Evas_Func evas_engine_fb_func = +{ + evas_engine_fb_info, + evas_engine_fb_info_free, + evas_engine_fb_setup, + evas_engine_fb_output_free, + evas_engine_fb_output_resize, + evas_engine_fb_output_tile_size_set, + evas_engine_fb_output_redraws_rect_add, + evas_engine_fb_output_redraws_rect_del, + evas_engine_fb_output_redraws_clear, + evas_engine_fb_output_redraws_next_update_get, + evas_engine_fb_output_redraws_next_update_push, + evas_engine_fb_output_flush, + /* draw context virtual methods */ + evas_engine_fb_context_new, + evas_engine_fb_context_free, + evas_engine_fb_context_clip_set, + evas_engine_fb_context_clip_clip, + evas_engine_fb_context_clip_unset, + evas_engine_fb_context_clip_get, + evas_engine_fb_context_color_set, + evas_engine_fb_context_color_get, + evas_engine_fb_context_multiplier_set, + evas_engine_fb_context_multiplier_unset, + evas_engine_fb_context_multiplier_get, + evas_engine_fb_context_cutout_add, + evas_engine_fb_context_cutout_clear, + /* rectangle draw funcs */ + evas_engine_fb_draw_rectangle, + evas_engine_fb_line_draw, + evas_engine_fb_polygon_point_add, + evas_engine_fb_polygon_points_clear, + evas_engine_fb_polygon_draw, + evas_engine_fb_gradient_color_add, + evas_engine_fb_gradient_colors_clear, + evas_engine_fb_gradient_draw, + /* image draw funcs */ + evas_engine_fb_image_load, + evas_engine_fb_image_new_from_data, + evas_engine_fb_image_new_from_copied_data, + evas_engine_fb_image_free, + evas_engine_fb_image_size_get, + evas_engine_fb_image_size_set, + evas_engine_fb_image_dirty_region, + evas_engine_fb_image_data_get, + evas_engine_fb_image_data_put, + evas_engine_fb_image_alpha_set, + evas_engine_fb_image_alpha_get, + evas_engine_fb_image_draw, + evas_engine_fb_image_comment_get, + evas_engine_fb_image_format_get, + /* image cache funcs */ + evas_engine_fb_image_cache_flush, + evas_engine_fb_image_cache_set, + evas_engine_fb_image_cache_get, + /* font draw functions */ + evas_engine_fb_font_load, + evas_engine_fb_font_free, + evas_engine_fb_font_ascent_get, + evas_engine_fb_font_descent_get, + evas_engine_fb_font_max_ascent_get, + evas_engine_fb_font_max_descent_get, + evas_engine_fb_font_string_size_get, + evas_engine_fb_font_inset_get, + evas_engine_fb_font_h_advance_get, + evas_engine_fb_font_v_advance_get, + evas_engine_fb_font_char_coords_get, + evas_engine_fb_font_char_at_coords_get, + evas_engine_fb_font_draw, + /* font cache functions */ + evas_engine_fb_font_cache_flush, + evas_engine_fb_font_cache_set, + evas_engine_fb_font_cache_get +}; + +static void * +evas_engine_fb_info(Evas *e) +{ + Evas_Engine_Info_FB *info; + + info = calloc(1, sizeof(Evas_Engine_Info_FB)); + if (!info) return NULL; + info->magic.magic = rand(); + return info; + e = NULL; +} + +static void +evas_engine_fb_info_free(Evas *e, void *info) +{ + Evas_Engine_Info_FB *in; + + in = (Evas_Engine_Info_FB *)info; + free(in); +} + +static void +evas_engine_fb_setup(Evas *e, void *in) +{ + Render_Engine *re; + Evas_Engine_Info_FB *info; + + info = (Evas_Engine_Info_FB *)in; + re = evas_engine_fb_output_setup(e->output.w, + e->output.h, + info->info.rotation, + info->info.virtual_terminal, + info->info.device_number, + info->info.refresh); + e->engine.data.output = re; + if (!e->engine.data.output) return; + e->engine.data.context = e->engine.func->context_new(e->engine.data.output); +} + +static void * +evas_engine_fb_output_setup(int w, int h, int rot, int vt, int dev, int refresh) +{ + Render_Engine *re; + + re = calloc(1, sizeof(Render_Engine)); + /* if we haven't initialized - init (automatic abort if already done) */ + cpu_init(); + + blend_init(); + image_init(); + convert_init(); + scale_init(); + rectangle_init(); + gradient_init(); + polygon_init(); + line_init(); + font_init(); + draw_init(); + tilebuf_init(); + + outbuf_fb_init(); + + /* get any stored performance metrics from device (xserver) */ + re->ob = outbuf_fb_setup_fb(w, h, rot, OUTBUF_DEPTH_INHERIT, vt, dev, refresh); + re->tb = tilebuf_new(outbuf_fb_get_width(re->ob), outbuf_fb_get_height(re->ob)); + /* no backbuf! */ + outbuf_fb_set_have_backbuf(re->ob, 0); + /* in preliminary tests 16x16 gave highest framerates */ + tilebuf_set_tile_size(re->tb, 16, 16); + return re; +} + +static void +evas_engine_fb_output_free(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + outbuf_fb_free(re->ob); + tilebuf_free(re->tb); + if (re->rects) tilebuf_free_render_rects(re->rects); + free(re); +} + +static void +evas_engine_fb_output_resize(void *data, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + outbuf_fb_reconfigure(re->ob, w, h, + outbuf_fb_get_rot(re->ob), + OUTBUF_DEPTH_INHERIT); + tilebuf_free(re->tb); + re->tb = tilebuf_new(w, h); + if (re->tb) + tilebuf_set_tile_size(re->tb, 16, 16); +} + +static void +evas_engine_fb_output_tile_size_set(void *data, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + tilebuf_set_tile_size(re->tb, w, h); +} + +static void +evas_engine_fb_output_redraws_rect_add(void *data, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + tilebuf_add_redraw(re->tb, x, y, w, h); +} + +static void +evas_engine_fb_output_redraws_rect_del(void *data, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + tilebuf_del_redraw(re->tb, x, y, w, h); +} + +static void +evas_engine_fb_output_redraws_clear(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + tilebuf_clear(re->tb); +} + +static void * +evas_engine_fb_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch) +{ + Render_Engine *re; + RGBA_Image *surface; + Tilebuf_Rect *rect; + int ux, uy, uw, uh; + + re = (Render_Engine *)data; + if (re->end) + { + re->end = 0; + return NULL; + } + if (!re->rects) + { + re->rects = tilebuf_get_render_rects(re->tb); + re->cur_rect = (Evas_Object_List *)re->rects; + } + if (!re->cur_rect) return NULL; + rect = (Tilebuf_Rect *)re->cur_rect; + ux = rect->x; uy = rect->y; uw = rect->w; uh = rect->h; + re->cur_rect = re->cur_rect->next; + if (!re->cur_rect) + { + tilebuf_free_render_rects(re->rects); + re->rects = NULL; + re->end = 1; + } + + surface = outbuf_fb_new_region_for_update(re->ob, + ux, uy, uw, uh, + cx, cy, cw, ch); + *x = ux; *y = uy; *w = uw; *h = uh; + return surface; +} + +static void +evas_engine_fb_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + outbuf_fb_push_updated_region(re->ob, surface, x, y, w, h); + outbuf_fb_free_region_for_update(re->ob, surface); + cpu_end_opt(); +} + +static void +evas_engine_fb_output_flush(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_fb_context_new(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return draw_context_new(); +} + +static void +evas_engine_fb_context_free(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_free(context); +} + +static void +evas_engine_fb_context_clip_set(void *data, void *context, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_set_clip(context, x, y, w, h); +} + +static void +evas_engine_fb_context_clip_clip(void *data, void *context, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_clip_clip(context, x, y, w, h); +} + +static void +evas_engine_fb_context_clip_unset(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_unset_clip(context); +} + +static int +evas_engine_fb_context_clip_get(void *data, void *context, int *x, int *y, int *w, int *h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + *x = ((RGBA_Draw_Context *)context)->clip.x; + *y = ((RGBA_Draw_Context *)context)->clip.y; + *w = ((RGBA_Draw_Context *)context)->clip.w; + *h = ((RGBA_Draw_Context *)context)->clip.h; + return ((RGBA_Draw_Context *)context)->clip.use; +} + +static void +evas_engine_fb_context_color_set(void *data, void *context, int r, int g, int b, int a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_set_color(context, r, g, b, a); +} + +static int +evas_engine_fb_context_color_get(void *data, void *context, int *r, int *g, int *b, int *a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + *r = (int)(R_VAL(((RGBA_Draw_Context *)context)->col.col)); + *g = (int)(G_VAL(((RGBA_Draw_Context *)context)->col.col)); + *b = (int)(B_VAL(((RGBA_Draw_Context *)context)->col.col)); + *a = (int)(A_VAL(((RGBA_Draw_Context *)context)->col.col)); + return 1; +} + +static void +evas_engine_fb_context_multiplier_set(void *data, void *context, int r, int g, int b, int a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_set_multiplier(context, r, g, b, a); +} + +static void +evas_engine_fb_context_multiplier_unset(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_unset_multiplier(context); +} + +static int +evas_engine_fb_context_multiplier_get(void *data, void *context, int *r, int *g, int *b, int *a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + *r = (int)(R_VAL(((RGBA_Draw_Context *)context)->mul.col)); + *g = (int)(G_VAL(((RGBA_Draw_Context *)context)->mul.col)); + *b = (int)(B_VAL(((RGBA_Draw_Context *)context)->mul.col)); + *a = (int)(A_VAL(((RGBA_Draw_Context *)context)->mul.col)); + return ((RGBA_Draw_Context *)context)->mul.use; +} + +static void +evas_engine_fb_context_cutout_add(void *data, void *context, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_add_cutout(context, x, y, w, h); +} + +static void +evas_engine_fb_context_cutout_clear(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_clear_cutouts(context); +} + +static void +evas_engine_fb_draw_rectangle(void *data, void *context, void *surface, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + rectangle_draw(surface, context, x, y, w, h); + cpu_end_opt(); +} + +static void +evas_engine_fb_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + line_draw(surface, context, x1, y1, x2, y2); + cpu_end_opt(); +} + +static void * +evas_engine_fb_polygon_point_add(void *data, void *context, void *polygon, int x, int y) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return polygon_point_add(polygon, x, y); + context = 0; +} + +static void * +evas_engine_fb_polygon_points_clear(void *data, void *context, void *polygon) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return polygon_points_clear(polygon); + context = 0; +} + +static void +evas_engine_fb_polygon_draw(void *data, void *context, void *surface, void *polygon) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + polygon_draw(surface, context, polygon); + cpu_end_opt(); +} + +static void * +evas_engine_fb_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + if (!gradient) + gradient = gradient_new(); + gradient_color_add(gradient, r, g, b, a, distance); + return gradient; + context = 0; +} + +static void * +evas_engine_fb_gradient_colors_clear(void *data, void *context, void *gradient) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + if (gradient) gradient_free(gradient); + return NULL; + context = 0; +} + +static void +evas_engine_fb_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + gradient_draw(surface, context, x, y, w, h, gradient, angle); + cpu_end_opt(); +} + +static void * +evas_engine_fb_image_load(void *data, char *file, char *key, int *error) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + *error = 0; + return load_image_from_file(file, key); +} + +static void * +evas_engine_fb_image_new_from_data(void *data, int w, int h, DATA32 *image_data) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image_new(); + im->image = image_surface_new(); + if (!im->image) + { + image_free(im); + return NULL; + } + im->image->w = w; + im->image->h = h; + im->image->data = image_data; + im->image->no_free = 1; + return im; +} + +static void * +evas_engine_fb_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image_create(w, h); + if (!im) return NULL; + if (image_data) + memcpy(im->image->data, image_data, w * h * sizeof(DATA32)); + return im; +} + +static void +evas_engine_fb_image_free(void *data, void *image) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + image_unref(image); +} + +static void +evas_engine_fb_image_size_get(void *data, void *image, int *w, int *h) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (w) *w = im->image->w; + if (h) *h = im->image->h; +} + +static void * +evas_engine_fb_image_size_set(void *data, void *image, int w, int h) +{ + Render_Engine *re; + RGBA_Image *im, *im_old; + + re = (Render_Engine *)data; + im_old = image; + im = image_create(w, h); + if (!im) return im_old; + if (im_old) + { + load_image_data_from_file(im_old); + if (im_old->image->data) + { + blit_rectangle(im_old, im, 0, 0, w, h, 0, 0); + cpu_end_opt(); + } + image_unref(im_old); + } + return im; +} + +static void * +evas_engine_fb_image_dirty_region(void *data, void *image, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + image_dirty(image); + return image; + x = 0; + y = 0; + w = 0; + h = 0; +} + +static void * +evas_engine_fb_image_data_get(void *data, void *image, int to_write, DATA32 **image_data) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + load_image_data_from_file(im); + if (to_write) + { + if (im->references > 1) + { + RGBA_Image *im_new; + + im_new = image_create(im->image->w, im->image->h); + if (!im_new) return im; + blit_rectangle(im, im_new, 0, 0, im->image->w, im->image->h, 0, 0); + cpu_end_opt(); + image_unref(im); + im = im_new; + } + else + image_dirty(im); + } + *image_data = im->image->data; + return im; +} + +static void * +evas_engine_fb_image_data_put(void *data, void *image, DATA32 *image_data) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (image_data != im->image->data) + { + int w, h; + + w = im->image->w; + h = im->image->h; + image_unref(im); + return evas_engine_fb_image_new_from_data(data, w, h, image_data); + } + image_dirty(im); + return im; +} + +static void * +evas_engine_fb_image_alpha_set(void *data, void *image, int has_alpha) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (im->references > 1) + { + RGBA_Image *im_new; + + im_new = image_create(im->image->w, im->image->h); + if (!im_new) return im; + load_image_data_from_file(im); + blit_rectangle(im, im_new, 0, 0, im->image->w, im->image->h, 0, 0); + cpu_end_opt(); + image_unref(im); + im = im_new; + } + else + image_dirty(im); + if (has_alpha) + im->flags |= RGBA_IMAGE_HAS_ALPHA; + else + im->flags &= ~RGBA_IMAGE_HAS_ALPHA; + return im; +} + + +static int +evas_engine_fb_image_alpha_get(void *data, void *image) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (im->flags & RGBA_IMAGE_HAS_ALPHA) return 1; + return 0; +} + +static void +evas_engine_fb_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + load_image_data_from_file(image); + if (smooth) + scale_rgba_in_to_out_clip_smooth(image, surface, context, + src_x, src_y, src_w, src_h, + dst_x, dst_y, dst_w, dst_h); + else + scale_rgba_in_to_out_clip_sample(image, surface, context, + src_x, src_y, src_w, src_h, + dst_x, dst_y, dst_w, dst_h); + cpu_end_opt(); +} + +static char * +evas_engine_fb_image_comment_get(void *data, void *image, char *key) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + return im->info.comment; + key = 0; +} + +static char * +evas_engine_fb_image_format_get(void *data, void *image) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (im->info.format == 1) return "png"; + return NULL; +} + +static void +evas_engine_fb_image_cache_flush(void *data) +{ + Render_Engine *re; + int tmp_size; + + re = (Render_Engine *)data; + tmp_size = image_get_cache(); + image_set_cache(0); + image_set_cache(tmp_size); +} + +static void +evas_engine_fb_image_cache_set(void *data, int bytes) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + image_set_cache(bytes); +} + +static int +evas_engine_fb_image_cache_get(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return image_get_cache(); +} + +static void * +evas_engine_fb_font_load(void *data, char *name, int size) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_load(name, size); +} + +static void +evas_engine_fb_font_free(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + font_free(font); +} + +static int +evas_engine_fb_font_ascent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_ascent_get(font); +} + +static int +evas_engine_fb_font_descent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_descent_get(font); +} + +static int +evas_engine_fb_font_max_ascent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_max_ascent_get(font); +} + +static int +evas_engine_fb_font_max_descent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_max_descent_get(font); +} + +static void +evas_engine_fb_font_string_size_get(void *data, void *font, char *text, int *w, int *h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + font_query_size(font, text, w, h); +} + +static int +evas_engine_fb_font_inset_get(void *data, void *font, char *text) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_query_inset(font, text); +} + +static int +evas_engine_fb_font_h_advance_get(void *data, void *font, char *text) +{ + Render_Engine *re; + int h, v; + + re = (Render_Engine *)data; + font_query_advance(font, text, &h, &v); + return h; +} + +static int +evas_engine_fb_font_v_advance_get(void *data, void *font, char *text) +{ + Render_Engine *re; + int h, v; + + re = (Render_Engine *)data; + font_query_advance(font, text, &h, &v); + return v; +} + +static int +evas_engine_fb_font_char_coords_get(void *data, void *font, char *text, int pos, int *cx, int *cy, int *cw, int *ch) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_query_char_coords(font, text, pos, cx, cy, cw, ch); +} + +static int +evas_engine_fb_font_char_at_coords_get(void *data, void *font, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_query_text_at_pos(font, text, x, y, cx, cy, cw, ch); +} + +static void +evas_engine_fb_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, char *text) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + if ((w == ow) && (h == oh)) + font_draw(surface, context, font, x, y, text); + else + { + /* create output surface size ow x oh and scale to w x h */ + RGBA_Draw_Context *dc, *dc_in; + + dc_in = context; + dc = draw_context_new(); + if (dc) + { + RGBA_Image *im; + + dc->col.col = dc_in->col.col; + im = image_create(ow, oh); + if (im) + { + int max_ascent; + int i, j; + + im->flags |= RGBA_IMAGE_HAS_ALPHA; + j = ow * oh; + for (i = 0; i < j; i++) im->image->data[i] = (dc->col.col & 0xffffff); + + max_ascent = font_max_ascent_get(font); + + font_draw(im, dc, font, 0, max_ascent, text); + cpu_end_opt(); + scale_rgba_in_to_out_clip_smooth(im, surface, context, + 0, 0, ow, oh, + x, y - ((max_ascent * h) / oh), + w, h); + image_free(im); + } + draw_context_free(dc); + } + } + cpu_end_opt(); +} + +static void +evas_engine_fb_font_cache_flush(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + font_flush(); +} + +static void +evas_engine_fb_font_cache_set(void *data, int bytes) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + font_cache_set(bytes); +} + +static int +evas_engine_fb_font_cache_get(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_cache_get(); +} diff --git a/legacy/evas/src/lib/engines/fb/evas_engine.h b/legacy/evas/src/lib/engines/fb/evas_engine.h new file mode 100644 index 0000000000..4e2adad928 --- /dev/null +++ b/legacy/evas/src/lib/engines/fb/evas_engine.h @@ -0,0 +1,59 @@ +#ifndef EVAS_ENGINE_H +#define EVAS_ENGINE_H + +#include "evas_fb.h" + +typedef struct _Outbuf Outbuf; + +typedef enum _Outbuf_Depth Outbuf_Depth; + +enum _Outbuf_Depth +{ + OUTBUF_DEPTH_NONE, + OUTBUF_DEPTH_INHERIT, + OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED, + OUTBUF_DEPTH_RGB_16BPP_555_555_DITHERED, + OUTBUF_DEPTH_RGB_16BPP_444_444_DITHERED, + OUTBUF_DEPTH_RGB_16BPP_565_444_DITHERED, + OUTBUF_DEPTH_RGB_32BPP_888_8888, + OUTBUF_DEPTH_LAST +}; + +struct _Outbuf +{ + Outbuf_Depth depth; + int w, h; + int rot; + + struct { + struct { + FB_Mode *fb; + } fb; + struct { + DATA32 r, g, b; + } mask; + RGBA_Image *back_buf; + } priv; +}; + +/****/ + +void outbuf_fb_init (void); +void outbuf_fb_free (Outbuf *buf); + +Outbuf *outbuf_fb_setup_fb (int w, int h, int rot, Outbuf_Depth depth, int vt_no, int dev_no, int refresh); + +void outbuf_fb_blit (Outbuf *buf, int src_x, int src_y, int w, int h, int dst_x, int dst_y); +void outbuf_fb_update (Outbuf *buf, int x, int y, int w, int h); +RGBA_Image *outbuf_fb_new_region_for_update (Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch); +void outbuf_fb_free_region_for_update (Outbuf *buf, RGBA_Image *update); +void outbuf_fb_push_updated_region (Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h); +void outbuf_fb_reconfigure (Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth); +int outbuf_fb_get_width (Outbuf *buf); +int outbuf_fb_get_height (Outbuf *buf); +Outbuf_Depth outbuf_fb_get_depth (Outbuf *buf); +int outbuf_fb_get_rot (Outbuf *buf); +int outbuf_fb_get_have_backbuf (Outbuf *buf); +void outbuf_fb_set_have_backbuf (Outbuf *buf, int have_backbuf); + +#endif diff --git a/legacy/evas/src/lib/engines/fb/evas_fb.h b/legacy/evas/src/lib/engines/fb/evas_fb.h new file mode 100644 index 0000000000..0289102a7b --- /dev/null +++ b/legacy/evas/src/lib/engines/fb/evas_fb.h @@ -0,0 +1,95 @@ +#ifndef _EVAS_FB_H +#define _EVAS_FB_H 1 + +/* -------------------------------------------------------------------- */ +/* LINUX FBCON FRAMEBUFFER UTILITY CODE */ +/* makes setting up the framebuffer easy. Also makes it eays to port to */ +/* some other system if needed. */ +/* Copyright (c) 1999 - Carsten Haitzler (The Rasterman) */ +/* -------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +typedef struct _fb_mode FB_Mode; + +struct _fb_mode +{ + int width; + int height; + int refresh; + int depth; + int bpp; + int fb_fd; + void *mem; + int mem_offset; + struct fb_var_screeninfo fb_var; +}; + +/* init a framebuffer (and switch to) vt number vt. If vt == 0 use current */ +/* vt */ +void fb_init(int vt, int device); +/* call this afetr setting or getting the fb mode (whichever) to complete */ +/* the dsetup */ +int fb_postinit(FB_Mode *mode); +/* console switching - if a switch was requested this with block if block */ +/* is 1, otherwise it will return 1 if current console is active or 0 if */ +/* the user has switched away in the meantime */ +int fb_await_switch(int block); +/* list all current possible video modes listed in /etc/fb.modes */ +/* returns pointer to an aray of FB_Mode, and sets num_return to the number */ +/* of elements int he returned array */ +FB_Mode *fb_list_modes(int *num_return); +/* sets the fb mode to the resolution width x height and the depth to depth. */ +/* and if refresh > 0 attempts to use a mode with a refresh rate (in Hz) of */ +/* that. If this fails it will return NULL - if it succeeds it will return */ +/* a pointer to the FB_Mode thatwas set. only modes in /etc/fb.modes will */ +/* be used. If refresh is 0 it uses the DEFAULT mode (the one with no */ +/* refresh rate at the end of its name (WIDTHxHEIGHT-REFRESH) */ +/* NB: in 8bpp you get a 332 palette. This is fixed so all modes are */ +/* "truecolor" - the onyl difference is how many bits bep red, green and */ +/* blue channel. This is for speed reasons */ +FB_Mode *fb_setmode(int width, int height, int depth, int refresh); +/* returns the current fb mode being used in FB_Mode */ +FB_Mode *fb_getmode(void); +/* changes the bit depth of the current fb mode to depth and returns a new */ +/* handle to a new fb mode with updated parameters. frees cur_mode for you. */ +FB_Mode *fb_changedepth(FB_Mode *cur_mode, int depth); +/* changes resolution - retaining current depth of the current mode, */ +/* returning a handle to the new mode once done. frees cur_mode for you. */ +FB_Mode *fb_changeres(FB_Mode *cur_mode, int width, int height, int refresh); +/* chnages both resolution and depth and returns a handle to the new mode */ +/* when done. frees cur_mode for you */ +FB_Mode *fb_changemode(FB_Mode *cur_mode, int width, int height, int depth, int refresh); + +/* ------------------------------------------------------------------------- */ +/* How to init: */ +/* (Example) */ + +/* FB_Mode *mode; */ +/* int fb_fd = -1; */ +/* fb_init(0); */ +/* mode = fb_setmode(640, 480, 8, 0); */ +/* if (mode) */ +/* fb_fd = fb_postinit(mode); */ +/* if (fb_fd == -1) */ +/* { */ +/* fprintf(stderr, "Frambuffer init failed\n"); */ +/* exit(1); */ +/* } */ +/* .... code to play with the FB */ +#endif diff --git a/legacy/evas/src/lib/engines/fb/evas_fb_main.c b/legacy/evas/src/lib/engines/fb/evas_fb_main.c new file mode 100644 index 0000000000..ee57db5ed3 --- /dev/null +++ b/legacy/evas/src/lib/engines/fb/evas_fb_main.c @@ -0,0 +1,584 @@ +/* -------------------------------------------------------------------- */ +/* LINUX FBCON FRAMEBUFFER UTILITY CODE */ +/* makes setting up the framebuffer easy. Also makes it eays to port to */ +/* some other system if needed. */ +/* Copyright (c) 1999 - Carsten Haitzler (The Rasterman) */ +/* -------------------------------------------------------------------- */ +#include "evas_common.h" +#include "evas_fb.h" + +#include +#include +#include +#include +#include +#include + +#define FB_ACTIVE 0 +#define FB_REL_REQ 1 +#define FB_INACTIVE 2 +#define FB_ACQ_REQ 3 + +/* -------------------------------------------------------------------- */ +/* internal variables */ + +static struct fb_fix_screeninfo fb_fix; +static int fb, tty; +static int bpp, depth; +static int orig_vt_no = 0; +static int kd_mode; +static struct vt_mode vt_omode; +static struct fb_var_screeninfo fb_ovar; +static unsigned short ored[256], ogreen[256], oblue[256]; +static unsigned short red[256], green[256], blue[256]; +static struct fb_cmap ocmap = { 0, 256, ored, ogreen, oblue, NULL }; +static struct fb_cmap cmap = { 0, 256, red, green, blue, NULL }; + +/* -------------------------------------------------------------------- */ +/* internal function prototypes */ + +static void fb_cleanup(void); +//static void fb_cleanup_fork(void); +static void fb_setvt(int vtno); +static void fb_init_palette_332(FB_Mode *mode); +static void fb_init_palette_linear(FB_Mode *mode); + +/* -------------------------------------------------------------------- */ +/* palette setting */ + +static void +fb_init_palette_332(FB_Mode *mode) +{ + int r, g, b, i; + + /* generate the palette */ + if (mode->fb_var.bits_per_pixel != 8) + return; + i = 0; + /* set colormap */ + + if (ioctl(fb, FBIOGETCMAP, &cmap) == -1) + perror("ioctl FBIOGETCMAP"); + + for (r = 0; r < 8; r++) + { + for (g = 0; g < 8; g++) + { + for (b = 0; b < 4; b++) + { + int val; + + val = (r << 5) | (r << 2) | (r >> 1); + red[i] = (val << 8) | val; + val = (g << 5) | (g << 2) | (g >> 1); + green[i] = (val << 8) | val; + val = (b << 6) | (b << 4) | (b << 2) | (b); + blue[i] = (val << 8) | val; + i++; + } + } + } + + if (ioctl(fb, FBIOPUTCMAP, &cmap) == -1) + perror("ioctl FBIOPUTCMAP"); + +} + +static void +fb_init_palette_linear(FB_Mode *mode) +{ + int i; + + /* generate the palette */ + if (mode->fb_var.bits_per_pixel != 8) + return; + for (i = 0; i < 256; i++) + red[i] = (i << 8) | i; + for (i = 0; i < 256; i++) + green[i] = (i << 8) | i; + for (i = 0; i < 256; i++) + blue[i] = (i << 8) | i; + /* set colormap */ + + if (ioctl(fb, FBIOGETCMAP, &cmap) == -1) + perror("ioctl FBIOGETCMAP"); + if (ioctl(fb, FBIOPUTCMAP, &cmap) == -1) + perror("ioctl FBIOPUTCMAP"); + +} + +/* -------------------------------------------------------------------- */ +/* initialisation & cleanup */ + +FB_Mode * +fb_list_modes(int *num_return) +{ + FILE *f; + char line[256], label[256], value[256]; + FB_Mode *modes = NULL; + int num; + + num = 0; + f = fopen("/etc/fb.modes","r"); + if (!f) + { + *num_return = 0; + return NULL; + } + while (fgets(line, sizeof(line) - 1, f)) + { + if (sscanf(line, "mode \"%250[^\"]\"", label) == 1) + { + char f1[32], f2[32], f3[32], f4[32]; + + f1[0] = 0; f2[0] = 0; f3[0] = 0; f4[0] = 0; + sscanf(label, "%30[^x]x%30[^-]-%30[^-]-%30s", f1, f2, f3, f4); + if ((f1[0]) && (f2[0])) + { + int geometry = 0; + int timings = 0; + + num++; + modes = realloc(modes, num * sizeof(FB_Mode)); + modes[num - 1].width = atoi(f1); + modes[num - 1].height = atoi(f2); + if (f3[0]) + modes[num - 1].refresh = atoi(f3); + else + modes[num - 1].refresh = 0; + modes[num - 1].fb_var.sync = 0; + while ((fgets(line, sizeof(line) - 1, f)) && + (!strstr(line, "endmode"))) + { + + if (sscanf(line," geometry %i %i %i %i %i", + &modes[num - 1].fb_var.xres, + &modes[num - 1].fb_var.yres, + &modes[num - 1].fb_var.xres_virtual, + &modes[num - 1].fb_var.yres_virtual, + &modes[num - 1].fb_var.bits_per_pixel) == 5) + geometry = 1; + if (sscanf(line," timings %i %i %i %i %i %i %i", + &modes[num - 1].fb_var.pixclock, + &modes[num - 1].fb_var.left_margin, + &modes[num - 1].fb_var.right_margin, + &modes[num - 1].fb_var.upper_margin, + &modes[num - 1].fb_var.lower_margin, + &modes[num - 1].fb_var.hsync_len, + &modes[num - 1].fb_var.vsync_len) == 7) + timings = 1; + if ((sscanf(line, " hsync %15s", value) == 1) && + (!strcmp(value,"high"))) + modes[num - 1].fb_var.sync |= FB_SYNC_HOR_HIGH_ACT; + if ((sscanf(line, " vsync %15s", value) == 1) && + (!strcmp(value,"high"))) + modes[num - 1].fb_var.sync |= FB_SYNC_VERT_HIGH_ACT; + if ((sscanf(line, " csync %15s", value) == 1) && + (!strcmp(value,"high"))) + modes[num - 1].fb_var.sync |= FB_SYNC_COMP_HIGH_ACT; + if ((sscanf(line, " extsync %15s", value) == 1) && + (!strcmp(value,"true"))) + modes[num - 1].fb_var.sync |= FB_SYNC_EXT; + if ((sscanf(line, " laced %15s", value) == 1) && + (!strcmp(value,"true"))) + modes[num - 1].fb_var.vmode |= FB_VMODE_INTERLACED; + if ((sscanf(line, " double %15s",value) == 1) && + (!strcmp(value,"true"))) + modes[num - 1].fb_var.vmode |= FB_VMODE_DOUBLE; + } + if ((!geometry) || (!timings)) + { + num--; + if (num == 0) + { + free(modes); + modes = NULL; + } + } + else + { + modes[num - 1].fb_var.xoffset = 0; + modes[num - 1].fb_var.yoffset = 0; + } + } + + } + } + fclose(f); + *num_return = num; + return modes; +} + +FB_Mode * +fb_setmode(int width, int height, int depth, int refresh) +{ + FB_Mode *modes, *mode = NULL; + int i, num_modes; + + modes = fb_list_modes(&num_modes); + if (modes) + { + for (i = 0; i < num_modes; i++) + { + if ((modes[i].width == width) && + (modes[i].height == height) && + (modes[i].refresh == refresh)) + { + modes[i].fb_var.bits_per_pixel = depth; + + if (ioctl(fb, FBIOPUT_VSCREENINFO, &modes[i].fb_var) == -1) + perror("ioctl FBIOPUT_VSCREENINFO"); + + free(modes); + return fb_getmode(); + } + } + free(modes); + } + return mode; +} + +FB_Mode * +fb_changedepth(FB_Mode *cur_mode, int depth) +{ + cur_mode->fb_var.bits_per_pixel = depth; + + if (ioctl(fb, FBIOPUT_VSCREENINFO, &cur_mode->fb_var) == -1) + perror("ioctl FBIOPUT_VSCREENINFO"); + + free(cur_mode); + return fb_getmode(); +} + +FB_Mode * +fb_changeres(FB_Mode *cur_mode, int width, int height, int refresh) +{ + FB_Mode *modes; + int i, num_modes; + + modes = fb_list_modes(&num_modes); + if (modes) + { + for (i = 0; i < num_modes; i++) + { + if ((modes[i].width == width) && + (modes[i].height == height) && + (modes[i].refresh == refresh)) + { + modes[i].fb_var.bits_per_pixel = cur_mode->depth; + + if (ioctl(fb, FBIOPUT_VSCREENINFO, &modes[i].fb_var) == -1) + perror("ioctl FBIOPUT_VSCREENINFO"); + + free(modes); + free(cur_mode); + return fb_getmode(); + } + } + free(modes); + } + return cur_mode; +} + +FB_Mode * +fb_changemode(FB_Mode *cur_mode, int width, int height, int depth, int refresh) +{ + FB_Mode *modes; + int i, num_modes; + + modes = fb_list_modes(&num_modes); + if (modes) + { + for (i = 0; i < num_modes; i++) + { + if ((modes[i].width == width) && + (modes[i].height == height) && + (modes[i].refresh == refresh)) + { + modes[i].fb_var.bits_per_pixel = depth; + + if (ioctl(fb, FBIOPUT_VSCREENINFO, &modes[i].fb_var) == -1) + perror("ioctl FBIOPUT_VSCREENINFO"); + + free(modes); + free(cur_mode); + return fb_getmode(); + } + } + free(modes); + } + return cur_mode; +} + +FB_Mode * +fb_getmode(void) +{ + FB_Mode *mode = NULL; + int hpix, lines, clockrate; + + mode = malloc(sizeof(FB_Mode)); + /* look what we have now ... */ + + if (ioctl(fb, FBIOGET_VSCREENINFO, &mode->fb_var) == -1) + { + perror("ioctl FBIOGET_VSCREENINFO"); + exit(1); + } + + mode->width = mode->fb_var.xres; + mode->height = mode->fb_var.yres; + hpix = + mode->fb_var.left_margin + + mode->fb_var.xres + + mode->fb_var.right_margin + + mode->fb_var.hsync_len; + lines = + mode->fb_var.upper_margin + + mode->fb_var.yres + + mode->fb_var.lower_margin + + mode->fb_var.vsync_len; + clockrate = + 1000000 / mode->fb_var.pixclock; + mode->refresh = clockrate * 1000000 / (lines * hpix); + switch (mode->fb_var.bits_per_pixel) + { + case 1: + bpp = 1; + depth = 1; + break; + case 4: + bpp = 1; + depth = 4; + break; + case 8: + bpp = 1; + depth = 8; + break; + case 15: + case 16: + if (mode->fb_var.green.length == 6) + depth = 16; + else + depth = 15; + bpp = 2; + break; + case 24: + depth = 24; + bpp = mode->fb_var.bits_per_pixel / 8; + break; + case 32: + depth = 32; + bpp = mode->fb_var.bits_per_pixel / 8; + break; + default: + fprintf(stderr, "Cannot handle framebuffer of depth %i\n", + mode->fb_var.bits_per_pixel); + fb_cleanup(); + free(mode); + return NULL; + } + mode->depth = depth; + mode->bpp = bpp; + if (mode->depth == 8) + fb_init_palette_332(mode); + else + fb_init_palette_linear(mode); + return mode; +} + +static void +fb_setvt(int vtno) +{ + struct vt_stat vts; + char vtname[32]; + + if (vtno < 0) + { + + if ((ioctl(tty,VT_OPENQRY, &vtno) == -1)) + { + perror("ioctl VT_OPENQRY"); + exit(1); + } + if (vtno <= 0 ) + { + perror("ioctl VT_OPENQRY vtno <= 0"); + exit(1); + } + + } + vtno &= 0xff; + sprintf(vtname, "/dev/tty%i", vtno); + chown(vtname, getuid(), getgid()); + if (access(vtname,R_OK | W_OK) == -1) + { + fprintf(stderr,"access %s: %s\n",vtname,strerror(errno)); + exit(1); + } + open(vtname,O_RDWR); + + if (ioctl(tty, VT_GETSTATE, &vts) == -1) + { + perror("ioctl VT_GETSTATE"); + exit(1); + } + + orig_vt_no = vts.v_active; +/* + if (ioctl(tty, VT_ACTIVATE, vtno) == -1) + { + perror("ioctl VT_ACTIVATE"); + exit(1); + } + if (ioctl(tty, VT_WAITACTIVE, vtno) == -1) + { + perror("ioctl VT_WAITACTIVE"); + exit(1); + } +*/ + +} + +void +fb_init(int vt, int device) +{ + char dev[32]; + + tty = 0; + if (vt != 0) fb_setvt(vt); + sprintf(dev, "/dev/fb%i", device); + if ((fb = open(dev, O_RDWR)) == -1) + { + fprintf(stderr,"open %s: %s\n", dev, strerror(errno)); + fb_cleanup(); + exit(1); + } + + if (ioctl(fb, FBIOGET_VSCREENINFO, &fb_ovar) == -1) + { + perror("ioctl FBIOGET_VSCREENINFO"); + exit(1); + } + if (ioctl(fb, FBIOGET_FSCREENINFO, &fb_fix) == -1) + { + perror("ioctl FBIOGET_FSCREENINFO"); + exit(1); + } + + if ((fb_ovar.bits_per_pixel == 8) || + (fb_fix.visual == FB_VISUAL_DIRECTCOLOR)) + { + + if (ioctl(fb,FBIOGETCMAP , &ocmap) == -1) + { + perror("ioctl FBIOGETCMAP"); + exit(1); + } + + } + if (isatty(0)) + tty = 0; + else if ((tty = open("/dev/tty",O_RDWR)) == -1) + { + fprintf(stderr,"open %s: %s\n", "/dev/tty", strerror(errno)); + exit(1); + } + if (tty) + { + if (ioctl(tty, KDGETMODE, &kd_mode) == -1) + { + perror("ioctl KDGETMODE"); + exit(1); + } + if (ioctl(tty, VT_GETMODE, &vt_omode) == -1) + { + perror("ioctl VT_GETMODE"); + exit(1); + } + } +} + +int +fb_postinit(FB_Mode *mode) +{ + + if (ioctl(fb,FBIOGET_FSCREENINFO, &fb_fix) == -1) + { + perror("ioctl FBIOGET_FSCREENINFO"); + fb_cleanup(); + exit(1); + } + + if (fb_fix.type != FB_TYPE_PACKED_PIXELS) + { + fprintf(stderr,"can handle only packed pixel frame buffers\n"); + fb_cleanup(); + exit(1); + } + mode->mem_offset = (unsigned)(fb_fix.smem_start) & (~PAGE_MASK); + mode->mem = (unsigned char *)mmap(NULL, fb_fix.smem_len + mode->mem_offset, + PROT_WRITE, MAP_SHARED, fb, 0); + if ((int)mode->mem == -1) + { + perror("mmap"); + fb_cleanup(); + } + /* move viewport to upper left corner */ + if ((mode->fb_var.xoffset != 0) || (mode->fb_var.yoffset != 0)) + { + mode->fb_var.xoffset = 0; + mode->fb_var.yoffset = 0; + + if (ioctl(fb, FBIOPAN_DISPLAY, &(mode->fb_var)) == -1) + { + perror("ioctl FBIOPAN_DISPLAY"); + fb_cleanup(); + } + } + + if (tty) + { + if (ioctl(tty,KDSETMODE, KD_GRAPHICS) == -1) + { + perror("ioctl KDSETMODE"); + fb_cleanup(); + } + } + + mode->fb_fd = fb; + return fb; +} + +static void +fb_cleanup(void) +{ + /* restore console */ + + if (ioctl(fb, FBIOPUT_VSCREENINFO, &fb_ovar) == -1) + perror("ioctl FBIOPUT_VSCREENINFO"); + if (ioctl(fb, FBIOGET_FSCREENINFO, &fb_fix) == -1) + perror("ioctl FBIOGET_FSCREENINFO"); + + if ((fb_ovar.bits_per_pixel == 8) || + (fb_fix.visual == FB_VISUAL_DIRECTCOLOR)) + { + + if (ioctl(fb, FBIOPUTCMAP, &ocmap) == -1) + perror("ioctl FBIOPUTCMAP"); + + } + close(fb); + + + if (tty) + { + if (ioctl(tty, KDSETMODE, kd_mode) == -1) + perror("ioctl KDSETMODE"); + if (ioctl(tty, VT_SETMODE, &vt_omode) == -1) + perror("ioctl VT_SETMODE"); +/* if ((ioctl(tty, VT_ACTIVATE, orig_vt_no) == -1) && (orig_vt_no)) + perror("ioctl VT_ACTIVATE"); +*/ } + + close(tty); +} diff --git a/legacy/evas/src/lib/engines/fb/evas_outbuf.c b/legacy/evas/src/lib/engines/fb/evas_outbuf.c new file mode 100644 index 0000000000..8f201ef00b --- /dev/null +++ b/legacy/evas/src/lib/engines/fb/evas_outbuf.c @@ -0,0 +1,402 @@ +#include "evas_common.h" +#include "evas_engine.h" +#include +#include + +void +outbuf_fb_init(void) +{ +} + +void +outbuf_fb_free(Outbuf *buf) +{ + /* FIXME: impliment */ + printf("destroying fb info.. not implemented!!!! WARNING. LEAK!\n"); + if (buf->priv.back_buf) + image_free(buf->priv.back_buf); + free(buf); +} + +Outbuf * +outbuf_fb_setup_fb(int w, int h, int rot, Outbuf_Depth depth, int vt_no, int dev_no, int refresh) +{ + /* create outbuf struct */ + /* setup window and/or fb */ + /* if (dithered) create backbuf */ + Outbuf *buf; + int fb_fd = -1; + int fb_depth; + + fb_depth = -1; + if (depth == OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED) fb_depth = 16; + else if (depth == OUTBUF_DEPTH_RGB_16BPP_555_555_DITHERED) fb_depth = 15; + else if (depth == OUTBUF_DEPTH_RGB_16BPP_565_444_DITHERED) fb_depth = 16; + else if (depth == OUTBUF_DEPTH_RGB_16BPP_444_444_DITHERED) fb_depth = 12; + else if (depth == OUTBUF_DEPTH_RGB_32BPP_888_8888) fb_depth = 32; + else if (depth == OUTBUF_DEPTH_INHERIT) fb_depth = 0; + buf = calloc(1, sizeof(Outbuf)); + if (!buf) + return NULL; + + fb_init(vt_no, dev_no); + if (rot == 0) + buf->priv.fb.fb = fb_setmode(w, h, fb_depth, refresh); + else if (rot == 270) + buf->priv.fb.fb = fb_setmode(h, w, fb_depth, refresh); + else if (rot == 90) + buf->priv.fb.fb = fb_setmode(h, w, fb_depth, refresh); + if (!buf->priv.fb.fb) buf->priv.fb.fb = fb_getmode(); + if (!buf->priv.fb.fb) + { + free(buf); + return NULL; + } + fb_fd = fb_postinit(buf->priv.fb.fb); + + if (rot == 0) + { + buf->w = buf->priv.fb.fb->width; + buf->h = buf->priv.fb.fb->height; + } + else if (rot == 270) + { + buf->w = buf->priv.fb.fb->height; + buf->h = buf->priv.fb.fb->width; + } + else if (rot == 90) + { + buf->w = buf->priv.fb.fb->height; + buf->h = buf->priv.fb.fb->width; + } + + buf->depth = depth; + buf->rot = rot; + + { + Gfx_Func_Convert conv_func; + int i; + + buf->priv.mask.r = 0; + for (i = 0; i < (int)buf->priv.fb.fb->fb_var.red.length; i++) + buf->priv.mask.r |= (1 << (buf->priv.fb.fb->fb_var.red.offset + i)); + buf->priv.mask.g = 0; + for (i = 0; i < (int)buf->priv.fb.fb->fb_var.green.length; i++) + buf->priv.mask.g |= (1 << (buf->priv.fb.fb->fb_var.green.offset + i)); + buf->priv.mask.b = 0; + for (i = 0; i < (int)buf->priv.fb.fb->fb_var.blue.length; i++) + buf->priv.mask.b |= (1 << (buf->priv.fb.fb->fb_var.blue.offset + i)); + + conv_func = NULL; + if (buf->rot == 0) + conv_func = convert_func_get(0, buf->w, buf->h, + buf->priv.fb.fb->fb_var.bits_per_pixel, + buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, + PAL_MODE_NONE, + buf->rot); + else if (buf->rot == 270) + conv_func = convert_func_get(0, buf->h, buf->w, + buf->priv.fb.fb->fb_var.bits_per_pixel, + buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, + PAL_MODE_NONE, + buf->rot); + else if (buf->rot == 90) + conv_func = convert_func_get(0, buf->h, buf->w, + buf->priv.fb.fb->fb_var.bits_per_pixel, + buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, + PAL_MODE_NONE, + buf->rot); + if (!conv_func) + { + free(buf); + return NULL; + } + } + if (buf->priv.fb.fb->fb_var.bits_per_pixel < 24) + buf->priv.back_buf = image_create(buf->w, buf->h); + + return buf; +} + +void +outbuf_fb_blit(Outbuf *buf, int src_x, int src_y, int w, int h, int dst_x, int dst_y) +{ + if (buf->priv.back_buf) + { + blit_rectangle(buf->priv.back_buf, buf->priv.back_buf, + src_x, src_y, w, h, dst_x, dst_y); + outbuf_fb_update(buf, dst_x, dst_y, w, h); + } + else + { + if (buf->priv.fb.fb) + { + /* FIXME: need to impliment an fb call for "copy area" */ + } + } +} + +void +outbuf_fb_update(Outbuf *buf, int x, int y, int w, int h) +{ + if (!(buf->priv.back_buf)) return; + if (buf->priv.fb.fb) + { + Gfx_Func_Convert conv_func; + DATA8 *data; + + data = NULL; + conv_func = NULL; + if (buf->rot == 0) + { + data = (DATA8 *)buf->priv.fb.fb->mem + buf->priv.fb.fb->mem_offset + + buf->priv.fb.fb->bpp * + (x + (y * buf->priv.fb.fb->width)); + conv_func = convert_func_get(data, w, h, buf->priv.fb.fb->fb_var.bits_per_pixel, + buf->priv.mask.r, buf->priv.mask.g, + buf->priv.mask.b, PAL_MODE_NONE, + buf->rot); + } + else if (buf->rot == 270) + { + data = (DATA8 *)buf->priv.fb.fb->mem + buf->priv.fb.fb->mem_offset + + buf->priv.fb.fb->bpp * + (buf->h - y - h + (x * buf->priv.fb.fb->width)); + conv_func = convert_func_get(data, h, w, buf->priv.fb.fb->fb_var.bits_per_pixel, + buf->priv.mask.r, buf->priv.mask.g, + buf->priv.mask.b, PAL_MODE_NONE, + buf->rot); + } + else if (buf->rot == 90) + { + data = (DATA8 *)buf->priv.fb.fb->mem + buf->priv.fb.fb->mem_offset + + buf->priv.fb.fb->bpp * + (y + ((buf->w - x - w) * buf->priv.fb.fb->width)); + conv_func = convert_func_get(data, h, w, buf->priv.fb.fb->fb_var.bits_per_pixel, + buf->priv.mask.r, buf->priv.mask.g, + buf->priv.mask.b, PAL_MODE_NONE, + buf->rot); + } + if (conv_func) + { + DATA32 *src_data; + + src_data = buf->priv.back_buf->image->data + (y * buf->w) + x; + if (buf->rot == 0) + { + conv_func(src_data, data, + buf->w - w, + buf->priv.fb.fb->width - w, + w, h, + x, y, NULL); + } + else if (buf->rot == 270) + { + conv_func(src_data, data, + buf->w - w, + buf->priv.fb.fb->width - h, + h, w, + x, y, NULL); + } + else if (buf->rot == 90) + { + conv_func(src_data, data, + buf->w - w, + buf->priv.fb.fb->width - h, + h, w, + x, y, NULL); + } + } + } +} + +RGBA_Image * +outbuf_fb_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch) +{ + if (buf->priv.back_buf) + { + *cx = x; *cy = y; *cw = w; *ch = h; + return buf->priv.back_buf; + } + else + { + RGBA_Image *im; + + *cx = 0; *cy = 0; *cw = w; *ch = h; + im = image_create(w, h); + return im; + } + return NULL; +} + +void +outbuf_fb_free_region_for_update(Outbuf *buf, RGBA_Image *update) +{ + if (update != buf->priv.back_buf) image_free(update); +} + +void +outbuf_fb_push_updated_region(Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h) +{ + if (!buf->priv.fb.fb) return; + if (buf->priv.back_buf) + { + if (update != buf->priv.back_buf) + blit_rectangle(update, buf->priv.back_buf, + 0, 0, w, h, x, y); + outbuf_fb_update(buf, x, y, w, h); + } + else + { + Gfx_Func_Convert conv_func; + DATA8 *data; + + data = NULL; + conv_func = NULL; + if (buf->rot == 0) + { + data = (DATA8 *)buf->priv.fb.fb->mem + + buf->priv.fb.fb->mem_offset + + buf->priv.fb.fb->bpp * + (x + (y * buf->priv.fb.fb->width)); + conv_func = convert_func_get(data, w, h, + buf->priv.fb.fb->fb_var.bits_per_pixel, + buf->priv.mask.r, buf->priv.mask.g, + buf->priv.mask.b, PAL_MODE_NONE, + buf->rot); + } + else if (buf->rot == 270) + { + data = (DATA8 *)buf->priv.fb.fb->mem + + buf->priv.fb.fb->mem_offset + + buf->priv.fb.fb->bpp * + (buf->h - y - h + (x * buf->priv.fb.fb->width)); + conv_func = convert_func_get(data, h, w, + buf->priv.fb.fb->fb_var.bits_per_pixel, + buf->priv.mask.r, buf->priv.mask.g, + buf->priv.mask.b, PAL_MODE_NONE, + buf->rot); + } + else if (buf->rot == 90) + { + data = (DATA8 *)buf->priv.fb.fb->mem + + buf->priv.fb.fb->mem_offset + + buf->priv.fb.fb->bpp * + (y + ((buf->w - x - w) * buf->priv.fb.fb->width)); + conv_func = convert_func_get(data, h, w, + buf->priv.fb.fb->fb_var.bits_per_pixel, + buf->priv.mask.r, buf->priv.mask.g, + buf->priv.mask.b, PAL_MODE_NONE, + buf->rot); + } + if (conv_func) + { + DATA32 *src_data; + + src_data = update->image->data; + if (buf->rot == 0) + { + conv_func(src_data, data, + 0, + buf->priv.fb.fb->width - w, + w, h, + x, y, NULL); + } + else if (buf->rot == 270) + { + conv_func(src_data, data, + 0, + buf->priv.fb.fb->width - h, + h, w, + x, y, NULL); + } + else if (buf->rot == 90) + { + conv_func(src_data, data, + 0, + buf->priv.fb.fb->width - h, + h, w, + x, y, NULL); + } + } + } +} + +void +outbuf_fb_reconfigure(Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth) +{ + if ((w == buf->w) && (h == buf->h) && + (rot == buf->rot) && (depth == buf->depth)) + return; + if (buf->priv.back_buf) + { + image_free(buf->priv.back_buf); + buf->priv.back_buf = NULL; + } + if (buf->priv.fb.fb) + { + /* FIXME: impliment this */ + } + /* if backbuf delet it */ + /* resize window or reset fb mode */ + /* if (dithered) create new backbuf */ +} + +int +outbuf_fb_get_width(Outbuf *buf) +{ + return buf->w; +} + +int +outbuf_fb_get_height(Outbuf *buf) +{ + return buf->h; +} + +Outbuf_Depth +outbuf_fb_get_depth(Outbuf *buf) +{ + return buf->depth; +} + +int +outbuf_fb_get_rot(Outbuf *buf) +{ + return buf->rot; +} + +int +outbuf_fb_get_have_backbuf(Outbuf *buf) +{ + if (buf->priv.back_buf) return 1; + return 0; +} + +void +outbuf_fb_set_have_backbuf(Outbuf *buf, int have_backbuf) +{ + if (buf->priv.back_buf) + { + if (have_backbuf) return; + image_free(buf->priv.back_buf); + buf->priv.back_buf = NULL; + } + else + { + if (!have_backbuf) return; + if (buf->priv.fb.fb) + { + if (buf->priv.fb.fb->fb_var.bits_per_pixel < 24) + { + buf->priv.back_buf = image_create(buf->w, buf->h); + } + } + } +} diff --git a/legacy/evas/src/lib/engines/gl_common/Makefile.am b/legacy/evas/src/lib/engines/gl_common/Makefile.am new file mode 100644 index 0000000000..7b50a5c50e --- /dev/null +++ b/legacy/evas/src/lib/engines/gl_common/Makefile.am @@ -0,0 +1,32 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = 1.4 foreign + +# A list of all the files in the current directory which can be regenerated +MAINTAINERCLEANFILES = Makefile.in + +LDFLAGS = -L/usr/local/lib +INCLUDES = \ + -I. \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/lib/include \ + -I$(includedir) \ + -I/usr/local/include \ + @freetype_cflags@ @gl_cflags@ + +if BUILD_ENGINE_GL_COMMON + +noinst_LTLIBRARIES = libevas_engine_gl_common.la +libevas_engine_gl_common_la_SOURCES = \ +evas_gl_image.c + +libevas_engine_gl_common_la_LIBADD = \ +@gl_libs@ $(LDFLAGS) + +libevas_engine_gl_common_la_DEPENDENCIES = \ +$(top_builddir)/config.h + +endif + +EXTRA_DIST = \ +evas_gl_image.c diff --git a/legacy/evas/src/lib/engines/gl_common/evas_gl_image.c b/legacy/evas/src/lib/engines/gl_common/evas_gl_image.c new file mode 100644 index 0000000000..ba702f822d --- /dev/null +++ b/legacy/evas/src/lib/engines/gl_common/evas_gl_image.c @@ -0,0 +1 @@ +#include "evas_common.h" diff --git a/legacy/evas/src/lib/engines/gl_x11/Makefile.am b/legacy/evas/src/lib/engines/gl_x11/Makefile.am new file mode 100644 index 0000000000..6ef389bfd9 --- /dev/null +++ b/legacy/evas/src/lib/engines/gl_x11/Makefile.am @@ -0,0 +1,36 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = 1.4 foreign + +# A list of all the files in the current directory which can be regenerated +MAINTAINERCLEANFILES = Makefile.in + +LDFLAGS = -L/usr/local/lib +INCLUDES = \ + -I. \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/lib/include \ + -I$(includedir) \ + -I/usr/local/include \ + @freetype_cflags@ @x_cflags@ @gl_cflags@ + +if BUILD_ENGINE_GL_X11 + +noinst_LTLIBRARIES = libevas_engine_gl_x11.la +libevas_engine_gl_x11_la_SOURCES = \ +evas_engine.h \ +evas_engine.c \ +evas_x_main.c + +libevas_engine_gl_x11_la_LIBADD = \ +@x_libs@ @gl_libs@ $(LDFLAGS) + +libevas_engine_gl_x11_la_DEPENDENCIES = \ +$(top_builddir)/config.h + +endif + +EXTRA_DIST = \ +evas_engine.h \ +evas_engine.c \ +evas_x_main.c diff --git a/legacy/evas/src/lib/engines/gl_x11/evas_engine.c b/legacy/evas/src/lib/engines/gl_x11/evas_engine.c new file mode 100644 index 0000000000..699b5bad13 --- /dev/null +++ b/legacy/evas/src/lib/engines/gl_x11/evas_engine.c @@ -0,0 +1,775 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "evas_engine.h" +#include "evas_engine_api_gl_x11.h" +#include "Evas.h" +#include "Evas_Engine_GL_X11.h" + +static void *evas_engine_gl_x11_info(Evas *e); +static void evas_engine_gl_x11_info_free(Evas *e, void *info); +static void evas_engine_gl_x11_setup(Evas *e, void *info); +static void *evas_engine_gl_x11_output_setup(int w, int h, int rot, Display *disp, Drawable draw, Visual *vis, Colormap cmap, int depth); +static void evas_engine_gl_x11_output_free(void *data); +static void evas_engine_gl_x11_output_resize(void *data, int w, int h); +static void evas_engine_gl_x11_output_tile_size_set(void *data, int w, int h); +static void evas_engine_gl_x11_output_redraws_rect_add(void *data, int x, int y, int w, int h); +static void evas_engine_gl_x11_output_redraws_rect_del(void *data, int x, int y, int w, int h); +static void evas_engine_gl_x11_output_redraws_clear(void *data); +static void *evas_engine_gl_x11_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch); +static void evas_engine_gl_x11_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h); +static void evas_engine_gl_x11_output_flush(void *data); +static void *evas_engine_gl_x11_context_new(void *data); +static void evas_engine_gl_x11_context_free(void *data, void *context); +static void evas_engine_gl_x11_context_clip_set(void *data, void *context, int x, int y, int w, int h); +static void evas_engine_gl_x11_context_clip_clip(void *data, void *context, int x, int y, int w, int h); +static void evas_engine_gl_x11_context_clip_unset(void *data, void *context); +static int evas_engine_gl_x11_context_clip_get(void *data, void *context, int *x, int *y, int *w, int *h); +static void evas_engine_gl_x11_context_color_set(void *data, void *context, int r, int g, int b, int a); +static int evas_engine_gl_x11_context_color_get(void *data, void *context, int *r, int *g, int *b, int *a); +static void evas_engine_gl_x11_context_multiplier_set(void *data, void *context, int r, int g, int b, int a); +static void evas_engine_gl_x11_context_multiplier_unset(void *data, void *context); +static int evas_engine_gl_x11_context_multiplier_get(void *data, void *context, int *r, int *g, int *b, int *a); +static void evas_engine_gl_x11_context_cutout_add(void *data, void *context, int x, int y, int w, int h); +static void evas_engine_gl_x11_context_cutout_clear(void *data, void *context); +static void evas_engine_gl_x11_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h); +static void evas_engine_gl_x11_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2); +static void *evas_engine_gl_x11_polygon_point_add(void *data, void *context, void *polygon, int x, int y); +static void *evas_engine_gl_x11_polygon_points_clear(void *data, void *context, void *polygon); +static void evas_engine_gl_x11_polygon_draw(void *data, void *context, void *surface, void *polygon); +static void *evas_engine_gl_x11_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance); +static void *evas_engine_gl_x11_gradient_colors_clear(void *data, void *context, void *gradient); +static void evas_engine_gl_x11_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle); +static void *evas_engine_gl_x11_image_load(void *data, char *file, char *key, int *error); +static void *evas_engine_gl_x11_image_new_from_data(void *data, int w, int h, DATA32 *image_data); +static void *evas_engine_gl_x11_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data); +static void evas_engine_gl_x11_image_free(void *data, void *image); +static void evas_engine_gl_x11_image_size_get(void *data, void *image, int *w, int *h); +static void *evas_engine_gl_x11_image_size_set(void *data, void *image, int w, int h); +static void *evas_engine_gl_x11_image_dirty_region(void *data, void *image, int x, int y, int w, int h); +static void *evas_engine_gl_x11_image_data_get(void *data, void *image, int to_write, DATA32 **image_data); +static void *evas_engine_gl_x11_image_data_put(void *data, void *image, DATA32 *image_data); +static void *evas_engine_gl_x11_image_alpha_set(void *data, void *image, int has_alpha); +static int evas_engine_gl_x11_image_alpha_get(void *data, void *image); +static void evas_engine_gl_x11_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth); +static char *evas_engine_gl_x11_image_comment_get(void *data, void *image, char *key); +static char *evas_engine_gl_x11_image_format_get(void *data, void *image); +static void evas_engine_gl_x11_image_cache_flush(void *data); +static void evas_engine_gl_x11_image_cache_set(void *data, int bytes); +static int evas_engine_gl_x11_image_cache_get(void *data); +static void *evas_engine_gl_x11_font_load(void *data, char *name, int size); +static void evas_engine_gl_x11_font_free(void *data, void *font); +static int evas_engine_gl_x11_font_ascent_get(void *data, void *font); +static int evas_engine_gl_x11_font_descent_get(void *data, void *font); +static int evas_engine_gl_x11_font_max_ascent_get(void *data, void *font); +static int evas_engine_gl_x11_font_max_descent_get(void *data, void *font); +static void evas_engine_gl_x11_font_string_size_get(void *data, void *font, char *text, int *w, int *h); +static int evas_engine_gl_x11_font_inset_get(void *data, void *font, char *text); +static int evas_engine_gl_x11_font_h_advance_get(void *data, void *font, char *text); +static int evas_engine_gl_x11_font_v_advance_get(void *data, void *font, char *text); +static int evas_engine_gl_x11_font_char_coords_get(void *data, void *font, char *text, int pos, int *cx, int *cy, int *cw, int *ch); +static int evas_engine_gl_x11_font_char_at_coords_get(void *data, void *font, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch); +static void evas_engine_gl_x11_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, char *text); +static void evas_engine_gl_x11_font_cache_flush(void *data); +static void evas_engine_gl_x11_font_cache_set(void *data, int bytes); +static int evas_engine_gl_x11_font_cache_get(void *data); + + +static Visual *evas_engine_gl_x11_best_visual_get(Display *disp, int screen); +static Colormap evas_engine_gl_x11_best_colormap_get(Display *disp, int screen); +static int evas_engine_gl_x11_best_depth_get(Display *disp, int screen); + +typedef struct _Render_Engine Render_Engine; + +struct _Render_Engine +{ + int end; +}; + +Evas_Func evas_engine_gl_x11_func = +{ + evas_engine_gl_x11_info, + evas_engine_gl_x11_info_free, + evas_engine_gl_x11_setup, + evas_engine_gl_x11_output_free, + evas_engine_gl_x11_output_resize, + evas_engine_gl_x11_output_tile_size_set, + evas_engine_gl_x11_output_redraws_rect_add, + evas_engine_gl_x11_output_redraws_rect_del, + evas_engine_gl_x11_output_redraws_clear, + evas_engine_gl_x11_output_redraws_next_update_get, + evas_engine_gl_x11_output_redraws_next_update_push, + evas_engine_gl_x11_output_flush, + /* draw context virtual methods */ + evas_engine_gl_x11_context_new, + evas_engine_gl_x11_context_free, + evas_engine_gl_x11_context_clip_set, + evas_engine_gl_x11_context_clip_clip, + evas_engine_gl_x11_context_clip_unset, + evas_engine_gl_x11_context_clip_get, + evas_engine_gl_x11_context_color_set, + evas_engine_gl_x11_context_color_get, + evas_engine_gl_x11_context_multiplier_set, + evas_engine_gl_x11_context_multiplier_unset, + evas_engine_gl_x11_context_multiplier_get, + evas_engine_gl_x11_context_cutout_add, + evas_engine_gl_x11_context_cutout_clear, + /* rectangle draw funcs */ + evas_engine_gl_x11_rectangle_draw, + /* line draw funcs */ + evas_engine_gl_x11_line_draw, + /* polygon draw funcs */ + evas_engine_gl_x11_polygon_point_add, + evas_engine_gl_x11_polygon_points_clear, + evas_engine_gl_x11_polygon_draw, + /* gradient draw funcs */ + evas_engine_gl_x11_gradient_color_add, + evas_engine_gl_x11_gradient_colors_clear, + evas_engine_gl_x11_gradient_draw, + /* image draw funcs */ + evas_engine_gl_x11_image_load, + evas_engine_gl_x11_image_new_from_data, + evas_engine_gl_x11_image_new_from_copied_data, + evas_engine_gl_x11_image_free, + evas_engine_gl_x11_image_size_get, + evas_engine_gl_x11_image_size_set, + evas_engine_gl_x11_image_dirty_region, + evas_engine_gl_x11_image_data_get, + evas_engine_gl_x11_image_data_put, + evas_engine_gl_x11_image_alpha_set, + evas_engine_gl_x11_image_alpha_get, + evas_engine_gl_x11_image_draw, + evas_engine_gl_x11_image_comment_get, + evas_engine_gl_x11_image_format_get, + /* image cache funcs */ + evas_engine_gl_x11_image_cache_flush, + evas_engine_gl_x11_image_cache_set, + evas_engine_gl_x11_image_cache_get, + /* font draw functions */ + evas_engine_gl_x11_font_load, + evas_engine_gl_x11_font_free, + evas_engine_gl_x11_font_ascent_get, + evas_engine_gl_x11_font_descent_get, + evas_engine_gl_x11_font_max_ascent_get, + evas_engine_gl_x11_font_max_descent_get, + evas_engine_gl_x11_font_string_size_get, + evas_engine_gl_x11_font_inset_get, + evas_engine_gl_x11_font_h_advance_get, + evas_engine_gl_x11_font_v_advance_get, + evas_engine_gl_x11_font_char_coords_get, + evas_engine_gl_x11_font_char_at_coords_get, + evas_engine_gl_x11_font_draw, + /* font cache functions */ + evas_engine_gl_x11_font_cache_flush, + evas_engine_gl_x11_font_cache_set, + evas_engine_gl_x11_font_cache_get +}; + +static void * +evas_engine_gl_x11_info(Evas *e) +{ + Evas_Engine_Info_GL_X11 *info; + + info = calloc(1, sizeof(Evas_Engine_Info_GL_X11)); + if (!info) return NULL; + info->magic.magic = rand(); + info->func.best_visual_get = evas_engine_gl_x11_best_visual_get; + info->func.best_colormap_get = evas_engine_gl_x11_best_colormap_get; + info->func.best_depth_get = evas_engine_gl_x11_best_depth_get; + return info; + e = NULL; +} + +static void +evas_engine_gl_x11_info_free(Evas *e, void *info) +{ + Evas_Engine_Info_GL_X11 *in; + + in = (Evas_Engine_Info_GL_X11 *)info; + free(in); +} + +static void +evas_engine_gl_x11_setup(Evas *e, void *in) +{ + Render_Engine *re; + Evas_Engine_Info_GL_X11 *info; + + info = (Evas_Engine_Info_GL_X11 *)in; + if (!e->engine.data.output) + e->engine.data.output = 1; + if (!e->engine.data.output) return; + if (!e->engine.data.context) + e->engine.data.context = + e->engine.func->context_new(e->engine.data.output); + + re = e->engine.data.output; +} + +static void * +evas_engine_gl_x11_output_setup(int w, int h, int rot, Display *disp, Drawable draw, Visual *vis, Colormap cmap, int depth) +{ + Render_Engine *re; + + re = calloc(1, sizeof(Render_Engine)); + /* if we haven't initialized - init (automatic abort if already done) */ + cpu_init(); + + blend_init(); + image_init(); + convert_init(); + scale_init(); + rectangle_init(); + gradient_init(); + polygon_init(); + line_init(); + font_init(); + draw_init(); + tilebuf_init(); + + x_gl_x11_init(); + + return re; +} + +static void +evas_engine_gl_x11_output_free(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + free(re); +} + +static void +evas_engine_gl_x11_output_resize(void *data, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_output_tile_size_set(void *data, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_output_redraws_rect_add(void *data, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_output_redraws_rect_del(void *data, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_output_redraws_clear(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_output_flush(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +/* XSync(re->ob->priv.x.disp, False); */ +} + +static void * +evas_engine_gl_x11_context_new(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_context_free(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_context_clip_set(void *data, void *context, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_context_clip_clip(void *data, void *context, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_context_clip_unset(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_context_clip_get(void *data, void *context, int *x, int *y, int *w, int *h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_context_color_set(void *data, void *context, int r, int g, int b, int a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_context_color_get(void *data, void *context, int *r, int *g, int *b, int *a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_context_multiplier_set(void *data, void *context, int r, int g, int b, int a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_context_multiplier_unset(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_context_multiplier_get(void *data, void *context, int *r, int *g, int *b, int *a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_context_cutout_add(void *data, void *context, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_context_cutout_clear(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + + + + + + +static void +evas_engine_gl_x11_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_polygon_point_add(void *data, void *context, void *polygon, int x, int y) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_polygon_points_clear(void *data, void *context, void *polygon) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_polygon_draw(void *data, void *context, void *surface, void *polygon) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_gradient_colors_clear(void *data, void *context, void *gradient) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_image_load(void *data, char *file, char *key, int *error) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_image_new_from_data(void *data, int w, int h, DATA32 *image_data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_image_free(void *data, void *image) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_image_size_get(void *data, void *image, int *w, int *h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_image_size_set(void *data, void *image, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_image_dirty_region(void *data, void *image, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_image_data_get(void *data, void *image, int to_write, DATA32 **image_data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_image_data_put(void *data, void *image, DATA32 *image_data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_image_alpha_set(void *data, void *image, int has_alpha) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + + +static int +evas_engine_gl_x11_image_alpha_get(void *data, void *image) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static char * +evas_engine_gl_x11_image_comment_get(void *data, void *image, char *key) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static char * +evas_engine_gl_x11_image_format_get(void *data, void *image) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_image_cache_flush(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_image_cache_set(void *data, int bytes) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_image_cache_get(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_gl_x11_font_load(void *data, char *name, int size) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_font_free(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_font_ascent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_font_descent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_font_max_ascent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_font_max_descent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_font_string_size_get(void *data, void *font, char *text, int *w, int *h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_font_inset_get(void *data, void *font, char *text) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_font_h_advance_get(void *data, void *font, char *text) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_font_v_advance_get(void *data, void *font, char *text) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_font_char_coords_get(void *data, void *font, char *text, int pos, int *cx, int *cy, int *cw, int *ch) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_font_char_at_coords_get(void *data, void *font, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, char *text) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_font_cache_flush(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void +evas_engine_gl_x11_font_cache_set(void *data, int bytes) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static int +evas_engine_gl_x11_font_cache_get(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + + + + + + + + + +/* private engine functions the calling prog can use */ + +static Visual * +evas_engine_gl_x11_best_visual_get(Display *disp, int screen) +{ + if (!disp) return NULL; + return DefaultVisual(disp, screen); +} + +static Colormap +evas_engine_gl_x11_best_colormap_get(Display *disp, int screen) +{ + if (!disp) return 0; + return DefaultColormap(disp, screen); +} + +static int +evas_engine_gl_x11_best_depth_get(Display *disp, int screen) +{ + if (!disp) return 0; + return DefaultDepth(disp, screen); +} diff --git a/legacy/evas/src/lib/engines/gl_x11/evas_engine.h b/legacy/evas/src/lib/engines/gl_x11/evas_engine.h new file mode 100644 index 0000000000..a8992558c9 --- /dev/null +++ b/legacy/evas/src/lib/engines/gl_x11/evas_engine.h @@ -0,0 +1,13 @@ +#ifndef EVAS_ENGINE_H +#define EVAS_ENGINE_H + +#include +#include +#include + +/* data structs go here for engine internals */ + +/****/ +void x_gl_x11_init (void); + +#endif diff --git a/legacy/evas/src/lib/engines/gl_x11/evas_x_main.c b/legacy/evas/src/lib/engines/gl_x11/evas_x_main.c new file mode 100644 index 0000000000..105c347279 --- /dev/null +++ b/legacy/evas/src/lib/engines/gl_x11/evas_x_main.c @@ -0,0 +1,10 @@ +#include "evas_common.h" +#include "evas_engine.h" + +#include +#include + +void +x_gl_x11_init(void) +{ +} diff --git a/legacy/evas/src/lib/engines/software_qtopia/Makefile.am b/legacy/evas/src/lib/engines/software_qtopia/Makefile.am new file mode 100644 index 0000000000..506252c15b --- /dev/null +++ b/legacy/evas/src/lib/engines/software_qtopia/Makefile.am @@ -0,0 +1,40 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = 1.4 foreign + +# A list of all the files in the current directory which can be regenerated +MAINTAINERCLEANFILES = Makefile.in + +LDFLAGS = -L/usr/local/lib +INCLUDES = \ + -I. \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/lib/include \ + -I$(includedir) \ + -I/usr/local/include \ + @freetype_cflags@ @qt_cflags@ + +CXXFLAGS = $(CFLAGS) -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -DNO_DEBUG + +if BUILD_ENGINE_SOFTWARE_QTOPIA + +noinst_LTLIBRARIES = libevas_engine_software_qtopia.la +libevas_engine_software_qtopia_la_SOURCES = \ +evas_engine.h \ +evas_engine.c \ +evas_outbuf.c \ +evas_qt_main.cpp + +libevas_engine_software_qtopia_la_LIBADD = \ +@qt_libs@ $(LDFLAGS) + +libevas_engine_software_qtopia_la_DEPENDENCIES = \ +$(top_builddir)/config.h + +endif + +EXTRA_DIST = \ +evas_engine.h \ +evas_engine.c \ +evas_outbuf.c \ +evas_qt_main.cpp diff --git a/legacy/evas/src/lib/engines/software_qtopia/evas_engine.c b/legacy/evas/src/lib/engines/software_qtopia/evas_engine.c new file mode 100644 index 0000000000..e869b27f4a --- /dev/null +++ b/legacy/evas/src/lib/engines/software_qtopia/evas_engine.c @@ -0,0 +1,1040 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "evas_engine.h" +#include "evas_engine_api_software_qtopia.h" +#include "Evas.h" +#include "Evas_Engine_Software_Qtopia.h" + +static void *evas_engine_software_qtopia_info(Evas *e); +static void evas_engine_software_qtopia_info_free(Evas *e, void *info); +static void evas_engine_software_qtopia_setup(Evas *e, void *info); +static void *evas_engine_software_qtopia_output_setup(int w, int h, int rot, QWidget *target); +static void evas_engine_software_qtopia_output_free(void *data); +static void evas_engine_software_qtopia_output_resize(void *data, int w, int h); +static void evas_engine_software_qtopia_output_tile_size_set(void *data, int w, int h); +static void evas_engine_software_qtopia_output_redraws_rect_add(void *data, int x, int y, int w, int h); +static void evas_engine_software_qtopia_output_redraws_rect_del(void *data, int x, int y, int w, int h); +static void evas_engine_software_qtopia_output_redraws_clear(void *data); +static void *evas_engine_software_qtopia_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch); +static void evas_engine_software_qtopia_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h); +static void evas_engine_software_qtopia_output_flush(void *data); +static void *evas_engine_software_qtopia_context_new(void *data); +static void evas_engine_software_qtopia_context_free(void *data, void *context); +static void evas_engine_software_qtopia_context_clip_set(void *data, void *context, int x, int y, int w, int h); +static void evas_engine_software_qtopia_context_clip_clip(void *data, void *context, int x, int y, int w, int h); +static void evas_engine_software_qtopia_context_clip_unset(void *data, void *context); +static int evas_engine_software_qtopia_context_clip_get(void *data, void *context, int *x, int *y, int *w, int *h); +static void evas_engine_software_qtopia_context_color_set(void *data, void *context, int r, int g, int b, int a); +static int evas_engine_software_qtopia_context_color_get(void *data, void *context, int *r, int *g, int *b, int *a); +static void evas_engine_software_qtopia_context_multiplier_set(void *data, void *context, int r, int g, int b, int a); +static void evas_engine_software_qtopia_context_multiplier_unset(void *data, void *context); +static int evas_engine_software_qtopia_context_multiplier_get(void *data, void *context, int *r, int *g, int *b, int *a); +static void evas_engine_software_qtopia_context_cutout_add(void *data, void *context, int x, int y, int w, int h); +static void evas_engine_software_qtopia_context_cutout_clear(void *data, void *context); +static void evas_engine_software_qtopia_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h); +static void evas_engine_software_qtopia_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2); +static void *evas_engine_software_qtopia_polygon_point_add(void *data, void *context, void *polygon, int x, int y); +static void *evas_engine_software_qtopia_polygon_points_clear(void *data, void *context, void *polygon); +static void evas_engine_software_qtopia_polygon_draw(void *data, void *context, void *surface, void *polygon); +static void *evas_engine_software_qtopia_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance); +static void *evas_engine_software_qtopia_gradient_colors_clear(void *data, void *context, void *gradient); +static void evas_engine_software_qtopia_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle); +static void *evas_engine_software_qtopia_image_load(void *data, char *file, char *key, int *error); +static void *evas_engine_software_qtopia_image_new_from_data(void *data, int w, int h, DATA32 *image_data); +static void *evas_engine_software_qtopia_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data); +static void evas_engine_software_qtopia_image_free(void *data, void *image); +static void evas_engine_software_qtopia_image_size_get(void *data, void *image, int *w, int *h); +static void *evas_engine_software_qtopia_image_size_set(void *data, void *image, int w, int h); +static void *evas_engine_software_qtopia_image_dirty_region(void *data, void *image, int x, int y, int w, int h); +static void *evas_engine_software_qtopia_image_data_get(void *data, void *image, int to_write, DATA32 **image_data); +static void *evas_engine_software_qtopia_image_data_put(void *data, void *image, DATA32 *image_data); +static void *evas_engine_software_qtopia_image_alpha_set(void *data, void *image, int has_alpha); +static int evas_engine_software_qtopia_image_alpha_get(void *data, void *image); +static void evas_engine_software_qtopia_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth); +static char *evas_engine_software_qtopia_image_comment_get(void *data, void *image, char *key); +static char *evas_engine_software_qtopia_image_format_get(void *data, void *image); +static void evas_engine_software_qtopia_image_cache_flush(void *data); +static void evas_engine_software_qtopia_image_cache_set(void *data, int bytes); +static int evas_engine_software_qtopia_image_cache_get(void *data); +static void *evas_engine_software_qtopia_font_load(void *data, char *name, int size); +static void evas_engine_software_qtopia_font_free(void *data, void *font); +static int evas_engine_software_qtopia_font_ascent_get(void *data, void *font); +static int evas_engine_software_qtopia_font_descent_get(void *data, void *font); +static int evas_engine_software_qtopia_font_max_ascent_get(void *data, void *font); +static int evas_engine_software_qtopia_font_max_descent_get(void *data, void *font); +static void evas_engine_software_qtopia_font_string_size_get(void *data, void *font, char *text, int *w, int *h); +static int evas_engine_software_qtopia_font_inset_get(void *data, void *font, char *text); +static int evas_engine_software_qtopia_font_h_advance_get(void *data, void *font, char *text); +static int evas_engine_software_qtopia_font_v_advance_get(void *data, void *font, char *text); +static int evas_engine_software_qtopia_font_char_coords_get(void *data, void *font, char *text, int pos, int *cx, int *cy, int *cw, int *ch); +static int evas_engine_software_qtopia_font_char_at_coords_get(void *data, void *font, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch); +static void evas_engine_software_qtopia_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, char *text); +static void evas_engine_software_qtopia_font_cache_flush(void *data); +static void evas_engine_software_qtopia_font_cache_set(void *data, int bytes); +static int evas_engine_software_qtopia_font_cache_get(void *data); + +typedef struct _Render_Engine Render_Engine; + +struct _Render_Engine +{ + Tilebuf *tb; + Outbuf *ob; + Tilebuf_Rect *rects; + Evas_Object_List *cur_rect; + int end : 1; +}; + +Evas_Func evas_engine_software_qtopia_func = +{ + evas_engine_software_qtopia_info, + evas_engine_software_qtopia_info_free, + evas_engine_software_qtopia_setup, + evas_engine_software_qtopia_output_free, + evas_engine_software_qtopia_output_resize, + evas_engine_software_qtopia_output_tile_size_set, + evas_engine_software_qtopia_output_redraws_rect_add, + evas_engine_software_qtopia_output_redraws_rect_del, + evas_engine_software_qtopia_output_redraws_clear, + evas_engine_software_qtopia_output_redraws_next_update_get, + evas_engine_software_qtopia_output_redraws_next_update_push, + evas_engine_software_qtopia_output_flush, + /* draw context virtual methods */ + evas_engine_software_qtopia_context_new, + evas_engine_software_qtopia_context_free, + evas_engine_software_qtopia_context_clip_set, + evas_engine_software_qtopia_context_clip_clip, + evas_engine_software_qtopia_context_clip_unset, + evas_engine_software_qtopia_context_clip_get, + evas_engine_software_qtopia_context_color_set, + evas_engine_software_qtopia_context_color_get, + evas_engine_software_qtopia_context_multiplier_set, + evas_engine_software_qtopia_context_multiplier_unset, + evas_engine_software_qtopia_context_multiplier_get, + evas_engine_software_qtopia_context_cutout_add, + evas_engine_software_qtopia_context_cutout_clear, + /* rectangle draw funcs */ + evas_engine_software_qtopia_rectangle_draw, + /* line draw funcs */ + evas_engine_software_qtopia_line_draw, + /* polygon draw funcs */ + evas_engine_software_qtopia_polygon_point_add, + evas_engine_software_qtopia_polygon_points_clear, + evas_engine_software_qtopia_polygon_draw, + /* gradient draw funcs */ + evas_engine_software_qtopia_gradient_color_add, + evas_engine_software_qtopia_gradient_colors_clear, + evas_engine_software_qtopia_gradient_draw, + /* image draw funcs */ + evas_engine_software_qtopia_image_load, + evas_engine_software_qtopia_image_new_from_data, + evas_engine_software_qtopia_image_new_from_copied_data, + evas_engine_software_qtopia_image_free, + evas_engine_software_qtopia_image_size_get, + evas_engine_software_qtopia_image_size_set, + evas_engine_software_qtopia_image_dirty_region, + evas_engine_software_qtopia_image_data_get, + evas_engine_software_qtopia_image_data_put, + evas_engine_software_qtopia_image_alpha_set, + evas_engine_software_qtopia_image_alpha_get, + evas_engine_software_qtopia_image_draw, + evas_engine_software_qtopia_image_comment_get, + evas_engine_software_qtopia_image_format_get, + /* image cache funcs */ + evas_engine_software_qtopia_image_cache_flush, + evas_engine_software_qtopia_image_cache_set, + evas_engine_software_qtopia_image_cache_get, + /* font draw functions */ + evas_engine_software_qtopia_font_load, + evas_engine_software_qtopia_font_free, + evas_engine_software_qtopia_font_ascent_get, + evas_engine_software_qtopia_font_descent_get, + evas_engine_software_qtopia_font_max_ascent_get, + evas_engine_software_qtopia_font_max_descent_get, + evas_engine_software_qtopia_font_string_size_get, + evas_engine_software_qtopia_font_inset_get, + evas_engine_software_qtopia_font_h_advance_get, + evas_engine_software_qtopia_font_v_advance_get, + evas_engine_software_qtopia_font_char_coords_get, + evas_engine_software_qtopia_font_char_at_coords_get, + evas_engine_software_qtopia_font_draw, + /* font cache functions */ + evas_engine_software_qtopia_font_cache_flush, + evas_engine_software_qtopia_font_cache_set, + evas_engine_software_qtopia_font_cache_get +}; + +static void * +evas_engine_software_qtopia_info(Evas *e) +{ + Evas_Engine_Info_Software_Qtopia *info; + + info = calloc(1, sizeof(Evas_Engine_Info_Software_Qtopia)); + if (!info) return NULL; + info->magic.magic = rand(); + return info; + e = NULL; +} + +static void +evas_engine_software_qtopia_info_free(Evas *e, void *info) +{ + Evas_Engine_Info_Software_Qtopia *in; + + in = (Evas_Engine_Info_Software_Qtopia *)info; + free(in); +} + +static void +evas_engine_software_qtopia_setup(Evas *e, void *in) +{ + Render_Engine *re; + Evas_Engine_Info_Software_Qtopia *info; + + info = (Evas_Engine_Info_Software_Qtopia *)in; + if (!e->engine.data.output) + e->engine.data.output = + evas_engine_software_qtopia_output_setup(e->output.w, + e->output.h, + info->info.rotation, + info->info.target); + if (!e->engine.data.output) return; + if (!e->engine.data.context) + e->engine.data.context = + e->engine.func->context_new(e->engine.data.output); + + re = e->engine.data.output; +} + +static void * +evas_engine_software_qtopia_output_setup(int w, int h, int rot, QWidget *target) +{ + Render_Engine *re; + + re = calloc(1, sizeof(Render_Engine)); + /* if we haven't initialized - init (automatic abort if already done) */ + cpu_init(); + + blend_init(); + image_init(); + convert_init(); + scale_init(); + rectangle_init(); + gradient_init(); + polygon_init(); + line_init(); + font_init(); + draw_init(); + tilebuf_init(); + + outbuf_software_qtopia_init(); + + /* get any stored performance metrics from device (xserver) */ + re->ob = outbuf_software_qtopia_setup_q(w, h, rot, OUTBUF_DEPTH_INHERIT, target); + if (!re->ob) + { + free(re); + return NULL; + } + outbuf_software_qtopia_set_have_backbuf(re->ob, 0); + re->tb = tilebuf_new(w, h); + if (!re->tb) + { + outbuf_software_qtopia_free(re->ob); + free(re); + return NULL; + } + /* in preliminary tests 16x16 gave highest framerates */ + tilebuf_set_tile_size(re->tb, 16, 16); + return re; +} + +static void +evas_engine_software_qtopia_output_free(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + outbuf_software_qtopia_free(re->ob); + tilebuf_free(re->tb); + if (re->rects) tilebuf_free_render_rects(re->rects); + free(re); +} + +static void +evas_engine_software_qtopia_output_resize(void *data, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + outbuf_software_qtopia_reconfigure(re->ob, w, h, + outbuf_software_qtopia_get_rot(re->ob), + OUTBUF_DEPTH_INHERIT); + outbuf_software_qtopia_set_have_backbuf(re->ob, 0); + tilebuf_free(re->tb); + re->tb = tilebuf_new(w, h); + if (re->tb) + tilebuf_set_tile_size(re->tb, 16, 16); +} + +static void +evas_engine_software_qtopia_output_tile_size_set(void *data, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + tilebuf_set_tile_size(re->tb, w, h); +} + +static void +evas_engine_software_qtopia_output_redraws_rect_add(void *data, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + tilebuf_add_redraw(re->tb, x, y, w, h); +} + +static void +evas_engine_software_qtopia_output_redraws_rect_del(void *data, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + tilebuf_del_redraw(re->tb, x, y, w, h); +} + +static void +evas_engine_software_qtopia_output_redraws_clear(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + tilebuf_clear(re->tb); +} + +static void * +evas_engine_software_qtopia_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch) +{ + Render_Engine *re; + RGBA_Image *surface; + Tilebuf_Rect *rect; + int ux, uy, uw, uh; + + re = (Render_Engine *)data; + if (re->end) + { + re->end = 0; + return NULL; + } + if (!re->rects) + { + re->rects = tilebuf_get_render_rects(re->tb); + re->cur_rect = (Evas_Object_List *)re->rects; + } + if (!re->cur_rect) return NULL; + rect = (Tilebuf_Rect *)re->cur_rect; + ux = rect->x; uy = rect->y; uw = rect->w; uh = rect->h; + re->cur_rect = re->cur_rect->next; + if (!re->cur_rect) + { + tilebuf_free_render_rects(re->rects); + re->rects = NULL; + re->end = 1; + } + + surface = outbuf_software_qtopia_new_region_for_update(re->ob, + ux, uy, uw, uh, + cx, cy, cw, ch); + *x = ux; *y = uy; *w = uw; *h = uh; + return surface; +} + +static void +evas_engine_software_qtopia_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h) +{ + Render_Engine *re; + Evas_Engine_Info_Software_Qtopia *info; + + re = (Render_Engine *)data; + outbuf_software_qtopia_push_updated_region(re->ob, surface, x, y, w, h); + outbuf_software_qtopia_free_region_for_update(re->ob, surface); + cpu_end_opt(); +} + +static void +evas_engine_software_qtopia_output_flush(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; +} + +static void * +evas_engine_software_qtopia_context_new(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return draw_context_new(); +} + +static void +evas_engine_software_qtopia_context_free(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_free(context); +} + +static void +evas_engine_software_qtopia_context_clip_set(void *data, void *context, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_set_clip(context, x, y, w, h); +} + +static void +evas_engine_software_qtopia_context_clip_clip(void *data, void *context, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_clip_clip(context, x, y, w, h); +} + +static void +evas_engine_software_qtopia_context_clip_unset(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_unset_clip(context); +} + +static int +evas_engine_software_qtopia_context_clip_get(void *data, void *context, int *x, int *y, int *w, int *h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + *x = ((RGBA_Draw_Context *)context)->clip.x; + *y = ((RGBA_Draw_Context *)context)->clip.y; + *w = ((RGBA_Draw_Context *)context)->clip.w; + *h = ((RGBA_Draw_Context *)context)->clip.h; + return ((RGBA_Draw_Context *)context)->clip.use; +} + +static void +evas_engine_software_qtopia_context_color_set(void *data, void *context, int r, int g, int b, int a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_set_color(context, r, g, b, a); +} + +static int +evas_engine_software_qtopia_context_color_get(void *data, void *context, int *r, int *g, int *b, int *a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + *r = (int)(R_VAL(((RGBA_Draw_Context *)context)->col.col)); + *g = (int)(G_VAL(((RGBA_Draw_Context *)context)->col.col)); + *b = (int)(B_VAL(((RGBA_Draw_Context *)context)->col.col)); + *a = (int)(A_VAL(((RGBA_Draw_Context *)context)->col.col)); + return 1; +} + +static void +evas_engine_software_qtopia_context_multiplier_set(void *data, void *context, int r, int g, int b, int a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_set_multiplier(context, r, g, b, a); +} + +static void +evas_engine_software_qtopia_context_multiplier_unset(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_unset_multiplier(context); +} + +static int +evas_engine_software_qtopia_context_multiplier_get(void *data, void *context, int *r, int *g, int *b, int *a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + *r = (int)(R_VAL(((RGBA_Draw_Context *)context)->mul.col)); + *g = (int)(G_VAL(((RGBA_Draw_Context *)context)->mul.col)); + *b = (int)(B_VAL(((RGBA_Draw_Context *)context)->mul.col)); + *a = (int)(A_VAL(((RGBA_Draw_Context *)context)->mul.col)); + return ((RGBA_Draw_Context *)context)->mul.use; +} + +static void +evas_engine_software_qtopia_context_cutout_add(void *data, void *context, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_add_cutout(context, x, y, w, h); +} + +static void +evas_engine_software_qtopia_context_cutout_clear(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_clear_cutouts(context); +} + + + + + + +static void +evas_engine_software_qtopia_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + rectangle_draw(surface, context, x, y, w, h); + cpu_end_opt(); +} + +static void +evas_engine_software_qtopia_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + line_draw(surface, context, x1, y1, x2, y2); + cpu_end_opt(); +} + +static void * +evas_engine_software_qtopia_polygon_point_add(void *data, void *context, void *polygon, int x, int y) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return polygon_point_add(polygon, x, y); + context = NULL; +} + +static void * +evas_engine_software_qtopia_polygon_points_clear(void *data, void *context, void *polygon) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return polygon_points_clear(polygon); + context = NULL; +} + +static void +evas_engine_software_qtopia_polygon_draw(void *data, void *context, void *surface, void *polygon) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + polygon_draw(surface, context, polygon); + cpu_end_opt(); +} + +static void * +evas_engine_software_qtopia_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + if (!gradient) + gradient = gradient_new(); + gradient_color_add(gradient, r, g, b, a, distance); + return gradient; + context = NULL; +} + +static void * +evas_engine_software_qtopia_gradient_colors_clear(void *data, void *context, void *gradient) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + if (gradient) gradient_free(gradient); + return NULL; + context = NULL; +} + +static void +evas_engine_software_qtopia_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + gradient_draw(surface, context, x, y, w, h, gradient, angle); + cpu_end_opt(); +} + +static void * +evas_engine_software_qtopia_image_load(void *data, char *file, char *key, int *error) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + *error = 0; + return load_image_from_file(file, key); +} + +static void * +evas_engine_software_qtopia_image_new_from_data(void *data, int w, int h, DATA32 *image_data) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image_new(); + im->image = image_surface_new(); + if (!im->image) + { + image_free(im); + return NULL; + } + im->image->w = w; + im->image->h = h; + im->image->data = image_data; + im->image->no_free = 1; + return im; +} + +static void * +evas_engine_software_qtopia_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image_create(w, h); + if (!im) return NULL; + if (image_data) + memcpy(im->image->data, image_data, w * h * sizeof(DATA32)); + return im; +} + +static void +evas_engine_software_qtopia_image_free(void *data, void *image) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + image_unref(image); +} + +static void +evas_engine_software_qtopia_image_size_get(void *data, void *image, int *w, int *h) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (w) *w = im->image->w; + if (h) *h = im->image->h; +} + +static void * +evas_engine_software_qtopia_image_size_set(void *data, void *image, int w, int h) +{ + Render_Engine *re; + RGBA_Image *im, *im_old; + + re = (Render_Engine *)data; + im_old = image; + im = image_create(w, h); + if (!im) return im_old; + if (im_old) + { + load_image_data_from_file(im_old); + if (im_old->image->data) + { + blit_rectangle(im_old, im, 0, 0, w, h, 0, 0); + cpu_end_opt(); + } + image_unref(im_old); + } + return im; +} + +static void * +evas_engine_software_qtopia_image_dirty_region(void *data, void *image, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + image_dirty(image); + return image; + x = 0; + y = 0; + w = 0; + h = 0; +} + +static void * +evas_engine_software_qtopia_image_data_get(void *data, void *image, int to_write, DATA32 **image_data) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + load_image_data_from_file(im); + if (to_write) + { + if (im->references > 1) + { + RGBA_Image *im_new; + + im_new = image_create(im->image->w, im->image->h); + if (!im_new) return im; + blit_rectangle(im, im_new, 0, 0, im->image->w, im->image->h, 0, 0); + cpu_end_opt(); + image_unref(im); + im = im_new; + } + else + image_dirty(im); + } + *image_data = im->image->data; + return im; +} + +static void * +evas_engine_software_qtopia_image_data_put(void *data, void *image, DATA32 *image_data) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (image_data != im->image->data) + { + int w, h; + + w = im->image->w; + h = im->image->h; + image_unref(im); + return evas_engine_software_qtopia_image_new_from_data(data, w, h, image_data); + } + image_dirty(im); + return im; +} + +static void * +evas_engine_software_qtopia_image_alpha_set(void *data, void *image, int has_alpha) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (im->references > 1) + { + RGBA_Image *im_new; + + im_new = image_create(im->image->w, im->image->h); + if (!im_new) return im; + load_image_data_from_file(im); + blit_rectangle(im, im_new, 0, 0, im->image->w, im->image->h, 0, 0); + cpu_end_opt(); + image_unref(im); + im = im_new; + } + else + image_dirty(im); + if (has_alpha) + im->flags |= RGBA_IMAGE_HAS_ALPHA; + else + im->flags &= ~RGBA_IMAGE_HAS_ALPHA; + return im; +} + + +static int +evas_engine_software_qtopia_image_alpha_get(void *data, void *image) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (im->flags & RGBA_IMAGE_HAS_ALPHA) return 1; + return 0; +} + +static void +evas_engine_software_qtopia_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + load_image_data_from_file(image); + if (smooth) + scale_rgba_in_to_out_clip_smooth(image, surface, context, + src_x, src_y, src_w, src_h, + dst_x, dst_y, dst_w, dst_h); + else + scale_rgba_in_to_out_clip_sample(image, surface, context, + src_x, src_y, src_w, src_h, + dst_x, dst_y, dst_w, dst_h); + cpu_end_opt(); +} + +static char * +evas_engine_software_qtopia_image_comment_get(void *data, void *image, char *key) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + return im->info.comment; + key = 0; +} + +static char * +evas_engine_software_qtopia_image_format_get(void *data, void *image) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (im->info.format == 1) return "png"; + return NULL; +} + +static void +evas_engine_software_qtopia_image_cache_flush(void *data) +{ + Render_Engine *re; + int tmp_size; + + re = (Render_Engine *)data; + tmp_size = image_get_cache(); + image_set_cache(0); + image_set_cache(tmp_size); +} + +static void +evas_engine_software_qtopia_image_cache_set(void *data, int bytes) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + image_set_cache(bytes); +} + +static int +evas_engine_software_qtopia_image_cache_get(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return image_get_cache(); +} + +static void * +evas_engine_software_qtopia_font_load(void *data, char *name, int size) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_load(name, size); +} + +static void +evas_engine_software_qtopia_font_free(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + font_free(font); +} + +static int +evas_engine_software_qtopia_font_ascent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_ascent_get(font); +} + +static int +evas_engine_software_qtopia_font_descent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_descent_get(font); +} + +static int +evas_engine_software_qtopia_font_max_ascent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_max_ascent_get(font); +} + +static int +evas_engine_software_qtopia_font_max_descent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_max_descent_get(font); +} + +static void +evas_engine_software_qtopia_font_string_size_get(void *data, void *font, char *text, int *w, int *h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + font_query_size(font, text, w, h); +} + +static int +evas_engine_software_qtopia_font_inset_get(void *data, void *font, char *text) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_query_inset(font, text); +} + +static int +evas_engine_software_qtopia_font_h_advance_get(void *data, void *font, char *text) +{ + Render_Engine *re; + int h, v; + + re = (Render_Engine *)data; + font_query_advance(font, text, &h, &v); + return h; +} + +static int +evas_engine_software_qtopia_font_v_advance_get(void *data, void *font, char *text) +{ + Render_Engine *re; + int h, v; + + re = (Render_Engine *)data; + font_query_advance(font, text, &h, &v); + return v; +} + +static int +evas_engine_software_qtopia_font_char_coords_get(void *data, void *font, char *text, int pos, int *cx, int *cy, int *cw, int *ch) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_query_char_coords(font, text, pos, cx, cy, cw, ch); +} + +static int +evas_engine_software_qtopia_font_char_at_coords_get(void *data, void *font, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_query_text_at_pos(font, text, x, y, cx, cy, cw, ch); +} + +static void +evas_engine_software_qtopia_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, char *text) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + if ((w == ow) && (h == oh)) + font_draw(surface, context, font, x, y, text); + else + { + /* create output surface size ow x oh and scale to w x h */ + RGBA_Draw_Context *dc, *dc_in; + + dc_in = context; + dc = draw_context_new(); + if (dc) + { + RGBA_Image *im; + + dc->col.col = dc_in->col.col; + im = image_create(ow, oh); + if (im) + { + int max_ascent; + int i, j; + + im->flags |= RGBA_IMAGE_HAS_ALPHA; + j = ow * oh; + for (i = 0; i < j; i++) im->image->data[i] = (dc->col.col & 0xffffff); + + max_ascent = font_max_ascent_get(font); + + font_draw(im, dc, font, 0, max_ascent, text); + cpu_end_opt(); + scale_rgba_in_to_out_clip_smooth(im, surface, context, + 0, 0, ow, oh, + x, y - ((max_ascent * h) / oh), + w, h); + image_free(im); + } + draw_context_free(dc); + } + } + cpu_end_opt(); +} + +static void +evas_engine_software_qtopia_font_cache_flush(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + font_flush(); +} + +static void +evas_engine_software_qtopia_font_cache_set(void *data, int bytes) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + font_cache_set(bytes); +} + +static int +evas_engine_software_qtopia_font_cache_get(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_cache_get(); +} diff --git a/legacy/evas/src/lib/engines/software_qtopia/evas_engine.h b/legacy/evas/src/lib/engines/software_qtopia/evas_engine.h new file mode 100644 index 0000000000..b29dd9292f --- /dev/null +++ b/legacy/evas/src/lib/engines/software_qtopia/evas_engine.h @@ -0,0 +1,103 @@ +#ifndef EVAS_ENGINE_H +#define EVAS_ENGINE_H + +typedef struct _Outbuf Outbuf; +typedef struct _QT_Direct QT_Direct; +typedef struct _QT_Direct_Rect QT_Direct_Rect; + +enum _Outbuf_Depth +{ + OUTBUF_DEPTH_NONE, + OUTBUF_DEPTH_INHERIT, + OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED, + OUTBUF_DEPTH_RGB_16BPP_555_555_DITHERED, + OUTBUF_DEPTH_RGB_16BPP_444_444_DITHERED, + OUTBUF_DEPTH_RGB_16BPP_565_444_DITHERED, + OUTBUF_DEPTH_RGB_32BPP_888_8888, + OUTBUF_DEPTH_LAST +}; + +typedef enum _Outbuf_Depth Outbuf_Depth; + + +struct _Outbuf +{ + Outbuf_Depth depth; + int w, h; + int rot; + + struct { + void *target; + + struct { + DATA32 r, g, b; + } mask; + RGBA_Image *back_buf; + } priv; +}; + +struct _QT_Direct_Rect +{ + int x, y, w, h; +}; + +struct _QT_Direct +{ + /* our target widget */ + void *target; + /* our direct painter object */ + void *direct; + /* The fb */ + struct + { + DATA8 *data; + int bpp; + int rotation; + int width; + struct { + DATA32 r, g, b; + } mask; + } fb; + /* Relative to fb coords */ + struct { + int count; + QT_Direct_Rect *r; + } rects; + /* Relative to fb coords */ + QT_Direct_Rect location; + QT_Direct_Rect updated; +}; + +#ifdef __cplusplus +extern "C" { +#endif + +/****/ +void x_software_qtopia_init (void); + +void outbuf_software_qtopia_init (void); +void outbuf_software_qtopia_free (Outbuf *buf); + +Outbuf *outbuf_software_qtopia_setup_q (int w, int h, int rot, Outbuf_Depth depth, void *target); + +void outbuf_software_qtopia_blit (Outbuf *buf, int src_x, int src_y, int w, int h, int dst_x, int dst_y); +void outbuf_software_qtopia_update (Outbuf *buf, int x, int y, int w, int h); +RGBA_Image *outbuf_software_qtopia_new_region_for_update (Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch); +void outbuf_software_qtopia_free_region_for_update (Outbuf *buf, RGBA_Image *update); +void outbuf_software_qtopia_push_updated_region (Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h); +void outbuf_software_qtopia_reconfigure (Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth); +int outbuf_software_qtopia_get_width (Outbuf *buf); +int outbuf_software_qtopia_get_height (Outbuf *buf); +Outbuf_Depth outbuf_software_qtopia_get_depth (Outbuf *buf); +int outbuf_software_qtopia_get_rot (Outbuf *buf); +int outbuf_software_qtopia_get_have_backbuf (Outbuf *buf); +void outbuf_software_qtopia_set_have_backbuf (Outbuf *buf, int have_backbuf); + +QT_Direct *evas_qt_main_direct_start (void *target); +void evas_qt_main_direct_stop (QT_Direct *d); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/legacy/evas/src/lib/engines/software_qtopia/evas_outbuf.c b/legacy/evas/src/lib/engines/software_qtopia/evas_outbuf.c new file mode 100644 index 0000000000..d1401428c0 --- /dev/null +++ b/legacy/evas/src/lib/engines/software_qtopia/evas_outbuf.c @@ -0,0 +1,238 @@ +#include "evas_common.h" +#include "evas_engine.h" +#include "evas_private.h" +#include "Evas.h" +#include "Evas_Engine_Software_Qtopia.h" +#include +#include + +void +outbuf_software_qtopia_init(void) +{ +} + +void +outbuf_software_qtopia_free(Outbuf *buf) +{ + free(buf); +} + +Outbuf * +outbuf_software_qtopia_setup_q(int w, int h, int rot, Outbuf_Depth depth, QWidget *target) +{ + Outbuf *buf; + + buf = calloc(1, sizeof(Outbuf)); + if (!buf) + { + free(buf); + return NULL; + } + + buf->w = w; + buf->h = h; + buf->rot = rot; + buf->priv.target = target; + { + QT_Direct *direct; + + direct = evas_qt_main_direct_start(buf->priv.target); + if (direct) + { + buf->w = direct->location.w; + buf->h = direct->location.h; + buf->rot = direct->fb.rotation; + evas_qt_main_direct_stop(direct); + } + } + return buf; +} + +void +outbuf_software_qtopia_blit(Outbuf *buf, int src_x, int src_y, int w, int h, int dst_x, int dst_y) +{ +} + +void +outbuf_software_qtopia_update(Outbuf *buf, int x, int y, int w, int h) +{ +} + +RGBA_Image * +outbuf_software_qtopia_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch) +{ + RGBA_Image *im; + + *cx = 0; *cy = 0; *cw = w; *ch = h; + im = image_create(w, h); + return im; +} + +void +outbuf_software_qtopia_free_region_for_update(Outbuf *buf, RGBA_Image *update) +{ + image_free(update); +} + +void +outbuf_software_qtopia_push_updated_region(Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h) +{ + Gfx_Func_Convert conv_func; + DATA8 *data; + QT_Direct *d; + + data = NULL; + conv_func = NULL; + + d = evas_qt_main_direct_start(buf->priv.target); + if (d) + { + int i; + + for (i = 0; i < d->rects.count; i++) + { + int fb_bytes; + DATA8 *fb_mem; + int ox, oy, ow, oh; + int rx, ry, rw, rh; + + ox = x; oy = y; ow = w; oh = h; + rx = d->rects.r[i].x - d->location.x; + ry = d->rects.r[i].y - d->location.y; + rw = d->rects.r[i].w; + rh = d->rects.r[i].h; + if (x < rx) + { + w += (x - rx); + x = rx; + } + if (y < ry) + { + h += (y - ry); + y = ry; + } + if ((w <= 0) || (h <= 0)) goto nope; + if ((x + w) > (rx + rw)) w = (rx + rw - x); + if ((y + h) > (ry + rh)) h = (ry + rh - y); + if ((w <= 0) || (h <= 0)) goto nope; + fb_bytes = d->fb.bpp / 8; + if (buf->rot == 0) + { + fb_mem = d->fb.data + + ((d->location.y * d->fb.width * fb_bytes) + + (d->location.x * fb_bytes)); + data = fb_mem + (fb_bytes * (x + (y * d->fb.width))); + conv_func = convert_func_get(data, w, h, d->fb.bpp, + d->fb.mask.r, d->fb.mask.g, d->fb.mask.b, + PAL_MODE_NONE, buf->rot); + } + else if (buf->rot == 270) + { + fb_mem = d->fb.data + + (fb_bytes * + ((d->location.x * d->fb.width) + + (d->fb.width - d->location.y - d->location.h))); + data = fb_mem + (fb_bytes * (buf->h - y - h + (x * d->fb.width))); + conv_func = convert_func_get(data, h, w, d->fb.bpp, + d->fb.mask.r, d->fb.mask.g, d->fb.mask.b, + PAL_MODE_NONE, buf->rot); + } + else if (buf->rot == 90) + { + // FIXME: wrong fb_mem + fb_mem = d->fb.data + + ((d->location.y * d->fb.width * fb_bytes) + + (d->location.x * fb_bytes)); + data = fb_mem + (fb_bytes * (y + ((buf->w - x - w) * d->fb.width))); + conv_func = convert_func_get(data, h, w, d->fb.bpp, + d->fb.mask.r, d->fb.mask.g, d->fb.mask.b, + PAL_MODE_NONE, buf->rot); + } + if (conv_func) + { + DATA32 *src_data; + + if (buf->rot == 0) + { + src_data = update->image->data + + (ow * (y - oy)) + (x - ox); + conv_func(src_data, data, + ow - w, + d->fb.width - w, + w, h, + x, y, NULL); + } + else if (buf->rot == 270) + { + src_data = update->image->data + + (ow * (y - oy)) + (x - ox); + conv_func(src_data, data, + ow - w, + d->fb.width - h, + h, w, + x, y, NULL); + } + else if (buf->rot == 90) + { + src_data = update->image->data + + (ow * (y - oy)) + (x - ox); + conv_func(src_data, data, + ow - w, + d->fb.width - h, + h, w, + x, y, NULL); + } + } + nope:; + x = ox; y = oy; w = ow; h = oh; + } + d->updated.x = x; d->updated.y = y; d->updated.w = w; d->updated.h = h; + evas_qt_main_direct_stop(d); + } +} + +void +outbuf_software_qtopia_reconfigure(Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth) +{ + if ((w == buf->w) && (h == buf->h) && + (rot == buf->rot) && (depth == buf->depth)) + return; + buf->w = w; + buf->h = h; + buf->rot = rot; +} + +int +outbuf_software_qtopia_get_width(Outbuf *buf) +{ + return buf->w; +} + +int +outbuf_software_qtopia_get_height(Outbuf *buf) +{ + return buf->h; +} + +Outbuf_Depth +outbuf_software_qtopia_get_depth(Outbuf *buf) +{ + return buf->depth; +} + +int +outbuf_software_qtopia_get_rot(Outbuf *buf) +{ + return buf->rot; +} + +int +outbuf_software_qtopia_get_have_backbuf(Outbuf *buf) +{ + return 0; +} + +void +outbuf_software_qtopia_set_have_backbuf(Outbuf *buf, int have_backbuf) +{ +} diff --git a/legacy/evas/src/lib/engines/software_qtopia/evas_qt_main.cpp b/legacy/evas/src/lib/engines/software_qtopia/evas_qt_main.cpp new file mode 100644 index 0000000000..ece4080738 --- /dev/null +++ b/legacy/evas/src/lib/engines/software_qtopia/evas_qt_main.cpp @@ -0,0 +1,109 @@ +#include "evas_common.h" +#include "evas_engine.h" +#include +#include +#include +#include +#include + +//#define QVFB_BUG + +extern "C" { + QT_Direct * + evas_qt_main_direct_start(void *target) + { + QT_Direct *d; + QDirectPainter *dp; + QWidget *widget; + int i; + + widget = (QWidget *)target; + dp = new QDirectPainter(widget); + if (!dp) return NULL; + d = (QT_Direct *)calloc(1, sizeof(QT_Direct)); + if (!d) return NULL; + d->target = target; + d->direct = (void *)dp; + d->fb.data = dp->frameBuffer(); + d->fb.bpp = dp->depth(); + d->fb.width = dp->lineStep() / (d->fb.bpp / 8); + if (dp->depth() == 16) + { + d->fb.mask.r = 0xf800; + d->fb.mask.g = 0x07e0; + d->fb.mask.b = 0x001f; + } + else if (dp->depth() == 32) + { + d->fb.mask.r = 0x00ff0000; + d->fb.mask.g = 0x0000ff00; + d->fb.mask.b = 0x000000ff; + } + else + { + delete dp; + free(d); + return NULL; + } + d->fb.rotation = dp->transformOrientation() * 90; + d->rects.count = dp->numRects(); + if (d->rects.count > 0) + { + d->rects.r = (QT_Direct_Rect *)calloc(d->rects.count, sizeof(QT_Direct_Rect)); + if (d->rects.r) + { + for (i = 0; i < d->rects.count; i++) + { + QRect r; + + r = dp->rect(i); + if (d->fb.rotation == 0) + { + d->rects.r[i].x = r.x(); + d->rects.r[i].y = r.y(); + d->rects.r[i].w = r.width(); + d->rects.r[i].h = r.height(); + } + else if (d->fb.rotation == 270) + { + d->rects.r[i].x = r.y(); + d->rects.r[i].y = d->fb.width - r.x() - r.width(); + d->rects.r[i].w = r.height(); + d->rects.r[i].h = r.width(); + } + else if (d->fb.rotation == 90) + { + // FIXME: do + } + } + } + else + d->rects.count = 0; + } + d->location.x = dp->xOffset(); + d->location.y = dp->yOffset(); + d->location.w = dp->width(); + d->location.h = dp->height(); + return d; + } + void + evas_qt_main_direct_stop(QT_Direct *d) + { + QDirectPainter *dp; + +#ifdef QVFB_BUG + { + QWidget *target = (QWidget *)d->target; + QRect rect(d->updated.x, d->updated.y, + d->updated.w, d->updated.h); + QPainter p(target); + + p.fillRect(rect, QBrush::NoBrush); + } +#endif + dp = (QDirectPainter *)d->direct; + delete dp; + if (d->rects.r) free(d->rects.r); + free(d); + } +} diff --git a/legacy/evas/src/lib/engines/software_win32_gdi/Makefile.am b/legacy/evas/src/lib/engines/software_win32_gdi/Makefile.am new file mode 100644 index 0000000000..9553fbe33c --- /dev/null +++ b/legacy/evas/src/lib/engines/software_win32_gdi/Makefile.am @@ -0,0 +1,6 @@ +EXTRA_DIST = \ +evas_engine.h \ +evas_engine.c \ +evas_outbuf.c \ +evas_win32_buffer.c \ +evas_win32_main.c diff --git a/legacy/evas/src/lib/engines/software_win32_gdi/evas_engine.c b/legacy/evas/src/lib/engines/software_win32_gdi/evas_engine.c new file mode 100644 index 0000000000..e69de29bb2 diff --git a/legacy/evas/src/lib/engines/software_win32_gdi/evas_engine.h b/legacy/evas/src/lib/engines/software_win32_gdi/evas_engine.h new file mode 100644 index 0000000000..e69de29bb2 diff --git a/legacy/evas/src/lib/engines/software_win32_gdi/evas_outbuf.c b/legacy/evas/src/lib/engines/software_win32_gdi/evas_outbuf.c new file mode 100644 index 0000000000..e69de29bb2 diff --git a/legacy/evas/src/lib/engines/software_win32_gdi/evas_win32_buffer.c b/legacy/evas/src/lib/engines/software_win32_gdi/evas_win32_buffer.c new file mode 100644 index 0000000000..e69de29bb2 diff --git a/legacy/evas/src/lib/engines/software_win32_gdi/evas_win32_main.c b/legacy/evas/src/lib/engines/software_win32_gdi/evas_win32_main.c new file mode 100644 index 0000000000..e69de29bb2 diff --git a/legacy/evas/src/lib/engines/software_x11/Makefile.am b/legacy/evas/src/lib/engines/software_x11/Makefile.am new file mode 100644 index 0000000000..7da750e2e0 --- /dev/null +++ b/legacy/evas/src/lib/engines/software_x11/Makefile.am @@ -0,0 +1,42 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = 1.4 foreign + +# A list of all the files in the current directory which can be regenerated +MAINTAINERCLEANFILES = Makefile.in + +LDFLAGS = -L/usr/local/lib +INCLUDES = \ + -I. \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/lib/include \ + -I$(includedir) \ + -I/usr/local/include \ + @freetype_cflags@ @x_cflags@ + +if BUILD_ENGINE_SOFTWARE_X11 + +noinst_LTLIBRARIES = libevas_engine_software_x11.la +libevas_engine_software_x11_la_SOURCES = \ +evas_engine.h \ +evas_engine.c \ +evas_outbuf.c \ +evas_x_buffer.c \ +evas_x_color.c \ +evas_x_main.c + +libevas_engine_software_x11_la_LIBADD = \ +@x_libs@ $(LDFLAGS) + +libevas_engine_software_x11_la_DEPENDENCIES = \ +$(top_builddir)/config.h + +endif + +EXTRA_DIST = \ +evas_engine.h \ +evas_engine.c \ +evas_outbuf.c \ +evas_x_buffer.c \ +evas_x_color.c \ +evas_x_main.c diff --git a/legacy/evas/src/lib/engines/software_x11/evas_engine.c b/legacy/evas/src/lib/engines/software_x11/evas_engine.c new file mode 100644 index 0000000000..0e6b5e8f78 --- /dev/null +++ b/legacy/evas/src/lib/engines/software_x11/evas_engine.c @@ -0,0 +1,1158 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "evas_engine.h" +#include "evas_engine_api_software_x11.h" +#include "Evas.h" +#include "Evas_Engine_Software_X11.h" + +static void *evas_engine_software_x11_info(Evas *e); +static void evas_engine_software_x11_info_free(Evas *e, void *info); +static void evas_engine_software_x11_setup(Evas *e, void *info); +static void *evas_engine_software_x11_output_setup(int w, int h, int rot, Display *disp, Drawable draw, Visual *vis, Colormap cmap, int depth, int debug, int grayscale, int max_colors, Pixmap mask, int shape_dither); +static void evas_engine_software_x11_output_free(void *data); +static void evas_engine_software_x11_output_resize(void *data, int w, int h); +static void evas_engine_software_x11_output_tile_size_set(void *data, int w, int h); +static void evas_engine_software_x11_output_redraws_rect_add(void *data, int x, int y, int w, int h); +static void evas_engine_software_x11_output_redraws_rect_del(void *data, int x, int y, int w, int h); +static void evas_engine_software_x11_output_redraws_clear(void *data); +static void *evas_engine_software_x11_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch); +static void evas_engine_software_x11_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h); +static void evas_engine_software_x11_output_flush(void *data); +static void *evas_engine_software_x11_context_new(void *data); +static void evas_engine_software_x11_context_free(void *data, void *context); +static void evas_engine_software_x11_context_clip_set(void *data, void *context, int x, int y, int w, int h); +static void evas_engine_software_x11_context_clip_clip(void *data, void *context, int x, int y, int w, int h); +static void evas_engine_software_x11_context_clip_unset(void *data, void *context); +static int evas_engine_software_x11_context_clip_get(void *data, void *context, int *x, int *y, int *w, int *h); +static void evas_engine_software_x11_context_color_set(void *data, void *context, int r, int g, int b, int a); +static int evas_engine_software_x11_context_color_get(void *data, void *context, int *r, int *g, int *b, int *a); +static void evas_engine_software_x11_context_multiplier_set(void *data, void *context, int r, int g, int b, int a); +static void evas_engine_software_x11_context_multiplier_unset(void *data, void *context); +static int evas_engine_software_x11_context_multiplier_get(void *data, void *context, int *r, int *g, int *b, int *a); +static void evas_engine_software_x11_context_cutout_add(void *data, void *context, int x, int y, int w, int h); +static void evas_engine_software_x11_context_cutout_clear(void *data, void *context); +static void evas_engine_software_x11_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h); +static void evas_engine_software_x11_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2); +static void *evas_engine_software_x11_polygon_point_add(void *data, void *context, void *polygon, int x, int y); +static void *evas_engine_software_x11_polygon_points_clear(void *data, void *context, void *polygon); +static void evas_engine_software_x11_polygon_draw(void *data, void *context, void *surface, void *polygon); +static void *evas_engine_software_x11_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance); +static void *evas_engine_software_x11_gradient_colors_clear(void *data, void *context, void *gradient); +static void evas_engine_software_x11_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle); +static void *evas_engine_software_x11_image_load(void *data, char *file, char *key, int *error); +static void *evas_engine_software_x11_image_new_from_data(void *data, int w, int h, DATA32 *image_data); +static void *evas_engine_software_x11_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data); +static void evas_engine_software_x11_image_free(void *data, void *image); +static void evas_engine_software_x11_image_size_get(void *data, void *image, int *w, int *h); +static void *evas_engine_software_x11_image_size_set(void *data, void *image, int w, int h); +static void *evas_engine_software_x11_image_dirty_region(void *data, void *image, int x, int y, int w, int h); +static void *evas_engine_software_x11_image_data_get(void *data, void *image, int to_write, DATA32 **image_data); +static void *evas_engine_software_x11_image_data_put(void *data, void *image, DATA32 *image_data); +static void *evas_engine_software_x11_image_alpha_set(void *data, void *image, int has_alpha); +static int evas_engine_software_x11_image_alpha_get(void *data, void *image); +static void evas_engine_software_x11_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth); +static char *evas_engine_software_x11_image_comment_get(void *data, void *image, char *key); +static char *evas_engine_software_x11_image_format_get(void *data, void *image); +static void evas_engine_software_x11_image_cache_flush(void *data); +static void evas_engine_software_x11_image_cache_set(void *data, int bytes); +static int evas_engine_software_x11_image_cache_get(void *data); +static void *evas_engine_software_x11_font_load(void *data, char *name, int size); +static void evas_engine_software_x11_font_free(void *data, void *font); +static int evas_engine_software_x11_font_ascent_get(void *data, void *font); +static int evas_engine_software_x11_font_descent_get(void *data, void *font); +static int evas_engine_software_x11_font_max_ascent_get(void *data, void *font); +static int evas_engine_software_x11_font_max_descent_get(void *data, void *font); +static void evas_engine_software_x11_font_string_size_get(void *data, void *font, char *text, int *w, int *h); +static int evas_engine_software_x11_font_inset_get(void *data, void *font, char *text); +static int evas_engine_software_x11_font_h_advance_get(void *data, void *font, char *text); +static int evas_engine_software_x11_font_v_advance_get(void *data, void *font, char *text); +static int evas_engine_software_x11_font_char_coords_get(void *data, void *font, char *text, int pos, int *cx, int *cy, int *cw, int *ch); +static int evas_engine_software_x11_font_char_at_coords_get(void *data, void *font, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch); +static void evas_engine_software_x11_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, char *text); +static void evas_engine_software_x11_font_cache_flush(void *data); +static void evas_engine_software_x11_font_cache_set(void *data, int bytes); +static int evas_engine_software_x11_font_cache_get(void *data); + + +static Visual *evas_engine_software_x11_best_visual_get(Display *disp, int screen); +static Colormap evas_engine_software_x11_best_colormap_get(Display *disp, int screen); +static int evas_engine_software_x11_best_depth_get(Display *disp, int screen); +static Evas_Performance *evas_engine_software_x11_output_perf_new(Evas *e, Display *disp, Visual *vis, Colormap cmap, Drawable draw, int depth); +static Evas_Performance *evas_engine_software_x11_output_perf_test(Evas *e, Display *disp, Visual *vis, Colormap cmap, Drawable draw, int depth); +static char *evas_engine_software_x11_output_perf_data(Evas_Performance *perf); +static char *evas_engine_software_x11_output_perf_key(Evas_Performance *perf); +static void evas_engine_software_x11_output_perf_free(Evas_Performance *perf); +static void evas_engine_software_x11_output_perf_build(Evas_Performance *perf, const char *data); +static void evas_engine_software_x11_output_perf_device_store(Evas_Performance *perf); + +typedef struct _Render_Engine Render_Engine; + +struct _Render_Engine +{ + Tilebuf *tb; + Outbuf *ob; + Tilebuf_Rect *rects; + Evas_Object_List *cur_rect; + int end : 1; +}; + +Evas_Func evas_engine_software_x11_func = +{ + evas_engine_software_x11_info, + evas_engine_software_x11_info_free, + evas_engine_software_x11_setup, + evas_engine_software_x11_output_free, + evas_engine_software_x11_output_resize, + evas_engine_software_x11_output_tile_size_set, + evas_engine_software_x11_output_redraws_rect_add, + evas_engine_software_x11_output_redraws_rect_del, + evas_engine_software_x11_output_redraws_clear, + evas_engine_software_x11_output_redraws_next_update_get, + evas_engine_software_x11_output_redraws_next_update_push, + evas_engine_software_x11_output_flush, + /* draw context virtual methods */ + evas_engine_software_x11_context_new, + evas_engine_software_x11_context_free, + evas_engine_software_x11_context_clip_set, + evas_engine_software_x11_context_clip_clip, + evas_engine_software_x11_context_clip_unset, + evas_engine_software_x11_context_clip_get, + evas_engine_software_x11_context_color_set, + evas_engine_software_x11_context_color_get, + evas_engine_software_x11_context_multiplier_set, + evas_engine_software_x11_context_multiplier_unset, + evas_engine_software_x11_context_multiplier_get, + evas_engine_software_x11_context_cutout_add, + evas_engine_software_x11_context_cutout_clear, + /* rectangle draw funcs */ + evas_engine_software_x11_rectangle_draw, + /* line draw funcs */ + evas_engine_software_x11_line_draw, + /* polygon draw funcs */ + evas_engine_software_x11_polygon_point_add, + evas_engine_software_x11_polygon_points_clear, + evas_engine_software_x11_polygon_draw, + /* gradient draw funcs */ + evas_engine_software_x11_gradient_color_add, + evas_engine_software_x11_gradient_colors_clear, + evas_engine_software_x11_gradient_draw, + /* image draw funcs */ + evas_engine_software_x11_image_load, + evas_engine_software_x11_image_new_from_data, + evas_engine_software_x11_image_new_from_copied_data, + evas_engine_software_x11_image_free, + evas_engine_software_x11_image_size_get, + evas_engine_software_x11_image_size_set, + evas_engine_software_x11_image_dirty_region, + evas_engine_software_x11_image_data_get, + evas_engine_software_x11_image_data_put, + evas_engine_software_x11_image_alpha_set, + evas_engine_software_x11_image_alpha_get, + evas_engine_software_x11_image_draw, + evas_engine_software_x11_image_comment_get, + evas_engine_software_x11_image_format_get, + /* image cache funcs */ + evas_engine_software_x11_image_cache_flush, + evas_engine_software_x11_image_cache_set, + evas_engine_software_x11_image_cache_get, + /* font draw functions */ + evas_engine_software_x11_font_load, + evas_engine_software_x11_font_free, + evas_engine_software_x11_font_ascent_get, + evas_engine_software_x11_font_descent_get, + evas_engine_software_x11_font_max_ascent_get, + evas_engine_software_x11_font_max_descent_get, + evas_engine_software_x11_font_string_size_get, + evas_engine_software_x11_font_inset_get, + evas_engine_software_x11_font_h_advance_get, + evas_engine_software_x11_font_v_advance_get, + evas_engine_software_x11_font_char_coords_get, + evas_engine_software_x11_font_char_at_coords_get, + evas_engine_software_x11_font_draw, + /* font cache functions */ + evas_engine_software_x11_font_cache_flush, + evas_engine_software_x11_font_cache_set, + evas_engine_software_x11_font_cache_get +}; + +static void * +evas_engine_software_x11_info(Evas *e) +{ + Evas_Engine_Info_Software_X11 *info; + + info = calloc(1, sizeof(Evas_Engine_Info_Software_X11)); + if (!info) return NULL; + info->magic.magic = rand(); + info->info.debug = 0; + info->info.alloc_grayscale = 0; + info->info.alloc_colors_max = 216; + info->func.best_visual_get = evas_engine_software_x11_best_visual_get; + info->func.best_colormap_get = evas_engine_software_x11_best_colormap_get; + info->func.best_depth_get = evas_engine_software_x11_best_depth_get; + info->func.performance_test = evas_engine_software_x11_output_perf_test; + info->func.performance_free = evas_engine_software_x11_output_perf_free; + info->func.performance_data_get = evas_engine_software_x11_output_perf_data; + info->func.performance_key_get = evas_engine_software_x11_output_perf_key; + info->func.performance_new = evas_engine_software_x11_output_perf_new; + info->func.performance_build = evas_engine_software_x11_output_perf_build; + info->func.performance_device_store = evas_engine_software_x11_output_perf_device_store; + return info; + e = NULL; +} + +static void +evas_engine_software_x11_info_free(Evas *e, void *info) +{ + Evas_Engine_Info_Software_X11 *in; + + in = (Evas_Engine_Info_Software_X11 *)info; + free(in); +} + +static void +evas_engine_software_x11_setup(Evas *e, void *in) +{ + Render_Engine *re; + Evas_Engine_Info_Software_X11 *info; + + info = (Evas_Engine_Info_Software_X11 *)in; + if (!e->engine.data.output) + e->engine.data.output = + evas_engine_software_x11_output_setup(e->output.w, + e->output.h, + info->info.rotation, + info->info.display, + info->info.drawable, + info->info.visual, + info->info.colormap, + info->info.depth, + info->info.debug, + info->info.alloc_grayscale, + info->info.alloc_colors_max, + info->info.mask, + info->info.shape_dither); + if (!e->engine.data.output) return; + if (!e->engine.data.context) + e->engine.data.context = + e->engine.func->context_new(e->engine.data.output); + + re = e->engine.data.output; + outbuf_software_x11_drawable_set(re->ob, info->info.drawable); + outbuf_software_x11_mask_set(re->ob, info->info.mask); +} + +static void * +evas_engine_software_x11_output_setup(int w, int h, int rot, Display *disp, Drawable draw, Visual *vis, Colormap cmap, int depth, int debug, int grayscale, int max_colors, Pixmap mask, int shape_dither) +{ + Render_Engine *re; + Outbuf_Perf *perf; + + re = calloc(1, sizeof(Render_Engine)); + /* if we haven't initialized - init (automatic abort if already done) */ + cpu_init(); + + blend_init(); + image_init(); + convert_init(); + scale_init(); + rectangle_init(); + gradient_init(); + polygon_init(); + line_init(); + font_init(); + draw_init(); + tilebuf_init(); + + x_software_x11_init(); + x_software_x11_color_init(); + outbuf_software_x11_init(); + + /* get any stored performance metrics from device (xserver) */ + perf = outbuf_software_x11_perf_restore_x(disp, draw, vis, cmap, depth); + re->ob = outbuf_software_x11_setup_x(w, h, rot, OUTBUF_DEPTH_INHERIT, disp, draw, vis, cmap, depth, perf, grayscale, max_colors, mask, shape_dither); + if (!re->ob) + { + outbuf_software_x11_perf_free(perf); + free(re); + return NULL; + } + outbuf_software_x11_debug_set(re->ob, debug); + outbuf_software_x11_set_have_backbuf(re->ob, 0); + re->tb = tilebuf_new(w, h); + if (!re->tb) + { + outbuf_software_x11_free(re->ob); + free(re); + return NULL; + } + /* in preliminary tests 16x16 gave highest framerates */ + tilebuf_set_tile_size(re->tb, 16, 16); + return re; +} + +static void +evas_engine_software_x11_output_free(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + outbuf_software_x11_free(re->ob); + tilebuf_free(re->tb); + if (re->rects) tilebuf_free_render_rects(re->rects); + free(re); +} + +static void +evas_engine_software_x11_output_resize(void *data, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + outbuf_software_x11_reconfigure(re->ob, w, h, + outbuf_software_x11_get_rot(re->ob), + OUTBUF_DEPTH_INHERIT); + outbuf_software_x11_set_have_backbuf(re->ob, 0); + tilebuf_free(re->tb); + re->tb = tilebuf_new(w, h); + if (re->tb) + tilebuf_set_tile_size(re->tb, 16, 16); +} + +static void +evas_engine_software_x11_output_tile_size_set(void *data, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + tilebuf_set_tile_size(re->tb, w, h); +} + +static void +evas_engine_software_x11_output_redraws_rect_add(void *data, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + tilebuf_add_redraw(re->tb, x, y, w, h); +} + +static void +evas_engine_software_x11_output_redraws_rect_del(void *data, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + tilebuf_del_redraw(re->tb, x, y, w, h); +} + +static void +evas_engine_software_x11_output_redraws_clear(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + tilebuf_clear(re->tb); +} + +static void * +evas_engine_software_x11_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch) +{ + Render_Engine *re; + RGBA_Image *surface; + Tilebuf_Rect *rect; + int ux, uy, uw, uh; + + re = (Render_Engine *)data; + if (re->end) + { + re->end = 0; + return NULL; + } + if (!re->rects) + { + re->rects = tilebuf_get_render_rects(re->tb); + re->cur_rect = (Evas_Object_List *)re->rects; + } + if (!re->cur_rect) return NULL; + rect = (Tilebuf_Rect *)re->cur_rect; + ux = rect->x; uy = rect->y; uw = rect->w; uh = rect->h; + re->cur_rect = re->cur_rect->next; + if (!re->cur_rect) + { + tilebuf_free_render_rects(re->rects); + re->rects = NULL; + re->end = 1; + } + + surface = outbuf_software_x11_new_region_for_update(re->ob, + ux, uy, uw, uh, + cx, cy, cw, ch); + *x = ux; *y = uy; *w = uw; *h = uh; + return surface; +} + +static void +evas_engine_software_x11_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h) +{ + Render_Engine *re; + Evas_Engine_Info_Software_X11 *info; + + re = (Render_Engine *)data; + outbuf_software_x11_push_updated_region(re->ob, surface, x, y, w, h); + outbuf_software_x11_free_region_for_update(re->ob, surface); + cpu_end_opt(); +} + +static void +evas_engine_software_x11_output_flush(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + XSync(re->ob->priv.x.disp, False); +} + +static void * +evas_engine_software_x11_context_new(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return draw_context_new(); +} + +static void +evas_engine_software_x11_context_free(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_free(context); +} + +static void +evas_engine_software_x11_context_clip_set(void *data, void *context, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_set_clip(context, x, y, w, h); +} + +static void +evas_engine_software_x11_context_clip_clip(void *data, void *context, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_clip_clip(context, x, y, w, h); +} + +static void +evas_engine_software_x11_context_clip_unset(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_unset_clip(context); +} + +static int +evas_engine_software_x11_context_clip_get(void *data, void *context, int *x, int *y, int *w, int *h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + *x = ((RGBA_Draw_Context *)context)->clip.x; + *y = ((RGBA_Draw_Context *)context)->clip.y; + *w = ((RGBA_Draw_Context *)context)->clip.w; + *h = ((RGBA_Draw_Context *)context)->clip.h; + return ((RGBA_Draw_Context *)context)->clip.use; +} + +static void +evas_engine_software_x11_context_color_set(void *data, void *context, int r, int g, int b, int a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_set_color(context, r, g, b, a); +} + +static int +evas_engine_software_x11_context_color_get(void *data, void *context, int *r, int *g, int *b, int *a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + *r = (int)(R_VAL(((RGBA_Draw_Context *)context)->col.col)); + *g = (int)(G_VAL(((RGBA_Draw_Context *)context)->col.col)); + *b = (int)(B_VAL(((RGBA_Draw_Context *)context)->col.col)); + *a = (int)(A_VAL(((RGBA_Draw_Context *)context)->col.col)); + return 1; +} + +static void +evas_engine_software_x11_context_multiplier_set(void *data, void *context, int r, int g, int b, int a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_set_multiplier(context, r, g, b, a); +} + +static void +evas_engine_software_x11_context_multiplier_unset(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_unset_multiplier(context); +} + +static int +evas_engine_software_x11_context_multiplier_get(void *data, void *context, int *r, int *g, int *b, int *a) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + *r = (int)(R_VAL(((RGBA_Draw_Context *)context)->mul.col)); + *g = (int)(G_VAL(((RGBA_Draw_Context *)context)->mul.col)); + *b = (int)(B_VAL(((RGBA_Draw_Context *)context)->mul.col)); + *a = (int)(A_VAL(((RGBA_Draw_Context *)context)->mul.col)); + return ((RGBA_Draw_Context *)context)->mul.use; +} + +static void +evas_engine_software_x11_context_cutout_add(void *data, void *context, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_add_cutout(context, x, y, w, h); +} + +static void +evas_engine_software_x11_context_cutout_clear(void *data, void *context) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + draw_context_clear_cutouts(context); +} + + + + + + +static void +evas_engine_software_x11_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + rectangle_draw(surface, context, x, y, w, h); + cpu_end_opt(); +} + +static void +evas_engine_software_x11_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + line_draw(surface, context, x1, y1, x2, y2); + cpu_end_opt(); +} + +static void * +evas_engine_software_x11_polygon_point_add(void *data, void *context, void *polygon, int x, int y) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return polygon_point_add(polygon, x, y); + context = NULL; +} + +static void * +evas_engine_software_x11_polygon_points_clear(void *data, void *context, void *polygon) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return polygon_points_clear(polygon); + context = NULL; +} + +static void +evas_engine_software_x11_polygon_draw(void *data, void *context, void *surface, void *polygon) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + polygon_draw(surface, context, polygon); + cpu_end_opt(); +} + +static void * +evas_engine_software_x11_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + if (!gradient) + gradient = gradient_new(); + gradient_color_add(gradient, r, g, b, a, distance); + return gradient; + context = NULL; +} + +static void * +evas_engine_software_x11_gradient_colors_clear(void *data, void *context, void *gradient) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + if (gradient) gradient_free(gradient); + return NULL; + context = NULL; +} + +static void +evas_engine_software_x11_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + gradient_draw(surface, context, x, y, w, h, gradient, angle); + cpu_end_opt(); +} + +static void * +evas_engine_software_x11_image_load(void *data, char *file, char *key, int *error) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + *error = 0; + return load_image_from_file(file, key); +} + +static void * +evas_engine_software_x11_image_new_from_data(void *data, int w, int h, DATA32 *image_data) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image_new(); + im->image = image_surface_new(); + if (!im->image) + { + image_free(im); + return NULL; + } + im->image->w = w; + im->image->h = h; + im->image->data = image_data; + im->image->no_free = 1; + return im; +} + +static void * +evas_engine_software_x11_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image_create(w, h); + if (!im) return NULL; + if (image_data) + memcpy(im->image->data, image_data, w * h * sizeof(DATA32)); + return im; +} + +static void +evas_engine_software_x11_image_free(void *data, void *image) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + image_unref(image); +} + +static void +evas_engine_software_x11_image_size_get(void *data, void *image, int *w, int *h) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (w) *w = im->image->w; + if (h) *h = im->image->h; +} + +static void * +evas_engine_software_x11_image_size_set(void *data, void *image, int w, int h) +{ + Render_Engine *re; + RGBA_Image *im, *im_old; + + re = (Render_Engine *)data; + im_old = image; + im = image_create(w, h); + if (!im) return im_old; + if (im_old) + { + load_image_data_from_file(im_old); + if (im_old->image->data) + { + blit_rectangle(im_old, im, 0, 0, w, h, 0, 0); + cpu_end_opt(); + } + image_unref(im_old); + } + return im; +} + +static void * +evas_engine_software_x11_image_dirty_region(void *data, void *image, int x, int y, int w, int h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + image_dirty(image); + return image; + x = 0; + y = 0; + w = 0; + h = 0; +} + +static void * +evas_engine_software_x11_image_data_get(void *data, void *image, int to_write, DATA32 **image_data) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + load_image_data_from_file(im); + if (to_write) + { + if (im->references > 1) + { + RGBA_Image *im_new; + + im_new = image_create(im->image->w, im->image->h); + if (!im_new) return im; + blit_rectangle(im, im_new, 0, 0, im->image->w, im->image->h, 0, 0); + cpu_end_opt(); + image_unref(im); + im = im_new; + } + else + image_dirty(im); + } + *image_data = im->image->data; + return im; +} + +static void * +evas_engine_software_x11_image_data_put(void *data, void *image, DATA32 *image_data) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (image_data != im->image->data) + { + int w, h; + + w = im->image->w; + h = im->image->h; + image_unref(im); + return evas_engine_software_x11_image_new_from_data(data, w, h, image_data); + } + image_dirty(im); + return im; +} + +static void * +evas_engine_software_x11_image_alpha_set(void *data, void *image, int has_alpha) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (im->references > 1) + { + RGBA_Image *im_new; + + im_new = image_create(im->image->w, im->image->h); + if (!im_new) return im; + load_image_data_from_file(im); + blit_rectangle(im, im_new, 0, 0, im->image->w, im->image->h, 0, 0); + cpu_end_opt(); + image_unref(im); + im = im_new; + } + else + image_dirty(im); + if (has_alpha) + im->flags |= RGBA_IMAGE_HAS_ALPHA; + else + im->flags &= ~RGBA_IMAGE_HAS_ALPHA; + return im; +} + + +static int +evas_engine_software_x11_image_alpha_get(void *data, void *image) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (im->flags & RGBA_IMAGE_HAS_ALPHA) return 1; + return 0; +} + +static void +evas_engine_software_x11_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + load_image_data_from_file(image); + if (smooth) + scale_rgba_in_to_out_clip_smooth(image, surface, context, + src_x, src_y, src_w, src_h, + dst_x, dst_y, dst_w, dst_h); + else + scale_rgba_in_to_out_clip_sample(image, surface, context, + src_x, src_y, src_w, src_h, + dst_x, dst_y, dst_w, dst_h); + cpu_end_opt(); +} + +static char * +evas_engine_software_x11_image_comment_get(void *data, void *image, char *key) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + return im->info.comment; + key = 0; +} + +static char * +evas_engine_software_x11_image_format_get(void *data, void *image) +{ + Render_Engine *re; + RGBA_Image *im; + + re = (Render_Engine *)data; + im = image; + if (im->info.format == 1) return "png"; + return NULL; +} + +static void +evas_engine_software_x11_image_cache_flush(void *data) +{ + Render_Engine *re; + int tmp_size; + + re = (Render_Engine *)data; + tmp_size = image_get_cache(); + image_set_cache(0); + image_set_cache(tmp_size); +} + +static void +evas_engine_software_x11_image_cache_set(void *data, int bytes) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + image_set_cache(bytes); +} + +static int +evas_engine_software_x11_image_cache_get(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return image_get_cache(); +} + +static void * +evas_engine_software_x11_font_load(void *data, char *name, int size) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_load(name, size); +} + +static void +evas_engine_software_x11_font_free(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + font_free(font); +} + +static int +evas_engine_software_x11_font_ascent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_ascent_get(font); +} + +static int +evas_engine_software_x11_font_descent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_descent_get(font); +} + +static int +evas_engine_software_x11_font_max_ascent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_max_ascent_get(font); +} + +static int +evas_engine_software_x11_font_max_descent_get(void *data, void *font) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_max_descent_get(font); +} + +static void +evas_engine_software_x11_font_string_size_get(void *data, void *font, char *text, int *w, int *h) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + font_query_size(font, text, w, h); +} + +static int +evas_engine_software_x11_font_inset_get(void *data, void *font, char *text) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_query_inset(font, text); +} + +static int +evas_engine_software_x11_font_h_advance_get(void *data, void *font, char *text) +{ + Render_Engine *re; + int h, v; + + re = (Render_Engine *)data; + font_query_advance(font, text, &h, &v); + return h; +} + +static int +evas_engine_software_x11_font_v_advance_get(void *data, void *font, char *text) +{ + Render_Engine *re; + int h, v; + + re = (Render_Engine *)data; + font_query_advance(font, text, &h, &v); + return v; +} + +static int +evas_engine_software_x11_font_char_coords_get(void *data, void *font, char *text, int pos, int *cx, int *cy, int *cw, int *ch) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_query_char_coords(font, text, pos, cx, cy, cw, ch); +} + +static int +evas_engine_software_x11_font_char_at_coords_get(void *data, void *font, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_query_text_at_pos(font, text, x, y, cx, cy, cw, ch); +} + +static void +evas_engine_software_x11_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, char *text) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + if ((w == ow) && (h == oh)) + font_draw(surface, context, font, x, y, text); + else + { + /* create output surface size ow x oh and scale to w x h */ + RGBA_Draw_Context *dc, *dc_in; + + dc_in = context; + dc = draw_context_new(); + if (dc) + { + RGBA_Image *im; + + dc->col.col = dc_in->col.col; + im = image_create(ow, oh); + if (im) + { + int max_ascent; + int i, j; + + im->flags |= RGBA_IMAGE_HAS_ALPHA; + j = ow * oh; + for (i = 0; i < j; i++) im->image->data[i] = (dc->col.col & 0xffffff); + + max_ascent = font_max_ascent_get(font); + + font_draw(im, dc, font, 0, max_ascent, text); + cpu_end_opt(); + scale_rgba_in_to_out_clip_smooth(im, surface, context, + 0, 0, ow, oh, + x, y - ((max_ascent * h) / oh), + w, h); + image_free(im); + } + draw_context_free(dc); + } + } + cpu_end_opt(); +} + +static void +evas_engine_software_x11_font_cache_flush(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + font_flush(); +} + +static void +evas_engine_software_x11_font_cache_set(void *data, int bytes) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + font_cache_set(bytes); +} + +static int +evas_engine_software_x11_font_cache_get(void *data) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return font_cache_get(); +} + + + + + + + + + +/* private engine functions the calling prog can use */ + +static Visual * +evas_engine_software_x11_best_visual_get(Display *disp, int screen) +{ + if (!disp) return NULL; + return DefaultVisual(disp, screen); +} + +static Colormap +evas_engine_software_x11_best_colormap_get(Display *disp, int screen) +{ + if (!disp) return 0; + return DefaultColormap(disp, screen); +} + +static int +evas_engine_software_x11_best_depth_get(Display *disp, int screen) +{ + if (!disp) return 0; + return DefaultDepth(disp, screen); +} + +static Evas_Performance * +evas_engine_software_x11_output_perf_new(Evas *e, Display *disp, Visual *vis, Colormap cmap, Drawable draw, int depth) +{ + return outbuf_software_x11_perf_new_x(disp, draw, vis, cmap, depth); + e = NULL; +} + +static Evas_Performance * +evas_engine_software_x11_output_perf_test(Evas *e, Display *disp, Visual *vis, Colormap cmap, Drawable draw, int depth) +{ + return outbuf_software_x11_perf_x(disp, draw, vis, cmap, depth); + e = NULL; +} + +static char * +evas_engine_software_x11_output_perf_data(Evas_Performance *perf) +{ + return outbuf_software_x11_perf_serialize_x(perf); +} + +static char * +evas_engine_software_x11_output_perf_key(Evas_Performance *perf) +{ + return outbuf_software_x11_perf_serialize_info_x(perf); +} + +static void +evas_engine_software_x11_output_perf_free(Evas_Performance *perf) +{ + outbuf_software_x11_perf_free(perf); +} + +static void +evas_engine_software_x11_output_perf_build(Evas_Performance *perf, const char *data) +{ + outbuf_software_x11_perf_deserialize_x(perf, data); +} + +static void +evas_engine_software_x11_output_perf_device_store(Evas_Performance *perf) +{ + outbuf_software_x11_perf_store_x(perf); +} diff --git a/legacy/evas/src/lib/engines/software_x11/evas_engine.h b/legacy/evas/src/lib/engines/software_x11/evas_engine.h new file mode 100644 index 0000000000..88cc1b87cc --- /dev/null +++ b/legacy/evas/src/lib/engines/software_x11/evas_engine.h @@ -0,0 +1,134 @@ +#ifndef EVAS_ENGINE_H +#define EVAS_ENGINE_H + +#include +#include +#include + +typedef struct _Outbuf Outbuf; +typedef struct _Outbuf_Perf Outbuf_Perf; +typedef struct _X_Output_Buffer X_Output_Buffer; + +typedef enum _Outbuf_Depth Outbuf_Depth; + +enum _Outbuf_Depth +{ + OUTBUF_DEPTH_NONE, + OUTBUF_DEPTH_INHERIT, + OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED, + OUTBUF_DEPTH_RGB_16BPP_555_555_DITHERED, + OUTBUF_DEPTH_RGB_16BPP_444_444_DITHERED, + OUTBUF_DEPTH_RGB_16BPP_565_444_DITHERED, + OUTBUF_DEPTH_RGB_32BPP_888_8888, + OUTBUF_DEPTH_LAST +}; + +struct _Outbuf +{ + Outbuf_Depth depth; + int w, h; + int rot; + Outbuf_Perf *perf; + + struct { + Convert_Pal *pal; + struct { + Display *disp; + Window win; + Pixmap mask; + Visual *vis; + Colormap cmap; + int depth; + int shm; + GC gc; + GC gcm; + int swap : 1; + } x; + struct { + DATA32 r, g, b; + } mask; + RGBA_Image *back_buf; + + int mask_dither : 1; + + int debug : 1; + } priv; +}; + +struct _Outbuf_Perf +{ + struct { + Display *disp; + Window root; + + char *display; + char *vendor; + int version; + int revision; + int release; + int w, h; + int screen_count; + int depth; + int screen_num; + } x; + struct{ + char *name; + char *version; + char *machine; + } os; + struct { + char *info; + } cpu; + + int min_shm_image_pixel_count; +}; + +/****/ +void x_software_x11_init (void); + +void x_software_x11_write_mask_line (X_Output_Buffer *xob, DATA32 *src, int w, int y); +int x_software_x11_can_do_shm (Display *d); +X_Output_Buffer *x_software_x11_output_buffer_new (Display *d, Visual *v, int depth, int w, int h, int try_shm, void *data); +void x_software_x11_output_buffer_free (X_Output_Buffer *xob); +void x_software_x11_output_buffer_paste (X_Output_Buffer *xob, Drawable d, GC gc, int x, int y); +DATA8 *x_software_x11_output_buffer_data (X_Output_Buffer *xob, int *bytes_per_line_ret); +int x_software_x11_output_buffer_depth (X_Output_Buffer *xob); +int x_software_x11_output_buffer_byte_order(X_Output_Buffer *xob); + +void x_software_x11_color_init (void); +Convert_Pal *x_software_x11_color_allocate (Display *disp, Colormap cmap, Visual *vis, Convert_Pal_Mode colors); +void x_software_x11_color_deallocate (Display *disp, Colormap cmap, Visual *vis, Convert_Pal *pal); + +void outbuf_software_x11_init (void); +void outbuf_software_x11_free (Outbuf *buf); + +Outbuf *outbuf_software_x11_setup_x (int w, int h, int rot, Outbuf_Depth depth, Display *disp, Drawable draw, Visual *vis, Colormap cmap, int x_depth, Outbuf_Perf *perf, int grayscale, int max_colors, Pixmap mask, int shape_dither); + +char *outbuf_software_x11_perf_serialize_x (Outbuf_Perf *perf); +void outbuf_software_x11_perf_deserialize_x (Outbuf_Perf *perf, const char *data); +Outbuf_Perf *outbuf_software_x11_perf_new_x (Display *disp, Window draw, Visual *vis, Colormap cmap, int x_depth); +char *outbuf_software_x11_perf_serialize_info_x (Outbuf_Perf *perf); +void outbuf_software_x11_perf_store_x (Outbuf_Perf *perf); +Outbuf_Perf *outbuf_software_x11_perf_restore_x (Display *disp, Window draw, Visual *vis, Colormap cmap, int x_depth); +void outbuf_software_x11_perf_free (Outbuf_Perf *perf); +Outbuf_Perf *outbuf_software_x11_perf_x (Display *disp, Window draw, Visual *vis, Colormap cmap, int x_depth); + +void outbuf_software_x11_blit (Outbuf *buf, int src_x, int src_y, int w, int h, int dst_x, int dst_y); +void outbuf_software_x11_update (Outbuf *buf, int x, int y, int w, int h); +RGBA_Image *outbuf_software_x11_new_region_for_update (Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch); +void outbuf_software_x11_free_region_for_update (Outbuf *buf, RGBA_Image *update); +void outbuf_software_x11_push_updated_region (Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h); +void outbuf_software_x11_reconfigure (Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth); +int outbuf_software_x11_get_width (Outbuf *buf); +int outbuf_software_x11_get_height (Outbuf *buf); +Outbuf_Depth outbuf_software_x11_get_depth (Outbuf *buf); +int outbuf_software_x11_get_rot (Outbuf *buf); +int outbuf_software_x11_get_have_backbuf (Outbuf *buf); +void outbuf_software_x11_set_have_backbuf (Outbuf *buf, int have_backbuf); +void outbuf_software_x11_drawable_set (Outbuf *buf, Drawable draw); +void outbuf_software_x11_mask_set (Outbuf *buf, Pixmap mask); + +void outbuf_software_x11_debug_set (Outbuf *buf, int debug); +void outbuf_software_x11_debug_show (Outbuf *buf, Drawable draw, int x, int y, int w, int h); + +#endif diff --git a/legacy/evas/src/lib/engines/software_x11/evas_outbuf.c b/legacy/evas/src/lib/engines/software_x11/evas_outbuf.c new file mode 100644 index 0000000000..ed910e7ec5 --- /dev/null +++ b/legacy/evas/src/lib/engines/software_x11/evas_outbuf.c @@ -0,0 +1,1297 @@ +#include "evas_common.h" +#include "evas_engine.h" +#include +#include + +static double outbuf_software_x11_get_time(void); + +/* used for performance tester code */ +static double +outbuf_software_x11_get_time(void) +{ + struct timeval timev; + + gettimeofday(&timev, NULL); + return (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); +} + +void +outbuf_software_x11_init(void) +{ +} + +void +outbuf_software_x11_free(Outbuf * buf) +{ + XFreeGC(buf->priv.x.disp, buf->priv.x.gc); + if (buf->priv.x.gcm) + XFreeGC(buf->priv.x.disp, buf->priv.x.gcm); + if (buf->priv.pal) + x_software_x11_color_deallocate(buf->priv.x.disp, buf->priv.x.cmap, + buf->priv.x.vis, buf->priv.pal); + if (buf->priv.back_buf) + image_free(buf->priv.back_buf); + outbuf_software_x11_perf_free(buf->perf); + free(buf); +} + +Outbuf * +outbuf_software_x11_setup_x(int w, int h, int rot, Outbuf_Depth depth, + Display * disp, Drawable draw, Visual * vis, + Colormap cmap, int x_depth, Outbuf_Perf * perf, + int grayscale, int max_colors, Pixmap mask, + int shape_dither) +{ + Outbuf *buf; + + buf = calloc(1, sizeof(Outbuf)); + if (!buf) + { + free(buf); + return NULL; + } + + buf->w = w; + buf->h = h; + buf->depth = depth; + buf->rot = rot; + + buf->priv.x.disp = disp; + buf->priv.x.vis = vis; + buf->priv.x.cmap = cmap; + buf->priv.x.depth = x_depth; + + buf->priv.mask_dither = shape_dither; + + { + Gfx_Func_Convert conv_func; + X_Output_Buffer *xob; + + buf->priv.x.shm = x_software_x11_can_do_shm(buf->priv.x.disp); + xob = x_software_x11_output_buffer_new(buf->priv.x.disp, + buf->priv.x.vis, + buf->priv.x.depth, + 1, 1, buf->priv.x.shm, NULL); + + conv_func = NULL; + if (xob) + { +#ifdef WORDS_BIGENDIAN + if (x_software_x11_output_buffer_byte_order(xob) == LSBFirst) + buf->priv.x.swap = 1; +#else + if (x_software_x11_output_buffer_byte_order(xob) == MSBFirst) + buf->priv.x.swap = 1; +#endif + if ((vis->class == TrueColor) || (vis->class == DirectColor)) + { + buf->priv.mask.r = (DATA32) vis->red_mask; + buf->priv.mask.g = (DATA32) vis->green_mask; + buf->priv.mask.b = (DATA32) vis->blue_mask; + if (buf->priv.x.swap) + { + SWAP32(buf->priv.mask.r); + SWAP32(buf->priv.mask.g); + SWAP32(buf->priv.mask.b); + } + } + else if ((vis->class == PseudoColor) || + (vis->class == StaticColor) || + (vis->class == GrayScale) || (vis->class == StaticGray)) + { + Convert_Pal_Mode pm = PAL_MODE_RGB332; + + if ((vis->class == GrayScale) || (vis->class == StaticGray)) + grayscale = 1; + if (grayscale) + { + if (max_colors >= 256) + pm = PAL_MODE_GRAY256; + else if (max_colors >= 64) + pm = PAL_MODE_GRAY64; + else if (max_colors >= 16) + pm = PAL_MODE_GRAY16; + else if (max_colors >= 4) + pm = PAL_MODE_GRAY4; + else + pm = PAL_MODE_MONO; + } + else + { + if (max_colors >= 256) + pm = PAL_MODE_RGB332; + else if (max_colors >= 216) + pm = PAL_MODE_RGB666; + else if (max_colors >= 128) + pm = PAL_MODE_RGB232; + else if (max_colors >= 64) + pm = PAL_MODE_RGB222; + else if (max_colors >= 32) + pm = PAL_MODE_RGB221; + else if (max_colors >= 16) + pm = PAL_MODE_RGB121; + else if (max_colors >= 8) + pm = PAL_MODE_RGB111; + else if (max_colors >= 4) + pm = PAL_MODE_GRAY4; + else + pm = PAL_MODE_MONO; + } + buf->priv.pal = x_software_x11_color_allocate(disp, cmap, vis, + PAL_MODE_RGB666); + if (!buf->priv.pal) + { + free(buf); + return NULL; + } + } + if (buf->priv.pal) + { + if (buf->rot == 0) + conv_func = convert_func_get(0, buf->w, buf->h, + x_software_x11_output_buffer_depth + (xob), buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, + buf->priv.pal->colors, + buf->rot); + else if (buf->rot == 270) + conv_func = convert_func_get(0, buf->h, buf->w, + x_software_x11_output_buffer_depth + (xob), buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, + buf->priv.pal->colors, + buf->rot); + else if (buf->rot == 90) + conv_func = convert_func_get(0, buf->h, buf->w, + x_software_x11_output_buffer_depth + (xob), buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, + buf->priv.pal->colors, + buf->rot); + } + else + { + if (buf->rot == 0) + conv_func = convert_func_get(0, buf->w, buf->h, + x_software_x11_output_buffer_depth + (xob), buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, PAL_MODE_NONE, + buf->rot); + else if (buf->rot == 270) + conv_func = convert_func_get(0, buf->h, buf->w, + x_software_x11_output_buffer_depth + (xob), buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, PAL_MODE_NONE, + buf->rot); + else if (buf->rot == 90) + conv_func = convert_func_get(0, buf->h, buf->w, + x_software_x11_output_buffer_depth + (xob), buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, PAL_MODE_NONE, + buf->rot); + } + x_software_x11_output_buffer_free(xob); + if (!conv_func) + { + printf(".[ Evas Error ].\n" + " {\n" + " At depth %i:\n", + " RGB format mask: %08x, %08x, %08x\n" + " Palette mode: %i\n" + " Not supported by and compiled in converters!\n", + " }\n", + buf->priv.x.depth, + buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, buf->priv.pal->colors); + } + } + buf->priv.x.shm = x_software_x11_can_do_shm(buf->priv.x.disp); + outbuf_software_x11_drawable_set(buf, draw); + outbuf_software_x11_mask_set(buf, mask); + } + +#if 0 + if (buf->priv.x.depth < 24) + buf->priv.back_buf = image_create(buf->w, buf->h); +#endif + + buf->perf = perf; + + return buf; +} + +char * +outbuf_software_x11_perf_serialize_x(Outbuf_Perf * perf) +{ + /* take performance results and turn it inot a munged string that can be */ + /* written out somewhere by a program */ + char buf[256]; + + snprintf(buf, sizeof(buf), "%i", perf->min_shm_image_pixel_count); + return strdup(buf); +} + +void +outbuf_software_x11_perf_deserialize_x(Outbuf_Perf * perf, const char *data) +{ + /* take a munged string that is the result of outbuf_perf_serialize_x() */ + /* and turn it back into a structure and fill the provided perf struct */ + /* with it. the perf struct is assumed to be pristine from */ + /* outbuf_perf_new_x() */ + int val; + + val = 200 * 200; + if (sscanf(data, "%i", &val) != 1) + val = 200 * 200; + if (val < 0) + val = 200 * 200; + perf->min_shm_image_pixel_count = val; + return; +} + +Outbuf_Perf * +outbuf_software_x11_perf_new_x(Display * disp, Window draw, Visual * vis, + Colormap cmap, int x_depth) +{ + /* create an "empty" perf struct with just the system & display info */ + Outbuf_Perf *perf; + Window root; + struct utsname un; + FILE *f; + + perf = calloc(1, sizeof(Outbuf_Perf)); + + perf->x.disp = disp; + + root = DefaultRootWindow(disp); + if (draw) + { + int wx, wy; + unsigned int ww, wh, bd, dp; + Window wdum; + XWindowAttributes wattr; + + XGetGeometry(disp, draw, &root, &wx, &wy, &ww, &wh, &bd, &dp); + XGetGeometry(disp, root, &wdum, &wx, &wy, &ww, &wh, &bd, &dp); + XGetWindowAttributes(disp, root, &wattr); + perf->x.w = (int)ww; + perf->x.h = (int)wh; + perf->x.screen_num = XScreenNumberOfScreen(wattr.screen); + } + perf->x.root = root; + + perf->x.display = strdup(DisplayString(disp)); + perf->x.vendor = strdup(ServerVendor(disp)); + perf->x.version = ProtocolVersion(disp); + perf->x.revision = ProtocolRevision(disp); + perf->x.release = VendorRelease(disp); + perf->x.screen_count = ScreenCount(disp); + perf->x.depth = x_depth; + + perf->min_shm_image_pixel_count = 200 * 200; /* default hard-coded */ + + if (!uname(&un)) + { + perf->os.name = strdup(un.sysname); + perf->os.version = strdup(un.release); + perf->os.machine = strdup(un.machine); + } + /* for linux */ + f = fopen("/proc/cpuinfo", "r"); + if (f) + { + char buf[16384]; + size_t sz; + + /* read up tothe first 16k of it... shoudl be nice and fast and easy */ + sz = fread(buf, 1, 16380, f); + if (sz > 0) + { + perf->cpu.info = malloc(sz + 1); + strncpy(perf->cpu.info, buf, sz); + perf->cpu.info[sz] = 0; + } + fclose(f); + } + else + { + /* for FreeBSD... maybe */ + f = fopen("/var/run/dmesg.boot", "r"); + /* for NetBSD... maybe */ + if (!f) + f = fopen("/kern/msgbuf", "r"); + if (f) + { + char buf[4096]; + int l; + + l = 0; + while (fgets(buf, sizeof(buf), f)) + { + int len; + + /* to read lines like: */ + /* CPU: AMD-K7(tm) Processor (698.65-MHz 686-class CPU) */ + /* Features=0x81f9ff */ + if ((!strncmp(buf, "CPU: ", 5)) || + (!strncmp(buf, "Features=", 9))) + { + len = strlen(buf); + l += len; + if (!perf->cpu.info) + perf->cpu.info = strdup(buf); + else + { + perf->cpu.info = realloc(perf->cpu.info, l + 1); + if (perf->cpu.info) + strcat(perf->cpu.info, buf); + } + } + } + fclose(f); + } + } + if (!perf->cpu.info) + perf->cpu.info = strdup(""); + return perf; + vis = NULL; + cmap = 0; +} + +char * +outbuf_software_x11_perf_serialize_info_x(Outbuf_Perf * perf) +{ + /* get a seriazed string that is a unique identifier for your */ + /* hardware/x/connection setup. */ + char buf[32768]; + int sum1, sum2, i; + char *p; + + sum1 = 0; + sum2 = 0; + snprintf(buf, sizeof(buf), + "%s|%s|%i|%i|%i|%i|%i|%i|%i|%i|%s|%s|%s|%s", + perf->x.display, perf->x.vendor, perf->x.version, perf->x.revision, + perf->x.release, perf->x.w, perf->x.h, perf->x.screen_count, + perf->x.depth, perf->x.screen_num, + perf->os.name, perf->os.version, perf->os.machine, perf->cpu.info); + p = buf; + i = 0; + while (*p) + { + sum1 += (int)(*p) << (i % 24); + sum2 ^= ((int)(*p) << (i % 24)) * ((int)(*p)); + i++; + p++; + } + snprintf(buf, sizeof(buf), "%08x%08x", sum1, sum2); + return strdup(buf); +} + +void +outbuf_software_x11_perf_store_x(Outbuf_Perf * perf) +{ + /* write performance results to x root property */ + Atom type, format; + char *str; + + type = XInternAtom(perf->x.disp, "__EVAS_PERF_ENGINE_SOFTWARE", False); + format = XA_STRING; + str = outbuf_software_x11_perf_serialize_x(perf); + XChangeProperty(perf->x.disp, perf->x.root, type, format, 8, + PropModeReplace, (unsigned char *)str, strlen(str)); + XSync(perf->x.disp, False); + free(str); +} + +Outbuf_Perf * +outbuf_software_x11_perf_restore_x(Display * disp, Window draw, Visual * vis, + Colormap cmap, int x_depth) +{ + /* read performance results from root window */ + Atom type, format; + Outbuf_Perf *perf; + char *retval; + Atom type_ret; + unsigned long bytes_after, num_ret; + int format_ret; + + perf = outbuf_software_x11_perf_new_x(disp, draw, vis, cmap, x_depth); + type = XInternAtom(disp, "__EVAS_PERF_ENGINE_SOFTWARE", False); + format = XA_STRING; + retval = NULL; + XGetWindowProperty(disp, perf->x.root, type, 0, 16384, False, format, + &type_ret, &format_ret, &num_ret, &bytes_after, + (unsigned char **)&retval); + if (retval) + { + char *s; + + if (format_ret != 8) + goto out; + if (type_ret != type) + goto out; + s = malloc(num_ret + 1); + strncpy(s, retval, num_ret); + s[num_ret] = 0; + outbuf_software_x11_perf_deserialize_x(perf, s); + free(s); + out: + XFree(retval); + } + return perf; +} + +void +outbuf_software_x11_perf_free(Outbuf_Perf * perf) +{ + /* free the perf struct */ + free(perf->x.display); + free(perf->x.vendor); + free(perf->os.name); + free(perf->os.version); + free(perf->os.machine); + free(perf->cpu.info); + free(perf); +} + +Outbuf_Perf * +outbuf_software_x11_perf_x(Display * disp, Window draw, Visual * vis, + Colormap cmap, int x_depth) +{ + Outbuf_Perf *perf; + XSetWindowAttributes attr; + Window win; + int w, h; + int do_shm = 0; + + perf = outbuf_software_x11_perf_new_x(disp, draw, vis, cmap, x_depth); + + attr.backing_store = Always; + attr.colormap = cmap; + attr.border_pixel = 0; + attr.background_pixmap = None; + attr.event_mask = 0; + attr.bit_gravity = ForgetGravity; + attr.override_redirect = True; + w = perf->x.w; + h = perf->x.h; + win = XCreateWindow(disp, + perf->x.root, + 0, 0, w, h, 0, + x_depth, + InputOutput, + vis, + CWBackingStore | CWColormap | + CWBackPixmap | CWBorderPixel | + CWBitGravity | CWEventMask | CWOverrideRedirect, &attr); + XSync(disp, False); + XMapRaised(disp, win); + + do_shm = x_software_x11_can_do_shm(disp); + + /* set it to something ridiculous to start */ + perf->min_shm_image_pixel_count = w * w; + + if (do_shm) + { + X_Output_Buffer *xob; + GC gc; + XGCValues gcv; + int i; + int max; + int error; + int chosen; + + chosen = 0; + error = 0; + max = w; + if (w > h) + max = h; + gc = XCreateGC(disp, win, 0, &gcv); + for (i = 16; i < max; i += 16) + { + int l; + double t0, t1, t2; + int loops; + + loops = (h * h * 5) / (i * i); + t0 = outbuf_software_x11_get_time(); + for (l = 0; l < loops; l++) + { + xob = x_software_x11_output_buffer_new(disp, vis, x_depth, + i, i, do_shm, NULL); + if (!xob) + error = 1; + else + { + x_software_x11_output_buffer_paste(xob, win, gc, 0, 0); + x_software_x11_output_buffer_free(xob); + } + } + XSync(disp, False); + t1 = outbuf_software_x11_get_time() - t0; + t0 = outbuf_software_x11_get_time(); + for (l = 0; l < loops; l++) + { + xob = x_software_x11_output_buffer_new(disp, vis, x_depth, + i, i, 0, NULL); + if (!xob) + error = 1; + else + { + x_software_x11_output_buffer_paste(xob, win, gc, 0, 0); + x_software_x11_output_buffer_free(xob); + } + } + XSync(disp, False); + t2 = outbuf_software_x11_get_time() - t0; + if ((!chosen) && (!error)) + { + if ((t1 / t2) < 1.0) + { + perf->min_shm_image_pixel_count = (i - 8) * (i - 8); + chosen = 1; + } + } + } + XFreeGC(disp, gc); + } + XDestroyWindow(disp, win); + return perf; +} + +void +outbuf_software_x11_blit(Outbuf * buf, int src_x, int src_y, int w, int h, + int dst_x, int dst_y) +{ + if (buf->priv.back_buf) + { + blit_rectangle(buf->priv.back_buf, buf->priv.back_buf, + src_x, src_y, w, h, dst_x, dst_y); + outbuf_software_x11_update(buf, dst_x, dst_y, w, h); + } + else + { + if (buf->priv.x.disp) + { + if (buf->rot == 0) + XCopyArea(buf->priv.x.disp, buf->priv.x.win, buf->priv.x.win, + buf->priv.x.gc, src_x, src_y, w, h, dst_x, dst_y); + else if (buf->rot == 270) + XCopyArea(buf->priv.x.disp, buf->priv.x.win, buf->priv.x.win, + buf->priv.x.gc, buf->h - src_y - h, src_x, h, w, + dst_y, dst_x); + else if (buf->rot == 90) + XCopyArea(buf->priv.x.disp, buf->priv.x.win, buf->priv.x.win, + buf->priv.x.gc, src_y, buf->w - src_x - w, h, w, + dst_y, dst_x); + } + } +} + +void +outbuf_software_x11_update(Outbuf * buf, int x, int y, int w, int h) +{ + Gfx_Func_Convert conv_func; + DATA8 *data; + X_Output_Buffer *xob; + int bpl; + int use_shm; + + if (!(buf->priv.back_buf)) + return; + use_shm = buf->priv.x.shm; + if (buf->perf) + { + if ((w * h) < buf->perf->min_shm_image_pixel_count) + use_shm = 0; + } + else + { + if ((w * h) < (200 * 200)) + use_shm = 0; + } + xob = NULL; + if (buf->rot == 0) + xob = x_software_x11_output_buffer_new(buf->priv.x.disp, buf->priv.x.vis, + buf->priv.x.depth, w, h, use_shm, + NULL); + else if (buf->rot == 270) + xob = x_software_x11_output_buffer_new(buf->priv.x.disp, buf->priv.x.vis, + buf->priv.x.depth, h, w, use_shm, + NULL); + else if (buf->rot == 90) + xob = x_software_x11_output_buffer_new(buf->priv.x.disp, buf->priv.x.vis, + buf->priv.x.depth, h, w, use_shm, + NULL); + if (!xob) + return; + data = x_software_x11_output_buffer_data(xob, &bpl); + conv_func = NULL; + if (buf->priv.pal) + { + if (buf->rot == 0) + conv_func = convert_func_get(0, w, h, + x_software_x11_output_buffer_depth(xob), + buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, + buf->priv.pal->colors, buf->rot); + else if (buf->rot == 270) + conv_func = convert_func_get(0, h, w, + x_software_x11_output_buffer_depth(xob), + buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, + buf->priv.pal->colors, buf->rot); + else if (buf->rot == 90) + conv_func = convert_func_get(0, h, w, + x_software_x11_output_buffer_depth(xob), + buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, + buf->priv.pal->colors, buf->rot); + } + else + { + if (buf->rot == 0) + conv_func = convert_func_get(0, w, h, + x_software_x11_output_buffer_depth(xob), + buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, + PAL_MODE_NONE, buf->rot); + else if (buf->rot == 270) + conv_func = convert_func_get(0, h, w, + x_software_x11_output_buffer_depth(xob), + buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, + PAL_MODE_NONE, buf->rot); + else if (buf->rot == 90) + conv_func = convert_func_get(0, h, w, + x_software_x11_output_buffer_depth(xob), + buf->priv.mask.r, + buf->priv.mask.g, + buf->priv.mask.b, + PAL_MODE_NONE, buf->rot); + } + if (conv_func) + { + DATA32 *src_data; + + src_data = buf->priv.back_buf->image->data + (y * buf->w) + x; + if (buf->priv.pal) + { + if (buf->rot == 0) + { + conv_func(src_data, data, + buf->w - w, + bpl / + ((x_software_x11_output_buffer_depth(xob) / 8)) - w, + w, h, x, y, buf->priv.pal->lookup); + if (buf->priv.debug) + outbuf_software_x11_debug_show(buf, buf->priv.x.win, x, y, + w, h); + x_software_x11_output_buffer_paste(xob, buf->priv.x.win, + buf->priv.x.gc, x, y); + } + else if (buf->rot == 270) + { + conv_func(src_data, data, + buf->w - w, + bpl / + ((x_software_x11_output_buffer_depth(xob) / 8)) - h, + h, w, x, y, buf->priv.pal->lookup); + if (buf->priv.debug) + outbuf_software_x11_debug_show(buf, buf->priv.x.win, x, y, + w, h); + x_software_x11_output_buffer_paste(xob, buf->priv.x.win, + buf->priv.x.gc, + buf->h - y - h, x); + } + else if (buf->rot == 90) + { + conv_func(src_data, data, + buf->w - w, + bpl / + ((x_software_x11_output_buffer_depth(xob) / 8)) - h, + h, w, x, y, buf->priv.pal->lookup); + if (buf->priv.debug) + outbuf_software_x11_debug_show(buf, buf->priv.x.win, x, y, + w, h); + x_software_x11_output_buffer_paste(xob, buf->priv.x.win, + buf->priv.x.gc, y, + buf->w - x - w); + } + } + else + { + if (buf->rot == 0) + { + conv_func(src_data, data, + buf->w - w, + bpl / + ((x_software_x11_output_buffer_depth(xob) / 8)) - w, + w, h, x, y, NULL); + if (buf->priv.debug) + outbuf_software_x11_debug_show(buf, buf->priv.x.win, x, y, + w, h); + x_software_x11_output_buffer_paste(xob, buf->priv.x.win, + buf->priv.x.gc, x, y); + } + else if (buf->rot == 270) + { + conv_func(src_data, data, + buf->w - w, + bpl / + ((x_software_x11_output_buffer_depth(xob) / 8)) - h, + h, w, x, y, NULL); + if (buf->priv.debug) + outbuf_software_x11_debug_show(buf, buf->priv.x.win, x, y, + w, h); + x_software_x11_output_buffer_paste(xob, buf->priv.x.win, + buf->priv.x.gc, + buf->h - y - h, x); + } + else if (buf->rot == 90) + { + conv_func(src_data, data, + buf->w - w, + bpl / + ((x_software_x11_output_buffer_depth(xob) / 8)) - h, + h, w, x, y, NULL); + if (buf->priv.debug) + outbuf_software_x11_debug_show(buf, buf->priv.x.win, x, y, + w, h); + x_software_x11_output_buffer_paste(xob, buf->priv.x.win, + buf->priv.x.gc, y, + buf->w - x - w); + } + } + } + else + { + x_software_x11_output_buffer_free(xob); + return; + } + x_software_x11_output_buffer_free(xob); +} + +RGBA_Image * +outbuf_software_x11_new_region_for_update(Outbuf * buf, int x, int y, int w, + int h, int *cx, int *cy, int *cw, + int *ch) +{ + if (buf->priv.back_buf) + { + *cx = x; + *cy = y; + *cw = w; + *ch = h; + return buf->priv.back_buf; + } + else + { + RGBA_Image *im; + + *cx = 0; + *cy = 0; + *cw = w; + *ch = h; + im = image_create(w, h); + if (buf->priv.x.mask) + { + im->flags |= RGBA_IMAGE_HAS_ALPHA; + memset(im->image->data, 0, w * h * sizeof(DATA32)); + } + return im; + } + return NULL; +} + +void +outbuf_software_x11_free_region_for_update(Outbuf * buf, RGBA_Image * update) +{ + if (update != buf->priv.back_buf) + image_free(update); +} + +void +outbuf_software_x11_push_updated_region(Outbuf * buf, RGBA_Image * update, + int x, int y, int w, int h) +{ + if (buf->priv.back_buf) + { + if (update != buf->priv.back_buf) + blit_rectangle(update, buf->priv.back_buf, 0, 0, w, h, x, y); + outbuf_software_x11_update(buf, x, y, w, h); + } + else + { + Gfx_Func_Convert conv_func; + DATA8 *data; + X_Output_Buffer *xob; + int bpl; + int use_shm = 1; + void *orig_data; + int direct_data = 0; + + use_shm = buf->priv.x.shm; + if (buf->perf) + { + if ((w * h) < buf->perf->min_shm_image_pixel_count) + use_shm = 0; + } + else + { + if ((w * h) < (200 * 200)) + use_shm = 0; + } + xob = NULL; + orig_data = update->image->data; + /* Punch thru - if our output format is our */ + /* input format - then avoid convert since we used */ + /* the image data directly */ + if ((buf->rot == 0) && + (buf->priv.mask.r == 0xff0000) && + (buf->priv.mask.g == 0x00ff00) && + (buf->priv.mask.b == 0x0000ff) && + (!use_shm) && (w == update->image->w) && (h == update->image->h)) + direct_data = 1; + if (!direct_data) + orig_data = NULL; + if (buf->rot == 0) + xob = x_software_x11_output_buffer_new(buf->priv.x.disp, + buf->priv.x.vis, + buf->priv.x.depth, w, + h, use_shm, orig_data); + else if (buf->rot == 270) + xob = x_software_x11_output_buffer_new(buf->priv.x.disp, + buf->priv.x.vis, + buf->priv.x.depth, h, + w, use_shm, orig_data); + else if (buf->rot == 90) + xob = x_software_x11_output_buffer_new(buf->priv.x.disp, + buf->priv.x.vis, + buf->priv.x.depth, h, + w, use_shm, orig_data); + if (!xob) + return; + data = x_software_x11_output_buffer_data(xob, &bpl); + conv_func = NULL; + if (buf->priv.pal) + { + if (buf->rot == 0) + conv_func = convert_func_get(0, w, h, + x_software_x11_output_buffer_depth + (xob), buf->priv.mask.r, + buf->priv.mask.g, buf->priv.mask.b, + buf->priv.pal->colors, buf->rot); + else if (buf->rot == 270) + conv_func = convert_func_get(0, h, w, + x_software_x11_output_buffer_depth + (xob), buf->priv.mask.r, + buf->priv.mask.g, buf->priv.mask.b, + buf->priv.pal->colors, buf->rot); + else if (buf->rot == 90) + conv_func = convert_func_get(0, h, w, + x_software_x11_output_buffer_depth + (xob), buf->priv.mask.r, + buf->priv.mask.g, buf->priv.mask.b, + buf->priv.pal->colors, buf->rot); + } + else + { + if (buf->rot == 0) + conv_func = convert_func_get(0, w, h, + x_software_x11_output_buffer_depth + (xob), buf->priv.mask.r, + buf->priv.mask.g, buf->priv.mask.b, + PAL_MODE_NONE, buf->rot); + else if (buf->rot == 270) + conv_func = convert_func_get(0, h, w, + x_software_x11_output_buffer_depth + (xob), buf->priv.mask.r, + buf->priv.mask.g, buf->priv.mask.b, + PAL_MODE_NONE, buf->rot); + else if (buf->rot == 90) + conv_func = convert_func_get(0, h, w, + x_software_x11_output_buffer_depth + (xob), buf->priv.mask.r, + buf->priv.mask.g, buf->priv.mask.b, + PAL_MODE_NONE, buf->rot); + } + if (conv_func) + { + DATA32 *src_data; + X_Output_Buffer *mxob = NULL; + + if (buf->priv.x.mask) + { + if (buf->rot == 0) + mxob = x_software_x11_output_buffer_new(buf->priv.x.disp, + buf->priv.x.vis, + 1, w, h, 0, NULL); + else if (buf->rot == 270) + mxob = x_software_x11_output_buffer_new(buf->priv.x.disp, + buf->priv.x.vis, + 1, h, w, 0, NULL); + else if (buf->rot == 90) + mxob = x_software_x11_output_buffer_new(buf->priv.x.disp, + buf->priv.x.vis, + 1, h, w, 0, NULL); + } + src_data = update->image->data; + if (buf->priv.pal) + { + if (buf->rot == 0) + { + if (!direct_data) + conv_func(src_data, data, + 0, + bpl / + ((x_software_x11_output_buffer_depth(xob) / + 8)) - w, w, h, x, y, + buf->priv.pal->lookup); + if (buf->priv.debug) + outbuf_software_x11_debug_show(buf, buf->priv.x.win, + x, y, w, h); + x_software_x11_output_buffer_paste(xob, buf->priv.x.win, + buf->priv.x.gc, x, y); + if (mxob) + { + int yy; + + for (yy = 0; yy < h; yy++) + x_software_x11_write_mask_line(mxob, + src_data + + (yy * w), w, yy); + x_software_x11_output_buffer_paste(mxob, + buf->priv.x.mask, + buf->priv.x.gcm, + x, y); + } + } + else if (buf->rot == 270) + { + if (!direct_data) + conv_func(src_data, data, + 0, + bpl / + ((x_software_x11_output_buffer_depth(xob) / + 8)) - h, h, w, x, y, + buf->priv.pal->lookup); + if (buf->priv.debug) + outbuf_software_x11_debug_show(buf, buf->priv.x.win, + x, y, w, h); + x_software_x11_output_buffer_paste(xob, buf->priv.x.win, + buf->priv.x.gc, + buf->h - y - h, x); + if (mxob) + { + int yy; + +/* for (yy = 0; yy < h; yy++)*/ +/* x_software_x11_write_mask_line(mxob, src_data + (yy * w), w, yy);*/ + x_software_x11_output_buffer_paste(mxob, + buf->priv.x.mask, + buf->priv.x.gcm, + buf->h - y - h, + x); + } + } + else if (buf->rot == 90) + { + if (!direct_data) + conv_func(src_data, data, + 0, + bpl / + ((x_software_x11_output_buffer_depth(xob) / + 8)) - h, h, w, x, y, + buf->priv.pal->lookup); + if (buf->priv.debug) + outbuf_software_x11_debug_show(buf, buf->priv.x.win, + x, y, w, h); + x_software_x11_output_buffer_paste(xob, buf->priv.x.win, + buf->priv.x.gc, y, + buf->w - x - w); + if (mxob) + { + int yy; + +/* for (yy = 0; yy < h; yy++)*/ +/* x_software_x11_write_mask_line(mxob, src_data + (yy * w), w, yy);*/ + x_software_x11_output_buffer_paste(mxob, + buf->priv.x.mask, + buf->priv.x.gcm, + y, + buf->w - x - w); + } + } + } + else + { + if (buf->rot == 0) + { + if (!direct_data) + conv_func(src_data, data, + 0, + bpl / + ((x_software_x11_output_buffer_depth(xob) / + 8)) - w, w, h, x, y, NULL); + if (buf->priv.debug) + outbuf_software_x11_debug_show(buf, buf->priv.x.win, + x, y, w, h); + x_software_x11_output_buffer_paste(xob, buf->priv.x.win, + buf->priv.x.gc, x, y); + if (mxob) + { + int yy; + + for (yy = 0; yy < h; yy++) + x_software_x11_write_mask_line(mxob, + src_data + + (yy * w), w, yy); + x_software_x11_output_buffer_paste(mxob, + buf->priv.x.mask, + buf->priv.x.gcm, + x, y); + } + } + else if (buf->rot == 270) + { + if (!direct_data) + conv_func(src_data, data, + 0, + bpl / + ((x_software_x11_output_buffer_depth(xob) / + 8)) - h, h, w, x, y, NULL); + if (buf->priv.debug) + outbuf_software_x11_debug_show(buf, buf->priv.x.win, + x, y, w, h); + x_software_x11_output_buffer_paste(xob, buf->priv.x.win, + buf->priv.x.gc, + buf->h - y - h, x); + if (mxob) + { + int yy; + +/* for (yy = 0; yy < h; yy++)*/ +/* x_software_x11_write_mask_line(mxob, src_data + (yy * w), w, yy);*/ + x_software_x11_output_buffer_paste(mxob, + buf->priv.x.mask, + buf->priv.x.gcm, + buf->h - y - h, + x); + } + } + else if (buf->rot == 90) + { + if (!direct_data) + conv_func(src_data, data, + 0, + bpl / + ((x_software_x11_output_buffer_depth(xob) / + 8)) - h, h, w, x, y, NULL); + if (buf->priv.debug) + outbuf_software_x11_debug_show(buf, buf->priv.x.win, + x, y, w, h); + x_software_x11_output_buffer_paste(xob, buf->priv.x.win, + buf->priv.x.gc, y, + buf->w - x - w); + if (mxob) + { + int yy; + +/* for (yy = 0; yy < h; yy++)*/ +/* x_software_x11_write_mask_line(mxob, src_data + (yy * w), w, yy);*/ + x_software_x11_output_buffer_paste(mxob, + buf->priv.x.mask, + buf->priv.x.gcm, + y, + buf->w - x - w); + } + } + } + if (mxob) + x_software_x11_output_buffer_free(mxob); + } + else + { + x_software_x11_output_buffer_free(xob); + return; + } + x_software_x11_output_buffer_free(xob); + } +} + +void +outbuf_software_x11_reconfigure(Outbuf * buf, int w, int h, int rot, + Outbuf_Depth depth) +{ + if ((w == buf->w) && (h == buf->h) && + (rot == buf->rot) && (depth == buf->depth)) + return; + buf->w = w; + buf->h = h; + buf->rot = rot; + if (buf->priv.back_buf) + { + image_free(buf->priv.back_buf); + buf->priv.back_buf = NULL; + } + if (buf->priv.x.disp) + { + if (buf->priv.x.depth < 24) + buf->priv.back_buf = image_create(buf->w, buf->h); + } +} + +int +outbuf_software_x11_get_width(Outbuf * buf) +{ + return buf->w; +} + +int +outbuf_software_x11_get_height(Outbuf * buf) +{ + return buf->h; +} + +Outbuf_Depth +outbuf_software_x11_get_depth(Outbuf * buf) +{ + return buf->depth; +} + +int +outbuf_software_x11_get_rot(Outbuf * buf) +{ + return buf->rot; +} + +int +outbuf_software_x11_get_have_backbuf(Outbuf * buf) +{ + if (buf->priv.back_buf) + return 1; + return 0; +} + +void +outbuf_software_x11_set_have_backbuf(Outbuf * buf, int have_backbuf) +{ + if (buf->priv.back_buf) + { + if (have_backbuf) + return; + image_free(buf->priv.back_buf); + buf->priv.back_buf = NULL; + } + else + { + if (!have_backbuf) + return; + if (buf->priv.x.disp) + { + if (buf->priv.x.depth < 24) + buf->priv.back_buf = image_create(buf->w, buf->h); + } + } +} + +void +outbuf_software_x11_drawable_set(Outbuf * buf, Drawable draw) +{ + XGCValues gcv; + + if (buf->priv.x.win == draw) + return; + + if (buf->priv.x.gc) + { + XFreeGC(buf->priv.x.disp, buf->priv.x.gc); + buf->priv.x.gc = NULL; + } + + buf->priv.x.win = draw; + buf->priv.x.gc = XCreateGC(buf->priv.x.disp, buf->priv.x.win, 0, &gcv); +} + +void +outbuf_software_x11_mask_set(Outbuf * buf, Pixmap mask) +{ + XGCValues gcv; + + if (buf->priv.x.mask == mask) + return; + + if (buf->priv.x.gcm) + { + XFreeGC(buf->priv.x.disp, buf->priv.x.gcm); + buf->priv.x.gcm = NULL; + } + + buf->priv.x.mask = mask; + if (buf->priv.x.mask) + buf->priv.x.gcm = XCreateGC(buf->priv.x.disp, buf->priv.x.mask, 0, &gcv); +} + +void +outbuf_software_x11_debug_set(Outbuf * buf, int debug) +{ + buf->priv.debug = debug; +} + +void +outbuf_software_x11_debug_show(Outbuf * buf, Drawable draw, int x, int y, int w, + int h) +{ + int i; + int screen_num = 0; + + { + int wx, wy; + unsigned int ww, wh, bd, dp; + Window wdum, root; + XWindowAttributes wattr; + + XGetGeometry(buf->priv.x.disp, draw, &root, &wx, &wy, &ww, &wh, &bd, &dp); + XGetGeometry(buf->priv.x.disp, root, &wdum, &wx, &wy, &ww, &wh, &bd, &dp); + XGetWindowAttributes(buf->priv.x.disp, root, &wattr); + screen_num = XScreenNumberOfScreen(wattr.screen); + } + for (i = 0; i < 10; i++) + { + XImage *xim; + + XSetForeground(buf->priv.x.disp, buf->priv.x.gc, + BlackPixel(buf->priv.x.disp, screen_num)); + XFillRectangle(buf->priv.x.disp, draw, buf->priv.x.gc, x, y, w, h); + XSync(buf->priv.x.disp, False); + xim = + XGetImage(buf->priv.x.disp, draw, x, y, w, h, 0xffffffff, ZPixmap); + if (xim) + XDestroyImage(xim); + XSync(buf->priv.x.disp, False); + XSetForeground(buf->priv.x.disp, buf->priv.x.gc, + WhitePixel(buf->priv.x.disp, screen_num)); + XFillRectangle(buf->priv.x.disp, draw, buf->priv.x.gc, x, y, w, h); + XSync(buf->priv.x.disp, False); + xim = + XGetImage(buf->priv.x.disp, draw, x, y, w, h, 0xffffffff, ZPixmap); + if (xim) + XDestroyImage(xim); + XSync(buf->priv.x.disp, False); + } +} diff --git a/legacy/evas/src/lib/engines/software_x11/evas_x_buffer.c b/legacy/evas/src/lib/engines/software_x11/evas_x_buffer.c new file mode 100644 index 0000000000..77494d265a --- /dev/null +++ b/legacy/evas/src/lib/engines/software_x11/evas_x_buffer.c @@ -0,0 +1,190 @@ +#include "evas_common.h" +#include "evas_engine.h" + +#include +#include +#include +#include +#include + +struct _X_Output_Buffer +{ + Display *display; + XImage *xim; + XShmSegmentInfo *shm_info; + void *data; +}; + +static int _x_err = 0; + +void +x_software_x11_write_mask_line(X_Output_Buffer *xob, DATA32 *src, int w, int y) +{ + int x; + + for (x = 0; x < w; x++) + { + XPutPixel(xob->xim, x, y, A_VAL(&(src[x])) >> 7); + } +} + +int +x_software_x11_can_do_shm(Display *d) +{ + if (XShmQueryExtension(d)) + { + X_Output_Buffer *xob; + + xob = x_software_x11_output_buffer_new(d, + DefaultVisual(d, DefaultScreen(d)), + DefaultDepth(d, DefaultScreen(d)), + 16, 16, 2, NULL); + if (!xob) + return 0; + x_software_x11_output_buffer_free(xob); + return 1; + } + return 0; +} + +static void +x_software_x11_output_tmp_x_err(Display * d, XErrorEvent * ev) +{ + _x_err = 1; + return; + d = NULL; + ev = NULL; +} + +X_Output_Buffer * +x_software_x11_output_buffer_new(Display *d, Visual *v, int depth, int w, int h, int try_shm, void *data) +{ + X_Output_Buffer *xob; + + xob = calloc(1, sizeof(X_Output_Buffer)); + if (!xob) return NULL; + + xob->display = d; + xob->xim = NULL; + xob->shm_info = NULL; + + if (try_shm > 0) + { + xob->shm_info = malloc(sizeof(XShmSegmentInfo)); + if (xob->shm_info) + { + xob->xim = XShmCreateImage(d, v, depth, ZPixmap, NULL, xob->shm_info, w, h); + if (xob->xim) + { + xob->shm_info->shmid = shmget(IPC_PRIVATE, + xob->xim->bytes_per_line * + xob->xim->height, + IPC_CREAT | 0777); + if (xob->shm_info->shmid >= 0) + { + xob->shm_info->readOnly = False; + xob->shm_info->shmaddr = xob->xim->data = + shmat(xob->shm_info->shmid, 0, 0); + if (xob->shm_info->shmaddr != NULL) + { + XErrorHandler ph; + + XSync(d, False); + _x_err = 0; + ph = XSetErrorHandler((XErrorHandler) + x_software_x11_output_tmp_x_err); + XShmAttach(d, xob->shm_info); + XSync(d, False); + XSetErrorHandler((XErrorHandler)ph); + if (!_x_err) + { + return xob; + } + } + shmdt(xob->shm_info->shmaddr); + shmctl(xob->shm_info->shmid, IPC_RMID, 0); + } + if (xob->xim) XDestroyImage(xob->xim); + xob->xim = NULL; + } + if (xob->shm_info) free(xob->shm_info); + xob->shm_info = NULL; + } + } + + if (try_shm > 1) return NULL; + + xob->xim = XCreateImage(d, v, depth, ZPixmap, 0, data, w, h, 32, 0); + if (!xob->xim) + { + free(xob); + return NULL; + } + + xob->data = data; + + if (!xob->xim->data) + { + xob->xim->data = malloc(xob->xim->bytes_per_line * xob->xim->height); + if (!xob->xim->data) + { + XDestroyImage(xob->xim); + free(xob); + return NULL; + } + } + return xob; +} + +void +x_software_x11_output_buffer_free(X_Output_Buffer *xob) +{ + if (xob->shm_info) + { + XSync(xob->display, False); + XShmDetach(xob->display, xob->shm_info); + XDestroyImage(xob->xim); + shmdt(xob->shm_info->shmaddr); + shmctl(xob->shm_info->shmid, IPC_RMID, 0); + free(xob->shm_info); + } + else + { + if (xob->data) xob->xim->data = NULL; + XDestroyImage(xob->xim); + } + free(xob); +} + +void +x_software_x11_output_buffer_paste(X_Output_Buffer *xob, Drawable d, GC gc, int x, int y) +{ + if (xob->shm_info) + { + XShmPutImage(xob->display, d, gc, xob->xim, 0, 0, x, y, xob->xim->width, xob->xim->height, False); + XSync(xob->display, False); + } + else + { + XPutImage(xob->display, d, gc, xob->xim, 0, 0, x, y, xob->xim->width, xob->xim->height); + } +} + +DATA8 * +x_software_x11_output_buffer_data(X_Output_Buffer *xob, int *bytes_per_line_ret) +{ + if (bytes_per_line_ret) *bytes_per_line_ret = xob->xim->bytes_per_line; + return xob->xim->data; +} + +int +x_software_x11_output_buffer_depth(X_Output_Buffer *xob) +{ + return xob->xim->bits_per_pixel; +} + +int +x_software_x11_output_buffer_byte_order(X_Output_Buffer *xob) +{ + return xob->xim->byte_order; +} diff --git a/legacy/evas/src/lib/engines/software_x11/evas_x_color.c b/legacy/evas/src/lib/engines/software_x11/evas_x_color.c new file mode 100644 index 0000000000..6d41104ec1 --- /dev/null +++ b/legacy/evas/src/lib/engines/software_x11/evas_x_color.c @@ -0,0 +1,337 @@ +#include "evas_common.h" +#include "evas_engine.h" + +#include +#include + +typedef struct _Convert_Pal_Priv Convert_Pal_Priv; + +struct _Convert_Pal_Priv +{ + Display *disp; + Colormap cmap; + Visual *vis; +}; + +typedef DATA8 * (*X_Func_Alloc_Colors) (Display *d, Colormap cmap, Visual *v); + +static X_Func_Alloc_Colors x_software_x11_color_alloc[PAL_MODE_LAST + 1]; +static int x_software_x11_color_count[PAL_MODE_LAST + 1]; +static Evas_List *palettes = NULL; + +static DATA8 * x_software_x11_color_alloc_rgb(int nr, int ng, int nb, Display *d, Colormap cmap, Visual *v); +static DATA8 * x_software_x11_color_alloc_gray(int ng, Display *d, Colormap cmap, Visual *v); + +static DATA8 * x_software_x11_color_alloc_rgb_332(Display *d, Colormap cmap, Visual *v); +static DATA8 * x_software_x11_color_alloc_rgb_666(Display *d, Colormap cmap, Visual *v); +static DATA8 * x_software_x11_color_alloc_rgb_232(Display *d, Colormap cmap, Visual *v); +static DATA8 * x_software_x11_color_alloc_rgb_222(Display *d, Colormap cmap, Visual *v); +static DATA8 * x_software_x11_color_alloc_rgb_221(Display *d, Colormap cmap, Visual *v); +static DATA8 * x_software_x11_color_alloc_rgb_121(Display *d, Colormap cmap, Visual *v); +static DATA8 * x_software_x11_color_alloc_rgb_111(Display *d, Colormap cmap, Visual *v); +static DATA8 * x_software_x11_color_alloc_gray_256(Display *d, Colormap cmap, Visual *v); +static DATA8 * x_software_x11_color_alloc_gray_64(Display *d, Colormap cmap, Visual *v); +static DATA8 * x_software_x11_color_alloc_gray_16(Display *d, Colormap cmap, Visual *v); +static DATA8 * x_software_x11_color_alloc_gray_4(Display *d, Colormap cmap, Visual *v); +static DATA8 * x_software_x11_color_alloc_mono(Display *d, Colormap cmap, Visual *v); + +static DATA8 * +x_software_x11_color_alloc_rgb(int nr, int ng, int nb, Display *d, Colormap cmap, Visual *v) +{ + int r, g, b, i; + DATA8 *color_lut; + int sig_mask = 0; + + for (i = 0; i < v->bits_per_rgb; i++) sig_mask |= (0x1 << i); + sig_mask <<= (16 - v->bits_per_rgb); + i = 0; + color_lut = malloc((nr) * (ng) * (nb)); + if (!color_lut) return NULL; + for (r = 0; r < (nr); r++) + { + for (g = 0; g < (ng); g++) + { + for (b = 0; b < (nb); b++) + { + XColor xcl; + XColor xcl_in; + int val; + Status ret; + + val = (int)((((double)r) / ((nr) - 1)) * 65535); + xcl.red = (unsigned short)(val); + val = (int)((((double)g) / ((ng) - 1)) * 65535); + xcl.green = (unsigned short)(val); + val = (int)((((double)b) / ((nb) - 1)) * 65535); + xcl.blue = (unsigned short)(val); + xcl_in = xcl; + ret = XAllocColor(d, cmap, &xcl); + if ((ret == Success) || + ((xcl_in.red & sig_mask) != (xcl.red & sig_mask)) || + ((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) || + ((xcl_in.blue & sig_mask) != (xcl.blue & sig_mask))) + { + unsigned long pixels[256]; + int j; + + if (i > 0) + { + for(j = 0; j < i; j++) + pixels[j] = (unsigned long) color_lut[j]; + XFreeColors(d, cmap, pixels, i, 0); + } + free(color_lut); + return NULL; + } + color_lut[i] = xcl.pixel; + i++; + } + } + } + return color_lut; +} + +static DATA8 * +x_software_x11_color_alloc_gray(int ng, Display *d, Colormap cmap, Visual *v) +{ + int g, i; + DATA8 *color_lut; + int sig_mask = 0; + + for (i = 0; i < v->bits_per_rgb; i++) sig_mask |= (0x1 << i); + sig_mask <<= (16 - v->bits_per_rgb); + i = 0; + color_lut = malloc(ng); + if (!color_lut) return NULL; + for (g = 0; g < (ng); g++) + { + XColor xcl; + XColor xcl_in; + int val; + Status ret; + + val = (int)((((double)g) / ((ng) - 1)) * 65535); + xcl.red = (unsigned short)(val); + xcl.green = (unsigned short)(val); + xcl.blue = (unsigned short)(val); + xcl_in = xcl; + ret = XAllocColor(d, cmap, &xcl); + if ((ret == Success) || + ((xcl_in.red & sig_mask) != (xcl.red & sig_mask)) || + ((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) || + ((xcl_in.blue & sig_mask) != (xcl.blue & sig_mask))) + { + unsigned long pixels[256]; + int j; + + if (i > 0) + { + for(j = 0; j < i; j++) + pixels[j] = (unsigned long) color_lut[j]; + XFreeColors(d, cmap, pixels, i, 0); + } + free(color_lut); + return NULL; + } + color_lut[i] = xcl.pixel; + i++; + } + return color_lut; +} + +static DATA8 * +x_software_x11_color_alloc_rgb_332(Display *d, Colormap cmap, Visual *v) +{ + return x_software_x11_color_alloc_rgb(8, 8, 4, d, cmap, v); +} + +static DATA8 * +x_software_x11_color_alloc_rgb_666(Display *d, Colormap cmap, Visual *v) +{ + return x_software_x11_color_alloc_rgb(6, 6, 6, d, cmap, v); +} + +static DATA8 * +x_software_x11_color_alloc_rgb_232(Display *d, Colormap cmap, Visual *v) +{ + return x_software_x11_color_alloc_rgb(4, 8, 4, d, cmap, v); +} + +static DATA8 * +x_software_x11_color_alloc_rgb_222(Display *d, Colormap cmap, Visual *v) +{ + return x_software_x11_color_alloc_rgb(4, 4, 4, d, cmap, v); +} + +static DATA8 * +x_software_x11_color_alloc_rgb_221(Display *d, Colormap cmap, Visual *v) +{ + return x_software_x11_color_alloc_rgb(4, 4, 2, d, cmap, v); +} + +static DATA8 * +x_software_x11_color_alloc_rgb_121(Display *d, Colormap cmap, Visual *v) +{ + return x_software_x11_color_alloc_rgb(2, 4, 2, d, cmap, v); +} + +static DATA8 * +x_software_x11_color_alloc_rgb_111(Display *d, Colormap cmap, Visual *v) +{ + return x_software_x11_color_alloc_rgb(2, 2, 2, d, cmap, v); +} + +static DATA8 * +x_software_x11_color_alloc_gray_256(Display *d, Colormap cmap, Visual *v) +{ + return x_software_x11_color_alloc_gray(256, d, cmap, v); +} + +static DATA8 * +x_software_x11_color_alloc_gray_64(Display *d, Colormap cmap, Visual *v) +{ + return x_software_x11_color_alloc_gray(64, d, cmap, v); +} + +static DATA8 * +x_software_x11_color_alloc_gray_16(Display *d, Colormap cmap, Visual *v) +{ + return x_software_x11_color_alloc_gray(32, d, cmap, v); +} + +static DATA8 * +x_software_x11_color_alloc_gray_4(Display *d, Colormap cmap, Visual *v) +{ + return x_software_x11_color_alloc_gray(16, d, cmap, v); +} + +static DATA8 * +x_software_x11_color_alloc_mono(Display *d, Colormap cmap, Visual *v) +{ + return x_software_x11_color_alloc_gray(2, d, cmap, v); +} + +void +x_software_x11_color_init(void) +{ + static int initialised = 0; + + if (initialised) return; + x_software_x11_color_alloc[PAL_MODE_NONE] = NULL; + x_software_x11_color_count[PAL_MODE_NONE] = 0; + + x_software_x11_color_alloc[PAL_MODE_MONO] = x_software_x11_color_alloc_mono; + x_software_x11_color_count[PAL_MODE_MONO] = 2; + + x_software_x11_color_alloc[PAL_MODE_GRAY4] = x_software_x11_color_alloc_gray_4; + x_software_x11_color_count[PAL_MODE_GRAY4] = 4; + + x_software_x11_color_alloc[PAL_MODE_GRAY16] = x_software_x11_color_alloc_gray_16; + x_software_x11_color_count[PAL_MODE_GRAY16] = 16; + + x_software_x11_color_alloc[PAL_MODE_GRAY64] = x_software_x11_color_alloc_gray_64; + x_software_x11_color_count[PAL_MODE_GRAY64] = 64; + + x_software_x11_color_alloc[PAL_MODE_GRAY256] = x_software_x11_color_alloc_gray_256; + x_software_x11_color_count[PAL_MODE_GRAY256] = 256; + + x_software_x11_color_alloc[PAL_MODE_RGB111] = x_software_x11_color_alloc_rgb_111; + x_software_x11_color_count[PAL_MODE_RGB111] = 2 * 2 * 2; + + x_software_x11_color_alloc[PAL_MODE_RGB121] = x_software_x11_color_alloc_rgb_121; + x_software_x11_color_count[PAL_MODE_RGB121] = 2 * 4 * 2; + + x_software_x11_color_alloc[PAL_MODE_RGB221] = x_software_x11_color_alloc_rgb_221; + x_software_x11_color_count[PAL_MODE_RGB221] = 4 * 4 * 2; + + x_software_x11_color_alloc[PAL_MODE_RGB222] = x_software_x11_color_alloc_rgb_222; + x_software_x11_color_count[PAL_MODE_RGB222] = 4 * 4 * 4; + + x_software_x11_color_alloc[PAL_MODE_RGB232] = x_software_x11_color_alloc_rgb_232; + x_software_x11_color_count[PAL_MODE_RGB232] = 4 * 8 * 4; + + x_software_x11_color_alloc[PAL_MODE_RGB666] = x_software_x11_color_alloc_rgb_666; + x_software_x11_color_count[PAL_MODE_RGB666] = 6 * 6 * 6; + + x_software_x11_color_alloc[PAL_MODE_RGB332] = x_software_x11_color_alloc_rgb_332; + x_software_x11_color_count[PAL_MODE_RGB332] = 8 * 8 * 4; + + x_software_x11_color_alloc[PAL_MODE_LAST] = NULL; + x_software_x11_color_count[PAL_MODE_LAST] = 0; + initialised = 1; +} + +Convert_Pal * +x_software_x11_color_allocate(Display *disp, Colormap cmap, Visual *vis, Convert_Pal_Mode colors) +{ + Convert_Pal_Priv *palpriv; + Convert_Pal *pal; + Convert_Pal_Mode c; + Evas_List *l; + + for (l = palettes; l; l = l->next) + { + pal = l->data; + palpriv = pal->data; + if ((disp == palpriv->disp) && + (vis == palpriv->vis) && + (cmap == palpriv->cmap)) + { + pal->references++; + return pal; + } + } + pal = calloc(1, sizeof(struct _Convert_Pal)); + if (!pal) return NULL; + for (c = colors; c > PAL_MODE_NONE; c--) + { + if (x_software_x11_color_alloc[c]) + { + pal->lookup = (x_software_x11_color_alloc[c])(disp, cmap, vis); + if (pal->lookup) break; + } + } + pal->references = 1; + pal->colors = c; + pal->count = x_software_x11_color_count[c]; + palpriv = calloc(1, sizeof(Convert_Pal_Priv)); + pal->data = palpriv; + if (!palpriv) + { + if (pal->lookup) free(pal->lookup); + free(pal); + return NULL; + } + palpriv->disp = disp; + palpriv->vis = vis; + palpriv->cmap = cmap; + if (pal->colors == PAL_MODE_NONE) + { + if (pal->lookup) free(pal->lookup); + free(pal); + return NULL; + } + palettes = evas_list_append(palettes, pal); + return pal; +} + +void +x_software_x11_color_deallocate(Display *disp, Colormap cmap, Visual *vis, + Convert_Pal *pal) +{ + unsigned long pixels[256]; + int j; + + pal->references--; + if (pal->references > 0) return; + if (pal->lookup) + { + for(j = 0; j < pal->count; j++) + pixels[j] = (unsigned long) pal->lookup[j]; + XFreeColors(disp, cmap, pixels, pal->count, 0); + free(pal->lookup); + } + free(pal->data); + palettes = evas_list_remove(palettes, pal); + free(pal); +} diff --git a/legacy/evas/src/lib/engines/software_x11/evas_x_main.c b/legacy/evas/src/lib/engines/software_x11/evas_x_main.c new file mode 100644 index 0000000000..7162f7037d --- /dev/null +++ b/legacy/evas/src/lib/engines/software_x11/evas_x_main.c @@ -0,0 +1,10 @@ +#include "evas_common.h" +#include "evas_engine.h" + +#include +#include + +void +x_software_x11_init(void) +{ +} diff --git a/legacy/evas/src/lib/file/Makefile.am b/legacy/evas/src/lib/file/Makefile.am new file mode 100644 index 0000000000..7e0574349e --- /dev/null +++ b/legacy/evas/src/lib/file/Makefile.am @@ -0,0 +1,22 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = 1.4 foreign + +# A list of all the files in the current directory which can be regenerated +MAINTAINERCLEANFILES = Makefile.in + +LDFLAGS = -L/usr/local/lib +INCLUDES = \ + -I. \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/lib/include \ + -I$(includedir) \ + -I/usr/local/include \ + @freetype_cflags@ + +noinst_LTLIBRARIES = libevas_file.la +libevas_file_la_SOURCES = \ +evas_path.c + +libevas_file_la_LIBADD = $(LDFLAGS) +libevas_file_la_DEPENDENCIES = $(top_builddir)/config.h diff --git a/legacy/evas/src/lib/file/evas_path.c b/legacy/evas/src/lib/file/evas_path.c new file mode 100644 index 0000000000..a39261487b --- /dev/null +++ b/legacy/evas/src/lib/file/evas_path.c @@ -0,0 +1,356 @@ +#include "evas_common.h" +#include "evas_private.h" + +/* os dependant file code. for unix-y like fs's only for now */ +/* if your os doesn't use unix-like fs starting with "/" for the root and */ +/* the file path separator isn't "/" then you may need to help out by */ +/* adding in a new set of functions here */ + +#ifndef _WIN32_WCE + +#include +#include +#include +/* get the casefold feature! */ +#define _GNU_SOURCE +#include +#include + +int +evas_file_path_is_full_path(char *path) +{ + if (!path) return 0; + if (path[0] == '/') return 1; + return 0; +} + +char * +evas_file_path_join(char *path, char *end) +{ + char *res = NULL; + int len; + + if ((!path) && (!end)) return NULL; + if (!path) return strdup(end); + if (!end) return strdup(path); + len = strlen(path); + len += strlen(end); + len += strlen("/"); + res = malloc(len + 1); + if (!res) return NULL; + strcpy(res, path); + strcat(res, "/"); + strcat(res, end); + return res; +} + +int +evas_file_path_exists(char *path) +{ + struct stat st; + + if (stat(path, &st) != -1) return 0; + return 1; +} + +int +evas_file_path_is_file(char *path) +{ + struct stat st; + + if (stat(path, &st) != -1) return 0; + if (S_ISREG(st.st_mode)) return 1; + return 0; +} + +int +evas_file_path_is_dir(char *path) +{ + struct stat st; + + if (stat(path, &st) != -1) return 0; + if (S_ISDIR(st.st_mode)) return 1; + return 0; +} + +Evas_List * +evas_file_path_list(char *path, char *match, int match_case) +{ + Evas_List *files = NULL; + DIR *dir; + + dir = opendir(path); + if (!dir) return NULL; + { + struct dirent *dp; + int flags; + + flags = FNM_PATHNAME; +#ifdef FNM_CASEFOLD + if (!match_case) + flags |= FNM_CASEFOLD; +#else +#warning "Your libc does not provide case-insensitive matching!" +#endif + while ((dp = readdir(dir))) + { + if ((!strcmp(dp->d_name, ".")) || (!strcmp(dp->d_name, ".."))) + continue; + if (match) + { + if (fnmatch(match, dp->d_name, flags) == 0) + files = evas_list_append(files, strdup(dp->d_name)); + } + else + files = evas_list_append(files, strdup(dp->d_name)); + } + closedir(dir); + } + return files; +} + +DATA64 +evas_file_modified_time(const char *file) +{ + struct stat st; + + if (stat(file, &st) < 0) return 0; + if (st.st_ctime > st.st_mtime) return (DATA64)st.st_ctime; + else return (DATA64)st.st_mtime; + return 0; +} + + +#else + +/* Forward declarations */ + +static DWORD winstat(char *path); +static wchar_t *convert_utf_unicode(const char* putf); +static char *convert_unicode_utf(const wchar_t* punicode); + + +/* Unicode to utf and utf to unicode conversion functions */ +static wchar_t * +convert_utf_unicode(const char *putf) +{ + int len; + wchar_t *punicode; + + len = strlen(putf)+ 1; //add one for safety + + punicode = (wchar_t *)malloc(len * sizeof(wchar_t)); + + if (punicode == NULL) return NULL; + +#ifdef UNICODE + strcpy(punicode,putf); +#else + if (mbstowcs(punicode,putf,len) < 0) + { + free(punicode); + return NULL; + } +#endif + return punicode; +} + +static char * +convert_unicode_utf(const wchar_t *punicode) +{ + int len; + char *putf; + + /* add one for safety */ + len = wcslen(punicode) + 1; + + /* this will alloc too many bytes */ + putf = (char *)malloc(len * sizeof(wchar_t)); + + if (putf == NULL) return NULL; + +#ifdef UNICODE + strcpy(putf,punicode); +#else + if (wcstombs(putf,punicode,len) < 0) + { + free(putf); + return NULL; + } +#endif + return putf; +} + +/* + * win"stat" + * This is like the stat function except that it reurns a bitmask (DWORD) + * Since this library is complied using MBCS then the path is multibyte + */ +static DWORD +winstat(char *path) +{ + DWORD fa; + wchar_t *pwpath; /* A wide character type */ + + pwpath = convert_utf_unicode(path); + /* 0xFFFFFFFF is the error return val for the GetFile Attributes Function */ + /* so I am usin this as an error return up here */ + if (pwpath == NULL) return 0xFFFFFFFF; + /* this function needed the wide string"*/ + /* I dont think that WinCe has mbcs equiv functions and only provides UNICODE*/ + fa = GetFileAttributesW(pwpath); + free(pwpath); + return fa; +} + +int +evas_file_path_is_full_path(char *path) +{ + if (!path) return 0; + if (path[0] == '\\') return 1; + return 0; +} + +char * +evas_file_path_join(char *path, char *end) +{ + char *res = NULL; + int len; + + if ((!path) && (!end)) return NULL; + if (!path) return strdup(end); + if (!end) return strdup(path); + len = strlen(path); + len += strlen(end); + len += strlen("\\"); + res = malloc(len + 1); + if (!res) return NULL; + strcpy(res, path); + strcat(res, "\\"); + strcat(res, end); + return res; +} + +int +evas_file_path_exists(char *path) +{ + DWORD fa; + + fa = winstat(path); + if (fa == 0xFFFFFFFF) return 0; + return 1; +} + +int +evas_file_path_is_file(char *path) +{ + DWORD fa; + + fa = winstat(path); + if (fa == 0xFFFFFFFF) return 0; + if (fa & FILE_ATTRIBUTE_DIRECTORY) return 0; + return 1; +} + +int +evas_file_path_is_dir(char *path) +{ + DWORD fa; + + fa = winstat(path); + if (fa == 0xFFFFFFFF) return 0; + if (fa & FILE_ATTRIBUTE_DIRECTORY) return 1; + return 0; +} + +Evas_List * +evas_file_path_list(char *path, char *match, int match_case) +{ + Evas_List *files = NULL; + WIN32_FIND_DATAW find; + HANDLE fh; + int fullpathlen; + char *pfp; /* full path pointer */ + wchar_t *pfup; /* full unicode path pointer */ + + /* + * work out the full path length of the combined patch and match + * if we are looking for a specific match eg *.txt then we will will add + * the length of *.txt and \\ to the string + * if we are not looking for a match then we want to list the whole + * directory and we find the length of \\*.* + */ + fullpathlen = strlen(path); + if (match) + { + fullpathlen += strlen("\\"); + fullpathlen += strlen(match); + } + else + fullpathlen += strlen("\\*.*"); + + /* Create the full search path */ + + pfp = (char *)malloc(fullpathlen + 1); /* add one for safety*/ + if (pfp == NULL) return NULL; + + /* construct the full path */ + strcpy(pfp, path); + if (match) + { + strcat(pfp,"\\"); + strcat(pfp,match); + } + else + strcat(pfp,"\\*.*"); + + /* pfp now contains the fully constructed path*/ + + pfup = convert_utf_unicode(pfp); + free(pfp); /* chuck it away now as we don't need it, we have a unicode version */ + if (pfup == NULL) return NULL; + + fh = FindFirstFileW(pfup,&find); + free(pfup); /* chuck it away now as we don't need it, we have a handle */ + if (fh == INVALID_HANDLE_VALUE) return NULL; + + /* OK now go through the directory picking up filenames */ + do + { + if (!(find.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) + files = evas_list_append(files,convert_unicode_utf(find.cFileName)); + + } + while (FindNextFileW(fh,&find)); + FindClose(fh); + + return files; +} + + +DATA64 +evas_file_modified_time(const char *file) +{ + WIN32_FIND_DATAW find; + HANDLE fh; + ULARGE_INTEGER modtime; + wchar_t *pufile; + + pufile = convert_utf_unicode(file); + if (pufile == NULL) return 0; + + fh = FindFirstFileW(pufile,&find); + if (fh == INVALID_HANDLE_VALUE) + { + free(pufile); + return 0; + } + FindClose(fh); + free(pufile); + + modtime.u.HighPart = find.ftCreationTime.dwHighDateTime; + modtime.u.LowPart = find.ftCreationTime.dwLowDateTime; + + return modtime.QuadPart; +} +#endif diff --git a/legacy/evas/src/lib/include/Makefile.am b/legacy/evas/src/lib/include/Makefile.am new file mode 100644 index 0000000000..31c2da79d1 --- /dev/null +++ b/legacy/evas/src/lib/include/Makefile.am @@ -0,0 +1,13 @@ +## Process this file with automake to produce Makefile.in + +EXTRA_DIST = \ +evas_common.h \ +evas_engine_api_software_x11.h \ +evas_engine_api_directfb.h \ +evas_engine_api_fb.h \ +evas_engine_api_software_qtopia.h \ +evas_engine_api_gl_x11.h \ +evas_mmx.h \ +evas_options.h \ +evas_private.h + diff --git a/legacy/evas/src/lib/include/evas_common.h b/legacy/evas/src/lib/include/evas_common.h new file mode 100644 index 0000000000..cfd63c4fa5 --- /dev/null +++ b/legacy/evas/src/lib/include/evas_common.h @@ -0,0 +1,837 @@ +#ifndef EVAS_COMMON_H +#define EVAS_COMMON_H + +#include "config.h" + +/*****************************************************************************/ + +#include "evas_options.h" + +#ifndef __i386__ +# undef BUILD_MMX +# undef BUILD_SSE +# ifndef BUILD_C +# define BUILD_C +# endif +#endif + +/*****************************************************************************/ + +#define MIN(_x, _y) \ +(((_x) < (_y)) ? (_x) : (_y)) +#define MAX(_x, _y) \ +(((_x) > (_y)) ? (_x) : (_y)) + +#define POLY_EDGE_DEL(_i) \ +{ \ + int _j; \ + \ + for (_j = 0; (_j < num_active_edges) && (edges[_j].i != _i); _j++); \ + if (_j < num_active_edges) \ + { \ + num_active_edges--; \ + memmove(&(edges[_j]), &(edges[_j + 1]), \ + (num_active_edges - _j) * sizeof(RGBA_Edge)); \ + } \ +} + +#define POLY_EDGE_ADD(_i, _y) \ +{ \ + int _j; \ + double _dx; \ + RGBA_Vertex *_p, *_q; \ + if (_i < (n - 1)) _j = _i + 1; \ + else _j = 0; \ + if (point[_i].y < point[_j].y) \ + { \ + _p = &(point[_i]); \ + _q = &(point[_j]); \ + } \ + else \ + { \ + _p = &(point[_j]); \ + _q = &(point[_i]); \ + } \ + edges[num_active_edges].dx = _dx = (_q->x - _p->x) / (_q->y - _p->y); \ + edges[num_active_edges].x = (_dx * ((double)_y + 0.5 - _p->y)) + _p->x; \ + edges[num_active_edges].i = _i; \ + num_active_edges++; \ +} + +#define INTERP_VAL(out, in1, in2, in3, in4, interp_x, interp_y) \ + { \ + int _v, _vv; \ + \ + _v = (256 - (interp_x)) * (in1); \ + if ((interp_x) > 0) _v += (interp_x) * (in2); \ + _v *= (256 - (interp_y)); \ + if ((interp_y) > 0) \ + { \ + _vv = (256 - (interp_x)) * (in3); \ + if ((interp_x) > 0) _vv += (interp_x) * (in4); \ + _vv *= (interp_y); \ + (out) = ((_v + _vv) >> 16); \ + } \ + else (out) = (_v >> 16); \ + } +#define INTERP_2(in1, in2, interp, interp_inv) \ + ((in1 * interp_inv) + (in2 * interp)) >> 8 + +#define SWAP32(x) (x) = \ + ((((x) & 0x000000ff ) << 24) |\ + (((x) & 0x0000ff00 ) << 8) |\ + (((x) & 0x00ff0000 ) >> 8) |\ + (((x) & 0xff000000 ) >> 24)) + +#define SWAP16(x) (x) = \ + ((((x) & 0x00ff ) << 8) |\ + (((x) & 0xff00 ) >> 8)) + +#ifdef BUILD_SMALL_DITHER_MASK +# define DM_TABLE _dither_44 +# define DM_SIZE 4 +# define DM_BITS 4 +# define DM_DIV 16 +# define USE_DITHER_44 1 +# define DM_MSK (DM_SIZE - 1) +# define DM_SHF(_b) (DM_BITS - (8 - _b)) +#else +# define DM_TABLE _dither_128128 +# define DM_SIZE 128 +# define DM_BITS 6 +# define DM_DIV 64 +# define USE_DITHER_128128 1 +# define DM_MSK (DM_SIZE - 1) +# define DM_SHF(_b) (DM_BITS - (8 - _b)) +#endif + +/*****************************************************************************/ + +#include +#include +#include + +#ifdef _WIN32_WCE +#include +#endif + +#include +#include FT_FREETYPE_H +#include FT_GLYPH_H + +/*****************************************************************************/ + +#ifndef _WIN32_WCE +typedef unsigned long long DATA64; +#else +typedef unsigned __int64 DATA64; +#define strdup _strdup +#define snprintf _snprintf +#define rewind(f) fseek(f,0,SEEK_SET) +#endif + +typedef unsigned int DATA32; +typedef unsigned short DATA16; +typedef unsigned char DATA8; + +typedef struct _Evas_Object_List Evas_Object_List; + +typedef struct _Evas_List Evas_List; +typedef struct _Evas_Hash Evas_Hash; +typedef struct _Evas_Hash_El Evas_Hash_El; + +typedef struct _RGBA_Image RGBA_Image; +typedef struct _RGBA_Surface RGBA_Surface; +typedef struct _RGBA_Draw_Context RGBA_Draw_Context; +typedef struct _RGBA_Gradient RGBA_Gradient; +typedef struct _RGBA_Gradient_Color RGBA_Gradient_Color; +typedef struct _RGBA_Polygon_Point RGBA_Polygon_Point; +typedef struct _RGBA_Font RGBA_Font; +typedef struct _RGBA_Font_Glyph RGBA_Font_Glyph; + +typedef struct _Cutout_Rect Cutout_Rect; + +typedef struct _Convert_Pal Convert_Pal; + +typedef struct _Tilebuf Tilebuf; +typedef struct _Tilebuf_Tile Tilebuf_Tile; +typedef struct _Tilebuf_Rect Tilebuf_Rect; + +typedef void (*Gfx_Func_Blend_Src_Dst) (DATA32 *src, DATA32 *dst, int len); +typedef void (*Gfx_Func_Blend_Color_Dst) (DATA32 src, DATA32 *dst, int len); +typedef void (*Gfx_Func_Blend_Src_Cmod_Dst) (DATA32 *src, DATA32 *dst, int len, DATA8 *rmod, DATA8 *gmod, DATA8 *bmod, DATA8 *amod); +typedef void (*Gfx_Func_Blend_Src_Mul_Dst) (DATA32 *src, DATA32 *dst, int len, DATA32 mul_color); +typedef void (*Gfx_Func_Blend_Src_Alpha_Mul_Dst) (DATA8 *src, DATA32 *dst, int len, DATA32 col); + +typedef void (*Gfx_Func_Convert) (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); + +/*****************************************************************************/ + +typedef enum _RGBA_Image_Flags +{ + RGBA_IMAGE_NOTHING = (0), + RGBA_IMAGE_HAS_ALPHA = (1 << 0), + RGBA_IMAGE_IS_DIRTY = (1 << 1), + RGBA_IMAGE_INDEXED = (1 << 2) +} RGBA_Image_Flags; + +typedef enum _Convert_Pal_Mode +{ + PAL_MODE_NONE, + PAL_MODE_MONO, + PAL_MODE_GRAY4, + PAL_MODE_GRAY16, + PAL_MODE_GRAY64, + PAL_MODE_GRAY256, + PAL_MODE_RGB111, + PAL_MODE_RGB121, + PAL_MODE_RGB221, + PAL_MODE_RGB222, + PAL_MODE_RGB232, + PAL_MODE_RGB666, + PAL_MODE_RGB332, + PAL_MODE_LAST +} Convert_Pal_Mode; + +/*****************************************************************************/ + +struct _Evas_Object_List +{ + Evas_Object_List *next, *prev; + Evas_Object_List *last; +}; + +struct _Evas_List +{ + void *data; + Evas_List *next, *prev; + Evas_List *last; + int count; +}; + +struct _Evas_Hash +{ + int population; + Evas_Object_List *buckets[256]; +}; + +struct _Evas_Hash_El +{ + Evas_Object_List _list_data; + char *key; + void *data; +}; + +struct _RGBA_Draw_Context +{ + struct { + int use : 1; + DATA8 r[256], g[256], b[256], a[256]; + } mod; + struct { + int use : 1; + DATA32 col; + } mul; + struct { + DATA32 col; + } col; + struct { + int use : 1; + int x, y, w, h; + } clip; + struct { + Cutout_Rect *rects; + } cutout; +}; + +struct _RGBA_Surface +{ + int w, h; + DATA32 *data; + int no_free : 1; +}; + +struct _RGBA_Image +{ + Evas_Object_List _list_data; + RGBA_Surface *image; + RGBA_Image_Flags flags; + struct + { + int num; + RGBA_Surface **levels; + } mipmaps; + struct + { + int format; + char *file; + char *key; + char *comment; + } info; + int references; + DATA64 timestamp; + void *extended_info; +}; + +struct _RGBA_Gradient_Color +{ + Evas_Object_List _list_data; + int r, g, b, a; + int dist; +}; + +struct _RGBA_Gradient +{ + Evas_Object_List *colors; +}; + +struct _RGBA_Polygon_Point +{ + Evas_Object_List _list_data; + int x, y; +}; + +struct _RGBA_Font +{ + Evas_Object_List _list_data; + char *name; + char *file; + int size; + + struct { + FT_Face face; + } ft; + + Evas_Hash *glyphs; + + int usage; + + int references; +}; + +struct _RGBA_Font_Glyph +{ + FT_Glyph glyph; + FT_BitmapGlyph glyph_out; +}; + +struct _Tilebuf +{ + int outbuf_w; + int outbuf_h; + + struct { + int w, h; + } tile_size; + + struct { + int w, h; + Tilebuf_Tile *tiles; + } tiles; +}; + +struct _Tilebuf_Tile +{ + int redraw : 1; +/* FIXME: need these flags later - but not now */ +/* + int done : 1; + int edge : 1; + int from : 1; + + struct { + int dx, dy; + } vector; + */ +}; + +struct _Tilebuf_Rect +{ + Evas_Object_List _list_data; + int x, y, w, h; +}; + +struct _Cutout_Rect +{ + Evas_Object_List _list_data; + int x, y, w, h; +}; + +struct _Convert_Pal +{ + int references; + int count; + Convert_Pal_Mode colors; + DATA8 *lookup; + void *data; +}; + +/*****************************************************************************/ + +#define CONVERT_LOOP_START_ROT_0() \ + src_ptr = src; \ + for (y = 0; y < h; y++) \ + { \ + for (x = 0; x < w; x++) \ + { +#define CONVERT_LOOP_END_ROT_0() \ + dst_ptr++; \ + src_ptr++; \ + } \ + src_ptr += src_jump; \ + dst_ptr += dst_jump; \ + } + +#define CONVERT_LOOP_START_ROT_270() \ + src_ptr = src + ((w - 1) * (h + src_jump)); \ + for (y = 0; y < h; y++) \ + { \ + for (x = 0; x < w; x++) \ + { +#define CONVERT_LOOP_END_ROT_270() \ + dst_ptr++; \ + src_ptr -= (h + src_jump); \ + } \ + src_ptr = src + ((w - 1) * (h + src_jump)) + (y + 1); \ + dst_ptr += dst_jump; \ + } + +#define CONVERT_LOOP_START_ROT_90() \ + src_ptr = src + (h - 1); \ + for (y = 0; y < h; y++) \ + { \ + for (x = 0; x < w; x++) \ + { +#define CONVERT_LOOP_END_ROT_90() \ + dst_ptr++; \ + src_ptr += (h + src_jump); \ + } \ + src_ptr = src + (h - 1) - y - 1; \ + dst_ptr += dst_jump; \ + } + +#define CONVERT_LOOP2_START_ROT_0() \ + src_ptr = src; \ + for (y = 0; y < h; y++) \ + { \ + for (x = 0; x < w; x++) \ + { +#define CONVERT_LOOP2_INC_ROT_0() \ +src_ptr++; \ +x++; +#define CONVERT_LOOP2_END_ROT_0() \ + dst_ptr+=2; \ + src_ptr++; \ + } \ + src_ptr += src_jump; \ + dst_ptr += dst_jump; \ + } + +#define CONVERT_LOOP2_START_ROT_270() \ + src_ptr = src + ((w - 1) * (h + src_jump)); \ + for (y = 0; y < h; y++) \ + { \ + for (x = 0; x < w; x++) \ + { +#define CONVERT_LOOP2_INC_ROT_270() \ +src_ptr -= (h + src_jump); \ +x++; +#define CONVERT_LOOP2_END_ROT_270() \ + dst_ptr+=2; \ + src_ptr -= (h + src_jump); \ + } \ + src_ptr = src + ((w - 1) * (h + src_jump)) + (y + 1); \ + dst_ptr += dst_jump; \ + } + +#define CONVERT_LOOP2_START_ROT_90() \ + src_ptr = src + (h - 1); \ + for (y = 0; y < h; y++) \ + { \ + for (x = 0; x < w; x++) \ + { +#define CONVERT_LOOP2_INC_ROT_90() \ +src_ptr += (h + src_jump); \ +x++; +#define CONVERT_LOOP2_END_ROT_90() \ + dst_ptr+=2; \ + src_ptr += (h + src_jump); \ + } \ + src_ptr = src + (h - 1) - y - 1; \ + dst_ptr += dst_jump; \ + } + +#ifndef WORDS_BIGENDIAN +/* x86 */ +#define A_VAL(p) ((DATA8 *)(p))[3] +#define R_VAL(p) ((DATA8 *)(p))[2] +#define G_VAL(p) ((DATA8 *)(p))[1] +#define B_VAL(p) ((DATA8 *)(p))[0] +#define AR_VAL(p) ((DATA16 *)(p)[1]) +#define GB_VAL(p) ((DATA16 *)(p)[0]) +#else +/* ppc */ +#define A_VAL(p) ((DATA8 *)(p))[0] +#define R_VAL(p) ((DATA8 *)(p))[1] +#define G_VAL(p) ((DATA8 *)(p))[2] +#define B_VAL(p) ((DATA8 *)(p))[3] +#define AR_VAL(p) ((DATA16 *)(p)[0]) +#define GB_VAL(p) ((DATA16 *)(p)[1]) +#endif + +#define BLEND_COLOR(a, nc, c, cc, tmp) \ +{ \ + (tmp) = ((c) - (cc)) * (a); \ + (nc) = (cc) + (((tmp) + ((tmp) >> 8) + 0x80) >> 8); \ +} + +#define PIXEL_SOLID_ALPHA 0xff000000 + +#define SPANS_COMMON(x1, w1, x2, w2) \ +(!((((x2) + (w2)) <= (x1)) || ((x2) >= ((x1) + (w1))))) +#define RECTS_INTERSECT(x, y, w, h, xx, yy, ww, hh) \ +((SPANS_COMMON((x), (w), (xx), (ww))) && (SPANS_COMMON((y), (h), (yy), (hh)))) +#define RECTS_CLIP_TO_RECT(_x, _y, _w, _h, _cx, _cy, _cw, _ch) \ +{ \ + if (RECTS_INTERSECT(_x, _y, _w, _h, _cx, _cy, _cw, _ch)) \ + { \ + if (_x < (_cx)) \ + { \ + _w += _x - (_cx); \ + _x = (_cx); \ + if (_w < 0) _w = 0; \ + } \ + if ((_x + _w) > ((_cx) + (_cw))) \ + _w = (_cx) + (_cw) - _x; \ + if (_y < (_cy)) \ + { \ + _h += _y - (_cy); \ + _y = (_cy); \ + if (_h < 0) _h = 0; \ + } \ + if ((_y + _h) > ((_cy) + (_ch))) \ + _h = (_cy) + (_ch) - _y; \ + } \ + else \ + { \ + _w = 0; _h = 0; \ + } \ +} + + +/*****************************************************************************/ + +#ifdef __cplusplus +extern "C" { +#endif + +Evas_List *evas_list_append (Evas_List *list, void *data); +Evas_List *evas_list_prepend (Evas_List *list, void *data); +Evas_List *evas_list_append_relative (Evas_List *list, void *data, void *relative); +Evas_List *evas_list_prepend_relative (Evas_List *list, void *data, void *relative); +Evas_List *evas_list_remove (Evas_List *list, void *data); +Evas_List *evas_list_remove_list (Evas_List *list, Evas_List *remove_list); +void *evas_list_find (Evas_List *list, void *data); +Evas_List *evas_list_free (Evas_List *list); +Evas_List *evas_list_last (Evas_List *list); +int evas_list_count (Evas_List *list); +void *evas_list_nth (Evas_List *list, int n); +Evas_List *evas_list_reverse (Evas_List *list); + +Evas_Hash *evas_hash_add (Evas_Hash *hash, const char *key, void *data); +Evas_Hash *evas_hash_del (Evas_Hash *hash, const char *key, void *data); +void *evas_hash_find (Evas_Hash *hash, const char *key); +int evas_hash_size (Evas_Hash *hash); +void evas_hash_free (Evas_Hash *hash); +void evas_hash_foreach (Evas_Hash *hash, int (*func) (Evas_Hash *hash, const char *key, void *data, void *fdata), void *fdata); + +void *evas_object_list_append (void *in_list, void *in_item); +void *evas_object_list_prepend (void *in_list, void *in_item); +void *evas_object_list_append_relative (void *in_list, void *in_item, void *in_relative); +void *evas_object_list_prepend_relative (void *in_list, void *in_item, void *in_relative); +void *evas_object_list_remove (void *in_list, void *in_item); +void *evas_object_list_find (void *in_list, void *in_item); + +/****/ +void cpu_init (void); + +int cpu_have_cpuid (void); +void cpu_can_do (int *mmx, int *sse, int *sse2); +void cpu_end_opt (void); + +/****/ +void blend_init (void); + +void blend_pixels_rgba_to_rgb_c (DATA32 *src, DATA32 *dst, int len); +void blend_pixels_rgba_to_rgb_mmx (DATA32 *src, DATA32 *dst, int len); +void blend_pixels_rgba_to_rgba_c (DATA32 *src, DATA32 *dst, int len); + +void copy_pixels_rgba_to_rgba_c (DATA32 *src, DATA32 *dst, int len); +void copy_pixels_rgba_to_rgba_mmx (DATA32 *src, DATA32 *dst, int len); +void copy_pixels_rgba_to_rgba_sse/*NB*/ (DATA32 *src, DATA32 *dst, int len); +void copy_pixels_rgb_to_rgba_c (DATA32 *src, DATA32 *dst, int len); + +void copy_pixels_rev_rgba_to_rgba_c (DATA32 *src, DATA32 *dst, int len); +void copy_pixels_rev_rgba_to_rgba_mmx (DATA32 *src, DATA32 *dst, int len); +void copy_pixels_rev_rgba_to_rgba_sse/*NB*/ (DATA32 *src, DATA32 *dst, int len); +void copy_pixels_rev_rgb_to_rgba_c (DATA32 *src, DATA32 *dst, int len); + +void blend_color_rgba_to_rgb_c (DATA32 src, DATA32 *dst, int len); +void blend_color_rgba_to_rgb_mmx (DATA32 src, DATA32 *dst, int len); +void blend_color_rgba_to_rgba_c (DATA32 src, DATA32 *dst, int len); + +void copy_color_rgba_to_rgba_c (DATA32 src, DATA32 *dst, int len); +void copy_color_rgba_to_rgba_mmx (DATA32 src, DATA32 *dst, int len); +void copy_color_rgba_to_rgba_sse/*NB*/ (DATA32 src, DATA32 *dst, int len); +void copy_color_rgb_to_rgba_c (DATA32 src, DATA32 *dst, int len); + +void blend_pixels_cmod_rgba_to_rgb_c (DATA32 *src, DATA32 *dst, int len, DATA8 *rmod, DATA8 *gmod, DATA8 *bmod, DATA8 *amod); +void blend_pixels_cmod_rgba_to_rgba_c (DATA32 *src, DATA32 *dst, int len, DATA8 *rmod, DATA8 *gmod, DATA8 *bmod, DATA8 *amod); + +void copy_pixels_cmod_rgba_to_rgba_c (DATA32 *src, DATA32 *dst, int len, DATA8 *rmod, DATA8 *gmod, DATA8 *bmod, DATA8 *amod); +void copy_pixels_cmod_rgb_to_rgba_c (DATA32 *src, DATA32 *dst, int len, DATA8 *rmod, DATA8 *gmod, DATA8 *bmod, DATA8 *amod); + +void blend_pixels_mul_color_rgba_to_rgb_c (DATA32 *src, DATA32 *dst, int len, DATA32 mul_color); +void blend_pixels_mul_color_rgba_to_rgb_mmx (DATA32 *src, DATA32 *dst, int len, DATA32 mul_color); +void blend_pixels_mul_color_rgba_to_rgba_c (DATA32 *src, DATA32 *dst, int len, DATA32 mul_color); + +void blend_alpha_color_rgba_to_rgb_c (DATA8 *src, DATA32 *dst, int len, DATA32 col); +void blend_alpha_color_rgba_to_rgb_mmx (DATA8 *src, DATA32 *dst, int len, DATA32 col); +void blend_alpha_color_rgba_to_rgba_c (DATA8 *src, DATA32 *dst, int len, DATA32 col); + +/****/ +void convert_init (void); +Gfx_Func_Convert convert_func_get (DATA8 *dest, int w, int h, int depth, DATA32 rmask, DATA32 gmask, DATA32 bmask, Convert_Pal_Mode pal_mode, int rotation); + +void convert_rgba2_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba2_to_16bpp_rgb_444_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_16bpp_rgb_444_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba2_to_16bpp_rgb_454645_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_16bpp_rgb_454645_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba2_to_16bpp_rgb_555_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_16bpp_rgb_555_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); + +void convert_rgba2_to_16bpp_rgb_565_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_16bpp_rgb_565_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba2_to_16bpp_rgb_444_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_16bpp_rgb_444_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba2_to_16bpp_rgb_454645_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_16bpp_rgb_454645_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba2_to_16bpp_rgb_555_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_16bpp_rgb_555_dith_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); + +void convert_rgba2_to_16bpp_rgb_565_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_16bpp_rgb_565_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba2_to_16bpp_rgb_444_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_16bpp_rgb_444_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba2_to_16bpp_rgb_454645_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_16bpp_rgb_454645_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba2_to_16bpp_rgb_555_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_16bpp_rgb_555_dith_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); + +void convert_rgba_to_24bpp_rgb_888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_24bpp_bgr_888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); + +void convert_rgba_to_32bpp_rgb_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_32bpp_rgb_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_32bpp_rgb_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_32bpp_rgbx_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_32bpp_rgbx_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_32bpp_rgbx_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_32bpp_bgr_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_32bpp_bgr_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_32bpp_bgr_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_32bpp_bgrx_8888 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_32bpp_bgrx_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_32bpp_bgrx_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); + +void convert_rgba_to_8bpp_rgb_332_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_8bpp_rgb_666_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_8bpp_rgb_232_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_8bpp_rgb_222_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_8bpp_rgb_221_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_8bpp_rgb_121_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_8bpp_rgb_111_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_8bpp_gry_256_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_8bpp_gry_64_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_8bpp_gry_16_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_8bpp_gry_4_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_8bpp_gry_1_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); + +void convert_rgba_to_4bpp_gry_4_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); +void convert_rgba_to_4bpp_gry_1_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); + +void convert_rgba_to_1bpp_gry_1_dith (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); + +/****/ +void scale_init (void); + +void scale_rgba_mipmap_down_2x2_c (DATA32 *src, DATA32 *dst, int src_w, int src_h); +void scale_rgba_mipmap_down_2x1_c (DATA32 *src, DATA32 *dst, int src_w, int src_h); +void scale_rgba_mipmap_down_1x2_c (DATA32 *src, DATA32 *dst, int src_w, int src_h); +void scale_rgb_mipmap_down_2x2_c (DATA32 *src, DATA32 *dst, int src_w, int src_h); +void scale_rgb_mipmap_down_2x1_c (DATA32 *src, DATA32 *dst, int src_w, int src_h); +void scale_rgb_mipmap_down_1x2_c (DATA32 *src, DATA32 *dst, int src_w, int src_h); + +void scale_rgba_mipmap_down_2x2_mmx (DATA32 *src, DATA32 *dst, int src_w, int src_h); +void scale_rgba_mipmap_down_2x1_mmx (DATA32 *src, DATA32 *dst, int src_w, int src_h); +void scale_rgba_mipmap_down_1x2_mmx (DATA32 *src, DATA32 *dst, int src_w, int src_h); + +void scale_rgba_gen_mipmap_table (RGBA_Image *src); +void scale_rgba_gen_mipmap_level (RGBA_Image *src, int l); +int scale_rgba_get_mipmap_surfaces (RGBA_Image *src, int src_region_w, int src_region_h, int dst_region_w, int dst_region_h, RGBA_Surface **srf1, RGBA_Surface **srf2); +RGBA_Surface *scale_rgba_get_mipmap_surface (RGBA_Image *src, int src_region_w, int src_region_h, int dst_region_w, int dst_region_h); + +void scale_rgba_in_to_out_clip_smooth_mmx (RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h); +void scale_rgba_in_to_out_clip_smooth_c (RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h); + +void scale_rgba_in_to_out_clip_smooth (RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h); +void scale_rgba_in_to_out_clip_sample (RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h); + +/****/ +void image_init (void); + +RGBA_Surface *image_surface_new (void); +void image_surface_free (RGBA_Surface *is); +void image_surface_alloc (RGBA_Surface *is); +void image_surface_dealloc (RGBA_Surface *is); + +RGBA_Image *image_create (int w, int h); +RGBA_Image *image_new (void); +void image_free (RGBA_Image *im); +void image_ref (RGBA_Image *im); +void image_unref (RGBA_Image *im); +void image_cache (RGBA_Image *im); +void image_uncache (RGBA_Image *im); +void image_flush_cache (void); +void image_set_cache (int size); +int image_get_cache (void); +void image_store (RGBA_Image *im); +void image_unstore (RGBA_Image *im); +RGBA_Image *image_find (const char *filename, const char *key, DATA64 timestamp); +int image_ram_usage (RGBA_Image *im); +void image_dirty (RGBA_Image *im); + +RGBA_Image *load_image_from_file (const char *file, const char *key); +void load_image_data_from_file(RGBA_Image *im); + +/****/ +void rectangle_init (void); + +void rectangle_draw (RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h); + +/****/ +void gradient_init (void); + +RGBA_Gradient *gradient_new (void); +void gradient_free (RGBA_Gradient *gr); +void gradient_colors_clear (RGBA_Gradient *gr); +void gradient_color_add (RGBA_Gradient *gr, int r, int g, int b, int a, int dist); +void gradient_draw (RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h, RGBA_Gradient *gr, double angle); +DATA32 *gradient_map (RGBA_Gradient *gr, RGBA_Draw_Context *dc, int len); + +/****/ +void line_init (void); + +void line_draw (RGBA_Image *dst, RGBA_Draw_Context *dc, int x1, int y1, int x2, int y2); + +/****/ +void polygon_init (void); + +RGBA_Polygon_Point *polygon_point_add (RGBA_Polygon_Point *points, int x, int y); +RGBA_Polygon_Point *polygon_points_clear (RGBA_Polygon_Point *points); +void polygon_draw (RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Polygon_Point *points); + +/****/ +void blit_init (void); + +void blit_rectangle (RGBA_Image *src, RGBA_Image *dst, int src_x, int src_y, int w, int h, int dst_x, int dst_y); + +/****/ + +/****/ +void font_init (void); + +RGBA_Font *font_load (const char *name, int size); +void font_free (RGBA_Font *fn); +void font_modify_cache_by (RGBA_Font *fn, int dir); +int font_cache_get (void); +void font_cache_set (int size); +void font_flush (void); +void font_flush_last (void); +RGBA_Font *font_find (const char *name, int size); +void font_draw (RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn, int x, int y, const char *text); +RGBA_Font_Glyph *font_cache_glyph_get (RGBA_Font *fn, FT_UInt index); +int font_ascent_get (RGBA_Font *fn); +int font_descent_get (RGBA_Font *fn); +int font_max_ascent_get (RGBA_Font *fn); +int font_max_descent_get (RGBA_Font *fn); +int font_get_line_advance (RGBA_Font *fn); +void font_query_size (RGBA_Font *fn, const char *text, int *w, int *h); +int font_query_inset (RGBA_Font *fn, const char *text); +void font_query_advance (RGBA_Font *fn, const char *text, int *h_adv, int *v_adv); +int font_query_char_coords (RGBA_Font *fn, const char *text, int pos, int *cx, int *cy, int *cw, int *ch); +int font_query_text_at_pos (RGBA_Font *fn, const char *text, int x, int y, int *cx, int *cy, int *cw, int *ch); +int font_utf8_get_next (unsigned char *buf, int *iindex); + +/****/ +void tilebuf_init (void); + +Tilebuf *tilebuf_new (int w, int h); +void tilebuf_free (Tilebuf *tb); +void tilebuf_set_tile_size (Tilebuf *tb, int tw, int th); +void tilebuf_get_tile_size (Tilebuf *tb, int *tw, int *th); +int tilebuf_add_redraw (Tilebuf *tb, int x, int y, int w, int h); +int tilebuf_del_redraw (Tilebuf *tb, int x, int y, int w, int h); +int tilebuf_add_motion_vector (Tilebuf *tb, int x, int y, int w, int h, int dx, int dy, int alpha); +void tilebuf_clear (Tilebuf *tb); +Tilebuf_Rect *tilebuf_get_render_rects (Tilebuf *tb); +void tilebuf_free_render_rects (Tilebuf_Rect *rects); + +/****/ +void draw_init (void); + +RGBA_Draw_Context *draw_context_new (void); +void draw_context_free (RGBA_Draw_Context *dc); +void draw_context_clip_clip (RGBA_Draw_Context *dc, int x, int y, int w, int h); +void draw_context_set_clip (RGBA_Draw_Context *dc, int x, int y, int w, int h); +void draw_context_unset_clip (RGBA_Draw_Context *dc); +void draw_context_set_color (RGBA_Draw_Context *dc, int r, int g, int b, int a); +void draw_context_set_multiplier (RGBA_Draw_Context *dc, int r, int g, int b, int a); +void draw_context_unset_multiplier (RGBA_Draw_Context *dc); +void draw_context_set_modifiers (RGBA_Draw_Context *dc, DATA8 *rmod, DATA8 *gmod, DATA8 *bmod, DATA8 *amod); +void draw_context_ununset_modifiers (RGBA_Draw_Context *dc); +void draw_context_add_cutout (RGBA_Draw_Context *dc, int x, int y, int w, int h); +void draw_context_clear_cutouts (RGBA_Draw_Context *dc); +Cutout_Rect *draw_context_apply_cutouts (RGBA_Draw_Context *dc); +void draw_context_apply_free_cutouts(Cutout_Rect *rects); +Cutout_Rect *draw_context_cutouts_split (Cutout_Rect *in, Cutout_Rect *split); +Cutout_Rect *draw_context_cutout_split (Cutout_Rect *in, Cutout_Rect *split); + +Gfx_Func_Blend_Src_Dst draw_func_blend_get (RGBA_Image *src, RGBA_Image *dst, int pixels); +Gfx_Func_Blend_Color_Dst draw_func_blend_color_get (DATA32 src, RGBA_Image *dst, int pixels); +Gfx_Func_Blend_Src_Cmod_Dst draw_func_blend_cmod_get (RGBA_Image *src, RGBA_Image *dst, int pixels); +Gfx_Func_Blend_Src_Mul_Dst draw_func_blend_mul_get (RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); +Gfx_Func_Blend_Src_Alpha_Mul_Dst draw_func_blend_alpha_get (RGBA_Image *dst); +Gfx_Func_Blend_Src_Dst draw_func_copy_get (int pixels, int reverse); + +/*****************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif + +/* FIXME: need... */ + +/* modular image loader system (from ram, or fd) */ +/* loaders: png, jpg, ppm, pgm, argb */ +/* finish renderers for lower bit depths & color allocator */ + +/* and perhaps later on... */ +/* multiply pixels by pixels */ +/* oval / oval segment (arc) (filled/unfilled) */ +/* radial gradient fill */ +/* my own font renderer that can load bdf & pcf fonts? */ diff --git a/legacy/evas/src/lib/include/evas_engine_api_directfb.h b/legacy/evas/src/lib/include/evas_engine_api_directfb.h new file mode 100644 index 0000000000..3c7ee68422 --- /dev/null +++ b/legacy/evas/src/lib/include/evas_engine_api_directfb.h @@ -0,0 +1,8 @@ +#ifndef EVAS_ENGINE_DIRECTFB_H +#define EVAS_ENGINE_DIRECTFB_H +#include + +extern Evas_Func evas_engine_directfb_func; + + +#endif diff --git a/legacy/evas/src/lib/include/evas_engine_api_fb.h b/legacy/evas/src/lib/include/evas_engine_api_fb.h new file mode 100644 index 0000000000..b777e33be0 --- /dev/null +++ b/legacy/evas/src/lib/include/evas_engine_api_fb.h @@ -0,0 +1,6 @@ +#ifndef EVAS_ENGINE_FB_H +#define EVAS_ENGINE_FB_H + +extern Evas_Func evas_engine_fb_func; + +#endif diff --git a/legacy/evas/src/lib/include/evas_engine_api_gl_x11.h b/legacy/evas/src/lib/include/evas_engine_api_gl_x11.h new file mode 100644 index 0000000000..6662e1395c --- /dev/null +++ b/legacy/evas/src/lib/include/evas_engine_api_gl_x11.h @@ -0,0 +1,10 @@ +#ifndef EVAS_ENGINE_GL_X11_H +#define EVAS_ENGINE_GL_X11_H +#include +#include +#include +#include + +extern Evas_Func evas_engine_gl_x11_func; + +#endif diff --git a/legacy/evas/src/lib/include/evas_engine_api_software_qtopia.h b/legacy/evas/src/lib/include/evas_engine_api_software_qtopia.h new file mode 100644 index 0000000000..4849cab9d5 --- /dev/null +++ b/legacy/evas/src/lib/include/evas_engine_api_software_qtopia.h @@ -0,0 +1,6 @@ +#ifndef EVAS_ENGINE_SOFTWARE_QTOPOIA_H +#define EVAS_ENGINE_SOFTWARE_QTOPIA_H + +extern Evas_Func evas_engine_software_qtopia_func; + +#endif diff --git a/legacy/evas/src/lib/include/evas_engine_api_software_win32_gdi.h b/legacy/evas/src/lib/include/evas_engine_api_software_win32_gdi.h new file mode 100644 index 0000000000..ec8f30e560 --- /dev/null +++ b/legacy/evas/src/lib/include/evas_engine_api_software_win32_gdi.h @@ -0,0 +1,6 @@ +#ifndef EVAS_ENGINE_SOFTWARE_WIN32_GDI_H +#define EVAS_ENGINE_SOFTWARE_WIN32_GDI_H + +extern Evas_Func evas_engine_software_win32_gdi_func; + +#endif diff --git a/legacy/evas/src/lib/include/evas_engine_api_software_x11.h b/legacy/evas/src/lib/include/evas_engine_api_software_x11.h new file mode 100644 index 0000000000..01c31aa003 --- /dev/null +++ b/legacy/evas/src/lib/include/evas_engine_api_software_x11.h @@ -0,0 +1,7 @@ +#ifndef EVAS_ENGINE_SOFTWARE_X11_H +#define EVAS_ENGINE_SOFTWARE_X11_H +#include + +extern Evas_Func evas_engine_software_x11_func; + +#endif diff --git a/legacy/evas/src/lib/include/evas_mmx.h b/legacy/evas/src/lib/include/evas_mmx.h new file mode 100644 index 0000000000..4db2546c90 --- /dev/null +++ b/legacy/evas/src/lib/include/evas_mmx.h @@ -0,0 +1,584 @@ +/* mmx.h + + MultiMedia eXtensions GCC interface library for IA32. + + To use this library, simply include this header file + and compile with GCC. You MUST have inlining enabled + in order for mmx_ok() to work; this can be done by + simply using -O on the GCC command line. + + Compiling with -DMMX_TRACE will cause detailed trace + output to be sent to stderr for each mmx operation. + This adds lots of code, and obviously slows execution to + a crawl, but can be very useful for debugging. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT + LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR ANY PARTICULAR PURPOSE. + + 1997-98 by H. Dietz and R. Fisher + + History: + 97-98* R.Fisher Early versions + 980501 R.Fisher Original Release + 980611* H.Dietz Rewrite, correctly implementing inlines, and + R.Fisher including direct register accesses. + 980616 R.Fisher Release of 980611 as 980616. + 980714 R.Fisher Minor corrections to Makefile, etc. + 980715 R.Fisher mmx_ok() now prevents optimizer from using + clobbered values. + mmx_ok() now checks if cpuid instruction is + available before trying to use it. + 980726* R.Fisher mm_support() searches for AMD 3DNow, Cyrix + Extended MMX, and standard MMX. It returns a + value which is positive if any of these are + supported, and can be masked with constants to + see which. mmx_ok() is now a call to this + 980726* R.Fisher Added i2r support for shift functions + 980919 R.Fisher Fixed AMD extended feature recognition bug. + 980921 R.Fisher Added definition/check for _MMX_H. + Added "float s[2]" to mmx_t for use with + 3DNow and EMMX. So same mmx_t can be used. + 981013 R.Fisher Fixed cpuid function 1 bug (looked at wrong reg) + Fixed psllq_i2r error in mmxtest.c + + * Unreleased (internal or interim) versions + + Notes: + It appears that the latest gas has the pand problem fixed, therefore + I'll undefine BROKEN_PAND by default. + String compares may be quicker than the multiple test/jumps in vendor + test sequence in mmx_ok(), but I'm not concerned with that right now. + + Acknowledgments: + Jussi Laako for pointing out the errors ultimately found to be + connected to the failure to notify the optimizer of clobbered values. + Roger Hardiman for reminding us that CPUID isn't everywhere, and that + someone may actually try to use this on a machine without CPUID. + Also for suggesting code for checking this. + Robert Dale for pointing out the AMD recognition bug. + Jimmy Mayfield and Carl Witty for pointing out the Intel recognition + bug. + Carl Witty for pointing out the psllq_i2r test bug. +*/ + +#ifndef _MMX_H +#define _MMX_H + +/* Warning: at this writing, the version of GAS packaged + with most Linux distributions does not handle the + parallel AND operation mnemonic correctly. If the + symbol BROKEN_PAND is defined, a slower alternative + coding will be used. If execution of mmxtest results + in an illegal instruction fault, define this symbol. +*/ +#undef BROKEN_PAND + + +/* The type of an value that fits in an MMX register + (note that long long constant values MUST be suffixed + by LL and unsigned long long values by ULL, lest + they be truncated by the compiler) +*/ +typedef union { + long long q; /* Quadword (64-bit) value */ + unsigned long long uq; /* Unsigned Quadword */ + int d[2]; /* 2 Doubleword (32-bit) values */ + unsigned int ud[2]; /* 2 Unsigned Doubleword */ + short w[4]; /* 4 Word (16-bit) values */ + unsigned short uw[4]; /* 4 Unsigned Word */ + char b[8]; /* 8 Byte (8-bit) values */ + unsigned char ub[8]; /* 8 Unsigned Byte */ + float s[2]; /* Single-precision (32-bit) value */ +} mmx_t; + +/* Helper functions for the instruction macros that follow... + (note that memory-to-register, m2r, instructions are nearly + as efficient as register-to-register, r2r, instructions; + however, memory-to-memory instructions are really simulated + as a convenience, and are only 1/3 as efficient) +*/ + +/* These macros are a lot simpler without the tracing... +*/ + +#define mmx_i2r(op, imm, reg) \ + __asm__ __volatile__ (#op " $" #imm ", %%" #reg \ + : /* nothing */ \ + : /* nothing */); + +#define mmx_m2r(op, mem, reg) \ + __asm__ __volatile__ (#op " %0, %%" #reg \ + : /* nothing */ \ + : "X" (mem)) + +#define mmx_r2m(op, reg, mem) \ + __asm__ __volatile__ (#op " %%" #reg ", %0" \ + : "=X" (mem) \ + : /* nothing */ ) + +#define mmx_r2r(op, regs, regd) \ + __asm__ __volatile__ (#op " %" #regs ", %" #regd) + +#define mmx_m2m(op, mems, memd) \ + __asm__ __volatile__ ("movq %0, %%mm0\n\t" \ + #op " %1, %%mm0\n\t" \ + "movq %%mm0, %0" \ + : "=X" (memd) \ + : "X" (mems)) + + +/* 1x64 MOVe Quadword + (this is both a load and a store... + in fact, it is the only way to store) +*/ +#define movq_m2r(var, reg) mmx_m2r(movq, var, reg) +#define movq_r2m(reg, var) mmx_r2m(movq, reg, var) +#define movq_r2r(regs, regd) mmx_r2r(movq, regs, regd) +#define movq(vars, vard) \ + __asm__ __volatile__ ("movq %1, %%mm0\n\t" \ + "movq %%mm0, %0" \ + : "=X" (vard) \ + : "X" (vars)) + + +/* 1x32 MOVe Doubleword + (like movq, this is both load and store... + but is most useful for moving things between + mmx registers and ordinary registers) +*/ +#define movd_m2r(var, reg) mmx_m2r(movd, var, reg) +#define movd_r2m(reg, var) mmx_r2m(movd, reg, var) +#define movd_r2r(regs, regd) mmx_r2r(movd, regs, regd) +#define movd(vars, vard) \ + __asm__ __volatile__ ("movd %1, %%mm0\n\t" \ + "movd %%mm0, %0" \ + : "=X" (vard) \ + : "X" (vars)) + + +/* 2x32, 4x16, and 8x8 Parallel ADDs +*/ +#define paddd_m2r(var, reg) mmx_m2r(paddd, var, reg) +#define paddd_r2r(regs, regd) mmx_r2r(paddd, regs, regd) +#define paddd(vars, vard) mmx_m2m(paddd, vars, vard) + +#define paddw_m2r(var, reg) mmx_m2r(paddw, var, reg) +#define paddw_r2r(regs, regd) mmx_r2r(paddw, regs, regd) +#define paddw(vars, vard) mmx_m2m(paddw, vars, vard) + +#define paddb_m2r(var, reg) mmx_m2r(paddb, var, reg) +#define paddb_r2r(regs, regd) mmx_r2r(paddb, regs, regd) +#define paddb(vars, vard) mmx_m2m(paddb, vars, vard) + + +/* 4x16 and 8x8 Parallel ADDs using Saturation arithmetic +*/ +#define paddsw_m2r(var, reg) mmx_m2r(paddsw, var, reg) +#define paddsw_r2r(regs, regd) mmx_r2r(paddsw, regs, regd) +#define paddsw(vars, vard) mmx_m2m(paddsw, vars, vard) + +#define paddsb_m2r(var, reg) mmx_m2r(paddsb, var, reg) +#define paddsb_r2r(regs, regd) mmx_r2r(paddsb, regs, regd) +#define paddsb(vars, vard) mmx_m2m(paddsb, vars, vard) + + +/* 4x16 and 8x8 Parallel ADDs using Unsigned Saturation arithmetic +*/ +#define paddusw_m2r(var, reg) mmx_m2r(paddusw, var, reg) +#define paddusw_r2r(regs, regd) mmx_r2r(paddusw, regs, regd) +#define paddusw(vars, vard) mmx_m2m(paddusw, vars, vard) + +#define paddusb_m2r(var, reg) mmx_m2r(paddusb, var, reg) +#define paddusb_r2r(regs, regd) mmx_r2r(paddusb, regs, regd) +#define paddusb(vars, vard) mmx_m2m(paddusb, vars, vard) + + +/* 2x32, 4x16, and 8x8 Parallel SUBs +*/ +#define psubd_m2r(var, reg) mmx_m2r(psubd, var, reg) +#define psubd_r2r(regs, regd) mmx_r2r(psubd, regs, regd) +#define psubd(vars, vard) mmx_m2m(psubd, vars, vard) + +#define psubw_m2r(var, reg) mmx_m2r(psubw, var, reg) +#define psubw_r2r(regs, regd) mmx_r2r(psubw, regs, regd) +#define psubw(vars, vard) mmx_m2m(psubw, vars, vard) + +#define psubb_m2r(var, reg) mmx_m2r(psubb, var, reg) +#define psubb_r2r(regs, regd) mmx_r2r(psubb, regs, regd) +#define psubb(vars, vard) mmx_m2m(psubb, vars, vard) + + +/* 4x16 and 8x8 Parallel SUBs using Saturation arithmetic +*/ +#define psubsw_m2r(var, reg) mmx_m2r(psubsw, var, reg) +#define psubsw_r2r(regs, regd) mmx_r2r(psubsw, regs, regd) +#define psubsw(vars, vard) mmx_m2m(psubsw, vars, vard) + +#define psubsb_m2r(var, reg) mmx_m2r(psubsb, var, reg) +#define psubsb_r2r(regs, regd) mmx_r2r(psubsb, regs, regd) +#define psubsb(vars, vard) mmx_m2m(psubsb, vars, vard) + + +/* 4x16 and 8x8 Parallel SUBs using Unsigned Saturation arithmetic +*/ +#define psubusw_m2r(var, reg) mmx_m2r(psubusw, var, reg) +#define psubusw_r2r(regs, regd) mmx_r2r(psubusw, regs, regd) +#define psubusw(vars, vard) mmx_m2m(psubusw, vars, vard) + +#define psubusb_m2r(var, reg) mmx_m2r(psubusb, var, reg) +#define psubusb_r2r(regs, regd) mmx_r2r(psubusb, regs, regd) +#define psubusb(vars, vard) mmx_m2m(psubusb, vars, vard) + + +/* 4x16 Parallel MULs giving Low 4x16 portions of results +*/ +#define pmullw_m2r(var, reg) mmx_m2r(pmullw, var, reg) +#define pmullw_r2r(regs, regd) mmx_r2r(pmullw, regs, regd) +#define pmullw(vars, vard) mmx_m2m(pmullw, vars, vard) + + +/* 4x16 Parallel MULs giving High 4x16 portions of results +*/ +#define pmulhw_m2r(var, reg) mmx_m2r(pmulhw, var, reg) +#define pmulhw_r2r(regs, regd) mmx_r2r(pmulhw, regs, regd) +#define pmulhw(vars, vard) mmx_m2m(pmulhw, vars, vard) + + +/* 4x16->2x32 Parallel Mul-ADD + (muls like pmullw, then adds adjacent 16-bit fields + in the multiply result to make the final 2x32 result) +*/ +#define pmaddwd_m2r(var, reg) mmx_m2r(pmaddwd, var, reg) +#define pmaddwd_r2r(regs, regd) mmx_r2r(pmaddwd, regs, regd) +#define pmaddwd(vars, vard) mmx_m2m(pmaddwd, vars, vard) + + +/* 1x64 bitwise AND +*/ +#ifdef BROKEN_PAND +#define pand_m2r(var, reg) \ + { \ + mmx_m2r(pandn, (mmx_t) -1LL, reg); \ + mmx_m2r(pandn, var, reg); \ + } +#define pand_r2r(regs, regd) \ + { \ + mmx_m2r(pandn, (mmx_t) -1LL, regd); \ + mmx_r2r(pandn, regs, regd) \ + } +#define pand(vars, vard) \ + { \ + movq_m2r(vard, mm0); \ + mmx_m2r(pandn, (mmx_t) -1LL, mm0); \ + mmx_m2r(pandn, vars, mm0); \ + movq_r2m(mm0, vard); \ + } +#else +#define pand_m2r(var, reg) mmx_m2r(pand, var, reg) +#define pand_r2r(regs, regd) mmx_r2r(pand, regs, regd) +#define pand(vars, vard) mmx_m2m(pand, vars, vard) +#endif + + +/* 1x64 bitwise AND with Not the destination +*/ +#define pandn_m2r(var, reg) mmx_m2r(pandn, var, reg) +#define pandn_r2r(regs, regd) mmx_r2r(pandn, regs, regd) +#define pandn(vars, vard) mmx_m2m(pandn, vars, vard) + + +/* 1x64 bitwise OR +*/ +#define por_m2r(var, reg) mmx_m2r(por, var, reg) +#define por_r2r(regs, regd) mmx_r2r(por, regs, regd) +#define por(vars, vard) mmx_m2m(por, vars, vard) + + +/* 1x64 bitwise eXclusive OR +*/ +#define pxor_m2r(var, reg) mmx_m2r(pxor, var, reg) +#define pxor_r2r(regs, regd) mmx_r2r(pxor, regs, regd) +#define pxor(vars, vard) mmx_m2m(pxor, vars, vard) + + +/* 2x32, 4x16, and 8x8 Parallel CoMPare for EQuality + (resulting fields are either 0 or -1) +*/ +#define pcmpeqd_m2r(var, reg) mmx_m2r(pcmpeqd, var, reg) +#define pcmpeqd_r2r(regs, regd) mmx_r2r(pcmpeqd, regs, regd) +#define pcmpeqd(vars, vard) mmx_m2m(pcmpeqd, vars, vard) + +#define pcmpeqw_m2r(var, reg) mmx_m2r(pcmpeqw, var, reg) +#define pcmpeqw_r2r(regs, regd) mmx_r2r(pcmpeqw, regs, regd) +#define pcmpeqw(vars, vard) mmx_m2m(pcmpeqw, vars, vard) + +#define pcmpeqb_m2r(var, reg) mmx_m2r(pcmpeqb, var, reg) +#define pcmpeqb_r2r(regs, regd) mmx_r2r(pcmpeqb, regs, regd) +#define pcmpeqb(vars, vard) mmx_m2m(pcmpeqb, vars, vard) + + +/* 2x32, 4x16, and 8x8 Parallel CoMPare for Greater Than + (resulting fields are either 0 or -1) +*/ +#define pcmpgtd_m2r(var, reg) mmx_m2r(pcmpgtd, var, reg) +#define pcmpgtd_r2r(regs, regd) mmx_r2r(pcmpgtd, regs, regd) +#define pcmpgtd(vars, vard) mmx_m2m(pcmpgtd, vars, vard) + +#define pcmpgtw_m2r(var, reg) mmx_m2r(pcmpgtw, var, reg) +#define pcmpgtw_r2r(regs, regd) mmx_r2r(pcmpgtw, regs, regd) +#define pcmpgtw(vars, vard) mmx_m2m(pcmpgtw, vars, vard) + +#define pcmpgtb_m2r(var, reg) mmx_m2r(pcmpgtb, var, reg) +#define pcmpgtb_r2r(regs, regd) mmx_r2r(pcmpgtb, regs, regd) +#define pcmpgtb(vars, vard) mmx_m2m(pcmpgtb, vars, vard) + + +/* 1x64, 2x32, and 4x16 Parallel Shift Left Logical +*/ +#define psllq_i2r(imm, reg) mmx_i2r(psllq, imm, reg) +#define psllq_m2r(var, reg) mmx_m2r(psllq, var, reg) +#define psllq_r2r(regs, regd) mmx_r2r(psllq, regs, regd) +#define psllq(vars, vard) mmx_m2m(psllq, vars, vard) + +#define pslld_i2r(imm, reg) mmx_i2r(pslld, imm, reg) +#define pslld_m2r(var, reg) mmx_m2r(pslld, var, reg) +#define pslld_r2r(regs, regd) mmx_r2r(pslld, regs, regd) +#define pslld(vars, vard) mmx_m2m(pslld, vars, vard) + +#define psllw_i2r(imm, reg) mmx_i2r(psllw, imm, reg) +#define psllw_m2r(var, reg) mmx_m2r(psllw, var, reg) +#define psllw_r2r(regs, regd) mmx_r2r(psllw, regs, regd) +#define psllw(vars, vard) mmx_m2m(psllw, vars, vard) + + +/* 1x64, 2x32, and 4x16 Parallel Shift Right Logical +*/ +#define psrlq_i2r(imm, reg) mmx_i2r(psrlq, imm, reg) +#define psrlq_m2r(var, reg) mmx_m2r(psrlq, var, reg) +#define psrlq_r2r(regs, regd) mmx_r2r(psrlq, regs, regd) +#define psrlq(vars, vard) mmx_m2m(psrlq, vars, vard) + +#define psrld_i2r(imm, reg) mmx_i2r(psrld, imm, reg) +#define psrld_m2r(var, reg) mmx_m2r(psrld, var, reg) +#define psrld_r2r(regs, regd) mmx_r2r(psrld, regs, regd) +#define psrld(vars, vard) mmx_m2m(psrld, vars, vard) + +#define psrlw_i2r(imm, reg) mmx_i2r(psrlw, imm, reg) +#define psrlw_m2r(var, reg) mmx_m2r(psrlw, var, reg) +#define psrlw_r2r(regs, regd) mmx_r2r(psrlw, regs, regd) +#define psrlw(vars, vard) mmx_m2m(psrlw, vars, vard) + + +/* 2x32 and 4x16 Parallel Shift Right Arithmetic +*/ +#define psrad_i2r(imm, reg) mmx_i2r(psrad, imm, reg) +#define psrad_m2r(var, reg) mmx_m2r(psrad, var, reg) +#define psrad_r2r(regs, regd) mmx_r2r(psrad, regs, regd) +#define psrad(vars, vard) mmx_m2m(psrad, vars, vard) + +#define psraw_i2r(imm, reg) mmx_i2r(psraw, imm, reg) +#define psraw_m2r(var, reg) mmx_m2r(psraw, var, reg) +#define psraw_r2r(regs, regd) mmx_r2r(psraw, regs, regd) +#define psraw(vars, vard) mmx_m2m(psraw, vars, vard) + + +/* 2x32->4x16 and 4x16->8x8 PACK and Signed Saturate + (packs source and dest fields into dest in that order) +*/ +#define packssdw_m2r(var, reg) mmx_m2r(packssdw, var, reg) +#define packssdw_r2r(regs, regd) mmx_r2r(packssdw, regs, regd) +#define packssdw(vars, vard) mmx_m2m(packssdw, vars, vard) + +#define packsswb_m2r(var, reg) mmx_m2r(packsswb, var, reg) +#define packsswb_r2r(regs, regd) mmx_r2r(packsswb, regs, regd) +#define packsswb(vars, vard) mmx_m2m(packsswb, vars, vard) + + +/* 4x16->8x8 PACK and Unsigned Saturate + (packs source and dest fields into dest in that order) +*/ +#define packuswb_m2r(var, reg) mmx_m2r(packuswb, var, reg) +#define packuswb_r2r(regs, regd) mmx_r2r(packuswb, regs, regd) +#define packuswb(vars, vard) mmx_m2m(packuswb, vars, vard) + + +/* 2x32->1x64, 4x16->2x32, and 8x8->4x16 UNPaCK Low + (interleaves low half of dest with low half of source + as padding in each result field) +*/ +#define punpckldq_m2r(var, reg) mmx_m2r(punpckldq, var, reg) +#define punpckldq_r2r(regs, regd) mmx_r2r(punpckldq, regs, regd) +#define punpckldq(vars, vard) mmx_m2m(punpckldq, vars, vard) + +#define punpcklwd_m2r(var, reg) mmx_m2r(punpcklwd, var, reg) +#define punpcklwd_r2r(regs, regd) mmx_r2r(punpcklwd, regs, regd) +#define punpcklwd(vars, vard) mmx_m2m(punpcklwd, vars, vard) + +#define punpcklbw_m2r(var, reg) mmx_m2r(punpcklbw, var, reg) +#define punpcklbw_r2r(regs, regd) mmx_r2r(punpcklbw, regs, regd) +#define punpcklbw(vars, vard) mmx_m2m(punpcklbw, vars, vard) + + +/* 2x32->1x64, 4x16->2x32, and 8x8->4x16 UNPaCK High + (interleaves high half of dest with high half of source + as padding in each result field) +*/ +#define punpckhdq_m2r(var, reg) mmx_m2r(punpckhdq, var, reg) +#define punpckhdq_r2r(regs, regd) mmx_r2r(punpckhdq, regs, regd) +#define punpckhdq(vars, vard) mmx_m2m(punpckhdq, vars, vard) + +#define punpckhwd_m2r(var, reg) mmx_m2r(punpckhwd, var, reg) +#define punpckhwd_r2r(regs, regd) mmx_r2r(punpckhwd, regs, regd) +#define punpckhwd(vars, vard) mmx_m2m(punpckhwd, vars, vard) + +#define punpckhbw_m2r(var, reg) mmx_m2r(punpckhbw, var, reg) +#define punpckhbw_r2r(regs, regd) mmx_r2r(punpckhbw, regs, regd) +#define punpckhbw(vars, vard) mmx_m2m(punpckhbw, vars, vard) + +#define MOVE_8DWORDS_MMX(src,dst) \ + __asm__ ( \ + "movq (%1), %%mm0 \n" \ + "movq 0x8(%1), %%mm1 \n" \ + "movq 0x10(%1), %%mm2 \n" \ + "movq 0x18(%1), %%mm3 \n" \ + "movq %%mm0, (%0) \n" \ + "movq %%mm1, 0x8(%0) \n" \ + "movq %%mm2, 0x10(%0) \n" \ + "movq %%mm3, 0x18(%0) \n" \ + : \ + : "q" (dst), "r" (src) \ + : "memory", "st"); + +#define MOVE_10DWORDS_MMX(src,dst) \ + __asm__ ( \ + "movq (%1), %%mm0 \n" \ + "movq 0x8(%1), %%mm1 \n" \ + "movq 0x10(%1), %%mm2 \n" \ + "movq 0x18(%1), %%mm3 \n" \ + "movq 0x20(%1), %%mm4 \n" \ + "movq %%mm0, (%0) \n" \ + "movq %%mm1, 0x8(%0) \n" \ + "movq %%mm2, 0x10(%0) \n" \ + "movq %%mm3, 0x18(%0) \n" \ + "movq %%mm4, 0x20(%0) \n" \ + : \ + : "q" (dst), "r" (src) \ + : "memory", "st"); + +#define MOVE_16DWORDS_MMX(src,dst) \ + __asm__ ( \ + "movq (%1), %%mm0 \n" \ + "movq 0x8(%1), %%mm1 \n" \ + "movq 0x10(%1), %%mm2 \n" \ + "movq 0x18(%1), %%mm3 \n" \ + "movq 0x20(%1), %%mm4 \n" \ + "movq 0x28(%1), %%mm5 \n" \ + "movq 0x30(%1), %%mm6 \n" \ + "movq 0x38(%1), %%mm7 \n" \ + "movq %%mm0, (%0) \n" \ + "movq %%mm1, 0x8(%0) \n" \ + "movq %%mm2, 0x10(%0) \n" \ + "movq %%mm3, 0x18(%0) \n" \ + "movq %%mm4, 0x20(%0) \n" \ + "movq %%mm5, 0x28(%0) \n" \ + "movq %%mm6, 0x30(%0) \n" \ + "movq %%mm7, 0x38(%0) \n" \ + : \ + : "q" (dst), "r" (src) \ + : "memory", "st"); + +#define MOVE_16DWORDS_MMX2(src,dst) \ + __asm__ ( \ + "movq (%1), %%mm0 \n" \ + "movq 0x8(%1), %%mm1 \n" \ + "movq 0x10(%1), %%mm2 \n" \ + "movq 0x18(%1), %%mm3 \n" \ + "movq 0x20(%1), %%mm4 \n" \ + "movq 0x28(%1), %%mm5 \n" \ + "movq 0x30(%1), %%mm6 \n" \ + "movq 0x38(%1), %%mm7 \n" \ + "movntq %%mm0, (%0) \n" \ + "movntq %%mm1, 0x8(%0) \n" \ + "movntq %%mm2, 0x10(%0) \n" \ + "movntq %%mm3, 0x18(%0) \n" \ + "movntq %%mm4, 0x20(%0) \n" \ + "movntq %%mm5, 0x28(%0) \n" \ + "movntq %%mm6, 0x30(%0) \n" \ + "movntq %%mm7, 0x38(%0) \n" \ + : \ + : "q" (dst), "r" (src) \ + : "memory", "st"); + +/* Empty MMx State + (used to clean-up when going from mmx to float use + of the registers that are shared by both; note that + there is no float-to-mmx operation needed, because + only the float tag word info is corruptible) +*/ + +#define emms() __asm__ __volatile__ ("emms":::"memory") +#define sfence() __asm__ __volatile__ ("sfence":::"memory") + +/* additions to detect mmx - */ +/* Raster */ + +#define CPUID_MMX (1 << 23) /* flags: mmx */ +#define CPUID_SSE (1 << 25) /* flags: xmm */ +#define CPUID_SSE2 (1 << 26) /* flags: ? */ + +#define have_cpuid(cpuid_ret) \ + __asm__ __volatile__ ( \ + ".align 32 \n" \ + " pushl %%ebx \n" \ + " pushfl \n" \ + " popl %%eax \n" \ + " movl %%eax, %%ebx \n" \ + " xorl $0x200000, %%eax \n" \ + " pushl %%eax \n" \ + " popfl \n" \ + " pushfl \n" \ + " popl %%eax \n" \ + " cmpl %%eax, %%ebx \n" \ + " je 1f \n" \ + " movl $1, %0 \n" \ + " jmp 2f \n" \ + "1: \n" \ + " movl $0, %0 \n" \ + "2: \n" \ + " popl %%ebx \n" \ + : "=m" (cpuid_ret) \ + ); + +#define get_cpuid(cpuid_ret) \ + __asm__ __volatile__ ( \ + ".align 32 \n" \ + " pushl %%eax \n" \ + " movl $1, %%eax \n" \ + " cpuid \n" \ + " test $0x00800000, %%edx\n" \ + "1: \n" \ + " movl %%edx, %0 \n" \ + " jmp 2f \n" \ + "2: \n" \ + " movl $0, %0 \n" \ + " popl %%eax \n" \ + : "=m" (cpuid_ret) \ + ); +/* P3 instructions - need to figure how to detect? */ +#define prefetch(var) \ + __asm__ __volatile__ ( \ + "prefetchnta (%0) \n" \ + : \ + : "r" (var) \ + ); +#define pshufw(r1, r2, imm) \ + __asm__ __volatile__ ( \ + "pshufw $" #imm ", %" #r1 ", %" #r2 " \n" \ + ); + +/* end additions */ + +#endif + diff --git a/legacy/evas/src/lib/include/evas_options.h b/legacy/evas/src/lib/include/evas_options.h new file mode 100644 index 0000000000..94e9942cc4 --- /dev/null +++ b/legacy/evas/src/lib/include/evas_options.h @@ -0,0 +1,68 @@ +#ifndef EVAS_OPTIONS_H +#define EVAS_OPTIONS_H 1 + +/* these may vary per OS */ + +/* what to build *//* small dither table is MUCH faster on ipaq */ +/*#define BUILD_SMALL_DITHER_MASK*/ + +/*#define HARD_CODED_P3*/ +/*#define HARD_CODED_P2*/ + +/*#define BUILD_CONVERT_1_GRY_1*/ +/*#define BUILD_CONVERT_4_GRY_1*/ +/*#define BUILD_CONVERT_4_GRY_4*/ +/*#define BUILD_CONVERT_8_GRY_1*/ +/*#define BUILD_CONVERT_8_GRY_4*/ +/*#define BUILD_CONVERT_8_GRY_16*/ +/*#define BUILD_CONVERT_8_GRY_64*/ +/*#define BUILD_CONVERT_8_GRY_256*/ +/*#define BUILD_CONVERT_8_RGB_332*/ +/*#define BUILD_CONVERT_8_RGB_666*/ +/*#define BUILD_CONVERT_8_RGB_232*/ +/*#define BUILD_CONVERT_8_RGB_222*/ +/*#define BUILD_CONVERT_8_RGB_221*/ +/*#define BUILD_CONVERT_8_RGB_121*/ +/*#define BUILD_CONVERT_8_RGB_111*/ +/*#define BUILD_CONVERT_16_RGB_565*/ +/*#define BUILD_CONVERT_16_RGB_555*/ +/*#define BUILD_CONVERT_16_RGB_444*/ +/*#define BUILD_CONVERT_16_RGB_454645*/ +/*#define BUILD_CONVERT_16_RGB_ROT0*/ +/*#define BUILD_CONVERT_16_RGB_ROT270*/ +/*#define BUILD_CONVERT_24_RGB_888*/ +/*#define BUILD_CONVERT_24_BGR_888*/ +/*#define BUILD_CONVERT_32_RGB_8888*/ +/*#define BUILD_CONVERT_32_BGR_8888*/ +/*#define BUILD_CONVERT_32_RGB_ROT0*/ +/*#define BUILD_CONVERT_32_RGB_ROT270*/ + +/*#define BUILD_SCALE_SAMPLE*/ +/*#define BUILD_SCALE_SMOOTH*/ +/*#define BUILD_SCALE_TRILINEAR*/ + +/*#define BUILD_MMX*/ +/*#define BUILD_SSE*/ +/*#define BUILD_C*/ + +/*#define BUILD_LOADER_PNG*/ +/*#define BUILD_LOADER_JPEG*/ +/*#define BUILD_LOADER_EET*/ +/*#define BUILD_LOADER_EDB*/ + +/*#define BUILD_FMEMOPEN*/ + +/* check in that the user configured it right */ +#ifndef BUILD_MMX +# ifndef BUILD_SSE +# ifndef BUILD_C +# error "Please Read the README" +# endif +# endif +#endif + +#ifdef BUILD_FMEMOPEN +# define _GNU_SOURCE +#endif + +#endif diff --git a/legacy/evas/src/lib/include/evas_private.h b/legacy/evas/src/lib/include/evas_private.h new file mode 100644 index 0000000000..c1d0586096 --- /dev/null +++ b/legacy/evas/src/lib/include/evas_private.h @@ -0,0 +1,458 @@ +#ifndef EVAS_PRIVATE_H +#define EVAS_PRIVATE_H +#endif + +/* complain when peole pass in wrong object types etc. */ +#define MAGIC_DEBUG + +#define RENDER_METHOD_SOFTWARE_X11 0x00000001 +#define RENDER_METHOD_DIRECTFB 0x00000002 +#define RENDER_METHOD_FB 0x00000003 +#define RENDER_METHOD_SOFTWARE_WIN32_GDI 0x00000004 +#define RENDER_METHOD_SOFTWARE_QTOPIA 0x00000005 +#define RENDER_METHOD_GL_X11 0x00000006 + +#define RENDER_METHOD_INVALID 0x00000000 + +typedef enum _Evas_Callback_Type +{ + EVAS_CALLBACK_MOUSE_IN, + EVAS_CALLBACK_MOUSE_OUT, + EVAS_CALLBACK_MOUSE_DOWN, + EVAS_CALLBACK_MOUSE_UP, + EVAS_CALLBACK_MOUSE_MOVE, + EVAS_CALLBACK_FREE, + EVAS_CALLBACK_KEY_DOWN, + EVAS_CALLBACK_KEY_UP, + EVAS_CALLBACK_FOCUS_IN, + EVAS_CALLBACK_FOCUS_OUT +} Evas_Callback_Type; + +typedef struct _Evas_Rectangle Evas_Rectangle; +struct _Evas_Rectangle +{ + int x, y, w, h; +}; + +typedef struct _Evas Evas; +typedef struct _Evas_Layer Evas_Layer; +typedef struct _Evas_Object Evas_Object; +typedef struct _Evas_Data_Node Evas_Data_Node; +typedef struct _Evas_Func_Node Evas_Func_Node; +typedef struct _Evas_Func Evas_Func; +typedef struct _Evas_Object_Func Evas_Object_Func; +typedef struct _Evas_Key Evas_Key; +typedef struct _Evas_Modifier Evas_Modifier; +typedef struct _Evas_Lock Evas_Lock; +typedef struct _Evas_Smart Evas_Smart; +typedef void Evas_Performance; + +#define MAGIC_EVAS 0x70777770 +#define MAGIC_OBJ 0x71777770 +#define MAGIC_OBJ_RECTANGLE 0x71777771 +#define MAGIC_OBJ_LINE 0x71777772 +#define MAGIC_OBJ_GRADIENT 0x71777773 +#define MAGIC_OBJ_POLYGON 0x71777774 +#define MAGIC_OBJ_IMAGE 0x71777775 +#define MAGIC_OBJ_TEXT 0x71777776 +#define MAGIC_OBJ_SMART 0x71777777 +#define MAGIC_SMART 0x72777770 + +#ifdef MAGIC_DEBUG +#define MAGIC_CHECK_FAILED(o, t, m) \ +{evas_debug_error(); \ + if (!o) evas_debug_input_null(); \ + else if (((t *)o)->magic == 0) evas_debug_magic_null(); \ + else evas_debug_magic_wrong((m), ((t *)o)->magic); \ +} +#else +#define MAGIC_CHECK_FAILED(o, t, m) +#endif +#define MAGIC_CHECK(o, t, m) \ +{if ((!o) || (!(((t *)o)->magic == (m)))) { \ +MAGIC_CHECK_FAILED(o, t, m) +#define MAGIC_CHECK_END() \ +}} + +#define NEW_RECT(_r, _x, _y, _w, _h) \ +{(_r) = malloc(sizeof(Evas_Rectangle)); \ +if (_r) \ +{ \ + (_r)->x = (_x); (_r)->y = (_y); \ + (_r)->w = (_w); (_r)->h = (_h); \ +}} + +struct _Evas_Smart +{ + DATA32 magic; + + char *name; + int usage; + void *data; + + int delete_me : 1; + + void (*func_add) (Evas_Object *o); + void (*func_del) (Evas_Object *o); + void (*func_layer_set) (Evas_Object *o, int l); + void (*func_raise) (Evas_Object *o); + void (*func_lower) (Evas_Object *o); + void (*func_stack_above) (Evas_Object *o, Evas_Object *above); + void (*func_stack_below) (Evas_Object *o, Evas_Object *below); + void (*func_move) (Evas_Object *o, double x, double y); + void (*func_resize) (Evas_Object *o, double w, double h); + void (*func_show) (Evas_Object *o); + void (*func_hide) (Evas_Object *o); + void (*func_color_set) (Evas_Object *o, int r, int g, int b, int a); + void (*func_clip_set) (Evas_Object *o, Evas_Object *clip); + void (*func_clip_unset) (Evas_Object *o); +}; + +struct _Evas_Key +{ + char *name; /* string version of key code enum */ +}; + +struct _Evas_Modifier +{ + struct { + int count; + Evas_Key *list; + } mod; + unsigned long long mask; /* ok we have a max of 64 modifiers */ +}; + +struct _Evas_Lock +{ + struct { + int count; + Evas_Key *list; + } lock; + unsigned long long mask; /* we have a max of 64 locks */ +}; + +struct _Evas +{ + Evas_Object_List _list_data; + + DATA32 magic; + + struct { + int inside : 1; + int mouse_grabbed : 1; + DATA32 button; + int x, y; + + double canvas_x, canvas_y; + + struct { + Evas_List *in; + } object; + + } pointer; + + struct { + double x, y, w, h; + int changed : 1; + } viewport; + + struct { + int w, h; + DATA32 render_method; + int changed : 1; + } output; + + int output_validity; + + Evas_List *damages; + Evas_List *obscures; + + Evas_Layer *layers; + + Evas_Hash *name_hash; + + int changed : 1; + + int events_frozen; + + struct { + Evas_Func *func; + struct { + void *output; + + void *context; + } data; + + void *info; + int info_magic; + } engine; + + Evas_List *font_path; +}; + +struct _Evas_Layer +{ + Evas_Object_List _list_data; + + int layer; + Evas_Object *objects; + + int store : 1; + + Evas *evas; + + void *engine_data; +}; + +struct _Evas_Object +{ + Evas_Object_List _list_data; + + DATA32 magic; + + const char *type; + + Evas_Layer *layer; + + struct { + struct { + struct { + int x, y, w, h; + int validity; + } geometry; + struct { + int x, y, w, h; + int r, g, b, a; + int visible; + } clip; + } cache; + struct { + double x, y, w, h; + } geometry; + struct { + int r, g, b, a; + } color; + + int visible : 1; + + int layer; + + Evas_Object *clipper; + + } cur, prev; + + char *name; + + int store : 1; + int pass_events : 1; + int repeat_events : 1; + int restack : 1; + int changed : 1; + int mouse_in : 1; + int mouse_grabbed : 1; + int pre_render_done : 1; + + int delete_me; + + struct { + Evas_List *elements; + } data; + + struct { + Evas_Object_List *in; + Evas_Object_List *out; + Evas_Object_List *down; + Evas_Object_List *up; + Evas_Object_List *move; + Evas_Object_List *free; + } callbacks; + + struct { + Evas_List *clipees; + Evas_List *changes; + } clip; + + Evas_Object_Func *func; + + struct { + Evas_Smart *smart; + void *data; + Evas_Object *parent; + Evas_List *contained; + Evas_List *callbacks; + } smart; + + void *object_data; +}; + +struct _Evas_Func_Node +{ + Evas_Object_List _list_data; + + void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info); + void *data; +}; + +struct _Evas_Data_Node +{ + char *key; + void *data; +}; + +struct _Evas_Object_Func +{ + void (*free) (Evas_Object *obj); + void (*render) (Evas_Object *obj, void *output, void *context, void *surface, int x, int y); + void (*render_pre) (Evas_Object *obj); + void (*render_post) (Evas_Object *obj); + + void (*store) (Evas_Object *obj); + void (*unstore) (Evas_Object *obj); + + int (*is_visible) (Evas_Object *obj); + int (*was_visible) (Evas_Object *obj); + + int (*is_opaque) (Evas_Object *obj); + int (*was_opaque) (Evas_Object *obj); + + int (*is_inside) (Evas_Object *obj, double x, double y); + int (*was_inside) (Evas_Object *obj, double x, double y); + + void (*coords_recalc) (Evas_Object *obj); +}; + +struct _Evas_Func +{ + void *(*info) (Evas *e); + void (*info_free) (Evas *e, void *info); + void (*setup) (Evas *e, void *info); + + void (*output_free) (void *data); + void (*output_resize) (void *data, int w, int h); + void (*output_tile_size_set) (void *data, int w, int h); + void (*output_redraws_rect_add) (void *data, int x, int y, int w, int h); + void (*output_redraws_rect_del) (void *data, int x, int y, int w, int h); + void (*output_redraws_clear) (void *data); + void *(*output_redraws_next_update_get) (void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch); + void (*output_redraws_next_update_push) (void *data, void *surface, int x, int y, int w, int h); + void (*output_flush) (void *data); + + void *(*context_new) (void *data); + void (*context_free) (void *data, void *context); + void (*context_clip_set) (void *data, void *context, int x, int y, int w, int h); + void (*context_clip_clip) (void *data, void *context, int x, int y, int w, int h); + void (*context_clip_unset) (void *data, void *context); + int (*context_clip_get) (void *data, void *context, int *x, int *y, int *w, int *h); + void (*context_color_set) (void *data, void *context, int r, int g, int b, int a); + int (*context_color_get) (void *data, void *context, int *r, int *g, int *b, int *a); + void (*context_multiplier_set) (void *data, void *context, int r, int g, int b, int a); + void (*context_multiplier_unset) (void *data, void *context); + int (*context_multiplier_get) (void *data, void *context, int *r, int *g, int *b, int *a); + void (*context_cutout_add) (void *data, void *context, int x, int y, int w, int h); + void (*context_cutout_clear) (void *data, void *context); + + void (*rectangle_draw) (void *data, void *context, void *surface, int x, int y, int w, int h); + + void (*line_draw) (void *data, void *context, void *surface, int x1, int y1, int x2, int y2); + + void *(*polygon_point_add) (void *data, void *context, void *polygon, int x, int y); + void *(*polygon_points_clear) (void *data, void *context, void *polygon); + void (*polygon_draw) (void *data, void *context, void *surface, void *polygon); + + void *(*gradient_color_add) (void *data, void *context, void *gradient, int r, int g, int b, int a, int distance); + void *(*gradient_colors_clear) (void *data, void *context, void *gradient); + void (*gradient_draw) (void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle); + + void *(*image_load) (void *data, char *file, char *key, int *error); + void *(*image_new_from_data) (void *data, int w, int h, DATA32 *image_data); + void *(*image_new_from_copied_data) (void *data, int w, int h, DATA32 *image_data); + void (*image_free) (void *data, void *image); + void (*image_size_get) (void *data, void *image, int *w, int *h); + void *(*image_size_set) (void *data, void *image, int w, int h); + void *(*image_dirty_region) (void *data, void *image, int x, int y, int w, int h); + void *(*image_data_get) (void *data, void *image, int to_write, DATA32 **image_data); + void *(*image_data_put) (void *data, void *image, DATA32 *image_data); + void *(*image_alpha_set) (void *data, void *image, int has_alpha); + int (*image_alpha_get) (void *data, void *image); + void (*image_draw) (void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth); + char *(*image_comment_get) (void *data, void *image, char *key); + char *(*image_format_get) (void *data, void *image); + + void (*image_cache_flush) (void *data); + void (*image_cache_set) (void *data, int bytes); + int (*image_cache_get) (void *data); + + void *(*font_load) (void *data, char *name, int size); + void (*font_free) (void *data, void *font); + int (*font_ascent_get) (void *data, void *font); + int (*font_descent_get) (void *data, void *font); + int (*font_max_ascent_get) (void *data, void *font); + int (*font_max_descent_get) (void *data, void *font); + void (*font_string_size_get) (void *data, void *font, char *text, int *w, int *h); + int (*font_inset_get) (void *data, void *font, char *text); + int (*font_h_advance_get) (void *data, void *font, char *text); + int (*font_v_advance_get) (void *data, void *font, char *text); + int (*font_char_coords_get) (void *data, void *font, char *text, int pos, int *cx, int *cy, int *cw, int *ch); + int (*font_char_at_coords_get) (void *data, void *font, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch); + void (*font_draw) (void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, char *text); + + void (*font_cache_flush) (void *data); + void (*font_cache_set) (void *data, int bytes); + int (*font_cache_get) (void *data); + + /* Engine functions will over time expand from here */ +}; + +#ifdef __cplusplus +extern "C" { +#endif + +Evas_Object *evas_object_new(void); +void evas_object_free(Evas_Object *obj, int clean_layer); +void evas_object_inject(Evas_Object *obj, Evas *e); +void evas_object_release(Evas_Object *obj, int clean_layer); +void evas_object_change(Evas_Object *obj); +Evas_List *evas_object_render_pre_visible_change(Evas_List *updates, Evas_Object *obj, int is_v, int was_v); +Evas_List *evas_object_render_pre_clipper_change(Evas_List *updates, Evas_Object *obj); +Evas_List *evas_object_render_pre_prev_cur_add(Evas_List *updates, Evas_Object *obj); +void evas_object_render_pre_effect_updates(Evas_List *updates, Evas_Object *obj, int is_v, int was_v); +Evas_List * evas_rects_return_difference_rects(int x, int y, int w, int h, int xx, int yy, int ww, int hh); +void evas_object_clip_recalc(Evas_Object *obj); +Evas_Layer *evas_layer_new(Evas *e); +void evas_layer_free(Evas_Layer *lay); +Evas_Layer *evas_layer_find(Evas *e, int layer_num); +void evas_layer_add(Evas_Layer *lay); +void evas_layer_del(Evas_Layer *lay); +void evas_object_coords_recalc(Evas_Object *obj); +int evas_object_is_active(Evas_Object *obj); +int evas_object_is_in_output_rect(Evas_Object *obj, int x, int y, int w, int h); +int evas_object_was_in_output_rect(Evas_Object *obj, int x, int y, int w, int h); +int evas_object_is_visible(Evas_Object *obj); +int evas_object_was_visible(Evas_Object *obj); +int evas_object_is_opaque(Evas_Object *obj); +int evas_object_was_opaque(Evas_Object *obj); +void evas_object_recalc_clippees(Evas_Object *obj); +int evas_object_clippers_is_visible(Evas_Object *obj); +int evas_object_clippers_was_visible(Evas_Object *obj); +void evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void *event_info); +Evas_List *evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y); +int evas_file_path_is_full_path(char *path); +char *evas_file_path_join(char *path, char *end); +int evas_file_path_exists(char *path); +int evas_file_path_is_file(char *path); +int evas_file_path_is_dir(char *path); +Evas_List *evas_file_path_list(char *path, char *match, int match_case); +DATA64 evas_file_modified_time(const char *file); +void evas_debug_error(void); +void evas_debug_input_null(void); +void evas_debug_magic_null(void); +void evas_debug_magic_wrong(DATA32 expected, DATA32 supplied); +char *evas_debug_magic_string_get(DATA32 magic); +void evas_object_smart_use(Evas_Smart *s); +void evas_object_smart_unuse(Evas_Smart *s); +void evas_object_smart_del(Evas_Object *obj); +void evas_object_smart_cleanup(Evas_Object *obj); + +#ifdef __cplusplus +} +#endif diff --git a/legacy/evas/src/lib/main.c b/legacy/evas/src/lib/main.c new file mode 100644 index 0000000000..823acfd88a --- /dev/null +++ b/legacy/evas/src/lib/main.c @@ -0,0 +1,70 @@ +#include "evas_common.h" +#include "evas_private.h" +#include "Evas.h" + +void +evas_debug_error(void) +{ + fprintf(stderr, + "*** EVAS ERROR: Evas Magic Check Failed!!!\n"); +} + +void +evas_debug_input_null(void) +{ + fprintf(stderr, + " Input object pointer is NULL!\n"); +} + +void +evas_debug_magic_null(void) +{ + fprintf(stderr, + " Input object is zero'ed out (maybe a freed object or zero-filled RAM)!\n"); +} + +void +evas_debug_magic_wrong(DATA32 expected, DATA32 supplied) +{ + fprintf(stderr, + " Input object is wrong type\n" + " Expected: %08x - %s\n" + " Supplied: %08s - %s\n", + expected, evas_debug_magic_string_get(expected), + supplied, evas_debug_magic_string_get(supplied)); +} + +char * +evas_debug_magic_string_get(DATA32 magic) +{ + switch (magic) + { + case MAGIC_EVAS: + return "Evas"; + break; + case MAGIC_OBJ: + return "Evas_Object"; + break; + case MAGIC_OBJ_RECTANGLE: + return "Evas_Object (Rectangle)"; + break; + case MAGIC_OBJ_LINE: + return "Evas_Object (Line)"; + break; + case MAGIC_OBJ_GRADIENT: + return "Evas_Object (Gradient)"; + break; + case MAGIC_OBJ_POLYGON: + return "Evas_Object (Polygon)"; + break; + case MAGIC_OBJ_IMAGE: + return "Evas_Object (Image)"; + break; + case MAGIC_OBJ_TEXT: + return "Evas_Object (Text)"; + break; + default: + return ""; + }; + return ""; +}