hermet pushed a commit to branch efl-1.12.

http://git.enlightenment.org/core/efl.git/commit/?id=596f3cc7e8afe6e8d38e0a37fe3f98f99bee4e8c

commit 596f3cc7e8afe6e8d38e0a37fe3f98f99bee4e8c
Author: ChunEon Park <her...@hermet.pe.kr>
Date:   Wed Nov 26 17:39:27 2014 +0900

    evas/map: correct last 1 pixel handling in spans.
    
    Clipper causes the different rendering result by last 1 pixel on the width.
    Because the left edge x range (0 ~ (w - 1)) and right edge x range (0  ~ w) 
is different.
    This fix won't be memory over access problem even if x span position is on 
the end of the edge.
    Because the span width(x2 - x1) will be 0, and it restuls in skipping 
drawing.
    It's hardly find the problem but you can detect the subtle rendering 
difference when some arbitrary meshes with map is
    You can compare image and rectangle map drawing for this.
    
    @fix
---
 src/lib/evas/common/evas_map_image.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib/evas/common/evas_map_image.c 
b/src/lib/evas/common/evas_map_image.c
index 01573d2..4a32839 100644
--- a/src/lib/evas/common/evas_map_image.c
+++ b/src/lib/evas/common/evas_map_image.c
@@ -281,7 +281,7 @@ _calc_spans(RGBA_Map_Point *p, Line *spans, int ystart, int 
yend, int cx, int cy
              spans[yp].span[i].col[1] = col[order[1]];
 
              //Outside of the clipper
-             if ((spans[yp].span[i].x[0] >= (cx + cw)) ||
+             if ((spans[yp].span[i].x[0] > (cx + cw)) ||
                  (spans[yp].span[i].x[1] < cx))
                spans[yp].span[i].x[0] = -1;
              else
@@ -306,7 +306,7 @@ _calc_spans(RGBA_Map_Point *p, Line *spans, int ystart, int 
yend, int cx, int cy
              spans[yp].span[i].col[1] = col[order[1]];
 
              //Outside of the clipper
-             if ((spans[yp].span[i].x[0] >= (cx + cw)) ||
+             if ((spans[yp].span[i].x[0] > (cx + cw)) ||
                  (spans[yp].span[i].x[1] < cx))
                spans[yp].span[i].x[0] = -1;
              else
@@ -327,7 +327,7 @@ _calc_spans(RGBA_Map_Point *p, Line *spans, int ystart, int 
yend, int cx, int cy
              spans[yp].span[i].col[1] = col[order[3]];
 
              //Outside of the clipper
-             if ((spans[yp].span[i].x[0] >= (cx + cw)) ||
+             if ((spans[yp].span[i].x[0] > (cx + cw)) ||
                  (spans[yp].span[i].x[1] < cx))
                spans[yp].span[i].x[0] = -1;
              else

-- 


Reply via email to