From: Junkyeong Kim Date: Fri, 15 Mar 2024 01:56:44 +0000 (+0900) Subject: Erase RDP_CURSOR_DEBUG X-Git-Tag: accepted/tizen/unified/20240321.142422~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F62%2F308262%2F1;p=platform%2Fcore%2Fuifw%2Fe-mod-tizen-rdp.git Erase RDP_CURSOR_DEBUG Change-Id: Ida79d3ca8f8ee0ac08803381e56254115684230d Signed-off-by: Junkyeong Kim --- diff --git a/src/e_mod_rdp.c b/src/e_mod_rdp.c index 9b64f36..15acaff 100644 --- a/src/e_mod_rdp.c +++ b/src/e_mod_rdp.c @@ -41,7 +41,6 @@ #include "e_mod_rdp.h" #define RDP_DEBUG 0 -#define RDP_CURSOR_DEBUG 0 #define RDP_PATH_LEN 1024 @@ -75,9 +74,6 @@ typedef struct _E_Rdp_Peer_Item E_Rdp_Peer_Item; static E_Rdp_Config_Data *g_rdp_config; static E_Rdp_Backend *g_rdp_backend; static unsigned int refresh_raw_frame_id; -#if RDP_CURSOR_DEBUG -static E_Pointer_Hook *pointer_hook = NULL; -#endif struct _E_Rdp_Output { @@ -650,104 +646,6 @@ _e_rdp_output_image_composite(pixman_image_t *src_img, pixman_image_t *dst_img, dx, dy, dw, dh); } -#if RDP_CURSOR_DEBUG -static void -_e_rdp_pixman_output_image_cusror_damage_area_get(E_Rdp_Output *output, Eina_Rectangle *rect) -{ - if (output->cursor_crop_dst.x == 0 && output->cursor_crop_dst.y == 0 && - output->cursor_crop_dst.w == 0 && output->cursor_crop_dst.h == 0) - { - output->cursor_damage_rect.x = 0; - output->cursor_damage_rect.y = 0; - output->cursor_damage_rect.w = output->w; - output->cursor_damage_rect.h = output->h; - } - else - { - /* x axis */ - if (output->cursor_crop_dst.x < rect->x) - { - output->cursor_damage_rect.x = output->cursor_crop_dst.x; - output->cursor_damage_rect.w = rect->x - output->cursor_crop_dst.x + rect->w; - } - else - { - output->cursor_damage_rect.x = rect->x; - output->cursor_damage_rect.w = output->cursor_crop_dst.x - rect->x + output->cursor_crop_dst.w; - } - if (output->cursor_damage_rect.x + output->cursor_damage_rect.w > output->w) - output->cursor_damage_rect.w = output->w - output->cursor_damage_rect.x; - - /* y axis */ - if (output->cursor_crop_dst.y < rect->y) - { - output->cursor_damage_rect.y = output->cursor_crop_dst.y; - output->cursor_damage_rect.h = rect->y - output->cursor_crop_dst.y + rect->h; - } - else - { - output->cursor_damage_rect.y = rect->y; - output->cursor_damage_rect.h = output->cursor_crop_dst.y - rect->y + output->cursor_crop_dst.h; - } - if (output->cursor_damage_rect.y + output->cursor_damage_rect.h > output->h) - output->cursor_damage_rect.h = output->h - output->cursor_damage_rect.y; - } -} - -static Eina_Bool -_e_rdp_pixman_output_image_composite_cursor(E_Rdp_Output *output, E_Hwc_Window *hwc_window, pixman_image_t *pix_surface, int pix_w, int pix_h, int primary_w, int primary_h) -{ - Eina_Rectangle showing_pos = {0, }; - Eina_Rectangle dst_pos = {0, }; - Eina_Rectangle src_crop = {0, }; - Eina_Rectangle dst_crop = {0, }; - void *src_ptr = NULL; - int src_stride, img_w, img_h; - pixman_image_t *pix_shm_src = NULL; - - if (!hwc_window->cursor.buffer) - return EINA_FALSE; - - src_ptr = hwc_window->cursor.img_ptr; - src_stride = hwc_window->cursor.img_stride; - img_w = hwc_window->cursor.img_w; - img_h = hwc_window->cursor.img_h; - - pix_shm_src = pixman_image_create_bits(PIXMAN_a8r8g8b8, img_w, img_h, (uint32_t*)src_ptr, src_stride); - if (!pix_shm_src) - { - ERR("create pixman image failed"); - return EINA_FALSE; - } - - _e_rdp_output_image_src_crop_get(hwc_window, &src_crop, &showing_pos, primary_w, primary_h); - if (_e_rdp_output_center_rect_get(primary_w, primary_h, pix_w, pix_h, &dst_pos) == EINA_FALSE) - { - pixman_image_unref(pix_shm_src); - return EINA_FALSE; - } - _e_rdp_output_image_dst_crop_get(hwc_window, img_w, img_h, primary_w, primary_h, &dst_pos, &showing_pos, &dst_crop, 0); - - _e_rdp_output_image_composite(pix_shm_src, pix_surface, - src_crop.x, src_crop.y, src_crop.w, src_crop.h, - dst_crop.x, dst_crop.y, dst_crop.w, dst_crop.h, - EINA_TRUE, 0, 0, 0); - - pixman_image_unref(pix_shm_src); - - output->mouse_x = hwc_window->current.info.dst_pos.x; - output->mouse_y = hwc_window->current.info.dst_pos.y; - - _e_rdp_pixman_output_image_cusror_damage_area_get(output, &dst_crop); - output->cursor_crop_dst.x = dst_crop.x; - output->cursor_crop_dst.y = dst_crop.y; - output->cursor_crop_dst.w = dst_crop.w; - output->cursor_crop_dst.h = dst_crop.h; - - return EINA_TRUE; -} -#endif - static Eina_Bool _e_rdp_pixman_output_image_composite(E_Rdp_Output *output, E_Hwc_Window *hwc_window, pixman_image_t *pix_surface, int pix_w, int pix_h, int primary_w, int primary_h) { @@ -986,10 +884,7 @@ _e_rdp_pixman_output_image_get_all(E_Rdp_Output *output, Eina_List *visible_list if ((output->refresh_count == 0) || (output->buffer_changed_count == 0)) _e_rdp_backup_buffer_create(output, tbm_surface, &info); -#if RDP_CURSOR_DEBUG - if (hwc_window_cursor != NULL) - _e_rdp_pixman_output_image_composite_cursor(output, hwc_window_cursor, pix_surface, info.width, info.height, e_output_w, e_output_h); -#endif + tbm_surface_unmap(tbm_surface); output->prepare_tbm_surface = tbm_surface; @@ -1003,175 +898,6 @@ fail: return NULL; } -#if RDP_CURSOR_DEBUG -static Eina_Bool -_e_rdp_pixman_output_image_erase_cursor(E_Rdp_Output *output) -{ - pixman_image_t *pix_backup = NULL; - tbm_surface_info_s info, dst_info; - pixman_format_code_t pix_format = 0; - pixman_region32_t clip_region; - pixman_transform_t t; - struct pixman_f_transform ft; - int err; - - EINA_SAFETY_ON_NULL_RETURN_VAL(output->backup_tbm_surface, EINA_FALSE); - EINA_SAFETY_ON_NULL_RETURN_VAL(output->showing_tbm_surface, EINA_FALSE); - if (output->cursor_crop_dst.w == 0 && output->cursor_crop_dst.h == 0) - return EINA_FALSE; - - err = tbm_surface_map(output->showing_tbm_surface, TBM_SURF_OPTION_WRITE, &dst_info); - if (err) - { - ERR("tbm_surface_map failed"); - return EINA_FALSE; - } - - err = tbm_surface_map(output->backup_tbm_surface, TBM_SURF_OPTION_READ, &info); - if (err) - { - ERR("tbm_surface_map failed"); - tbm_surface_unmap(output->showing_tbm_surface); - return EINA_FALSE; - } - - pix_format = _e_rdp_pixman_format_get(info.format); - if (pix_format == 0) - { - ERR("not supported format"); - tbm_surface_unmap(output->showing_tbm_surface); - tbm_surface_unmap(output->backup_tbm_surface); - return EINA_FALSE; - } - - pix_backup = pixman_image_create_bits(pix_format, info.width, info.height, (uint32_t *)info.planes[0].ptr, info.planes[0].stride); - if (pix_backup == NULL) - { - ERR("create pixman image failed"); - tbm_surface_unmap(output->showing_tbm_surface); - tbm_surface_unmap(output->backup_tbm_surface); - return EINA_FALSE; - } - - pixman_image_ref(output->showing_surface); - - pixman_region32_init_rect(&clip_region, output->cursor_crop_dst.x, output->cursor_crop_dst.y, output->cursor_crop_dst.w, output->cursor_crop_dst.h); - pixman_image_set_clip_region32(pix_backup, &clip_region); - pixman_image_set_source_clipping(pix_backup, TRUE); - pixman_image_set_has_client_clip (pix_backup, TRUE); - pixman_f_transform_init_identity(&ft); - pixman_f_transform_scale(&ft, NULL, 1, 1); - pixman_f_transform_translate(&ft, NULL, 0, 0); - pixman_transform_from_pixman_f_transform(&t, &ft); - pixman_image_set_transform(pix_backup, &t); - pixman_image_composite(PIXMAN_OP_OVER, pix_backup, NULL, output->showing_surface, 0, 0, 0, 0, 0, 0, output->w, output->h); - - pixman_image_unref(pix_backup); - pixman_image_unref(output->showing_surface); - tbm_surface_unmap(output->showing_tbm_surface); - tbm_surface_unmap(output->backup_tbm_surface); - - return EINA_TRUE; -} - -static pixman_image_t * -_e_rdp_pixman_output_image_get_cursor(E_Rdp_Output *output, E_Hwc_Window *hwc_window_cursor, int e_output_w, int e_output_h) -{ - tbm_surface_h tbm_surface = NULL; - tbm_surface_info_s src_info, info; - pixman_image_t *pix_surface = NULL; - pixman_format_code_t pix_format = 0; - int err; - Eina_Bool ret = EINA_FALSE; - - if ((output->mouse_x == hwc_window_cursor->current.info.dst_pos.x) && - (output->mouse_y == hwc_window_cursor->current.info.dst_pos.y)) - { -// INF("same position. do not update. (%dx%d)", output->mouse_x, output->mouse_y); - return NULL; - } - - if (_e_rdp_pixman_output_image_erase_cursor(output)) - { - err = tbm_surface_map(output->showing_tbm_surface, TBM_SURF_OPTION_WRITE, &info); - if (err) - ERR("tbm_surface_map failed"); - else - { - ret = _e_rdp_pixman_output_image_composite_cursor(output, hwc_window_cursor, output->showing_surface, info.width, info.height, e_output_w, e_output_h); - tbm_surface_unmap(output->showing_tbm_surface); - } - - if (ret == EINA_TRUE) - { - output->buffer_reuse = EINA_TRUE; - pix_surface = output->showing_surface; - output->prepare_tbm_surface = output->showing_tbm_surface; - } - } - - if (!output->buffer_reuse) - { - err = tbm_surface_map(output->backup_tbm_surface, TBM_SURF_OPTION_READ, &src_info); - if (err) - { - ERR("tbm_surface_map failed"); - return NULL; - } - - tbm_surface = _e_rdp_tbm_image_create(output, output->w, output->h, 0x00000000); - if (tbm_surface == NULL) - { - ERR("create tbm surface failed"); - output->prepare_tbm_surface = NULL; - tbm_surface_unmap(output->backup_tbm_surface); - return NULL; - } - - err = tbm_surface_map(tbm_surface, TBM_SURF_OPTION_WRITE, &info); - if (err) - { - ERR("tbm_surface_map failed"); - tbm_surface_destroy(tbm_surface); - output->prepare_tbm_surface = NULL; - tbm_surface_unmap(output->backup_tbm_surface); - return NULL; - } - - _e_rdp_tbm_surface_copy(output->backup_tbm_surface, &src_info, tbm_surface, &info); - - pix_format = _e_rdp_pixman_format_get(info.format); - if (pix_format == 0) - { - ERR("not supported format"); - tbm_surface_unmap(tbm_surface); - tbm_surface_destroy(tbm_surface); - output->prepare_tbm_surface = NULL; - return NULL; - } - - pix_surface = pixman_image_create_bits(pix_format, info.width, info.height, (uint32_t *)info.planes[0].ptr, info.planes[0].stride); - if (pix_surface == NULL) - { - ERR("create pixman image failed"); - tbm_surface_unmap(tbm_surface); - tbm_surface_destroy(tbm_surface); - output->prepare_tbm_surface = NULL; - return NULL; - } - - _e_rdp_pixman_output_image_composite_cursor(output, hwc_window_cursor, pix_surface, info.width, info.height, e_output_w, e_output_h); - - tbm_surface_unmap(tbm_surface); - tbm_surface_unmap(output->backup_tbm_surface); - - output->prepare_tbm_surface = tbm_surface; - } - - return pix_surface; -} -#endif - static pixman_image_t * _e_rdp_pixman_output_image_get(E_Rdp_Output *output) { @@ -1201,9 +927,7 @@ _e_rdp_pixman_output_image_get(E_Rdp_Output *output) if (hwc_window->is_target) continue; if (hwc_window->is_video) continue; if (hwc_window->state == E_HWC_WINDOW_STATE_NONE || hwc_window->zpos == -999) continue; -#if !(RDP_CURSOR_DEBUG) if (hwc_window->is_cursor) continue; -#endif if (hwc_window->accepted_state == E_HWC_WINDOW_STATE_CLIENT) { visible_list = eina_list_append(visible_list, hwc_window); @@ -1212,15 +936,6 @@ _e_rdp_pixman_output_image_get(E_Rdp_Output *output) if (hwc_window->accepted_state == E_HWC_WINDOW_STATE_DEVICE) visible_list = eina_list_append(visible_list, hwc_window); -#if RDP_CURSOR_DEBUG - if (hwc_window->accepted_state == E_HWC_WINDOW_STATE_CURSOR) - { - if (hwc_window->cursor.buffer) - { - hwc_window_cursor = hwc_window; - } - } -#endif } if (eina_list_count(visible_list) == 0) @@ -1229,18 +944,9 @@ _e_rdp_pixman_output_image_get(E_Rdp_Output *output) return pix_surface; } visible_list = eina_list_sort(visible_list, eina_list_count(visible_list), _e_rdp_cb_hwc_window_sort); -#if RDP_CURSOR_DEBUG - if (output->buffer_changed) - { - pix_surface = _e_rdp_pixman_output_image_get_all(output, visible_list, hwc_window_cursor, e_output_w, e_output_h); - } - else if ((output->mouse_moved) && (hwc_window_cursor != NULL)) - { - pix_surface = _e_rdp_pixman_output_image_get_cursor(output, hwc_window_cursor, e_output_w, e_output_h); - } -#else + pix_surface = _e_rdp_pixman_output_image_get_all(output, visible_list, hwc_window_cursor, e_output_w, e_output_h); -#endif + return pix_surface; } @@ -1483,32 +1189,6 @@ _e_rdp_cb_client_uniconify(void *data, int type, void *event) return ECORE_CALLBACK_PASS_ON; } -#if RDP_CURSOR_DEBUG -static void -_e_rdp_cb_pointer_mouse_move(void *data, E_Pointer *ptr) -{ - E_Rdp_Backend *b = NULL; - E_Rdp_Output *output = NULL; - - EINA_SAFETY_ON_TRUE_RETURN(e_object_is_del(E_OBJECT(ptr))); - EINA_SAFETY_ON_FALSE_RETURN(e_comp->pointer); - - b = g_rdp_backend; - EINA_SAFETY_ON_NULL_RETURN(b); - EINA_SAFETY_ON_NULL_RETURN(b->output); - output = b->output; - - if (b->client_count == 0) - return; - - if (output->buffer_changed) - _e_rdp_set_refresh_timer(output, output->refresh_time); - else - _e_rdp_set_refresh_timer(output, VGA_TIME); - output->mouse_moved = EINA_TRUE; -} -#endif - static void _e_rdp_canvas_render_post(void *data EINA_UNUSED, Evas *e EINA_UNUSED, void *event_info EINA_UNUSED) { @@ -2392,13 +2072,7 @@ e_rdp_backend_destroy(void) EINA_SAFETY_ON_NULL_RETURN(b); evas_event_callback_del(e_comp->evas, EVAS_CALLBACK_RENDER_POST, _e_rdp_canvas_render_post); -#if RDP_CURSOR_DEBUG - if (pointer_hook) - { - e_pointer_hook_del(pointer_hook); - pointer_hook = NULL; - } -#endif + if (b->handlers) { EINA_LIST_FREE(b->handlers, h) @@ -2496,9 +2170,7 @@ e_rdp_backend_create(E_Rdp_Conf_Edd *config) E_LIST_HANDLER_APPEND(b->handlers, E_EVENT_CLIENT_BUFFER_CHANGE, _e_rdp_cb_client_buffer_change, g_rdp_backend); E_LIST_HANDLER_APPEND(b->handlers, E_EVENT_CLIENT_UNICONIFY, _e_rdp_cb_client_uniconify, g_rdp_backend); -#if RDP_CURSOR_DEBUG - pointer_hook = e_pointer_hook_add(E_POINTER_HOOK_MOUSE_MOVE, _e_rdp_cb_pointer_mouse_move, g_rdp_backend); -#endif + evas_event_callback_add(e_comp->evas, EVAS_CALLBACK_RENDER_POST, _e_rdp_canvas_render_post, NULL); g_rdp_backend = b;