From 9e644e73a224880e4178c9fd23f8ceb1165f4409 Mon Sep 17 00:00:00 2001 From: xcomputerman Date: Wed, 13 Jan 2010 08:17:15 +0000 Subject: [PATCH] Add in SDL support (needed for WebOS). Admittedly this has not been actually checked out yet, but it will be shortly and it does no evil SVN revision: 45080 --- legacy/elementary/configure.ac | 12 ++++++++++++ legacy/elementary/src/lib/Makefile.am | 3 ++- legacy/elementary/src/lib/elm_main.c | 10 ++++++++++ legacy/elementary/src/lib/elm_priv.h | 4 +++- legacy/elementary/src/lib/elm_win.c | 10 ++++++++++ 5 files changed, 37 insertions(+), 2 deletions(-) diff --git a/legacy/elementary/configure.ac b/legacy/elementary/configure.ac index 1d812e16df..79d21faf21 100644 --- a/legacy/elementary/configure.ac +++ b/legacy/elementary/configure.ac @@ -166,6 +166,17 @@ PKG_CHECK_MODULES([ELEMENTARY_FB], [have_elementary_fb="no"] ) +have_elementary_sdl="no" +PKG_CHECK_MODULES([ELEMENTARY_SDL], + [ecore-sdl], + [ + AC_DEFINE(HAVE_ELEMENTARY_FB, 1, [FB support for Elementary]) + have_elementary_sdl="yes" + requirement_elm="ecore-sdl ${requirement_elm}" + ], + [have_elementary_sdl="no"] +) + have_elementary_win32="no" PKG_CHECK_MODULES([ELEMENTARY_WIN32], [ecore-win32], @@ -298,6 +309,7 @@ echo echo " Engines:" echo " X11................: ${have_elementary_x}" echo " Framebuffer........: ${have_elementary_fb}" +echo " SDL................: ${have_elementary_sdl}" echo " Windows XP.........: ${have_elementary_win32}" echo " Windows CE.........: ${have_elementary_wince}" echo diff --git a/legacy/elementary/src/lib/Makefile.am b/legacy/elementary/src/lib/Makefile.am index de7c750a9e..b621340cc2 100644 --- a/legacy/elementary/src/lib/Makefile.am +++ b/legacy/elementary/src/lib/Makefile.am @@ -12,6 +12,7 @@ AM_CPPFLAGS = \ @ELEMENTARY_CFLAGS@ \ @ELEMENTARY_X_CFLAGS@ \ @ELEMENTARY_FB_CFLAGS@ \ +@ELEMENTARY_SDL_CFLAGS@ \ @ELEMENTARY_WIN32_CFLAGS@ \ @ELEMENTARY_WINCE_CFLAGS@ \ @ELEMENTARY_EDBUS_CFLAGS@ \ @@ -88,5 +89,5 @@ els_icon.h libelementary_la_CFLAGS = -libelementary_la_LIBADD = @my_libs@ @dlopen_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_WIN32_LIBS@ @ELEMENTARY_WINCE_LIBS@ @ELEMENTARY_EDBUS_LIBS@ @ELEMENTARY_EFREET_LIBS@ +libelementary_la_LIBADD = @my_libs@ @dlopen_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_SDL_LIBS@ @ELEMENTARY_WIN32_LIBS@ @ELEMENTARY_WINCE_LIBS@ @ELEMENTARY_EDBUS_LIBS@ @ELEMENTARY_EFREET_LIBS@ libelementary_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ diff --git a/legacy/elementary/src/lib/elm_main.c b/legacy/elementary/src/lib/elm_main.c index 78fec3e2f7..12c497a76a 100644 --- a/legacy/elementary/src/lib/elm_main.c +++ b/legacy/elementary/src/lib/elm_main.c @@ -601,6 +601,14 @@ elm_quicklaunch_init(int argc, char **argv) (!strcasecmp(s, "software-fb")) || (!strcasecmp(s, "software_fb"))) _elm_config->engine = ELM_SOFTWARE_FB; + else if ((!strcasecmp(s, "sdl")) || + (!strcasecmp(s, "software-sdl")) || + (!strcasecmp(s, "software_sdl"))) + _elm_config->engine = ELM_SOFTWARE_SDL; + else if ((!strcasecmp(s, "sdl-16")) || + (!strcasecmp(s, "software-16-sdl")) || + (!strcasecmp(s, "software_16_sdl"))) + _elm_config->engine = ELM_SOFTWARE_16_SDL; else if ((!strcasecmp(s, "opengl")) || (!strcasecmp(s, "gl")) || (!strcasecmp(s, "opengl-x11")) || @@ -783,6 +791,8 @@ elm_quicklaunch_sub_shutdown(void) (_elm_config->engine == ELM_SOFTWARE_16_X11) || (_elm_config->engine == ELM_XRENDER_X11) || (_elm_config->engine == ELM_OPENGL_X11) || + (_elm_config->engine == ELM_SOFTWARE_SDL) || + (_elm_config->engine == ELM_SOFTWARE_16_SDL) || (_elm_config->engine == ELM_SOFTWARE_WIN32) || (_elm_config->engine == ELM_SOFTWARE_16_WINCE)) { diff --git a/legacy/elementary/src/lib/elm_priv.h b/legacy/elementary/src/lib/elm_priv.h index b0cfd95481..c2e34e0dcc 100644 --- a/legacy/elementary/src/lib/elm_priv.h +++ b/legacy/elementary/src/lib/elm_priv.h @@ -31,7 +31,9 @@ typedef enum _Elm_Engine ELM_XRENDER_X11, ELM_OPENGL_X11, ELM_SOFTWARE_WIN32, - ELM_SOFTWARE_16_WINCE + ELM_SOFTWARE_16_WINCE, + ELM_SOFTWARE_SDL, + ELM_SOFTWARE_16_SDL } Elm_Engine; typedef struct _Elm_Config Elm_Config; diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c index 101b77242e..ea0b81c776 100644 --- a/legacy/elementary/src/lib/elm_win.c +++ b/legacy/elementary/src/lib/elm_win.c @@ -192,6 +192,8 @@ _elm_win_xwindow_get(Elm_Win *win) break; case ELM_SOFTWARE_FB: case ELM_SOFTWARE_16_WINCE: + case ELM_SOFTWARE_SDL: + case ELM_SOFTWARE_16_SDL: break; case ELM_SOFTWARE_16_X11: if (win->ee) win->xwin = ecore_evas_software_x11_16_window_get(win->ee); @@ -369,6 +371,12 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) case ELM_SOFTWARE_16_WINCE: win->ee = ecore_evas_software_wince_gdi_new(NULL, 0, 0, 1, 1); break; + case ELM_SOFTWARE_SDL: + win->ee = ecore_evas_sdl_new(NULL, 0, 0, 0, 0, 0, 1); + break; + case ELM_SOFTWARE_16_SDL: + win->ee = ecore_evas_sdl16_new(NULL, 0, 0, 0, 0, 0, 1); + break; default: break; } @@ -439,6 +447,8 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) case ELM_XRENDER_X11: case ELM_OPENGL_X11: case ELM_SOFTWARE_WIN32: + case ELM_SOFTWARE_SDL: + case ELM_SOFTWARE_16_SDL: default: break; }