#include "e_mod_rdp.h"
#define RDP_DEBUG 0
+#define RDP_CURSOR_DEBUG 0
#define E_RDP_WIDTH 1280
#define E_RDP_HEIGHT 720
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
{
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)
{
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)
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;
return NULL;
}
+#if RDP_CURSOR_DEBUG
static Eina_Bool
_e_rdp_pixman_output_image_erase_cursor(E_Rdp_Output *output)
{
return pix_surface;
}
+#endif
static pixman_image_t *
_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);
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)
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);
{
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;
}
return ECORE_CALLBACK_PASS_ON;
}
+#if RDP_CURSOR_DEBUG
static void
_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)
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)
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;