check glapi better and report errors sensibly if it fails init
This commit is contained in:
parent
1c225c082d
commit
0bd602b7ed
|
@ -2959,6 +2959,7 @@ e_comp_wl_query_dmabuf_formats(int max_formats, int *formats, int *num_formats)
|
||||||
{
|
{
|
||||||
*num_formats = 0;
|
*num_formats = 0;
|
||||||
#if EVAS_GL_API_VERSION >= 7
|
#if EVAS_GL_API_VERSION >= 7
|
||||||
|
if (!e_comp_wl->wl.glapi) return EINA_FALSE;
|
||||||
if (!e_comp_wl->wl.glapi->evasglQueryDmaBufFormats) return EINA_FALSE;
|
if (!e_comp_wl->wl.glapi->evasglQueryDmaBufFormats) return EINA_FALSE;
|
||||||
return e_comp_wl->wl.glapi->evasglQueryDmaBufFormats(e_comp_wl->wl.gl, max_formats, formats, num_formats);
|
return e_comp_wl->wl.glapi->evasglQueryDmaBufFormats(e_comp_wl->wl.gl, max_formats, formats, num_formats);
|
||||||
#else
|
#else
|
||||||
|
@ -2971,6 +2972,7 @@ e_comp_wl_query_dmabuf_modifiers(int format, int max_modifiers, uint64_t *modifi
|
||||||
{
|
{
|
||||||
*num_modifiers = 0;
|
*num_modifiers = 0;
|
||||||
#if EVAS_GL_API_VERSION >= 7
|
#if EVAS_GL_API_VERSION >= 7
|
||||||
|
if (!e_comp_wl->wl.glapi) return EINA_FALSE;
|
||||||
if (!e_comp_wl->wl.glapi->evasglQueryDmaBufModifiers) return EINA_FALSE;
|
if (!e_comp_wl->wl.glapi->evasglQueryDmaBufModifiers) return EINA_FALSE;
|
||||||
return e_comp_wl->wl.glapi->evasglQueryDmaBufModifiers(e_comp_wl->wl.gl, format, max_modifiers, modifiers, external_only, num_modifiers);
|
return e_comp_wl->wl.glapi->evasglQueryDmaBufModifiers(e_comp_wl->wl.gl, format, max_modifiers, modifiers, external_only, num_modifiers);
|
||||||
#else
|
#else
|
||||||
|
@ -2991,12 +2993,19 @@ _e_comp_wl_gl_init(void)
|
||||||
if (!e_comp_wl->wl.glsfc) goto end;
|
if (!e_comp_wl->wl.glsfc) goto end;
|
||||||
if (!evas_gl_make_current(e_comp_wl->wl.gl, e_comp_wl->wl.glsfc, e_comp_wl->wl.glctx)) goto end;
|
if (!evas_gl_make_current(e_comp_wl->wl.gl, e_comp_wl->wl.glsfc, e_comp_wl->wl.glctx)) goto end;
|
||||||
e_comp_wl->wl.glapi = evas_gl_context_api_get(e_comp_wl->wl.gl, e_comp_wl->wl.glctx);
|
e_comp_wl->wl.glapi = evas_gl_context_api_get(e_comp_wl->wl.gl, e_comp_wl->wl.glctx);
|
||||||
if (e_comp_wl->wl.glapi->evasglBindWaylandDisplay)
|
if (e_comp_wl->wl.glapi)
|
||||||
e_comp->gl = e_comp_wl->wl.glapi->evasglBindWaylandDisplay(e_comp_wl->wl.gl, e_comp_wl->wl.disp);
|
|
||||||
if (e_comp->gl)
|
|
||||||
{
|
{
|
||||||
e_util_env_set("ELM_ACCEL", "gl");
|
if (e_comp_wl->wl.glapi->evasglBindWaylandDisplay)
|
||||||
return;
|
e_comp->gl = e_comp_wl->wl.glapi->evasglBindWaylandDisplay(e_comp_wl->wl.gl, e_comp_wl->wl.disp);
|
||||||
|
if (e_comp->gl)
|
||||||
|
{
|
||||||
|
e_util_env_set("ELM_ACCEL", "gl");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ERR("Cannot get glapi. Is osmesa installed?");
|
||||||
}
|
}
|
||||||
end:
|
end:
|
||||||
_e_comp_wl_gl_shutdown();
|
_e_comp_wl_gl_shutdown();
|
||||||
|
|
|
@ -591,12 +591,13 @@ e_pixmap_refresh(E_Pixmap *cp)
|
||||||
format = wl_shm_buffer_get_format(buffer->shm_buffer);
|
format = wl_shm_buffer_get_format(buffer->shm_buffer);
|
||||||
else if (buffer->dmabuf_buffer)
|
else if (buffer->dmabuf_buffer)
|
||||||
format = buffer->dmabuf_buffer->attributes.format;
|
format = buffer->dmabuf_buffer->attributes.format;
|
||||||
else
|
else if (e_comp_wl->wl.glapi)
|
||||||
{
|
{
|
||||||
e_comp_wl->wl.glapi->evasglQueryWaylandBuffer
|
e_comp_wl->wl.glapi->evasglQueryWaylandBuffer
|
||||||
(e_comp_wl->wl.gl, buffer->resource, EGL_TEXTURE_FORMAT,
|
(e_comp_wl->wl.gl, buffer->resource, EGL_TEXTURE_FORMAT,
|
||||||
&format);
|
&format);
|
||||||
}
|
}
|
||||||
|
else return EINA_FALSE;
|
||||||
|
|
||||||
switch (format)
|
switch (format)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue