forked from enlightenment/efl
evas/gl_common: Enable dynamic hint set using tbm surface only when egl extension is supported
Summary: Dynamic hint set using tbm surface can only be used when EGL_TIZEN_image_native_surface extension is supported by the driver. So check for both tbm surface and egl extension.
This commit is contained in:
parent
3d97c4c5a8
commit
74e556febc
|
@ -124,6 +124,7 @@ struct _Evas_GL_Shared
|
|||
Eina_Bool tex_rect : 1;
|
||||
Eina_Bool sec_image_map : 1;
|
||||
Eina_Bool sec_tbm_surface : 1;
|
||||
Eina_Bool egl_tbm_ext : 1;
|
||||
Eina_Bool bin_program : 1;
|
||||
Eina_Bool unpack_row_length : 1;
|
||||
Eina_Bool etc1 : 1;
|
||||
|
|
|
@ -603,8 +603,6 @@ evas_gl_common_image_content_hint_set(Evas_GL_Image *im, int hint)
|
|||
if (im->content_hint == hint) return;
|
||||
im->content_hint = hint;
|
||||
if (!im->gc) return;
|
||||
if ((!im->gc->shared->info.sec_image_map)
|
||||
&& (!im->gc->shared->info.sec_tbm_surface)) return;
|
||||
if (!im->gc->shared->info.bgra) return;
|
||||
// does not handle yuv yet.
|
||||
// TODO: Check this list of cspaces
|
||||
|
@ -622,6 +620,8 @@ evas_gl_common_image_content_hint_set(Evas_GL_Image *im, int hint)
|
|||
}
|
||||
if (im->content_hint == EVAS_IMAGE_CONTENT_HINT_DYNAMIC)
|
||||
{
|
||||
if ((!im->gc->shared->info.sec_image_map) &&
|
||||
((!im->gc->shared->info.sec_tbm_surface) || (!im->gc->shared->info.egl_tbm_ext))) return;
|
||||
if (im->cs.data)
|
||||
{
|
||||
if (!im->cs.no_free) free(im->cs.data);
|
||||
|
|
|
@ -1453,6 +1453,10 @@ gl_extn_veto(Render_Engine *re)
|
|||
{
|
||||
glsym_eglSwapBuffersWithDamage = NULL;
|
||||
}
|
||||
if (strstr(str, "EGL_TIZEN_image_native_surface"))
|
||||
{
|
||||
eng_get_ob(re)->gl_context->shared->info.egl_tbm_ext = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue