hwc: change tdm_output_hwc_set_client_target_buffer api
[platform/core/uifw/libtdm.git] / include / tdm_backend.h
index b1a3657..e835146 100644 (file)
@@ -576,6 +576,10 @@ typedef struct _tdm_func_output {
         * The damage parameter describes a buffer damage region as defined in the
         * description of hwc_window_set_buffer_damage().
         *
+        * List of composited hwc_windows (hwc_windows which buffers are presented on #target_buffer)
+        * will be passed along with #target_buffer to allow tdm to make the smooth transition
+        * from a DEVICE type to a CLIENT type.
+        *
         * Will be called before output_commit() if any of the layers are marked as
         * TDM_COMPOSITION_CLIENT or TDM_COMPOSITION_DEVICE_CANDIDATE. If no layers are
         * so marked, then it is not necessary to call this function. It is not necessary
@@ -583,11 +587,12 @@ typedef struct _tdm_func_output {
         * @param[in] output A output object
         * @param[in] target The new target buffer
         * @param[in] damage The buffer damage region
+        * @param[in] composited_wnds The array of composited hwc_wnds
+        * @param[in] num_wnds The size of #composited_wnds array
         * @return #TDM_ERROR_NONE if success. Otherwise, error value.
         * @since 2.0.0
         */
-       tdm_error (*output_hwc_set_client_target_buffer)(tdm_output *output, tbm_surface_h target_buffer,
-                                                                                                tdm_hwc_region damage);
+       tdm_error (*output_hwc_set_client_target_buffer)(tdm_output *output, tbm_surface_h target_buffer, tdm_hwc_region damage);
 
        /**
         * @brief Validate the output
@@ -605,7 +610,8 @@ typedef struct _tdm_func_output {
         * @return #TDM_ERROR_NONE if success. Otherwise, error value.
         * @since 2.0.0
         */
-       tdm_error (*output_hwc_validate)(tdm_output *output, uint32_t *num_types);
+       tdm_error (*output_hwc_validate)(tdm_output *output, tdm_hwc_window **composited_wnds, uint32_t num_wnds,
+                                                               uint32_t *num_types);
 
        /**
         * @brief Get changed composition types
@@ -835,7 +841,7 @@ typedef struct _tdm_func_window {
         * @param[in] z the new Z order
         * @return #TDM_ERROR_NONE if success. Otherwise, error value.
         */
-       tdm_error (*hwc_window_set_zpos)(tdm_hwc_window *hwc_window, uint32_t zpos);
+       tdm_error (*hwc_window_set_zpos)(tdm_hwc_window *hwc_window, int32_t zpos);
 
        /**
         * @brief Sets the desired composition type of the given window.
@@ -890,6 +896,10 @@ typedef struct _tdm_func_window {
         * @param[in] hwc_window A window object
         * @param[in] buffer A TDM buffer
         * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+        *
+        * Implementation should return #TDM_ERROR_BUSY if #hwc_window can't
+        * be updated right now, this won't be interpreted like some critical
+        * error.
         */
        tdm_error (*hwc_window_set_buffer)(tdm_hwc_window *hwc_window,
                                                                           tbm_surface_h buffer);