e_comp_screen: create ds_gbm_server for supporting client gbm buffer 78/298978/1
authorChangyeon Lee <cyeon.lee@samsung.com>
Mon, 4 Sep 2023 05:10:58 +0000 (14:10 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 18 Sep 2023 04:43:48 +0000 (13:43 +0900)
Change-Id: Ie089322cee37bd6cc16f682dbddf5ef29ab052c2

configure.ac
packaging/enlightenment.spec
src/bin/e_comp_screen.c
src/bin/e_comp_screen.h

index 943840f..2037066 100755 (executable)
@@ -291,6 +291,7 @@ e_requires="\
   libds \
   libds-tizen-tbm-server \
   libds-tizen-scaler \
+  libds-tizen-gbm-server \
   "
 
 PKG_CHECK_MODULES(E_INFO, [
index 1605872..3ea266e 100644 (file)
@@ -81,6 +81,7 @@ BuildRequires:  pkgconfig(capi-media-streamrecorder)
 BuildRequires:  pkgconfig(libds)
 BuildRequires:  pkgconfig(libds-tizen-tbm-server)
 BuildRequires:  pkgconfig(libds-tizen-scaler)
+BuildRequires:  pkgconfig(libds-tizen-gbm-server)
 
 %if "%{LIBGOMP}" == "use"
 Requires:       libgomp
index 7affba2..9c8bb22 100644 (file)
@@ -4,6 +4,7 @@
 #include <device/board-internal.h>
 #include <tbm_drm_helper.h>
 #include <gbm.h>
+#include <libds-tizen/types/gbm_server.h>
 
 #define PATH "/org/enlightenment/wm"
 #define IFACE "org.enlightenment.wm.screen_rotation"
@@ -549,7 +550,7 @@ _e_comp_screen_del(E_Comp_Screen *e_comp_screen)
           }
      }
 
-   if (e_comp_screen->gdevice) gbm_device_destroy(e_comp_screen->gdevice);
+   if (e_comp_screen->gbm_server) ds_gbm_server_destroy(e_comp_screen->gbm_server);
    if (e_comp_screen->gdevice_fd >= 0) close(e_comp_screen->gdevice_fd);
    if (e_comp_screen->bufmgr) tbm_bufmgr_deinit(e_comp_screen->bufmgr);
    if (e_comp_screen->fd >= 0) close(e_comp_screen->fd);
@@ -1774,14 +1775,15 @@ e_comp_screen_gbm_device_get(E_Comp_Screen *e_comp_screen)
    fd = tbm_drm_helper_get_master_fd();
    EINA_SAFETY_ON_FALSE_RETURN_VAL(fd >= 0, NULL);
 
-   e_comp_screen->gdevice = gbm_create_device(fd);
-   if (!e_comp_screen->gdevice)
+   e_comp_screen->gbm_server = ds_gbm_server_create(fd);
+   if (!e_comp_screen->gbm_server)
      {
-        ERR("fail to create gbm device");
+        ERR("fail to create gbm server");
         close(fd);
         return NULL;
      }
 
+   e_comp_screen->gdevice = e_comp_screen->gbm_server->gbm_device;
    e_comp_screen->gdevice_fd = fd;
 
    return e_comp_screen->gdevice;
index c818926..47eaebb 100644 (file)
@@ -5,6 +5,7 @@
 #define E_COMP_SCREEN_H
 
 #include <tdm.h>
+#include <libds-tizen/gbm_server.h>
 
 typedef struct _E_Comp_Screen   E_Comp_Screen;
 typedef struct _E_Screen        E_Screen;
@@ -20,8 +21,10 @@ struct _E_Comp_Screen
    int            num_outputs;
    tdm_display   *tdisplay;
    tbm_bufmgr     bufmgr;
-   void          *gdevice;
-   int            gdevice_fd;
+
+   struct ds_gbm_server *gbm_server;
+   void *gdevice;
+   int gdevice_fd;
 
    /* for sw compositing */
    const Eina_List *devices;