[EvasGL] Add to check current eglDisplay when eglMakeCurrent is called 11/134011/2 accepted/tizen/unified/20170630.083054 submit/tizen/20170616.085651
authorWonsik, Jung <sidein@samsung.com>
Wed, 14 Jun 2017 08:02:19 +0000 (17:02 +0900)
committerWonsik, Jung <sidein@samsung.com>
Thu, 15 Jun 2017 08:15:39 +0000 (17:15 +0900)
Add to check current eglDisplay when eglMakeCurrent is called.
If eglWindow surface and eglContext is created twice,
same eglSurfaces and eglContexts are created in each backend  by Mali's core.
To fix that, add checking code with current eglDisplay.

Change-Id: I8f3e54d31dc8d08a6115f531e40d665cbc931635

src/modules/evas/engines/gl_tbm/evas_tbm_main.c
src/modules/evas/engines/wayland_egl/evas_wl_main.c

index ce1a558..1af328e 100755 (executable)
@@ -251,7 +251,8 @@ eng_window_use(Outbuf *gw)
 
    if (_evas_gl_wl_window)
      {
-        if (eglGetCurrentContext() != _evas_gl_wl_window->egl_context[0])
+        if ((eglGetCurrentContext() != _evas_gl_wl_window->egl_context[0])
+            || (eglGetCurrentDisplay() != _evas_gl_wl_window->egl_disp))
           force = EINA_TRUE;
      }
 
index 4d652d2..8ffa75a 100644 (file)
@@ -371,7 +371,8 @@ eng_window_use(Outbuf *gw)
 
    if (_evas_gl_wl_window)
      {
-        if (eglGetCurrentContext_thread_cmd() != _evas_gl_wl_window->egl_context[0])
+        if ((eglGetCurrentContext_thread_cmd() != _evas_gl_wl_window->egl_context[0])
+            || (eglGetCurrentDisplay_thread_cmd() != _evas_gl_wl_window->egl_disp))
           force = EINA_TRUE;
      }