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);
{
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);
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) */