support the commit-per-vblank
[platform/core/uifw/libtdm.git] / include / tdm.h
index 15b1f56..3a066c1 100644 (file)
@@ -479,6 +479,7 @@ tdm_output_wait_vblank(tdm_output *output, int interval, int sync,
  * @param[in] func A user commit handler
  * @param[in] user_data The user data
  * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+ * @see #tdm_layer_commit
  */
 tdm_error
 tdm_output_commit(tdm_output *output, int sync, tdm_output_commit_handler func,
@@ -613,7 +614,7 @@ tdm_layer_get_property(tdm_layer *layer, unsigned int id, tdm_value *value);
  * @param[in] layer A layer object
  * @param[in] info The geometry information
  * @return #TDM_ERROR_NONE if success. Otherwise, error value.
- * @see tdm_output_commit
+ * @see tdm_layer_commit
  */
 tdm_error
 tdm_layer_set_info(tdm_layer *layer, tdm_info_layer *info);
@@ -634,7 +635,7 @@ tdm_layer_get_info(tdm_layer *layer, tdm_info_layer *info);
  * @param[in] layer A layer object
  * @param[in] buffer A TDM buffer
  * @return #TDM_ERROR_NONE if success. Otherwise, error value.
- * @see tdm_output_commit
+ * @see tdm_layer_commit
  */
 tdm_error
 tdm_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer);
@@ -650,6 +651,21 @@ tdm_error
 tdm_layer_unset_buffer(tdm_layer *layer);
 
 /**
+ * @brief Commit changes for a layer object
+ * @details After all change of a layer object are applied, a user commit handler
+ * will be called.
+ * @param[in] layer A layer object
+ * @param[in] func A user commit handler
+ * @param[in] user_data The user data
+ * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+ */
+tdm_error
+tdm_layer_commit(tdm_layer *layer, tdm_layer_commit_handler func, void *user_data);
+
+tdm_error
+tdm_layer_is_committing(tdm_layer *layer, unsigned int *committing);
+
+/**
  * @brief Get a displaying TDM buffer from a layer object
  * @details A displaying TDM buffer is a current showing buffer on screen
  * that is set to layer object and applied output object of a layer object.
@@ -666,7 +682,7 @@ tdm_layer_get_displaying_buffer(tdm_layer *layer, tdm_error *error);
  * @param[in] layer A layer object
  * @param[in] buffer_queue A TBM surface_queue
  * @return #TDM_ERROR_NONE if success. Otherwise, error value.
- * @see tdm_output_commit
+ * @see tdm_layer_commit
  */
 tdm_error
 tdm_layer_set_buffer_queue(tdm_layer *layer, tbm_surface_queue_h buffer_queue);