X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftdm_hwc_window.c;h=1dd9e543c316f572fab08883cbaa0d65c12054e5;hb=bba097bfa37e259cd0d59e00b1f7d24db54fe5e9;hp=31e62ad65c3258fa63daeced398d6c86d246780f;hpb=d47abbabf3332fcc8c410810f12216e79a25c459;p=platform%2Fcore%2Fuifw%2Flibtdm.git diff --git a/src/tdm_hwc_window.c b/src/tdm_hwc_window.c index 31e62ad..1dd9e54 100644 --- a/src/tdm_hwc_window.c +++ b/src/tdm_hwc_window.c @@ -185,7 +185,7 @@ tdm_hwc_window_destroy(tdm_hwc_window *hwc_window) } EXTERN tbm_surface_queue_h -tdm_hwc_window_get_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error) +tdm_hwc_window_acquire_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error) { tdm_private_module *private_module; tdm_func_hwc_window *func_hwc_window = NULL; @@ -198,7 +198,7 @@ tdm_hwc_window_get_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error) private_module = private_output->private_module; func_hwc_window = &private_module->func_hwc_window; - if (!func_hwc_window->hwc_window_get_buffer_queue) { + if (!func_hwc_window->hwc_window_acquire_buffer_queue) { /* LCOV_EXCL_START */ _pthread_mutex_unlock(&private_display->lock); TDM_WRN("not implemented!!"); @@ -207,13 +207,51 @@ tdm_hwc_window_get_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error) return NULL; } - queue = func_hwc_window->hwc_window_get_buffer_queue(private_hwc_window->hwc_window_backend, error); + queue = func_hwc_window->hwc_window_acquire_buffer_queue(private_hwc_window->hwc_window_backend, error); _pthread_mutex_unlock(&private_display->lock); return queue; } +EXTERN void +tdm_hwc_window_release_buffer_queue(tdm_hwc_window *hwc_window, tbm_surface_queue_h queue) +{ + tdm_private_module *private_module; + tdm_func_hwc_window *func_hwc_window = NULL; + tdm_private_display *private_display; + tdm_private_output *private_output; + tdm_private_hwc *private_hwc; + tdm_private_hwc_window *private_hwc_window; + + if (!hwc_window) + return; + + private_hwc_window = (tdm_private_hwc_window *)hwc_window; + private_hwc = private_hwc_window->private_hwc; + private_output = private_hwc->private_output; + private_display = private_output->private_display; + + TDM_RETURN_IF_FAIL(queue != NULL); + + _pthread_mutex_lock(&private_display->lock); + + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; + + if (!func_hwc_window->hwc_window_release_buffer_queue) { + _pthread_mutex_unlock(&private_display->lock); + TDM_WRN("not implemented!!"); + return; + } + + func_hwc_window->hwc_window_release_buffer_queue(private_hwc_window->hwc_window_backend, queue); + + _pthread_mutex_unlock(&private_display->lock); + + return; +} + EXTERN tdm_error tdm_hwc_window_set_composition_type(tdm_hwc_window *hwc_window, tdm_hwc_window_composition composition_type) @@ -222,8 +260,8 @@ tdm_hwc_window_set_composition_type(tdm_hwc_window *hwc_window, tdm_func_hwc_window *func_hwc_window = NULL; HWC_WINDOW_FUNC_ENTRY(); - TDM_RETURN_VAL_IF_FAIL(composition_type >= TDM_COMPOSITION_NONE, TDM_ERROR_INVALID_PARAMETER); - TDM_RETURN_VAL_IF_FAIL(composition_type <= TDM_COMPOSITION_VIDEO, TDM_ERROR_INVALID_PARAMETER); + TDM_RETURN_VAL_IF_FAIL(composition_type >= TDM_HWC_WIN_COMPOSITION_NONE, TDM_ERROR_INVALID_PARAMETER); + TDM_RETURN_VAL_IF_FAIL(composition_type <= TDM_HWC_WIN_COMPOSITION_VIDEO, TDM_ERROR_INVALID_PARAMETER); _pthread_mutex_lock(&private_display->lock); @@ -405,8 +443,59 @@ tdm_hwc_window_set_property(tdm_hwc_window *hwc_window, unsigned int id, tdm_val } EXTERN tdm_error -tdm_hwc_window_get_preparation_types(tdm_hwc_window *hwc_window, - int *preparation_types) +tdm_hwc_window_get_constraints(tdm_hwc_window *hwc_window, int *constraints) +{ + tdm_private_module *private_module; + tdm_func_hwc_window *func_hwc_window = NULL; + + HWC_WINDOW_FUNC_ENTRY(); + + _pthread_mutex_lock(&private_display->lock); + + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; + + if (!func_hwc_window->hwc_window_get_constraints) { + _pthread_mutex_unlock(&private_display->lock); + TDM_WRN("not implemented!!"); + return TDM_ERROR_NOT_IMPLEMENTED; + } + + ret = func_hwc_window->hwc_window_get_constraints(private_hwc_window->hwc_window_backend, constraints); + + _pthread_mutex_unlock(&private_display->lock); + + return ret; +} + +EXTERN tdm_error +tdm_hwc_window_set_name(tdm_hwc_window *hwc_window, const char *name) +{ + tdm_private_module *private_module; + tdm_func_hwc_window *func_hwc_window = NULL; + + HWC_WINDOW_FUNC_ENTRY(); + + _pthread_mutex_lock(&private_display->lock); + + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; + + if (!func_hwc_window->hwc_window_set_name) { + _pthread_mutex_unlock(&private_display->lock); + TDM_WRN("not implemented!!"); + return TDM_ERROR_NOT_IMPLEMENTED; + } + + ret = func_hwc_window->hwc_window_set_name(private_hwc_window->hwc_window_backend, name); + + _pthread_mutex_unlock(&private_display->lock); + + return ret; +} + +tdm_error +tdm_hwc_window_set_cursor_image(tdm_hwc_window *hwc_window, int width, int height, int stride, void *ptr) { tdm_private_module *private_module; tdm_func_hwc_window *func_hwc_window = NULL; @@ -418,13 +507,13 @@ tdm_hwc_window_get_preparation_types(tdm_hwc_window *hwc_window, private_module = private_output->private_module; func_hwc_window = &private_module->func_hwc_window; - if (!func_hwc_window->hwc_window_get_preparation_types) { + if (!func_hwc_window->hwc_window_set_cursor_image) { _pthread_mutex_unlock(&private_display->lock); TDM_WRN("not implemented!!"); return TDM_ERROR_NOT_IMPLEMENTED; } - ret = func_hwc_window->hwc_window_get_preparation_types(private_hwc_window->hwc_window_backend, preparation_types); + ret = func_hwc_window->hwc_window_set_cursor_image(private_hwc_window->hwc_window_backend, width, height, stride, ptr); _pthread_mutex_unlock(&private_display->lock);