Adds eglfs to Enlightenment

This commit is contained in:
Florent Revest 2015-07-21 18:09:04 +02:00 committed by Nicolas Aguirre
parent 11c632ab44
commit 35b95519e1
7 changed files with 90 additions and 0 deletions

View File

@ -822,6 +822,17 @@ define([CHECK_MODULE_WL_FB],
])
AM_CONDITIONAL([HAVE_WL_FB], [test "x${WL_FB}" = "xtrue"])
WL_EGLFS=false
define([CHECK_MODULE_WL_EGLFS],
[
if test "x${have_wayland}" = "xyes" ; then
AC_E_CHECK_PKG(WL_EGLFS, [ ecore-fb >= $efl_version ecore >= $efl_version eina >= $efl_version ], [WL_EGLFS=true], [WL_EGLFS=false])
else
WL_EGLFS=false
fi
])
AM_CONDITIONAL([HAVE_WL_EGLFS], [test "x${WL_EGLFS}" = "xtrue"])
WL_DRM=false
define([CHECK_MODULE_WL_DRM],
[
@ -918,6 +929,7 @@ AC_E_OPTIONAL_MODULE([wl_desktop_shell], $have_wayland, [CHECK_MODULE_WL_DESKTOP
AC_E_OPTIONAL_MODULE([wl_x11], $have_wayland, [CHECK_MODULE_WL_X11])
AC_E_OPTIONAL_MODULE([wl_wl], $have_wayland, [CHECK_MODULE_WL_WL])
#AC_E_OPTIONAL_MODULE([wl_fb], $have_wayland, [CHECK_MODULE_WL_FB])
AC_E_OPTIONAL_MODULE([wl_eglfs], $have_wayland, [CHECK_MODULE_WL_EGLFS])
AC_E_OPTIONAL_MODULE([wl_drm], $have_wayland, [CHECK_MODULE_WL_DRM])
AC_E_OPTIONAL_MODULE([wl_text_input], $have_wayland, [CHECK_MODULE_WL_TEXT_INPUT])
AC_E_OPTIONAL_MODULE([wl_weekeyboard], $have_wayland, [CHECK_MODULE_WL_WEEKEYBOARD])

View File

@ -1098,6 +1098,9 @@ e_comp_init(void)
#ifdef HAVE_WL_DRM
"wl_drm",
#endif
#ifdef HAVE_WL_EGLFS
"wl_eglfs",
#endif
/* probably add other engines here; fb should be last? */
#ifdef HAVE_WL_FB
"wl_fb",

View File

@ -2687,6 +2687,7 @@ e_comp_wl_init(void)
{
/* set gl available if we have ecore_evas support */
if (ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_WAYLAND_EGL) ||
ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_EGLFS) ||
ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_OPENGL_DRM))
e_comp_gl_set(EINA_TRUE);

View File

@ -1008,6 +1008,7 @@ _e_module_whitelist_check(void)
"wl_x11",
"wl_wl",
"wl_drm",
"wl_eglfs",
"wl_shell",
"wl_desktop_shell",
"xkbswitch",

View File

@ -111,6 +111,8 @@ include src/modules/Makefile_wl_drm.mk
include src/modules/Makefile_wl_wl.mk
include src/modules/Makefile_wl_eglfs.mk
include src/modules/Makefile_wl_desktop_shell.mk
include src/modules/Makefile_wl_x11.mk

View File

@ -0,0 +1,17 @@
if USE_MODULE_WL_EGLFS
wl_eglfsdir = $(MDIR)/wl_eglfs
wl_eglfspkgdir = $(MDIR)/wl_eglfs/$(MODULE_ARCH)
wl_eglfspkg_LTLIBRARIES = src/modules/wl_eglfs/module.la
src_modules_wl_eglfs_module_la_DEPENDENCIES = $(MDEPENDENCIES)
src_modules_wl_eglfs_module_la_CPPFLAGS = $(MOD_CPPFLAGS) @WL_EGLFS_CFLAGS@ @WAYLAND_CFLAGS@
src_modules_wl_eglfs_module_la_LIBADD = $(LIBS) @WL_EGLFS_LIBS@ @WAYLAND_LIBS@
src_modules_wl_eglfs_module_la_LDFLAGS = $(MOD_LDFLAGS)
src_modules_wl_eglfs_module_la_SOURCES = src/modules/wl_eglfs/e_mod_main.c
# TODO: incomplete
#.PHONY: wl_eglfs install-wl_eglfs
#wl_eglfs: $(wl_eglfspkg_LTLIBRARIES) $(wl_eglfs_DATA)
#install-wl_eglfs: install-wl_eglfsDATA install-wl_eglfspkgLTLIBRARIES
endif

View File

@ -0,0 +1,54 @@
#include "e.h"
#include <Ecore_Fb.h>
#include <Ecore_Wayland.h>
E_API E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Wl_EGLFS" };
E_API void *
e_modapi_init(E_Module *m)
{
Ecore_Evas *ee;
E_Screen *screen;
int w, h;
printf("LOAD WL_EGLFS MODULE\n");
/* try to init ecore_x */
if (!ecore_fb_init(NULL))
{
fprintf(stderr, "Could not initialize ecore_fb");
return NULL;
}
ecore_fb_size_get(&w, &h);
ee = ecore_evas_eglfs_new(NULL, 0, w, h);
e_comp->ee = ee;
if (!e_xinerama_fake_screens_exist())
{
screen = E_NEW(E_Screen, 1);
screen->escreen = screen->screen = 0;
screen->x = 0;
screen->y = 0;
screen->w = w;
screen->h = h;
e_xinerama_screens_set(eina_list_append(NULL, screen));
}
e_comp_wl_init();
e_comp_canvas_init(w, h);
e_comp->pointer = e_pointer_canvas_new(e_comp->ee, EINA_TRUE);
ecore_wl_init(NULL);
ecore_wl_server_mode_set(1);
return m;
}
E_API int
e_modapi_shutdown(E_Module *m EINA_UNUSED)
{
/* shutdown ecore_fb */
ecore_fb_shutdown();
return 1;
}