From 8fa451f2db75f1701b610377fe6d9bc2276fd5d3 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Thu, 24 Jan 2013 09:17:15 +0000 Subject: [PATCH] If we have an existing render engine already, then free the existing output buffer, create a new one, and assign render engine functions. Signed-off-by: Christopher Michael SVN revision: 83252 --- src/modules/evas/engines/wayland_shm/evas_engine.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/modules/evas/engines/wayland_shm/evas_engine.c b/src/modules/evas/engines/wayland_shm/evas_engine.c index 5161e55..da7e21d 100644 --- a/src/modules/evas/engines/wayland_shm/evas_engine.c +++ b/src/modules/evas/engines/wayland_shm/evas_engine.c @@ -181,7 +181,28 @@ eng_setup(Evas *eo_evas, void *einfo) info->info.wl_shm, info->info.wl_surface, try_swap))) return 0; + } + else + { + /* we have an existing render engine */ + if (re->ob) re->outbuf_free(re->ob); + + if ((re->ob = evas_swapbuf_setup(epd->output.w, epd->output.h, + info->info.rotation, + info->info.depth, + info->info.destination_alpha, + info->info.wl_shm, + info->info.wl_surface))) + { + re->outbuf_free = evas_swapbuf_free; + re->outbuf_reconfigure = evas_swapbuf_reconfigure; + re->outbuf_update_region_new = evas_swapbuf_update_region_new; + re->outbuf_update_region_push = evas_swapbuf_update_region_push; + re->outbuf_update_region_free = evas_swapbuf_update_region_free; + re->outbuf_flush = evas_swapbuf_flush; + re->outbuf_idle_flush = evas_swapbuf_idle_flush; + } } return 0; -- 2.7.4