e_comp_wl: do not eglBind/UnbindWaylandDisplay if gl does not support it 90/310090/2
authorChangyeon Lee <cyeon.lee@samsung.com>
Mon, 1 Apr 2024 02:11:06 +0000 (11:11 +0900)
committerchangyeon lee <cyeon.lee@samsung.com>
Mon, 22 Apr 2024 10:03:41 +0000 (10:03 +0000)
Change-Id: I840b021dab44230100ceb689a0767b5c7b59240f

src/bin/e_comp_wl.c
src/bin/e_hwc.c

index f00f5d7..5822fd6 100644 (file)
@@ -3348,7 +3348,14 @@ _e_comp_wl_gl_init(void *data EINA_UNUSED)
 
    glapi = evas_gl_api_get(evasgl);
    EINA_SAFETY_ON_NULL_GOTO(glapi, err);
-   EINA_SAFETY_ON_NULL_GOTO(glapi->evasglBindWaylandDisplay, err);
+
+   if (!glapi->evasglBindWaylandDisplay)
+     {
+        evas_gl_free(evasgl);
+        e_comp->gl = 1;
+        e_main_ts_end("\tE_Comp_Wl_GL Init Done");
+        return;
+     }
 
    cfg = evas_gl_config_new();
    EINA_SAFETY_ON_NULL_GOTO(cfg, err);
@@ -3580,7 +3587,8 @@ _e_comp_wl_gl_shutdown(void)
 {
    if (!e_comp_wl->evas_gl) return;
 
-   e_comp_wl->evas_gl->glapi->evasglUnbindWaylandDisplay(e_comp_wl->evas_gl->gl, e_comp_wl->wl.disp);
+   if (e_comp_wl->evas_gl->glapi->evasglUnbindWaylandDisplay)
+     e_comp_wl->evas_gl->glapi->evasglUnbindWaylandDisplay(e_comp_wl->evas_gl->gl, e_comp_wl->wl.disp);
 
    evas_gl_make_current(e_comp_wl->evas_gl->gl, NULL, NULL);
    evas_gl_context_destroy(e_comp_wl->evas_gl->gl, e_comp_wl->evas_gl->glctx);
index 9d077c0..bbcfdb8 100644 (file)
@@ -432,37 +432,6 @@ e_hwc_ecore_evas_init(void)
 
         if (!ee)
           e_comp_gl_set(EINA_FALSE);
-        else
-          {
-             Evas_GL *evasgl = NULL;
-             Evas_GL_API *glapi = NULL;
-
-             e_main_ts_begin("\tEvas_GL New");
-             evasgl = evas_gl_new(ecore_evas_get(ee));
-             if (evasgl)
-               {
-                  glapi = evas_gl_api_get(evasgl);
-                  if (!((glapi) && (glapi->evasglBindWaylandDisplay)))
-                    {
-                       e_comp_gl_set(EINA_FALSE);
-                       ecore_evas_free(ee);
-                       ee = NULL;
-                       e_main_ts_end("\tEvas_GL New Failed 1");
-                    }
-                  else
-                    {
-                       e_main_ts_end("\tEvas_GL New Done");
-                    }
-               }
-             else
-               {
-                  e_comp_gl_set(EINA_FALSE);
-                  ecore_evas_free(ee);
-                  ee = NULL;
-                  e_main_ts_end("\tEvas_GL New Failed 2");
-               }
-             evas_gl_free(evasgl);
-          }
      }
 
    /* fallback to framebuffer drm (non-accel) */