X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Ftdm_helper.h;h=62f3cb32a20f8bb688a0668de7caf3babe6c5a87;hb=790d334f04dd00d23309140580cf82add7ce4f5a;hp=d52698157f7d24800394d099f7a1ba221a78a43d;hpb=5ecd7fb59c26446e6f7a83cd2278b0cecd5393bf;p=platform%2Fcore%2Fuifw%2Flibtdm.git diff --git a/include/tdm_helper.h b/include/tdm_helper.h index d526981..62f3cb3 100644 --- a/include/tdm_helper.h +++ b/include/tdm_helper.h @@ -9,7 +9,7 @@ * Taeheon Kim , * YoungJun Cho , * SooChan Lim , - * Boram Park + * Boram Park * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the @@ -36,9 +36,10 @@ #ifndef _TDM_HELPER_H_ #define _TDM_HELPER_H_ -#include "tdm_types.h" #include +#include "tdm_types.h" + #ifdef __cplusplus extern "C" { #endif @@ -49,6 +50,13 @@ extern "C" { */ /** + * @brief Get the current time as a floating point value in seconds + * @return The number of seconds + */ +double +tdm_helper_get_time(void); + +/** * @brief Dump a buffer * @details * This function supports only if a buffer has below formats. @@ -58,8 +66,6 @@ extern "C" { * - TBM_FORMAT_YUV420 * - TBM_FORMAT_NV12 * - TBM_FORMAT_NV21 - * - TBM_FORMAT_YUYV - * - TBM_FORMAT_UYVY * The filename extension should be "png" for TBM_FORMAT_ARGB8888 and TBM_FORMAT_XRGB8888 * or "yuv" for YUV formats. * @param[in] buffer A TDM buffer @@ -69,14 +75,82 @@ void tdm_helper_dump_buffer(tbm_surface_h buffer, const char *file); /** + * @brief Dump a buffer. + * @details + * The filename will includes the buffer information. (width, height, format) + * @param[in] buffer A TDM buffer + * @param[in] file The path of file. + */ +void +tdm_helper_dump_buffer_str(tbm_surface_h buffer, char *dir, char *str); + +/** + * @brief fill a buffer with 0 for given pos. + * @details + * This function supports only if a buffer has below formats. + * - TBM_FORMAT_ARGB8888 + * - TBM_FORMAT_XRGB8888 + * @param[in] buffer A TDM buffer + */ +void +tdm_helper_clear_buffer_pos(tbm_surface_h buffer, tdm_pos *pos); + +/** + * @brief fill a buffer with 0 for given pos. + * @details + * This function supports only if a buffer has below formats. + * - TBM_FORMAT_ARGB8888 + * - TBM_FORMAT_XRGB8888 + * @param[in] buffer A TDM buffer + */ +void +tdm_helper_clear_buffer_color(tbm_surface_h buffer, tdm_pos *pos, unsigned int color); + +/** + * @brief fill a buffer with 0. + * @details + * This function supports only if a buffer has below formats. + * - TBM_FORMAT_ARGB8888 + * - TBM_FORMAT_XRGB8888 + * - TBM_FORMAT_YVU420 + * - TBM_FORMAT_YUV420 + * - TBM_FORMAT_NV12 + * - TBM_FORMAT_NV21 + * @param[in] buffer A TDM buffer + */ +void +tdm_helper_clear_buffer(tbm_surface_h buffer); + +/** + * @brief Get the buffer full size. + * @details + * In some hardware, the buffer width or height is aligned with the fixed size. + * eg. 8, 16, etc. In this case, the real size of buffer could be bigger than + * the buffer size of tbm_surface_info_s. + * @param[in] buffer A TDM buffer + */ +void +tdm_helper_get_buffer_full_size(tbm_surface_h buffer, int *buffer_w, int *buffer_h); + +/** + * @brief convert the source buffer to the destination buffer with given rectangles + * trannsform + * @details + * This function supports only if buffers have below formats. + * - TBM_FORMAT_ARGB8888 + * - TBM_FORMAT_XRGB8888 + * @param[in] buffer A TDM buffer + */ +tdm_error +tdm_helper_convert_buffer(tbm_surface_h srcbuf, tbm_surface_h dstbuf, + tdm_pos *srcpos, tdm_pos *dstpos, + tdm_transform transform, int over); + +/** * @brief Get a fd from the given enviroment variable. * @details * This function will dup the fd of the given enviroment variable. The Caller * @b SHOULD close the fd. - * \n - * In DRM system, a drm-master-fd @b SHOULD be shared between TDM backend and - * TBM backend in display server side by using "TDM_DRM_MASTER_FD" - * and "TBM_DRM_MASTER_FD". * @param[in] env The given enviroment variable * @return fd if success. Otherwise, -1. * @see #tdm_helper_set_fd() @@ -85,10 +159,6 @@ int tdm_helper_get_fd(const char *env); /** * @brief Set the given fd to the give enviroment variable. - * @details - * In DRM system, a drm-master-fd @b SHOULD be shared between TDM backend and - * TBM backend in display server side by using "TDM_DRM_MASTER_FD" - * and "TBM_DRM_MASTER_FD". * @param[in] env The given enviroment variable * @param[in] fd The given fd * @see #tdm_helper_get_fd() @@ -154,6 +224,22 @@ tdm_helper_capture_output(tdm_output *output, tbm_surface_h dst_buffer, void tdm_helper_get_display_information(tdm_display *dpy, char *reply, int *len); +/** + * @brief Get whether the commit-per-vblank functionality is enabled or not for the output. + * @param[in] output An output the functionality has to be checked for + * @return -1 if error occurred, 1 if enabled, 0 if disabled. + */ +int +tdm_helper_output_commit_per_vblank_enabled(tdm_output *output); + +/** + * @brief Get whether the vblank timer is expired or not for the output. + * @param[in] output An output the functionality has to be checked for + * @return -1 if error occurred, 1 if enabled, 0 if disabled. + */ +unsigned int +tdm_helper_output_vblank_timer_expired(tdm_output *output); + #ifdef __cplusplus } #endif