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