From b7d1615be7cad3bd8abad77918427d9708e0772d Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Mon, 9 Mar 2015 20:32:01 +0900 Subject: [PATCH] Evas GL texture: Fix invalid interpolation pixel The pixel on the top-right of a texture was set using an invalid offset. "luckily" this never crashed but probably could have with wide single-row images. Also, the output was not perfectly correct. --- src/modules/evas/engines/gl_common/evas_gl_texture.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_texture.c b/src/modules/evas/engines/gl_common/evas_gl_texture.c index 4f0c0b3e24..0db548538a 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_texture.c +++ b/src/modules/evas/engines/gl_common/evas_gl_texture.c @@ -1060,21 +1060,21 @@ evas_gl_common_texture_upload(Evas_GL_Texture *tex, RGBA_Image *im, unsigned int _tex_sub_2d(tex->gc, tex->x, tex->y + im->cache_entry.h, im->cache_entry.w, 1, fmt, tex->pt->dataformat, - (unsigned char *) im->image.data + (((im->cache_entry.h - 1) * im->cache_entry.w)) * bytes_count); + im->image.data8 + (((im->cache_entry.h - 1) * im->cache_entry.w)) * bytes_count); // xxx // xxx // o _tex_sub_2d(tex->gc, tex->x - 1, tex->y + im->cache_entry.h, 1, 1, fmt, tex->pt->dataformat, - (unsigned char *) im->image.data + (((im->cache_entry.h - 1) * im->cache_entry.w)) * bytes_count); + im->image.data8 + (((im->cache_entry.h - 1) * im->cache_entry.w)) * bytes_count); // xxx // xxx // o _tex_sub_2d(tex->gc, tex->x + im->cache_entry.w, tex->y + im->cache_entry.h, 1, 1, fmt, tex->pt->dataformat, - (unsigned char *) im->image.data + (((im->cache_entry.h - 1) * im->cache_entry.w) + (im->cache_entry.w - 1)) * bytes_count); + im->image.data8 + (im->cache_entry.h * im->cache_entry.w - 1) * bytes_count); //2D packing // --- // xxx @@ -1096,7 +1096,7 @@ evas_gl_common_texture_upload(Evas_GL_Texture *tex, RGBA_Image *im, unsigned int _tex_sub_2d(tex->gc, tex->x + im->cache_entry.w, tex->y - 1, 1, 1, fmt, tex->pt->dataformat, - im->image.data + (im->cache_entry.w - 1) * bytes_count); + im->image.data8 + (im->cache_entry.w - 1) * bytes_count); if (tex->gc->shared->info.unpack_row_length) { glPixelStorei(GL_UNPACK_ROW_LENGTH, im->cache_entry.w); @@ -1113,7 +1113,7 @@ evas_gl_common_texture_upload(Evas_GL_Texture *tex, RGBA_Image *im, unsigned int _tex_sub_2d(tex->gc, tex->x + im->cache_entry.w, tex->y, 1, im->cache_entry.h, fmt, tex->pt->dataformat, - (unsigned char *) im->image.data + (im->cache_entry.w - 1) * bytes_count); + im->image.data8 + (im->cache_entry.w - 1) * bytes_count); } else {