aboutsummaryrefslogtreecommitdiff
path: root/src/png.c
diff options
context:
space:
mode:
authorjcid <devnull@localhost>2008-01-16 01:17:20 +0100
committerjcid <devnull@localhost>2008-01-16 01:17:20 +0100
commitf09fce92f37ced2a53c96c09792906e2771f0e17 (patch)
tree6a2af7914d69e33a0ef7476e5334856e100457a7 /src/png.c
parent17e6f35cfbfa7a73e986fcd11617db12898d740f (diff)
- Added support for progressive display of progressive jpegs.
- Fixed progressive display of interlaced pngs.
Diffstat (limited to 'src/png.c')
-rw-r--r--src/png.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/png.c b/src/png.c
index 43ef5519..d6a97f56 100644
--- a/src/png.c
+++ b/src/png.c
@@ -79,6 +79,7 @@ struct _DilloPng {
uchar_t **row_pointers; /* pntr to row starts */
jmp_buf jmpbuf; /* png error processing */
int error; /* error flag */
+ png_uint_32 previous_row;
int rowbytes; /* No. bytes in image row */
short passes;
short channels; /* No. image channels */
@@ -230,6 +231,11 @@ static void
png_progressive_combine_row(png_ptr, png->row_pointers[row_num], new_row);
+ if (row_num < png->previous_row) {
+ a_Dicache_new_scan(png->Image, png->url, png->version);
+ }
+ png->previous_row = row_num;
+
switch (png->channels) {
case 3:
a_Dicache_write(png->Image, png->url, png->version,
@@ -419,6 +425,7 @@ static DilloPng *Png_new(DilloImage *Image, DilloUrl *url, int version)
png->linebuf = NULL;
png->image_data = NULL;
png->row_pointers = NULL;
+ png->previous_row = 0;
return png;
}