X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftbm_bufmgr_int.h;h=915cd1bdeac53d21d67bb40863d82a7ec1269bb2;hb=0685d37af53e41e7ad4daa7aea7c799c5642a198;hp=f2287d39ee402e3f51a45e837d74910d1e22a9f5;hpb=efa51586ab7ea4911f2f26712a861d9a433cb4e2;p=platform%2Fcore%2Fuifw%2Flibtbm.git diff --git a/src/tbm_bufmgr_int.h b/src/tbm_bufmgr_int.h index f2287d3..915cd1b 100644 --- a/src/tbm_bufmgr_int.h +++ b/src/tbm_bufmgr_int.h @@ -170,6 +170,31 @@ struct list_head { struct list_head *next; }; +typedef enum _tbm_module_type { + TBM_MODULE_TYPE_NONE, + TBM_MODULE_TYPE_HAL_TBM, + TBM_MODULE_TYPE_TBM_BACKEND, + TBM_MODULE_TYPE_BUFMGR_BACKEND, +} tbm_module_type; + +typedef struct _tbm_module { + tbm_module_type type; + + void *module_data; /* backend module */ + tbm_bufmgr_backend backend; /* bufmgr backend (will be DEPRECATED) */ + + tbm_backend_module *backend_module_data; /* backend module data */ + tbm_backend_bufmgr_data *bufmgr_data; /* backend data of the backend module */ + tbm_backend_bufmgr_func *bufmgr_func; /* backend functions for bufmgr */ + tbm_backend_bo_func *bo_func; /* backend functions for bo */ + + int use_hal_tbm; /* use hal-api-tbm */ + int auth_wl_socket_created; /* create wayland socket for authenticated drm_fd */ + int auth_fd; + hal_tbm_backend *hal_backend; /* hal-api-tbm backend */ + hal_tbm_bufmgr *hal_bufmgr; /* hal-api-tbm bufmgr */ +} tbm_module; + /** * @brief tbm_bo : buffer object of Tizen Buffer Manager */ @@ -186,6 +211,7 @@ struct _tbm_bo { unsigned int map_cnt; /* device map count */ tbm_backend_bo_data *bo_data; /* bo data of the backend module */ + int get_from_hal_surface; /* bo_data has be detroyed by hal backend */ }; /** @@ -204,6 +230,10 @@ struct _tbm_bufmgr { struct list_head surf_queue_list; /* list of surface queues belonging to bufmgr */ struct list_head debug_key_list; /* list of debug data key list belonging to bufmgr */ + //TODO: tbm_module *module; + tbm_module *module; /* tbm module */ + + //TODO: replace this to data in tbm_module *module void *module_data; /* backend module */ tbm_bufmgr_backend backend; /* bufmgr backend (will be DEPRECATED) */ @@ -258,6 +288,8 @@ struct _tbm_surface { int width; int height; } damage; + + hal_tbm_surface *hal_surface; // hal_tbm_surface }; typedef struct { @@ -314,10 +346,16 @@ void _tbm_set_last_result(tbm_error_e err); void _tbm_bufmgr_mutex_lock(void); void _tbm_bufmgr_mutex_unlock(void); -tbm_bo tbm_bo_alloc_with_format(tbm_bufmgr bufmgr, int format, int bo_idx, int width, int bpp, - int height, tbm_bo_memory_type flags, tbm_error_e *error); -tbm_bo tbm_bo_alloc_with_tiled_format(tbm_bufmgr bufmgr, int width, int height, int bpp, int format, - tbm_bo_memory_type flags, int bo_idx, tbm_error_e *error); -tbm_bo tbm_bo_alloc_with_surface(tbm_bufmgr bufmgr, int width, int height, int format, int flags, int bo_idx); +tbm_bo tbm_bo_alloc_with_format(tbm_bufmgr bufmgr, int format, int bo_idx, int width, int bpp, int height, tbm_bo_memory_type flags, tbm_error_e *error); +tbm_bo tbm_bo_alloc_with_bo_data(tbm_bufmgr bufmgr, tbm_backend_bo_data *bo_data, int flags); + +/* tbm_module functions */ +tbm_module *tbm_module_load(int fd); +void tbm_module_unload(tbm_module *module); + +int tbm_module_bufmgr_get_capabilities(tbm_module *module, tbm_error_e *error); +tbm_error_e tbm_module_bufmgr_bind_native_display(tbm_module *module, void *native_display); +tbm_backend_bo_data *tbm_module_bufmgr_bo_alloc(tbm_module *module, tbm_bo bo, int size, int flags, tbm_error_e *error); +tbm_backend_bo_data *tbm_module_bufmgr_bo_alloc_with_format(tbm_module *module, int format, int bo_idx, int width, int height, int bpp, tbm_bo_memory_type flags, tbm_error_e *error); -#endif /* _TBM_BUFMGR_INT_H_ */ +#endif /* _TBM_BUFMGR_INT_H_ */