diff options
author | Federico Mena Quintero <federico@helixcode.com> | 2000-01-02 03:59:22 +0000 |
---|---|---|
committer | Arturo Espinosa <unammx@src.gnome.org> | 2000-01-02 03:59:22 +0000 |
commit | 6e3522ab2c44c90da28d1064a2f56c3a7184f749 (patch) | |
tree | d240b6f7fd3baf8229fb1d9202b09fccb43786e2 /gdk-pixbuf/gdk-pixbuf-io.h | |
parent | 605c562ffb42dd00f5d67bca8776953ea6dde78d (diff) | |
download | gtk+-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 'gdk-pixbuf/gdk-pixbuf-io.h')
-rw-r--r-- | gdk-pixbuf/gdk-pixbuf-io.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/gdk-pixbuf/gdk-pixbuf-io.h b/gdk-pixbuf/gdk-pixbuf-io.h index 4aa9ed35eb..966768f1a5 100644 --- a/gdk-pixbuf/gdk-pixbuf-io.h +++ b/gdk-pixbuf/gdk-pixbuf-io.h @@ -38,7 +38,9 @@ extern "C" { typedef void (* ModulePreparedNotifyFunc) (GdkPixbuf *pixbuf, gpointer user_data); -typedef void (* ModuleUpdatedNotifyFunc) (GdkPixbuf *pixbuf, gpointer user_data, guint x, guint y, guint width, guint height); +typedef void (* ModuleUpdatedNotifyFunc) (GdkPixbuf *pixbuf, gpointer user_data, + guint x, guint y, + guint width, guint height); typedef struct _GdkPixbufModule GdkPixbufModule; struct _GdkPixbufModule { @@ -46,22 +48,23 @@ struct _GdkPixbufModule { gboolean (* format_check) (guchar *buffer, int size); GModule *module; GdkPixbuf *(* load) (FILE *f); - GdkPixbuf *(* load_xpm_data) (const gchar **data); + GdkPixbuf *(* load_xpm_data) (const char **data); /* Incremental loading */ - gpointer (* begin_load) (ModulePreparedNotifyFunc prepare_func, ModuleUpdatedNotifyFunc update_func, gpointer user_data); - void (* stop_load) (gpointer context); - gboolean (* load_increment)(gpointer context, const gchar *buf, guint size); + + gpointer (* begin_load) (ModulePreparedNotifyFunc prepare_func, + ModuleUpdatedNotifyFunc update_func, + gpointer user_data); + void (* stop_load) (gpointer context); + gboolean (* load_increment) (gpointer context, const guchar *buf, guint size); /* Animation loading */ GdkPixbufAnimation *(* load_animation) (FILE *f); }; -GdkPixbufModule *gdk_pixbuf_get_module (gchar *buffer, - gint size); -void gdk_pixbuf_load_module (GdkPixbufModule *image_module); - +GdkPixbufModule *gdk_pixbuf_get_module (guchar *buffer, guint size); +void gdk_pixbuf_load_module (GdkPixbufModule *image_module); |