diff options
author | Richard Wilson <rjw@netsurf-browser.org> | 2004-05-09 16:12:24 +0000 |
---|---|---|
committer | Richard Wilson <rjw@netsurf-browser.org> | 2004-05-09 16:12:24 +0000 |
commit | f29ad7e2662ff12d2c07c261c5c4e77ce0ac87c5 (patch) | |
tree | 82e798a6fb12fb91f0a9b318267620ab30ffe192 /riscos/gifread.h | |
parent | 29340cf8c8e2fe2f0fe8155e45940da29c37b79e (diff) | |
download | netsurf-f29ad7e2662ff12d2c07c261c5c4e77ce0ac87c5.tar.gz netsurf-f29ad7e2662ff12d2c07c261c5c4e77ce0ac87c5.tar.bz2 |
[project @ 2004-05-09 16:12:24 by rjw]
Improved GIF animation and a decoding bug fix.
svn path=/import/netsurf/; revision=845
Diffstat (limited to 'riscos/gifread.h')
-rw-r--r-- | riscos/gifread.h | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/riscos/gifread.h b/riscos/gifread.h index 391946b01..b1cb9ee74 100644 --- a/riscos/gifread.h +++ b/riscos/gifread.h @@ -5,6 +5,10 @@ * Copyright 2004 Richard Wilson <not_ginger_matt@sourceforge.net> */ +/** \file + * Progressive animated GIF file decoding (interface). + */ + #ifndef _NETSURF_RISCOS_GIFREAD_H_ #define _NETSURF_RISCOS_GIFREAD_H_ @@ -28,6 +32,25 @@ */ #define GIF_MAX_LZW 12 +/* The GIF frame dats +*/ +typedef struct gif_frame { + /* Frame data + */ + unsigned int frame_pointer; + unsigned int frame_delay; + + /* Redraw characteristics + */ + unsigned int redraw_required; + unsigned int redraw_x; + unsigned int redraw_y; + unsigned int redraw_width; + unsigned int redraw_height; + +} gif_frame; + + /* A simple hold-all for our GIF data */ typedef struct gif_animation { @@ -42,13 +65,12 @@ typedef struct gif_animation { unsigned int global_colours; unsigned int frame_holders; unsigned int colour_table_size; - unsigned int *frame_pointers; /* Animation data */ unsigned int decoded_frame; - unsigned int loop_count; - unsigned int *frame_delays; + int loop_count; + gif_frame *frames; /* Decoded GIF data */ @@ -63,7 +85,6 @@ typedef struct gif_animation { /* Decoded frame data */ - unsigned int dirty_plot; // Frame needs background erasing unsigned int dirty_frame; // Frame needs erasing before next osspriteop_header *frame_image; } gif_animation; |