evas/gl - share the evas gl engine for windows properly.
authorChunEon Park <hermet@hermet.pe.kr>
Wed, 31 Oct 2012 12:57:21 +0000 (12:57 +0000)
committerChunEon Park <hermet@hermet.pe.kr>
Wed, 31 Oct 2012 12:57:21 +0000 (12:57 +0000)
Now elementary_test glview will be happy.

SVN revision: 78707

legacy/evas/src/modules/engines/gl_common/evas_gl_core.c
legacy/evas/src/modules/engines/gl_x11/evas_engine.c

index 6e09b49..6019a6a 100755 (executable)
@@ -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);
index abff2e9..e9a529d 100644 (file)
@@ -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);
 }