It looks like Qt is the currently (prefered) GUI library for Genode. I am trying to push it toward EFL with this message. ;-)
Ok, frankly, I did not begin to develop any application either with Qt or EFL. I am still kind of searching which GUI libs I should learn.
Anyway, what is Enlightenment? It might have come to your knowledge as a X11 window manager that no one use anymore. Well, Enlightenment version 17 was in developement stage, for about 12 years, and it just have been released. Which may have made it out of the radar of most people.
This long development period, have made it, elaborate their own GUI libraries: EFL (Enlightenment Fondation Library ... I think).
They are quite small, and might better fit for this reason alone Genode.
But my interest for it, come mostly from this extract of the website: ------------- Evas is the canvas layer. It is not a drawing library. It is not like OpenGL, Cairo, XRender, GDI, DirectFB etc. It is a scene graph library that retains state of all objects in it. They are created then manipulated until they are no longer needed, at which point they are deleted. This allows the programmer to work in terms that a designer thinks of. It is direct mapping, as opposed to having to convert the concepts into drawing commands in the right order, calculate minimum drawing calls needed to get the job done etc.
Evas also handles abstracting the rendering mechanism. With zero changes the same application can move from software to OpenGL rendering, as they all use an abstracted scene graph to describe the world (canvas) to Evas. Evas supports multiple targets, but the most useful are the high-speed software rendering engines and OpenGL (as well as OpenGL-ES 2.0).
Evas not only does quality rendering and compositing, but also can scale, rotate and fully 3D transform objects, allowing for sought-after 3D effects in your interfaces. It supplies these abilities in both software and OpenGL rendering, so you are never caught with unexpected loss of features. The software rendering is even fast enough to provide the 3D without any acceleration on devices for simple uses. -------------
I like this idea of not to have to care about the exact rendering.
Anyway, for more info, this was taken from: http://www.enlightenment.org/p.php?p=about&l=en
As for seeing a bit what it can do, I could suggest to try Bodhi Linux, which is a Linux distribution that use Enlightenment: http://bodhilinux.com/ (not totaly sure it really shows clearly the link with Enlightenment 17).
There seems to be a problem however: It seems to depend quite a bit on X. While reading: http://trac.enlightenment.org/e/wiki/Installation I now see it depends on the following libs: libc libm libpthread zlib freetype fontconfig opengl2.0/opengles-2 (depending on target) libudev (linux only) libpng libjpeg libx11 libxext libxrender libxcomposite libxdamage libxfixes libxrandr libxinerama libxss libxtest libxdpms libxcursor libxprint libudev liblua libxcb libxcb-shape
Well, I thought it was not so tied to X. Maybe it is not, as it can be use on Wayland: http://wayland.freedesktop.org/efl.html
25 jan 2013 kl. 15:33 skrev Paul Dufresne <dufresnep@...9...>:
There seems to be a problem however: It seems to depend quite a bit on X. While reading: http://trac.enlightenment.org/e/wiki/Installation I now see it depends on the following libs: libc libm libpthread zlib
snip
EFL is easy to port , you just need to replace the X11 calls to something else..
Br
Michael
Now that I am reading the README of Evas 1.7.4 (I would think only this lib deals with backend buffers), the restriction seems much less strict:
Must: libc eina (1.1.0 or better) freetype (2.1.9 or better)
Recommended: libX11 + libXext + libXrender OpenGL2.0 or OpenGL-ES 2.0 fontconfig libpng libjpeg (6.0 or better) eet (1.5.0 or better) fribidi harfbuzz liblinebreak
Optional: XCB SDL OpenGL esvg libtiff libgif edb DirectFB evas_generic_loaders
So X11 is optional.
Using configure with: The following seems interesting:
--enable-fb[=static] [well less interesting] this is the software framebuffer driving engine. this uses the linux framebuffer device (/dev/fb{X}) and will currently just inherit the current framebuffer settings on the fb device and use them to run in. this engine is almost fully functional except for the fb management itself. this engine is specifically geared towards people writing minimalist display systems for embedded devices such as the ipaq, zaurus, etc. it also scales up to high-res desktop systems as well.
--enable-directfb[=static] this is the direct fb engine that uses direcftb (http://www.directfb.org) on linux to access the framebuffer with (or maybe without) acceleration. for people making set-top boxes or just wanting an alternative to X this is really good. it may also be useful for embedded devices supported by directfb that offer acceleration (otherwise the fb driver will likely be faster). as such this engine is in relative disrepair and is not maintained. use with great care.
--enable-buffer[=static] this enables the memory buffer rendering engine. this engine renders to a region of memory that is considered to be a 32bit ARGB buffer of pixels, allowing the results of rendering to be directly read out or used again for other purposes.
--enable-software-sdl[=static] [probably the most interesting since SDL is ported to Genode] this is the sdl engine that uses sdl library (http://www.libsdl.org). This library should work on many operating system. the buffer is software-rendered with evas's default software rendering core.