Wiki page about changed with summary [] by Nate Drake
This commit is contained in:
parent
0ad0c483eb
commit
c5dbc929ba
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
==== Much more than a Window Manager ====
|
==== Much more than a Window Manager ====
|
||||||
|
|
||||||
Enlightenment was originally developed in the 1990s by Rasterman (Carsten Haitzler) as a simple Window Manager for
|
Enlightenment originally began as a project to create a Window Manager for
|
||||||
X11. Since then it's grown into the one million lines of C
|
X11. Since then it's grown into the one million lines of C
|
||||||
code that form the EFL libraries, as well as a Window Manager and a
|
code that form the EFL libraries, as well as a Window Manager and a
|
||||||
set of applications. There's a vibrant and active community of
|
set of applications. There's a vibrant and active community of
|
||||||
|
@ -48,46 +48,17 @@ details.
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
=== EFL ===
|
=== Libraries ===
|
||||||
|
|
||||||
{{:efl-core.png?nolink|Enlightenment}}
|
{{ :efl-core.png?nolink|Core libraries}}
|
||||||
|
|
||||||
Our libraries are commonly known as EFL (Enlightenment Foundation
|
Our libraries are commonly known as EFL (Enlightenment Foundation
|
||||||
Libraries). They can be used independently or built on top of one other to provide useful features and create powerful applications.
|
Libraries), which include EFL proper as well as Elementary which is a
|
||||||
|
high-level API layer designed for portability and includes widgets. They provided everything you need to create powerful applications.
|
||||||
|
|
||||||
The core EFL libraries are much more efficient in terms of speed and size when compared to GTK+ and Qt equivalents and have a smaller memory footprint.
|
|
||||||
|
|
||||||
=== The EFL Model ===
|
|
||||||
|
|
||||||
{{:model1.png?nolink}}
|
{{:os-logos.png?nolink |Platform Support}}
|
||||||
|
|
||||||
EFL operates on the same "main loop" concept adopted by GTK+ and many other toolkits. Once you initialize an application in enters the Ecore main loop.
|
|
||||||
|
|
||||||
The main loop continuously checks for events, handles timers, callbacks and any other services that have previously been set up until an exit request is sent. By way of an example if EFL were used to create a video game, the mainloop would check for user inputs and update the game world accordingly as you play.
|
|
||||||
|
|
||||||
The mainloop is designed efficiently. It will remain idle, consuming virtually no CPU resources until an event occurs. Events can be based on user input such as using the mouse or time-based. Ecore will then handle the event appropriately.
|
|
||||||
|
|
||||||
Read more about the Ecore main loop [[https://docs.enlightenment.org/auto/group__Ecore__Main__Loop__Group.html|here.]]
|
|
||||||
|
|
||||||
For more detailed information on the EFL model including events and callbacks visit see our [[https://phab.enlightenment.org/w/efl_concept_overview/|EFL Concept Overview.]]
|
|
||||||
|
|
||||||
=== EFL Application Structure ===
|
|
||||||
|
|
||||||
{{ :efllibs.png }}
|
|
||||||
|
|
||||||
Whenever you create a basic EFL Application, it uses a basic set of libraries:
|
|
||||||
|
|
||||||
* **Elementary** is the top-most library. It provides all the functions you need to create windows, manage layouts and add widgets.
|
|
||||||
* **Edje** is the library used by Elementary to provide powerful,customisable themes. You can also use Edje to create your own objects and use them in an application.
|
|
||||||
* **Ecore** is the library which manages the main loop of your application, as outlined above.
|
|
||||||
* **Evas** is the canvas engine, which draws content. Any graphical objects you create are Evas objects. It handles the entire state of the window by filling the canvas with objects and manipulating their states. Evas objects are created and then manipulated until they are no longer needed, at which point they are deleted.
|
|
||||||
* **Eina** forms the basis of all EFL libraries. It's a toolbox that implements an API for data types in an efficient way. Eina contains all the functions needed to create lists and hashes, manage shared strings, open shared libraries, and manage errors and memory pools.
|
|
||||||
|
|
||||||
EFL naturally contains many more libraries than the basic ones outlined above. Visit our [[https://www.enlightenment.org/develop/legacy/program_guide/basic_application_structure_pg|Basic Application Structure]] page for more information on the core libraries. You can also learn about other libraries in our other programming guides.
|
|
||||||
|
|
||||||
=== Supported Platforms ===
|
|
||||||
|
|
||||||
{{:os-logos.png?nolink }}
|
|
||||||
|
|
||||||
We primarily work on Linux, which means that most Linux distributions
|
We primarily work on Linux, which means that most Linux distributions
|
||||||
and OSs like Tizen should be well supported out of the box. There are
|
and OSs like Tizen should be well supported out of the box. There are
|
||||||
|
@ -99,10 +70,6 @@ page, or
|
||||||
[[http://win-builds.org|Win-Builds]] which ships EFL for
|
[[http://win-builds.org|Win-Builds]] which ships EFL for
|
||||||
Windows and even uses it for the package updater GUI. For information on macOS, please refer to the [[docs/distros/osx-start]] page.
|
Windows and even uses it for the package updater GUI. For information on macOS, please refer to the [[docs/distros/osx-start]] page.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
=== Uses for EFL ===
|
|
||||||
|
|
||||||
Enlightenment libraries already power millions of systems, from mobile
|
Enlightenment libraries already power millions of systems, from mobile
|
||||||
phones to set top boxes, desktops, laptops, game systems and more. It
|
phones to set top boxes, desktops, laptops, game systems and more. It
|
||||||
is only now being recognized for its forward-thinking approach, as
|
is only now being recognized for its forward-thinking approach, as
|
||||||
|
|
Loading…
Reference in New Issue