Do not send cursor image to client 59/275859/1
authorJunkyeong, Kim <jk0430.kim@samsung.com>
Fri, 3 Jun 2022 07:00:42 +0000 (16:00 +0900)
committerJunkyeong, Kim <jk0430.kim@samsung.com>
Fri, 3 Jun 2022 07:00:45 +0000 (16:00 +0900)
use default client side cursor.
remain cursor image sneding codes for debugging.

Change-Id: I5af35263f5d94f79ca988e95b07d7275d6b25469
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
src/e_mod_rdp.c

index e73cead..608c38b 100644 (file)
@@ -40,6 +40,7 @@
 #include "e_mod_rdp.h"
 
 #define RDP_DEBUG 0
+#define RDP_CURSOR_DEBUG 0
 
 #define E_RDP_WIDTH 1280
 #define E_RDP_HEIGHT 720
@@ -71,7 +72,9 @@ 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
 {
@@ -639,6 +642,7 @@ _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)
 {
@@ -734,6 +738,7 @@ _e_rdp_pixman_output_image_composite_cursor(E_Rdp_Output *output, E_Hwc_Window *
 
    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)
@@ -973,10 +978,10 @@ _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;
@@ -990,6 +995,7 @@ fail:
    return NULL;
 }
 
+#if RDP_CURSOR_DEBUG
 static Eina_Bool
 _e_rdp_pixman_output_image_erase_cursor(E_Rdp_Output *output)
 {
@@ -1156,6 +1162,7 @@ _e_rdp_pixman_output_image_get_cursor(E_Rdp_Output *output, E_Hwc_Window *hwc_wi
 
    return pix_surface;
 }
+#endif
 
 static pixman_image_t *
 _e_rdp_pixman_output_image_get(E_Rdp_Output *output)
@@ -1186,7 +1193,9 @@ _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);
@@ -1195,7 +1204,7 @@ _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)
@@ -1203,6 +1212,7 @@ _e_rdp_pixman_output_image_get(E_Rdp_Output *output)
                   hwc_window_cursor = hwc_window;
                }
           }
+#endif
      }
 
    if (eina_list_count(visible_list) == 0)
@@ -1211,7 +1221,7 @@ _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);
@@ -1220,7 +1230,9 @@ _e_rdp_pixman_output_image_get(E_Rdp_Output *output)
      {
         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;
 }
 
@@ -1463,6 +1475,7 @@ _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)
 {
@@ -1486,6 +1499,7 @@ _e_rdp_cb_pointer_mouse_move(void *data, E_Pointer *ptr)
      _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)
@@ -2252,12 +2266,13 @@ 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)
@@ -2350,7 +2365,9 @@ 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;