Minor adjustments.
[maemo-efl] / www / index.html
1 <?xml version="1.0" encoding="utf-8"?>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3   <head>
4     <title>Maemo port of EFL (Enlightenment Foundation Libraries)</title>
5     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6     <link rel="stylesheet" type="text/css" href="style.css"/>
7     <link rel="icon" href="favicon.ico" type="image/x-icon"/>
8     <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
9     <link rel="icon" href="favicon.ico" type="image/ico"/>
10     <link rel="shortcut icon" href="favicon.ico" type="image/ico"/>
11   </head>
12   <body>
13     <div class="header"></div>
14     <h1 style="text-align: center">
15       Maemo port of Enlightenment Foundation Libraries - EFL
16     </h1>
17
18     <div class="left_box">
19       <h2>What are EFL?</h2>
20       <p>
21         The Enlightenment Foundation Libraries (EFL) are a collection
22         of libraries so powerful, flexible, and easy to use that they
23         present a strong platform on which to develop nearly any
24         graphical application you could think of.
25       </p>
26       <p>
27         The EFL begins with <a
28         href="http://www.enlightenment.org/p.php?p=about/libs/imlib2">Imlib2</a>,
29         a general image manipulation and rendering library, and
30         <a href="http://www.enlightenment.org/p.php?p=about/libs/evas">Evas</a>,
31         our canvas library. Because Evas is built on several different
32         selectable engines (Linux FrameBuffer, DirectFB, X11, OpenGL,
33         QTopia, etc) the platform is extremely portable, which
34         translates thru to all of the libraries built on top of it.
35         <a href="http://www.enlightenment.org/p.php?p=about/libs/ecore">Ecore</a>
36         is a modular convience library that in its base provides
37         timers, callback functionality, and loop management for event
38         handling. Ecore's various modules can simplify the setup of an
39         X11 drawable for general use (Ecore_X11), an X11 drawable for
40         use with Evas (Ecore_Evas), manage IPC (Ecore_IPC), manage BSD
41         Sockets (Ecore_Con), management of the FrameBuffer (Ecore_FB),
42         and more. Because Ecore can simplify so many tasks that are
43         used in conjuction with Evas it has lived up to its name as
44         the core componant of nearly any EFL application.
45       </p>
46       <p>
47         <a href="http://www.enlightenment.org/p.php?p=about/libs/edje">Edje</a>
48         provides a revolutionary method of abstracting every aspect of
49         your interface from the application itself. By passing signals
50         between the interface and the application all communication is
51         done in an interface neutral way. No longer are "themes"
52         simple changes of pixmaps over a fixed area. Using <a
53         href="http://www.enlightenment.org/p.php?p=about/libs/embryo">Embryo</a>
54         we can provide scripting ability to the interface componant
55         itself to harness even more power and flexibility.
56       </p>
57       <p>
58         Below is a diagram of how the various componants of the EFL
59         fit together. Because of complexity of the libraries and the
60         fact that so many libraries can be used independant of other
61         EFL libraries we have a diagram alittle more complex than your
62         standard block diagram.
63         <a
64             href="http://enlightenment.sourceforge.net/Libraries/images/_images/efl.png"><img
65             src="images/efl_diagram_banner.png" alt="EFL Diagram banner"
66             class="center" style="margin-top: 5px;"/></a>
67       </p>
68       <p>
69         Want to learn more? Check the <a
70         href="http://www.enlightenment.org/p.php?p=about/libs">official website</a>.
71       </p>
72     </div>
73     <div class="center_box">
74       <a href="http://www.enlightenment.org/"
75          title="Enlightenment Project"><img
76          src="images/e_logo.png" alt="enlightenment logo"
77          id="e_logo" /></a>
78
79       <h2>Downloads</h2>
80       <table class="download">
81         <tbody>
82           <tr>
83             <td><a
84                     href="http://www.gustavobarbieri.com.br/e17-n800/python-efl.install"><img src="images/install_button.png" alt="One click install" class="center" style="margin-top: 10px;"/></a></td>
85             <td>
86               <b>Python-EFL</b>
87               <address>
88                 Python bindings, includes basic libraries.
89               </address>
90             </td>
91           </tr>
92           <tr>
93             <td><a
94                     href="http://www.gustavobarbieri.com.br/e17-n800/python-efl-demo.install"><img src="images/install_button.png" alt="One click install" class="center" style="margin-top: 10px;"/></a></td>
95             <td>
96               <b>Python-EFL-Demo</b>
97               <address>
98                 Python bindings demonstration applications, includes
99                 basic libraries.
100               </address>
101             </td>
102           </tr>
103           <tr>
104             <td><a
105                     href="http://www.gustavobarbieri.com.br/e17-n800/expedite.install"><img src="images/install_button.png" alt="One click install" class="center" style="margin-top: 10px;"/></a></td>
106             <td>
107               <b>Expedite</b>
108               <address>
109                 Benchmark suite, includes basic libraries.
110               </address>
111             </td>
112           </tr>
113         </tbody>
114       </table>
115       <h2>Resources</h2>
116       <p>Port Resources:</p>
117       <ul>
118         <li><a
119                 href="https://garage.maemo.org/projects/maemo-efl/">Project</a></li>
120         <li><a
121                 href="https://garage.maemo.org/tracker/?group_id=262">Bug Tracker</a></li>
122         <li><a href="https://garage.maemo.org/forum/?group_id=262">Forum</a></li>
123
124       </ul>
125       <p>Official Resources:</p>
126       <ul>
127         <li><a href="http://www.enlightenment.org">Website</a></li>
128         <li><a href="http://wiki.enlightenment.org">Wiki</a></li>
129         <li><a
130                 href="http://www.enlightenment.org/p.php?p=docs">Docs</a></li>
131         <li><a href="http://bugs.enlightenment.org">Bug Tracker</a></li>
132
133       </ul>
134       <p>Related Blogs:</p>
135       <ul>
136         <li><a href="http://blog.gustavobarbieri.com.br/">Gustavo
137         Sverzut Barbieri</a></li>
138         <li><a href="http://codeposts.blogspot.com/">Kenneth Christiansen</a></li>
139       </ul>
140     </div>
141     <div class="right_box">
142       <h2>About Maemo Port</h2>
143       <p>
144         As said in "What are EFL?", the code is very portable. Since
145         their developers are receptive to contributions, so all the
146         code was developed and integrated upstream, at the official
147         project. What remains here is just the package system, which
148         is specific to maemo.
149       </p>
150       <p>
151         The most significant contribution to EFL were made by Gustavo
152         Sverzut Barbieri and are:
153       </p>
154       <ul>
155         <li>
156           <a
157               href="http://blog.gustavobarbieri.com.br/2007/06/03/evas-now-using-rectangle-split-and-merge/">Rewrote
158           of <code>evas_tiler.c</code></a> to operate on dirty
159           rectangles instead of segmented screen regions. Before this
160           change, dirty areas were marked in a bitmap array that
161           represented tiles of the screen (screen was segmented in 8x8
162           tiles). To add a new dirty area, mark the bitmap array, to
163           check for dirty areas, walk it. For maemo devices it
164           resulted in <code>(800*480)/(8*8) = 6000</code> operations
165           to check we have nothing to do. Although this looks bad,
166           it's not because we have a maximum cost of 12000 operations,
167           independently of the number of dirty areas, and this
168           algorithm is stupidly fast on desktops. The new algorithm,
169           instead, keep the dirty areas as non-overlapping rectangles,
170           the tricky part was to minimize number of rectangles because
171           problem has quadratic <code>O(n²)</code> worst case, this
172           was done by some heuristics and merge of nearby rectangles
173           when possible. This removed the major profiled bottleneck.
174         </li>
175         <li>
176           <a
177               href="http://blog.gustavobarbieri.com.br/2007/06/21/evas-on-n800-blazing-fast/">16bpp (bits-per-pixel)
178           engine</a> (<code>software_16</code>). So far
179           every Evas engine were 32bpp, with 8 bits per color
180           component, with conversion to required bit-depth on the fly
181           with use of dither-mask to make it look good. Although this
182           conversion is fast, it's still more to do on a limited power
183           device. And that's not the worse part: we have to operate on
184           much more data (usually 1 byte per pixel)! Working with
185           16bpp from the beginning we could reduce memory usage and
186           pack some operations into one arithmetic operation (it's
187           possibe to work with 16bits data inside a 32bits word). This
188           brought us major performance gains.
189         </li>
190       </ul>
191     </div>
192     <hr />
193     <div class="center" style="width: 280px">
194       <img src="images/maemo_logo.jpg" alt="Built for Maemo(tm)"/>
195       <img src="images/indt_logo.jpg" alt="Sponsored by INdT"
196            style="margin-left: 20px"/>
197     </div>
198   </body>
199 </html>