From f68e229cae2bc6da086b8392275fef06efb2aeec Mon Sep 17 00:00:00 2001 From: Richard Wilson Date: Wed, 17 Mar 2004 21:05:55 +0000 Subject: [project @ 2004-03-17 21:05:55 by rjw] Added basic framework for animation. svn path=/import/netsurf/; revision=632 --- riscos/gif.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/riscos/gif.h b/riscos/gif.h index c0f467bda..107ceaed1 100644 --- a/riscos/gif.h +++ b/riscos/gif.h @@ -3,6 +3,7 @@ * Licensed under the GNU General Public License, * http://www.opensource.org/licenses/gpl-license * Copyright 2003 Philip Pemberton + * Copyright 2004 Richard Wilson */ #ifndef _NETSURF_RISCOS_GIF_H_ @@ -14,16 +15,58 @@ struct content; struct content_gif_data { unsigned long buffer_pos; + + /* The sprite area containing the 8bpp frames. + */ osspriteop_area *sprite_area; + + /* The sprite image of the current 8bpp frame + */ char *sprite_image; + + /* The sprite header of the current 32bpp image. + */ + osspriteop_header *buffer_header; + + /** The current frame number of the GIF to display, [0...(max-1)] + */ + unsigned int current_frame; + + /** The current frame that we hold a 32bpp version of [0...(max-1)] + */ + unsigned int expanded_frame; + + /** Whether the GIF should be animated + */ + bool animate_gif; + + /** Whether the GIF should loop + */ + bool loop_gif; + + /** The number of cs unprocessed as the next transition has + not yet occurred. + */ + unsigned int remainder_time; + + /** The total number of frames + */ + unsigned int total_frames; + + /** An array of times (in cs) for the frame transitions between each frame + */ + unsigned int *frame_transitions; + }; void nsgif_init(void); void nsgif_create(struct content *c, const char *params[]); int nsgif_convert(struct content *c, unsigned int width, unsigned int height); void nsgif_destroy(struct content *c); +int nsgif_animate(struct content *c, unsigned int advance_time); void nsgif_redraw(struct content *c, long x, long y, unsigned long width, unsigned long height, long clip_x0, long clip_y0, long clip_x1, long clip_y1, float scale); +osspriteop_header *nsgif_get_sprite_address(struct content *c, unsigned int frame); #endif -- cgit v1.2.3