_e_video_hwc_buffer_show(evh, evh->current_fb, evh->current_fb->content_t);
}
+static void
+_e_video_hwc_cb_surface_viewport(struct wl_listener *listener, void *data)
+{
+ E_Video_Hwc *evh;
+
+ evh = container_of(listener, E_Video_Hwc, surface_viewport_listener);
+
+ VDB("Apply Viewport Signal", evh->ec);
+ evh->render.redraw = EINA_TRUE;
+ _e_video_hwc_render_queue(evh);
+}
+
static void
_e_video_hwc_client_event_init(E_Video_Hwc *evh)
{
+ /* In order to try to redraw video whenever viewport changes. */
+ evh->surface_viewport_listener.notify = _e_video_hwc_cb_surface_viewport;
+ wl_signal_add(&evh->ec->comp_data->apply_viewport_signal,
+ &evh->surface_viewport_listener);
+
evas_object_event_callback_add(evh->ec->frame, EVAS_CALLBACK_SHOW,
_e_video_hwc_cb_evas_show, evh);
evas_object_event_callback_add(evh->ec->frame, EVAS_CALLBACK_RESIZE,
static void
_e_video_hwc_client_event_deinit(E_Video_Hwc *evh)
{
+ wl_list_remove(&evh->surface_viewport_listener.link);
+
evas_object_event_callback_del_full(evh->ec->frame, EVAS_CALLBACK_SHOW,
_e_video_hwc_cb_evas_show, evh);
evas_object_event_callback_del_full(evh->ec->frame, EVAS_CALLBACK_RESIZE,