add wl_buffer output module

This commit is contained in:
Mike Blumenkrantz 2017-02-10 17:23:43 -05:00
parent 75ff919036
commit cafb46953b
5 changed files with 79 additions and 0 deletions

View File

@ -760,6 +760,17 @@ define([CHECK_MODULE_WL_WL],
]) ])
AM_CONDITIONAL([HAVE_WL_WL], [test "x${WL_WL}" = "xtrue"]) AM_CONDITIONAL([HAVE_WL_WL], [test "x${WL_WL}" = "xtrue"])
WL_BUFFER=false
define([CHECK_MODULE_WL_BUFFER],
[
if test "x${have_wayland}" = "xyes"; then
WL_BUFFER=true
else
WL_BUFFER=false
fi
])
AM_CONDITIONAL([HAVE_WL_BUFFER], [test "x${WL_BUFFER}" = "xtrue"])
WL_DESKTOP_SHELL=false WL_DESKTOP_SHELL=false
define([CHECK_MODULE_WL_DESKTOP_SHELL], define([CHECK_MODULE_WL_DESKTOP_SHELL],
[ [
@ -893,6 +904,7 @@ AC_E_OPTIONAL_MODULE([packagekit], true)
AC_E_OPTIONAL_MODULE([wl_desktop_shell], $have_wayland_dep) AC_E_OPTIONAL_MODULE([wl_desktop_shell], $have_wayland_dep)
AC_E_OPTIONAL_MODULE([wl_x11], $have_wayland_dep, [CHECK_MODULE_WL_X11]) AC_E_OPTIONAL_MODULE([wl_x11], $have_wayland_dep, [CHECK_MODULE_WL_X11])
AC_E_OPTIONAL_MODULE([wl_wl], $have_wayland_dep) AC_E_OPTIONAL_MODULE([wl_wl], $have_wayland_dep)
AC_E_OPTIONAL_MODULE([wl_buffer], $have_wayland_dep)
#AC_E_OPTIONAL_MODULE([wl_fb], $have_wayland_dep, [CHECK_MODULE_WL_FB]) #AC_E_OPTIONAL_MODULE([wl_fb], $have_wayland_dep, [CHECK_MODULE_WL_FB])
AC_E_OPTIONAL_MODULE([wl_drm], $have_wayland_dep, [CHECK_MODULE_WL_DRM]) AC_E_OPTIONAL_MODULE([wl_drm], $have_wayland_dep, [CHECK_MODULE_WL_DRM])
AC_E_OPTIONAL_MODULE([wl_text_input], $have_wayland_dep) AC_E_OPTIONAL_MODULE([wl_text_input], $have_wayland_dep)

View File

@ -154,6 +154,7 @@ _module_is_important(const char *name)
const char *list[] = const char *list[] =
{ {
"xwayland", "xwayland",
"wl_buffer",
"wl_desktop_shell", "wl_desktop_shell",
"wl_drm", "wl_drm",
"wl_fb", "wl_fb",
@ -1043,6 +1044,7 @@ _e_module_whitelist_check(void)
"winlist", "winlist",
"wireless", "wireless",
"wizard", "wizard",
"wl_buffer",
"wl_desktop_shell", "wl_desktop_shell",
"wl_x11", "wl_x11",
"wl_wl", "wl_wl",

View File

@ -113,6 +113,8 @@ include src/modules/Makefile_packagekit.mk
include src/modules/Makefile_wl_drm.mk include src/modules/Makefile_wl_drm.mk
include src/modules/Makefile_wl_buffer.mk
include src/modules/Makefile_wl_wl.mk include src/modules/Makefile_wl_wl.mk
include src/modules/Makefile_wl_desktop_shell.mk include src/modules/Makefile_wl_desktop_shell.mk

View File

@ -0,0 +1,17 @@
if USE_MODULE_WL_BUFFER
wl_bufferdir = $(MDIR)/wl_buffer
wl_bufferpkgdir = $(MDIR)/wl_buffer/$(MODULE_ARCH)
wl_bufferpkg_LTLIBRARIES = src/modules/wl_buffer/module.la
src_modules_wl_buffer_module_la_DEPENDENCIES = $(MDEPENDENCIES)
src_modules_wl_buffer_module_la_CPPFLAGS = $(MOD_CPPFLAGS) @WAYLAND_CFLAGS@
src_modules_wl_buffer_module_la_LIBADD = $(MOD_LIBS) @WAYLAND_LIBS@
src_modules_wl_buffer_module_la_LDFLAGS = $(MOD_LDFLAGS)
src_modules_wl_buffer_module_la_SOURCES = \
src/modules/wl_buffer/e_mod_main.c
PHONIES += wl_buffer install-wl_buffer
wl_buffer: $(wl_bufferpkg_LTLIBRARIES) $(wl_buffer_DATA)
install-wl_buffer: install-wl_bufferpkgLTLIBRARIES
endif

View File

@ -0,0 +1,46 @@
#include "e.h"
E_API E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Wl_Buffer" };
E_API void *
e_modapi_init(E_Module *m)
{
char *bsize;
int w = 1024, h = 768;
printf("LOAD Wl_Buffer MODULE\n");
bsize = getenv("E_WL_SIZE");
if (bsize)
sscanf(bsize, "%dx%d", &w, &h);
e_comp->ee = ecore_evas_buffer_new(w, h);
if (!e_comp->ee)
{
ERR("Could not create ecore_evas canvas");
return NULL;
}
e_comp_gl_set(EINA_FALSE);
elm_config_accel_preference_set("none");
elm_config_accel_preference_override_set(EINA_TRUE);
ecore_evas_data_set(e_comp->ee, "comp", e_comp);
EINA_SAFETY_ON_TRUE_RETURN_VAL(!e_comp_wl_init(), NULL);
EINA_SAFETY_ON_TRUE_RETURN_VAL(!e_comp_canvas_init(1024, 768), NULL);
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->pointer = */
/* e_pointer_window_new(ecore_evas_window_get(e_comp->ee), EINA_TRUE); */
e_comp->pointer = e_pointer_canvas_new(e_comp->ee, EINA_TRUE);
e_comp->pointer->color = EINA_TRUE;
e_comp_wl->dmabuf_disable = EINA_TRUE;
ecore_evas_pointer_xy_get(e_comp->ee, &e_comp_wl->ptr.x,
&e_comp_wl->ptr.y);
evas_event_feed_mouse_in(e_comp->evas, 0, NULL);
return m;
}