tbm_module: make tbm_module_bufmgr_bind_native_display
[platform/core/uifw/libtbm.git] / src / tbm_bufmgr_backend.c
index bcd6a06..87d3c78 100644 (file)
@@ -37,13 +37,16 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include <sys/types.h>
 #include "tbm_bufmgr_int.h"
 
+/* LCOV_EXCL_START */
 tbm_bufmgr_backend tbm_backend_alloc(void)
 {
        tbm_bufmgr_backend bufmgr_backend;
 
        bufmgr_backend = calloc(1, sizeof(struct _tbm_bufmgr_backend));
-       if (!bufmgr_backend)
+       if (!bufmgr_backend) {
+               TBM_ERR("error: fail to allocate the bufmgr_backend\n");
                return NULL;
+       }
 
        return bufmgr_backend;
 }
@@ -59,36 +62,24 @@ void tbm_backend_free(tbm_bufmgr_backend backend)
 
 int tbm_backend_init(tbm_bufmgr bufmgr, tbm_bufmgr_backend backend)
 {
-       int flags = 0;
-
        if (!bufmgr) {
-               TBM_LOG("[libtbm:%d] "
-                       "error (%s): fail to init tbm backend... bufmgr is null\n", getpid(),
-                       __func__);
+               TBM_ERR("error: fail to init tbm backend... bufmgr is null\n");
                return 0;
        }
 
        if (!backend) {
-               TBM_LOG("[libtbm:%d] "
-                       "error (%s): fail to init tbm backend... backend is null\n", getpid(),
-                       __func__);
+               TBM_ERR("error: fail to init tbm backend... backend is null\n");
                return 0;
        }
 
-       flags = backend->flags;
-       /* check the backend flags */
-       if (!(flags & TBM_USE_2_0_BACKEND)) {
-               if (flags & TBM_CACHE_CTRL_BACKEND) {
-                       if (!backend->bo_cache_flush) {
-                               TBM_LOG("[libtbm:%d] "
-                                       "error (%s): TBM_FLAG_CACHE_CTRL_TBM needs backend->bo_cache_flush\n", getpid(),
-                                       __func__);
-                               return 0;
-                       }
-               }
-       }
-
        bufmgr->backend = backend;
+       bufmgr->capabilities = TBM_BUFMGR_CAPABILITY_NONE;
+
+       if (bufmgr->backend->bo_import && bufmgr->backend->bo_export)
+               bufmgr->capabilities |= TBM_BUFMGR_CAPABILITY_SHARE_KEY;
+
+       if (bufmgr->backend->bo_import_fd && bufmgr->backend->bo_export_fd)
+               bufmgr->capabilities |= TBM_BUFMGR_CAPABILITY_SHARE_FD;
 
        return 1;
 }
@@ -121,9 +112,17 @@ int tbm_backend_is_display_server(void)
 {
        const char *value;
 
-       value = (const char*)getenv("TBM_DISPLAY_SERVER");
-       if (!value)
+       if (gBufMgr == NULL) {
+               TBM_ERR("error: no gBufMgr.\n");
                return 0;
+       }
 
-       return 1;
+       /* TODO: TBM_DISPLAY_SERVER will be removed */
+       value = (const char*)getenv("TBM_DISPLAY_SERVER");
+
+       if (value || gBufMgr->display_server)
+               return 1;
+
+       return 0;
 }
+/* LCOV_EXCL_STOP */