doctor: add tbm buffer manager initialization 24/150024/1
authorSung-Jin Park <sj76.park@samsung.com>
Thu, 14 Sep 2017 04:54:12 +0000 (13:54 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 14 Sep 2017 04:54:12 +0000 (13:54 +0900)
Change-Id: I4efd93b16a0e01ad492f49d1499636be18f77ce1
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
configure.ac
data/doctor/units/display-manager.env
packaging/pepper.spec
src/bin/doctor/doctor.c

index 104672a..89d51e0 100644 (file)
@@ -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"
index 723a05f..dc45551 100644 (file)
@@ -1,2 +1,3 @@
+TBM_DISPLAY_SERVER=1
 WAYLAND_DISPLAY="wayland-0"
 XDG_RUNTIME_DIR=/run
index b4d481f..1e137e9 100644 (file)
@@ -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.
index ab1cfe0..81f282f 100644 (file)
@@ -3,6 +3,7 @@
 #include <pepper-evdev.h>
 #include <pepper-keyrouter.h>
 #include <stdlib.h>
+#include <tbm_bufmgr.h>
 
 /* 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)
        {