summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@helixcode.com>2000-01-02 03:59:22 +0000
committerArturo Espinosa <unammx@src.gnome.org>2000-01-02 03:59:22 +0000
commit6e3522ab2c44c90da28d1064a2f56c3a7184f749 (patch)
treed240b6f7fd3baf8229fb1d9202b09fccb43786e2 /gtk
parent605c562ffb42dd00f5d67bca8776953ea6dde78d (diff)
downloadgdk-pixbuf-6e3522ab2c44c90da28d1064a2f56c3a7184f749.tar.gz
Added reference counting to animations. A web browser may want to share a
2000-01-01 Federico Mena Quintero <federico@helixcode.com> * gdk-pixbuf/gdk-pixbuf.h (GdkPixbufAnimation): Added reference counting to animations. A web browser may want to share a single copy of an animated GIF if it appears multiple times in a web page, for example. * gdk-pixbuf/gdk-pixbuf-animation.c: New file. Moved the animation functions here. (gdk_pixbuf_animation_new_from_file): Prettified. Return a NULL animation if the loader does not support multiframe loading and the single-frame load returned NULL. Check that the filename is not NULL. Updated inline documentation. (gdk_pixbuf_animation_ref): New function. (gdk_pixbuf_animation_unref): New function. Removed gdk_pixbuf_animation_destroy() in favor of reference counting. * gdk-pixbuf/gdk-pixbuf-io.c (gdk_pixbuf_new_from_file): Prettified. Made ref_count assertion more paranoid. Check that the filename is not NULL. (gdk_pixbuf_get_module): Use guchar * and guint for buffer and size, respectively. (gdk_pixbuf_new_from_xpm_data): Changed the "data" argument to const char **. * gdk-pixbuf/io-gif.c (image_load_animation): Create the animation with a reference count of 1. * gdk-pixbuf/Makefile.am (libgdk_pixbuf_la_SOURCES): Added gdk-pixbuf-animation.c. * doc/tmpl/animation.sgml: Populated. It is still missing a description of the overlay modes. * doc/gdk-pixbuf-sections.txt: Added the animation section. Moved the canvas item section to the end, as it will be moved later to gnome-libs. * doc/gdk-pixbuf.sgml: Added the animation section. * doc/Makefile.am (tmpl_sources): Added tmpl/animation.sgml.
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gdk-pixbuf-loader.c6
-rw-r--r--gtk/gdk-pixbuf-loader.h2
2 files changed, 4 insertions, 4 deletions
diff --git a/gtk/gdk-pixbuf-loader.c b/gtk/gdk-pixbuf-loader.c
index e5b81f1ee..3d2243662 100644
--- a/gtk/gdk-pixbuf-loader.c
+++ b/gtk/gdk-pixbuf-loader.c
@@ -58,7 +58,7 @@ typedef struct {
GdkPixbuf *pixbuf;
GdkPixbufAnimation *animation;
gboolean closed;
- gchar header_buf[LOADER_HEADER_SIZE];
+ guchar header_buf[LOADER_HEADER_SIZE];
gint header_buf_offset;
GdkPixbufModule *image_module;
gpointer context;
@@ -290,7 +290,7 @@ gdk_pixbuf_loader_load_module(GdkPixbufLoader *loader)
}
static int
-gdk_pixbuf_loader_eat_header_write (GdkPixbufLoader *loader, const gchar *buf, size_t count)
+gdk_pixbuf_loader_eat_header_write (GdkPixbufLoader *loader, const guchar *buf, size_t count)
{
int nbytes;
GdkPixbufLoaderPrivate *priv = loader->private;
@@ -321,7 +321,7 @@ gdk_pixbuf_loader_eat_header_write (GdkPixbufLoader *loader, const gchar *buf, s
* cannot parse the buffer.
**/
gboolean
-gdk_pixbuf_loader_write (GdkPixbufLoader *loader, const gchar *buf, size_t count)
+gdk_pixbuf_loader_write (GdkPixbufLoader *loader, const guchar *buf, size_t count)
{
GdkPixbufLoaderPrivate *priv;
diff --git a/gtk/gdk-pixbuf-loader.h b/gtk/gdk-pixbuf-loader.h
index 1ba263b57..bbab22e11 100644
--- a/gtk/gdk-pixbuf-loader.h
+++ b/gtk/gdk-pixbuf-loader.h
@@ -73,7 +73,7 @@ struct _GdkPixbufLoaderClass {
GtkType gdk_pixbuf_loader_get_type (void);
GdkPixbufLoader *gdk_pixbuf_loader_new (void);
gboolean gdk_pixbuf_loader_write (GdkPixbufLoader *loader,
- const gchar *buf,
+ const guchar *buf,
size_t count);
GdkPixbuf *gdk_pixbuf_loader_get_pixbuf (GdkPixbufLoader *loader);
GdkPixbufAnimation *gdk_pixbuf_loader_get_animation (GdkPixbufLoader *loader);