diff --git a/legacy/evas/data/arial.ttf b/legacy/evas/data/arial.ttf new file mode 100644 index 0000000000..2cca31563b Binary files /dev/null and b/legacy/evas/data/arial.ttf differ diff --git a/legacy/evas/data/backdrop.png b/legacy/evas/data/backdrop.png new file mode 100644 index 0000000000..08e2ffe8d4 Binary files /dev/null and b/legacy/evas/data/backdrop.png differ diff --git a/legacy/evas/data/bg.png b/legacy/evas/data/bg.png new file mode 100644 index 0000000000..3f63b4adb8 Binary files /dev/null and b/legacy/evas/data/bg.png differ diff --git a/legacy/evas/data/e_logo.png b/legacy/evas/data/e_logo.png new file mode 100644 index 0000000000..0fe20dc6a5 Binary files /dev/null and b/legacy/evas/data/e_logo.png differ diff --git a/legacy/evas/data/evas_logo.png b/legacy/evas/data/evas_logo.png new file mode 100644 index 0000000000..d30345a24a Binary files /dev/null and b/legacy/evas/data/evas_logo.png differ diff --git a/legacy/evas/data/grunge.ttf b/legacy/evas/data/grunge.ttf new file mode 100644 index 0000000000..34d1021843 Binary files /dev/null and b/legacy/evas/data/grunge.ttf differ diff --git a/legacy/evas/data/morpheus.ttf b/legacy/evas/data/morpheus.ttf new file mode 100644 index 0000000000..ee4c740d68 Binary files /dev/null and b/legacy/evas/data/morpheus.ttf differ diff --git a/legacy/evas/data/notepad.ttf b/legacy/evas/data/notepad.ttf new file mode 100644 index 0000000000..f24ad4b05b Binary files /dev/null and b/legacy/evas/data/notepad.ttf differ diff --git a/legacy/evas/data/panel.png b/legacy/evas/data/panel.png new file mode 100644 index 0000000000..de03d44c87 Binary files /dev/null and b/legacy/evas/data/panel.png differ diff --git a/legacy/evas/data/panel_shadow.png b/legacy/evas/data/panel_shadow.png new file mode 100644 index 0000000000..97b5a8c407 Binary files /dev/null and b/legacy/evas/data/panel_shadow.png differ diff --git a/legacy/evas/data/panel_top.png b/legacy/evas/data/panel_top.png new file mode 100644 index 0000000000..cdb4078840 Binary files /dev/null and b/legacy/evas/data/panel_top.png differ diff --git a/legacy/evas/data/sphere.png b/legacy/evas/data/sphere.png new file mode 100644 index 0000000000..bde2d542c1 Binary files /dev/null and b/legacy/evas/data/sphere.png differ diff --git a/legacy/evas/data/sphere_shadow.png b/legacy/evas/data/sphere_shadow.png new file mode 100644 index 0000000000..70a0429ced Binary files /dev/null and b/legacy/evas/data/sphere_shadow.png differ diff --git a/legacy/evas/data/t1.png b/legacy/evas/data/t1.png new file mode 100644 index 0000000000..f818de332f Binary files /dev/null and b/legacy/evas/data/t1.png differ diff --git a/legacy/evas/data/t2.png b/legacy/evas/data/t2.png new file mode 100644 index 0000000000..9f12761bb7 Binary files /dev/null and b/legacy/evas/data/t2.png differ diff --git a/legacy/evas/data/test_pattern.png b/legacy/evas/data/test_pattern.png new file mode 100644 index 0000000000..6b1f7210bc Binary files /dev/null and b/legacy/evas/data/test_pattern.png differ 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 0000000000..886ea0a1fc Binary files /dev/null and b/legacy/evas/doc/img/evas.png differ diff --git a/legacy/evas/doc/img/evas.xcf b/legacy/evas/doc/img/evas.xcf new file mode 100644 index 0000000000..f869c2236a Binary files /dev/null and b/legacy/evas/doc/img/evas.xcf differ diff --git a/legacy/evas/doc/img/evas_big.eps b/legacy/evas/doc/img/evas_big.eps new file mode 100644 index 0000000000..67f03a036b --- /dev/null +++ b/legacy/evas/doc/img/evas_big.eps @@ -0,0 +1,5170 @@ +%!PS-Adobe-3.0 +%%Creator: Print plug-in V4.0.5 - 15 Jun 2001 for GIMP +%%CreationDate: Wed Oct 23 17:57:52 2002 +%%Copyright: 1997-2000 by Michael Sweet (mike@easysw.com) and Robert Krawitz (rlk@alum.mit.edu) +%%BoundingBox: 18 145 577 698 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%Orientation: Portrait +%%EndComments +%%Page: 1 +gsave +18 698 translate +1.397 1.396 scale +/picture 400 string def +400 396 8 +[ 1 0 0 -1 0 1 ] +{currentfile picture readhexstring pop} image +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFE +FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFD +FDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFDFDFDFDFDFD +FDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFDFDFDFEFDFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFEFEFEFEFDFBFBFBFBF9F8F8F7F7F8F8F8FAFBFBFBFBFB +FBFCFCFCFCFCFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFCFBFBF9F8F5F3F5F3F0F2F0F0F0F2F3 +F4F6F8FAFBFBFBFBFBFBFCFCFCFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFCFBFAF9F7F7F8F5F3F3F2F2EFEFED +ECECE9E8EDF0F2F6F9FAFAFBFBFBFBFBFCFCFCFDFDFDFDFDFDFEFEFEFEFEFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFDFCFBFBFBFAF9F8F7F7F7F5F5F7F5F3F4F5F3F3F4F3F2F0F1F0 +EFEFECEAEAE8E6E8E8E8EBF1F6FAFAFAFAFBFBFBFBFCFCFCFDFDFDFDFDFEFEFE +FEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFE +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFCFAFAFA +F9F7F6F5F5F4F3F2F1F0F0F0F0EFEFEEEDEDEDEDEDEDEEEDEDEEEFEEEEEFF0EF +EEEFEEEDEDEBEAEAEBE8E4E5E4E5E9EFF4F8F9FAFAFAFBFBFBFBFCFCFDFDFDFD +FDFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFCFAF9F8F7F5F5F3F2F2F0 +EFEFEFEEEDEDEBEAE9E8E8E8E8E7E6E6E5E5E5E5E5E5E5E5E6E6E6E6E7E7E8E9 +E8EAEAEAEBEBEDEBEDEBE9E9E8E6E6E6E3E4E8EFF5F8F9FAFAFAFBFBFBFBFCFC +FDFDFDFDFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFBF8F7F7F6F3F3F1F1F0F0EFEFEEEEED +EBEBEAEAE9E8E8E7E6E5E4E3E3E2E1E1E1E0E1DFDFDFE0E0E0E1DFE0E0E1E1E1 +E2E3E4E5E6E7E8E8EAEBEBECEBEBEAEAE8E6E6E3E4E6EBF1F7F8F9FAFAFAFBFB +FBFCFCFDFDFDFDFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFCFAF7F7F5F4F4F2F2F1F0F0F0EFEFEDEDECEBEBEA +EAE9E8E8E7E6E6E5E5E3E2E1E1E1E0E0DFDFDFDEDDDDDDDDDDDCDBDBDCDCDBDD +DDDEDFDFDFE1E1E2E3E6E8E8E9EBEBEDECEBEBE9E8E8E5E4E5EAF0F6F8F8F9FA +FAFAFBFBFBFCFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFDFAF8F7F7F5F4F3F2F3F2F0F0F0EFEFEFEEEDECEBEBEAEAE9 +E8E8E7E6E5E4E3E3E2E1E0E1E0DFDEDEDDDDDDDCDCDBDBD9D9D9D9D9DAD9D9D9 +D9DADADADBDBDDDFDFDFE1E1E3E6E6E8E9EBEDECEDEBEAEAE9E7E5E5E8EFF5F7 +F8F8F9FAFAFBFBFBFCFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFBFAFAF8F7F6F5F5F4F2F2F2F2F1F0F0EFEFEFEEEDEDECECEBEBEAE8E8 +E6E6E5E4E2E1E1E0DFDEDDDEDCDBDBD9D9D8D7D7D7D7D5D5D5D4D5D5D5D5D6D6 +D6D6D6D6D7D8D9D9DADBDCDDDEE1E1E3E5E6E8EAEDEDEDEDEFEDEAE8E8E5E4EA +EFF5F7F8F8F9FAFAFBFBFBFCFDFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB +F9F9F8F7F6F7F5F4F4F3F3F2F2F2F1F1F0F0F0EFEFEEEEEDEDEBEAEAE9E7E6E5 +E5E3E2E1DFDFDEDDDBD9D7D6D5D4D3D2D1CFCFCECDCBCBCBCACACACACCCCCCCD +CDCECED0D1D1D1D3D4D5D7D8D9DBDCDCDFE0E1E4E6E8EAEBEEEFEDEFEFEBE8E8 +E6E5EBF2F7F7F8F8F9FAFAFBFBFBFCFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFAF9F7 +F7F7F6F5F5F5F3F3F3F3F3F2F2F2F1F1F0F0EFEFEEEDECEBEBE8E8E7E6E5E3E3 +E1DFDDDAD7D6D3D1CFCCCAC8C6C2C1BFBEBCBBBAB8B6B5B5B3B3B3B3B5B6B6B8 +B9BABBBFC0C1C4C7C8C9CCCFD0D3D4D6D9DBDBDFE0E1E3E6E8EBEBEDEFEEEEED +EAEAE7E7E7EEF5F6F7F8F8F9FAFAFBFBFCFDFDFDFDFEFEFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFBFAF9F7F7F7F5 +F5F5F4F4F4F4F3F3F3F3F3F2F2F2F1F0F0EFEEEDEBEAEAE8E7E5E3E3E1DDDBD8 +D6D2CFCBC7C4BFBBB7B3AFAAA7A29F9D9A98969290908F8F90908F9191929194 +95989A9C9EA1A5A9ADB2B6B9BCC0C4C8CCCFD2D7D7DBDDDFE3E5E7E9ECEEEFF0 +EFF0EDEBEAE8E6EBF2F5F7F7F8F8FAFAFBFBFBFCFDFDFDFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFAF8F8F7F5F5F5F5F5 +F4F4F4F4F4F3F3F3F3F3F2F2F2F0F0EFEDECEBEAE9E6E6E3DFDCD9D6D2CDC8C6 +C0B9B2ADA9A19C958F88847E7975746F6E6C666564646365656567676A686868 +6C707072757A7C82878B90939CA1A5ACB0B7BBC1C6CBCFD3D7DBDEE1E5E8EBED +EFF2F0F0F1EDEAE8E8EAF0F4F6F7F7F8F9FAFAFBFBFCFDFDFDFDFEFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFDFBF8F8F7F6F6F5F5F5F5F5F5 +F4F4F4F4F4F3F3F3F3F2F2F0F0EEEDECEAE8E8E5E1DFDBD6D1CCC7BFB7B0A7A0 +998E877F786F68645D5954504C4C4B47474742444544525F615E5E6162636256 +52535453575C5D63666B6D6D76787C838890979EA5ADB3BBC2C8CED3D8DDE0E5 +E8EBEEF0F4F4F0EFEDECEBEAEEF3F5F6F7F8F8FAFAFBFBFCFCFDFDFDFEFEFEFE +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFDFBF9F9F8F7F7F6F5F5F5F5F5F5F5F5 +F4F4F4F4F3F3F3F3F2F0EFEFEDEBE9E6E3DFDCD7D2CBC4BCB1AAA0978A82776C +6559525048413E3C4253667A878F9CA0ACB0BCC0C0C1C1C2C3C3C3C4C4C4C4C4 +C4C4C5C1B8B3AAA49D948E7C6E625E686C71777A858B9199A0AAB2BBC1C8CFD6 +DBE0E5EAEFF2F2F3F3F2F2EDEBEAEEF2F5F6F7F8F8F9FAFAFBFBFCFDFDFDFEFE +FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFEFDFAFAF8F7F7F7F6F6F6F5F5F5F5F5F5F5F5 +F4F4F4F3F3F2F1F0EFEEEBEAE8E4DFDAD4CEC6BBB1A79C9082786C61544C453C +3A3952738597A5B3BABEBEBEBEBEBFBFBFBFBFBFC0C0C0C1C1C1C1C1C2C2C3C3 +C4C4C4C5C5C6C6C6C7C8C8C9C9C6BFB6AB9D8D766E6F7379818A929AA2ADB5BF +C8CFD5DCE4E9EDEFF3F5F8F4F2EFECEBEDF2F4F5F7F7F8F9FAFAFBFBFCFDFDFD +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFF +FFFFFFFFFFFFFFFFFFFFFFFEFCFAFAF9F8F7F7F7F7F6F6F6F6F5F5F5F5F5F5F5 +F4F3F2F2F0F0EFECEAE7E3DFDAD2CAC1B6AA9E9084776C5D50483A3044647D95 +A8B8BCBCBCBCBCBCBCBCBCBCBCBDBDBDBEBEBEBFBFBFBFBFC0C0C1C1C1C1C2C2 +C3C3C4C4C4C4C5C5C6C6C6C7C8C8C9C9CACBCBCCC8BBAC9A89757477818A909A +A5AFB9C6CED6DEE6EBF0F7F7F7F5F3F1EDEBEEF2F4F5F6F7F8F9FAFAFBFBFCFD +FDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF +FFFFFFFFFFFFFFFFFFFEFCFAF9F8F8F7F7F7F7F7F7F6F6F6F6F5F5F5F5F5F5F3 +F2F2F0F0EDEBEAE5E0DBD3C9BEB1A5968777685850443A354F7391ABB9BAB9B9 +B9BABABABABABBBBBBBCBCBCBCBCBDBDBDBEBEBFBFBFBFC0C0C1C1C1C1C1C2C2 +C3C3C4C4C4C4C5C5C6C6C6C6C7C7C8C8C9C9CACBCBCCCDCDCECEC0AD95847579 +868F97A6ADB9C6D1D9E1E9EFF2F7F9F7F3F1EDEDEEF2F3F5F6F7F8F9FAFAFBFB +FCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFEFBFAFAF8F8F7F7F7F7F7F7F7F7F6F6F6F6F5F5F5F4F3F3F1 +F1EFECEAE6E2DBD3C9BFB1A1907F70624F42392E527998B0B9B9B9B9B9B9B9B9 +B9B9B9B9BABABABBBBBCBCBCBDBDBEBEBFBFBFBFC0C0C1C1C1C1C2C2C3C3C4C4 +C4C4C4C5C5C5C6C6C6C6C6C7C7C8C8C8C8C9C9CACBCBCBCCCDCDCECFCFD0C8B9 +A3897C848C96A7B0BCC7D3DCE5EDF3F7F8F7F3F1EDEDEDF2F3F5F6F7F8F9FAFA +FBFBFCFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFDFBFAF8F8F8F8F7F7F7F7F7F7F7F7F7F6F6F6F6F5F5F3F2F2F0EE +ECE9E3DED7CDBFB4A390806E5B4A3A3234668FADB7B7B7B7B7B7B7B7B8B8B8B9 +B9B9B9BABABBBCBCBCBDBDBEBFBFBFC0C0C1C1C1C2C2C3C4C4C4C4C5C5C5C6C6 +C6C6C6C7C7C7C8C8C8C8C8C8C8C8C9C9C9CACACACBCBCBCBCCCDCDCDCECFCFD0 +D1D2C8B39C878A8F98A5B2C0CDD8E5ECF2F6F7F7F3F1EDEAEEF2F3F5F6F7F8F9 +FAFAFBFCFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFEFBFAF9F9F8F8F8F8F8F7F7F7F7F7F7F7F7F6F6F6F5F3F2F2F0EEEBE6 +E1DACFC4B7A8937F6C58473423477A9EB5B6B6B6B6B6B6B6B6B7B7B8B8B9B9B9 +BABABBBCBCBCBDBEBFBFC0C0C1C1C2C3C3C4C4C4C5C6C6C6C7C7C8C8C8C8C8C9 +C9C9CACACACACBCBCBCBCBCBCBCBCBCBCBCBCBCCCCCCCCCDCDCDCDCDCECECFCF +D0D1D1D2D3D1C1AB8F8A94A1ADBCC8D3E2EBF2F7F7F6F2EDEBEBEFF2F3F5F6F7 +F8F9FAFAFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFEFDFBFAF9F8F8F8F8F8F8F8F7F7F7F7F7F7F7F7F6F5F4F2F1EFEDEAE5DFD7 +CBBCAC9A86715E473523447BA3B6B6B6B6B6B6B6B6B6B6B7B7B8B8B9B9BABABB +BCBCBDBEBFBFC0C1C1C2C3C4C4C5C6C6C6C7C8C8C8C9CACACBCBCBCCCCCDCDCD +CDCDCDCDCECECECECECECECECECECECECECECECECECECECECECECECFCFCFCFCF +CFD0D1D1D2D3D3D4D3C8B098929EA8B6C4CED9E5ECF1F3F3F1EDE8E9F0F2F3F5 +F6F7F8F9FAFBFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFE +FCFBFAF9F9F9F8F8F8F8F8F8F7F7F7F7F7F7F7F7F5F4F3F1F0EEEAE4DCD2C7B7 +A49079634C3C283C749DB4B5B5B5B5B5B5B5B6B6B6B6B7B8B9B9BABBBCBCBDBE +BFBFC0C1C1C3C4C4C5C6C6C7C8C8C9CACBCBCCCDCDCECECFCFCFD0D0D1D1D1D1 +D1D1D1D2D2D2D2D2D2D2D2D2D2D2D1D1D1D1D1D1D1D1D1D1D0D0D0D0D0D0D0D0 +D1D1D1D1D1D2D3D3D4D5D5D6C8AF9898A5AEB9C8D3E2EAF0F2EFEBE6E0E9F0F2 +F4F5F6F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFDFB +FAFAFAF9F9F9F8F8F8F8F8F8F8F7F7F7F7F7F6F5F3F2EFECEAE3DBD1C2B39F86 +6F57422E286299B3B4B4B4B4B4B4B5B5B6B6B6B7B8B9B9BABBBCBCBDBEBFC0C1 +C2C3C4C5C6C6C8C8C9CACBCCCDCDCECFCFD0D1D1D2D3D3D3D4D4D5D5D5D5D6D6 +D6D6D7D7D7D7D7D7D7D7D7D6D6D6D6D5D5D5D5D5D5D4D4D3D3D3D3D3D3D2D2D2 +D2D2D2D2D2D2D3D3D3D4D5D5D6D7D6C3AC97A2AFBAC7D4DFE7E9EBEAE3E2E2EB +F2F3F4F5F7F8F8FAFAFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFDFCFBFB +FAFAFAF9F9F9F8F8F8F8F8F8F7F7F7F7F6F5F3F2EFEDEAE2D9CDBDAC987F6448 +37234182AAB3B3B3B3B3B4B4B4B5B6B6B6B7B8B9B9BBBCBCBEBFBFC1C1C3C4C5 +C6C7C8C9CACBCCCDCECFD0D1D1D2D3D3D5D5D5D6D7D7D8D8D9D9D9DADADBDBDB +DBDBDBDBDBDBDBDBDBDBDBDBDBDBDADADAD9D9D9D9D8D8D7D7D7D7D6D5D5D5D5 +D5D4D4D4D3D3D3D4D4D4D5D5D5D6D7D7D8D3B9A4A2ACBAC6D1DBE6EBE8E5E1DD +E5EFF2F3F5F6F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFEFCFBFBFAFA +FAFAFAF9F9F9F8F8F8F8F8F8F7F7F7F5F3F2F0EDEAE2D9CDBCA991785F412312 +649AB3B3B3B3B3B3B3B4B4B5B6B6B7B8B9B9BABCBCBEBFC0C1C2C4C4C6C7C8C9 +CBCBCDCECFD0D1D2D3D4D5D5D7D7D8D9D9DADBDBDCDDDDDDDEDEDFDFDFDFE0E0 +E0E0E0E1E1E1E1E0E0E0E0E0DFDFDFDFDFDEDEDDDDDDDCDCDBDBDADAD9D9D9D8 +D7D7D7D7D6D6D5D5D5D5D5D5D5D6D6D7D7D8D9D9C9B09FA9B3C2D0DDE2E5E6E1 +DDDEE8F1F2F3F5F6F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFDFCFBFAFAFAFA +FAFAFAF9F9F9F8F8F8F8F8F8F7F5F4F2F1EFEAE3D9CDBBA690755841262372A7 +B3B3B3B3B3B3B3B4B4B5B6B6B7B8B9BABBBCBEBFC0C1C2C4C5C6C8C9CBCBCDCE +CFD1D1D3D4D5D6D7D8D9DADBDBDDDDDEDFDFE0E1E1E1E2E3E3E3E3E4E4E5E5E5 +E5E5E5E5E5E5E5E5E5E5E5E5E4E4E4E3E3E3E3E2E1E1E1E0DFDFDFDEDDDDDCDC +DBDBDAD9D9D9D8D8D7D7D7D7D7D7D7D7D7D8D9D9DADBD3B6A1A8B3BEC9D6DFE0 +DFE0D8DDEDF2F3F4F5F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFEFCFBFAFAFAFAFAFA +FAFAF9F9F9F9F8F8F8F8F8F7F5F4F2EFECE5DDD0C0A98D7057371C3780ADB2B2 +B2B2B3B3B3B3B4B5B6B6B7B9B9BBBCBDBFC0C1C3C4C5C6C8CACBCDCECFD1D2D3 +D4D5D7D8D9DADBDCDDDEDFE0E1E1E2E3E3E4E5E5E6E6E6E7E8E8E8E8E8E9E9E9 +E9EAEAEAEAEAEAEAE9E9E9E9E8E8E8E8E8E7E7E6E6E6E5E5E4E3E3E3E2E1E1E0 +DFDFDEDDDDDCDBDBDADAD9D9D9D8D8D8D8D8D9D9D9DADBDBD8BFA6A9B4BECBD5 +DDE0DDD6D5E6F0F2F3F5F6F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFEFCFBFAFAFAFAFAFAFAFA +FAF9F9F9F9F8F8F8F8F7F6F4F3F0ECE6DDD0C0AB927154351C458CB0B2B2B2B2 +B2B3B3B3B4B5B6B7B8B9BABCBCBEBFC1C2C4C5C7C8CACBCDCFD0D1D3D4D5D7D8 +D9DBDCDDDEDFE0E1E2E3E4E5E5E6E7E8E8E8E9EAEAEAEBEBEBECECEDEDEDEDED +EDEDEDEDEDEDEDEDEDEDEDEDEDECECECEBEBEBEAEAEAE9E9E8E8E7E6E6E5E5E4 +E3E3E2E1E1DFDFDEDDDDDCDBDBDBDADADAD9D9D9DADADBDBDBDDDBC7ABA9B9C3 +D1D8DBD7D5D3DDEFF1F3F4F5F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFEFCFBFAFAFAFAFAFAFAFAFA +FAF9F9F9F9F8F8F8F6F5F3F0EDE8DFD3C4AC93775732194490B0B1B1B1B2B2B3 +B3B3B4B5B6B7B8B9BBBCBDBFC0C2C4C5C6C8CACBCDCFD0D2D3D5D6D8D9DBDCDD +DFE0E1E2E3E4E5E6E7E8E8E9EAEAEBEBECEDEDEEEEEFEFEFEFF0F0F0F0F0F0F1 +F1F1F1F1F1F1F1F1F1F0F0F0F0F0F0F0EFEFEFEFEEEDEDEDECEBEBEBEAEAE9E8 +E7E6E6E5E5E4E3E2E1E1E0DFDEDDDDDDDCDBDBDBDBDBDBDBDBDCDDDDDDC8ADAB +B5C1CDD3D5D7D2D2E9F0F2F3F5F6F7F8F9FAFBFBFDFDFDFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFEFCFBFAFAFAFAFAFAFAFAFAFAFA +FAF9F9F9F9F8F8F6F5F3EFEAE2D6C5B2977A583A193785B0B1B1B1B1B2B2B3B3 +B4B5B6B7B9B9BBBCBEBFC1C3C4C6C8C9CBCDCFD0D2D3D5D7D9DADBDDDEDFE1E2 +E3E5E6E6E8E8EAEAEBECEDEDEEEFEFEFF0F0F1F1F2F2F2F2F3F3F3F3F3F3F4F4 +F4F4F4F4F4F4F4F4F4F4F3F3F3F3F3F3F3F2F2F2F2F1F0F0F0EFEFEFEEEDEDEC +EBEAEAE9E8E8E6E6E5E4E3E3E2E1E0DFDFDEDDDDDDDDDCDCDCDDDDDDDEDFDEC9 +ADAFB8C1CDD5D1CDCEDFEFF2F3F4F5F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFEFCFBFAFAFAFAFAFAFAFAFAFAFAFAFA +F9F9F9F9F8F7F5F3F2EDE6DBCBB69E7E5F3F163586AFB0B0B1B1B1B2B3B3B4B5 +B6B7B9BABCBDBFC0C1C4C5C7C8CBCDCED0D2D3D5D7D9DADCDDDFE1E2E3E5E6E7 +E8E9EAEBEBEDEDEEEFF0F0F1F1F2F2F3F3F3F4F4F5F5F5F5F5F6F6F6F7F7F7F7 +F7F7F7F7F7F7F7F7F7F7F7F7F6F6F6F6F5F5F5F5F4F4F3F3F3F2F2F2F1F0F0EF +EFEEEDEDECEBEAEAE9E8E7E6E5E5E3E3E2E1E1E0DFDFDEDEDDDDDDDDDEDEDFDF +DEC6ABB0BAC6CDCDD0CCD1EBF1F2F3F5F6F7F8FAFAFBFCFDFDFEFEFEFEFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFEFCFBFAFAFAFAFAFAFAFAFAFAFAFAFAF9 +F9F9F9F8F5F4F1EEE9DFD0BEA88B6D48231E7CAEB0B0B0B1B1B2B3B3B4B5B6B7 +B9BABCBDBFC1C2C4C6C8CACCCDCFD1D3D5D7D9DADCDEDFE1E3E4E5E6E8E9EAEB +ECEDEEEFEFF0F1F2F2F3F3F4F4F5F5F5F6F7F7F7F7F7F8F8F8F8F8F8F8F9F9F9 +F9F9F9F9F9F9F9F9F9F9F9F8F8F8F8F8F8F8F7F7F7F7F7F6F6F5F5F5F4F3F3F2 +F2F2F1F0EFEFEEEDECEBEBEAE9E8E7E6E5E5E3E3E2E1E1E0DFDFDFDFDFDFDFDF +E0E1DFC4ADB2BCC4CBCBC8C9E6F0F2F3F5F6F7F8F9FAFBFCFDFDFDFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFFFFFFFFFFFFFFFFFFFEFBFBFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9 +F9F8F7F5F3F0ECE3D9C6AD9271522A0E66A8B0B0B0B0B1B2B2B3B4B5B6B7B9BA +BCBDBFC1C3C5C6C8CBCDCFD1D3D5D6D8DADCDDDFE1E3E4E6E7E8EAEBEBEDEEEF +F0F0F1F2F3F3F4F5F5F6F6F7F7F7F8F8F8F8F9F9F9FAFAFAFAFAFAFAFAFAFBFB +FBFBFBFBFBFBFBFBFBFBFAFAFAFAFAFAFAFAFAF9F9F9F8F8F8F8F7F7F7F6F6F5 +F5F4F3F3F2F2F1F0F0EFEEEDECEBEAEAE9E8E7E6E5E4E3E3E2E1E1E0E0E0E0E0 +E0E1E1E1DBBCAFB8BFC5C8C8C5DCF0F1F3F4F5F7F8F9FAFBFBFCFDFDFEFEFEFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFFFFFFFFFFFFFFFFFFFDFBFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9F9 +F8F5F4F2EEE9DECFBA9E7E5C34094C9BB0B0B0B0B0B1B2B3B3B5B6B7B9BABCBD +BFC1C3C5C7C9CBCDCFD1D3D5D7D9DBDDDFE1E3E4E6E7E8EAEBECEDEFEFF0F1F2 +F3F3F4F5F5F6F7F7F8F8F8F9F9FAFAFAFAFAFBFBFBFBFBFBFBFBFBFCFCFCFCFC +FCFCFCFCFCFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFAFAFAFAFAF9F9F8F8F8 +F7F7F7F6F5F5F4F3F3F2F1F0F0EFEEEDECEBEAE9E8E7E6E5E5E4E3E3E2E1E1E1 +E1E1E1E1E2E3D5B5B3BAC2C5C2C1D2EDF1F2F3F5F7F8F8FAFBFBFCFDFDFEFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFFFFFFFFFFFFFFFFFEFDFBFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9F9F8F7 +F5F3F1ECE4D7C4A98A674119308AAFB0B0B0B0B1B2B3B3B4B6B7B9BABCBDBFC1 +C4C5C7C9CCCED0D2D4D6D8DADCDEE0E2E4E5E7E8EAEBEDEEEFF0F1F2F3F3F4F5 +F6F7F7F7F8F8F9F9FAFAFAFBFBFBFBFBFBFCFCFCFCFDFDFDFDFDFDFDFDFDFDFD +FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFCFCFCFCFBFBFBFBFBFBFAFAFA +FAF9F8F8F8F7F7F6F5F5F4F3F2F2F1F0EFEEEDECEBEAEAE8E8E6E6E5E4E3E3E3 +E2E2E2E2E2E3E3E3CCB0B4BCC1C0BEC7EAF0F2F3F5F6F7F8FAFAFBFCFDFDFEFE +FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FFFFFFFFFFFFFFFFFFFDFBFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9F9F9F9F8F7F5 +F3EFE9DECFB9997954300968A9B0B0B0B0B0B1B2B3B4B5B6B8B9BCBDBFC1C3C5 +C8CACCCED0D3D5D7D9DBDDDFE1E3E5E6E8EAEBECEEEFF0F1F2F3F4F5F5F6F7F7 +F8F8F9FAFAFAFBFBFBFBFBFCFCFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFCFCFCFBFB +FBFBFAFAFAF9F8F8F8F7F7F6F5F5F3F3F2F1F0EFEFEDEDEBEAEAE8E8E7E6E5E5 +E4E3E3E3E3E3E3E4E5E0BEB0B8BFBFBEC0E1F0F2F3F5F6F7F8F9FAFBFCFDFDFD +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFF +FFFFFFFFFFFFFFFEFDFBFAF9F9F9FAFAFAFAFAFAFAFAF9F9F9F9F9F9F8F5F4F2 +ECE4D9C5AB8C663E193A95AFB0B0B0B0B1B2B3B3B5B6B8B9BBBDBFC1C3C5C7CA +CCCED1D3D5D7D9DCDEE0E2E4E6E7E9EBECEDEFF0F1F2F3F4F5F6F7F7F8F8F9FA +FAFAFBFBFBFBFCFCFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFD +FCFCFCFBFBFBFAFAFAF9F8F8F8F7F6F5F5F4F3F2F2F0F0EFEDEDEBEBEAE8E8E7 +E6E6E5E5E4E4E4E4E5E5E5D3B1AFB6BABCBCDBF0F2F3F4F5F7F8F9FAFBFBFCFD +FDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFF +FFFFFFFFFFFFFDFBFAF9F9F9F9F9F9FAFAFAFAFAF9F9F9F9F9F9F8F7F5F3F0EA +DED0BA9D79572C1672ABAFAFB0B0B0B1B2B3B4B6B7B9BBBCBFC1C3C5C7CACCCE +D1D3D5D7DADCDFE1E3E5E6E8EAEBEDEEF0F1F2F3F4F5F6F7F7F8F8F9FAFAFBFB +FBFCFCFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFD +FDFDFDFDFDFCFCFBFBFBFAFAFAF9F8F8F7F7F6F5F4F3F2F2F0EFEFEDEDEBEAEA +E8E8E7E6E6E5E5E5E5E5E5E6E3C2ADB1B6B9B7D3EFF1F3F4F5F7F8F9FAFBFBFC +FDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFF +FFFFFFFFFFFCFAF9F8F8F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F8F6F5F3EFE7DB +C8B08E663F19429CAFAFAFB0B0B1B2B3B4B5B6B9BABCBEC0C2C4C7C9CCCED1D3 +D5D8DADDDFE1E3E5E7E9EAECEDEFF0F2F3F3F5F6F7F7F8F9FAFAFAFBFBFBFCFD +FDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFE +FEFEFEFDFDFDFDFDFDFCFCFBFBFBFAFAF9F8F8F7F7F5F5F4F3F2F1F0EFEEEDEC +EBEAEAE8E8E7E6E6E6E6E6E6E6E7D9B5AEB3B3B3C9EFF1F2F4F5F7F8F9FAFBFB +FCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFF +FFFFFFFEFCFAF8F8F8F8F8F9F9F9F9F9F9F9F9F9F9F9F8F8F8F5F4F1ECE3D5C1 +A27D5628006DACAFAFB0B0B0B1B2B3B5B6B8B9BCBDBFC1C4C6C9CBCED0D3D5D8 +DADDDFE1E3E5E7E9EBEDEEF0F1F2F3F4F5F7F7F8F8FAFAFAFBFBFCFCFDFDFDFD +FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFEFEFEFEFEFEFDFDFDFDFDFCFCFBFBFBFAFAF9F8F8F7F7F5F5F3F3F2F1F0EF +EEEDECEBEAE9E8E8E8E7E7E7E7E7E8E5C2AEB0B2B0C1ECF1F2F3F5F7F8F8FAFB +FBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFF +FFFFFDFAFAF8F8F8F8F8F8F8F8F9F9F9F9F9F8F8F8F8F8F8F5F3F0EADECFB79A +7041192E91AFAFAFB0B0B0B2B3B4B6B7B9BBBCBFC1C4C6C8CBCDD0D3D5D7DADD +DFE1E3E6E8EAEBEDEFF0F1F3F4F5F6F7F8F8F9FAFAFBFBFCFCFDFDFDFDFEFEFE +FEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFEFEFEFEFEFEFDFDFDFDFCFCFBFBFBFAFAF9F8F8F7F6F5F4F3F2F2 +F0EFEFEDEDEBEBEAE9E8E8E8E8E8E8E8E8D5AFAFB0B0B9E8F1F2F3F5F6F7F8FA +FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFF +FFFCFAF8F7F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F6F5F2EFE8DAC7AE8B63 +39005BA7AFAFAFB0B0B1B2B3B5B6B8BABCBEC0C3C5C8CACDCFD2D5D7DADCDFE1 +E3E6E8EAEBEDEFF0F2F3F4F5F7F7F8F9FAFAFBFBFCFCFDFDFDFDFEFEFEFEFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFEFEFEFEFEFDFDFDFDFCFCFBFBFAFAFAF8F8F7F7F5F5F3 +F3F2F1F0EFEEEDECEBEAEAEAE9E9E8E9E9EAE2B9A9A9ACB6E8F1F2F3F5F6F7F8 +FAFAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF +FBF8F7F7F7F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F7F5F5F2EDE4D6C1A37F5428 +1982AEAEAFAFB0B0B1B3B4B6B7B9BBBDBFC1C4C6C9CCCFD1D4D7D9DCDFE1E3E5 +E8EAEBEDEFF0F2F3F5F5F7F8F8F9FAFBFBFBFCFDFDFDFDFEFEFEFEFEFEFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFDFCFCFBFBFAFAF9F8F8F7F6 +F5F4F3F2F1F0EFEFEDEDEBEBEAEAEAEAEAEAEAE9CBA5A7AAB1E2F1F2F3F5F6F7 +F8FAFAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFA +F8F7F7F7F7F7F8F8F8F8F8F8F8F8F8F8F8F8F8F7F5F3F0EBE2D1BA9B774A1234 +9AAEAEAFAFB0B1B2B3B4B6B8B9BCBEC1C3C6C8CBCDD0D3D6D9DBDEE1E3E5E7EA +EBEDEFF0F2F3F5F6F7F8F8FAFAFBFBFCFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFDFCFBFBFBFAFAF8F8 +F7F7F5F5F3F2F2F0F0EFEEEDECEBEBEBEAEAEAEBEBDBADA9A7AAE2F2F3F4F5F7 +F7F8FAFAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFDFAF8 +F7F7F7F7F7F7F7F7F7F8F8F8F8F8F8F8F8F7F7F4F3F0EADECEB794683E0054A6 +AEAEAFB0B0B1B2B3B5B7B9BBBDBFC1C4C7CACDCFD2D5D7DBDDE0E3E5E7E9EBED +EFF0F2F3F5F6F7F8F9FAFAFBFBFCFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFCFCFBFBFAFA +F9F8F7F7F5F5F3F3F2F1F0EFEEEDEDECEBEBEBEBEBEBE5B6A6A5ACE2F2F3F4F5 +F7F8F8FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFDFAF7F6 +F6F6F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F4F2EFE8DBC9AE895C2A0E71ADAE +AEAFB0B0B1B3B4B6B7B9BCBEC1C3C6C8CBCED1D4D7D9DCDFE1E4E6E9EBEDEFF0 +F2F3F5F6F7F8F9FAFAFBFBFCFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFDFDFDFDFCFBFB +FAFAF9F8F7F7F6F5F4F3F2F1F0EFEFEEEDEDECECECECECEAC4A3A5A9DCF2F3F4 +F5F7F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFBF8F7F5F5 +F6F6F6F7F7F7F7F7F7F7F7F7F7F7F7F7F6F3F1EDE5D9C4A785561C1E8DAEAEAE +AFB0B0B2B3B5B6B8BABCBFC1C4C7CACDCFD3D5D8DBDEE1E3E6E8EAECEEF0F2F3 +F5F6F7F8F9FAFBFBFCFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFDFDFDFC +FBFBFAFAF9F8F8F7F6F5F4F3F2F1F0EFEFEEEDEDEDEDEDEDEDD3A4A5A6DBF2F3 +F4F5F7F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFBF8F7F5F5F5 +F6F6F6F6F7F7F7F7F7F7F7F7F7F7F7F6F3F0ECE5D7C1A17B5216329DAEAEAFAF +B0B1B2B3B5B7B9BBBEC0C3C6C8CBCED1D4D7DADDDFE3E5E7EAEBEEF0F1F3F4F6 +F7F8F9FAFBFBFCFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFDFD +FDFCFBFBFBFAF9F8F8F7F6F5F4F3F2F2F0F0EFEFEEEEEDEDEDEEDFACA5A9E3F2 +F3F5F6F7F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFEF9F7F7F5F5F5F5 +F5F6F6F6F6F6F6F6F6F6F6F6F6F5F4F3F0EBE3D6BF9F774B1945A6AEAEAFB0B0 +B1B3B4B6B7B9BCBFC1C4C6C9CDCFD3D5D9DBDEE1E4E6E9EBEDEFF1F2F4F5F7F8 +F9FAFAFBFCFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFE +FDFDFDFCFBFBFBFAF9F8F8F7F6F5F4F3F2F2F0F0EFEFEFEFEEEFEFE6B1A5AAE3 +F3F4F5F6F7F8F9FAFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFEF9F7F6F4F5F5F5F5 +F5F5F5F5F5F5F6F6F6F5F5F5F5F3F2F0EBE1D2B9966C410058AAADAEAFB0B0B1 +B3B4B6B8BABCBFC2C5C8CBCDD1D4D7DADDE0E3E5E8EAECEFF0F2F3F5F7F8F8FA +FAFBFCFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFEFDFDFDFCFCFBFBFAF9F8F8F7F6F5F4F3F2F2F1F0F0EFEFEFEFEFEABCA8AD +E4F3F4F5F7F7F8F9FAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFEF8F7F6F4F4F5F5F5F5 +F5F5F5F5F5F5F5F5F5F5F5F4F2F2EFEAE0D0B8976A3A006DADADAEAFB0B0B2B3 +B5B6B9BBBDC0C3C6C8CCCFD2D5D8DBDEE1E4E6E9EBEDEFF1F3F5F6F7F8FAFAFB +FBFCFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFEFEFDFDFDFCFBFBFBFAF9F8F8F7F6F5F4F3F2F2F1F0F0F0F0F0F0EFC4A7 +B1EBF3F5F5F7F8F8FAFAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFDF8F6F5F3F4F4F4F4F5F5 +F5F5F5F5F5F5F5F5F5F5F4F2F1EFEADFCFB4906632127DADADAEAFB0B0B2B3B5 +B7B9BCBEC1C4C6CACDD0D3D6D9DDDFE3E5E8EAEDEFF0F2F4F5F7F8F9FAFBFBFC +FDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFEFDFDFDFCFBFBFAFAF9F8F7F7F6F5F4F3F2F2F2F1F0F0F0F0F1CF +A9B4EBF4F5F6F7F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFEF8F6F5F3F3F3F4F4F4F4F4 +F4F4F4F4F4F4F4F4F4F3F2F1EFEADFCFB690642E168DADADAEAFB0B1B2B3B6B7 +B9BCBFC1C4C7CBCED1D4D7DBDEE1E4E6E9EBEDF0F2F3F5F7F8F9FAFBFBFCFDFD +FEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFEFEFDFDFDFCFBFBFAFAF9F8F7F7F6F5F4F3F3F2F2F2F1F1F1F2 +D5ACB8EFF5F5F7F7F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFEF9F5F5F3F3F3F3F3F3F3F3F3 +F3F3F3F3F3F3F3F3F3F1F0EEE9DECDB18A5B26128DADADAEAFB0B1B3B4B6B8BA +BCBFC2C5C8CBCFD2D5D9DBDFE2E5E8EAECEFF0F2F4F6F7F8FAFAFBFCFDFDFDFE +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFEFDFDFDFCFBFBFAFAF9F8F7F7F5F5F4F3F3F2F2F2F2F2 +F2D7ACBFF2F5F6F7F8F8FAFAFBFCFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFF9F5F4F2F3F3F3F3F3F3F3F3F3 +F3F3F3F3F3F3F3F3F1F0EDE8DECDB08A5C261C8DADADAEAFB0B1B3B4B6B8BBBD +C0C3C6C9CCCFD3D6D9DDE0E3E6E8EBEDEFF2F3F5F7F8F9FAFBFBFCFDFDFEFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFEFEFEFDFDFDFCFBFBFAFAF8F8F7F7F5F5F4F3F3F3F2F2 +F2F3DDAFC8F5F5F6F7F8F9FAFAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFEF9F6F3F2F2F2F2F2F2F2F2F3F3F3 +F3F3F3F3F3F3F3F2EFEDE8DECEB18B5F282397ADADAEAFB0B1B3B4B6B9BBBEC1 +C4C6CACDD0D3D7DADDE1E4E6EAECEEF0F2F4F5F7F8FAFAFBFCFDFDFEFEFEFEFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFEFEFEFDFDFCFBFBFAFAF9F8F8F7F6F5F5F4F4F3F3 +F3F3F3E1B2D3F5F6F7F8F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFF9F5F3F2F2F2F2F2F2F2F2F2F2F2F2 +F2F2F2F2F2F2F2EFECE7DDCDB3895B282397ADADAEAFB0B1B3B5B6B9BCBEC1C4 +C7CBCED1D5D8DBDFE2E5E8EAEDEFF1F3F5F6F8F9FAFBFBFCFDFDFEFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFDFCFBFBFAFAF9F8F8F7F6F5F5F5F4 +F4F3F3F4E1B3DCF6F7F7F8F9FAFAFBFCFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFF9F5F3F1F1F1F1F1F2F2F2F2F2F2F2F2 +F2F2F2F2F2F1EFECE6DDCDB58D5C282397ADADAEAFB0B1B3B5B6B9BCBFC1C4C8 +CBCED2D5D9DCDFE3E5E8EBEDF0F2F3F5F7F8FAFAFBFCFDFDFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFDFCFBFBFAFAF9F8F7F7F6F5F5 +F5F5F4F4F5E2B6E4F6F7F8F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFFFFFFFFFFFFF9F5F2F0F0F0F0F0F1F1F1F1F1F1F1F1F1 +F1F1F1F1F0EEEBE8DFCEB490622C1997ADADAEAFB0B1B3B5B7B9BCBFC1C5C8CB +CFD2D6D9DDE0E3E6E9EBEEF0F2F4F6F7F8FAFBFBFCFDFDFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFDFDFCFBFBFAFAF9F8F8F7F7F6 +F6F5F5F5F5F5E3B9EFF7F7F8F9FAFAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFFFFFFFFFFFFF8F5F2F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 +F0F0F0F0EDEBE8E0D1B690622C128BADADAEAFB0B2B3B5B7B9BCBFC2C5C8CCCF +D3D6DADDE1E4E7EAECEFF1F3F5F7F8F9FAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFDFCFBFBFAFAF9F8F8F7 +F7F7F6F6F5F5F6DFC2F3F7F8F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFFFFFFFFFFFAF5F2F0EFEFEFEFF0F0F0F0F0F0F0F0F0F0F0 +F0F0EFEDECE9E1D2BA926530128BADADAEAFB0B2B3B5B7B9BCBFC2C6C8CCD0D3 +D7DBDEE1E5E8EAEDEFF2F3F5F7F8FAFAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFDFCFBFBFAFAF9F8 +F8F7F7F7F7F6F6F7DCCFF7F8F8F9FAFAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFFFFFFFFFFFAF4F1EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF +EFEFEDEBE8E1D3BB9B6A390E8BADADAEAFB0B1B3B5B7B9BCBFC2C6C9CDD0D3D7 +DBDEE2E5E8EBEDF0F2F4F5F7F8FAFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFDFCFBFBFAFAFA +F9F8F8F7F7F7F7F7F7DDDEF8F8F9FAFAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFFFFFFFFFFFCF5F1F0EEEEEEEEEEEEEEEEEEEEEEEFEFEFEFEFEF +EFEDEBE8E2D4BF9C743E007CADADAEAFB0B1B3B5B7B9BCBFC2C6C9CDD1D4D7DB +DFE2E5E8EBEEF0F2F4F6F8F9FAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFDFCFBFBFA +FAF9F9F8F8F8F7F7F7F7D7EBF8F9FAFAFBFBFCFDFDFDFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFFFFFFFFFFFDF5F1EFEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEEEE +EDEBE8E3D7C4A17847006CADADAEAFB0B1B3B5B7B9BCBFC3C6C9CDD1D4D8DBDF +E3E6E9EBEEF0F3F5F7F8F9FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFDFCFBFB +FBFAFAF9F9F8F8F8F8F8F8D5F3F9FAFAFAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFFFFFFFFFFFEF5F1EFEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEC +EAE8E3D9C6A97C4A0E56ACADAEAFB0B1B3B5B7B9BCBFC3C6C9CDD1D5D8DCDFE3 +E6E9ECEFF1F3F5F7F8FAFAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFDFC +FBFBFBFAFAF9F9F8F8F8F8F7DBF8FAFAFAFBFBFCFDFDFDFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFFFFFFFFFFF7F2EEEDECECECECECECECECECECECECECECECECECEBE9 +E8E4DBCAB085521644A9ADAEAFB0B1B3B5B7B9BCBFC2C6C9CDD1D5D8DCDFE3E6 +EAECEFF1F3F5F7F8FAFBFBFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFD +FCFCFBFBFAFAFAFAF9F9F9F9F5E7FAFAFAFBFBFCFDFDFDFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFFFFFFFFFFF7F0EEEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE9E8 +E5DDCDB28C59212EA5ADADAFB0B1B3B4B6B9BCBFC2C6C9CDD1D5D8DCE0E3E6EA +EDEFF2F3F5F7F8FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFD +FDFDFCFBFBFBFAFAFAFAFAFAFAF3F3FAFBFBFBFCFDFDFDFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFFFFFFFFFFF9F1EDECEAEAEAEAEAEAEAEAEAEAEAEAEBEBEBEBEBEBEAE8E5 +DED0B89564301E9CADADAEB0B1B3B4B6B9BCBFC2C6C9CDD1D5D8DCE0E3E6EAED +EFF2F3F5F7F9FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFE +FDFDFDFCFCFBFBFBFAFAFAFAFAFAF6F8FBFBFBFCFDFDFDFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFFFFFFFFFBF2EDEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE7E5E0 +D3C09C70390E8AADADAEB0B0B3B4B6B9BCBFC2C6C9CDD1D5D8DCE0E3E6EAEDEF +F2F4F6F7F9FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE +FEFEFDFDFDFCFCFBFBFBFBFBFAFAFBFBFBFBFBFCFDFDFDFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFFFFFFFFFDF4EFEBEAE9E9E9E9E9E9E9E9E9E9E9E9E9E9E9EAEAE9E6E5E0D6 +C6A87944006EADADAEAFB0B2B4B6B9BCBFC1C5C8CDD1D4D8DCE0E3E6EAEDEFF2 +F4F6F8F9FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFEFEFDFDFDFDFCFCFBFBFBFBFBFBFBFBFBFCFCFDFDFDFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FFFFFFFFFFF5EFEBE8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E6E5E1DACA +B084521952ABADAEAFB0B2B3B6B8BBBEC1C5C8CCD0D4D8DCDFE3E6EAEDEFF2F4 +F6F8F9FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFEFEFEFDFDFDFDFCFCFBFBFBFBFBFBFCFCFCFDFDFDFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FFFFFFFFF7EFEBE9E7E7E7E7E7E7E7E7E7E7E7E7E8E8E8E8E8E8E7E5E2DBCFB6 +905F2630A4ADAEAFB0B1B3B6B8BBBEC1C4C8CCD0D3D7DBDFE3E6EAEDEFF2F4F6 +F8F9FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFEFEFEFDFDFDFDFDFCFCFCFCFCFCFCFCFDFDFDFDFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFF +FFFFFFFAF0EBE8E6E6E6E6E6E6E6E6E6E6E6E6E6E6E7E7E7E7E7E5E3DDD1BD9A +6E351997ADADAFB0B1B3B5B7BABDC1C4C8CBCFD3D7DBDFE3E6EAEDEFF2F4F6F8 +F9FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFEFEFEFDFDFDFDFDFDFDFCFDFDFDFDFDFDFDFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFF +FFFFFCF2EBE9E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E5E3DFD5C4A778 +45007FADADAEB0B1B3B5B7B9BCC0C4C7CBCFD3D7DBDFE3E6EAEDEFF2F4F6F8F9 +FAFBFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFF +FFFFF3ECE8E6E5E5E5E5E5E5E5E5E5E5E5E5E5E5E6E6E6E6E5E3E1D8CAB08756 +1C53ACADAEAFB0B2B4B6B9BCBFC3C6CBCED2D6DADEE2E6E9ECEFF2F4F6F8F9FA +FBFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFF +FFF7EDE8E5E4E4E4E4E4E4E4E4E4E4E5E5E5E5E5E5E5E6E5E3E1DDCFB995622C +2CA3ADAEAFB0B2B3B6B9BCBFC2C6CACDD1D6DADEE2E5E9ECEFF2F3F6F8F9FAFB +FDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFDFDFDFDFEFEFEFEFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFF +FAEFE8E6E4E3E3E3E3E3E3E3E3E3E4E4E4E4E5E5E5E5E5E4E2DDD3C0A0723F00 +8EADADAFB0B1B3B6B8BBBEC1C5C9CDD1D5D9DDE1E5E8EBEFF1F3F5F7F9FAFBFC +FDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFE +F2EAE6E4E3E3E3E3E3E3E3E3E3E3E3E3E4E4E4E5E5E5E4E2E0D7C8AD814B0E68 +ADADAEB0B1B3B5B7BABDC1C4C8CCD0D4D9DDE1E5E8EBEEF1F3F5F7F9FAFBFCFD +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF5 +ECE7E3E2E2E2E2E2E2E2E2E2E3E3E3E3E3E3E4E4E5E4E2E0DBCDB79263283EA9 +ADAEAFB0B2B4B6B9BCC0C4C7CBCFD3D8DCE0E4E7EBEEF0F3F5F7F8FAFBFCFDFE +FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF8EE +E7E5E1E1E1E1E1E1E1E1E2E2E2E2E3E3E3E3E3E4E3E3E1DCD3C1A1713E0E97AD +AEAFB0B2B3B6B9BCBFC3C6CBCFD3D7DBDFE3E7EAEDF0F3F5F7F8FAFBFCFDFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFDF0E9 +E5E2E1E1E1E1E1E1E1E1E1E1E2E2E2E3E3E3E3E4E3E1DFD7C9B0854F0E6DADAD +AEB0B1B3B6B8BBBFC1C6CACED2D6DADFE3E6EAEDF0F2F5F7F8FAFBFCFDFDFEFE +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF5EBE5 +E1E1E0E0E0E0E0E1E1E1E1E1E1E2E2E3E3E3E4E3E1E0DBCFB997632335A8ADAE +B0B0B3B5B7BABDC1C4C8CDD1D5D9DDE1E5E9ECEFF2F4F7F8FAFBFCFDFDFEFEFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFF9EEE7E3 +E0DFDFDFDFE0E0E0E1E1E1E1E1E2E3E3E3E3E4E3E1DED5C4A476410990ADAEAF +B0B2B4B6B9BCC0C4C8CBD0D4D8DDE1E5E8EBEFF2F4F6F8FAFBFCFDFDFEFEFEFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFEF3E9E3E1 +DFDFDFDFDFDFE0E0E0E1E1E1E1E2E3E3E3E3E3E1DFD9CDB28A581E5EADADAEB0 +B1B3B6B9BCBFC2C6CBCFD3D7DBE0E4E8EBEEF1F3F5F8F9FAFBFDFDFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF8EDE5E2DF +DFDFDFDFDFDFE0E0E1E1E1E1E2E2E3E3E3E3E2E1DDD3BF9B6A342AA5ADAEB0B1 +B3B5B8BABEC1C5C9CDD2D6DBDFE3E6EAEDF0F3F5F7F9FAFBFDFDFEFEFEFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFDF0E7E3E0DF +DFDFDFDFDFDFE0E0E1E1E1E2E2E3E3E3E4E3E1DFD8C9AD814C0985ADADAFB0B2 +B4B6B9BCC0C4C8CCD1D5D9DDE2E6E9EDF0F2F5F7F8FAFBFCFDFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF5EAE3E1DFDE +DFDFDFDFDFE0E0E1E1E1E1E2E3E3E3E4E3E1E0DBD0B993612A45ACADAEB0B1B3 +B6B9BCBFC3C7CBCFD3D8DDE1E5E8EBEFF2F4F6F8FAFBFCFDFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFBEFE6E2DFDEDE +DFDFDFDFDFE0E0E1E1E1E2E3E3E3E4E4E3E1DED6C7AB7D410096ADAEB0B1B3B5 +B8BBBEC1C6CACED2D7DBDFE3E7EBEEF1F3F6F8FAFBFCFDFDFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF3E9E3DFDFDFDF +DFDFDFE0E0E1E1E1E1E2E2E3E3E3E4E4E1E1DDCEB7905C1E5DADADAFB0B2B4B6 +B9BCC0C4C8CDD1D5DADEE3E6EAEDF0F3F5F7F9FAFBFDFDFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFAEEE6E1DFDEDFDF +DFDFE0E0E1E1E1E1E2E3E3E3E3E4E5E3E1DFD6C5A3723719A1ADAEB0B1B3B6B9 +BCBFC3C7CBCFD4D8DDE1E5E9ECEFF2F5F7F8FAFBFCFDFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF3E9E3DFDFDFDFDF +DFE0E0E1E1E1E2E2E3E3E3E4E4E5E5E2E1DCCEB38A561C74ADAEAFB0B3B5B7BA +BEC1C5C9CED2D7DBDFE4E8EBEFF1F4F6F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFAEEE6E1DFDFDFDFE0 +E0E1E1E1E1E2E3E3E3E3E4E5E5E5E4E2DFD6C2A2723930A9ADAEB0B2B3B6B9BC +C0C4C8CDD1D5DADEE3E6EAEDF0F3F5F8F9FBFCFDFDFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF3EAE3DFDFDFDFE0E0 +E1E1E1E2E2E3E3E3E4E4E5E5E5E5E3E1DDCFB58C58217FADAEAFB1B3B5B8BBBF +C2C6CBCFD3D8DDE1E5E9ECF0F2F5F7F9FAFBFDFDFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFAEFE6E1DFDFDFE0E1E1 +E1E1E2E3E3E3E3E4E5E5E5E6E6E5E3E0D7C4A16D3430A9ADAFB0B2B4B6B9BDC1 +C5C9CDD2D7DBDFE4E8EBEFF2F4F7F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4EAE4E0E0E0E0E1E1E1 +E2E2E3E3E3E4E4E5E5E5E6E6E6E4E2DDD1B38750197EADAEB0B1B3B6B9BCBFC3 +C7CCD0D5D9DEE2E6EAEDF0F3F5F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFBEFE6E2E0E0E1E1E1E1E2 +E3E3E3E4E4E5E5E5E6E6E6E7E6E4E1D8C49F6D3535A9ADAFB0B2B4B7BABEC1C6 +CACFD3D7DCE1E5E8ECEFF2F5F7F9FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF6EBE5E3E1E1E1E1E2E2E3 +E3E3E4E5E5E5E5E6E6E6E7E7E5E3DED0B58A521C87ADAEB0B1B3B6B9BCC0C4C8 +CDD1D5DADFE3E7EBEEF1F4F6F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFDF0E8E4E2E1E1E2E2E3E3E3 +E4E4E5E5E5E6E6E6E7E7E8E7E5E2D9C6A371353EABADAFB0B3B5B7BBBEC2C6CB +CFD4D9DDE1E6EAEDF0F3F5F7F9FBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF8EDE5E3E2E1E2E3E3E3E3E4 +E5E5E5E6E6E6E6E7E8E8E8E6E5E0D3B88E591E81ADAEB0B1B3B6B9BCC0C4C8CD +D2D7DBDFE4E8EBEFF2F5F7F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF3EAE5E3E2E2E3E3E3E4E4E5 +E5E5E6E6E6E7E7E8E8E8E8E6E3DBC9A674412EA9ADAFB0B3B5B8BBBFC2C6CBD0 +D4D9DDE2E6EAEDF0F3F6F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFAF0E8E5E3E3E3E3E4E4E5E5E5 +E6E6E6E7E7E8E8E8E9E9E8E6E2D5BE92592A74ADAEB0B2B3B6B9BDC1C5C9CDD2 +D7DBE0E5E8ECEFF2F5F7F9FAFCFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF5ECE6E3E3E3E3E4E5E5E5E5E6 +E6E6E7E8E8E8E8E9EAE9E7E5DECDB07C4721A6AEAFB0B3B5B8BBBFC3C7CBD0D5 +D9DEE3E7EBEEF1F4F7F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFDF2EAE5E3E3E4E4E5E5E5E6E6E6 +E7E7E8E8E8E9E9EAEAE9E7E3D8C19A66326BADAEB0B2B3B6B9BDC1C5C9CED3D7 +DCE1E5E9EDF0F3F5F7F9FBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF9EFE8E5E4E4E5E5E5E6E6E6E6E7 +E8E8E8E9E9EAEAEAEAE8E6E1D2B3844F219CADAFB0B3B5B8BBBFC3C7CCD1D5DA +DFE3E7EBEFF2F4F7F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF5EBE7E5E4E5E5E5E6E6E6E7E7E8 +E8E8E9EAEAEAEBEBEAE9E6DDC8A16F395BADAEB0B1B3B6B9BDC1C5C9CED3D7DC +E1E5E9EDF0F3F5F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFDF2EAE7E5E5E5E6E6E6E7E7E8E8E8 +E9E9EAEAEBEBEBECEBE9E4D6BC8F5B2C90ADAFB0B3B5B8BBBFC3C7CCD1D5DADF +E3E8EBEFF2F5F7F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF8EFE8E6E5E5E6E6E6E7E8E8E8E9E9 +EAEAEAEBEBECECECEAE8E0CDAC7A4434ACAEB0B1B3B6B9BDC1C5C9CED3D7DDE1 +E5EAEDF0F3F6F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFF5ECE7E6E6E6E6E7E7E8E8E8E9EAEA +EAEBEBEBECEDEDEDEAE6DBC49B632C75ADAFB0B3B5B8BBBFC3C7CCD1D5DADFE3 +E8EBEFF2F5F7F9FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFCF1EAE8E6E6E7E7E8E8E8E9EAEAEAEB +EBEBECEDEDEDEDECEAE5D5B78A5423A1AEB0B1B3B6B9BCC1C5C9CED3D7DCE1E5 +EAEDF0F3F6F8FAFBFCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF8EEEAE8E6E7E8E8E8E9E9EAEAEAEBEB +ECEDEDEDEEEFEEEDEAE0CDA9763C57ADAFB0B2B4B7BBBFC2C6CBD0D5DADFE3E7 +EBEFF2F5F7F9FAFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFF5EDE9E8E7E8E8E8E9EAEAEAEBEBECEC +EDEDEEEFEFF0EFEDE8DBC39762268DAEAFB1B3B6B9BCC0C4C8CDD2D7DCE1E5E9 +EDF0F3F6F8FAFBFCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFDF3ECEAE8E8E8E9EAEAEAEBEBEBECEDED +EEEFEFEFF0F0EEECE6D7B8854E34ACAEB0B2B4B7BABEC2C6CBCFD5D9DEE3E7EB +EFF2F5F7F9FAFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFAF0EBEAE8E9E9EAEAEBEBEBECEDEDEEEF +EFEFF0F0F1F0EFEBE3CEA8703F68ADAFB0B3B5B8BCBFC4C8CDD2D7DBE1E5E9ED +F0F3F6F8FAFBFCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFEFEFEFFFFFFFFF6EFEBE9E9EAEAEBEBEBECEDEDEEEEEFEF +F0F0F1F2F2F0EFEBDFC495613292AEB0B1B3B6B9BDC1C6CACFD4D9DDE3E6EBEF +F2F4F7F9FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFEFEFEFFFFFFFFF5EEEBEAEAEAEBEBECEDEDEEEEEFEFF0F0 +F1F2F2F2F2F0EFE8D8B9845039ADAFB0B2B5B8BBBFC3C7CCD1D6DBE0E5E8ECF0 +F3F5F8FAFBFCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFEFEFFFFFFFCF2EDEBEAEBEBECEDEDEDEEEFEFF0F0F1F2 +F2F2F3F3F2F2EDE5D0A9713E6AAEAFB1B3B6B9BCC1C5C9CED3D8DDE2E6EAEEF1 +F4F7F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFDFFFFFFFFFAF0EDEBEBECEDEDEDEEEFEFF0F0F1F1F2F2 +F3F3F4F4F3F1EDE0C6985E2A93AEB0B2B4B7BABEC2C6CBD0D5DADFE4E8ECEFF2 +F5F7FAFBFCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFEFFFFFFFFF7F1EEEDECEDEDEEEFEFF0F0F1F1F2F2F3F3 +F4F4F5F5F3F1EADBBC8D5344ADAFB0B3B5B8BCBFC4C8CDD2D7DCE1E5EAEDF0F3 +F6F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFEFFFFFFFFF7F0EEEDEDEEEFEFF0F0F0F1F2F2F3F3F4F4 +F5F5F6F4F3F0E7D6AE793F6BAEB0B1B3B6B9BDC1C6CACFD4D9DEE3E7EBEFF2F5 +F7F9FBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFDFFFFFFFFFDF4EFEEEEEFEFF0F0F1F1F2F2F3F3F4F5F5F5 +F6F6F7F5F4F0E2CBA166308FAEB0B2B4B7BBBFC3C7CCD1D6DBE0E5E9EDF0F3F6 +F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFFFFFFFFFBF3F0EFEFF0F0F0F1F2F2F3F3F4F4F5F5F6F6 +F7F7F7F5F3EEDDC2935632A9AFB0B3B6B9BCC0C4C9CED3D8DDE2E6EAEEF1F4F7 +F9FAFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFEFEFFFFFFFFFAF4F1EFF0F0F1F2F2F3F3F4F4F5F5F6F6F7F7 +F7F7F7F5F1E9D8B9834A59AEB0B1B3B6B9BDC1C6CBCFD5DADFE3E8EBEFF2F5F8 +FAFBFCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFDFEFFFFFFFFF8F3F0F0F1F2F2F3F3F4F4F5F5F6F6F7F7F7F7 +F7F8F6F5F0E6D0AB713A7FAEB0B2B4B7BBBFC3C8CDD1D7DBE1E5EAEDF0F3F6F8 +FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFDFFFFFFFFFFF7F3F2F2F2F3F3F4F4F5F5F6F6F7F7F7F7F7F8 +F8F8F5F3EEE2C89C5E2E9FAFB0B3B6B9BCC0C4C9CED3D8DDE2E6EBEFF2F5F7F9 +FBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFEFFFFFFFFFEF7F4F3F3F3F3F4F5F5F5F6F7F7F7F7F7F7F7F7 +F7F7F5F3ECDCBC894E41AEB0B1B3B6B9BDC1C6CBD0D5DADFE4E8ECF0F3F5F8FA +FBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFEFEFFFFFFFFFDF8F5F3F3F4F5F5F5F6F7F7F7F7F7F8F8F8F7F7 +F7F7F3EFE8D5B27B456EAEB0B2B4B7BBBFC3C8CDD1D7DCE1E5EAEDF1F3F7F8FA +FBFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFDFEFFFFFFFFFBF7F4F4F5F5F5F6F7F7F7F7F7F7F7F7F7F7F7F7 +F7F4F3EFE3CDA56D3C8AAFB0B3B6B9BCC0C4C9CED3D8DDE3E7EBEFF2F5F7F9FB +FCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFDFEFFFFFFFFFBF7F5F5F5F6F7F7F7F7F7F7F7F7F7F7F7F7F7F6 +F6F3F0EDE0C4975E35A3B0B1B3B6B9BDC1C6CBD0D5DADFE4E8ECF0F3F5F8FAFB +FDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFDFFFFFFFFFFFAF7F6F6F6F7F7F7F7F7F7F7F7F7F7F7F7F6F6F5 +F5F2F0E9D9B98D5444AEB0B2B4B7BBBFC3C7CDD1D7DBE1E5EAEDF1F4F7F8FAFB +FDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFEFDFFFFFFFFFFFBF8F7F7F7F7F7F7F7F7F7F7F7F7F7F6F6F5F5F4 +F3F0EDE5D5B4804867AFB0B3B5B8BCC0C4C9CED3D8DDE2E6EBEFF2F5F7F9FBFC +FDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFDFEFFFFFFFFFFFAF8F7F7F7F7F7F7F7F7F7F7F7F6F6F5F5F4F3F3 +F0EFEBE1CDA8703A80AFB1B3B6B9BDC1C6CBCFD4D9DFE3E8ECF0F3F5F8FAFBFD +FDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFDFEFFFFFFFFFFFAF8F7F7F7F7F7F7F7F7F7F6F6F5F5F4F3F3F2F2 +F0EDEADEC59B63379CB0B1B4B6BABEC2C7CCD1D6DBE0E5E9EDF0F3F7F8FAFBFD +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFDFFFFFFFFFFFFFAF8F7F7F7F7F7F7F7F6F6F5F5F4F3F3F2F2F1F0 +EFEBE6D9BD905C3CABB0B2B4B7BBBFC4C8CDD2D7DDE1E6EAEEF2F5F7F9FBFCFD +FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFAF1F1F1F1FBFEFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFEFEFDFBFBFBFAFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFE +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFDFFFFFFFFFFFDF9F7F7F7F7F7F7F6F6F5F5F4F3F3F2F2F1F0F0EF +EDEAE3D5B4875357AFB0B3B5B9BCC0C5C9CFD3D9DEE3E7EBEFF2F5F8FAFBFCFD +FEFEFFFFFFFFFFFFFFFDE5B99363301C0000000021356D93BCEAFBFDFDFDFDFD +FDFDFDFDFDFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFBF8F3EEEBE6E3E3DFDDDCE1E5ECF7FBFCFCFCFCFCFCFDFDFDFDFDFDFEFEFE +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFEFEFDFDFDFDFDFD +FDFDFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFDFDFFFFFFFFFFFCF9F7F7F7F7F6F5F5F5F4F3F3F2F2F1F0F0EFEFEE +ECE8DFCFAF7B4E6EAFB1B3B6B9BDC1C6CBD0D5DADFE4E8EDF0F3F6F8FAFBFDFD +FEFEFFFFFFFFFED7912E0023353E4144444544423F3C373021124499DFFBFBFB +FCFCFCFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE +FEFCFCFAF8F6F3F0EFECE9E5E1DDD7D2D4DFF2FBFBFBFBFBFBFCFCFCFDFDFDFD +FEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFF7EADED7D3D6E0E6F0F5F7F9FAFBFD +FDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFDFDFFFFFFFFFFFCF9F7F7F6F5F5F5F4F3F3F2F2F1F0F0EFEFEEEDEB +E8E5DCC8A3704284B0B1B4B6BABEC2C7CCD1D6DBE1E5EAEDF1F4F7F9FAFCFDFE +FEFEFFFEFBBB450030424A4F5356575858575654524F4B48443E35281259BFF7 +FAFAFBFBFBFBFCFCFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF +FFFFFFF9F3EEEAE7E5E5E5E6E8E7E5E0D9D2CACFE5F8FAFAFAFAFBFBFBFCFCFD +FDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFE6BA8A64453F5F7B86A2A9A3ACB0BBD0E1E8F3 +F9FCFCFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFDFEFFFFFFFFFFFBF7F6F5F5F5F4F3F3F2F2F1F0F0EFEFEDEDECEBEA +E7E3D8C299673A97B0B2B4B8BBBFC4C8CDD3D7DDE2E6EBEFF2F5F7F9FBFCFDFE +FEFEFBB42E163F4C54595E6264656667666563625F5C5856524C47413A2E1945 +BFF8F9FAFAFAFBFBFBFCFDFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFF +F8EADFD6CFC8C5C3C3C4C8CDD2D8DFE3E3E1D9CFC4C5E3F8F8F9F9FAFAFBFBFB +FCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFEFAB62003079B2DFF3FAFAFAFAFAFAFAFAF5EAD9CFD3 +DDE9F7FBFCFCFDFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFDFEFFFFFFFFFDF9F6F5F5F4F3F3F2F2F1F0F0EFEEEDEDECEBEBEAE8 +E5E1D4BA905F3CA8B0B3B5B9BCC0C5C9CFD4D9DEE3E8EBEFF3F5F8FAFBFDFDFE +FED95000414F5B61666B6E707173737272716F6D6A66635F5C58534C4841392E +1667DCF7F8F8F9FAFAFBFBFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDD7 +C2AE9C8A7C716B686C737E8E9DAEBDC9D4DBE1E0D7CBC0C6EBF7F7F8F8F9FAFA +FBFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFE292320077C1F5FAFAFAFAF9F9F8F8F8F8F8F8F8F8F9F9F7 +E6D7D6EAF9FBFCFCFDFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFEFDFFFFFFFFFFFCF7F5F4F3F3F2F2F1F0F0EFEEEDEDECEBEBEAE9E8E6 +E3DFD0B48B5947AEB1B3B6B9BDC1C6CBD0D5DADFE4E8EDF0F3F6F8FAFBFDFEFB +A000394F5C646B7175797A7C7E7E7E7D7B7A787673716C6A64615D57524C453E +342619AEF5F6F7F8F8F9FAFAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6C4A07B +502A000000000000000009263C526C86A1BBCDDADFDDD1C1B6D7F5F6F7F7F8F9 +FAFAFBFBFCFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFF397261688D9FBFAFAF9F9F8F8F8F7F7F7F7F7F7F7F7F7F8F8F8 +F8F9F2DFDCF3FBFBFCFCFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFDFDFFFFFFFFFFF9F5F3F3F2F2F0F0EFEFEEEDEDECEBEBEAE9E8E8E7E5 +E2DCCBAD825363B0B1B3B6BABEC2C7CCD1D6DBE1E5EAEDF1F4F7F9FBFCFDED62 +004858646C73797D82848787888887878684827F7C7875716E68655E5B534F48 +3F352A127DE9F4F5F6F7F8F8FAFAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7BA87480000 +125C96B4CCDBEAE9E8E8D5C5AD8D5439537495B5CCDCDFD5C6B4C1EFF5F5F7F7 +F8F9FAFAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFC150005ED7FBFAFAF9F8F8F7F7F6F6F5F5F5F5F5F5F5F6F6F6F7F7 +F7F8F8F8F0DCEAFBFBFBFCFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFDFDFFFFFFFFFFF8F5F3F1F0F0EFEFEEEDEDECEBEAEAE9E8E8E7E6E6E3 +DFD8C7A7794B74B0B2B4B7BBBFC3C8CDD2D7DDE1E6EBEFF2F5F7F9FBFBE53430 +4F5E6A737A8185898D8F9092929291908F8D8A8784807E79746F6C66625C564F +473F372E1C59E6F2F3F5F5F7F8F8FAFAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFEFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC47F2A001272BB +EDF6F5F4F3F2F2F0F0EFEFEEEEEDEDDFB476567295B8D3E0DDC9B0B4EDF3F4F5 +F6F7F8F9FAFAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFC99001CB0F8FAF9F8F8F7F7F6F5F5F5F4F4F3F3F3F3F4F4F4F5F5F5F6 +F6F7F7F8F8F8E6E3FAFBFBFCFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFDFDFFFFFFFFFEF7F3F0F0EFEFEEEDEDECEBEAEAE9E8E8E7E6E5E5E3E0 +DDD5C4A2714786B0B2B5B8BCBFC4C9CED3D9DEE3E7EBEFF2F5F8FAFBD5303754 +636F7880878B9094979A9B9C9C9B9B999795928F8C87847F7C77726E67635C58 +50473E352C1C3EDAF0F2F3F4F5F7F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1983700239AE6F7F6 +F5F4F3F2F1F0EFEEEDEDECEBEBEBEBEAEAEAD9976580A3C6DEDFC9B0A9E5F2F3 +F4F5F6F7F8F9FAFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFEB7E004AD8FAFAF8F8F7F6F5F5F4F3F3F3F2F2F2F2F2F2F2F3F3F3F4F4F5 +F5F6F7F7F7F8F8F0E3FAFBFBFCFCFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFDFDFFFFFFFFFBF3F0EFEFEEEDEDEBEBEAEAE9E8E8E6E6E5E5E4E3E1DF +DBD1BF9C6A4193B0B3B6B9BCC1C5CACFD4D9DFE4E8ECF0F3F6F8FAE42E3A5666 +717B848B91979B9EA1A3A5A5A5A5A3A19F9D9A96928F8A87827D79736E67635C +584F453E352C1C47E3EFF0F1F3F4F5F7F8F9FAFBFCFDFDFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC665000E94EAF8F7F5F4 +F3F2F0F0EFEDEDEBEBEAEAE9E9E8E8E8E8E8E8E8DD9D7997BBD9E0CBADA3EAF1 +F2F3F4F5F7F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFE6710054ECFAF9F8F7F6F5F4F3F3F2F2F1F1F1F0F0F0F1F1F1F2F2F2F3F3F4 +F4F5F5F6F7F7F8F8F5E5FAFBFBFCFCFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFEFDFEFFFFFFFFF8F2EFEEEDECEBEBEAEAE9E8E7E6E6E5E5E4E3E3E1DFDD +D9D0B996663E9FB1B3B6B9BDC1C6CBD0D5DBE0E5E9EDF0F3F7F8E93437566774 +7E878F969BA1A5A7AAACADADADADABA9A6A3A09C9894918C87847E79736E6762 +5D544C443A322A1957E3EDEEF0F2F3F5F6F8F9FAFBFCFDFDFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD350064DBF8F7F6F5F3F2 +F1F0EFEDECEBEAEAE8E8E7E7E6E6E6E6E6E6E6E6E6E6CF8C93B6D7E1C9A5A2EA +F0F1F2F3F5F6F7F8FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +EB740071F1FAF8F7F7F5F4F3F3F2F1F0F0F0EFEFEFEFEFF0F0F0F1F1F2F2F3F3 +F4F4F5F5F6F7F7F8F8F7EDFAFBFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFDFDFEFFFFFFFFF7F1EDECEBEBEAEAE8E8E7E6E6E5E5E3E3E2E1E1E0DEDC +D7CCB690613CA9B1B3B6BABEC2C7CCD1D6DBE1E6EAEEF1F4F7F55E305466747F +8891989FA5A9ADB0B3B5B6B5B3B3B0AFABA8A5A19D9A95908B87847D78726D67 +615B524841372E26167EE8EBEDEFF0F2F4F5F7F8FAFBFBFDFDFEFEFEFFFFFFFF +FFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9F00009BF4F8F7F5F4F3F2F0 +EFEDECEBEAE9E8E7E6E6E5E5E5E5E4E4E4E4E4E4E5E5E5E2AB96B6D8E1C299AD +EDEFF0F2F3F4F6F7F8FAFAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +870054EFF9F8F7F6F5F3F2F2F0F0EFEFEFEEEEEEEEEEEFEFEFF0F0F1F1F2F2F3 +F3F4F5F5F6F7F7F8F8F9F8F3FBFBFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFDFDFEFFFFFFFEF3EFECEBEAE9E8E8E7E6E6E5E4E3E3E2E1E1E0DFDEDCDA +D5C9B0875C44B0B2B4B7BBBFC3C8CDD2D7DDE2E6EBEFF2F5F79B005064737E89 +919AA1A8AEB3B6B9BCBDBCBCBBB9B6B3B0AEAAA6A29E9994908C87827D77716C +655E584F443C342C2309ABE7E9EBEDEFF2F3F5F7F8FAFBFBFDFDFEFEFEFFFFFF +FFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9C0012C1F9F8F7F5F4F2F1EFEE +EDEBEAE9E8E7E6E5E5E5E4E4E3E3E3E3E3E3E3E3E3E3E4E4E5C39DB9DBE0B88D +C5EDEEF0F1F2F4F5F7F8F9FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFA0 +0044EBF9F8F7F5F4F3F2F0F0EFEEEDEDEDEDEDEDEDEDEEEFEFEFF0F0F1F2F2F3 +F3F4F5F5F6F7F7F8F8F8F9F8FAFBFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFDFCFEFFFFFFFAF1ECEAE9E8E8E7E6E5E5E4E3E3E2E1E1DFDFDEDDDDDBD8 +D3C5AC825456B0B2B5B8BCBFC4C8CED3D8DDE3E7EBEFF2F5D3004861707D8791 +9BA2A9B0B5BBBFC1C2C4C4C2C0BFBCB9B6B2AEAAA5A19C9793908986807B756F +6A635C524A423930261C19D1E5E8EAECEFF1F3F5F7F8FAFBFBFDFDFEFEFEFFFF +FFFFFFFFFBFDFFFFFFFFFFFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFEFEFEFEFEFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFA2002CD3F9F8F7F5F3F2F0EFEDEC +EBEAE8E7E6E5E5E4E4E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E4CDA6C2E1DAA8 +83DDECEDEFF0F2F3F5F7F8F9FAFBFCFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFC32E +12D5F9F8F7F5F3F2F1F0EFEEEDEDECECEBECECECEDEDEEEFEFF0F0F1F2F2F3F3 +F4F5F5F5F6F7F7F8F8F8F9FAFAFBFBFCFCFDFDFEFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFDFCFFFFFFFFF7EFEBE9E8E7E6E5E5E4E3E3E1E1E0DFDFDEDDDDDBDBD9D6 +D0C1A77D4F6AB0B3B5B8BCC0C5CACFD4D9DFE3E8ECF0F2F24C3A596C79869099 +A2ABB1B8BEC3C6C8C9CAC9C8C6C4C1BFBBB6B3AEA9A5A09B96908D88827C7873 +6D665F574E453A342C21126EE1E4E6E9EBEEF0F2F5F7F8FAFBFBFDFDFEFEFEFF +FFFFFFFFF3FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFEFEFEFEFEFEFEFEFE +FEFEFEFEFFFFFFFFFFFFFFFFFFFEFFFFFFB50E2CD7F9F8F7F5F3F2F0EFEDEBEA +E9E8E6E6E5E5E4E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3CFACC7E5CB +929CEAEBEDEFF0F2F3F5F7F8FAFAFBFCFDFEFEFEFEFFFFFFFFFEFFFFFFE46800 +AAF9F7F6F5F3F2F0EFEEEDECEBEBEBEBEBEBEBECEDEDEEEFEFF0F1F2F2F3F3F4 +F4F5F5F6F7F7F7F8F8F9F9FAFAFBFBFCFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFDFDFFFFFFFFF5EDE9E7E6E5E5E4E3E2E1E1E0DFDFDEDDDCDBDBDAD9D7D5 +CDBEA2794E74B0B3B6B9BCC1C6CBCFD5DADFE4E9EDF0F3AE00506575828E97A1 +A9B1B9BFC5C9CCCFD0D1D0CFD0DBCBC3BFBBB6B3ADA9A39E99948F89857F7A75 +706A635B52483F352E261E09B5E0E3E5E8EBEDF0F2F4F6F8FAFBFCFDFDFEFEFE +FFFFFEF9FDFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF7FEFEFEFEFEFEFEFE +FEFEFEFEFEFFFFFFFFFFFFFFFFFEFFFFD54112C5FAF8F7F5F3F2F0EFEDEBEAE8 +E7E6E5E5E5E4E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3CDB6D4E5 +B379C8EAEBEDEFF0F2F3F5F7F8FAFBFBFDFDFEFEFEFEFEFEFEFFFFFFFFA30057 +F5F8F6F5F3F2F0EFEDECEBEBEAEAEAEAEAEBEBECEDEEEFEFF0F1F2F2F3F3F4F5 +F5F6F6F7F7F7F8F8F9F9FAFAFAFBFBFCFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFDFDFFFFFFFEF2EAE8E6E5E4E3E2E1E1E0DFDEDDDDDCDBDBDAD9D8D7D5D2 +CBBCA0754A7CB1B3B6B9BDC1C6CBD1D5DBE0E5EAEDF0F032425D6F7C88949DA7 +B0B8BFC6CBCFD2D5D7D7D5D4E1FFDCC8C3BFBAB6B0ABA6A19C97918C87827D76 +716B665E564B423A3228211252DADFE2E5E8EBEDF0F2F5F7F8FAFBFCFDFDFEFE +FFFEFFEDFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFEBFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFFFFFFFFFEFEFFFFF57500AFFAF8F7F5F3F2F0EFEDEBEAE8E7 +E6E5E5E5E4E4E4E4E4E4E4E5E5E5E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4CBC5E2 +D79283E7EAEBEDEFF0F2F4F5F7F8FAFBFCFDFDFEFEFEFEFEFEFFFFFFD65200CF +F8F6F5F3F2F0EFEDECEBEAEAEAE9EAEAEAEBECEDEDEFEFF0F1F2F3F3F4F5F5F6 +F6F7F7F7F8F8F8F9F9FAFAFAFBFBFBFCFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFEFDFDFFFFFFFBF0EAE6E4E3E2E1E1DFDFDEDDDDDCDBDAD9D9D8D7D7D5D3CF +C8B89C724883B1B3B6BABEC2C7CCD1D7DCE1E6EAEDF1B119526676838F98A3AD +B5BDC5CBCFD5D9DBDDDDDCDADAE1D2CBC6C2BCB8B3AEA9A39F98938E88847E78 +736E6861574E453C342C211900B1DBDEE1E5E8EAEDF0F2F5F7F8FAFBFCFDFEFE +FEFEFDF3FEFEFEFEFEFEFDFDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEF0EFFEFEFDFDFDFDFD +FDFDFEFEFEFEFEFEFEFEFEFEFEFFFFAD007CF9F8F7F6F4F2F0EFEDEBEAE8E7E6 +E6E5E5E5E5E5E5E5E5E5E6E6E6E6E7E7E7E7E7E7E6E6E6E6E5E5E5E5E5E3C8D3 +E9B670C5E9EAEBEDEFF1F2F4F6F7F9FAFBFCFDFDFEFEFEFEFFFFFFFA9E0073F8 +F7F5F3F1F0EEEDEBEAEAE9E8E8E9E9EAEBEBEDEDEFF0F0F2F2F3F4F5F5F6F7F7 +F7F8F8F8F8F9F9FAFAFAFAFBFBFBFBFCFDFDFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFDFDFFFFFFF8EDE8E4E2E1E0DFDFDEDDDDDBDBDAD9D9D8D7D6D5D5D3D1CE +C6B6976E428EB1B4B7BABFC3C8CDD2D7DDE2E6EBEEF23E415C6E7C87949EA8B1 +B9C1C8CFD4D9E3EEF0EDE4DFDCD7D3CECAC5BFBBB6B0ABA5A09B96908A847F7B +746F68625950483E372E261C1265D6DADDE1E4E8EBEDF0F3F5F7F9FAFBFDFDFD +FEFFE6FEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFADDFDFDFDFDFDFDFD +FDFDFDFDFEFEFEFEFEFEFEFEFFFFE64B30EAF9F8F6F5F3F1EFEDEBEAE9E8E6E6 +E5E5E5E5E5E5E6E6E7E7E8E8E8E9E9E9EAEAE9E9E9E8E8E8E7E6E6E6E5E5DFCD +E5DC8A88E8E9EAECEDEFF1F3F5F7F8F9FAFBFCFDFDFEFEFEFFFFFFD75900D1F7 +F5F3F2F0EEEDEBEAE9E8E8E8E8E8E9EAEBECEDEFF0F1F2F3F3F5F5F6F7F7F8F8 +F8F9F9FAFAFAFAFAFAFBFBFBFBFBFCFCFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFDFDFFFFFFF5EBE5E1E0DFDFDEDDDCDBDBDAD9D8D7D7D6D5D5D4D3D1CFCB +C4B2926A3F94B2B4B7BBBFC4C8CDD3D8DDE3E7EBEFCF004E6473818D98A2ACB5 +BEC5CBD2D9E1F3FDFFFBF0E3DFDBD6D1CDC7C2BDB8B2ADA7A19C96908B87807B +76716B635B504A41392E281E160EC4D6D9DDE1E5E8EBEEF1F3F5F8F9FBFCFDFD +FDFFDBFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFADAF5FDFDFDFDFDFD +FDFDFDFDFDFEFEFEFEFEFEFEFFFF9E00B1FAF8F7F5F3F2F0EEECEBE9E8E7E6E6 +E5E5E6E6E6E7E8E8E9EAEAEBEBEBEBECECECECEBEBEBEAEAEAE9E8E8E7E6E6D8 +DAEBAD5FD9E8E9EBECEEF0F2F3F5F7F8FAFBFBFDFDFDFDFEFFFFFFAF0063F7F5 +F3F2F0EEECEBEAE8E8E7E7E8E8E9EAEBECEDEFF0F1F2F3F4F5F6F7F7F8F8F9F9 +FAFAFAFAFAFBFBFBFBFBFBFBFCFCFDFDFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFDFDFFFFFEF3EAE4E0DFDDDDDCDBDBD9D9D8D7D7D6D5D4D3D3D2D1CFCDCA +C2B09065429CB2B5B8BCBFC4C9CED3D9DEE3E7EBEF8834576A7885909CA5AFB8 +C1C7CFD5DBE6FDFFFFFFFAE7E2DDD9D3CEC9C4BEB9B3ADA8A49C97928D87807C +77716B655D544B423A302821190991D2D5D9DDE1E5E8EBEFF2F4F6F8FAFBFBFD +FEFDE3FEFDFEFDFDFDFDFCFCFCFCFCFCFDFDFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAE8D9FDFDFCFCFCFC +FCFCFDFDFDFDFDFEFEFEFEFEFFE94858F8F9F7F5F4F2F0EFEDEBEAE8E8E6E6E6 +E6E6E7E7E8E9EAEAEBECEDEDEDEEEFEFEFEFEFEFEEEDEDEDECEBEAEAE9E8E7E6 +D7E8D26FA9E8E8EAEBEDEFF0F2F4F6F7F9FAFBFCFDFDFDFFFFFFEA8300B6F6F4 +F2F0EFEDEBEAE8E7E7E6E7E8E8E9EAEBEDEFF0F1F2F3F5F6F7F8F8F9FAFAFAFA +FBFBFBFBFBFBFBFCFCFCFCFCFDFDFDFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFCFDFFFFFAF0E8E1DEDDDCDBDAD9D9D8D7D7D5D5D4D3D3D2D1D0CFCDCBC8 +C1AD8A6441A4B3B5B8BCC0C5CACFD4D9DFE4E8EBEE32445D6F7D88939FA8B0B9 +C2C9CFD6DDE8FDFFFFFFFAE8E4DFD9D5CFC9C4BFBAB4AFA9A49D98938D87837C +77726C665E544B423A302A21190957CED2D6DADEE2E6E9EDF0F2F5F7F9FAFBFC +FFE5F1FDFDFDFDFDFCFCFBFBFBFBFBFCFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBF2C5FDFCFCFBFBFB +FBFBFCFCFDFDFDFDFDFDFDFDFFB400C4F9F8F7F5F3F1EFEDEBEAE9E8E7E6E6E6 +E7E8E8E9EAEBECEDEDEFEFF0F0F0F1F1F1F1F1F1F0F0F0EFEEEDEDEBEBEAE9E8 +E1E6EF8F74E7E8E9EAECEDEFF1F3F5F7F8FAFAFBFCFDFDFFFFFFCE4E21EAF5F3 +F1EFEDEBEAE8E7E6E6E6E7E8E9EAEBEDEFF0F2F3F4F5F7F7F8F9FAFAFAFBFBFB +FBFCFCFCFCFCFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFCFDFEFEF8EDE5E0DDDBDAD9D9D8D7D6D5D5D4D3D2D1D1D0CFCFCECBC9C6 +BDAA876142ABB3B5B9BCC1C5CACFD5DADFE4E8ECD6004C62727F8A96A0A9B3BC +C2C9D0D7DDE6F5FEFFFCF4E8E4DFDAD5CFCBC5BFBAB5AEA9A59E99938E87817D +77726C665E564C443C322A23191216C4CFD3D7DBDFE3E6EAEDF0F3F6F8F9FAFC +FFCAFAFDFDFCFDFCFBFBFBFBFBFBFBFBFCFCFDFDFDFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFCF7BCF5FCFBFBFBFB +FBFBFBFBFCFCFDFDFDFDFDFDF77544F8F8F7F5F3F2F0EEEDEBEAE8E8E7E7E7E8 +E8E9EAEBECEDEEEFF0F1F2F2F3F3F3F3F3F3F3F3F3F3F2F2F0F0EFEEEDECEBEA +E8E3F5AE4FDEE8E8EAEBEDEFF0F2F4F5F7F8FAFBFBFCFDFFFFFCB4126AF5F3F2 +EFEDEBEAE8E7E6E6E6E6E7E8EAEBEDEEF0F2F3F4F5F7F8F8FAFAFBFBFBFCFCFD +FDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFCFAFBFBF7EDE3DEDBD9D9D7D7D6D5D5D3D3D2D1D1D0CFCECDCDCCCAC8C4 +BBA8875E3FABB3B6B9BDC1C6CBD0D5DBE0E4E8EDAD28526574818C97A2ABB3BC +C3C8CFD5DCE1EAF3F5F2EBE6E3DDD9D4CFCAC5C0BAB4AFA9A49E98928D88817D +78736C645D544C443C322A231C1200A5CBCFD3D7DBE0E4E8EBEFF2F4F6F8FAFD +FFBDFCFCFCFCFBFBFBFBFBFBFBFBFBFBFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFAC3DEFBFBFBFBFA +FAFBFBFBFBFCFCFDFDFDFBFEDF34A7F9F8F6F5F3F1EFEDEBEAE9E8E8E8E8E8E9 +EAEBECEDEEEFF0F2F2F3F4F5F5F5F6F6F6F6F6F6F5F5F5F4F3F2F1F0EFEEEDEB +EBE7F1CF57C0E8E8EAEAECEDEFF1F3F5F7F8F9FAFBFBFEFFFFEB9700A1F4F2F0 +EEECEAE8E7E6E6E5E6E6E8E9EAECEEF0F1F3F4F6F7F8F9FAFBFBFCFCFDFDFDFD +FDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFCF9F9FAF4EAE1DBD9D7D7D6D5D4D3D3D2D1D1CFCFCECDCDCCCBCAC8C6C3 +B9A7845C3EACB3B6B9BDC1C6CBD1D6DBE1E5E9ED7F3A576776828E97A2ABB3BB +C1C7CDD4D9DFE3E6E8E8E6E3E0DCD7D2CDC9C4BFB9B3AFA9A39E98938E87827E +76716C655D544E423C342C211C120088C8CCD0D4D9DDE1E6EAEDF0F3F5F7F9FD +FFB0FBFCFCFBFBFBFBFAFAFAFAFAFAFBFBFCFCFDFDFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDF7CDC6FBFBFAFAFA +FAFAFAFAFBFBFBFCFCFCF9FCB709E3F8F7F5F3F2F0EFEDEBEAE9E8E8E8E9EAEA +EBEDEEEFF0F2F3F3F5F5F6F7F7F8F8F8F8F8F8F8F8F7F7F6F5F5F3F2F2F0EFEE +EDEBF1EA6FA2E8E8E9EAEBEDEFF0F2F4F5F7F8FAFAFBFFFFFFDD7C00CBF3F1EF +EDEBE9E7E6E5E5E5E6E7E8EAEBEDEFF1F3F4F6F7F8FAFAFBFBFCFDFDFDFDFEFE +FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFCF7F7F7F1E6DEDAD7D5D5D4D3D3D2D1D0CFCFCECDCCCBCBCAC8C8C6C4C1 +B8A583593FACB3B6B9BEC2C6CCD1D6DBE0E5EAED5841596A78838E98A1AAB3B9 +BFC6CBDCEAE7E1E1E4E3E3E0DDD9D5D1CBC8C2BDB8B3ADA8A49C97918C87817C +77716C655C544B423A342A211912096EC5C8CDD1D6DADFE3E7EBEFF1F3F6F8FE +FFADFBFBFBFBFAFAFAFAFAFAFAFAFAFAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDF8D6B0FBFAFAFAFA +FAFAFAFAFAFBFBFBFBFCF8FA8E5EF9F8F7F5F3F1EFEEECEBEAE9E9E9EAEAEBEC +EDEFF0F1F2F3F5F5F7F7F8F8F9F9FAFAFAFAFAFAF9F9F8F8F7F7F5F5F3F2F1F0 +EFEDF2F98987E9E9EAEAEBECEEF0F1F3F5F7F8F9FAFAFFFFFFCC5F00E5F2F0EE +EBEAE8E6E5E5E5E5E6E8E9EBEDEFF0F2F4F6F7F8FAFAFBFCFDFDFDFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFDFBF5F5F5F0E5DDD8D5D4D3D3D1D1D0CFCFCDCDCCCBCBCAC8C8C7C6C4C3BF +B5A380594CB1B3B6BABEC2C7CCD1D7DCE1E5EAED28445B6B77848E97A1A9B2B7 +BDC4C8EEFDF8E0DDDFDFDDDCD9D5D2CFCAC5C1BCB6B1ACA7A19C97918C87827A +75706C645C524C423A322A2119120050C2C6CACFD3D7DCE1E5E9EDEFF2F5F7FE +F9B0FAFAFAFAFAFAFAF9F9F9F9FAFAFAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDF9DF97FBFAFAF9F9 +F9F9F9FAFAFAFBFBFBFBF8F56C97F8F7F6F4F2F0EFEDECEBEAEAEAEAEAEBECED +EFF0F2F3F4F5F7F8F8F9FAFAFAFBFBFBFBFBFBFBFBFAFAFAF9F8F7F7F5F4F3F2 +F0EFF2FCA26AEAEAEAEAEBECEDEFF0F2F4F6F7F8F9FAFAFEEBB03026F3F1EFED +EBE9E7E6E5E5E5E6E6E8EAECEEF0F2F3F5F7F8FAFBFBFCFDFDFEFEFEFEFEFEFF +FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFDFBF3F3F3EDE3DBD7D3D2D1D1D0CFCECDCDCCCBCAC9C8C8C7C6C5C4C2C1BD +B3A07D574CB1B3B6BABFC3C8CDD2D7DDE1E6EAED1E475C6B77838D97A0A9AFB5 +BAC1C6EDFDF8DCD8D9DAD9D7D5D2CFCBC7C3BFBAB5B0AAA5A09B95908B85807B +75706B625B524A4139322A21190E0039C0C4C8CCD1D5DADFE3E7EBEEF1F4F6FF +F0A2FAFAFAFAF9F9F9F8F8F8F8F9FAFAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFAE283FAFAF9F9F8 +F8F8F8F9F9FAFAFAFBFBF6E84FCCF8F7F5F3F2F0EFEDEBEBEAEAEAEBEBEDEEEF +F0F2F3F5F6F7F8F9FAFAFBFBFCFCFCFDFDFDFDFCFCFCFBFBFAFAF9F8F7F6F5F3 +F2F0F2FFB857EBEAEAEAEBECEDEFF0F2F3F5F7F8F8F6E6DCB96E0053F2F0EEEC +EAE8E6E5E5E5E5E6E7E9EBEDEFF1F3F5F7F8FAFBFBFCFDFDFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFDFBF1F2F1EBE1D8D4D2D0CFCFCECDCCCBCBCAC9C8C7C6C6C5C4C3C2C0BFBB +B19E7C574BB1B4B7BBBFC3C8CDD2D7DCE1E6EAE000485D6B76818B969DA6ADB3 +B8BDC2D5E4DFD3D3D4D4D3D2D0CECBC8C4C0BCB7B2AEA8A39D98948F88837F7A +746E686158524741392E261E190E0928BDC1C5C9CED3D7DCE1E5E9EDF0F2F5FF +EE94F9F9F9F9F9F8F8F8F8F8F8F8F9FAFAFBFBFDFDFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFBE372FAFAF9F8F8 +F8F8F8F8F8F9FAFAFAFAF5DB3FEAF7F6F5F3F1F0EEEDEBEBEBEBEBECEDEEEFF1 +F2F3F5F7F8F8FAFAFBFBFCFDFDFDFDFDFDFDFDFDFDFDFDFCFBFBFAFAF8F8F7F5 +F3F2F2FFC74BEBEBEBEBEBEBEDEEF0F1F3F5F6F7F8EFBF9759000052F2F0EDEB +E9E7E6E5E5E5E5E6E8EAECEEF0F2F4F6F8F9FAFBFCFDFDFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBEFEEEFE8DFD6D1D0CFCECDCCCBCBCAC8C8C7C6C6C4C4C3C2C1C1BFBCB9 +AF9C7B574CB2B4B7BBBFC4C8CDD3D8DDE2E6EAE000485C6A758089939BA3A9AF +B5B9BDC2C5C8CCCDCECFCFCDCBCAC6C4C1BCB8B4AFABA5A19C97928D87837D78 +726D665E564F473F352E261E160E0926BCBFC3C7CCD1D5DADFE4E7EBEFF1F5FF +EE8EF8F8F8F8F8F8F7F7F7F7F8F8F8FAFAFBFBFCFDFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBDD67FAF9F8F8F8 +F7F7F7F7F8F8F9F9FAF9F5D34BF5F7F5F4F2F1EFEEEDECEBEBEBECEDEEEFF1F2 +F4F5F7F8F9FAFBFBFCFDFDFDFEFEFEFEFEFEFEFEFEFEFDFDFDFCFBFBFAF9F8F7 +F5F3F3FFD353EDECEBEBEBECEDEEEFF1F2F4F5F7F8E3A16D34343484F1EFEDEB +E9E7E6E5E5E5E6E8E9EBEDEFF2F3F5F7F9FAFBFCFDFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFAFBFEFEFEFEFEFEFEFEFEFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBECEBEBE6DDD5CFCECDCCCBCBC9C8C8C7C6C5C4C4C3C2C1C0BFBFBCBBB7 +AE9B7A574CB2B4B7BBBFC4C8CED3D9DDE2E6EAE100475B68737E88909AA1A7AD +B6CBC2BFC1C4C6C8C9C9CAC8C7C5C2C0BCB9B5B1ADA9A39E9995908A86817B76 +716B655D534C443E352C231E160E0926B9BDC1C5CACFD3D8DDE2E6EAEDF0F3FF +F077F4F8F8F8F8F7F7F7F7F7F7F8F8F9FAFBFBFCFDFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFED35DFAF9F8F8F7 +F7F7F7F7F7F8F8F8F9F8F4CA70F8F7F5F3F2F0EFEEEDECECECECEDEEEFF1F2F3 +F5F7F8F9FAFBFCFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFCFBFAF9F8 +F7F5F3FEDA58EEEDECECEBECEDEEEFF0F2F3F5F7F7F8F8F8F7F6F5F3F0EFECEA +E8E7E6E5E5E6E7E8EAECEFF0F3F5F7F8FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D3AAC0FEFEFEFEFEFEFEFEFEFEFEFEFEFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBEBEAEAE4DAD2CECDCBCAC9C8C8C6C6C5C4C4C2C1C1C0BFBFBDBCBBB9B6 +AC9A79584EB2B4B8BBBFC4C9CED3D9DDE3E6EAE200455866717C858E969DA3A8 +C4F5D8BEBCBFC1C3C4C4C4C4C1C1BEBCB8B5B1ADA9A5A09C97928E87837E7875 +6F686158524A423A342C231C16090026B8BCBFC4C8CDD1D7DBE0E5E8ECEFF2F8 +F378E8F7F7F7F7F7F6F6F6F7F7F7F8F9FAFBFBFCFDFDFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFBFFC74FFAF8F8F7F7 +F6F6F6F6F7F7F8F8F8F8F3C676F7F6F5F3F2F0EFEEEDEDECEDEDEEEFF0F2F3F5 +F7F8F9FAFBFCFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFEFEFEFEFEFDFDFCFBFAF9 +F8F7F5FEDF5BEFEEEDEDECEDEDEEEFF0F2F3F5F6F7F7F8F7F7F5F4F2F0EFECEA +E8E7E6E6E6E6E8EAEBEDEFF2F3F6F8F9FAFBFDFDFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC481B2FEFDFDFDFDFDFDFDFDFEFEFEFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBE8E6E7E1D8D0CDCBC9C8C7C6C6C5C4C3C2C1C1C0BFBEBDBCBCBBB9B7B4 +AB9A7B574FB2B5B8BCBFC4C9CFD3D8DDE3E7EAED1E4457646F79838A929AA0A5 +ADC4BBB5B6B9BCBDBFBFBFBEBCBBB9B7B4B1ADA9A5A19D9893908B86817C7671 +6E665E564F4841373028211C1209003CB7BABEC1C6CBD0D5DADEE3E8EBEFF1F0 +F78ECCF7F7F6F6F6F5F5F5F6F6F7F8F8FAFAFBFCFDFDFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFCFFB159F9F8F7F7F6 +F5F5F5F5F6F7F7F8F8F8F3C691F7F6F5F3F2F0EFEEEDEDEDEDEEEFF0F2F3F5F7 +F8F9FAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFCFBFA +F9F8F6FDD96BF0EFEEEDEDEDEDEEEFF0F2F3F5F6F7F7F7F7F7F5F4F2F0EEECEA +E9E8E6E6E6E8E9EAECEFF0F3F5F7F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A94A9FFDFDFDFDFCFCFCFDFDFDFDFDFEFE +FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBE8E5E5DFD6CFCBC8C7C6C6C4C4C3C2C1C0BFBFBEBDBCBCBBBAB9B8B6B3 +AA9879564BB0B5B8BCC0C4C9CFD4D9DEE3E7EBEE304153616C767E878E969CA1 +A4A8ACAFB3B5B7B8B9B9BAB9B8B6B4B1AFADA9A5A19D9996908C88847E79756F +6C645C544E453E372C231E1612090050B6B9BCC1C5C9CFD3D9DDE2E6EAEDF0EA +F8A3A1F6F6F5F5F5F5F4F5F5F6F7F7F8F9FAFBFCFDFDFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFEFF976DF9F8F7F6F5 +F5F5F5F5F5F6F7F7F8F8F2CDA1F7F5F4F3F2F0EFEFEEEDEEEEEFF0F2F3F5F6F7 +F9FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFCFB +FAF8F7FDD17EF1F0EFEEEDEDEEEFEFF0F2F3F4F5F7F7F7F7F7F5F4F2F0EFEDEB +E9E8E8E7E8E9EAEBEDF0F2F4F6F8F9FBFCFDFDFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF8700B5FCFCFBFBFBFBFBFBFCFCFDFDFDFE +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBE9E3E3DDD5CECAC6C5C4C4C3C1C1C0BFBFBEBCBCBBBAB9B9B8B7B6B4B0 +A9997A563FADB5B8BCC0C4CACFD4D9DEE3E7EBEE5D3C505E6A727B838A91989C +A0A4A7AAADAFB1B3B3B4B3B3B3B0AFADAAA8A5A19D9996908E8984807B77716E +675F575048423A342C231C1609000067B5B8BBBFC4C8CDD2D7DCE1E5E9ECEFE6 +F2BA79F5F5F5F5F5F4F3F4F5F5F6F7F8F9FAFBFCFDFDFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFFFD7290F9F8F7F6F5 +F5F4F4F4F5F5F6F7F7F7F3D69AF6F5F4F3F2F0EFEFEEEEEFEFF0F1F2F4F5F7F8 +FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFB +FBFAF8FDC89BF2F1F0EFEEEEEEEFEFF0F2F3F4F5F7F7F7F7F7F5F4F2F0EFEDEB +EAE9E8E8E9EAEBEDEFF1F3F5F7F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFBCA6600D1FBFBFBFAFAFAFAFAFBFBFBFCFDFD +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBE6E0E0DBD3CCC8C5C3C2C1C1C0BFBEBDBCBCBBBAB9B9B8B7B6B6B4B2B0 +A898795842ADB5B8BCC0C5CACFD4D9DEE3E7EBED86374C59656F787F868E9397 +9B9FA1A5A8AAACADAEADAEAEADACA9A8A5A3A09D9996928E8985827C79736F6A +625C544E453E373028211C120900007EB4B7BABEC2C7CCD1D6DBE0E4E8EBEFE5 +EAD36EDCF5F5F4F4F3F3F3F4F5F5F7F7F8FAFBFBFDFDFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFEB48B0F8F7F6F5F5 +F4F3F3F4F4F5F5F6F7F7F4E09FF6F5F4F3F2F0F0EFEFEFEFF0F1F2F3F5F7F8F9 +FAFBFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFC +FBFAF9FEB6B5F3F2F0F0EFEFEFEFF0F0F2F3F4F5F7F7F7F7F7F5F4F3F1EFEEEC +EBEAEAEAEAEBEDEFF0F2F4F6F8F9FBFCFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFFFFEFB64800E8FAFAF9F9F9F9F9F9FAFAFBFBFCFD +FDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFCFBE4DBDDD9D1C9C6C3C1C1BFBFBEBDBCBCBAB9B9B8B7B6B6B5B4B4B3B0AE +A8977C5B42ADB5B8BCC0C5CACFD5D9DFE3E8EBEDB02C4856626A737A82888F92 +979A9CA1A2A5A6A6A9A8A9A8A7A7A5A2A09E9C9895908E8987827E79766F6C66 +5E575048423A352E261C161209000096B3B6B9BDC1C6CBD0D5DADFE3E8EBEEE6 +DFE68BADF4F4F3F3F3F3F3F3F4F5F6F7F8FAFAFBFDFDFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFC409D1F8F7F6F5F4 +F3F3F3F3F3F4F5F6F6F7F5E8A5F6F5F4F3F2F1F0EFEFEFF0F0F2F3F4F6F7F8FA +FBFCFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFD +FCFBFAFAA3D2F4F3F2F0F0EFEFEFF0F1F2F3F4F5F7F7F7F7F7F6F5F3F2F0EFED +ECEBEBEBECEDEFF0F2F3F5F7F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFFFFE1A11E3FF8F9F8F8F8F7F7F7F8F8F9FAFAFBFC +FDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFCFBE3D9DBD7CFC8C4C1BFBFBEBDBCBBBAB9B9B8B7B6B6B5B4B3B3B3B2B0AE +A8987F5D41ADB5B9BCC0C5CACFD5D9DFE3E8EAEDDC1942505C666E777D83888E +9195979B9D9EA0A2A3A4A3A2A3A1A09D9B989693908E8987827E7B76726F6863 +5C544C473E39322A211C120900001CADB3B6B9BCC1C6CBCFD4D9DEE3E7EBEEEC +D6E9AD73F0F3F3F2F2F2F3F3F3F5F5F7F8F9FAFBFCFDFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFF8F2AF3F8F7F5F4F3 +F3F2F2F3F3F4F5F5F6F7F5E8AAF1F5F4F3F2F1F0F0F0F0F0F1F2F3F5F7F8F9FA +FBFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFD +FDFBFAF599F2F5F3F2F1F0F0F0F0F0F1F2F3F5F5F7F7F7F7F7F7F5F4F3F1F0EF +EEEDEDEDEEEFF0F2F3F5F7F8FAFBFCFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFCFFFBD1840081F8F8F7F7F6F5F5F6F7F7F8F8FAFAFB +FCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFCFBE2D8D9D6CFC7C2BFBDBCBCBBBAB9B9B8B7B6B6B5B4B3B3B3B2B2B0AFAD +A79A7F5C44A5B5B9BCC1C5CACFD5D9DFE3E8EAEDEF3E3C4C58616871787F858A +8D90939697999B9C9C9C9D9D9C9C9A97979592908C8984827E7B7773706D6561 +59534E453E372E261C161209000053B0B3B5B9BCC0C5CACFD3D9DEE2E7EAEDEF +D5E1CF80C1F3F3F2F2F2F2F2F3F4F5F6F7F8FAFBFCFDFDFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFF04F75F8F7F6F5F3F3 +F2F2F2F2F3F3F4F5F5F6F7EBBCE7F5F4F3F2F2F1F0F0F0F1F2F3F5F6F7F8FAFB +FCFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFD +FDFCFCECA9F7F5F4F3F2F1F0F0F0F1F2F3F3F5F6F7F7F8F8F7F7F6F5F3F2F1F0 +EFEFEFEFEFF0F2F3F4F6F7F9FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFEFEFBFEEEBC5E00B6F7F7F5F5F4F4F4F4F5F5F7F7F8FAFB +FBFDFDFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFCFBE5D5D6D4CCC4C0BDBCBAB9B9B8B7B6B6B5B4B3B3B3B2B2B1B1B1B0AFAE +A99B805E4AA0B5B9BCC1C5CACFD5D9DFE3E7EAEDEF943245535D656C74797F84 +888C8E90929495979797979797969594918F8D8A8784817E7B7873716E6B6661 +5B534C483F3C3732281C0900000080B0B3B5B8BCC0C4C9CFD3D8DDE2E6EAEDEF +DDD5E2A280EDF2F2F1F1F2F2F2F3F4F5F7F8FAFBFBFDFDFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFB900B6F8F7F5F4F3F2 +F2F1F2F2F2F3F3F5F5F6F7F3D6D8F5F4F3F2F2F1F1F1F1F2F3F3F5F7F8F9FAFB +FCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE +FDFCFDE8CBF8F6F5F3F2F2F1F1F1F2F2F3F4F5F6F7F8F8F8F8F7F7F6F5F3F2F2 +F1F0F0F0F1F2F3F4F6F7F8FAFBFCFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFDFAFADC9D2612E8F6F5F3F3F2F2F2F2F3F4F5F6F7F8FA +FBFCFDFDFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFCFBE6D2D3D1CBC3BEBBB9B9B8B7B6B6B5B4B3B3B3B2B2B1B1B0B0B0B0B0AD +A99D84634B96B5B9BCC1C5CACFD5D9DFE3E7EAEDEFD71C3F4C575F676E74797F +8487888B8C8F90919192929291908F8E8D8A878683807C79777372706E6B6664 +5E58524A4A474741392A19000012A6B0B2B5B8BCC0C4C9CED3D8DDE2E6EAEDEF +EACBDFC987B5F2F1F1F0F1F1F2F3F3F5F7F8F9FAFBFCFDFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFD681EEDF8F6F5F3F2F2 +F1F1F1F1F2F3F3F4F5F6F7F5E3CFF5F5F3F3F2F2F2F2F2F2F3F5F6F7F8FAFBFB +FDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE +FDFDFDBFF1F8F7F5F4F3F2F2F2F2F2F2F3F4F5F7F7F8F8F8F8F8F8F7F6F5F4F3 +F3F2F2F2F3F3F5F6F7F8FAFBFBFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFBF9F0C5760077F6F5F3F2F1F0F0F0F0F2F2F3F5F7F8F9 +FAFBFDFDFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFCFBEAD0D1CFC8C1BCB9B7B7B6B6B5B4B3B3B2B2B1B1B0B0B0B0B0B0B0B0AD +A99E86644B92B5B9BCC1C5CACFD5D9DFE3E7EAEDEFF04E3745505B62686E7379 +7D80838687898A8B8C8D8C8D8B8B8A87878583817E7A7976737371716F6E6B67 +625E5856545656504535210E005DAEB0B2B5B8BCC0C4C9CED3D8DDE2E6EAEDEF +F1CDD1DFAB7EE2F0F0F0F0F0F1F2F3F4F6F7F8FAFBFCFDFDFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFC30084F8F7F5F4F3F2F1 +F0F0F0F0F2F2F3F4F5F6F7F7EBCCF5F5F4F3F3F2F2F2F2F3F4F5F6F7F9FAFBFC +FDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDEFC5FAF8F7F6F5F4F3F2F2F2F2F3F4F5F6F7F8F8F9F9F9F9F8F8F7F7F5F5 +F4F4F4F4F5F5F7F7F8FAFAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEF9F8E1A93F00C0F5F3F2F0EFEFEFEFEFF0F1F2F4F5F7F8 +FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFCFBEACFCFCEC6BEB9B7B6B5B4B3B3B2B2B1B1B0B0B0B0B0B0B0B0B0B0B0AE +A99F87684E87B5B9BCC0C5CACFD5D9DFE3E7EAEDEFF0BE263F4A535C62686E73 +777A7D8082838586878787868786848382807D7B78767471737171717070706C +6B665E5C5F5F6665543F2A120095AFB0B3B5B8BCC0C4C9CFD3D8DDE2E6EAEDEF +F1E2C4DBD19798EDF0EFF0F0F0F1F2F3F5F7F8F9FAFBFDFDFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFA7100D4F8F6F5F3F2F1F0 +F0F0F0F0F1F2F3F4F5F6F7F7F3DBE9F5F5F3F3F3F2F3F3F3F5F5F7F8F9FAFBFC +FDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFEDDE7FAF9F8F7F5F4F3F3F3F3F3F3F4F5F6F7F8F9FAFAFAFAF9F9F8F8F7F7 +F6F6F6F6F7F7F8F8FAFAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFBF2CA7C004EF3F3F2F0EFEDEDEDEDEDEFF0F1F3F5F7F8 +FAFBFCFDFDFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFCFBEFCBCDCBC5BEB8B6B5B3B3B2B1B1B0B0B0B0B0B0B0B0B0B0B0B0B0B0AE +AAA18C6F5284B5B8BCC0C5CACFD5D9DFE3E8EAEDEFF0EF4435444E565D62676D +7175787B7C7E7E7F8180808181817F7E7C7B7876757171706F6F727173757472 +6F6B656465666F905C412A124EADAFB0B3B6B9BCC0C5CACFD3D9DEE2E6EAEDEF +F1F2C6CADEBF90B8F0EFEFEFF0F0F2F3F4F6F7F8FAFBFCFDFDFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFB30071F8F7F5F4F3F2F0F0 +EFEFEFF0F1F2F3F4F5F6F7F7F7E8DFF6F5F4F3F3F3F3F3F4F5F6F7F8FAFBFBFD +FDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFEDFFBFAFAF8F7F6F5F4F3F3F3F3F4F5F6F7F8F8FAFAFAFAFAFAFAFAF9F8F8 +F8F7F7F8F8F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFBE3A74100B5F3F2F0EFEDECEBEBEBECEDEFF0F2F4F6F7 +F9FAFBFDFDFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBEFC9CBCBC4BDB7B5B3B2B1B1B0B0B0B0B0B0B0B0B0B0B0B0B0B0B1B0AF +ABA390725678B5B8BCC0C5CACFD4D9DEE3E7EAEDEFF1F0B9233A454F565C6366 +6C6F727477797A7A7B7C7C7C7B797A79777574716F6F6C6C6E6F717577777878 +77726C6866666765533A280096ADAFB1B3B6B9BCC1C6CBCFD4D9DFE3E7EBEDF0 +F1F2DFBBD1D9B38FC5EFEFEFEFF0F0F2F3F5F7F8F9FAFBFCFDFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFDF4A09D7F8F6F5F3F2F0F0EF +EFEFEFF0F0F2F3F4F5F6F7F7F7F4DFF2F5F5F4F4F3F3F4F5F5F7F8F8FAFBFBFD +FDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEEDEFFBFBFAF8F7F7F5F5F4F4F4F4F5F5F7F7F8F9FAFAFBFBFBFBFBFAFAFAF9 +F9F9F9F9FAFAFAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFFFFF4C46F004EEFF2F0EFEDEBEAEAEAEAEBECEDEFF1F3F5F7 +F9FAFBFDFDFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBF5C6C7C7C1BBB6B3B2B0B0B0B0B0AFAFAFAFB0B0B0B0B0B0B0B1B1B1B0 +ADA592745771B5B8BCC0C4CACFD4D9DEE3E7EBEDEFF0F1F0632E3C4750575B61 +656A6C6E72727575767677757674747372706E6D6B6865676B6D7174787C7E80 +7F79716B66625C5347341962ADAEB0B1B3B6B9BDC1C6CBD0D5DADFE3E8EBEEF0 +F2F2F2C5BCD4D3AE94D1EEEEEEEFF0F1F2F4F5F7F8FAFBFBFDFDFEFEFEFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFF883008DF8F7F5F3F2F1F0EFEE +EEEEEFEFF0F2F3F4F5F7F7F7F8F7EAE7F6F5F5F5F4F4F5F5F6F7F8F9FAFBFCFD +FDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEE7FDFCFBFAF9F8F7F6F5F5F5F5F5F5F6F7F8F8FAFAFBFBFBFCFBFBFBFBFBFA +FAFAFAFAFBFBFBFCFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFEFFFFDE971E00C7F3F1EFEDEBEAE9E8E8E9EAEBEDEFF1F3F5F7 +F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBF6C4C4C4C0B9B5B2B0B0B0AFAFAFAFAFAFAFB0B0B0B0B0B1B1B2B2B2B0 +AFA695785B62B5B8BCC0C4C9CFD4D9DEE3E7EAEDF0F0F1F1D71C323E474E5459 +5E6265676C6D6F7071717170706F6F6D6C6B686564626264676B71777B818689 +8782796D635C54483C2823A5ADAEB0B2B4B7BABFC3C7CCD1D6DBE0E4E8ECEFF0 +F2F3F3E9AFBED7D0B09BD0EDEDEEEFF0F1F3F4F6F7F8FAFBFCFDFDFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFA90034EDF7F5F4F2F1F0EFEEED +EDEDEFEFF0F2F3F4F5F7F7F8F8F8F5E4F4F6F5F5F5F5F5F6F7F7F8F9FAFBFCFD +FDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +F1FAFDFCFBFAF9F8F7F7F6F5F5F5F5F6F7F7F8F9FAFBFBFCFCFDFDFCFCFCFCFB +FBFBFBFBFBFCFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFFFFF3B14E0085F4F2F0EEECEAE9E8E7E7E8E9EAECEFF0F3F5F7 +F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBFAC4C3C4BFB9B3B1B0AFAFAFAFAFAFAFAFB0B0B0B0B0B1B1B2B2B3B2B1 +AFA8997F5F52B5B8BCBFC4C9CED3D8DDE3E6EAEDF0F1F2F1F0AD1E343E454B52 +565B5F636566686A6A6B6B6B6B6B6A676564615E5C5B5C5F636C70777D868D91 +908B7F7062574A3F2E0E8DADADAFB0B3B5B8BCBFC4C8CDD2D7DCE1E5E9EDEFF1 +F3F3F3F3D7ACC1D8CFB3A3C8ECEDEEEFF0F2F3F5F6F8F9FAFBFCFDFDFEFEFEFE +FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFBC2600CBF7F6F5F3F2F0EFEEEDED +EDEDEEEFF0F2F3F5F6F7F8F8F8F8F8F2EBF7F6F6F5F5F6F6F7F8F8FAFAFBFCFD +FDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +F5FDFDFCFBFAFAF8F8F7F6F6F5F5F6F7F7F8F9FAFAFBFCFCFDFDFDFDFDFDFDFD +FDFCFCFDFDFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFFFFFFCB6A0047EAF3F1EFEDEBE9E8E6E6E6E7E8EAECEEF0F3F5F7 +F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBFACCC1C2C0B9B3B1AFAEAEAEAFAFAFAFB0B0B0B0B1B1B2B2B3B3B3B3B2 +B0AA9C826350ADB8BBBFC4C9CED3D8DDE3E6EAEDEFF1F2F2F0ED7326343A4148 +4C52565B5D5E6163646563646463625F5D5D585654545759616A70767F87909A +9E928172625244371C6FACADAEB0B1B3B6B9BCC1C5CACFD3D9DDE2E6EAEDF0F2 +F3F4F4F4F3BFAAC2D8D2BCAABCE8EDEEEFF0F2F3F5F7F8F9FAFBFCFDFDFEFEFE +FEFEFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFC641009FF8F7F5F3F2F0EFEEEDECEC +EDEDEEEFF0F2F3F5F6F7F8F8F9F9F8F8EFF3F7F7F6F6F7F7F7F8F9FAFBFBFCFD +FDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF5 +FEFDFDFCFBFAFAF8F8F7F7F7F6F6F7F7F8F8F9FAFBFBFCFDFDFDFDFDFDFDFDFD +FDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFFFFFFDB820016D5F4F2F0EDEBEAE8E6E6E6E6E7E8EAECEEF0F3F5F7 +F9FAFBFDFDFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBFAD1BDC0BFB9B4B0AFAEAEAEAFAFB0B0B0B0B0B1B1B2B2B3B3B3B3B3B2 +B1AC9F866850A3B7BBBFC4C8CED3D8DDE2E6EAEDF0F2F2F2F1EFE54A2632393E +44484C505356575B5C5C5C5C5B5B59575453524F4F4E505B636D72757C86909C +B894806F5D4E412653A9ADADAFB0B2B4B7BABEC2C6CBD0D5DADFE3E8EBEEF0F3 +F3F4F5F5F3EEADA6C1D7D7C5B3B7DAEDEEEFF0F2F3F5F7F8F9FAFBFBFDFDFDFE +FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFC44F0078F3F7F5F3F2F0EFEEEDECEBEB +ECEDEEEFF0F2F4F5F7F8F8F9FAFAF9F9F8EFF6F7F7F7F7F7F8F8F9FAFBFBFCFD +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FE +FEFDFDFCFBFBFAF9F8F8F7F7F7F7F7F8F8F9FAFBFBFCFDFDFDFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFFFFFFE58E0000BBF5F3F1EFEDEAE8E7E6E5E5E6E6E8EAECEFF1F3F5F7 +F9FAFBFDFDFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBFAD8BCBEBEB9B4B0AFAEAFAFAFB0B0B0B0B1B1B2B2B3B3B3B3B4B4B3B4 +B2AEA18B6E5398B7BBBFC4C8CDD3D8DDE2E6EAEDF0F1F2F2F2F0EEE03F233035 +3A4144474A4C4E5052535253535250504E4C4A474548505E68707476797D8790 +9387786657482E45A9ADADAEB0B1B3B6B9BCBFC4C8CDD2D7DBE0E5E9ECEFF1F3 +F5F5F5F5F5F3EBA59FBBD4D9CFC3BAC7E3EEEFF0F2F3F5F7F8F9FAFBFBFCFDFD +FDFDFEFEFEFEFEFEFEFEFFFFFFFFFDB94B0064F3F7F5F3F2F0EFEEEDECEBEBEB +ECEDEEEFF1F3F4F6F7F8F9FAFAFAFAF9F9F8F2F7F7F7F7F8F8F8FAFAFBFBFDFD +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFE +FEFDFDFCFBFBFAF9F8F8F8F7F7F7F8F8F9FAFAFBFCFDFDFDFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFFFFFFE7900000A4F6F4F2F0EDEBEAE8E6E5E5E5E6E7E8EAEDEFF1F3F5F8 +F9FBFCFDFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFDFBFADFBCBFBFB9B3B0AEAFAFAFB0B0B0B0B1B1B2B2B3B3B3B3B4B4B5B4B5 +B3AFA49072548DB7BABFC3C8CDD2D7DCE1E6EAEDEFF2F2F3F2F1EFECD347212C +32353A3E41444547484A4B4B4A4A48454544413F3E45525F6B73757575767A7E +7D776A5C4C3044A4ACADAEAFB0B2B4B7BABDC1C6CACFD3D9DDE2E6EAEDF0F3F5 +F5F6F6F6F5F4F3E5A197B3CFDBD9D1C8C2CFE4EFF0F2F3F5F6F7F8FAFAFBFBFC +FDFDFDFDFDFDFDFEFFFFFFFFFFEBA7350064EBF6F5F3F2F0EFEDEDEBEBEBEBEB +EBEDEEF0F2F3F5F7F8F8FAFAFAFAFAFAFAF9F7F5F7F8F8F8F8F9FAFAFBFCFDFD +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFE +FEFDFDFDFBFBFAFAF9F8F8F8F8F8F8F9FAFAFBFBFCFDFDFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFFFFFFDF870000A2F7F5F3F0EFECEAE8E7E6E5E5E5E6E7E9EBEDEFF2F4F6F8 +FAFBFCFDFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFDFBFAE6BABEBEB9B4B0B0AFAFB0B0B0B0B1B2B2B3B3B3B3B3B4B4B5B5B6B5 +B3B0A69476597FB6BABFC3C8CDD2D7DCE1E6EAEDF0F2F3F3F3F2F0EDEADC481E +282E303537393C3E3F41413F41413F3F3E3E3C393942505F707B78716D6D6C6D +6B645B4E2E53A9ACADADAFB0B1B3B6B9BCBFC4C8CCD1D5DBDFE4E8EBEFF2F3F5 +F7F7F7F7F5F4F3F2E99D91A9C6D8DFDDD5D0CED2E0EBF1F3F5F6F7F8F9FAFAFB +FBFBFCFCFDFEFFFFFFFFFFFED388090078F2F6F4F3F2F0EFEDECEBEAEAEAEAEB +ECEDEFF0F2F3F5F7F8F9FAFBFBFBFBFAFAFAF9F8F6F8F8F8F9FAFAFBFBFCFDFD +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFEFE +FEFEFDFDFCFBFAFAFAF9F8F8F8F8F9FAFAFBFBFCFDFDFEFEFEFEFEFFFFFFFFFF +FFFFFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFD +FFFFFBCD75000EB2F7F5F3F2EFEDEBE9E8E6E5E5E5E5E6E8EAEBEEF0F2F5F7F8 +FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFDFBFAEDBABCBDBAB6B3B0B0B0B0B0B1B1B2B2B3B3B3B3B4B4B5B5B5B6B6B6 +B4B1A9977C5F6FB6BABEC2C7CCD1D7DBE1E5E9EDEFF2F3F3F3F2F1EFEBE8DF76 +1623282C2E3434353739393A3939373739413F3C343C4B597098756A635D5B5B +5853471E6EA9ACADADAEB0B1B3B5B7BABEC1C6CACFD3D8DDE1E6E9EDF0F2F4F6 +F7F8F8F7F6F5F3F2F0ECAC7F95B3CFDDE3E3E1DEDDDCDDE4E9EEF1F4F5F7F8FA +FBFDFEFFFFFFFFFFFFFFE3B16100009DF2F5F4F2F1F0EFEDECEBEAEAEAEAEAEB +ECEDEFF1F2F4F6F7F8FAFAFBFBFBFBFBFBFAFAFAF8F8F9F9FAFAFAFBFBFCFDFD +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFEFE +FEFEFDFDFCFBFBFAFAFAF9F9F9F9FAFAFBFBFCFDFDFDFEFEFEFEFFFFFFFFFFFF +FFFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFAF3F7 +F8E9B0520035C9F7F5F4F2F0EEECEAE8E7E6E5E5E5E6E7E8EAEDEFF1F3F5F7F9 +FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFCFAF5BABDBFBCB7B3B1B1B0B1B1B2B2B3B3B3B3B4B4B4B5B5B5B6B6B6B6 +B4B3AB9B82655CB6B9BEC2C6CCD1D6DBE0E5E9EDF0F2F3F3F4F3F2F0EDEAE6E2 +A71C1C2126282A2C2E2E3030302E2E303A3F473E3435414C5E68635D56504C4B +4735238CACADADADAEB0B1B3B4B6B9BCC0C4C8CDD1D5DADFE3E8EBEEF2F3F6F7 +F8F8F8F8F7F5F4F3F1F0EEC57A819CB9D0DDE5E9EBECECECEDEFF0F4F6F9FDFF +FFFFFFFFFFFFFFFBE5BE7F1E0032C7F5F4F3F2F0EFEEEDEBEAEAE9E9E9E9EAEB +ECEEF0F2F3F5F7F8F9FAFBFBFCFCFCFBFBFBFAFAFAFAF9F9FAFAFBFBFBFCFDFD +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFEFDFDFCFBFBFAFAFAFAFAFAFAFAFBFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFF +FFFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF8ECE9EDE7 +C47A190067E6F7F6F4F2F0EFEDEBE9E8E6E5E5E5E5E6E8EAEBEDF0F2F4F6F8FA +FBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFCFAF9C1BCBFBCB8B4B3B1B1B1B2B3B3B3B3B3B4B4B4B5B5B6B6B6B6B6B6 +B5B3ADA1876852AEB9BDC1C6CBD1D6DBDFE5E9EDEFF2F3F4F5F4F3F1EFECE8E4 +E1CB651219212323262628282628282A353F5F3E3028343F474E4E4A453F3C35 +1C61A4ACADADAEAFB0B1B3B4B6B9BCBFC3C6CBCFD3D8DDE1E5EAEDF0F3F5F7F8 +F9FAF9F8F8F7F5F3F2F0EFEDDF996A7E97B4CBDAE4EAEFF3F8FAFEFFFFFFFFFF +FFFFFFFFF7E9D5B38232000989EAF4F3F2F1F0EFEDECEBEAE9E8E8E8E8E9EAEB +EDEFF0F2F4F6F7F9FAFBFBFCFCFCFCFCFBFBFBFBFAFAFAFAFAFAFBFBFCFCFDFD +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFEFDFDFCFBFBFBFAFAFAFAFAFAFBFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFBFAFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCF3EAE5E5DEC38A +3A0035B3F7F7F6F5F3F1EFEDEBEAE8E7E6E5E5E5E6E7E9EAEDEFF1F3F5F7F9FA +FBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFCFBF9CCBCBEBEB9B6B3B2B2B2B3B3B3B3B3B4B4B5B5B5B6B6B6B6B6B7B6 +B6B5B0A48C6D56A0B9BCC1C6CBD0D5DBDFE4E8ECEFF2F3F5F5F5F4F2F0EDEAE6 +E3DFD9AF4A0E161C1C1E1E1E1E1E1E1E2A343932261C1E2E343737353026164B +94ADADADADAEAFB0B1B3B4B6B9BBBFC1C5C9CDD2D6DBDFE3E8EBEFF1F4F6F8F8 +F9FAFAFAF8F8F6F5F3F1EFEDECEACA7E5D6F8AA5B9C9D5DEE4E9EDF1F2F2F2F0 +EDE7DDCFB8996C2600006DD2F3F3F2F1F0EFEEEDEBEAEAE8E8E8E8E8E8EAEBEC +EDEFF1F3F5F7F8FAFAFBFCFDFDFDFDFDFCFCFBFBFBFBFBFBFBFBFBFBFCFDFDFD +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFEFDFDFDFCFBFBFBFBFBFBFBFBFBFBFCFDFDFDFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFEFDF3EDF2F6F8F9FBFDFEFEFEFEFEFEFEFEFEFCF7F0EBE5D7B57F3F00 +2699EBF8F7F6F5F3F2F0EEECEAE9E8E6E6E5E6E6E7E8EAEBEEF0F2F4F6F8FAFB +FCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFCFBF9D7BBBEBFBAB6B3B2B1B3B3B3B3B4B4B4B5B5B6B6B6B6B6B6B7B7B6 +B7B6B0A69175598FB9BCC1C5CACFD5DADFE3E8EBEFF2F4F5F5F5F4F3F2EFECE8 +E5E1DDD9D4AE5D090E121619161616161923262116090E161C1E1E16125995AD +ADADADAEAFB0B0B1B3B4B6B9BBBEC1C4C8CDD1D5D9DDE2E6EAEDF0F2F5F7F8FA +FAFBFAFAFAF8F7F5F4F2F0EFEDEBEAE8C9844A53657B8FA2AFB9C0C4C4C3BEB7 +AB9984612C00001C7FD1F2F2F1F0F0EFEDEDEBEBEAE9E8E8E7E7E7E8E9EAEBED +EFF0F2F4F6F7F9FAFBFCFDFDFDFDFDFDFDFDFCFBFBFBFBFBFBFBFBFCFCFDFDFD +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFEFDFDFDFCFCFBFBFBFBFBFBFBFCFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFEFBE8D7D7E3F1FDFFFFFFFFFFFFFFFFFFFFF4E1C194632A003F9C +EBF8F8F7F5F4F3F2F0EFEDEBEAE8E7E6E6E6E6E7E8EAEBEDEFF1F3F5F7F8FAFB +FDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFCFBF9E2BBBFC0BCB8B4B3B3B3B3B4B4B4B5B5B6B6B6B6B6B6B7B7B7B8B8 +B7B6B1A9977B5F7BB8BCC0C4C9CFD4D9DFE3E8EBEFF2F3F5F6F6F5F5F3F0EEEB +E8E4DFDBD7D3CFBF8C4A12090909090E0E120E0E0900000000194E7EA7ADADAD +AEAEAFB0B0B1B2B3B5B6B9BBBEC1C4C8CBCFD3D8DCE0E5E8EBEFF2F5F6F8FAFA +FBFBFBFBFAF9F8F7F5F3F1EFEDECEAE9E8E7DAA86834303A444F54585854473A +1E000000266FAFE8F0F0F0EFEFEEEDECEBEAEAE9E8E7E7E6E6E6E7E8E9EAECEE +EFF1F3F5F7F8FAFBFBFDFDFDFDFEFDFDFDFDFDFCFCFCFBFBFBFCFCFCFDFDFDFE +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFEFEFDFDFDFCFCFBFBFBFBFCFCFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFEFEFEFEEBCFBCBBCDE1E8EEEFEDE8DEC6A481592E00488CCBF8F9 +F8F7F7F5F4F3F2F0EFEDEBEAE9E8E7E6E6E6E7E8EAEBEDEFF0F2F5F7F8FAFBFC +FDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFDFBFAEDBCC0C0BFB9B6B4B4B3B4B4B4B5B5B6B6B6B6B6B6B7B7B7B8B8B8 +B8B6B3AD9C816368B8BCBFC4C9CED3D9DEE3E7EBEFF2F4F5F7F7F7F5F4F2F0ED +EAE6E3DFDBD6D2CFCBC7BEA0846A48351C1C1C1C3C48667B95ADAFAFAFAFAFAF +B0B0B0B1B2B3B4B6B7B9BCBFC1C4C8CBCFD3D7DBDFE3E7EBEEF1F3F6F7F9FAFB +FCFCFCFBFBFAF9F7F6F4F2F0EFEDEBEAE8E8E6E6E6DFC0A182634F2C2C2C2C57 +658AA6CAEBEEEEEEEEEDEDEDECEBEBEAE9E8E8E7E6E6E6E6E6E7E8E8EAEBEDEF +F0F2F4F6F8F9FAFBFCFDFDFEFEFEFEFEFDFDFDFDFDFCFCFCFCFCFCFDFDFDFDFE +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFEFEFDFDFDFDFCFCFCFCFCFCFDFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFEFEFDFDFDFDFCF0D5BFAA957E6C61564764799FB9E0F8F9F9F8F7 +F7F6F5F3F2F1F0EFEDECEAEAE8E8E7E6E7E7E8E9EBECEEF0F2F4F6F7F9FAFBFD +FDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFDFBFAF7BCBFC1BFBCB8B5B4B4B4B5B5B5B6B6B6B6B6B7B7B7B8B8B8B9B9 +B8B7B5B0A1876B5BB4BBBFC4C8CDD3D8DDE2E6EBEFF1F3F5F7F7F7F6F5F3F2EF +ECE9E5E2DEDAD6D2CECBC7C4C1BFBCBAB8B6B5B4B3B3B2B1B0B0B0B0B0B0B0B1 +B1B2B3B3B4B6B7B9BABCBFC1C4C8CBCFD3D6DADEE2E6EAEDF0F2F5F7F9FAFBFC +FCFCFCFCFBFAFAF8F7F5F3F2F0EEECEBE9E8E7E6E6E5E5E6E6E6E6E7E8E8E9EA +EAEBEBEBEBEBEBEBEBEBEBEAEAE9E8E8E7E6E6E6E5E5E5E6E6E7E8EAEBEDEEF0 +F2F3F5F7F8FAFBFCFDFDFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFEFE +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFEFEFEFDFDFDFDFDFCFCFBFBFBFBFBFBFBFAFAFAFAFAF9F9F8F8F7F7F6 +F5F4F3F2F1F0EFEDECEBEAE9E8E8E7E7E8E8EAEBECEEF0F2F3F5F7F8FAFBFCFD +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFDFDFBFAF8C7BDC1C0BDB8B6B5B4B5B5B6B6B6B6B6B6B7B7B7B8B8B8B9B9B9 +B9B9B6B2A58E705DA5BABFC3C8CDD2D7DDE1E6EAEEF0F3F5F7F7F7F7F6F5F3F0 +EEEBE8E5E1DDD9D5D2CFCBC8C5C2C0BDBCB9B8B7B6B5B4B3B3B3B3B2B2B3B3B3 +B3B4B5B6B7B9BABCBEC0C3C5C8CBCFD3D6DADEE1E5E9ECEFF2F4F7F8FAFBFBFD +FDFDFDFDFCFBFAF9F8F7F5F3F1EFEDECEAE9E8E6E6E5E5E5E5E5E5E6E6E6E7E8 +E8E8E8E9E9E9E9E9E9E8E8E8E7E7E6E6E6E5E5E5E5E5E5E6E7E8E9EAECEEF0F1 +F3F5F7F8FAFBFBFDFDFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFEFEFE +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFEFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFEFEFEFDFDFDFDFCFCFBFBFBFBFAFAFAFAFAF9F9F9F8F8F8F7F7F6F5F5 +F3F3F2F1F0EFEDECEBEAEAE8E8E8E8E8E9EAEBECEEF0F1F3F5F7F8FAFBFBFDFD +FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFEFDFBFAF8D2BEC1C1BDB9B5B5B4B5B6B6B6B6B6B7B7B7B8B8B8B9B9B9B9B9 +B9B9B8B3A994796191B9BEC2C7CCD1D6DBE1E6EAEDF1F3F5F7F8F8F8F7F6F5F3 +F0EEEBE8E5E1DDD9D6D2CFCCC8C6C4C1BFBDBCBAB9B8B7B6B6B5B5B5B5B5B5B6 +B6B7B8B9BABCBDBFC1C4C6C9CDCFD3D7DADDE1E5E8EBEFF1F3F6F8FAFBFCFCFD +FEFDFDFDFDFCFBFAF9F7F6F4F2F1EFEDEBEAE9E8E6E6E5E5E5E5E5E5E5E5E5E5 +E6E6E6E6E6E6E6E6E6E6E6E6E5E5E5E5E5E5E5E5E5E5E6E6E8E9EAEBEDEFF1F3 +F5F6F8F9FAFBFCFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFEFEFEFE +FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFEFEFEFEFDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFEFEFEFDFDFDFCFCFBFBFBFAFAFAFAF9F9F8F8F8F8F7F7F7F6F5F5F4F3 +F2F2F0EFEFEDEDEBEBEAE9E9E8E8E9EAEAEBEDEEF0F1F3F5F6F8F9FAFBFCFDFE +FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFDFCFAF8DDBFC1C3BFB9B7B6B5B6B6B6B6B6B7B7B7B8B8B8B9B9B9B9B9B9 +BAB9B8B4AD9B81657AB9BDC1C6CBD0D5DBE0E5EAEDF0F3F5F7F8F9F9F8F7F7F4 +F2F0EDEBE8E4E1DDDAD6D3D0CDCAC8C5C3C1BFBEBCBBBAB9B9B9B8B8B8B8B9B9 +B9BABCBCBEBFC1C4C6C8CBCDD1D3D7DBDEE1E5E8EBEEF0F3F5F7F9FAFBFDFDFD +FEFEFEFDFDFDFCFBFAF8F7F5F4F2F0EFEDEBEAE8E8E6E6E5E5E4E4E4E4E4E4E4 +E4E5E5E5E5E5E5E5E5E5E5E4E4E4E4E4E4E4E4E5E5E6E6E8E9EAEBEDEFF1F2F4 +F6F7F8FAFBFCFDFDFEFEFEFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE +FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFEFEFEFDFDFDFCFBFBFBFAFAFAF9F9F8F8F8F7F7F7F6F6F5F5F4F3F3F2 +F1F0EFEFEDEDECEBEAEAEAE9E9EAEAEBEBEDEEF0F1F3F5F6F8F9FAFBFCFDFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFDFCFBF9EABCC1C3C0BCB9B7B6B6B6B6B6B7B7B7B8B8B9B9B9B9B9B9BABA +BBBAB9B7B0A3886A66B9BCC1C5CBCFD5DADFE4E8ECF0F3F5F7F8F9F9F9F8F7F6 +F4F2F0EDEAE8E5E1DEDBD7D4D1CFCCC9C7C5C4C1C0BFBEBDBCBCBCBCBCBCBCBC +BDBEBFC1C2C4C6C8CACCCFD2D5D8DBDFE2E5E8EBEEF0F3F5F7F8FAFBFCFDFEFE +FEFEFEFEFEFDFDFBFBFAF8F7F5F3F2F0EFEDEBEAE9E8E6E6E5E5E4E3E3E3E3E3 +E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E4E5E5E6E6E8E9EAEBEDEFF0F2F4F5 +F7F8FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFEFEFDFDFDFDFCFBFBFBFAFAF9F9F8F8F8F7F7F6F6F5F5F4F3F3F2F2F1 +F0EFEFEEEDECEBEBEAEAEAEAEAEBEBECEDEFF0F2F3F5F6F7F9FAFBFCFDFDFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFDFCFBF9F5BFC0C3C1BDB9B7B7B6B6B7B7B7B8B8B8B9B9B9B9B9BABABBBB +BCBBBAB9B3A992735FACBCC0C4C9CFD4D9DEE3E8ECEFF2F5F7F8F9FAFAFAF8F7 +F6F4F2F0EDEBE8E5E2DFDBD9D6D3D1CECCCAC8C6C5C4C2C1C1C0C0C0C0C0C0C1 +C1C2C4C5C6C8CACCCFD1D3D6D9DCDFE2E5E8EBEEF0F3F5F7F8FAFBFCFDFEFEFE +FEFEFEFEFEFEFDFDFBFAFAF8F7F5F3F2F0EFEDECEAE9E8E7E6E5E5E4E3E3E3E3 +E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E4E5E5E6E7E8E9EAECEDEFF0F2F4F5F7 +F8FAFBFBFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFEFEFEFDFDFDFCFBFBFAFAFAF9F8F8F7F7F7F6F5F5F5F4F3F3F2F2F1F0 +EFEFEEEDEDECEBEBEBEBEBEBEBECEDEEEFF0F2F3F5F6F7F8FAFBFCFDFDFEFEFE +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFDFCFBFAF7CBBFC2C3BFBBB8B6B6B7B7B7B8B8B9B9B9B9B9BABABBBBBCBC +BCBCBCBCB7AE997B669BBBBFC4C8CED3D8DDE3E7EBEFF2F5F7F8FAFAFAFAFAF9 +F7F6F4F2F0EDEBE8E6E3E0DDDAD7D5D3D1CFCDCBC9C8C7C6C6C5C4C4C4C4C5C6 +C6C7C8CACBCDCFD1D3D5D8DBDDE0E3E6E9EBEEF0F3F5F7F8FAFBFCFDFDFEFEFF +FEFEFFFFFEFEFEFDFCFBFAFAF8F7F5F4F2F1EFEEECEBEAE8E7E6E6E5E5E4E3E3 +E3E3E3E3E3E3E3E3E3E3E3E3E3E3E4E5E5E6E6E8E8EAEBEDEEEFF1F2F4F5F7F8 +FAFBFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFEFDFDFDFCFBFBFAFAFAF9F8F8F7F7F6F5F5F5F4F3F3F2F2F1F0F0 +EFEFEEEDEDECECECECECECEDEDEEEFF0F1F2F3F5F6F8F9FAFBFCFDFDFEFEFEFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFDFDFBFAF8D6BCC1C3C1BCB8B7B7B7B8B8B8B9B9B9B9B9BABABBBCBCBCBD +BDBDBDBDB9B19F846B85BABFC3C8CDD2D7DDE1E6EBEFF1F4F7F8FAFAFBFBFAFA +F8F7F6F4F2F0EEEBE9E6E4E1DFDCDAD7D5D3D1D0CECDCCCBCACAC9C9C9C9CACB +CBCCCDCFD0D2D3D5D8DADDDFE2E5E7EAECEFF0F3F5F7F8FAFBFCFDFDFEFEFEFF +FFFEFFFFFEFEFEFDFDFCFBFAFAF8F7F5F4F3F1F0EFEDEBEAE9E8E7E6E6E5E5E4 +E4E3E3E3E3E3E3E3E3E3E3E4E4E5E5E6E6E7E8EAEAEBEDEFF0F1F3F4F6F7F8FA +FAFBFCFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFEFDFDFDFCFBFBFBFAFAF9F8F8F7F7F6F5F5F4F3F3F2F2F1F1F0F0 +EFEFEEEEEDEDEDEDEDEDEEEEEFF0F0F2F3F4F5F7F8F9FAFBFBFDFDFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFDFDFBFAF8E6BDC1C3C1BCB9B8B8B8B8B8B9B9B9B9BABABBBBBCBCBCBDBE +BFBFBEBEBCB5A58E716AB9BEC2C7CCD1D6DBE1E5EAEEF1F3F6F8FAFBFBFBFBFB +FAF9F8F7F5F3F1EFEDEAE8E5E3E1DFDCDAD8D7D5D3D2D1D0CFCFCFCECECFCFCF +D0D1D2D3D5D7D9DBDDDFE1E3E6E8EBEDEFF1F3F5F7F8FAFBFBFDFDFEFEFEFFFF +FFFFFFFFFFFEFEFEFDFDFCFBFAFAF8F7F6F5F3F2F0EFEEEDEBEAE9E8E8E7E6E6 +E5E5E5E5E5E4E4E5E5E5E5E5E6E6E7E8E8E9EAEBEDEEEFF0F2F3F5F6F7F8FAFB +FBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFEFEFDFDFDFCFBFBFAFAF9F8F8F7F7F6F5F5F4F3F3F3F2F2F1F0F0 +EFEFEFEFEEEEEEEEEFEFEFF0F1F2F3F3F5F6F7F8F9FAFBFCFDFDFEFEFEFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFEFDFBFAF8F2BDC0C2C3BFBAB9B9B8B9B9B9B9BABABBBBBCBCBCBDBEBEBF +BFC0BFBFBFB9AE977865ABBDC1C6CBD0D5DBDFE5E9EDF0F3F6F8FAFBFBFCFCFB +FBFAFAF8F7F5F3F2F0EDEBEAE7E5E3E1DFDDDBDAD9D7D6D5D5D4D3D3D3D4D4D5 +D5D6D7D9DADCDDDFE1E3E5E8EAECEEF0F2F3F5F7F8FAFBFBFDFDFEFEFEFFFFFF +FFFFFFFFFFFFFEFEFEFDFDFCFBFBFAF8F8F7F5F3F2F1F0EFEDEDEBEAEAE9E8E8 +E7E7E6E6E6E6E6E6E6E6E7E7E8E8E9EAEBEBEDEEEFF0F1F3F4F5F7F8F9FAFBFB +FCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFEFEFDFDFDFCFBFBFBFAFAF9F8F8F7F7F6F5F5F4F3F3F2F2F2F1F0 +F0F0F0F0EFEFF0F0F0F0F1F2F3F3F5F5F7F7F8FAFAFBFCFDFDFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFDFCFAF9F7C6BFC4C4C0BBB9B8B8B9B9B9BABBBBBCBCBCBDBEBEBFBFC0 +C1C1C1C1C1BCB3A0826B94BCC0C5CACFD4D9DFE3E8ECF0F3F5F8FAFBFBFBFDFC +FCFBFBFAF8F7F5F4F2F0EFEDEBE9E7E5E4E2E1DFDDDDDBDBDAD9D9D9D9D9D9DA +DBDBDDDEDFE1E2E4E6E8EAEBEDEFF1F3F4F6F7F8FAFBFCFDFDFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFEFEFEFDFDFCFBFBFAF9F8F7F6F5F3F2F1F0EFEEEDECEBEBEA +EAE9E9E8E8E8E8E8E8E9E9EAEAEBEBECEDEEEFF0F1F2F3F5F6F7F8F9FAFBFBFD +FDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFEFEFDFDFDFCFBFBFAFAF9F8F8F8F7F7F6F5F5F4F3F3F3F2F2F2 +F1F1F1F1F1F1F1F2F2F2F3F3F5F5F6F7F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFDFCFBF9F7D5BFC4C4C1BCBAB9B9B9BABABBBCBCBCBDBDBEBFBFC0C1C1 +C1C2C2C2C2C0B7A68C737DBCBFC4C8CED3D8DDE3E7EBEFF2F5F7F9FBFCFCFDFD +FDFCFBFBFAF9F8F6F5F3F2F0EFEDEBEAE8E6E5E4E3E1E1E0DFDFDEDEDEDEDFDF +E0E1E1E3E4E5E6E8EAEBEDEFF0F2F3F5F7F8F9FAFBFCFDFDFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFEFEFEFEFDFDFCFBFAFAF8F7F7F5F4F3F2F1F0EFEFEEEDED +ECEBEBEBEBEBEBEBEBEBEBECEDEDEEEFEFF0F1F2F3F4F5F7F8F8FAFAFBFCFDFD +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFEFEFDFDFDFCFBFBFAFAFAF9F8F8F7F7F6F5F5F5F4F3F3F3F3 +F2F2F2F2F2F3F3F3F3F4F5F5F6F7F8F8FAFAFBFBFCFDFDFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFDFCFBFAF7E4BFC3C4C2BFBCBBBBBABBBBBCBCBDBDBEBFBFC0C1C1C1C2 +C3C4C4C4C4C2BBAE967968B6BFC3C8CDD2D7DDE1E6EAEFF2F5F7F8FAFBFDFDFD +FDFDFCFCFBFAF9F8F7F6F4F3F2F0EFEDECEBEAE8E7E6E5E5E4E3E3E3E3E3E3E4 +E5E5E6E7E8EAEBECEDEFF0F2F3F5F6F7F8FAFAFBFCFDFDFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFCFBFBFAF9F8F7F7F5F4F3F3F2F1F0F0EF +EFEEEEEDEDEDEDEDEDEEEEEFEFF0F0F1F2F3F3F5F5F7F7F8F9FAFBFBFCFDFDFE +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFEFDFDFDFCFBFBFBFAFAF9F8F8F7F7F7F6F5F5F5F5F4F4 +F4F4F4F4F4F4F5F5F5F6F7F7F8F8F9FAFBFBFCFDFDFDFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFDFDFBFAF8F3BEC1C4C4C1BDBCBCBBBCBCBCBDBEBFBFC0C0C1C1C2C3C4 +C4C5C5C5C5C4BFB29E836BA1BEC2C6CCD1D6DBE0E5EAEDF1F4F7F9FAFBFCFDFD +FEFDFDFDFCFBFBFAF9F8F7F5F4F3F2F0EFEFEDECEBEAEAE9E8E8E8E8E8E8E8E8 +E9EAEAEBECEDEFF0F1F2F3F5F6F7F8F9FAFBFBFDFDFDFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFCFCFBFAFAF9F8F7F7F6F5F4F3F3F2F2 +F1F1F0F0F0F0F0F0F0F0F1F1F2F2F3F3F4F5F6F7F7F8F9FAFAFBFCFDFDFDFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFEFEFDFDFDFCFBFBFBFAFAFAF9F8F8F8F7F7F7F6F6F6F5 +F5F5F5F6F6F6F7F7F7F8F8F9FAFAFBFBFCFCFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFEFDFBFAF8F6CCBEC4C4C2BFBCBCBBBCBDBEBFBFBFC0C1C1C2C3C4C4C5 +C5C6C6C7C6C4C1B9A68D738ABDC1C6CBCFD5DADFE4E8EDF0F3F6F8FAFBFCFDFE +FDFEFDFEFDFDFCFBFAFAF8F8F7F6F5F3F3F2F0F0EFEEEDEDEDECECECECECECED +EDEEEFEFF0F1F2F3F3F5F6F7F8F9FAFAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFCFBFBFAFAF9F8F8F7F7F6F5F5F4 +F3F3F3F3F3F3F3F3F3F3F3F3F4F5F5F6F7F7F8F8F9FAFAFBFBFCFDFDFEFEFEFE +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFEFEFEFDFDFDFCFCFBFBFBFAFAFAF9F8F8F8F8F8F7F7F7 +F7F7F7F7F8F8F8F8F9F9FAFAFBFBFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFDFCFAF8F7DCBFC4C6C4C1BEBDBDBEBFBFBFC0C1C1C2C3C4C4C5C5C6 +C6C7C8C8C7C6C4BFB0997E75BAC0C4C9CFD3D9DEE3E8EBEFF2F5F8FAFBFDFDFD +FEFEFEFEFEFDFDFCFBFBFAFAF9F8F7F6F5F5F3F3F2F2F1F0F0F0F0F0F0F0F0F0 +F0F1F2F2F3F4F5F5F7F7F8F9FAFAFBFCFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFDFCFBFBFAFAFAF9F8F8F7F7F7 +F6F6F5F5F5F5F5F5F5F5F6F6F7F7F7F8F8F9FAFAFBFBFBFCFDFDFDFEFEFEFEFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFEFEFEFDFDFDFCFCFBFBFBFAFAFAFAF9F9F9F9F8F8 +F8F8F8F9F9F9FAFAFAFBFBFBFCFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFDFCFBF9F7ECBFC3C7C6C4C1BFBFBFBFC0C1C1C2C3C3C4C4C5C6C6C7 +C8C8C8C9C8C8C6C2B6A18670A6BFC4C8CDD2D7DDE1E6EAEFF2F5F7F9FBFCFDFD +FEFEFEFEFEFEFEFDFDFCFBFBFAFAF9F8F8F7F7F6F5F5F4F4F3F3F3F3F3F3F3F3 +F4F4F5F5F6F7F7F8F8F9FAFAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFDFCFCFBFBFAFAFAF9F8F8 +F8F8F8F7F7F7F7F7F7F8F8F8F8F9F9FAFAFAFBFBFCFCFDFDFDFEFEFEFEFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFDFDFDFDFCFCFBFBFBFBFBFAFAFAFAFAFA +FAFAFAFAFAFBFBFBFBFCFCFDFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFDFCFBFAF8F5C6C2C6C8C5C1BFBFBFC1C1C2C3C3C4C4C5C6C6C7C8C8 +C8C9C9CAC9C9C8C4BCA98D748BBEC2C7CCD1D6DBE1E5EAEDF1F4F7F8FAFCFDFE +FEFEFEFEFEFEFEFEFDFDFDFCFBFBFBFAFAF9F8F8F8F7F7F7F6F6F6F6F6F6F6F6 +F7F7F7F8F8F8F9FAFAFBFBFCFCFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFDFDFDFDFCFBFBFBFBFAFA +FAFAFAF9F9F9F9F9F9FAFAFAFAFAFBFBFBFBFCFDFDFDFDFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFDFDFCFCFCFBFBFBFBFBFBFB +FBFBFBFBFBFCFCFCFDFDFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFDFDFBFAF8F5D5C3C6C8C7C4C1C1C1C2C3C3C4C4C5C6C6C7C7C8C8C8 +C9CACACBCACAC9C5BFB0998072BBC1C6CBCFD5DADFE4E8EDF0F3F6F8FAFBFDFD +FEFEFEFEFFFFFEFEFEFEFEFDFDFDFCFBFBFBFAFAFAF9F9F9F8F8F8F8F8F8F8F8 +F9F9F9FAFAFAFBFBFBFCFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFDFDFDFDFDFCFCFBFB +FBFBFBFBFBFBFBFBFBFBFBFBFBFBFCFCFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFCFCFCFC +FCFCFDFDFDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFDFBFAF8F6E4C0C5C9C9C6C4C4C4C3C4C4C5C6C6C7C7C8C8C8C9CA +CACBCBCBCBCAC9C8C4B9A28972A7C0C4C9CED3D9DDE3E7EBEFF2F5F8FAFBFCFD +FEFEFFFEFEFFFFFFFEFEFEFEFEFDFDFDFDFCFCFBFBFBFBFAFAFAFAFAFAFAFAFA +FAFBFBFBFBFCFCFDFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFDFDFD +FDFCFCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFEFEFEFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFD +FDFDFDFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFDFCFBF9F7F2C4C4CACCC9C6C4C4C4C5C6C6C7C7C8C8C8C9CACACB +CBCBCBCBCCCBCBCAC6BEAB92778DBFC3C8CDD2D7DCE1E6EAEEF2F4F7F9FBFCFD +FEFEFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFDFDFCFCFCFCFBFBFBFBFBFBFC +FCFCFCFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFD +FDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFDFCFBFAF7F5D5C6CBCECBC8C6C6C6C6C7C7C8C8C8C9CACACBCBCB +CBCBCCCCCDCCCBCBC8C1B39D8275BCC2C6CBD1D5DBE0E5E9EDF0F3F6F8FAFBFD +FDFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFD +FDFDFDFDFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFDFDFBFAF8F5E5C5C8CDCDCBC8C8C8C7C8C8C8C9CACACBCBCBCBCB +CCCCCDCDCDCDCCCBCBC6BBA68D77A5C1C5CACFD4D9DFE3E8ECEFF3F5F8FAFBFD +FDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFE +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFEFDFBFAF8F6F2C9C8CECFCDCBC8C8C8C8C9CACACBCBCBCBCBCCCC +CDCDCDCDCDCDCDCDCCC8C1B0987E88BFC4C8CDD3D8DDE2E6EBEFF2F5F7F9FBFC +FDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFDFCFBF9F7F4D7C9CED1CFCDCBC9C9CACACBCBCBCBCBCCCCCDCD +CDCDCDCDCECECECDCDCBC5B8A48778B5C3C7CCD1D6DBE0E5EAEDF0F3F7F8FAFB +FDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFDFCFBFAF7F5E7C6CBD0D1CFCDCBCBCBCBCBCBCBCCCCCDCDCDCD +CDCDCECECFCFCFCFCECDC9BFAD947E98C1C6CBCFD5DADFE3E8ECF0F3F5F8FAFB +FDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFDFDFBFAF8F6F2CBCBCFD3D1CDCBCBCBCBCBCCCCCDCDCDCDCDCD +CECECFCFCFCFCFCFCFCECBC4B69E877EBEC4C9CED3D8DDE2E6EBEFF2F5F7F9FB +FCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFEFDFCFAF8F7F4DBCBD1D3D3CFCDCCCBCCCCCDCDCDCDCDCDCECE +CFCFCFCFCFCFD0D0CFCECDC8BFAB907BAAC3C7CDD1D7DBE1E5EAEDF0F3F6F8FA +FBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFDFCFBF9F7F5EBC9CFD3D4D1CECDCCCCCDCDCDCDCDCECECFCF +CFCFCFCFD0D0D0D1D0CFCFCBC4B49B838EC1C6CBCFD5DADFE3E8ECF0F3F5F8FA +FBFCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFDFDFBFAF8F5F3D2CBD0D3D3D0CECDCDCDCDCDCECECFCFCFCF +CFCFD0D0D0D1D1D1D1D0CFCEC8BDA58C80B3C4C9CED3D8DDE2E6EBEFF2F5F7F9 +FBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFEFDFBFAF8F6F3E1C8CED3D5D2CFCFCECDCECECFCFCFCFCFCF +D0D0D0D1D1D1D1D1D1D1D1CFCDC3B0988797C3C7CCD1D6DBE0E5E9EDF0F3F6F8 +FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFDFCFBF9F7F5F0CACCD3D5D3D1CECECDCFCFCFCFCFCFD0D0 +D0D1D1D1D1D1D1D2D2D1D1D1CFC9B9A58F80BCC6CBCFD5D9DFE3E8EBEFF2F5F7 +FAFBFCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFDFCFBFAF8F5F2D9CBD1D5D3D2CFCFCFCFCFCFCFD0D0D0D1 +D1D1D1D1D1D2D2D2D3D3D1D1D1CCC3B199879FC4C8CDD3D7DDE1E6EAEEF1F4F7 +F8FAFBFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFDFDFBFAF8F6F3EACBCED3D5D3D1CFCFCFCFD0D0D0D1D1D1 +D1D1D1D2D2D2D3D3D3D3D3D2D3CFC7BBA58F87BFC7CCD1D5DBDFE5E8EDF0F3F5 +F8FAFBFCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFDFCFBF9F7F4F2D1CCD2D5D5D3D1D0D0D0D0D1D1D1D1D1 +D1D2D2D2D3D3D3D3D3D3D3D3D2D1CDC3B19B86A5C5CACFD4D9DDE3E7EBEFF2F5 +F7F9FBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFDFCFBFAF8F5F2E3CBCFD5D7D5D3D1D0D0D1D1D1D1D1D2 +D2D2D3D3D3D3D3D3D4D4D4D4D3D3D1C9BCA88F8BC1C8CDD2D7DCE1E5EAEDF0F3 +F6F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFDFDFBFAF8F6F3F0CECDD3D7D6D3D2D1D1D1D1D1D2D2D2 +D3D3D3D3D3D3D4D4D4D5D5D4D4D4D3CFC4B39B87ABC6CBD0D5DADFE3E8EBEFF2 +F5F7F9FBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFEFDFCFBF9F7F5F2DFCACED4D6D5D3D2D1D1D2D2D2D3D3 +D3D3D3D3D4D4D4D5D5D5D5D5D5D5D5D2CBBCA8918EC1C9CED3D8DDE1E6EAEEF1 +F4F7F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFEFEFDFCFBFAF8F5F3EFCBCCD2D6D6D4D2D3D2D2D3D3D3D3 +D3D3D4D4D4D5D5D5D5D5D6D6D6D5D6D5CFC5B49E90A9C7CCD1D5DBDFE4E8ECF0 +F3F5F8FAFBFCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFEFEFDFDFBFAF8F7F3F1DCCCD1D6D7D6D5D3D3D2D3D3D3D3 +D4D4D4D5D5D5D5D5D6D6D7D7D7D7D7D7D3CDC0AB968FC2CACFD3D9DDE2E6EAEE +F1F4F7F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFDFCFBF9F7F5F2EBCBCDD4D7D7D5D3D3D3D3D3D4D4 +D4D5D5D5D5D5D6D6D7D7D7D7D8D8D7D8D7D2CBB8A290AAC8CDD1D6DBE0E5E9ED +F0F3F5F8FAFBFCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFDFDFBFAF8F6F3F0D8CBD0D7D8D7D5D3D3D3D4D4D5 +D5D5D5D5D6D6D7D7D7D7D8D9D9D9D9D9D9D7D0C3AF9C94C2CBCFD4D9DEE3E7EB +EFF2F4F7F9FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFEFDFBFAF8F7F4F1EAC9CDD3D8D8D6D5D5D4D5D5D5 +D5D5D6D6D7D7D7D7D8D9D9D9DADBDBDADBDAD5CDBCA997A7C8CDD2D7DBE1E5E9 +EDF0F3F5F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFDFCFBFAF7F5F2EFD7CCD1D6D9D8D6D5D5D4D5D5 +D6D6D7D7D7D7D8D9D9D9DADBDBDBDCDCDCDCD9D5C9B5A091BECBD0D5D9DEE3E7 +EBEFF2F4F7F9FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFDFDFBFAF8F6F3F0EACBCFD5D9DAD7D5D6D5D6D6 +D7D7D7D7D8D9D9D9DADBDBDBDCDDDDDDDDDFDEDBD2C3B09CA2C9CDD2D7DCE1E5 +E9EDF0F3F5F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBF9F7F5F2EFD7CBD1D7D9D9D7D7D6D6D7 +D7D7D8D9D9D9DADBDBDBDCDDDDDEDFDFDFDFE0DDD9CFBCA99AB9CBD0D5D9DFE3 +E7EBEFF2F4F7F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFBFAF8F6F3F0E9CBCED5D9DBD8D7D7D7D7 +D8D9D9D9DADBDBDBDCDDDDDEDFDFE0E1E1E1E2E0DDD7C8B7A19EC8CED3D7DCE1 +E5E9EDF0F3F5F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFBFAF9F7F4F2EED8CAD1D7DBDAD9D8D8D8 +D9D9DADBDBDBDCDDDDDEDFDFE0E1E1E2E3E3E3E3E1DED5C6AD9CB4CBD0D5D9DE +E3E7EBEFF2F4F7F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFCFBFAF8F5F3F0EACACDD5DBDBDADAD9D9 +D9DBDBDBDCDDDDDEDFDFE0E1E1E1E2E3E3E4E4E4E5E2DBD1BAA79FC4CED3D7DC +E1E5E9EDF0F3F5F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFBFAF8F7F4F1EEDBCBD0D8DDDBDDDBDB +DBDBDCDDDDDEDFDFE0E1E1E1E2E3E3E4E5E5E5E5E6E5E0D8C8B6A7ABCBD0D5D9 +DEE3E7EBEEF1F4F7F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBF9F7F5F2EFEBCCCED5DBDDDEDCDB +DCDCDDDEDFDFE0E1E1E1E2E3E3E4E5E5E6E6E7E7E7E6E5E0D5C5B3A1BBCDD2D7 +DCE1E5E9ECF0F2F5F7F9FBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFBFAF8F6F3F1EDE0CCD1D8DDDFDEDD +DEDEDFDFE0E1E1E1E2E3E3E4E5E5E6E6E7E7E8E8E8E9E9E5DFD2BFADA5C8D0D5 +D9DEE3E6EAEEF1F3F6F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBF9F7F5F2EFEBD1CDD4DCE0E1E1 +DFDFDFE1E1E1E2E3E3E4E5E5E6E6E6E7E8E8E9EAEAEAE9E8E5DDCDB9A9B1CDD2 +D7DBE0E4E8ECEFF2F5F7F9FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFBFAF8F6F3F0EDE5CDD3DADFE2E1 +E1E1E1E1E2E3E3E4E5E5E6E6E6E7E8E8E9EAEAEBEBEBEBEBE9E4D9C8B3A8C1CF +D4D9DDE2E6EAEDF0F3F6F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBF9F7F5F2EFEBD6CDD4DEE1E3 +E3E2E2E3E3E4E5E5E6E6E6E7E8E8E9EAEAEAEBEBECECECEDEBE8E3D5C3B3ACCA +D1D6DBDFE4E8EBEFF2F4F7F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFBFAF8F6F3F0EDE6CDD0D9E1E4 +E5E3E3E4E4E5E6E6E6E7E8E8E9EAEAEAEBEBECEDEDEDEDEDEEECEAE0CFC0B0B5 +CED3D8DDE1E5E9EDF0F3F5F7F9FBFCFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBF9F7F5F2EFEBDECFD5DEE4 +E7E6E5E6E6E6E6E7E8E8E9EAEAEAEBEBECECEDEDEEEFEEEFEFEFEDE8DDCEBAAD +C1D1D5DADFE3E7EAEEF1F3F6F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFCFBFAF8F6F3F0EDE9D4D0D9E3 +E7E8E8E6E6E6E8E8E9EAEAEAEBEBECECEDEDEEEEEFEFF0F0EFF0EFEDE8DBC8B9 +B2C9D3D7DBE0E5E8ECEFF2F5F7F8FAFBFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFAF9F7F5F2EFEBE4CFD3DD +E5E6E7E8E7E8E8EAEAEAEBEBECECEDEDEEEEEFEFF0F0F0F1F1F0F0F0EEE6D6C5 +B8B4CFD4D9DDE2E6EAEDF0F3F5F7F9FBFCFDFDFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFCFBFAF8F6F3F0EDEADBD1D7 +DFE7EAEAEAEAE9EAEBEBECECEDEDEEEEEFEFEFF0F0F1F2F2F2F2F3F2F1EDE2D3 +C4B3BED1D6DBDFE3E7EBEEF1F4F6F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBF9F7F5F2EFECE8D3D3 +DDE6EBEBEBEBEBEBECECEDEDEEEEEFEFEFF0F0F0F1F2F2F3F3F3F3F3F3F1EBE0 +D1C0B6C6D3D8DCE1E5E8ECEFF2F5F7F8FAFBFDFDFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFBFAF8F6F3F1EEEAE1CF +D5DFE6EAEDECECECECEDEEEEEFEFEFF0F0F0F1F2F2F2F3F3F3F4F4F3F3F4F0EA +E1CFBFB6CCD5D9DEE2E6EAEDF0F3F5F7F9FAFBFDFDFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBF9F7F5F2F0ECE8D9 +CFD8E3EBEEEDEDEDEDEDEFEFEFF0F0F0F1F2F2F2F3F3F3F4F5F5F5F5F4F5F3F0 +EADDCCBBB7D1D6DBDFE3E7EBEEF1F3F6F8FAFBFCFDFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFBFAF8F7F4F1EEEBE6 +D5D6DEE6ECEFEFEEEFEFEFF0F0F0F1F2F2F2F3F3F3F4F5F5F5F5F6F6F6F7F5F4 +F1E7D8C6B9BFD3D8DCE1E5E8ECEFF2F4F7F8FAFBFCFDFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBF9F7F5F3F0EDE9 +E3D2D7E1EAEEEFEFEFF0F0F0F1F2F2F2F3F3F3F4F5F5F5F5F6F7F7F7F7F7F7F6 +F3EFE5D6C5BAC6D5D9DDE2E6EAEDF0F3F5F7F9FAFBFDFDFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFBFAF8F7F4F2EFEB +E8DDD5DCE6EDEFF0F1F0F0F1F2F2F3F3F3F4F4F5F5F5F6F6F7F7F7F7F8F7F6F6 +F6F3EDE1D1C5BCCCD6DBDFE3E7EAEEF0F3F5F8F9FBFBFDFDFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF8F6F3F0ED +EAE6D7D4DBE6EEF1F2F2F2F2F2F3F3F4F4F5F5F5F6F6F7F7F7F7F7F8F8F8F7F6 +F5F5F1EBDFD1C4B7CFD7DCE0E4E8EBEFF2F4F6F8FAFBFCFDFDFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFF2F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFBFAF9F7F5F2EF +ECE8E3D1D6DFE9F1F2F3F3F2F3F3F4F5F5F5F6F6F7F7F7F7F7F7F8F8F8F7F7F7 +F6F5F3F0E8DDCEBFB9D3D9DDE1E5E9ECEFF2F4F7F8FAFBFCFDFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFF4E8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF8F6F3F1 +EEEBE7DED2D8E1EBF0F3F3F4F4F5F5F5F6F6F7F7F7F7F7F7F7F7F7F7F7F7F7F5 +F5F5F4F2EDE5D9C8BCBAD4DADEE3E6EAEDF0F2F5F7F8FAFBFCFDFEFEFEFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFAD5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBF9F7F5F3 +F0EDE9E5D9D4DBE6EFF3F5F5F5F5F5F6F7F7F7F7F7F7F7F7F7F7F7F7F7F6F5F5 +F4F2F3F2EFEAE0D5C5B8BED7DBDFE3E7EAEEF0F3F5F7F9FAFBFDFDFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFDCBFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFBFAF8F7F4 +F2EFEBE8E4D6D7DFEAF0F5F5F5F5F6F6F7F7F7F7F7F7F7F7F7F7F7F6F5F5F4F3 +F3F2F0F0EFECE8DDD1C1B6C4D8DCE0E4E8EBEFF1F3F6F8F9FBFBFDFDFEFEFEFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFCAF4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF8F6 +F3F0EDEAE6E1D3D5DEEAF2F5F7F7F6F7F7F7F7F7F7F7F7F7F7F6F5F5F4F3F3F2 +F1F0EFEEEDECEAE4DBCDC0B8C7D9DDE1E5E8ECEFF2F4F6F8FAFBFCFDFDFEFEFE +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFD0E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFBFAF9F7 +F5F2F0EDE9E5DFD3D8E4EDF4F7F7F7F7F7F7F7F7F7F7F6F6F5F5F4F3F2F2F1F0 +EFEFEDECEBEAE9E5E1D7C8BEB6C7DADEE2E6E9EDEFF2F4F7F8FAFBFCFDFDFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFCFD3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF8 +F7F4F2EFEBE8E4DBD4DBE5EEF4F5F7F7F7F7F6F7F6F5F5F4F3F3F2F1F0F0EFEE +EDECEBEAE9E8E6E5E3DDD1C7BFB7C7DBDFE3E6EAEDF0F2F5F7F8FAFBFCFDFDFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFD7C2FEFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFA +F8F5F3F0EDEAE6E3D7D4DCE6EFF5F7F7F7F7F6F5F5F4F3F3F2F1F0EFEFEDEDEB +EBEAE8E8E6E5E5E4E3DFD9D1C7BCB2CBDBDFE3E7EAEDF0F3F5F7F8FAFBFCFDFD +FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFDDB4FAFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFBFA +F9F7F5F2F0EDE9E5E1D3D3DCE7F0F6F6F6F5F5F3F3F3F2F1F0EFEEEDECEBEAE9 +E8E7E6E5E5E3E2E1E1DFDCD7CFC4B8B0CDDCE0E4E8EBEEF0F3F5F7F8FAFBFCFD +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFDDAFF1FFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFB +FAF8F7F4F2EFEBE8E4DFD1D1DCE6EFF2F4F4F3F2F1F0F0EFEEEDEBEBEAE8E8E6 +E5E5E3E3E1E1DFDFDEDDDCD9D4CDC1B7B2CDDDE1E5E8EBEEF1F3F5F7F9FAFBFC +FDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFDEADEAFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFC +FBFAF8F6F3F0EEEAE7E3DDD1D5DEE6EDF0F2F0F0EFEEEDECEBEAE9E8E7E6E5E4 +E3E2E1E0DFDEDDDCDBDBDAD9D7D3CBBFB5B2CDDDE1E5E8EBEFF1F3F5F7F9FAFB +FCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFDFADE0FFFEFEFEFEFEFEFEFEFDFDFDFDFEFEFEFEFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFD +FBFAF9F7F5F3F0EDEAE6E2DBCDD2DAE5EBF0EFEDEDEBEAEAE8E8E6E5E4E3E2E1 +E0DFDEDDDCDBDBDAD9D8D8D7D7D5D0C8BFB6B1C8DEE2E5E8EBEFF1F3F5F7F9FA +FBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFDBADD5FFFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFD +FCFBFAF8F7F4F2EFECE8E5E1D7C8CEDAE3E8EAEAEAE8E8E6E6E5E3E3E1E0DFDE +DDDCDBDAD9D9D8D7D7D5D5D5D5D3D2CDC7BEB4AEC7DEE2E6E9ECEFF1F3F5F7F9 +FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FED7AECCFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE +FDFCFBFAF8F6F3F1EEEBE8E4E0D3C6CDD5DEE5E6E7E6E5E3E2E1E1DFDEDDDCDB +DAD9D8D7D7D6D5D5D4D3D3D2D2D1D1CFCDC5BAB3ADC8DEE3E6E9ECEFF2F3F6F7 +F9FAFBFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +D7B0C1FDFEFEFEFEFDFDFDFDFDFDFCFCFCFDFDFDFDFDFDFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FDFDFBFAF9F7F5F3F0EDEAE6E3DFCEC1C9D1DADFE3E3E2E0DFDEDDDCDBDAD9D8 +D7D6D5D5D4D3D3D2D1D1D1CFCFCFCFCECECAC2BBB3ADBFDFE3E6E9ECEFF2F3F6 +F7F9FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD2 +B3C1FAFEFEFEFDFDFDFDFCFCFCFCFCFCFCFCFCFDFDFDFDFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFDFDFBFAF8F7F5F2F0EDEAE6E2DECDBFC3CCD4DBDFDFDDDCDBD9D9D8D7D6D5 +D4D3D3D1D1D0CFCFCFCECDCDCCCCCCCBCBCBC7C2BAB2ABB9DDE3E6EAECEFF2F3 +F5F7F9FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBCBB5 +BDFAFEFEFEFDFDFDFCFCFCFBFBFBFBFBFBFBFCFCFDFDFDFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFEFDFCFBFAF8F7F4F2EFECE8E5E1DDC5B7BDC8D2D7D9DAD9D7D6D5D5D4D3D2 +D1D0CFCFCECDCDCCCBCBCBCBCAC9C8C8C8C8C8C5BFB7B0A9B2DBE3E6EAECEFF2 +F3F5F7F9FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C6B4BA +F5FEFEFDFDFDFDFCFBFBFBFBFBFBFBFBFBFBFCFCFDFDFDFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFDFDFCFBFAF8F6F3F1EFEBE8E5E1DBC0B4BCC6CFD4D5D4D4D3D2D1D1D0CF +CECDCDCCCBCBCAC9C8C8C8C7C7C6C6C6C5C5C6C5C1BCB6ADA7ACD7E3E6EAECEF +F2F3F5F7F8FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C3B7BAF5 +FEFDFDFDFDFCFBFBFBFBFBFAFAFAFBFBFBFBFBFCFDFDFDFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFEFDFDFBFAF9F7F5F3F0EEEBE7E3E0DBBFB2B6BFC8CDCFD0D0CFCECDCDCC +CBCAC9C8C8C7C6C6C6C5C5C4C4C4C4C2C2C1C2C2C0BFBBB4ACA7A5D0E3E6EAEC +EFF1F3F5F7F8FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECC2B7B8F4FE +FDFDFDFCFCFBFBFBFAFAFAFAFAFAFAFAFBFBFBFCFDFDFDFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFEFDFDFBFAF8F7F5F3F0EDEAE6E3DFDABBADB3BAC4CACDCDCCCBCAC8C8 +C8C7C6C6C5C4C4C3C2C2C1C1C1C0C0BFBFBFBEBFBDBCBCB9B3A9A4A0C5E2E6E9 +ECEFF1F3F5F7F8FAFBFBFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE3C0B6B3EDFEFD +FDFDFCFBFBFBFAFAFAFAFAFAFAFAFAFAFBFBFBFCFDFDFDFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFDFCFBFAF8F7F5F2EFEDEAE6E2DFD9B9A9AFB7BFC4C7C8C7C6C5C5 +C4C4C4C3C2C1C1C0BFBFBFBEBDBDBCBCBCBBBABBBABAB9B9B5B0A9A29DB3E0E6 +E9EBEFF1F3F5F7F8FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD7C1B6B6EFFDFDFD +FCFBFBFBFAFAFAF9F9F9F9F9F9FAFAFAFAFBFBFCFDFDFDFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFDFDFCFBFAF8F6F4F2EFECE9E5E2DED9B6A1A8B0B9BEC1C3C3C2C1 +C1C0C0BFBFBEBDBCBCBCBBBABAB9B9B9B8B8B6B6B6B6B6B6B4B0ADA69F9BA5D8 +E6E8EBEEF0F3F5F7F8F9FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D0C1B5B4F3FDFDFDFC +FBFBFAFAFAF9F9F8F8F8F8F8F9F9FAFAFAFBFBFCFDFDFDFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFDFDFBFBF9F8F6F3F1EFEBE8E5E1DDD9B49EA3AAB3B9BDBFBEBE +BDBCBCBCBBBABAB9B9B8B7B7B6B6B6B5B5B4B4B3B2B2B1B2B1B0AFAAA59E999A +CCE5E8EBEEF0F2F4F6F8F9FAFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDCDC1B3B3F3FDFDFCFBFB +FAFAFAF9F8F8F8F8F8F8F8F8F8F9FAFAFAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFEFDFDFBFAF9F7F5F3F1EEEBE8E5E1DDD9B8979CA7AFB6B9BABB +BAB9B9B8B8B7B6B6B5B4B4B3B3B3B2B1B1B0B0B0B0AFAFAEADADADABA8A39D98 +96BAE4E8EBEDF0F2F4F6F7F8FAFBFBFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE3CBBFB1B5F2FDFCFCFBFBFA +FAF9F8F8F8F8F7F7F7F7F8F8F8F9FAFAFBFBFCFDFDFDFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFEFDFCFBFAF9F7F5F3F0EEEBE8E4E0DDD9B6949AA1A9B0B3B6 +B6B6B5B4B3B3B3B2B2B1B0B0B0AFAEAEADADADACACABABAAAAAAAAA9A9A5A29D +9892A3DAE8EAEDEFF2F3F5F7F8FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DACBBFAFB7F8FDFCFBFBFAFAF9 +F8F8F8F7F7F7F7F7F7F7F7F8F8F9FAFAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFDFCFBFAF8F7F5F3F0EDEAE7E4E0DCD8BA90939BA3A9AF +B1B1B1B0B0B0B0AFAEADADADACABABAAA9A9A9A9A8A8A8A7A7A7A6A6A7A5A4A1 +9D979395C5E6EAECEFF1F3F5F7F8F9FAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEDD5C8BBADBAF7FCFBFBFBFAFAF9F8 +F8F7F7F7F6F6F6F6F7F7F7F8F8F9FAFAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFDFDFCFBFAF8F7F5F2F0EDEAE7E3E0DCD8BF8C8E959CA5 +A9ACADADADACACABAAA9A9A9A8A7A7A6A6A5A5A5A5A5A5A5A4A4A4A4A5A5A5A4 +A19C999691ADDFE9ECEEF0F2F4F6F7F9FAFBFBFDFDFDFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE4D5C7B6A3C3FBFCFBFBFAFAF9F8F8F7 +F7F6F6F5F5F5F5F6F6F7F7F8F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFEFEFDFDFCFBFAF8F7F4F2F0EDEAE6E3DFDBD8C68D868D96 +9EA3A6A8A8A9A8A7A6A6A5A5A5A4A3A3A3A2A2A2A2A2A1A1A1A2A2A2A2A3A3A4 +A3A19F9B97949CCFE8EBEDF0F2F4F5F7F8FAFAFBFCFDFDFEFEFEFEFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEF2DDD4C6B1A2D0FBFBFBFAFAF9F8F8F7F7F6 +F5F5F5F5F5F5F5F6F6F7F7F8F9FAFAFBFCFDFDFDFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFEFEFEFDFDFCFBFAF8F6F4F2EFEDEAE6E3DFDBD7CC908289 +90979EA1A3A4A3A3A2A2A1A1A1A1A0A09F9F9F9F9F9F9F9FA0A0A0A1A1A1A1A1 +A2A3A2A09C989791B0E1EAEDEFF1F3F5F7F8F9FAFBFCFDFDFDFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFAE8DBD1C1AB9BD9FCFBFBFAF9F8F8F7F7F6F5F5 +F5F4F4F4F5F5F5F5F6F7F8F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFEFDFDFBFBF9F8F6F4F2EFEDEAE6E3DFDBD7CF977E +838991989C9D9E9F9F9D9E9D9D9D9C9C9C9C9C9C9C9D9D9D9E9E9F9FA0A0A1A1 +A1A2A2A1A19F9C979598C9EAECEFF0F2F4F6F7F8FAFBFBFCFDFDFEFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEF2E1D9CDBAA29AE3FBFBFAFAF9F8F7F7F6F5F5F4F4 +F3F3F3F3F4F5F5F6F7F7F8F9FAFAFBFCFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFBFAF9F8F6F4F2EFECEAE6E3DFDBD8D1A2 +787B828A91969A9A9B9B9B9A9A9A9A9A9A9A9A9B9B9C9C9C9C9D9E9E9F9FA0A1 +A1A1A3A3A3A2A19E9B9794ACDEEBEEF0F2F3F5F7F8F9FAFBFCFDFDFDFEFEFEFE +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFAEAE0D5C4B29F9EE9FBFAFAF9F8F7F7F6F5F5F4F3F3F3 +F3F3F3F3F4F5F5F6F7F8F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFBFAF9F8F6F3F2EFECEAE6E3DFDBD8D4 +B275777E858B9093959796979697979797989899999A9B9B9C9C9D9D9E9F9FA0 +A1A1A2A2A3A4A4A3A19E9A9798C3E8EDEFF1F3F5F6F7F8FAFBFBFCFDFDFEFEFE +FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFDF0E5DDD1BDA693B0F7FAFAF9F8F8F7F6F5F5F4F3F3F3F2F2 +F2F3F3F3F4F5F5F7F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF9F7F6F3F2EFECE9E6E3DFDBD8 +D4C17E71777E858A8F919293949395959697979798999A9A9B9C9C9D9E9E9FA0 +A1A1A1A1A2A4A4A5A5A3A19C9998A1D1ECEEF0F2F3F5F7F8F9FAFBFBFCFDFDFE +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEF5E8E3DACCB39B87C8F9FAF9F8F8F7F6F5F5F4F3F3F2F2F2F2F2 +F2F2F3F3F4F5F6F7F8F8FAFAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF9F7F5F3F2EFECEAE6E3DFDC +D8D5CB8A6A70787F868B8E9090919393949596979798999A9B9C9C9D9D9E9FA0 +A1A1A1A1A2A3A3A5A5A5A4A2A19E9A97AFDDEDEFF1F3F5F6F7F8FAFAFBFCFDFD +FDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEF8ECE6E1D6C3AC9089DCFAFAF9F8F7F7F5F5F4F3F2F2F2F1F1F1F1F2 +F2F2F3F3F5F5F7F7F8F9FAFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF9F7F5F3F2EFECEAE6E3DF +DCD9D5D0A0666B727981878A8D8F909292949596979798999A9B9C9C9D9E9FA0 +A1A1A1A1A2A2A3A4A5A5A5A5A5A4A19E9C9CBCE6EEF0F2F3F5F7F8F9FAFBFBFC +FDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFBF0E9E5DDCCB8A18797EDFAF9F8F7F7F5F5F4F3F2F2F1F1F0F0F0F0F0F1 +F2F2F3F4F5F6F7F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF9F7F5F3F2EFEDEAE6E3 +E0DDD9D5D1B36F666C737B83888B8F9091929496979798999A9B9C9C9D9E9FA0 +A1A1A1A1A2A2A3A4A4A5A5A7A8A7A6A5A2A09CA0C5E6EFF1F3F4F5F7F8F9FAFB +FBFCFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FBF1EAE8E1D7C5A9907BB2F5F9F8F7F7F5F5F4F3F2F2F1F0F0F0F0F0F0F0F0F1 +F2F3F3F5F6F7F8F8FAFAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF9F7F6F3F2EFEDEAE7 +E4E0DDD9D5D2C6856468707880878A9090929495979798999A9B9C9C9D9E9FA0 +A1A1A1A2A2A3A3A3A4A4A5A6A6A8A8A9A8A6A4A1A2A4C5EAF0F2F3F5F6F7F8FA +FAFBFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDF3 +EBE8E5DBCAB4997C7ED6F9F8F7F7F5F5F4F3F2F1F0F0F0EFEFEFEFEFEFF0F0F2 +F2F3F4F5F7F7F8FAFAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF9F7F6F4F2EFEDEA +E7E4E1DDDAD6D3CEA266666D757D858A8D909395979798999A9B9C9C9D9E9FA0 +A1A1A1A2A2A3A3A4A4A5A5A6A6A7A9A9AAAAA9A7A7A5A1A8CDEBF0F2F3F5F7F8 +F8FAFAFBFBFCFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDF3ECEC +E7E1D5BEA28C7297EDF8F7F7F6F5F4F3F2F1F0F0EFEFEFEEEEEEEFEFEFF0F1F2 +F3F4F5F6F7F8F9FAFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF9F8F6F4F2F0ED +EAE8E5E1DEDAD7D3D0BD79646B727B82888F9193969797999B9C9C9D9E9F9FA0 +A1A1A2A2A3A3A4A4A5A5A5A5A6A7A8A9AAACADADADAAA9A8A7ADCEEAF1F2F4F5 +F7F8F8FAFAFBFBFCFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF3EBEBEAE5 +D9C6B093776CC4F8F7F7F5F5F3F3F2F1F0EFEFEEEEEDEDEDEDEEEFEFF0F0F2F2 +F3F5F6F7F8F9FAFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF9F8F6F4F2F0 +EDEBE8E5E1DEDBD7D4D1CB9565676E7780878D90949798999A9C9C9D9E9FA0A1 +A1A1A2A2A3A4A4A5A5A5A5A6A6A7A7A9AAACADADB0AFB0B0ADADADB0CAE8F1F3 +F4F5F7F8F9FAFAFBFBFCFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFAF1EBEBEAE5DDCE +B69B826780E5F7F7F5F5F3F3F2F1F0EFEFEEEDEDEDEDEDEDEDEEEFEFF0F1F2F3 +F5F6F7F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF9F8F6F4F2 +F0EEEBE8E5E2DFDBD8D5D1CEB574646B727A848A909597989A9C9C9D9E9FA0A1 +A1A1A2A3A3A4A5A5A5A6A6A7A7A8A9A9A9ABADAEB0B2B3B5B3B4B3B3B3B4C8E3 +F1F3F4F5F7F8F8FAFAFBFBFCFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF8EFEBECEBE6DED1BFA4 +876E64B4F4F7F5F5F3F3F2F0F0EFEEEDEDECECECECECECEDEDEEEFF0F1F2F3F4 +F5F7F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFCFBFAF9F8F7F5 +F2F0EEEBE9E6E3DFDCD9D5D2CFC89966676E7881898F9396989A9B9C9D9FA0A1 +A1A2A3A3A4A5A5A5A6A7A7A8A9A9A9AAABACADAEB1B2B5B6B8BABBBABDBCBBBC +C8DEEFF3F4F5F7F8F8FAFAFBFBFCFDFDFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDF4EDEBEBEAE7E1D7C1A99073 +5B87E1F6F5F4F3F2F2F0F0EFEEEDECECEBEBEBEBEBEBECEDEDEFEFF0F2F3F4F5 +F7F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFBFBFAF8F7 +F5F3F1EFECEAE6E3E0DDD9D7D3D0CDB97D656D747C848B9296999C9D9E9FA0A1 +A2A2A3A4A5A5A5A6A7A8A8A9A9AAABACADADAFB0B2B3B6B7BABCBFC1C4C3C2C5 +C3C3C6D7E9F2F4F5F7F8F8F9FAFBFBFBFCFDFDFDFEFEFEFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEF8F0E9EAEBEBE7E2D7C6B09178635E +BCF5F5F4F3F2F1F0EFEFEDEDECEBEBEAEAEAEAEBEBEBECEDEEEFF0F2F3F4F5F7 +F8F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFBFBFAF8 +F7F5F3F1EFEDEAE7E4E1DEDBD7D4D1CDC99F6B676D7781889096999B9D9EA1A1 +A1A3A4A5A5A6A6A7A8A9A9AAABACADADAFB0B0B2B3B6B7B9BCBEC0C3C6C8C9CA +CBCCCAC8CAD3E3F0F4F5F7F7F8F9FAFAFBFBFCFDFDFDFDFEFEFEFEFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFEFEFBF3EBEAEAEAEAE6E0D3C4B0967E5F4C8CE8 +F5F4F3F2F1F0EFEEEDECEBEBEAEAEAEAEAEAEAEAEBECEDEEEFF0F2F3F4F5F7F8 +F9FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFCFBFA +F8F7F5F3F2EFEDEAE8E5E2DFDBD8D5D2CFCCBF8A656D737A838B91979B9DA0A1 +A2A3A4A5A6A7A8A9A9AAABACADADAFB0B1B2B3B5B6B8B9BCBDBFC2C4C7C9CCCF +D0D1D1D0D0CFCFD1D9E5F2F5F6F7F8F8FAFAFBFBFBFCFDFDFDFDFEFEFEFEFEFE +FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFEFEFCF4ECE8E9EAEBE8E5DFD5C5B29C82624F67CAF4F3 +F2F2F0EFEFEDEDEBEBEAEAE9E9E8E8E8E9E9EAEBEBEDEDEFF0F1F3F4F5F7F8F8 +FAFBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFCFB +FAF8F7F6F4F2F0EDEBE8E6E3E0DDD9D6D3D0CDCAB37A676C737D858E95999DA0 +A2A4A5A5A6A8A9A9AAACADADAFB0B1B2B3B5B6B8B9BBBCBEBFC1C3C4C6C9CBCF +D1D3D6D7D5D5D5D5D1D1D4DDE9F3F5F7F7F8F9FAFAFBFBFBFCFDFDFDFDFEFEFE +FEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFEFEFEFEFEFCF5EDE7E8E8EAE9E7E5DCD3C4B19881685050B3F2F3F2F1 +F0EFEEEDECEBEAEAE9E8E8E8E8E8E8E8E9EAEAEBECEDEFF0F1F3F4F5F7F8F9FA +FBFBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFC +FBFAF9F8F6F4F2F0EEECE9E6E4E1DDDBD7D4D1CECBC7A4716A6F77808890979C +A0A2A5A7A7A9A9ABADADAFB0B1B2B3B5B6B8B9BBBCBEBFC1C1C4C5C6C8C9CBCD +D0D2D4D6D6D7D8D9D7D5D6D5D1D3DDE8F2F6F7F8F8F9FAFAFBFBFBFCFDFDFDFD +FDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFEFEFEFDFAF3EBE6E6E8E8E9E8E5E0D9D1C0AE99826B4E3F93E6F2F2F0EFEF +EDEDEBEBEAE9E8E8E7E7E6E6E7E7E8E8E9EAEBECEDEFF0F1F3F4F5F7F8F9FAFB +FBFCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFD +FCFBFAF9F8F7F5F3F1EFEDEAE8E5E2DFDBD9D5D3CFCDC9C1976B6B7179818B94 +9A9EA2A5A7A9ABADADB0B0B2B3B5B6B8B9BBBCBEBFC1C2C4C5C6C7C8CBCBCDCD +CFD0D1D3D3D5D7D8D9D9D7D8D5D3D3D2D1D6E2EDF5F7F8F8F9FAFAFBFBFBFCFC +FDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFE +FEFCF6EEE6E5E6E6E7E8E8E5E1DDD5CABEAD947D684F3E74D9F2F1F0EFEEEDEB +EBEAE9E8E8E7E6E6E6E6E6E6E6E7E8E9EAEBECEDEFF0F1F3F4F5F7F8F9FAFBFB +FCFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFE +FDFCFBFBFAF8F7F5F3F2F0EDEBE8E6E3E0DDDAD7D4D1CECBC8BC89676C727A83 +8B959CA1A5A9ACADAFB1B3B4B6B7B9BBBCBEBFC1C2C4C5C6C8C8CACBCBCBCDCD +CECFCFD0D1D1D3D4D5D5D7D9D7D6D5D5D3D2D1D1D3DBE5EEF6F8F8F9FAFAFAFB +FBFBFCFCFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDF5F0 +EAE5E3E5E6E6E7E6E5E2DED7CFC6B8A8978167503E64C1F0F0EFEEEDECEBEAE9 +E8E7E6E6E6E5E5E5E5E5E5E6E6E8E8EAEBECEDEFF0F2F3F4F5F7F8F9FAFBFBFD +FDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE +FEFDFDFBFBFAF8F7F6F4F2F0EEEBE9E6E4E1DEDBD8D5D2CFCDCAC7B68A686E74 +7C868F97A0A5A9ADB0B3B5B6B9BABCBDBFC1C2C4C5C6C7C8C9CBCBCCCDCDCDCD +CECFCECFCECECFCFD0D1D2D3D5D5D5D5D5D3D3D3D1D0CFCDD0D9E3EBF5F8F8F9 +FAFAFAFBFBFBFCFCFCFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFAF3EDE5E1E2E3 +E5E5E5E6E6E4E1DED9D4CBC1B3A48F7B68503763C1EEEFEEEDECEBEAE9E8E7E6 +E6E5E5E5E4E4E4E4E5E5E6E6E7E8EAEBECEDEFF0F2F3F5F6F7F8F9FAFBFCFDFD +FDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +FEFEFDFDFCFBFAF9F8F6F5F3F1EFEDEAE8E5E3DFDDD9D7D3D1CECBC8C6B78B6A +70767E88909BA1A8ADB1B4B7BABCBEBFC1C3C4C6C7C8C9CBCBCCCDCDCDCDCECE +CDCDCDCDCDCCCDCCCCCDCDCECFD0D0D1D3D3D3D3D1D3D3CFCFD0D0CFCFD3DBE3 +EAF2F8F9FAFAFAFBFBFBFBFCFCFCFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFCF7F0EBE6E0DFE0E1E1E2E4E4 +E5E5E1DEDDD9D3CFC5BBAE9F8B77624B3754BEEFEEEDECEBEAE9E8E7E6E6E5E4 +E4E3E3E3E3E3E3E4E5E5E6E7E8EAEBECEDEFF0F2F3F5F6F7F8FAFAFBFCFDFDFE +FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFEFDFDFCFBFAFAF8F7F5F3F2F0EDEBE9E6E4E1DEDBD8D5D3CFCDCAC7C5B5 +876C70788088949DA6ADB3B6BABDC0C1C3C5C6C7C8CACBCCCDCDCDCDCDCDCDCD +CDCDCDCCCBCBCBCACACAC9C9CACBCBCCCCCCCDCECED1D1CFCFD1D1CFCFCECECD +CDCDCFD6DCE3E8EFF4F8FAFAFBFBFBFBFBFBFCFCFCFCFDFDFDFDFDFDFDFDFDFD +FDFDFDFDFDFDFDFDFDFDFDFDFAF7F2EFEAE5DFDCDBDCDDDFE0E1E1E2E1E1E1DF +DDDAD5D1CEC6BFB4A59784705C443250B1EAEDECEBEAE9E8E7E6E5E5E4E3E3E2 +E2E2E2E2E2E3E3E4E5E6E7E8EAEBECEEEFF1F2F3F5F7F7F8FAFAFBFCFDFDFEFE +FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFEFEFEFEFDFDFBFBFAF8F7F6F4F2F0EFECEAE8E5E3DFDDDAD7D4D1CFCCC9C6 +C4B590707177818B979FA8B0B6BABFC2C4C6C7C8CACBCBCCCDCDCDCDCDCDCDCD +CCCCCBCBCAC9C9C8C8C8C6C6C6C7C6C6C6C6C7C6C8CBCACACCCDCECECECDCFCF +CDCDCDCDCDCDCECDCBCDD1D7DCDFE3E5EBEDF1F3F3F4F7FBFBFBFBFBFBFBFBF8 +F5F5F5F2EFECE9E6E3E0DDD9D5D7D7D8D9DADBDEDEDDDEDFE0DFDEDDDBDBD7D3 +D1CDC6BFB8AC9D907C6A563E2A65BCEBEBEBEAE9E8E7E6E5E4E3E3E2E1E1E1E1 +E1E1E1E1E2E3E4E5E6E7E8EAEBEDEEF0F1F2F4F5F7F8F9FAFBFBFCFDFDFEFEFE +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFEFDFDFCFBFAF9F8F7F5F3F2EFEDEBE9E6E4E1DEDBD9D6D3D0CDCB +C8C6C4B998747378808B96A0A9B1B8BDC1C4C6C8CACBCBCCCCCCCDCDCDCDCCCB +CBCBCAC9C8C8C7C6C6C6C4C4C4C4C2C2C2C1C1C2C3C3C3C5C6C6C7C8C9C9CBCB +CBCBCCCDCCCBCDCCCBCCCCCCCBCBCBCBCBCBCCCBCBCBCBCBCCCCCCCDCBCCCCCB +CFCFCFCFD0D1D2D3D3D3D5D6D7D8DAD9DADBDBDCDDDBDAD9D9D7D5D3D1CDC8C5 +C0B8ADA29482725E4B35287BC8EBEAE9E8E7E6E5E5E4E3E2E1E1E1E0E0DFDFE0 +E0E1E1E2E3E3E5E6E7E8EAEBEDEFF0F2F3F4F5F7F8F9FAFBFBFDFDFDFEFEFEFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFEFDFDFCFBFAFAF8F7F5F4F2F0EFECEAE8E5E3E0DDDBD7D5D2CF +CDCBC8C6C3BEA17F7278818A939DA7B0B7BDC1C4C7C8C9CBCBCBCBCBCBCBCACA +CAC9C8C8C7C6C6C5C4C4C3C3C2C1C0C0C0BFBFBFBFBEBEBFBFBFBFC1C1C1C3C3 +C4C6C6C6C8C8C8C8C8CAC9CACBCAC9CACACAC9C9C9CACBCBCBCACACBCCCCCCCB +CDCFCECFCFD1D3D3D3D3D5D6D6D6D7D6D6D6D5D4D4D2D0CFCFCCC9C6C2BEB8B0 +A59787776652412E358AD7E9E8E8E6E6E5E4E3E2E1E1E0DFDFDFDFDFDFDFDFDF +E0E1E1E3E4E5E6E8E9EAECEDEFF0F2F3F5F6F7F8FAFAFBFCFDFDFEFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFEFEFEFDFDFDFBFBFAF9F8F6F5F3F1EFEDEBE9E6E4E1DFDCD9D7D4 +D1CFCDCAC8C5C3BFAA8C74788087909BA3ACB4BABFC1C4C6C7C8C9C9C8C8C8C8 +C7C7C6C6C6C5C4C4C3C2C1C1C0BFBFBEBDBCBCBCBCBABBBBBABAB9BBBABBBCBC +BCBEBFBDBFC0C1C1C1C2C3C4C4C4C4C4C5C6C6C6C6C6C7C8C8C8C8C8CAC9C9CA +CBCCCDCDCDCFCFCFCFCFD1D0CFCFCFCFCDCDCCCAC9C8C7C5C3BFBAB7ADA79D8F +7C6A5948352657A8DDE7E6E6E5E4E3E2E1E1E0DFDFDEDEDDDDDDDDDDDEDEDFDF +E1E1E3E4E5E6E8EAEBEDEEF0F1F2F4F5F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFEFDFDFCFBFAF9F8F7F5F4F2F0EFEDEAE8E6E3E1DEDBD9 +D6D3D1CFCCC9C7C5C3C1B89D7C747B8389919CA3ADB3B8BEC0C3C4C5C5C6C6C5 +C4C5C4C4C3C2C2C1C1C1C0BFBFBEBDBCBCBBBAB9B9B8B8B8B7B6B6B6B6B6B6B5 +B6B6B6B6B7B7B7B8B9BAB9BAB9BBBCBCBCBCBDBDBDBFBFC0C0C0C1C1C2C1C2C3 +C4C4C5C5C6C6C6C6C7C6C6C7C7C6C6C6C4C4C4C1C1BDBCB8B2ACA39B8C7F705B +48392C3287C7E6E5E5E4E3E2E1E1E0DFDEDEDDDDDDDCDCDCDCDCDDDDDEDFDFE1 +E1E3E4E6E7E8EAEBEDEFF0F2F3F5F6F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFEFEFEFDFDFCFBFBFAF9F8F7F5F3F2F0EEEBEAE7E5E3E0DD +DBD8D5D3D1CECCC9C7C5C3C1BFAA8F75767A8089949CA4AAB0B6B9BCBDBFC0C0 +C1C1C1C1C0BFBFBFBEBDBCBCBCBCBBBAB9B9B8B7B7B6B6B5B4B3B3B3B3B3B1B1 +B1B2B1B2B1B0B0B0B2B1B1B1B2B3B3B3B3B3B4B4B4B6B6B6B6B6B8B9B9B9B9BA +BCBCBDBEBEBFBFC0BFBFC0C1C0C0C0BFBEBCBCB8B4AFA7A1968B7E6F61504230 +1E5BA9DBE4E3E2E1E1E0DFDFDEDDDDDCDBDBDBDBDBDBDBDBDBDCDDDDDFDFE1E2 +E3E5E6E8E9EBECEEEFF1F2F3F5F7F7F8FAFAFBFCFDFDFEFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFCFBFAF9F8F7F5F4F2F1EFEDEBE9E6E5E2 +DFDDDAD8D5D3D0CECBC9C7C5C3C1BFB9A2856E73797F878D959CA2A8ADB1B6B9 +B9BABCBCBCBCBDBCBCBBBABBBAB9B9B8B7B6B6B6B5B4B3B3B3B2B1B0B0B0AFAE +AFAEAEADADACADADADADABABACACACACADADADADAEAFB0B0B0B1B3B3B3B3B4B5 +B6B7B8B9BABABBBAB9BABAB9B9B9B8B4B2AFA9A29B94877C6F614F41342A4F94 +C8E1E1E1E0DFDFDEDDDDDCDBDBDBDADAD9D9D9D9DADADBDBDCDDDDDFE0E1E3E4 +E5E6E8EAEBEDEFF0F2F3F4F5F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFCFBFBFAF9F8F7F5F3F2F0EFEDEAE8E6 +E4E1DFDDDAD7D5D3D0CECCC9C7C5C4C1C0BEB69D816B6D717982878E959AA1A8 +ABAEB1B3B5B5B6B6B6B6B6B7B6B6B5B4B3B4B3B3B2B1B1B0B0AFAEAEADADADAC +ACABAAAAA9A9A9A9A9A9A8A8A8A8A8A8A9A9A9A9AAABACACADADAEAFB0B0B2B3 +B3B5B5B5B5B6B6B6B5B5B3B2B0ACA8A19C93887D73675B4C3E2E285092C7E0DF +DFDEDDDDDCDBDBDADAD9D9D9D8D8D8D8D8D8D9D9D9DADBDBDDDEDFE0E1E3E5E6 +E8E9EBECEEEFF1F2F3F5F6F7F8FAFAFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFCFBFAFAF8F7F6F5F3F2F0EEECEA +E8E6E3E1DFDCDAD7D5D3D1CECCCAC8C6C4C2C0BFBDB59C80686A6C70767F878E +92969CA2A6A9AAADAEB0B0B1B0B1B1B1B0B0B0AFAFAEADADACABABABAAAAA9A9 +A8A8A7A7A6A6A5A5A5A5A4A5A5A5A5A6A6A7A7A8A8A9A9AAABACACADAEAEB0B0 +B1B0B0B0B0B0AEACA9A8A49F98928C81786E5E534A392E235392C4DCDDDCDCDB +DBDAD9D9D9D8D8D7D7D7D7D7D7D7D7D7D7D8D9D9DADBDCDDDEDFE1E3E4E5E7E8 +EAEBEDEFF0F2F3F5F6F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFCFBFBFAF9F8F7F5F4F3F1EFED +EBEAE8E5E3E1DFDCDAD7D5D3D1CFCDCAC8C6C4C3C1BFBEBCB7A3896D63686E72 +757A80878B9095999EA1A2A4A5A7A8A8A9AAA9A9A9A9A9A9A9A9A9A8A7A6A5A5 +A5A5A4A4A3A3A3A2A2A2A2A2A3A2A3A3A4A5A5A5A5A6A6A7A8A9A9A9AAA9AAA9 +A9A9A7A5A4A19D98938C857B746B61544841352C3773A5CCDBDADAD9D9D8D8D7 +D7D7D6D6D5D5D5D5D5D5D5D5D5D6D6D7D7D8D9DADBDCDDDFE0E2E3E5E6E8EAEB +EDEEF0F1F3F4F5F7F8F8FAFAFBFCFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFCFBFBFAF9F8F7F5F3F2F0 +EFEDEBEAE7E5E3E1DFDCDAD8D5D3D1CFCDCBC9C7C5C4C1C0BFBDBCBBAD977D61 +5C5E63676C70757D82878A8E929697999B9C9D9FA0A1A0A1A1A1A1A1A09FA09F +9F9FA09F9F9E9E9E9E9E9E9E9D9E9E9E9E9E9FA0A1A1A1A1A1A2A1A1A09E9D9B +9996918E87847F766D645C544C4237302A548BB6D5D7D7D7D7D6D6D5D5D5D5D4 +D4D4D3D3D3D3D3D3D4D4D5D5D5D6D7D7D9D9DBDCDDDFE0E1E3E5E6E8E9EBECEE +EFF1F2F3F5F6F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFCFBFAFAF8F7F6F5F3 +F2F0EFEDEBEAE7E5E3E1DFDDDBD8D6D4D2D0CECCCAC8C6C4C3C1C0BFBDBCBBB7 +A7947B65595C5E6366686A6F73777D7F8286888B8E8F90929393949595949595 +9696959596959595959595959595969697979696959594939390908D8C87847F +7B766F68625D534A413C342E39658FB0CCD5D5D4D4D3D3D3D3D3D3D2D2D2D2D2 +D1D1D2D2D2D2D3D3D3D4D5D5D6D7D8D9DADBDDDEDFE1E3E4E6E7E9EAECEDEFF0 +F2F3F5F6F7F8F9FAFBFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFCFBFBFAF9F8F7F6 +F5F3F2F0EFEDEBEAE8E5E3E1DFDDDBD9D7D5D3D1CFCDCBC9C7C6C4C2C1BFBEBD +BCBBBAB9AC9A806E58505054595B5E5F62676A6E717377787A7A7D7F80808383 +8383838585868686868685858383838384838382817F7B7A7774706C67635D5C +54504A443C3930264E7698B9CDD1D1D1D1D1D1D1D0D0D0D0D0D0D0D0D0D0D0D0 +D0D1D1D1D1D2D3D3D4D5D5D7D7D9DADBDDDEDFE1E3E4E5E7E8EAEBEDEFF0F2F3 +F4F5F7F8F8FAFAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFCFBFBFAF9F8 +F7F6F5F3F2F0EFEDEBEAE8E6E4E2E0DDDBD9D7D5D3D1CFCECCCAC8C7C5C4C2C1 +BFBFBDBCBBBAB9B9B8AA9A8A765F484A4C505353545657595C5C5C6163626466 +6767686B6A6B6B686B686A68676666666563615E5D5C5856524E4A45423E393A +34304262839EB3C6CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECFCFCF +CFD0D1D1D2D3D3D4D5D6D7D9DADBDDDEDFE1E3E4E5E7E8EAEBEDEFF0F2F3F4F5 +F7F7F8F9FAFBFBFCFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFDFCFBFBFA +F9F8F7F6F5F3F2F0EFEDEBEAE8E6E5E3E1DFDDDBD9D7D5D3D1CFCDCBCAC8C6C5 +C4C2C1C0BFBEBDBCBBBAB9B9B9B8B3A69A8B7E705F4B44444544414748474748 +4848484A4A4A4B4B4A4A484A4A4B484744413E3E3A3A37373532394E64778B9D +ADBEC8C9C9CACACACACACBCBCBCBCBCBCBCBCBCBCBCCCCCCCDCDCDCDCECECFCF +D0D1D1D2D3D4D5D6D7D9DADBDDDEDFE1E3E4E6E7E8EAEBEDEFF0F1F3F4F5F6F7 +F8F9FAFBFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFDFCFB +FAFAF9F8F7F6F5F3F2F0EFEDECEAE8E6E5E3E1DFDDDBD9D7D6D4D2D1CFCDCBCA +C8C7C6C4C3C1C1BFBFBEBCBCBBBABAB9B9B9B8B8B8B7AFA3A0928F817F6D6A57 +5454534C39373939373737374153535353636B7B819196A2A8B7C0C4C4C5C5C6 +C6C6C6C6C6C7C7C7C8C8C8C8C8C8C8C9C9CACACACBCBCBCBCCCDCDCDCECFCFD1 +D1D2D3D4D5D6D7D9DADBDDDEE0E1E3E5E6E7E9EAECEDEFF0F2F3F4F5F6F7F8F9 +FAFBFBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFD +FCFBFAFAF9F8F7F6F5F3F2F1EFEEECEBE9E8E6E4E2E1DFDDDBD9D7D5D4D2D1CF +CDCCCAC8C7C6C5C4C3C1C1BFBFBEBDBCBCBBBBBABAB9B9B9B9B9B9B9B9B9B9B9 +B9B9B9B9B9BABABBBBBCBCBCBCBDBDBEBEBFBFBFBFC0C0C1C1C1C1C2C2C3C3C4 +C4C4C4C4C5C5C6C6C6C6C6C7C7C8C8C8C8C9C9CACBCBCBCCCDCDCECFCFD1D1D3 +D3D5D5D7D8D9DBDCDDDFE0E2E3E5E6E8E9EBECEDEFF0F2F3F4F5F6F7F8F9FAFA +FBFCFDFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFD +FDFDFCFBFAFAF9F8F7F6F5F3F2F1F0EFEDEBEAE8E6E5E3E1E0DEDCDBD9D7D5D4 +D2D1CFCDCCCBC9C8C7C6C5C4C3C1C1C0BFBFBEBDBDBCBCBCBBBBBBBABABABABA +BABABABABABABBBBBBBBBCBCBCBCBCBDBDBEBEBFBFBFBFBFC0C0C1C1C1C1C2C2 +C3C3C4C4C4C4C5C5C6C6C6C6C7C8C8C8C9CACACBCBCCCDCDCFCFD0D1D2D3D4D5 +D6D7D9DADBDDDEDFE1E3E4E5E7E8EAEBEDEEEFF0F2F3F4F5F6F7F8F9FAFAFBFC +FCFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFE +FEFDFDFCFCFBFBFAF9F8F7F6F5F4F3F2F0EFEDECEBE9E8E6E5E3E1DFDEDCDBD9 +D7D6D4D3D1D0CFCDCCCBC9C8C7C6C5C4C4C2C1C1C0C0BFBFBEBEBDBDBCBCBCBC +BCBCBCBCBCBCBCBCBCBCBCBCBCBDBDBDBEBEBEBFBFBFBFBFC0C0C1C1C1C1C2C2 +C3C3C4C4C4C4C5C6C6C6C7C7C8C8C9CACBCBCCCDCDCECFD0D1D2D3D4D5D6D7D9 +D9DBDCDDDFE1E2E3E5E6E8E9EAEBEDEFF0F1F2F3F4F5F7F7F8F9FAFAFBFCFCFD +FDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFEFEFDFDFDFCFBFBFAF9F8F7F7F5F5F3F2F1F0EFEDEBEAE9E7E6E4E3E1DFDE +DDDBD9D8D7D5D3D2D1CFCFCDCCCBCAC9C8C7C6C5C4C4C3C2C2C1C1C0C0BFBFBF +BFBFBFBEBEBEBEBEBEBEBEBEBEBFBFBFBFBFBFBFBFC0C0C1C1C1C1C1C2C2C3C4 +C4C4C4C5C6C6C6C7C8C8C8C9CACBCBCCCDCDCFCFD0D1D2D3D4D5D6D7D9DADBDC +DDDFE0E1E3E5E6E7E8EAEBECEEEFF0F1F2F3F5F6F7F8F8F9FAFBFBFCFCFDFDFE +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FEFEFEFEFEFDFDFDFCFBFBFAFAF8F8F7F6F5F4F3F2F0EFEEEDEBEAE8E7E6E5E3 +E1E0DFDDDBDAD9D7D6D5D3D2D1D0CFCECDCCCBCAC9C8C8C7C6C6C5C4C4C4C3C2 +C2C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C2C2C3C3C3C4C4C4C4C5C5 +C6C6C6C7C8C8C8C9CACBCBCCCDCDCECFD0D1D1D3D3D5D5D7D8D9DADBDDDEDFE1 +E2E3E5E6E7E8EAEBECEDEFF0F1F2F3F4F5F6F7F8F8FAFAFBFBFCFDFDFDFEFEFE +FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFEFEFDFDFDFCFBFBFAFAF9F8F7F7F5F5F3F2F1F0EFEEEDEBEAE8E7 +E6E5E3E2E1DFDEDDDBDAD9D7D6D5D4D3D2D1D0CFCECDCDCBCBCAC9C8C8C8C7C6 +C6C6C6C5C5C5C4C4C4C4C4C4C4C4C4C4C4C4C4C4C5C5C5C6C6C6C6C6C7C7C8C8 +C8C9CACBCBCBCCCDCDCECFCFD0D1D2D3D3D5D5D7D7D9D9DBDCDDDEDFE1E2E3E5 +E6E7E8EAEBECEDEEEFF0F2F2F3F5F5F7F7F8F9FAFAFBFBFCFDFDFDFEFEFEFEFE +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFEFEFEFEFEFDFDFDFCFBFBFBFAF9F8F8F7F6F5F4F3F2F1F0EFEEEDEB +EAE9E8E6E5E4E3E1E0DFDEDDDBDAD9D8D7D6D5D4D3D2D1D1D0CFCFCECDCDCCCB +CBCBCACAC9C9C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C9C9C9CACACBCBCBCBCC +CDCDCDCECFCFD0D1D1D2D3D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E3E4E5E6E7E8 +EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F8F9FAFAFBFBFCFDFDFDFEFEFEFEFEFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFEFEFDFDFDFDFCFBFBFAFAF9F8F8F7F6F5F4F3F2F1F0EF +EEEDECEBEAE8E7E6E5E4E3E2E1DFDFDDDCDBDAD9D8D7D7D6D5D4D3D3D2D1D1D1 +D0CFCFCFCECECDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECFCFCFD0D0 +D1D1D2D2D3D3D4D5D5D6D7D8D9D9DBDBDCDDDEDFE1E1E3E3E5E6E6E8E9EAEBEC +EDEFEFF0F1F2F3F4F5F6F7F8F8F9FAFAFBFBFCFCFDFDFDFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFEFEFEFEFEFDFDFDFCFBFBFBFAFAF9F8F7F7F6F5F4F3F2 +F2F0F0EFEDEDEBEAEAE8E7E6E5E5E3E3E1E1DFDFDDDDDCDBDAD9D9D8D7D7D6D5 +D5D5D4D3D3D3D3D2D2D2D1D1D1D1D1D1D1D1D1D1D1D1D2D2D2D3D3D3D3D4D5D5 +D5D6D7D7D7D8D9D9DADBDCDDDDDEDFE0E1E2E3E4E5E6E6E8E9EAEBEBEDEEEFF0 +F0F2F2F3F4F5F6F7F7F8F9FAFAFBFBFBFCFDFDFDFDFEFEFEFEFEFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFDFDFDFDFCFBFBFBFAFAF9F8F7F7F6F5 +F4F3F3F2F1F0EFEFEDEDEBEBEAE9E8E7E6E5E5E3E3E2E1E0DFDFDEDDDDDCDBDB +DADAD9D9D9D8D8D7D7D7D7D7D7D6D6D6D6D6D6D7D7D7D7D7D7D7D8D8D9D9D9DA +DADBDBDCDDDDDEDFDFE0E1E1E2E3E4E5E6E6E7E8E9EAEBEBEDEDEFEFF0F1F2F3 +F3F4F5F6F7F7F8F8F9FAFAFBFBFCFCFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFCFCFBFBFAFAFAF9F8F8 +F7F6F5F5F4F3F2F2F1F0EFEFEEEDECEBEAEAE9E8E7E6E6E5E5E4E3E3E2E1E1E0 +DFDFDFDEDDDDDDDDDDDCDCDCDBDBDBDBDBDBDBDBDBDCDCDCDCDDDDDDDDDEDEDF +DFE0E0E1E1E2E3E3E4E5E5E6E6E7E8E9EAEAEBECEDEDEFEFF0F1F2F2F3F4F5F5 +F6F7F8F8F9FAFAFAFBFBFCFCFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFCFCFBFBFBFAFA +F9F8F8F7F7F6F5F5F4F3F3F2F1F0F0EFEFEDEDECEBEBEAEAE9E8E8E7E6E6E5E5 +E5E4E3E3E3E3E2E2E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E2E2E3E3E3E4 +E4E5E5E5E6E6E7E8E8E9EAEAEBEBECEDEDEEEFF0F0F1F2F2F3F4F5F5F6F7F7F8 +F8F9FAFAFAFBFBFCFCFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFDFCFCFBFB +FBFAFAFAF9F8F8F7F7F6F5F5F4F3F3F2F2F1F0F0EFEFEEEDEDECECEBEBEAEAEA +E9E8E8E8E7E7E7E6E6E6E6E6E6E6E5E5E5E5E5E5E6E6E6E6E6E6E6E7E7E8E8E8 +E8E9EAEAEAEBEBEBECEDEDEEEFEFF0F0F1F2F2F3F3F4F5F5F6F7F7F8F8F8F9FA +FAFBFBFBFCFCFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFDFD +FCFBFBFBFBFAFAF9F9F8F8F7F7F7F6F5F5F4F3F3F2F2F2F1F0F0F0EFEFEEEEED +EDEDECECEBEBEBEBEBEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEBEBEBEBEBECEC +EDEDEDEEEEEFEFEFF0F0F1F2F2F2F3F3F4F5F5F5F6F7F7F8F8F8F9FAFAFAFBFB +FBFCFCFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFD +FDFDFDFCFCFBFBFBFBFAFAFAF9F8F8F8F7F7F7F6F5F5F5F4F3F3F3F2F2F2F2F1 +F0F0F0F0EFEFEFEFEFEFEFEEEEEEEEEEEEEEEEEEEEEEEEEEEFEFEFEFEFEFF0F0 +F0F0F1F1F2F2F2F3F3F3F4F5F5F5F6F6F7F7F8F8F8F9F9FAFAFAFBFBFBFCFCFD +FDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFE +FEFEFDFDFDFDFDFCFCFBFBFBFBFAFAFAF9F9F8F8F8F8F7F7F7F6F6F5F5F5F5F4 +F4F3F3F3F3F3F2F2F2F2F2F2F2F2F2F2F1F1F2F2F2F2F2F2F2F2F2F2F2F3F3F3 +F3F3F4F4F5F5F5F5F6F7F7F7F7F8F8F8F9F9FAFAFAFBFBFBFBFCFCFDFDFDFDFD +FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE +FEFEFEFEFEFEFDFDFDFDFDFCFCFCFBFBFBFBFAFAFAFAF9F9F9F8F8F8F8F7F7F7 +F7F7F6F6F6F5F5F5F5F5F5F5F5F5F5F4F4F4F4F5F5F5F5F5F5F5F5F5F5F5F6F6 +F6F7F7F7F7F7F8F8F8F8F9F9FAFAFAFAFBFBFBFBFBFCFCFDFDFDFDFDFEFEFEFE +FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFEFEFEFEFEFEFEFEFDFDFDFDFDFDFCFCFCFBFBFBFBFBFAFAFAFAFAFAF9F9 +F9F8F8F8F8F8F8F8F8F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F8F8F8F8F8F8F8 +F8F9F9F9F9FAFAFAFAFAFBFBFBFBFBFCFCFCFDFDFDFDFDFDFEFEFEFEFEFEFEFE +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFCFCFCFBFBFBFBFBFBFB +FBFAFAFAFAFAFAFAFAFAFAFAFAF9F9F9F9F9F9F9F9F9FAFAFAFAFAFAFAFAFAFA +FAFAFBFBFBFBFBFBFBFCFCFCFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFDFDFDFDFCFCFC +FCFCFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB +FCFCFCFCFCFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFD +FDFDFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCFDFDFDFDFDFDFDFDFD +FDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFE +FEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFE +FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE +FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +grestore +showpage +%%EndPage +%%EOF diff --git a/legacy/evas/doc/img/evas_big.png b/legacy/evas/doc/img/evas_big.png new file mode 100644 index 0000000000..43e5cfbd96 Binary files /dev/null and b/legacy/evas/doc/img/evas_big.png differ diff --git a/legacy/evas/doc/img/evas_small.png b/legacy/evas/doc/img/evas_small.png new file mode 100644 index 0000000000..933466a401 Binary files /dev/null and b/legacy/evas/doc/img/evas_small.png differ diff --git a/legacy/evas/proj/Makefile.am b/legacy/evas/proj/Makefile.am new file mode 100644 index 0000000000..28f796e59c --- /dev/null +++ b/legacy/evas/proj/Makefile.am @@ -0,0 +1,3 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = win32_gdi diff --git a/legacy/evas/proj/win32_gdi/Makefile.am b/legacy/evas/proj/win32_gdi/Makefile.am new file mode 100644 index 0000000000..13696a0e5a --- /dev/null +++ b/legacy/evas/proj/win32_gdi/Makefile.am @@ -0,0 +1,11 @@ +EXTRA_DIST = \ +evaslib.vcb \ +evaslib.vcl \ +evaslib.vco \ +evaslib.vcp \ +evaslib.vcw \ +evas_software_win32.vcb \ +evas_software_win32.vcl \ +evas_software_win32.vco \ +evas_software_win32.vcp \ +evas_software_win32.vcw diff --git a/legacy/evas/proj/win32_gdi/evas_software_win32.vcb b/legacy/evas/proj/win32_gdi/evas_software_win32.vcb new file mode 100644 index 0000000000..7ff1dbb236 Binary files /dev/null and b/legacy/evas/proj/win32_gdi/evas_software_win32.vcb differ 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 0000000000..d2f5e9a4ce Binary files /dev/null and b/legacy/evas/proj/win32_gdi/evas_software_win32.vco differ 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 0000000000..f43df74ab6 Binary files /dev/null and b/legacy/evas/proj/win32_gdi/evaslib.vcb differ 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 0000000000..f0c0ba83d4 Binary files /dev/null and b/legacy/evas/proj/win32_gdi/evaslib.vco differ diff --git a/legacy/evas/proj/win32_gdi/evaslib.vcp b/legacy/evas/proj/win32_gdi/evaslib.vcp new file mode 100644 index 0000000000..024d71ac33 --- /dev/null +++ b/legacy/evas/proj/win32_gdi/evaslib.vcp @@ -0,0 +1,16453 @@ +# Microsoft eMbedded Visual Tools Project File - Name="evaslib" - Package Owner=<4> +# 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 ""; +}