fix a small segv problem with pollies! :)

SVN revision: 3583
This commit is contained in:
Carsten Haitzler 2000-10-13 00:06:57 +00:00
parent 72f81a4c4d
commit 0af7f642be
2 changed files with 7 additions and 4 deletions

View File

@ -2903,9 +2903,9 @@ imlib_image_fill_polygon(ImlibPolygon poly)
__imlib_DirtyImage(im);
__imlib_DirtyPixmapsForImage(im);
__imlib_draw_polygon_filled(im, poly, ctxt_cliprect.x,
ctxt_cliprect.x + ctxt_cliprect.w,
ctxt_cliprect.x + ctxt_cliprect.w - 1,
ctxt_cliprect.y,
ctxt_cliprect.y + ctxt_cliprect.h,
ctxt_cliprect.y + ctxt_cliprect.h - 1,
ctxt_color.red, ctxt_color.green,
ctxt_color.blue, ctxt_color.alpha,
ctxt_operation, ctxt_anti_alias);

View File

@ -2164,7 +2164,7 @@ __imlib_draw_polygon_filled(ImlibImage * im, ImlibPoly poly, int clip_xmin,
if (poly->pointcount < 3) return;
/* if no clip is set or clip is outside image, clip it to the image */
if (clip_xmin != clip_xmax)
if (clip_xmin < clip_xmax)
{
if (clip_xmax < 0) return;
if (clip_xmin >= im->w) return;
@ -2242,6 +2242,8 @@ __imlib_draw_polygon_filled(ImlibImage * im, ImlibPoly poly, int clip_xmin,
/* current point and next point - line connecting the 2 */
pt1 = ((j + top) % poly->pointcount);
pt2 = ((j + top + 1) % poly->pointcount);
while (pt1 < 0) pt1 += poly->pointcount;
while (pt2 < 0) pt2 += poly->pointcount;
/* conveneince for 2 points */
x1 = poly->points[pt1].x;
y1 = poly->points[pt1].y;
@ -2369,7 +2371,8 @@ __imlib_draw_polygon_filled(ImlibImage * im, ImlibPoly poly, int clip_xmin,
}
else
{
span(im, i + clip_ymin, x1, x1, r, g, b, a, op);
if ((x1 <= clip_xmax) && (x1 >= clip_xmin))
span(im, i + clip_ymin, x1, x1, r, g, b, a, op);
break;
}
}