summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Michael <cp.michael@samsung.com>2015-08-06 09:52:16 -0400
committerChris Michael <cp.michael@samsung.com>2015-08-06 09:53:27 -0400
commitf8987ed5aa6794244fb71cfaf5cc48149a2f0274 (patch)
tree11d66f0003bbd2e9f2d132af59b670f26a75741b
parent79f2576a8919c288f51939b12cc4edfd67023c17 (diff)
downloadefl-f8987ed5aa6794244fb71cfaf5cc48149a2f0274.tar.gz
Add experimental implementation of custom animator ticks
Signed-off-by: Chris Michael <cp.michael@samsung.com>
-rw-r--r--src/lib/ecore_wayland/ecore_wl.c5
-rw-r--r--src/lib/ecore_wayland/ecore_wl_window.c2
-rw-r--r--src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c2
-rw-r--r--src/modules/evas/engines/wayland_shm/evas_shm.c30
4 files changed, 23 insertions, 16 deletions
diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c
index fff8dd6de3..125082b066 100644
--- a/src/lib/ecore_wayland/ecore_wl.c
+++ b/src/lib/ecore_wayland/ecore_wl.c
@@ -779,6 +779,8 @@ _ecore_wl_animator_tick_cb_begin(void *data EINA_UNUSED)
{
Eina_Hash *windows;
+ fprintf(stderr, "ECORE_WL ANIMATOR TICK BEGIN\n");
+
_ecore_wl_animator_busy = EINA_TRUE;
windows = _ecore_wl_window_hash_get();
@@ -788,6 +790,7 @@ _ecore_wl_animator_tick_cb_begin(void *data EINA_UNUSED)
static void
_ecore_wl_animator_tick_cb_end(void *data EINA_UNUSED)
{
+ fprintf(stderr, "ECORE_WL ANIMATOR TICK END\n");
_ecore_wl_animator_busy = EINA_FALSE;
}
@@ -798,6 +801,8 @@ _ecore_wl_animator_callback(void *data, struct wl_callback *callback, uint32_t s
if (!(win = data)) return;
+ fprintf(stderr, "ECORE_WL ANIMATOR CALLBACK\n");
+
ecore_animator_custom_tick();
wl_callback_destroy(callback);
diff --git a/src/lib/ecore_wayland/ecore_wl_window.c b/src/lib/ecore_wayland/ecore_wl_window.c
index ab3f28d3bd..c2055c17af 100644
--- a/src/lib/ecore_wayland/ecore_wl_window.c
+++ b/src/lib/ecore_wayland/ecore_wl_window.c
@@ -231,7 +231,7 @@ ecore_wl_window_commit(Ecore_Wl_Window *win)
if (!win) return;
- if ((win->surface) && (win->has_buffer))
+ if ((win->surface))// && (win->has_buffer))
wl_surface_commit(win->surface);
}
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
index 420e5953de..d9b2894666 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
@@ -245,6 +245,8 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent,
goto err;
}
+ ecore_wl_animator_source_set(ECORE_ANIMATOR_SOURCE_CUSTOM);
+
ecore_evas_callback_pre_free_set(ee, _ecore_evas_wl_common_pre_free);
if (ee->prop.draw_frame)
diff --git a/src/modules/evas/engines/wayland_shm/evas_shm.c b/src/modules/evas/engines/wayland_shm/evas_shm.c
index 1d8f594e21..1e730a4e72 100644
--- a/src/modules/evas/engines/wayland_shm/evas_shm.c
+++ b/src/modules/evas/engines/wayland_shm/evas_shm.c
@@ -134,22 +134,22 @@ _shm_pool_reset(Shm_Pool *pool)
pool->used = 0;
}
-static void
-_shm_frame_release(void *data, struct wl_callback *callback, uint32_t timestamp EINA_UNUSED)
-{
- Shm_Surface *surf;
+/* static void */
+/* _shm_frame_release(void *data, struct wl_callback *callback, uint32_t timestamp EINA_UNUSED) */
+/* { */
+/* Shm_Surface *surf; */
- LOGFN(__FILE__, __LINE__, __FUNCTION__);
+/* LOGFN(__FILE__, __LINE__, __FUNCTION__); */
- if (!(surf = data)) return;
+/* if (!(surf = data)) return; */
- wl_callback_destroy(callback);
-}
+/* wl_callback_destroy(callback); */
+/* } */
-static const struct wl_callback_listener _shm_frame_listener =
-{
- _shm_frame_release
-};
+/* static const struct wl_callback_listener _shm_frame_listener = */
+/* { */
+/* _shm_frame_release */
+/* }; */
static Shm_Data *
_shm_data_create_from_pool(Shm_Pool *pool, int w, int h, Eina_Bool alpha)
@@ -488,7 +488,7 @@ _evas_shm_surface_data_get(Shm_Surface *surface, int *w, int *h)
void
_evas_shm_surface_post(Shm_Surface *surface, Eina_Rectangle *rects, unsigned int count)
{
- struct wl_callback *frame_cb;
+ /* struct wl_callback *frame_cb; */
Shm_Leaf *leaf;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -512,8 +512,8 @@ _evas_shm_surface_post(Shm_Surface *surface, Eina_Rectangle *rects, unsigned int
else
wl_surface_damage(surface->surface, 0, 0, leaf->w, leaf->h);
- frame_cb = wl_surface_frame(surface->surface);
- wl_callback_add_listener(frame_cb, &_shm_frame_listener, surface);
+ /* frame_cb = wl_surface_frame(surface->surface); */
+ /* wl_callback_add_listener(frame_cb, &_shm_frame_listener, surface); */
wl_surface_commit(surface->surface);