summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2015-04-14 20:41:56 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2015-04-14 21:19:13 +0900
commit5e832dfa76efba3ecbdc79d55c1444d583ae0d0a (patch)
treebace1c3620dcc36b2235996455310e404e379081 /src/modules
parent796a0d7d348abcf14bd9939ef12d41fc5fe08fd6 (diff)
Evas GL: Disable direct rendering if there is a map
The engine itself (gl_generic) will detect whether the target surface (canvas where to draw the gl stuff) is the window backbuffer or not.
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/evas/engines/gl_generic/evas_engine.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c b/src/modules/evas/engines/gl_generic/evas_engine.c
index 3fa094f..4dab30b 100644
--- a/src/modules/evas/engines/gl_generic/evas_engine.c
+++ b/src/modules/evas/engines/gl_generic/evas_engine.c
@@ -1375,10 +1375,12 @@ eng_gl_direct_override_get(void *data, Eina_Bool *override, Eina_Bool *force_off
1375} 1375}
1376 1376
1377static Eina_Bool 1377static Eina_Bool
1378eng_gl_surface_direct_renderable_get(void *data, Evas_Native_Surface *ns, Eina_Bool *override) 1378eng_gl_surface_direct_renderable_get(void *data, Evas_Native_Surface *ns, Eina_Bool *override, void *surface)
1379{ 1379{
1380 Render_Engine_GL_Generic *re = data; 1380 Render_Engine_GL_Generic *re = data;
1381 Eina_Bool direct_render, client_side_rotation; 1381 Eina_Bool direct_render, client_side_rotation;
1382 Evas_Engine_GL_Context *gl_context;
1383 Evas_GL_Image *sfc = surface;
1382 1384
1383 EVGLINIT(data, EINA_FALSE); 1385 EVGLINIT(data, EINA_FALSE);
1384 if (!re || !ns) return EINA_FALSE; 1386 if (!re || !ns) return EINA_FALSE;
@@ -1391,6 +1393,10 @@ eng_gl_surface_direct_renderable_get(void *data, Evas_Native_Surface *ns, Eina_B
1391 if ((re->software.outbuf_get_rot(re->software.ob) != 0) && (!client_side_rotation)) 1393 if ((re->software.outbuf_get_rot(re->software.ob) != 0) && (!client_side_rotation))
1392 return EINA_FALSE; 1394 return EINA_FALSE;
1393 1395
1396 gl_context = re->window_gl_context_get(re->software.ob);
1397 if (gl_context->def_surface != sfc)
1398 return EINA_FALSE;
1399
1394 return EINA_TRUE; 1400 return EINA_TRUE;
1395} 1401}
1396 1402