evas/gl - fix to render grayscale with transparency format in gl backened.

In case of png, grayscale with transparency format (transparency doesn't mean the png has alpha channel)
gl doesn't prepare that format render.
In this case, set it argb8888 to convert the data in the png loader.

@fix
This commit is contained in:
ChunEon Park 2014-06-25 21:46:49 +09:00
parent c23ed65a3c
commit d69e4fbe20
1 changed files with 7 additions and 0 deletions

View File

@ -221,6 +221,13 @@ _evas_gl_common_image(Evas_Engine_GL_Context *gc, RGBA_Image *im_im, Evas_Image_
// ETC2 is backwards compatible with ETC1 but we prefer ETC2
if (cspace == EVAS_COLORSPACE_ETC1 && gc->shared->info.etc2)
cspace = EVAS_COLORSPACE_RGB8_ETC2;
/* Current GL doesn't support grayscale with transparency
let it convert to argb8888 in loader */
if ((cspace == EVAS_COLORSPACE_GRY8) &&
im_im->cache_entry.flags.alpha)
cspace = EVAS_COLORSPACE_ARGB8888;
im_im->cache_entry.space = cspace;
}