Enlightenment Foundation Libraries 1.0.0 Bêta

Posté par  . Modéré par Mouns.
Étiquettes :
50
10
oct.
2010
Serveurs d’affichage
Les EFL (Enlightenment Foundation Libraries) sont un ensemble de bibliothèques dédiées au graphisme, très optimisées et utilisées entre autres pour l'écriture du gestionnaire de fenêtre Enlightenment, du media player Enna, ainsi que d'autres applications : Un mois et demi après la sortie en version 1.0.0 Alpha, les EFL sortent en version Bêta. L'API ne changera plus jusqu'à la version 1.0.0 finale (en particulier, tout ajout de fonctionnalité est interdit). La priorité est la correction des erreurs et l'amélioration de la documentation, avec comme but la sortie en version 1.0.0 finale à la fin du mois d'octobre (avec peut-être des Release Candidate entretemps). Le gestionnaire de fenêtres Enlightenment utilise un ensemble de bibliothèques, les Enlightenment Foundation Libraries (EFL), pour gérer la partie graphisme, la boucle des événements et les technologies classiques (hal/devicekit, standard Freedesktop, etc.) nécessaires à un tel programme. Ces bibliothèques peuvent aussi être utilisées pour créer des applications complètes avec interfaces graphiques. Elles sont optimisées en vitesse et consommation de mémoire, pour en faire des outils de choix pour l'embarqué.

Le 3 octobre 2010, ces bibliothèques sont sorties en version 1.0.0 bêta. Aucun ajout de fonctionnalité n'est autorisé. La liste de ces bibliothèques sorties en bêta est la même que celle de la sortie en version alpha. En voici une description un peu plus détaillée :
  • Eina : bibliothèque gérant les types de données, très optimisée, et divers outils (journalisation, benchmark, memory pool, module, chaînes de caractères, conversion de et vers l'Unicode...).

  • Eet : bibliothèque sérialisant les données en les stockant dans un fichier, en les compressant (utile pour des images) ou pas. Elle est indépendante de l'endianness et de l'architecture. Elle est principalement utilisée pour le stockage des données de configuration d'une application, et pour les thèmes avec Edje (voir ci-dessous). Elle peut aussi se montrer, dans certains cas, plus intéressante que SQL. Elle peut aussi chiffrer les données le cas échéant.

  • Evas : canevas stateful, très optimisé. Elle s'occupe du rendu du contenu d'une fenêtre. À la différence de bibliothèques de rendu direct (SDL, Imlib2, Cairo...), Evas ne met à jour son contenu que lorsque c'est nécessaire. Le nombre de systèmes graphiques supportés est assez large (X11 (Xlib, XCB, Xrender, OpenGL (utilisant les shaders)), Windows XP (GDI, DirectDraw), Windows CE (framebuffer, GAPI, DirectDraw, GDI), Mac OS X (Cocoa, mais très lent...), le framebuffer de Linux, DirectFB, SDL). Le rendu peut être fait sur plusieurs processeurs. Evas s'occupe aussi du chargement de fichiers image (BMP, GIF, JPEG, pixmap, PNG, SVG, TIFF, XPM). Le chargement peut être asynchrone pour éviter de bloquer le rendu d'Evas.

  • Ecore : cette bibliothèque gère tout ce qui a un rapport avec la boucle principale et les événements : la boucle principale et les événements eux-mêmes , mais aussi les connections réseau (TCP, UDP, local, sécurisées), l'IPC, les fichiers (téléchargement, surveillance (monitoring) de fichiers), systèmes graphiques (X11, Windows (XP et CE), Cocoa, framebuffer, DirectFB, SDL) et, aussi, l'intégration d'Evas dans la boucle principale indépendamment du système graphique utilisé.

  • Embryo : machine virtuelle utilisée par Edje pour les thèmes. Avec lua, cette bibliothèque permet d'exécuter des petits programmes dans les thèmes, principalement pour des animations un peu évoluées.

  • Edje : créateur de thème basé sur Evas et Eet, et pouvant utiliser des scripts (à l'aide d'Embryo ou Lua) pour des thèmes dynamiques. À partir de la description dans un fichier texte du thème (les objets à afficher, les programmes à exécuter, les signaux à envoyer et recevoir, etc. un fichier binaire est crée en utilisant Eet (et Embryo ou Lua le cas échéant). La bibliothèque se chargera de lire le fichier. L'affichage du thème se fera grâce à Evas et Ecore. L'utilisation de Eet fait que le fichier binaire sera utilisable partout sans qu'il soit nécessaire de le recréer. Cette bibliothèque a été le point de départ du développement de QML (d'abord l'écriture de QEdje, puis une re-écriture complète, qui est l'actuel QML, n'utilisant plus Edje). Avec un bon designer, on peut obtenir des interfaces vraiment très jolies

  • E_DBus : wrapper autour de DBus et des bibliothèques utilisant DBus (hal, devicekit, connman, ofono, libnotify, etc.)

  • Efreet : implémentation des standards Freedesktop (menu, icônes, corbeille, etc.)

  • Eeze : permet de manipuler les périphériques en utilisant udev.
Elles peuvent être téléchargées dans le répertoire officiel.

La priorité est maintenant la correction des erreurs et l'amélioration de la documentation. La version 1.0.0 finale devrait sortir fin octobre ou début novembre.

Une fois la version 1.0.0 sortie, le développement se focalisera sur le toolkit Elementary, puis e17 lui-même.

Aller plus loin

  • # eyelight

    Posté par  (Mastodon) . Évalué à 7.

    Très bonne présentation des bibliothèques.

    Par ailleurs je connaissais enna mais pas eyelight, ça m'a l'air très intéressant pour les gens comme moi qui sont impotents avec impress ou le point de pouvoir. Est-ce qu'il y'a comme pour magicpoint moyen d'exporter vers du pdf ?
    • [^] # Re: eyelight

      Posté par  . Évalué à 4.

      Non on ne peut pas exporter en pdf, c est le plus gros probleme aujourd'hui.

      En fait ce qu il faudrait ce n est pas un export pdf dans eyelight mais un export pdf dans evas. C est faisable avec quelques pertes (les animations principalement) mais cest un gros travail et personne n est pret a le faire.
  • # Survol souris

    Posté par  . Évalué à 3.

    Quelque chose que j'avais trouvé plutôt génant lors de mon dernier test de enlightenment, c'est que les éléments graphiques n'étaient pas mis en évidence au survol de la souris.
    Dans la vidéo de démo de Calaos, c'est la même chose: pas de modification des éléments graphiques au survol de la souris.
    Je trouve ça très bizarre: tous les toolkits graphiques que je connais mettent en évidence le survol de la souris.

    S'agit-il d'une limitation de Enlightenment, ou d'un réglage volontaire?
    • [^] # Re: Survol souris

      Posté par  . Évalué à 4.

      Sur mac os x, le survol de la souris n'est mis en évidence que sur les listes déroulantes. Et c'est la première fois que je m'en rend compte.

      Envoyé depuis mon lapin.

    • [^] # Re: Survol souris

      Posté par  . Évalué à 8.

      C est dans le theme que ce genre de chose est gere. C est parfaitement possible de le faire, c est juste un choix fait par le designer de ne pas mettre des animations lors du survol de la souris.
    • [^] # Re: Survol souris

      Posté par  . Évalué à 5.

      toute la partie graphique de enlightenment ou des applications graphiques est gérée par Evas. Pour chaque objet Evas, il y a un callback qui peut être lancé quand la souris entre dans cet objet. Donc techniquement, la mise en évidence est possible. Ce n'est juste pas implémenté. Soit c'est voulu, soit c'est par paresse :-)

      Tu peux voir des choses similaire à cette mise en évidence avec le menu de e17. Dans l'ibar,si tu cliques sur l'icône 'e', une fois le bouton relâché, une petite animation est lancée. De même, dans le menu, quand tu passes la souris sur les éléments du menu, ceux-ci changent d'aspect. Donc c'est implémenté de temps en temps :-)

      Quant à Calaos, je pense que c'est voulu : l'interface n'est pas gérée par la souris mais par une télécommande (entre autre). Donc pas trop d'intérêt pour cette application.
  • # j'aimerais lire un jour...

    Posté par  . Évalué à 10.

    Un entretien avec les gars à l'origine ou ayant participé aux l'élaboration des EFL, voir ce que ce travail a impliqué, quelles ont été les approches, comment c'est faite l'optimisation, qu'ont-ils découvert, présenter des astuces etc, etc...

    De ce que j'ai lu de la doc et du code, on a vraiment une impression de rigueur, de finition, le tout est bien "modularisé" bref on a l'impression d'avoir une biblio très aboutie.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.