e_server: move the init/shutdown of e_linux_dmabuf 15/312015/1
authorSooChan Lim <sc1.lim@samsung.com>
Fri, 31 May 2024 07:02:54 +0000 (16:02 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 3 Jun 2024 02:26:16 +0000 (11:26 +0900)
to the e_server directory

Change-Id: Id365efba9bba3edbcfecb6ac07f46a80503a929a

src/bin/e_comp_screen.c
src/bin/server/e_linux_dmabuf.c
src/bin/server/e_linux_dmabuf_intern.h
src/bin/server/e_server.c
src/bin/server/e_server_intern.h

index 926fce5..8424940 100644 (file)
@@ -1029,10 +1029,6 @@ e_comp_screen_init()
      }
    e_main_ts_end("\tE_Comp_Canvas Init Done");
 
-   e_main_ts_begin("\tE_Linux_Dmabuf Init");
-   e_linux_dmabuf_init(e_comp_wl->wl.disp);
-   e_main_ts_end("\tE_Linux_Dmabuf Init Done");
-
    /* pointer */
    e_input_device_pointer_xy_get(NULL, &ptr_x, &ptr_y);
    e_comp_wl->ptr.x = wl_fixed_from_int(ptr_x);
index e4da906..f07894d 100644 (file)
@@ -236,6 +236,12 @@ e_linux_dmabuf_init(struct wl_display *display)
    return EINA_TRUE;
 }
 
+EINTERN void
+e_linux_dmabuf_shutdown(void)
+{
+
+}
+
 static void
 _e_linux_dmabuf_buffer_cb_ds_buffer_destroy(struct ds_addon *addon)
 {
index 96398cd..e35c9d9 100644 (file)
@@ -9,6 +9,9 @@
 EINTERN Eina_Bool
 e_linux_dmabuf_init(struct wl_display *display);
 
+EINTERN void
+e_linux_dmabuf_shutdown(void);
+
 EINTERN tbm_surface_h
 e_linux_dmabuf_tbm_surface_get_from_buffer(struct ds_buffer *ds_buffer);
 
index ff22562..87d2b5b 100644 (file)
@@ -18,6 +18,7 @@
 #include "e_explicit_sync_intern.h"
 #include "e_egl_sync_intern.h"
 #include "e_tizen_screen_manager_intern.h"
+#include "e_linux_dmabuf_intern.h"
 
 typedef struct _E_Server E_Server;
 
@@ -48,6 +49,7 @@ struct _E_Server
         Dummy_Handle *explicit_sync_handle;
         Dummy_Handle *egl_sync_handle;
         E_Tizen_Screen_Manager *tizen_screen_manager;
+        Dummy_Handle *linux_dmabuf_handle;
     } handles; // feature handles
 };
 
@@ -106,12 +108,16 @@ e_server_init(void)
 
    e_server_feature_register(E_SERVER_FEATURE_TIZEN_SRCREEN_MANAGER, e_tizen_screen_manager_init());
 
+   if (e_linux_dmabuf_init(e_comp_wl->wl.disp))
+     e_server_feature_register(E_SERVER_FEATURE_LINUX_DMABUF, &dummy_handle);
+
    return EINA_TRUE;
 }
 
 EINTERN void
 e_server_shutdown(void)
 {
+   e_linux_dmabuf_shutdown();
    e_egl_sync_deinit();
    e_explicit_sync_deinit();
    e_foreign_global_shutdown();
@@ -202,6 +208,9 @@ e_server_feature_register(E_SERVER_FEATURE feature, void *handle)
        case E_SERVER_FEATURE_TIZEN_SRCREEN_MANAGER:
          g_server->handles.tizen_screen_manager = handle;
          break;
+       case E_SERVER_FEATURE_LINUX_DMABUF:
+         g_server->handles.linux_dmabuf_handle = handle;
+         break;
        default:
          ERR("Unknown feature(%d) and handle(%p)", feature, handle);
          break;
@@ -274,6 +283,9 @@ e_server_feature_handle_get(E_SERVER_FEATURE feature)
        case E_SERVER_FEATURE_TIZEN_SRCREEN_MANAGER:
          handle = g_server->handles.tizen_screen_manager;
          break;
+       case E_SERVER_FEATURE_LINUX_DMABUF:
+         handle = g_server->handles.linux_dmabuf_handle;
+         break;
        default:
          ERR("Unknown feature(%d)", feature);
          break;
index 4d4bef4..a6a1418 100644 (file)
@@ -23,6 +23,7 @@ typedef enum _E_SERVER_FEATURE {
     E_SERVER_FEATURE_EXPLICIT_SYNC,
     E_SERVER_FEATURE_EGL_SYNC,
     E_SERVER_FEATURE_TIZEN_SRCREEN_MANAGER,
+    E_SERVER_FEATURE_LINUX_DMABUF,
     E_SERVER_FEATURE_MAX
 } E_SERVER_FEATURE;