Hi Florent, On Mon, Aug 3, 2015 at 7:28 PM, Florent R <revest...@gmail.com> wrote:
> 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. > Yep, that's definitely garbage data on the screen :) > > 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 > This is really great and I will definitely have a look at your code. Congrats! -- Jean-Philippe André ------------------------------------------------------------------------------ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel