diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2016-07-03 15:43:04 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2016-07-03 15:45:46 +0900 |
commit | 5fa3815e01d7d16f04d13a6ebd28e7c5d2d9dba9 (patch) | |
tree | 7e82ffdfae2796fbeb12b6992bef6582a52c815b /src/lib | |
parent | 6ab167afa1e574d641081554a0ebe80f79645971 (diff) | |
download | efl-5fa3815e01d7d16f04d13a6ebd28e7c5d2d9dba9.tar.gz |
evas update buf - dont ref and unref outbug as an evas image - it's not
we need calls to ref/unref them from engines, but atm it's ok because
they dont get deleted until the flush is done and not used after that...
@fix
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/evas/cache/evas_cache_image.c | 7 | ||||
-rw-r--r-- | src/lib/evas/canvas/evas_render.c | 6 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/lib/evas/cache/evas_cache_image.c b/src/lib/evas/cache/evas_cache_image.c index 2cd2e909b4..21edc944e3 100644 --- a/src/lib/evas/cache/evas_cache_image.c +++ b/src/lib/evas/cache/evas_cache_image.c @@ -965,8 +965,11 @@ evas_cache_image_drop(Image_Entry *im) _evas_cache_image_entry_delete(cache, im); return; } - _evas_cache_image_lru_add(im); - if (cache) evas_cache_image_flush(cache); + if (cache) + { + _evas_cache_image_lru_add(im); + evas_cache_image_flush(cache); + } } } diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index ca6f5949a8..e85e402cac 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -2771,10 +2771,10 @@ evas_render_updates_internal(Evas *eo_e, { ru = malloc(sizeof(*ru)); ru->surface = surface; + //XXX: need a way of reffing output surfaces NEW_RECT(ru->area, ux, uy, uw, uh); eina_spinlock_take(&(e->render.lock)); e->render.updates = eina_list_append(e->render.updates, ru); - evas_cache_image_ref(surface); eina_spinlock_release(&(e->render.lock)); } @@ -2952,7 +2952,7 @@ evas_render_updates_internal(Evas *eo_e, EINA_LIST_FOREACH(e->render.updates, l, ru) { post.updated_area = eina_list_append(post.updated_area, ru->area); - evas_cache_image_drop(ru->surface); + //XXX: need a way of unreffing output surfaces ru->surface = NULL; } eina_spinlock_take(&(e->render.lock)); @@ -3073,7 +3073,7 @@ evas_render_pipe_wakeup(void *data) ru->area->x, ru->area->y, ru->area->w, ru->area->h, EVAS_RENDER_MODE_ASYNC_END); eina_evlog("-render_push", e->evas, 0.0, NULL); - evas_cache_image_drop(ru->surface); + //XXX: need a way to unref render output surfaces ru->surface = NULL; } eina_evlog("+render_output_flush", e->evas, 0.0, NULL); |