Add experimental implementation of custom animator ticks

Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
Chris Michael 2015-08-06 09:52:16 -04:00
parent 67ef1b11ff
commit 65578034ef
3 changed files with 18 additions and 16 deletions

View File

@ -231,7 +231,7 @@ ecore_wl_window_commit(Ecore_Wl_Window *win)
if (!win) return; if (!win) return;
if ((win->surface) && (win->has_buffer)) if ((win->surface))// && (win->has_buffer))
wl_surface_commit(win->surface); wl_surface_commit(win->surface);
} }

View File

@ -245,6 +245,8 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent,
goto err; goto err;
} }
ecore_wl_animator_source_set(ECORE_ANIMATOR_SOURCE_CUSTOM);
ecore_evas_callback_pre_free_set(ee, _ecore_evas_wl_common_pre_free); ecore_evas_callback_pre_free_set(ee, _ecore_evas_wl_common_pre_free);
if (ee->prop.draw_frame) if (ee->prop.draw_frame)

View File

@ -134,22 +134,22 @@ _shm_pool_reset(Shm_Pool *pool)
pool->used = 0; pool->used = 0;
} }
static void /* static void */
_shm_frame_release(void *data, struct wl_callback *callback, uint32_t timestamp EINA_UNUSED) /* _shm_frame_release(void *data, struct wl_callback *callback, uint32_t timestamp EINA_UNUSED) */
{ /* { */
Shm_Surface *surf; /* 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 = /* static const struct wl_callback_listener _shm_frame_listener = */
{ /* { */
_shm_frame_release /* _shm_frame_release */
}; /* }; */
static Shm_Data * static Shm_Data *
_shm_data_create_from_pool(Shm_Pool *pool, int w, int h, Eina_Bool alpha) _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 void
_evas_shm_surface_post(Shm_Surface *surface, Eina_Rectangle *rects, unsigned int count) _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; Shm_Leaf *leaf;
LOGFN(__FILE__, __LINE__, __FUNCTION__); LOGFN(__FILE__, __LINE__, __FUNCTION__);
@ -512,8 +512,8 @@ _evas_shm_surface_post(Shm_Surface *surface, Eina_Rectangle *rects, unsigned int
else else
wl_surface_damage(surface->surface, 0, 0, leaf->w, leaf->h); wl_surface_damage(surface->surface, 0, 0, leaf->w, leaf->h);
frame_cb = wl_surface_frame(surface->surface); /* frame_cb = wl_surface_frame(surface->surface); */
wl_callback_add_listener(frame_cb, &_shm_frame_listener, surface); /* wl_callback_add_listener(frame_cb, &_shm_frame_listener, surface); */
wl_surface_commit(surface->surface); wl_surface_commit(surface->surface);