From 7ca7e4489e734ba0c02319a090fe77cf782f3db1 Mon Sep 17 00:00:00 2001 From: Sung-Jin Park Date: Thu, 14 Sep 2017 13:54:12 +0900 Subject: [PATCH] doctor: add tbm buffer manager initialization Change-Id: I4efd93b16a0e01ad492f49d1499636be18f77ce1 Signed-off-by: Sung-Jin Park --- configure.ac | 2 +- data/doctor/units/display-manager.env | 1 + packaging/pepper.spec | 1 + src/bin/doctor/doctor.c | 18 ++++++++++++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 104672a..89d51e0 100644 --- a/configure.ac +++ b/configure.ac @@ -274,7 +274,7 @@ AC_SUBST(SAMPLES_CFLAGS) AC_SUBST(SAMPLES_LIBS) # doctor (headless server) and headless client samples -DOCTOR_SERVER_REQUIRES="wayland-server" +DOCTOR_SERVER_REQUIRES="wayland-server libtbm" PKG_CHECK_MODULES(DOCTOR_SERVER, $[DOCTOR_SERVER_REQUIRES]) DOCTOR_SERVER_CFLAGS="$PEPPER_DIR $PEPPER_EVDEV_DIR $PEPPER_KEYROUTER_DIR $DOCTOR_SERVER_CFLAGS" DOCTOR_SERVER_LIBS="$PEPPER_LIB $PEPPER_LIBS $DOCTOR_SERVER_LIBS" diff --git a/data/doctor/units/display-manager.env b/data/doctor/units/display-manager.env index 723a05f..dc45551 100644 --- a/data/doctor/units/display-manager.env +++ b/data/doctor/units/display-manager.env @@ -1,2 +1,3 @@ +TBM_DISPLAY_SERVER=1 WAYLAND_DISPLAY="wayland-0" XDG_RUNTIME_DIR=/run diff --git a/packaging/pepper.spec b/packaging/pepper.spec index b4d481f..1e137e9 100644 --- a/packaging/pepper.spec +++ b/packaging/pepper.spec @@ -199,6 +199,7 @@ This package includes wayland backend development module files. %package doctor Summary: Doctor server for pepper package Requires: pepper pepper-keyrouter pepper-evdev +Requires: libtbm %description doctor This package includes doctor server files. diff --git a/src/bin/doctor/doctor.c b/src/bin/doctor/doctor.c index ab1cfe0..81f282f 100644 --- a/src/bin/doctor/doctor.c +++ b/src/bin/doctor/doctor.c @@ -3,6 +3,7 @@ #include #include #include +#include /* basic pepper objects */ pepper_seat_t *seat = NULL; @@ -11,6 +12,9 @@ pepper_keyrouter_t *keyrouter = NULL; pepper_compositor_t *compositor = NULL; pepper_input_device_t *input_device = NULL; +/* tbm buffer manager */ +tbm_bufmgr bufmgr; + /* event listeners */ pepper_event_listener_t *listener_seat_add = NULL; pepper_event_listener_t *listener_input_add = NULL; @@ -210,6 +214,7 @@ int main(int argc, char *argv[]) uint32_t caps = 0; uint32_t probed = 0; int ret = EXIT_SUCCESS; + int res = 0; const char* socket_name = NULL; const char* seat_name = NULL; @@ -226,6 +231,12 @@ int main(int argc, char *argv[]) compositor = pepper_compositor_create(socket_name); PEPPER_CHECK(compositor, return EXIT_FAILURE, "Failed to create compositor !\n"); + /* init tbm buffer manager */ + bufmgr = tbm_bufmgr_init(-1); + PEPPER_CHECK(bufmgr, goto shutdown_on_failure, "Failed to init tbm buffer manager !\n"); + res = tbm_bufmgr_bind_native_display(bufmgr, (void *)pepper_compositor_get_display(compositor)); + PEPPER_CHECK(res, goto shutdown_on_failure, "Failed to bind native display with tbm buffer manager !\n"); + /* register event listeners */ listener_seat_add = pepper_object_add_event_listener((pepper_object_t *)compositor, PEPPER_EVENT_COMPOSITOR_SEAT_ADD, @@ -344,6 +355,13 @@ shutdown: evdev = NULL; } + /* deinitialize tbm buffer manager */ + if (bufmgr) + { + tbm_bufmgr_deinit(bufmgr); + bufmgr = NULL; + } + /* destroy compositor */ if (compositor) { -- 2.34.1