From 4df83e1c50b60aa8e0d4334eeffebfe8c3a280a3 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 20 Jun 2004 05:11:57 +0000 Subject: [PATCH] Header file reorganization. (#51999) --- gdk-pixbuf/ChangeLog | 14 ++ gdk-pixbuf/Makefile.am | 2 + gdk-pixbuf/gdk-pixbuf-animation.h | 48 ++++- gdk-pixbuf/gdk-pixbuf-core.h | 224 ++++++++++++++++++++ gdk-pixbuf/gdk-pixbuf-io.h | 20 +- gdk-pixbuf/gdk-pixbuf-loader.h | 6 + gdk-pixbuf/gdk-pixbuf-transform.h | 104 ++++++++++ gdk-pixbuf/gdk-pixbuf.h | 325 +----------------------------- 8 files changed, 417 insertions(+), 326 deletions(-) create mode 100644 gdk-pixbuf/gdk-pixbuf-core.h create mode 100644 gdk-pixbuf/gdk-pixbuf-transform.h diff --git a/gdk-pixbuf/ChangeLog b/gdk-pixbuf/ChangeLog index d8b1092974..81497c59d5 100644 --- a/gdk-pixbuf/ChangeLog +++ b/gdk-pixbuf/ChangeLog @@ -1,3 +1,17 @@ +Sun Jun 20 01:06:48 2004 Matthias Clasen + + Header reorganization. (#51999, Jeff Franks, reorganization + proposed by Havoc Pennington) + + * gdk-pixbuf.h: This is now an include-only header, and the only + one which applications should directly use. + + * gdk-pixbuf-animation.h: Add animation api from gdk-pixbuf.h. + * gdk-pixbuf-io.h: Add io api from gdk-pixbuf.h. + * gdk-pixbuf-loader.h: Add loader api from gdk-pixbuf.h. + * gdk-pixbuf-transform.h: New header. + * gdk-pixbuf-core.h: New header. + Sat Jun 19 01:44:12 2004 Matthias Clasen * gdk-pixbuf-scale.c (gdk_pixbuf_composite): Add a figure which diff --git a/gdk-pixbuf/Makefile.am b/gdk-pixbuf/Makefile.am index 562a53e40b..bddb3061a9 100644 --- a/gdk-pixbuf/Makefile.am +++ b/gdk-pixbuf/Makefile.am @@ -311,6 +311,8 @@ libgdk_pixbuf_2_0_la_DEPENDENCIES = pixops/libpixops.la $(builtin_objs) $(gdk_pi gdk_pixbuf_headers = \ gdk-pixbuf.h \ + gdk-pixbuf-core.h \ + gdk-pixbuf-transform.h \ gdk-pixbuf-io.h \ gdk-pixbuf-animation.h \ gdk-pixbuf-loader.h diff --git a/gdk-pixbuf/gdk-pixbuf-animation.h b/gdk-pixbuf/gdk-pixbuf-animation.h index d5f0bd14bc..bebe819900 100644 --- a/gdk-pixbuf/gdk-pixbuf-animation.h +++ b/gdk-pixbuf/gdk-pixbuf-animation.h @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */ -/* GdkPixbuf library - Private declarations +/* GdkPixbuf library - Animation support * * Copyright (C) 1999 The Free Software Foundation * @@ -27,10 +27,50 @@ #ifndef GDK_PIXBUF_ANIMATION_H #define GDK_PIXBUF_ANIMATION_H -#include "gdk-pixbuf/gdk-pixbuf.h" +#include +#include +#include G_BEGIN_DECLS +/* Animation support */ + +typedef struct _GdkPixbufAnimation GdkPixbufAnimation; +typedef struct _GdkPixbufAnimationIter GdkPixbufAnimationIter; + +#define GDK_TYPE_PIXBUF_ANIMATION (gdk_pixbuf_animation_get_type ()) +#define GDK_PIXBUF_ANIMATION(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_PIXBUF_ANIMATION, GdkPixbufAnimation)) +#define GDK_IS_PIXBUF_ANIMATION(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF_ANIMATION)) + +#define GDK_TYPE_PIXBUF_ANIMATION_ITER (gdk_pixbuf_animation_iter_get_type ()) +#define GDK_PIXBUF_ANIMATION_ITER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_PIXBUF_ANIMATION_ITER, GdkPixbufAnimationIter)) +#define GDK_IS_PIXBUF_ANIMATION_ITER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF_ANIMATION_ITER)) + +GType gdk_pixbuf_animation_get_type (void) G_GNUC_CONST; + +GdkPixbufAnimation *gdk_pixbuf_animation_new_from_file (const char *filename, + GError **error); + +#ifndef GDK_PIXBUF_DISABLE_DEPRECATED +GdkPixbufAnimation *gdk_pixbuf_animation_ref (GdkPixbufAnimation *animation); +void gdk_pixbuf_animation_unref (GdkPixbufAnimation *animation); +#endif + +int gdk_pixbuf_animation_get_width (GdkPixbufAnimation *animation); +int gdk_pixbuf_animation_get_height (GdkPixbufAnimation *animation); +gboolean gdk_pixbuf_animation_is_static_image (GdkPixbufAnimation *animation); +GdkPixbuf *gdk_pixbuf_animation_get_static_image (GdkPixbufAnimation *animation); + +GdkPixbufAnimationIter *gdk_pixbuf_animation_get_iter (GdkPixbufAnimation *animation, + const GTimeVal *start_time); +GType gdk_pixbuf_animation_iter_get_type (void) G_GNUC_CONST; +int gdk_pixbuf_animation_iter_get_delay_time (GdkPixbufAnimationIter *iter); +GdkPixbuf *gdk_pixbuf_animation_iter_get_pixbuf (GdkPixbufAnimationIter *iter); +gboolean gdk_pixbuf_animation_iter_on_currently_loading_frame (GdkPixbufAnimationIter *iter); +gboolean gdk_pixbuf_animation_iter_advance (GdkPixbufAnimationIter *iter, + const GTimeVal *current_time); + + #ifdef GDK_PIXBUF_ENABLE_BACKEND @@ -87,9 +127,9 @@ struct _GdkPixbufAnimationIterClass { GdkPixbuf* (*get_pixbuf) (GdkPixbufAnimationIter *iter); - gboolean (*on_currently_loading_frame) (GdkPixbufAnimationIter *iter); + gboolean (*on_currently_loading_frame) (GdkPixbufAnimationIter *iter); - gboolean (*advance) (GdkPixbufAnimationIter *iter, + gboolean (*advance) (GdkPixbufAnimationIter *iter, const GTimeVal *current_time); }; diff --git a/gdk-pixbuf/gdk-pixbuf-core.h b/gdk-pixbuf/gdk-pixbuf-core.h new file mode 100644 index 0000000000..3110a62380 --- /dev/null +++ b/gdk-pixbuf/gdk-pixbuf-core.h @@ -0,0 +1,224 @@ +/* GdkPixbuf library - GdkPixbuf data structure + * + * Copyright (C) 2003 The Free Software Foundation + * + * Authors: Mark Crichton + * Miguel de Icaza + * Federico Mena-Quintero + * Havoc Pennington + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef GDK_PIXBUF_CORE_H +#define GDK_PIXBUF_CORE_H + +#include +#include + +G_BEGIN_DECLS + +/* Alpha compositing mode */ +typedef enum +{ + GDK_PIXBUF_ALPHA_BILEVEL, + GDK_PIXBUF_ALPHA_FULL +} GdkPixbufAlphaMode; + +/* Color spaces; right now only RGB is supported. + * Note that these values are encoded in inline pixbufs + * as ints, so don't reorder them + */ +typedef enum { + GDK_COLORSPACE_RGB +} GdkColorspace; + +/* All of these are opaque structures */ +typedef struct _GdkPixbuf GdkPixbuf; + +#define GDK_TYPE_PIXBUF (gdk_pixbuf_get_type ()) +#define GDK_PIXBUF(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_PIXBUF, GdkPixbuf)) +#define GDK_IS_PIXBUF(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF)) + + +/* Handler that must free the pixel array */ +typedef void (* GdkPixbufDestroyNotify) (guchar *pixels, gpointer data); + +#define GDK_PIXBUF_ERROR gdk_pixbuf_error_quark () + +typedef enum { + /* image data hosed */ + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + /* no mem to load image */ + GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY, + /* bad option passed to save routine */ + GDK_PIXBUF_ERROR_BAD_OPTION, + /* unsupported image type (sort of an ENOSYS) */ + GDK_PIXBUF_ERROR_UNKNOWN_TYPE, + /* unsupported operation (load, save) for image type */ + GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION, + GDK_PIXBUF_ERROR_FAILED +} GdkPixbufError; + +GQuark gdk_pixbuf_error_quark (void) G_GNUC_CONST; + + + +GType gdk_pixbuf_get_type (void) G_GNUC_CONST; + +/* Reference counting */ + +#ifndef GDK_PIXBUF_DISABLE_DEPRECATED +GdkPixbuf *gdk_pixbuf_ref (GdkPixbuf *pixbuf); +void gdk_pixbuf_unref (GdkPixbuf *pixbuf); +#endif + +/* GdkPixbuf accessors */ + +GdkColorspace gdk_pixbuf_get_colorspace (const GdkPixbuf *pixbuf); +int gdk_pixbuf_get_n_channels (const GdkPixbuf *pixbuf); +gboolean gdk_pixbuf_get_has_alpha (const GdkPixbuf *pixbuf); +int gdk_pixbuf_get_bits_per_sample (const GdkPixbuf *pixbuf); +guchar *gdk_pixbuf_get_pixels (const GdkPixbuf *pixbuf); +int gdk_pixbuf_get_width (const GdkPixbuf *pixbuf); +int gdk_pixbuf_get_height (const GdkPixbuf *pixbuf); +int gdk_pixbuf_get_rowstride (const GdkPixbuf *pixbuf); + + + +/* Create a blank pixbuf with an optimal rowstride and a new buffer */ +GdkPixbuf *gdk_pixbuf_new (GdkColorspace colorspace, gboolean has_alpha, int bits_per_sample, + int width, int height); + +/* Copy a pixbuf */ + +GdkPixbuf *gdk_pixbuf_copy (const GdkPixbuf *pixbuf); + +/* Create a pixbuf which points to the pixels of another pixbuf */ +GdkPixbuf *gdk_pixbuf_new_subpixbuf (GdkPixbuf *src_pixbuf, + int src_x, + int src_y, + int width, + int height); + +/* Simple loading */ + +GdkPixbuf *gdk_pixbuf_new_from_file (const char *filename, + GError **error); +GdkPixbuf *gdk_pixbuf_new_from_file_at_size (const char *filename, + int width, + int height, + GError **error); + +GdkPixbuf *gdk_pixbuf_new_from_data (const guchar *data, + GdkColorspace colorspace, + gboolean has_alpha, + int bits_per_sample, + int width, int height, + int rowstride, + GdkPixbufDestroyNotify destroy_fn, + gpointer destroy_fn_data); + +GdkPixbuf *gdk_pixbuf_new_from_xpm_data (const char **data); +GdkPixbuf* gdk_pixbuf_new_from_inline (gint data_length, + const guint8 *data, + gboolean copy_pixels, + GError **error); + +/* Mutations */ +void gdk_pixbuf_fill (GdkPixbuf *pixbuf, + guint32 pixel); + +/* Saving */ + +gboolean gdk_pixbuf_save (GdkPixbuf *pixbuf, + const char *filename, + const char *type, + GError **error, + ...); + +gboolean gdk_pixbuf_savev (GdkPixbuf *pixbuf, + const char *filename, + const char *type, + char **option_keys, + char **option_values, + GError **error); + +/* Saving to a callback function */ + +typedef gboolean (*GdkPixbufSaveFunc) (const gchar *buf, + gsize count, + GError **error, + gpointer data); + +gboolean gdk_pixbuf_save_to_callback (GdkPixbuf *pixbuf, + GdkPixbufSaveFunc save_func, + gpointer user_data, + const char *type, + GError **error, + ...); + +gboolean gdk_pixbuf_save_to_callbackv (GdkPixbuf *pixbuf, + GdkPixbufSaveFunc save_func, + gpointer user_data, + const char *type, + char **option_keys, + char **option_values, + GError **error); + +/* Saving into a newly allocated char array */ + +gboolean gdk_pixbuf_save_to_buffer (GdkPixbuf *pixbuf, + gchar **buffer, + gsize *buffer_size, + const char *type, + GError **error, + ...); + +gboolean gdk_pixbuf_save_to_bufferv (GdkPixbuf *pixbuf, + gchar **buffer, + gsize *buffer_size, + const char *type, + char **option_keys, + char **option_values, + GError **error); + +/* Adding an alpha channel */ +GdkPixbuf *gdk_pixbuf_add_alpha (const GdkPixbuf *pixbuf, gboolean substitute_color, + guchar r, guchar g, guchar b); + +/* Copy an area of a pixbuf onto another one */ +void gdk_pixbuf_copy_area (const GdkPixbuf *src_pixbuf, + int src_x, int src_y, + int width, int height, + GdkPixbuf *dest_pixbuf, + int dest_x, int dest_y); + +/* Brighten/darken and optionally make it pixelated-looking */ +void gdk_pixbuf_saturate_and_pixelate (const GdkPixbuf *src, + GdkPixbuf *dest, + gfloat saturation, + gboolean pixelate); + + +G_CONST_RETURN gchar * gdk_pixbuf_get_option (GdkPixbuf *pixbuf, + const gchar *key); + + +G_END_DECLS + + +#endif /* GDK_PIXBUF_CORE_H */ diff --git a/gdk-pixbuf/gdk-pixbuf-io.h b/gdk-pixbuf/gdk-pixbuf-io.h index 8c227496a5..27a17b3a4b 100644 --- a/gdk-pixbuf/gdk-pixbuf-io.h +++ b/gdk-pixbuf/gdk-pixbuf-io.h @@ -29,12 +29,28 @@ #ifndef GDK_PIXBUF_IO_H #define GDK_PIXBUF_IO_H -#include "gdk-pixbuf/gdk-pixbuf.h" -#include #include +#include +#include +#include +#include G_BEGIN_DECLS +typedef struct _GdkPixbufFormat GdkPixbufFormat; + +GSList *gdk_pixbuf_get_formats (void); +gchar *gdk_pixbuf_format_get_name (GdkPixbufFormat *format); +gchar *gdk_pixbuf_format_get_description (GdkPixbufFormat *format); +gchar **gdk_pixbuf_format_get_mime_types (GdkPixbufFormat *format); +gchar **gdk_pixbuf_format_get_extensions (GdkPixbufFormat *format); +gboolean gdk_pixbuf_format_is_writable (GdkPixbufFormat *format); +gboolean gdk_pixbuf_format_is_scalable (GdkPixbufFormat *format); + +GdkPixbufFormat *gdk_pixbuf_get_file_info (const gchar *filename, + gint *width, + gint *height); + #ifdef GDK_PIXBUF_ENABLE_BACKEND diff --git a/gdk-pixbuf/gdk-pixbuf-loader.h b/gdk-pixbuf/gdk-pixbuf-loader.h index 743faf92d4..d9b2b7dc03 100644 --- a/gdk-pixbuf/gdk-pixbuf-loader.h +++ b/gdk-pixbuf/gdk-pixbuf-loader.h @@ -26,6 +26,12 @@ #ifndef GDK_PIXBUF_LOADER_H #define GDK_PIXBUF_LOADER_H +#include +#include +#include +#include +#include + G_BEGIN_DECLS #define GDK_TYPE_PIXBUF_LOADER (gdk_pixbuf_loader_get_type ()) diff --git a/gdk-pixbuf/gdk-pixbuf-transform.h b/gdk-pixbuf/gdk-pixbuf-transform.h new file mode 100644 index 0000000000..b6c25c9cb2 --- /dev/null +++ b/gdk-pixbuf/gdk-pixbuf-transform.h @@ -0,0 +1,104 @@ +/* GdkPixbuf library - transformations + * + * Copyright (C) 2003 The Free Software Foundation + * + * Authors: Mark Crichton + * Miguel de Icaza + * Federico Mena-Quintero + * Havoc Pennington + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef GDK_PIXBUF_TRANSFORM_H +#define GDK_PIXBUF_TRANSFORM_H + +#include +#include + + +G_BEGIN_DECLS + +/* Scaling */ + +/* Interpolation modes */ +typedef enum { + GDK_INTERP_NEAREST, + GDK_INTERP_TILES, + GDK_INTERP_BILINEAR, + GDK_INTERP_HYPER +} GdkInterpType; + +void gdk_pixbuf_scale (const GdkPixbuf *src, + GdkPixbuf *dest, + int dest_x, + int dest_y, + int dest_width, + int dest_height, + double offset_x, + double offset_y, + double scale_x, + double scale_y, + GdkInterpType interp_type); +void gdk_pixbuf_composite (const GdkPixbuf *src, + GdkPixbuf *dest, + int dest_x, + int dest_y, + int dest_width, + int dest_height, + double offset_x, + double offset_y, + double scale_x, + double scale_y, + GdkInterpType interp_type, + int overall_alpha); +void gdk_pixbuf_composite_color (const GdkPixbuf *src, + GdkPixbuf *dest, + int dest_x, + int dest_y, + int dest_width, + int dest_height, + double offset_x, + double offset_y, + double scale_x, + double scale_y, + GdkInterpType interp_type, + int overall_alpha, + int check_x, + int check_y, + int check_size, + guint32 color1, + guint32 color2); + +GdkPixbuf *gdk_pixbuf_scale_simple (const GdkPixbuf *src, + int dest_width, + int dest_height, + GdkInterpType interp_type); + +GdkPixbuf *gdk_pixbuf_composite_color_simple (const GdkPixbuf *src, + int dest_width, + int dest_height, + GdkInterpType interp_type, + int overall_alpha, + int check_size, + guint32 color1, + guint32 color2); + + +G_END_DECLS + + +#endif /* GDK_PIXBUF_TRANSFORM_H */ diff --git a/gdk-pixbuf/gdk-pixbuf.h b/gdk-pixbuf/gdk-pixbuf.h index 6edff8bcab..5827db61bb 100644 --- a/gdk-pixbuf/gdk-pixbuf.h +++ b/gdk-pixbuf/gdk-pixbuf.h @@ -30,327 +30,12 @@ #include #include -G_BEGIN_DECLS - - - -/* Alpha compositing mode */ -typedef enum -{ - GDK_PIXBUF_ALPHA_BILEVEL, - GDK_PIXBUF_ALPHA_FULL -} GdkPixbufAlphaMode; - -/* Color spaces; right now only RGB is supported. - * Note that these values are encoded in inline pixbufs - * as ints, so don't reorder them - */ -typedef enum { - GDK_COLORSPACE_RGB -} GdkColorspace; - -/* All of these are opaque structures */ -typedef struct _GdkPixbuf GdkPixbuf; -typedef struct _GdkPixbufAnimation GdkPixbufAnimation; -typedef struct _GdkPixbufAnimationIter GdkPixbufAnimationIter; - -#define GDK_TYPE_PIXBUF (gdk_pixbuf_get_type ()) -#define GDK_PIXBUF(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_PIXBUF, GdkPixbuf)) -#define GDK_IS_PIXBUF(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF)) - -#define GDK_TYPE_PIXBUF_ANIMATION (gdk_pixbuf_animation_get_type ()) -#define GDK_PIXBUF_ANIMATION(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_PIXBUF_ANIMATION, GdkPixbufAnimation)) -#define GDK_IS_PIXBUF_ANIMATION(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF_ANIMATION)) - -#define GDK_TYPE_PIXBUF_ANIMATION_ITER (gdk_pixbuf_animation_iter_get_type ()) -#define GDK_PIXBUF_ANIMATION_ITER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_PIXBUF_ANIMATION_ITER, GdkPixbufAnimationIter)) -#define GDK_IS_PIXBUF_ANIMATION_ITER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF_ANIMATION_ITER)) - -/* Handler that must free the pixel array */ -typedef void (* GdkPixbufDestroyNotify) (guchar *pixels, gpointer data); - -#define GDK_PIXBUF_ERROR gdk_pixbuf_error_quark () - -typedef enum { - /* image data hosed */ - GDK_PIXBUF_ERROR_CORRUPT_IMAGE, - /* no mem to load image */ - GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY, - /* bad option passed to save routine */ - GDK_PIXBUF_ERROR_BAD_OPTION, - /* unsupported image type (sort of an ENOSYS) */ - GDK_PIXBUF_ERROR_UNKNOWN_TYPE, - /* unsupported operation (load, save) for image type */ - GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION, - GDK_PIXBUF_ERROR_FAILED -} GdkPixbufError; - -GQuark gdk_pixbuf_error_quark (void) G_GNUC_CONST; - - - -GType gdk_pixbuf_get_type (void) G_GNUC_CONST; - -/* Reference counting */ - -#ifndef GDK_PIXBUF_DISABLE_DEPRECATED -GdkPixbuf *gdk_pixbuf_ref (GdkPixbuf *pixbuf); -void gdk_pixbuf_unref (GdkPixbuf *pixbuf); -#endif - -/* GdkPixbuf accessors */ - -GdkColorspace gdk_pixbuf_get_colorspace (const GdkPixbuf *pixbuf); -int gdk_pixbuf_get_n_channels (const GdkPixbuf *pixbuf); -gboolean gdk_pixbuf_get_has_alpha (const GdkPixbuf *pixbuf); -int gdk_pixbuf_get_bits_per_sample (const GdkPixbuf *pixbuf); -guchar *gdk_pixbuf_get_pixels (const GdkPixbuf *pixbuf); -int gdk_pixbuf_get_width (const GdkPixbuf *pixbuf); -int gdk_pixbuf_get_height (const GdkPixbuf *pixbuf); -int gdk_pixbuf_get_rowstride (const GdkPixbuf *pixbuf); - - - -/* Create a blank pixbuf with an optimal rowstride and a new buffer */ -GdkPixbuf *gdk_pixbuf_new (GdkColorspace colorspace, gboolean has_alpha, int bits_per_sample, - int width, int height); - -/* Copy a pixbuf */ - -GdkPixbuf *gdk_pixbuf_copy (const GdkPixbuf *pixbuf); - -/* Create a pixbuf which points to the pixels of another pixbuf */ -GdkPixbuf *gdk_pixbuf_new_subpixbuf (GdkPixbuf *src_pixbuf, - int src_x, - int src_y, - int width, - int height); - -/* Simple loading */ - -GdkPixbuf *gdk_pixbuf_new_from_file (const char *filename, - GError **error); - -GdkPixbuf *gdk_pixbuf_new_from_file_at_size (const char *filename, - int width, - int height, - GError **error); - -GdkPixbuf *gdk_pixbuf_new_from_data (const guchar *data, - GdkColorspace colorspace, - gboolean has_alpha, - int bits_per_sample, - int width, int height, - int rowstride, - GdkPixbufDestroyNotify destroy_fn, - gpointer destroy_fn_data); - -GdkPixbuf *gdk_pixbuf_new_from_xpm_data (const char **data); -GdkPixbuf* gdk_pixbuf_new_from_inline (gint data_length, - const guint8 *data, - gboolean copy_pixels, - GError **error); - -/* Mutations */ -void gdk_pixbuf_fill (GdkPixbuf *pixbuf, - guint32 pixel); - -/* Saving */ - -gboolean gdk_pixbuf_save (GdkPixbuf *pixbuf, - const char *filename, - const char *type, - GError **error, - ...); - -gboolean gdk_pixbuf_savev (GdkPixbuf *pixbuf, - const char *filename, - const char *type, - char **option_keys, - char **option_values, - GError **error); - -/* Saving to a callback function */ - -typedef gboolean (*GdkPixbufSaveFunc) (const gchar *buf, - gsize count, - GError **error, - gpointer data); - -gboolean gdk_pixbuf_save_to_callback (GdkPixbuf *pixbuf, - GdkPixbufSaveFunc save_func, - gpointer user_data, - const char *type, - GError **error, - ...); - -gboolean gdk_pixbuf_save_to_callbackv (GdkPixbuf *pixbuf, - GdkPixbufSaveFunc save_func, - gpointer user_data, - const char *type, - char **option_keys, - char **option_values, - GError **error); - -/* Saving into a newly allocated char array */ - -gboolean gdk_pixbuf_save_to_buffer (GdkPixbuf *pixbuf, - gchar **buffer, - gsize *buffer_size, - const char *type, - GError **error, - ...); - -gboolean gdk_pixbuf_save_to_bufferv (GdkPixbuf *pixbuf, - gchar **buffer, - gsize *buffer_size, - const char *type, - char **option_keys, - char **option_values, - GError **error); - -/* Adding an alpha channel */ -GdkPixbuf *gdk_pixbuf_add_alpha (const GdkPixbuf *pixbuf, gboolean substitute_color, - guchar r, guchar g, guchar b); - -/* Copy an area of a pixbuf onto another one */ -void gdk_pixbuf_copy_area (const GdkPixbuf *src_pixbuf, - int src_x, int src_y, - int width, int height, - GdkPixbuf *dest_pixbuf, - int dest_x, int dest_y); - -/* Brighten/darken and optionally make it pixelated-looking */ -void gdk_pixbuf_saturate_and_pixelate (const GdkPixbuf *src, - GdkPixbuf *dest, - gfloat saturation, - gboolean pixelate); - - - -/* Rendering to a drawable */ - - -/* Scaling */ - -/* Interpolation modes */ -typedef enum { - GDK_INTERP_NEAREST, - GDK_INTERP_TILES, - GDK_INTERP_BILINEAR, - GDK_INTERP_HYPER -} GdkInterpType; - -void gdk_pixbuf_scale (const GdkPixbuf *src, - GdkPixbuf *dest, - int dest_x, - int dest_y, - int dest_width, - int dest_height, - double offset_x, - double offset_y, - double scale_x, - double scale_y, - GdkInterpType interp_type); -void gdk_pixbuf_composite (const GdkPixbuf *src, - GdkPixbuf *dest, - int dest_x, - int dest_y, - int dest_width, - int dest_height, - double offset_x, - double offset_y, - double scale_x, - double scale_y, - GdkInterpType interp_type, - int overall_alpha); -void gdk_pixbuf_composite_color (const GdkPixbuf *src, - GdkPixbuf *dest, - int dest_x, - int dest_y, - int dest_width, - int dest_height, - double offset_x, - double offset_y, - double scale_x, - double scale_y, - GdkInterpType interp_type, - int overall_alpha, - int check_x, - int check_y, - int check_size, - guint32 color1, - guint32 color2); - -GdkPixbuf *gdk_pixbuf_scale_simple (const GdkPixbuf *src, - int dest_width, - int dest_height, - GdkInterpType interp_type); - -GdkPixbuf *gdk_pixbuf_composite_color_simple (const GdkPixbuf *src, - int dest_width, - int dest_height, - GdkInterpType interp_type, - int overall_alpha, - int check_size, - guint32 color1, - guint32 color2); - - - -/* Animation support */ - -GType gdk_pixbuf_animation_get_type (void) G_GNUC_CONST; - -GdkPixbufAnimation *gdk_pixbuf_animation_new_from_file (const char *filename, - GError **error); - -#ifndef GDK_PIXBUF_DISABLE_DEPRECATED -GdkPixbufAnimation *gdk_pixbuf_animation_ref (GdkPixbufAnimation *animation); -void gdk_pixbuf_animation_unref (GdkPixbufAnimation *animation); -#endif - -int gdk_pixbuf_animation_get_width (GdkPixbufAnimation *animation); -int gdk_pixbuf_animation_get_height (GdkPixbufAnimation *animation); -gboolean gdk_pixbuf_animation_is_static_image (GdkPixbufAnimation *animation); -GdkPixbuf *gdk_pixbuf_animation_get_static_image (GdkPixbufAnimation *animation); - -GdkPixbufAnimationIter *gdk_pixbuf_animation_get_iter (GdkPixbufAnimation *animation, - const GTimeVal *start_time); -GType gdk_pixbuf_animation_iter_get_type (void) G_GNUC_CONST; -int gdk_pixbuf_animation_iter_get_delay_time (GdkPixbufAnimationIter *iter); -GdkPixbuf *gdk_pixbuf_animation_iter_get_pixbuf (GdkPixbufAnimationIter *iter); -gboolean gdk_pixbuf_animation_iter_on_currently_loading_frame (GdkPixbufAnimationIter *iter); -gboolean gdk_pixbuf_animation_iter_advance (GdkPixbufAnimationIter *iter, - const GTimeVal *current_time); - - - - -G_CONST_RETURN gchar * gdk_pixbuf_get_option (GdkPixbuf *pixbuf, - const gchar *key); - - - -typedef struct _GdkPixbufFormat GdkPixbufFormat; - -GSList *gdk_pixbuf_get_formats (void); -gchar *gdk_pixbuf_format_get_name (GdkPixbufFormat *format); -gchar *gdk_pixbuf_format_get_description (GdkPixbufFormat *format); -gchar **gdk_pixbuf_format_get_mime_types (GdkPixbufFormat *format); -gchar **gdk_pixbuf_format_get_extensions (GdkPixbufFormat *format); -gboolean gdk_pixbuf_format_is_writable (GdkPixbufFormat *format); -gboolean gdk_pixbuf_format_is_scalable (GdkPixbufFormat *format); - -GdkPixbufFormat *gdk_pixbuf_get_file_info (const gchar *filename, - gint *width, - gint *height); - -G_END_DECLS - +#include +#include +#include +#include #include #include - -#endif +#endif /* GDK_PIXBUF_H */