}
static Eina_Bool
-_e_comp_wl_buffer_native_type_get(E_Comp_Wl_Buffer *base, struct wl_resource *resource,
- E_Client *ec)
-{
- Eina_Bool res;
-
- if (!base || !resource || !ec) return EINA_FALSE;
-
- base->type = E_COMP_WL_BUFFER_TYPE_NATIVE;
- res = e_comp_wl->evas_gl->glapi->evasglQueryWaylandBuffer(e_comp_wl->evas_gl->gl,
- resource,
- EVAS_GL_WIDTH,
- &base->w);
- EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EINA_FALSE);
- res = e_comp_wl->evas_gl->glapi->evasglQueryWaylandBuffer(e_comp_wl->evas_gl->gl,
- resource,
- EVAS_GL_HEIGHT,
- &base->h);
- EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EINA_FALSE);
- res = e_comp_wl->evas_gl->glapi->evasglQueryWaylandBuffer(e_comp_wl->evas_gl->gl,
- resource,
- EVAS_GL_TEXTURE_FORMAT,
- &base->format);
- EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EINA_FALSE);
-
- return EINA_TRUE;
-}
-
-static Eina_Bool
_e_comp_wl_buffer_tbm_type_get(E_Comp_Wl_Buffer *base, struct ds_buffer *ds_buffer,
E_Client *ec)
{
{
struct wl_shm_buffer *shmbuff;
struct wl_resource *resource;
- Eina_Bool res;
resource = ds_buffer_get_resource(ds_buffer);
shmbuff = wl_shm_buffer_get(resource);
base->h = 1;
base->format = WL_SHM_FORMAT_ARGB8888;
}
- /* TODO: This option is temporarily. It will be removed later. */
- /* prefer to use native base(wl_buffer) */
- else if (e_comp->use_native_type_buffer)
+ else if (!_e_comp_wl_buffer_tbm_type_get(base, ds_buffer, ec))
{
- if (e_comp->gl)
- res = _e_comp_wl_buffer_native_type_get(base, resource, ec);
- else
- res = _e_comp_wl_buffer_tbm_type_get(base, ds_buffer, ec);
- EINA_SAFETY_ON_FALSE_GOTO(res, err);
- }
- else
- {
- res = _e_comp_wl_buffer_tbm_type_get(base, ds_buffer, ec);
- if (!res && e_comp->gl)
- res = _e_comp_wl_buffer_native_type_get(base,resource, ec);
-
- EINA_SAFETY_ON_FALSE_GOTO(res, err);
+ ERR("Invalid resource:%u", wl_resource_get_id(resource));
+ return EINA_FALSE;
}
base->resource = resource;
base, base->debug_info.owner_name, base->debug_info.owner_ptr);
return EINA_TRUE;
-
-err:
- ERR("Invalid resource:%u", wl_resource_get_id(resource));
- return EINA_FALSE;
}
static void