hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5e18223f67a62ad752c3aac16ed23e390a9e0fe4
commit 5e18223f67a62ad752c3aac16ed23e390a9e0fe4 Author: ChunEon Park <[email protected]> Date: Fri Jun 27 21:29:24 2014 +0900 evas/gl: improve the rendering quality. To avoid texture bleeding in the texture atlas, we adjust texture uv point as much as a half uv point. Especially, this improves the rendering quality when the image has the border area. Unless apply this patch, You might find the rendering result is different with software backened, if the image has the borders. In the software backened, the border line was clear but the gl wasn't. because the border line was interpolated so the rendering result was not the one we expected. @fix --- src/modules/evas/engines/gl_common/evas_gl_context.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c b/src/modules/evas/engines/gl_common/evas_gl_context.c index 1f4db94..09c3304 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_context.c +++ b/src/modules/evas/engines/gl_common/evas_gl_context.c @@ -1857,6 +1857,19 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc, ty2 = ((double)(offsety) + sy + sh) / (double)pt->h; } + /* To avoid texture bleeding in the texture atlas, + we adjust texture uv point as much as a half uv point. + Especially, This improves the rendering quality when the image has the + border area. */ + if (smooth) + { + GLfloat txhu, txhv; //texture uv half point + txhu = (0.5f * (tx2 - tx1)) / (GLfloat) sw; + txhv = (0.5f * (ty2 - ty1)) / (GLfloat) sh; + tx1 += txhu; tx2 -= txhu; + ty1 += txhv; ty2 -= txhv; + } + PUSH_VERTEX(pn, x , y , 0); PUSH_VERTEX(pn, x + w, y , 0); PUSH_VERTEX(pn, x , y + h, 0); --
