Hi, As part of an internship for OpenWide Ingénierie, I spent the latest month working on an EGLFS (EGL Full Screen) module for the EFL. The idea is similar to the Qt's EGLFS module, indeed the goal is to provide hardware accelerated graphics on embedded linux platforms which only support the framebuffer and libEGL/libGLESv2 without using X11, Wayland or KMS. This opens up numerous exciting possibilities: for example I've been able to use Enlightenment on Android devices with libhybris. However with just a little bit more code other examples may include standalone EFL on the Raspberry-Pi, or on Mali platforms, iMX6 and so on...
My work included the creation of ecore_evas_eglfs which uses the existing ecore_fb and the new evas_eglfs. As the ecore_evas_eglfs module is almost the same as ecore_evas_fb, code duplication was avoided by appending ecore_evas_eglfs_new_internal at the end of ecore_evas_fb.c. (in the same way as ecore_evas_gl_drm_new was added at the end of ecore_evas_drm.c) The evas_eglfs module includes more new things. This time my work was based on gl_drm, however I removed the usage of DRM and GBM to only keep the bare necessities: EGL/GLESv2. When using eglCreateWindowSurface the native_window argument is set to NULL so that EGL creates a full screen surface. In order to make this work more useful I also added EGLFS support to Elementary and I created a Wl_Eglfs module for Enlightenment. I was able to test my module in plenty of situations including: unit tests with expedite, simple application with elementary_tests standalone, complete desktop experience with enlightenment and fully-featured app with calaos. My code modifications are available on the following git repositories which might still be a little bit hacky for now : * https://github.com/FlorentRevest/EFL * https://github.com/FlorentRevest/Elementary * https://github.com/FlorentRevest/Enlightenment During my epic journey with EFL on embedded Linux I also created an OpenEmbedded distribution called boot2efl. Once again my work was inspired by boot2qt and I designed a lightweight system able to run on libhybris. The most supported platform is the radxa rock however there is some very early support for the ODroid C1 and Cubieboard1. You can download a flashable update.img image here : Or you can build it yourself by running the following commands : git clone https://github.com/FlorentRevest/boot2efl cd boot2efl . ./prepare-build.sh bitbake boot2efl-image Demonstration videos are available on youtube here : https://youtu.be/RdCyzL0Gguk https://youtu.be/YnD9qt1dvGc https://youtu.be/zjGWFNGl4iw As you can see on the Enlightenment example there is a glitch when showing the main menu. It still needs some investigations. I hope my work will prove useful to someone else, I believe it can be a great piece of news for Tizen porting on Android devices. (libhybris is the technology behind namely SailfishOS, WebOS-Ports, Mer and Nemomobile) Don't hesitate to ask me any question you might have on my plugin or to share your thoughts about my work. Florent Revest ------------------------------------------------------------------------------ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel