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:
Dongyeon Kim 2015-11-11 17:06:44 +09:00
parent 3d97c4c5a8
commit 74e556febc
3 changed files with 7 additions and 2 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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
{