From 1bea77d7bb97c5a76fd1303fd93c4717db2c9a1b Mon Sep 17 00:00:00 2001 From: Tony Cook Date: Tue, 29 Nov 2005 09:20:31 +0000 Subject: [PATCH] - filled polygons using a complex fill with combine != 0 (none) didn't correctly handle polygons that crossed a given scanline more than once. --- Changes | 2 ++ polygon.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Changes b/Changes index 55ff57b2..d0c1d8f4 100644 --- a/Changes +++ b/Changes @@ -1189,6 +1189,8 @@ Revision history for Perl extension Imager. path (Makefile.PL). This was a later response to #16094 Resolves: http://rt.cpan.org/NoAuth/Bug.html?16094 - add --nolog command-line switch to Makefile.PL to disable logging +- filled polygons using a complex fill with combine != 0 (none) didn't + correctly handle polygons that crossed a given scanline more than once. ================================================================= diff --git a/polygon.c b/polygon.c index 5a81de51..257713ca 100644 --- a/polygon.c +++ b/polygon.c @@ -676,9 +676,9 @@ scanline_flush_cfill(i_img *im, ss_scanline *ss, int y, void *ctx) { tv = saturate(ss->line[x]); fillbuf[pos].channel[3] = fillbuf[pos].channel[3] * tv / 255; + pos++; } (state->fill->combine)(line, fillbuf, im->channels, right-left); - pos++; } else { for (x = left; x < right; ++x) { @@ -738,9 +738,9 @@ scanline_flush_cfill_f(i_img *im, ss_scanline *ss, int y, void *ctx) { tv = saturate(ss->line[x]); fillbuf[pos].channel[3] = fillbuf[pos].channel[3] * tv / 255; + pos++; } (state->fill->combinef)(line, fillbuf, im->channels, right-left); - pos++; } else { for (x = left; x < right; ++x) { -- 2.39.5