From: SooChan Lim Date: Wed, 15 May 2019 08:41:41 +0000 (+0900) Subject: layer: check if the HWC cap is enabled X-Git-Tag: submit/tizen/20200317.032930~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F29%2F206229%2F7;p=platform%2Fcore%2Fuifw%2Flibtdm.git layer: check if the HWC cap is enabled The layer api MUST not be used when the HWC capability is enabled. When the HWC capability is set by tdm backends, it means that they does not support the layer objects. Change-Id: Ibf9210ea4abf8870e18caa23b5f0f5de2c24eb00 --- diff --git a/src/tdm_layer.c b/src/tdm_layer.c index 3737da1..6e0c1bf 100644 --- a/src/tdm_layer.c +++ b/src/tdm_layer.c @@ -110,6 +110,8 @@ tdm_layer_get_output(tdm_layer *layer, tdm_error *error) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK_ERROR(); + if (error) *error = TDM_ERROR_NONE; @@ -129,6 +131,8 @@ tdm_layer_get_index(tdm_layer *layer, int *index) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + *index = private_layer->index; _pthread_mutex_unlock(&private_display->lock); @@ -145,6 +149,8 @@ tdm_layer_get_capabilities(tdm_layer *layer, tdm_layer_capability *capabilities) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + *capabilities = private_layer->caps.capabilities; _pthread_mutex_unlock(&private_display->lock); @@ -162,6 +168,8 @@ tdm_layer_get_available_formats(tdm_layer *layer, const tbm_format **formats, in _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + *formats = (const tbm_format *)private_layer->caps.formats; *count = private_layer->caps.format_count; @@ -180,6 +188,8 @@ tdm_layer_get_available_properties(tdm_layer *layer, const tdm_prop **props, int _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + *props = (const tdm_prop *)private_layer->caps.props; *count = private_layer->caps.prop_count; @@ -197,6 +207,8 @@ tdm_layer_get_zpos(tdm_layer *layer, int *zpos) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + *zpos = private_layer->caps.zpos; _pthread_mutex_unlock(&private_display->lock); @@ -213,6 +225,8 @@ tdm_layer_set_property(tdm_layer *layer, unsigned int id, tdm_value value) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + private_module = private_layer->private_module; func_layer = &private_module->func_layer; @@ -247,6 +261,8 @@ tdm_layer_get_property(tdm_layer *layer, unsigned int id, tdm_value *value) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + private_module = private_layer->private_module; func_layer = &private_module->func_layer; @@ -317,6 +333,8 @@ tdm_layer_set_info(tdm_layer *layer, tdm_info_layer *info) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + ret = tdm_layer_set_info_internal(private_layer, info); _pthread_mutex_unlock(&private_display->lock); @@ -335,6 +353,8 @@ tdm_layer_get_info(tdm_layer *layer, tdm_info_layer *info) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + private_module = private_layer->private_module; func_layer = &private_module->func_layer; @@ -562,6 +582,8 @@ tdm_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + ret = tdm_layer_set_buffer_internal(private_layer, buffer); _pthread_mutex_unlock(&private_display->lock); @@ -606,6 +628,8 @@ tdm_layer_unset_buffer(tdm_layer *layer) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + ret = tdm_layer_unset_buffer_internal(private_layer); TDM_WARNING_IF_FAIL(ret == TDM_ERROR_NONE); @@ -1088,6 +1112,8 @@ tdm_layer_commit(tdm_layer *layer, tdm_layer_commit_handler func, void *user_dat _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + ret = tdm_layer_commit_internal(private_layer, func, user_data); _pthread_mutex_unlock(&private_display->lock); @@ -1104,6 +1130,8 @@ tdm_layer_is_committing(tdm_layer *layer, unsigned int *committing) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + *committing = private_layer->committing; _pthread_mutex_unlock(&private_display->lock); @@ -1152,6 +1180,8 @@ tdm_layer_remove_commit_handler(tdm_layer *layer, tdm_layer_commit_handler func, _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + tdm_layer_remove_commit_handler_internal(layer, func, user_data); _pthread_mutex_unlock(&private_display->lock); @@ -1167,6 +1197,8 @@ tdm_layer_get_displaying_buffer(tdm_layer *layer, tdm_error *error) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK_ERROR(); + if (error) *error = TDM_ERROR_NONE; @@ -1259,6 +1291,8 @@ tdm_layer_set_buffer_queue(tdm_layer *layer, tbm_surface_queue_h buffer_queue) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + private_module = private_layer->private_module; func_layer = &private_module->func_layer; @@ -1316,6 +1350,8 @@ tdm_layer_is_usable(tdm_layer *layer, unsigned int *usable) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + *usable = private_layer->usable; _pthread_mutex_unlock(&private_display->lock); @@ -1332,6 +1368,8 @@ tdm_layer_set_video_pos(tdm_layer *layer, int zpos) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + private_module = private_layer->private_module; func_layer = &private_module->func_layer; @@ -1365,6 +1403,8 @@ tdm_layer_create_capture(tdm_layer *layer, tdm_error *error) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK_ERROR(); + capture = (tdm_capture *)tdm_capture_create_layer_internal(private_layer, error); _pthread_mutex_unlock(&private_display->lock); @@ -1382,6 +1422,8 @@ tdm_layer_get_buffer_flags(tdm_layer *layer, unsigned int *flags) _pthread_mutex_lock(&private_display->lock); + OUTPUT_HWC_CAP_CHECK(); + private_module = private_layer->private_module; func_layer = &private_module->func_layer;