mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-27 06:00:22 +00:00
c6f25c2de8
1999-12-08 Federico Mena Quintero <federico@redhat.com> * gdk-pixbuf/gdk-pixbuf-drawable.c: Fix includes. (gdk_pixbuf_get_from_drawable): Implemented the zillion sanity checks and API definition. The body needs filling in and it needs to do the Right Thing(tm) for pixmaps plus the given colormap and windows and their own colormaps. * gdk-pixbuf/gdk-pixbuf.h: Added prototype for gdk_pixbuf_get_from_drawable(). Killed gdk-pixbuf-drawable.h. * gdk-pixbuf/Makefile.am: Re-added the gdk-pixbuf-drawable sources. * doc/tmpl/from-drawables.sgml: Populated. * doc/gdk-pixbuf.sgml: Added the from-drawables section. * doc/Makefile.am (tmpl_sources): Added tmpl/from-drawables.sgml. * doc/gdk-pixbuf-sections.txt: Added a section for getting pixbufs from drawables.
141 lines
3.9 KiB
C
141 lines
3.9 KiB
C
/* GdkPixbuf library - Main header file
|
||
*
|
||
* Copyright (C) 1999 The Free Software Foundation
|
||
*
|
||
* Authors: Mark Crichton <crichton@gimp.org>
|
||
* Miguel de Icaza <miguel@gnu.org>
|
||
* Federico Mena-Quintero <federico@gimp.org>
|
||
*
|
||
* This library is free software; you can redistribute it and/or
|
||
* modify it under the terms of the GNU Library 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
|
||
* Library General Public License for more details.
|
||
*
|
||
* You should have received a copy of the GNU Library 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_H
|
||
#define GDK_PIXBUF_H
|
||
|
||
#include <libart_lgpl/art_misc.h>
|
||
#include <libart_lgpl/art_pixbuf.h>
|
||
#include <gdk/gdk.h>
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
|
||
|
||
/* GdkPixbuf structure */
|
||
|
||
typedef struct _GdkPixbuf GdkPixbuf;
|
||
|
||
struct _GdkPixbuf {
|
||
/* Reference count */
|
||
int ref_count;
|
||
|
||
/* Libart pixbuf */
|
||
ArtPixBuf *art_pixbuf;
|
||
};
|
||
|
||
|
||
|
||
/* Convenience functions */
|
||
|
||
ArtPixFormat gdk_pixbuf_get_format (GdkPixbuf *pixbuf);
|
||
int gdk_pixbuf_get_n_channels (GdkPixbuf *pixbuf);
|
||
int gdk_pixbuf_get_has_alpha (GdkPixbuf *pixbuf);
|
||
int gdk_pixbuf_get_bits_per_sample (GdkPixbuf *pixbuf);
|
||
guchar *gdk_pixbuf_get_pixels (GdkPixbuf *pixbuf);
|
||
int gdk_pixbuf_get_width (GdkPixbuf *pixbuf);
|
||
int gdk_pixbuf_get_height (GdkPixbuf *pixbuf);
|
||
int gdk_pixbuf_get_rowstride (GdkPixbuf *pixbuf);
|
||
|
||
/* Reference counting */
|
||
|
||
void gdk_pixbuf_ref (GdkPixbuf *pixbuf);
|
||
void gdk_pixbuf_unref (GdkPixbuf *pixbuf);
|
||
|
||
/* Constructors */
|
||
/* Wrap a libart pixbuf */
|
||
|
||
GdkPixbuf *gdk_pixbuf_new_from_art_pixbuf (ArtPixBuf *art_pixbuf);
|
||
|
||
/* Create a blank pixbuf with an optimal rowstride and a new buffer */
|
||
|
||
GdkPixbuf *gdk_pixbuf_new (ArtPixFormat format, gboolean has_alpha, int bits_per_sample,
|
||
int width, int height);
|
||
|
||
/* Simple loading */
|
||
|
||
GdkPixbuf *gdk_pixbuf_new_from_file (const char *filename);
|
||
GdkPixbuf *gdk_pixbuf_new_from_data (guchar *data, ArtPixFormat format, gboolean has_alpha,
|
||
int width, int height, int rowstride,
|
||
ArtDestroyNotify dfunc, gpointer dfunc_data);
|
||
GdkPixbuf *gdk_pixbuf_new_from_xpm_data (const gchar **data);
|
||
|
||
/* Adding or removing alpha */
|
||
|
||
GdkPixbuf *gdk_pixbuf_add_alpha (GdkPixbuf *pixbuf, gboolean substitute_color,
|
||
guchar r, guchar g, guchar b);
|
||
|
||
/* Rendering to a drawable */
|
||
|
||
typedef enum {
|
||
GDK_PIXBUF_ALPHA_BILEVEL,
|
||
GDK_PIXBUF_ALPHA_FULL
|
||
} GdkPixbufAlphaMode;
|
||
|
||
void gdk_pixbuf_render_threshold_alpha (GdkPixbuf *pixbuf, GdkBitmap *bitmap,
|
||
int src_x, int src_y,
|
||
int dest_x, int dest_y,
|
||
int width, int height,
|
||
int alpha_threshold);
|
||
|
||
void gdk_pixbuf_render_to_drawable (GdkPixbuf *pixbuf,
|
||
GdkDrawable *drawable, GdkGC *gc,
|
||
int src_x, int src_y,
|
||
int dest_x, int dest_y,
|
||
int width, int height,
|
||
GdkRgbDither dither,
|
||
int x_dither, int y_dither);
|
||
|
||
void gdk_pixbuf_render_to_drawable_alpha (GdkPixbuf *pixbuf, GdkDrawable *drawable,
|
||
int src_x, int src_y,
|
||
int dest_x, int dest_y,
|
||
int width, int height,
|
||
GdkPixbufAlphaMode alpha_mode,
|
||
int alpha_threshold,
|
||
GdkRgbDither dither,
|
||
int x_dither, int y_dither);
|
||
|
||
|
||
#if 0
|
||
|
||
/* Fetching a region from a drawable */
|
||
|
||
GdkPixbuf *gdk_pixbuf_get_from_drawable (GdkPixbuf *dest,
|
||
GdkDrawable *src, GdkColormap *cmap,
|
||
int src_x, int src_y,
|
||
int dest_x, int dest_y,
|
||
int width, int height);
|
||
|
||
#endif
|
||
|
||
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif
|