From c6fe214e423926fbe73369fafdca1e6870a2fd40 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Fri, 31 May 2024 16:02:54 +0900 Subject: [PATCH] e_server: move the init/shutdown of e_linux_dmabuf to the e_server directory Change-Id: Id365efba9bba3edbcfecb6ac07f46a80503a929a --- src/bin/e_comp_screen.c | 4 ---- src/bin/server/e_linux_dmabuf.c | 6 ++++++ src/bin/server/e_linux_dmabuf_intern.h | 3 +++ src/bin/server/e_server.c | 12 ++++++++++++ src/bin/server/e_server_intern.h | 1 + 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/bin/e_comp_screen.c b/src/bin/e_comp_screen.c index 926fce5..8424940 100644 --- a/src/bin/e_comp_screen.c +++ b/src/bin/e_comp_screen.c @@ -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); diff --git a/src/bin/server/e_linux_dmabuf.c b/src/bin/server/e_linux_dmabuf.c index e4da906..f07894d 100644 --- a/src/bin/server/e_linux_dmabuf.c +++ b/src/bin/server/e_linux_dmabuf.c @@ -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) { diff --git a/src/bin/server/e_linux_dmabuf_intern.h b/src/bin/server/e_linux_dmabuf_intern.h index 96398cd..e35c9d9 100644 --- a/src/bin/server/e_linux_dmabuf_intern.h +++ b/src/bin/server/e_linux_dmabuf_intern.h @@ -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); diff --git a/src/bin/server/e_server.c b/src/bin/server/e_server.c index ff22562..87d2b5b 100644 --- a/src/bin/server/e_server.c +++ b/src/bin/server/e_server.c @@ -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; diff --git a/src/bin/server/e_server_intern.h b/src/bin/server/e_server_intern.h index 4d4bef4..a6a1418 100644 --- a/src/bin/server/e_server_intern.h +++ b/src/bin/server/e_server_intern.h @@ -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; -- 2.7.4