Evas GL: Applied 'Fix linking to 'context_restore_set'' patch for wayland_egl engine 51/62751/1
authorPrudhvi Raj, Vasireddi <prudhvi.raj@samsung.com>
Fri, 18 Mar 2016 03:13:22 +0000 (12:13 +0900)
committerPrudhvi Raj, Vasireddi <prudhvi.raj@samsung.com>
Fri, 18 Mar 2016 03:16:09 +0000 (12:16 +0900)
Change-Id: I5bfc2ad6a21110c32470021c06df8f098425e08d

src/modules/evas/engines/wayland_egl/evas_engine.c
src/modules/evas/engines/wayland_egl/evas_engine.h
src/modules/evas/engines/wayland_egl/evas_wl_main.c

index 92a1f14..bb142b9 100755 (executable)
@@ -77,7 +77,6 @@ Evas_GL_Preload_Render_Call glsym_evas_gl_preload_render_relax = NULL;
 glsym_func_void     glsym_evas_gl_common_error_set = NULL;
 glsym_func_int      glsym_evas_gl_common_error_get = NULL;
 glsym_func_void_ptr glsym_evas_gl_common_current_context_get = NULL;
-void (*glsym_evas_gl_context_restore_set) (Eina_Bool enable) = NULL;
 
 _eng_fn (*glsym_eglGetProcAddress) (const char *a) = NULL;
 void *(*glsym_eglCreateImage) (EGLDisplay a, EGLContext b, EGLenum c, EGLClientBuffer d, const int *e) = NULL;
@@ -150,7 +149,6 @@ gl_symbols(void)
    LINK2GENERIC(evas_gl_common_error_get);
    LINK2GENERIC(evas_gl_common_error_set);
    LINK2GENERIC(evas_gl_common_current_context_get);
-   LINK2GENERIC(evas_gl_context_restore_set);
 
 #define FINDSYM(dst, sym, typ) \
    if (glsym_eglGetProcAddress) { \
index 29c479b..e9f4da0 100755 (executable)
@@ -153,6 +153,5 @@ _re_wincheck(Outbuf *ob)
    return 0;
 }
 
-extern void (*glsym_evas_gl_context_restore_set) (Eina_Bool enable);
 
 #endif
index 7011389..ae6bf47 100644 (file)
@@ -1,8 +1,11 @@
 #include "evas_engine.h"
+#include <dlfcn.h>
 
-# define SET_RESTORE_CONTEXT() do { if (glsym_evas_gl_context_restore_set) glsym_evas_gl_context_restore_set(EINA_TRUE); } while(0)
+# define SET_RESTORE_CONTEXT() do { if (glsym_evas_gl_common_context_restore_set) glsym_evas_gl_common_context_restore_set(EINA_TRUE); } while(0)
 
 /* local function prototypes */
+typedef void (*glsym_func_void) ();
+glsym_func_void glsym_evas_gl_common_context_restore_set = NULL;
 
 /* local variables */
 static Outbuf *_evas_gl_wl_window = NULL;
@@ -25,6 +28,14 @@ eng_window_new(Evas *evas, Evas_Engine_Info_Wayland_Egl *einfo, int w, int h, Re
    /* try to allocate space for our window */
    if (!(gw = calloc(1, sizeof(Outbuf))))
      return NULL;
+#define LINK2GENERIC(sym) \
+   do { \
+   if (!glsym_##sym) {\
+   glsym_##sym = dlsym(RTLD_DEFAULT, #sym); \
+   if (!glsym_##sym) ERR("Could not find function '%s'", #sym); }\
+   } while(0)
+
+   LINK2GENERIC(evas_gl_common_context_restore_set);
 
    win_count++;
    gw->info = einfo;