Merge branch 'devs/devilhorns/drm'

This commit is contained in:
Chris Michael 2014-04-01 07:12:31 +01:00
commit 204481045f
3 changed files with 30 additions and 17 deletions

View File

@ -49,6 +49,7 @@ const char *_elm_engines[] = {
"psl1ght", "psl1ght",
"wayland_shm", "wayland_shm",
"wayland_egl", "wayland_egl",
"drm",
NULL NULL
}; };
@ -1884,6 +1885,8 @@ _env_get(void)
eina_stringshare_replace(&_elm_config->engine, ELM_WAYLAND_SHM); eina_stringshare_replace(&_elm_config->engine, ELM_WAYLAND_SHM);
else if ((!strcasecmp(s, "wayland_egl"))) else if ((!strcasecmp(s, "wayland_egl")))
eina_stringshare_replace(&_elm_config->engine, ELM_WAYLAND_EGL); eina_stringshare_replace(&_elm_config->engine, ELM_WAYLAND_EGL);
else if ((!strcasecmp(s, "drm")))
eina_stringshare_replace(&_elm_config->engine, ELM_DRM);
else else
ERR("Unknown engine '%s'.", s); ERR("Unknown engine '%s'.", s);
} }

View File

@ -12,6 +12,9 @@
#ifdef HAVE_ELEMENTARY_WAYLAND #ifdef HAVE_ELEMENTARY_WAYLAND
#include <Ecore_Wayland.h> #include <Ecore_Wayland.h>
#endif #endif
#ifdef HAVE_ELEMENTARY_DRM
#include <Ecore_Drm.h>
#endif
#include <Eio.h> #include <Eio.h>
@ -151,6 +154,7 @@ extern const char *_elm_engines[];
#define ELM_SOFTWARE_PSL1GHT (_elm_engines[15]) #define ELM_SOFTWARE_PSL1GHT (_elm_engines[15])
#define ELM_WAYLAND_SHM (_elm_engines[16]) #define ELM_WAYLAND_SHM (_elm_engines[16])
#define ELM_WAYLAND_EGL (_elm_engines[17]) #define ELM_WAYLAND_EGL (_elm_engines[17])
#define ELM_DRM (_elm_engines[18])
#define ELM_FONT_TOKEN_STYLE ":style=" #define ELM_FONT_TOKEN_STYLE ":style="

View File

@ -2228,8 +2228,6 @@ _elm_win_frame_cb_move_start(void *data,
(void)source; (void)source;
#endif #endif
/* FIXME: Change mouse pointer */
/* NB: Wayland handles moving surfaces by itself so we cannot /* NB: Wayland handles moving surfaces by itself so we cannot
* specify a specific x/y we want. Instead, we will pass in the * specify a specific x/y we want. Instead, we will pass in the
* existing x/y values so they can be recorded as 'previous' * existing x/y values so they can be recorded as 'previous'
@ -2931,8 +2929,9 @@ _elm_win_constructor(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_Type t
else if ((disp) && (!strcmp(disp, "fb"))) else if ((disp) && (!strcmp(disp, "fb")))
{ {
enginelist[0] = ENGINE_GET(); enginelist[0] = ENGINE_GET();
enginelist[1] = ELM_SOFTWARE_FB; enginelist[1] = ELM_DRM;
enginelist[2] = NULL; enginelist[2] = ELM_SOFTWARE_FB;
enginelist[3] = NULL;
} }
else if ((disp) && (!strcmp(disp, "buffer"))) else if ((disp) && (!strcmp(disp, "buffer")))
{ {
@ -2957,20 +2956,22 @@ _elm_win_constructor(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_Type t
{ {
enginelist[0] = ELM_OPENGL_X11; enginelist[0] = ELM_OPENGL_X11;
enginelist[1] = ELM_WAYLAND_EGL; enginelist[1] = ELM_WAYLAND_EGL;
enginelist[2] = ELM_SOFTWARE_FB; enginelist[2] = ELM_DRM;
enginelist[3] = ELM_OPENGL_COCOA; enginelist[3] = ELM_SOFTWARE_FB;
enginelist[4] = ELM_OPENGL_SDL; enginelist[4] = ELM_OPENGL_COCOA;
enginelist[5] = NULL; enginelist[5] = ELM_OPENGL_SDL;
enginelist[6] = NULL;
} }
else else
{ {
enginelist[0] = ENGINE_GET(); enginelist[0] = ENGINE_GET();
enginelist[1] = ELM_SOFTWARE_X11; enginelist[1] = ELM_SOFTWARE_X11;
enginelist[2] = ELM_WAYLAND_SHM; enginelist[2] = ELM_WAYLAND_SHM;
enginelist[3] = ELM_SOFTWARE_FB; enginelist[3] = ELM_DRM;
enginelist[4] = ELM_OPENGL_COCOA; enginelist[4] = ELM_SOFTWARE_FB;
enginelist[5] = ELM_SOFTWARE_SDL; enginelist[5] = ELM_OPENGL_COCOA;
enginelist[6] = NULL; enginelist[6] = ELM_SOFTWARE_SDL;
enginelist[7] = NULL;
} }
} }
for (i = 0; i < 30; i++) for (i = 0; i < 30; i++)
@ -3013,6 +3014,8 @@ _elm_win_constructor(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_Type t
tmp_sd.ee = ecore_evas_buffer_new(1, 1); tmp_sd.ee = ecore_evas_buffer_new(1, 1);
else if (!strcmp(enginelist[i], ELM_SOFTWARE_PSL1GHT)) else if (!strcmp(enginelist[i], ELM_SOFTWARE_PSL1GHT))
tmp_sd.ee = ecore_evas_psl1ght_new(NULL, 1, 1); tmp_sd.ee = ecore_evas_psl1ght_new(NULL, 1, 1);
else if (!strcmp(enginelist[i], ELM_DRM))
tmp_sd.ee = ecore_evas_drm_new(NULL, 0, 0, 0, 1, 1);
else if (!strncmp(enginelist[i], "shot:", 5)) else if (!strncmp(enginelist[i], "shot:", 5))
{ {
tmp_sd.ee = ecore_evas_buffer_new(1, 1); tmp_sd.ee = ecore_evas_buffer_new(1, 1);
@ -3173,7 +3176,7 @@ _elm_win_constructor(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_Type t
_elm_win_list = eina_list_append(_elm_win_list, obj); _elm_win_list = eina_list_append(_elm_win_list, obj);
_elm_win_count++; _elm_win_count++;
if ((engine) && (!strcmp(engine, ELM_SOFTWARE_FB))) if ((engine) && ((!strcmp(engine, ELM_SOFTWARE_FB)) || (!strcmp(engine, ELM_DRM))))
{ {
TRAP(sd, fullscreen_set, 1); TRAP(sd, fullscreen_set, 1);
} }
@ -3201,7 +3204,8 @@ _elm_win_constructor(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_Type t
if ((_elm_config->softcursor_mode == ELM_SOFTCURSOR_MODE_ON) || if ((_elm_config->softcursor_mode == ELM_SOFTCURSOR_MODE_ON) ||
((_elm_config->softcursor_mode == ELM_SOFTCURSOR_MODE_AUTO) && ((_elm_config->softcursor_mode == ELM_SOFTCURSOR_MODE_AUTO) &&
((engine) && (!strcmp(engine, ELM_SOFTWARE_FB))))) ((engine) &&
((!strcmp(engine, ELM_SOFTWARE_FB)) || (!strcmp(engine, ELM_DRM))))))
{ {
Evas_Object *o; Evas_Object *o;
Evas_Coord mw = 1, mh = 1, hx = 0, hy = 0; Evas_Coord mw = 1, mh = 1, hx = 0, hy = 0;
@ -3532,7 +3536,8 @@ _elm_win_fullscreen_set(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, Eina_Bool fullscr
{ {
// YYY: handle if sd->img_obj // YYY: handle if sd->img_obj
if (ENGINE_COMPARE(ELM_SOFTWARE_FB) || if (ENGINE_COMPARE(ELM_SOFTWARE_FB) ||
ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE)) ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE) ||
ENGINE_COMPARE(ELM_DRM))
{ {
// these engines... can ONLY be fullscreen // these engines... can ONLY be fullscreen
return; return;
@ -3576,7 +3581,8 @@ _elm_win_fullscreen_get(Eo *obj EINA_UNUSED, Elm_Win_Data *sd)
if (engine_name && if (engine_name &&
((!strcmp(engine_name, ELM_SOFTWARE_FB)) || ((!strcmp(engine_name, ELM_SOFTWARE_FB)) ||
(!strcmp(engine_name, ELM_SOFTWARE_16_WINCE)))) (!strcmp(engine_name, ELM_SOFTWARE_16_WINCE)) ||
(!strcmp(engine_name, ELM_DRM))))
{ {
// these engines... can ONLY be fullscreen // these engines... can ONLY be fullscreen
return EINA_TRUE; return EINA_TRUE;