captainigloo pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=de52ee0192b5b6d8ad542fb2fd9e4185b39b6518

commit de52ee0192b5b6d8ad542fb2fd9e4185b39b6518
Author: Florent Revest <revest...@gmail.com>
Date:   Tue Jul 21 15:41:35 2015 +0200

    Adds eglfs support
---
 configure.ac         |  2 ++
 src/lib/elm_config.c |  3 +++
 src/lib/elm_priv.h   |  1 +
 src/lib/elm_win.c    | 23 ++++++++++++++++++-----
 src/lib/elm_win.h    |  2 ++
 5 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/configure.ac b/configure.ac
index b1df15b..41436b4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -249,6 +249,7 @@ ELM_CHECK_BACKEND([Cocoa])
 ELM_CHECK_BACKEND([Win32])
 ELM_CHECK_BACKEND([Wayland])
 ELM_CHECK_BACKEND([DRM])
+ELM_CHECK_BACKEND([EGLFS])
 
 ELM_CHECK_OPTION([elocation], [0.1.0])
 ELM_CHECK_OPTION([eweather], [0.2.0])
@@ -543,6 +544,7 @@ echo
 echo "  Engines:"
 echo "    X11....................: ${have_elementary_x}"
 echo "    Framebuffer............: ${have_elementary_fb}"
+echo "    Eglfs..................: ${have_elementary_eglfs}"
 echo "    DRM....................: ${have_elementary_drm}"
 echo "    PSL1GHT................: ${have_elementary_psl1ght}"
 echo "    SDL....................: ${have_elementary_sdl}"
diff --git a/src/lib/elm_config.c b/src/lib/elm_config.c
index 7349a3c..a528ffa 100644
--- a/src/lib/elm_config.c
+++ b/src/lib/elm_config.c
@@ -34,6 +34,7 @@ Eina_Hash *_elm_key_bindings = NULL;
 const char *_elm_engines[] = {
    "software_x11",
    "fb",
+   "eglfs",
    "opengl_x11",
    "software_gdi",
    "sdl",
@@ -1826,6 +1827,8 @@ _env_get(void)
           eina_stringshare_replace(&_elm_config->engine, ELM_WAYLAND_EGL);
         else if ((!strcasecmp(s, "drm")))
           eina_stringshare_replace(&_elm_config->engine, ELM_DRM);
+        else if ((!strcasecmp(s, "eglfs")))
+          eina_stringshare_replace(&_elm_config->engine, ELM_EGLFS);
         else if ((!strcasecmp(s, "ddraw")))
           eina_stringshare_replace(&_elm_config->engine, ELM_SOFTWARE_DDRAW);
         else
diff --git a/src/lib/elm_priv.h b/src/lib/elm_priv.h
index 04ba306..0697876 100644
--- a/src/lib/elm_priv.h
+++ b/src/lib/elm_priv.h
@@ -148,6 +148,7 @@ extern const char *_elm_engines[];
 #define ELM_WAYLAND_EGL       (_elm_engines[11])
 #define ELM_DRM               (_elm_engines[12])
 #define ELM_SOFTWARE_DDRAW    (_elm_engines[13])
+#define ELM_EGLFS             (_elm_engines[14])
 
 #define ELM_FONT_TOKEN_STYLE  ":style="
 
diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index 9c0b315..1000f86 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -3386,7 +3386,7 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, 
const char *name, Elm_Win_
           }
 #endif
 
-#if defined(HAVE_ELEMENTARY_DRM) || defined(HAVE_ELEMENTARY_FB)
+#if defined(HAVE_ELEMENTARY_DRM) || defined(HAVE_ELEMENTARY_FB) || 
defined(HAVE_ELEMENTARY_EGLFS)
         else if ((disp) && (!strcmp(disp, "fb")))
           {
 #ifdef HAVE_ELEMENTARY_DRM
@@ -3395,6 +3395,9 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, 
const char *name, Elm_Win_
 #ifdef HAVE_ELEMENTARY_FB
              enginelist[p++] = ELM_SOFTWARE_FB;
 #endif
+#ifdef HAVE_ELEMENTARY_EGLFS
+             enginelist[p++] = ELM_EGLFS;
+#endif
           }
 #endif
 
@@ -3478,6 +3481,9 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, 
const char *name, Elm_Win_
 #ifdef HAVE_ELEMENTARY_PSL1GHT
                   enginelist[p++] = ELM_SOFTWARE_PSL1GHT;
 #endif
+#ifdef HAVE_ELEMENTARY_EGLFS
+                  enginelist[p++] = ELM_EGLFS;
+#endif
                }
              else
                {
@@ -3522,6 +3528,9 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, 
const char *name, Elm_Win_
 #ifdef HAVE_ELEMENTARY_PSL1GHT
                   enginelist[p++] = ELM_SOFTWARE_PSL1GHT;
 #endif
+#ifdef HAVE_ELEMENTARY_EGLFS
+                  enginelist[p++] = ELM_EGLFS;
+#endif
                }
           }
         enginelist[p++] = NULL;
@@ -3578,6 +3587,8 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, 
const char *name, Elm_Win_
                tmp_sd.ee = ecore_evas_ews_new(0, 0, 1, 1);
              else if (!strcmp(enginelist[i], ELM_SOFTWARE_FB))
                tmp_sd.ee = ecore_evas_fb_new(NULL, 0, 1, 1);
+             else if (!strcmp(enginelist[i], ELM_EGLFS))
+               tmp_sd.ee = ecore_evas_eglfs_new(NULL, 0, 1, 1);
              else if (!strcmp(enginelist[i], ELM_BUFFER))
                tmp_sd.ee = ecore_evas_buffer_new(1, 1);
              else if (!strcmp(enginelist[i], ELM_SOFTWARE_PSL1GHT))
@@ -3761,7 +3772,7 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, 
const char *name, Elm_Win_
    _elm_win_list = eina_list_append(_elm_win_list, obj);
    _elm_win_count++;
 
-   if ((engine) && ((!strcmp(engine, ELM_SOFTWARE_FB)) || (!strcmp(engine, 
ELM_DRM))))
+   if ((engine) && ((!strcmp(engine, ELM_SOFTWARE_FB)) || (!strcmp(engine, 
ELM_DRM)) || (!strcmp(engine, ELM_EGLFS))))
      {
         TRAP(sd, fullscreen_set, 1);
      }
@@ -3790,7 +3801,7 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, 
const char *name, Elm_Win_
    if ((_elm_config->softcursor_mode == ELM_SOFTCURSOR_MODE_ON) ||
        ((_elm_config->softcursor_mode == ELM_SOFTCURSOR_MODE_AUTO) &&
         ((engine) && 
-         ((!strcmp(engine, ELM_SOFTWARE_FB)) || (!strcmp(engine, ELM_DRM))))))
+         ((!strcmp(engine, ELM_SOFTWARE_FB)) || (!strcmp(engine, ELM_DRM)) || 
(!strcmp(engine, ELM_EGLFS))))))
      {
         Evas_Object *o;
         Evas_Coord mw = 1, mh = 1, hx = 0, hy = 0;
@@ -4210,7 +4221,8 @@ _elm_win_fullscreen_set(Eo *obj EINA_UNUSED, Elm_Win_Data 
*sd, Eina_Bool fullscr
    // YYY: handle if sd->img_obj
    if (engine_name &&
        ((!strcmp(engine_name, ELM_SOFTWARE_FB)) ||
-        (!strcmp(engine_name, ELM_DRM))))
+        (!strcmp(engine_name, ELM_DRM)) ||
+        (!strcmp(engine_name, ELM_EGLFS))))
      {
         // these engines... can ONLY be fullscreen
         return;
@@ -4255,7 +4267,8 @@ _elm_win_fullscreen_get(Eo *obj EINA_UNUSED, Elm_Win_Data 
*sd)
 
    if (engine_name &&
        ((!strcmp(engine_name, ELM_SOFTWARE_FB)) ||
-        (!strcmp(engine_name, ELM_DRM))))
+        (!strcmp(engine_name, ELM_DRM)) ||
+        (!strcmp(engine_name, ELM_EGLFS))))
      {
         // these engines... can ONLY be fullscreen
         return EINA_TRUE;
diff --git a/src/lib/elm_win.h b/src/lib/elm_win.h
index b94f6f9..103078c 100644
--- a/src/lib/elm_win.h
+++ b/src/lib/elm_win.h
@@ -31,6 +31,8 @@
  * exits)
  * @li "fb", "software-fb", "software_fb" (Linux framebuffer direct software
  * rendering)
+ * @li "fb", "software-fb", "software_fb" (Linux framebuffer accelerated
+ * rendering)
  * @li "sdl", "software-sdl", "software_sdl" (SDL software rendering to SDL
  * buffer)
  * @li "gl-sdl", "gl_sdl", "opengl-sdl", "opengl_sdl" (OpenGL or OpenGL-ES2

-- 


Reply via email to