discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=5ad3c6358f67682816587240a0ff287198549d1a

commit 5ad3c6358f67682816587240a0ff287198549d1a
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Fri Oct 16 15:49:30 2015 -0400

    Revert "ecore-wayland: Redo window animators to not use Custom source 
animators"
    
    This reverts commit bd83d4c03ab9f6f6ae225976b9595a1dfde61237.
    
    adding an animator (and then not managing its ticks) causes the animator
    to fire constantly. in this case, it was causing 100% cpu usage and forcing 
a
    compositor re-render for every frame regardless of damages
---
 src/lib/ecore_wayland/ecore_wl_private.h |  2 --
 src/lib/ecore_wayland/ecore_wl_window.c  | 52 --------------------------------
 2 files changed, 54 deletions(-)

diff --git a/src/lib/ecore_wayland/ecore_wl_private.h 
b/src/lib/ecore_wayland/ecore_wl_private.h
index 872409f..3493472 100644
--- a/src/lib/ecore_wayland/ecore_wl_private.h
+++ b/src/lib/ecore_wayland/ecore_wl_private.h
@@ -157,7 +157,6 @@ struct _Ecore_Wl_Window
    Eina_Bool alpha : 1;
    Eina_Bool transparent : 1;
    Eina_Bool has_buffer : 1;
-   Eina_Bool visible : 1;
 
    Ecore_Wl_Window_Type type;
    Ecore_Wl_Window_Buffer_Type buffer_type;
@@ -165,7 +164,6 @@ struct _Ecore_Wl_Window
    Ecore_Wl_Input *pointer_device;
    Ecore_Wl_Input *keyboard_device;
 
-   Ecore_Animator *animator;
    Eina_Bool anim_pending : 1;
    struct wl_callback *anim_callback;
 
diff --git a/src/lib/ecore_wayland/ecore_wl_window.c 
b/src/lib/ecore_wayland/ecore_wl_window.c
index 9f60e88..8250e78 100644
--- a/src/lib/ecore_wayland/ecore_wl_window.c
+++ b/src/lib/ecore_wayland/ecore_wl_window.c
@@ -16,7 +16,6 @@ static void _ecore_xdg_handle_surface_configure(void *data, 
struct xdg_surface *
 static void _ecore_xdg_handle_surface_delete(void *data, struct xdg_surface 
*xdg_surface);
 static void _ecore_xdg_handle_popup_done(void *data, struct xdg_popup 
*xdg_popup);
 static void _ecore_session_recovery_uuid(void *data, struct session_recovery 
*session_recovery, const char *uuid);
-static void _anim_cb_animate(void *data, struct wl_callback *callback, 
uint32_t serial EINA_UNUSED);
 
 /* local variables */
 static Eina_Hash *_windows = NULL;
@@ -45,44 +44,6 @@ static const struct session_recovery_listener 
_ecore_session_recovery_listener =
    _ecore_session_recovery_uuid,
 };
 
-static const struct wl_callback_listener _anim_listener =
-{
-   _anim_cb_animate
-};
-
-static void
-_anim_cb_animate(void *data, struct wl_callback *callback, uint32_t serial 
EINA_UNUSED)
-{
-   Ecore_Wl_Window *win;
-
-   win = data;
-   if (!win) return;
-
-   if ((win->anim_callback) && (callback != win->anim_callback)) return;
-
-   wl_callback_destroy(callback);
-   win->anim_callback = NULL;
-}
-
-static Eina_Bool
-_ecore_wl_window_cb_animate(void *data)
-{
-   Ecore_Wl_Window *win;
-
-   win = data;
-   if (!win->visible) return ECORE_CALLBACK_CANCEL;
-
-   if (!win->anim_callback)
-     {
-        win->anim_callback = wl_surface_frame(win->surface);
-        wl_callback_add_listener(win->anim_callback, &_anim_listener, win);
-     }
-
-   wl_surface_commit(win->surface);
-
-   return ECORE_CALLBACK_RENEW;
-}
-
 /* internal functions */
 void
 _ecore_wl_window_init(void)
@@ -444,11 +405,6 @@ ecore_wl_window_show(Ecore_Wl_Window *win)
       default:
         break;
      }
-
-   win->visible = EINA_TRUE;
-
-   if (!win->animator)
-     win->animator = ecore_animator_add(_ecore_wl_window_cb_animate, win);
 }
 
 EAPI void
@@ -458,14 +414,6 @@ ecore_wl_window_hide(Ecore_Wl_Window *win)
 
    if (!win) return;
 
-   win->visible = EINA_FALSE;
-
-   if (win->anim_callback) wl_callback_destroy(win->anim_callback);
-   win->anim_callback = NULL;
-
-   if (win->animator) ecore_animator_del(win->animator);
-   win->animator = NULL;
-
    if (win->xdg_surface) xdg_surface_destroy(win->xdg_surface);
    win->xdg_surface = NULL;
 

-- 


Reply via email to