summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Michael <cp.michael@samsung.com>2014-08-18 16:11:15 -0400
committerChris Michael <cp.michael@samsung.com>2014-08-18 16:11:15 -0400
commitb44a068b4b8fe55d700274655b3a6f003e47beec (patch)
tree502f8eb6f32e449da7273e2a07e08368f709b790
parent958a14e416e3624f7310d9f5dd2543c192fd4a92 (diff)
downloadefl-b44a068b4b8fe55d700274655b3a6f003e47beec.tar.gz
evas-wayland-egl: Fix wayland egl engine not rendering
Reset the Outbuf's Engine information pointer. We also don't need to do an eng_window_free during reconfigure because the software_generic_update function will free it anyway. We should also re-setup the tilebuffer during eng_setup. Fix gl_context resize to work even if there is no wl_egl window setup yet. @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
-rw-r--r--src/modules/evas/engines/wayland_egl/evas_engine.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c b/src/modules/evas/engines/wayland_egl/evas_engine.c
index ef0471b204..59f72408b2 100644
--- a/src/modules/evas/engines/wayland_egl/evas_engine.c
+++ b/src/modules/evas/engines/wayland_egl/evas_engine.c
@@ -666,6 +666,7 @@ eng_setup(Evas *evas, void *info)
ob = eng_get_ob(re);
if ((ob) && (_re_wincheck(ob)))
{
+ ob->info = inf;
if ((ob->info->info.display != ob->disp) ||
(ob->info->info.surface != ob->surface) ||
(ob->info->info.win != ob->win) ||
@@ -678,9 +679,6 @@ eng_setup(Evas *evas, void *info)
ob = eng_window_new(evas, inf, epd->output.w, epd->output.h, swap_mode);
if (!ob) goto ob_err;
-
- eng_window_free(eng_get_ob(re));
- re->generic.software.ob = NULL;
eng_window_use(ob);
@@ -694,13 +692,6 @@ eng_setup(Evas *evas, void *info)
{
eng_outbuf_reconfigure(ob, epd->output.w, epd->output.h,
ob->info->info.rotation, 0);
- if (re->generic.software.tb)
- evas_common_tilebuf_free(re->generic.software.tb);
- re->generic.software.tb =
- evas_common_tilebuf_new(epd->output.w, epd->output.h);
- if (re->generic.software.tb)
- evas_common_tilebuf_set_tile_size(re->generic.software.tb,
- TILESIZE, TILESIZE);
}
}
}
@@ -718,7 +709,14 @@ eng_setup(Evas *evas, void *info)
}
if (re->generic.software.tb)
+ evas_common_tilebuf_free(re->generic.software.tb);
+ re->generic.software.tb =
+ evas_common_tilebuf_new(epd->output.w, epd->output.h);
+
+ if (re->generic.software.tb)
{
+ evas_common_tilebuf_set_tile_size(re->generic.software.tb,
+ TILESIZE, TILESIZE);
evas_render_engine_software_generic_tile_strict_set
(&re->generic.software, EINA_TRUE);
}
@@ -816,10 +814,10 @@ eng_output_resize(void *data, int w, int h)
wl_egl_window_resize(ob->win, h, w, dx, dy);
else
wl_egl_window_resize(ob->win, w, h, dx, dy);
-
- glsym_evas_gl_common_context_resize(ob->gl_context, w, h, ob->rot);
}
+ glsym_evas_gl_common_context_resize(ob->gl_context, w, h, ob->rot);
+
if (re->generic.software.tb)
evas_common_tilebuf_free(re->generic.software.tb);