evas: fix bug in evas gl texture.

Summary: If the pixel size of image is not 32 bit like EVAS_COLORSPACE_AGRY88,
         GL_UNPACK_ALIGNMENT have to be changed.
This commit is contained in:
Ji-Youn Park 2015-05-11 19:08:12 +09:00
parent b309a3e0f1
commit 9bf8a0e56b
1 changed files with 8 additions and 2 deletions

View File

@ -1047,7 +1047,10 @@ evas_gl_common_texture_upload(Evas_GL_Texture *tex, RGBA_Image *im, unsigned int
{
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
}
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
if ((bytes_count == 1) || (bytes_count == 2))
glPixelStorei(GL_UNPACK_ALIGNMENT, bytes_count);
else
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
// printf("tex upload %ix%i\n", im->cache_entry.w, im->cache_entry.h);
// +-+
@ -1370,7 +1373,10 @@ evas_gl_common_texture_update(Evas_GL_Texture *tex, RGBA_Image *im)
{
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
}
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
if ((bytes_count == 1) || (bytes_count == 2))
glPixelStorei(GL_UNPACK_ALIGNMENT, bytes_count);
else
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
_tex_sub_2d(tex->gc, u, tex->ty, EVAS_GL_TILE_SIZE, EVAS_GL_TILE_SIZE, fmt, tex->ptt->dataformat, out);