From 6a369b2a2ae2dff1dc572477ae7a0610e4930611 Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Tue, 30 Apr 2013 07:20:52 +0100 Subject: [PATCH] If we have an existing outbuf, then free the old one and try to create a new one. Signed-off-by: Chris Michael --- src/modules/evas/engines/drm/evas_engine.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/modules/evas/engines/drm/evas_engine.c b/src/modules/evas/engines/drm/evas_engine.c index 5b3003cfac..b025432013 100644 --- a/src/modules/evas/engines/drm/evas_engine.c +++ b/src/modules/evas/engines/drm/evas_engine.c @@ -139,14 +139,23 @@ eng_setup(Evas *evas, void *einfo) info->info.rotation, info->info.depth, info->info.destination_alpha, swap))) return 0; - - re->info = info; } else { + /* if we have an existing outbuf, free it */ + if (re->ob) evas_outbuf_free(re->ob); + /* try to create a new outbuf */ + if (!(re->ob = + evas_outbuf_setup(epd->output.w, epd->output.h, + info->info.rotation, info->info.depth, + info->info.destination_alpha))) + return 0; } + /* update the info structure pointer */ + re->info = info; + /* reassign engine output */ epd->engine.data.output = re; if (!epd->engine.data.output) return 0;