diff --git a/legacy/evas/src/modules/engines/gl_common/evas_gl_core.c b/legacy/evas/src/modules/engines/gl_common/evas_gl_core.c index 6e09b491ef..6019a6a82d 100755 --- a/legacy/evas/src/modules/engines/gl_common/evas_gl_core.c +++ b/legacy/evas/src/modules/engines/gl_common/evas_gl_core.c @@ -1028,6 +1028,8 @@ evgl_engine_create(EVGL_Interface *efunc, void *engine_data) int direct_off = 0, debug_mode = 0; char *s = NULL; + if (evgl_engine) return evgl_engine; + // Initialize Log Domain if (_evas_gl_log_dom < 0) _evas_gl_log_dom = eina_log_domain_register("EvasGL", EVAS_DEFAULT_LOG_COLOR); diff --git a/legacy/evas/src/modules/engines/gl_x11/evas_engine.c b/legacy/evas/src/modules/engines/gl_x11/evas_engine.c index abff2e9a4a..e9a529d0e3 100644 --- a/legacy/evas/src/modules/engines/gl_x11/evas_engine.c +++ b/legacy/evas/src/modules/engines/gl_x11/evas_engine.c @@ -678,10 +678,13 @@ eng_setup(Evas *eo_e, void *in) e->engine.data.output = re; gl_wins++; + re->evgl_engine = evgl_engine_create(&evgl_funcs, (void*)re); + if (!re->evgl_engine) + ERR("Error Creating Evas_GL Engine. Evas GL will not be supported!"); + if (!initted) { evas_common_cpu_init(); - evas_common_blend_init(); evas_common_image_init(); evas_common_convert_init(); @@ -692,14 +695,6 @@ eng_setup(Evas *eo_e, void *in) evas_common_font_init(); evas_common_draw_init(); evas_common_tilebuf_init(); - - re->evgl_engine = evgl_engine_create(&evgl_funcs, (void*)re); - - if (!re->evgl_engine) - { - ERR("Error Creating Evas_GL Engine. Evas GL will not be supported!"); - } - initted = 1; } } @@ -2657,7 +2652,6 @@ eng_gl_context_create(void *data, void *share_context) { Render_Engine *re = (Render_Engine *)data; EVGL_Context *sctx = (EVGL_Context *)share_context; - return evgl_context_create(re->evgl_engine, sctx); }