forked from enlightenment/enlightenment
Compare commits
9 Commits
master
...
devs/capta
Author | SHA1 | Date |
---|---|---|
Clément Bénier | 2b4c7e0eed | |
Clément Bénier | e7f6227770 | |
Florent Revest | 7d1dfbcffc | |
Florent Revest | 8b00f9af0e | |
Florent Revest | 7dc4be14b6 | |
Florent Revest | 82bf1cefa2 | |
Florent Revest | ac97b19b28 | |
Florent Revest | eb80363aff | |
Florent Revest | 35b95519e1 |
20
configure.ac
20
configure.ac
|
@ -34,7 +34,7 @@ AH_BOTTOM([
|
||||||
#endif /* EFL_CONFIG_H__ */
|
#endif /* EFL_CONFIG_H__ */
|
||||||
])
|
])
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([1.11 dist-xz -Wno-portability])
|
AM_INIT_AUTOMAKE([1.11 dist-xz -Wno-portability foreign])
|
||||||
AM_SILENT_RULES([yes])
|
AM_SILENT_RULES([yes])
|
||||||
|
|
||||||
AC_USE_SYSTEM_EXTENSIONS
|
AC_USE_SYSTEM_EXTENSIONS
|
||||||
|
@ -448,10 +448,10 @@ AM_CONDITIONAL([HAVE_EEZE_MOUNT], [test -n "$eeze_mount"])
|
||||||
have_wayland_only=no
|
have_wayland_only=no
|
||||||
AC_ARG_ENABLE([wayland],
|
AC_ARG_ENABLE([wayland],
|
||||||
AS_HELP_STRING([--enable-wayland],[enable wayland support in enlightenment @<:@default=disabled@:>@]),
|
AS_HELP_STRING([--enable-wayland],[enable wayland support in enlightenment @<:@default=disabled@:>@]),
|
||||||
[e_cv_want_wayland_only=$enableval],
|
[have_wayland_only=$enableval],
|
||||||
[e_cv_want_wayland_only=no])
|
[have_wayland_only=no])
|
||||||
AC_MSG_CHECKING([whether wayland support is enabled])
|
AC_MSG_CHECKING([whether wayland support is enabled])
|
||||||
AC_MSG_RESULT([${e_cv_want_wayland_only}])
|
AC_MSG_RESULT([${have_wayland_only}])
|
||||||
|
|
||||||
# doxygen program for documentation building
|
# doxygen program for documentation building
|
||||||
|
|
||||||
|
@ -822,6 +822,17 @@ define([CHECK_MODULE_WL_FB],
|
||||||
])
|
])
|
||||||
AM_CONDITIONAL([HAVE_WL_FB], [test "x${WL_FB}" = "xtrue"])
|
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
|
WL_DRM=false
|
||||||
define([CHECK_MODULE_WL_DRM],
|
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_x11], $have_wayland, [CHECK_MODULE_WL_X11])
|
||||||
AC_E_OPTIONAL_MODULE([wl_wl], $have_wayland, [CHECK_MODULE_WL_WL])
|
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_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_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_text_input], $have_wayland, [CHECK_MODULE_WL_TEXT_INPUT])
|
||||||
AC_E_OPTIONAL_MODULE([wl_weekeyboard], $have_wayland, [CHECK_MODULE_WL_WEEKEYBOARD])
|
AC_E_OPTIONAL_MODULE([wl_weekeyboard], $have_wayland, [CHECK_MODULE_WL_WEEKEYBOARD])
|
||||||
|
|
|
@ -28,9 +28,7 @@ static void _e_backlight_update(void);
|
||||||
static void _e_backlight_set(double val);
|
static void _e_backlight_set(double val);
|
||||||
static Eina_Bool _bl_anim(void *data, double pos);
|
static Eina_Bool _bl_anim(void *data, double pos);
|
||||||
static Eina_Bool bl_avail = EINA_TRUE;
|
static Eina_Bool bl_avail = EINA_TRUE;
|
||||||
#ifndef HAVE_WAYLAND_ONLY
|
|
||||||
static Eina_Bool xbl_avail = EINA_FALSE;
|
static Eina_Bool xbl_avail = EINA_FALSE;
|
||||||
#endif
|
|
||||||
#if defined(HAVE_EEZE) || defined(__FreeBSD_kernel__)
|
#if defined(HAVE_EEZE) || defined(__FreeBSD_kernel__)
|
||||||
static double bl_delayval = 1.0;
|
static double bl_delayval = 1.0;
|
||||||
static const char *bl_sysval = NULL;
|
static const char *bl_sysval = NULL;
|
||||||
|
|
|
@ -1098,6 +1098,9 @@ e_comp_init(void)
|
||||||
#ifdef HAVE_WL_DRM
|
#ifdef HAVE_WL_DRM
|
||||||
"wl_drm",
|
"wl_drm",
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_WL_EGLFS
|
||||||
|
"wl_eglfs",
|
||||||
|
#endif
|
||||||
/* probably add other engines here; fb should be last? */
|
/* probably add other engines here; fb should be last? */
|
||||||
#ifdef HAVE_WL_FB
|
#ifdef HAVE_WL_FB
|
||||||
"wl_fb",
|
"wl_fb",
|
||||||
|
|
|
@ -97,7 +97,9 @@ _e_comp_wl_cb_module_idle(void *data EINA_UNUSED)
|
||||||
const char **m, *mods[] =
|
const char **m, *mods[] =
|
||||||
{
|
{
|
||||||
"wl_desktop_shell",
|
"wl_desktop_shell",
|
||||||
|
#ifdef HAVE_XWAYLAND
|
||||||
"xwayland",
|
"xwayland",
|
||||||
|
#endif
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2687,6 +2689,7 @@ e_comp_wl_init(void)
|
||||||
{
|
{
|
||||||
/* set gl available if we have ecore_evas support */
|
/* set gl available if we have ecore_evas support */
|
||||||
if (ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_WAYLAND_EGL) ||
|
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))
|
ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_OPENGL_DRM))
|
||||||
e_comp_gl_set(EINA_TRUE);
|
e_comp_gl_set(EINA_TRUE);
|
||||||
|
|
||||||
|
|
|
@ -1008,6 +1008,7 @@ _e_module_whitelist_check(void)
|
||||||
"wl_x11",
|
"wl_x11",
|
||||||
"wl_wl",
|
"wl_wl",
|
||||||
"wl_drm",
|
"wl_drm",
|
||||||
|
"wl_eglfs",
|
||||||
"wl_shell",
|
"wl_shell",
|
||||||
"wl_desktop_shell",
|
"wl_desktop_shell",
|
||||||
"xkbswitch",
|
"xkbswitch",
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
*/
|
*/
|
||||||
#include "e.h"
|
#include "e.h"
|
||||||
|
|
||||||
#ifdef HAVE_WAYLAND
|
#ifdef HAVE_WL_DRM
|
||||||
#include <Ecore_Drm.h>
|
#include <Ecore_Drm.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ _e_write_safe_int(int fd, const char *buf, size_t size)
|
||||||
static void
|
static void
|
||||||
_e_crash(void)
|
_e_crash(void)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_WAYLAND
|
#ifdef HAVE_WL_DRM
|
||||||
if (e_comp->comp_type == E_PIXMAP_TYPE_WL)
|
if (e_comp->comp_type == E_PIXMAP_TYPE_WL)
|
||||||
{
|
{
|
||||||
const Eina_List *list, *l, *ll;
|
const Eina_List *list, *l, *ll;
|
||||||
|
|
|
@ -111,6 +111,8 @@ include src/modules/Makefile_wl_drm.mk
|
||||||
|
|
||||||
include src/modules/Makefile_wl_wl.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_desktop_shell.mk
|
||||||
|
|
||||||
include src/modules/Makefile_wl_x11.mk
|
include src/modules/Makefile_wl_x11.mk
|
||||||
|
|
|
@ -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
|
|
@ -0,0 +1,62 @@
|
||||||
|
#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");
|
||||||
|
e_util_env_set("HYBRIS_EGLPLATFORM", "hwcomposer");
|
||||||
|
|
||||||
|
/* try to init ecore_fb */
|
||||||
|
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;
|
||||||
|
e_comp_gl_set(!!e_comp->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);
|
||||||
|
|
||||||
|
e_comp_wl_input_pointer_enabled_set(EINA_TRUE);
|
||||||
|
e_comp_wl_input_keyboard_enabled_set(EINA_TRUE);
|
||||||
|
e_comp_wl_input_touch_enabled_set(EINA_TRUE);
|
||||||
|
e_comp_wl_input_keymap_set(NULL, NULL, NULL);
|
||||||
|
|
||||||
|
ecore_wl_init(NULL);
|
||||||
|
ecore_wl_server_mode_set(1);
|
||||||
|
e_util_env_set("HYBRIS_EGLPLATFORM", "wayland");
|
||||||
|
return m;
|
||||||
|
}
|
||||||
|
|
||||||
|
E_API int
|
||||||
|
e_modapi_shutdown(E_Module *m EINA_UNUSED)
|
||||||
|
{
|
||||||
|
/* shutdown ecore_fb */
|
||||||
|
ecore_fb_shutdown();
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
Loading…
Reference in New Issue