Evas gl: Fix upload of RGB+A textures [INCOMPLETE]

The textures have duplicated borders, take them into account.
This commit is contained in:
Jean-Philippe Andre 2014-07-10 12:01:23 +09:00
parent 24f38eaf6d
commit 7512a54954
2 changed files with 14 additions and 8 deletions

View File

@ -2353,15 +2353,16 @@ evas_gl_common_context_rgb_a_pair_push(Evas_Engine_GL_Context *gc,
gc->pipe[pn].array.num += 6;
array_alloc(gc, pn);
tx1 = (sx) / (double)tex->pt->w;
ty1 = (sy) / (double)tex->pt->h;
tx2 = (sx + sw) / (double)tex->pt->w;
ty2 = (sy + sh) / (double)tex->pt->h;
// FIXME: pt and pta could have different x,y
tx1 = (tex->x + sx) / (double)tex->pt->w;
ty1 = (tex->y + sy) / (double)tex->pt->h;
tx2 = (tex->x + sx + sw) / (double)tex->pt->w;
ty2 = (tex->y + sy + sh) / (double)tex->pt->h;
t2x1 = sx / (double)tex->pta->w;
t2y1 = sy / (double)tex->pta->h;
t2x2 = (sx + sw) / (double)tex->pta->w;
t2y2 = (sy + sh) / (double)tex->pta->h;
t2x1 = (tex->x + sx) / (double)tex->pta->w;
t2y1 = (tex->y + sy) / (double)tex->pta->h;
t2x2 = (tex->x + sx + sw) / (double)tex->pta->w;
t2y2 = (tex->y + sy + sh) / (double)tex->pta->h;
PUSH_VERTEX(pn, x , y , 0);
PUSH_VERTEX(pn, x + w, y , 0);

View File

@ -1488,6 +1488,11 @@ evas_gl_common_texture_rgb_a_pair_new(Evas_Engine_GL_Context *gc,
tex = evas_gl_common_texture_alloc(gc, w, h, EINA_TRUE);
if (!tex) return NULL;
w += im->cache_entry.borders.l + im->cache_entry.borders.r;
h += im->cache_entry.borders.t + im->cache_entry.borders.b;
tex->x = im->cache_entry.borders.l;
tex->y = im->cache_entry.borders.t;
// Allocate RGB texture normally - as a 'whole'
tex->pt = _pool_tex_new(gc, w, h,
*matching_format[lformat].intformat,