diff options
author | Owen Taylor <otaylor@redhat.com> | 2000-06-21 20:47:22 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2000-06-21 20:47:22 +0000 |
commit | 11056f564b04a956fd3428d7257c839a609fd53e (patch) | |
tree | f0ba80f60b9d46230d393b9d39ba132c518da0f0 /gdk | |
parent | 443e8c395e9f45d89f669c944366055eead5d021 (diff) | |
download | gtk+-11056f564b04a956fd3428d7257c839a609fd53e.tar.gz |
Welcome aboard, gdk-pixbuf.
Wed Jun 21 16:38:13 2000 Owen Taylor <otaylor@redhat.com>
* gdk-pixbuf/* docs/reference/gdk-pixbuf/*: Welcome aboard,
gdk-pixbuf.
* gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init):
fixups for GObject.
* gdk/Makefile.am gdk/gdkpixbuf-render.[ch] gdk/gdkpixbuf.[ch]: Bits of
gdk-pixbuf with GDK dependencies moved into GDK.
* gtk/Makefile.am gtk/gdk-pixbuf-loader.[ch]: Temporarily
move gdk-pixbuf-loader here until GObject has signals.
* demos/: New directory of demos. Move demos from
gdk-pixbuf here.
* demos/pixbuf-init.c: Small bit of code to check for
loaders in ../gdk-pixbuf/.libs/gdk-pixbuf, and if found,
set GDK_PIXBUF_MODULEDIR appropriately.
* gdk/gdkcompat.h: Remove GDK_DRAWABLE_PIXMAP compat
define which no longer makes sense.
Diffstat (limited to 'gdk')
-rw-r--r-- | gdk/Makefile.am | 24 | ||||
-rw-r--r-- | gdk/gdk.h | 1 | ||||
-rw-r--r-- | gdk/gdkcompat.h | 2 | ||||
-rw-r--r-- | gdk/gdkpixbuf-drawable.c | 17 | ||||
-rw-r--r-- | gdk/gdkpixbuf-render.c | 1 | ||||
-rw-r--r-- | gdk/gdkpixbuf.h | 75 |
6 files changed, 101 insertions, 19 deletions
diff --git a/gdk/Makefile.am b/gdk/Makefile.am index 7da2e99dcf..a84c494e16 100644 --- a/gdk/Makefile.am +++ b/gdk/Makefile.am @@ -9,16 +9,17 @@ EXTRA_DIST = \ makefile.cygwin \ makefile.msc -common_includes = @STRIP_BEGIN@ \ - -DG_LOG_DOMAIN=\"Gdk\" \ - -I$(top_srcdir) \ - -I$(top_builddir)/gdk \ - @GTK_DEBUG_FLAGS@ \ - @GTK_XIM_FLAGS@ \ - @GTK_LOCALE_FLAGS@ \ - @PANGO_CFLAGS@ \ - @GLIB_CFLAGS@ \ - @more_cflags@ \ +common_includes = @STRIP_BEGIN@ \ + -DG_LOG_DOMAIN=\"Gdk\" \ + -I$(top_srcdir) \ + -I$(top_builddir)/gdk \ + -I$(top_srcdir)/gdk-pixbuf \ + @GTK_DEBUG_FLAGS@ \ + @GTK_XIM_FLAGS@ \ + @GTK_LOCALE_FLAGS@ \ + @PANGO_CFLAGS@ \ + @GLIB_CFLAGS@ \ + @more_cflags@ \ @STRIP_END@ INCLUDES = $(common_includes) @@ -65,6 +66,7 @@ gdk_public_h_sources = @STRIP_BEGIN@ \ gdkimage.h \ gdkinput.h \ gdkpango.h \ + gdkpixbuf.h \ gdkpixmap.h \ gdkprivate.h \ gdkproperty.h \ @@ -89,6 +91,8 @@ gdk_c_sources = @STRIP_BEGIN@ \ gdkimage.c \ gdkinternals.h \ gdkpango.c \ + gdkpixbuf-drawable.c \ + gdkpixbuf-render.c \ gdkpixmap.c \ gdkpoly-generic.h \ gdkpolyreg-generic.c \ @@ -39,6 +39,7 @@ #include <gdk/gdkimage.h> #include <gdk/gdkinput.h> #include <gdk/gdkpango.h> +#include <gdk/gdkpixbuf.h> #include <gdk/gdkpixmap.h> #include <gdk/gdkproperty.h> #include <gdk/gdkregion.h> diff --git a/gdk/gdkcompat.h b/gdk/gdkcompat.h index 742f0082d1..03f692d67c 100644 --- a/gdk/gdkcompat.h +++ b/gdk/gdkcompat.h @@ -35,8 +35,6 @@ extern "C" { #define gdk_cursor_destroy gdk_cursor_unref -#define GDK_WINDOW_PIXMAP GDK_DRAWABLE_PIXMAP - #endif /* GDK_DISABLE_COMPAT_H */ #ifdef __cplusplus diff --git a/gdk/gdkpixbuf-drawable.c b/gdk/gdkpixbuf-drawable.c index 39a85d9a59..955a8f5c5d 100644 --- a/gdk/gdkpixbuf-drawable.c +++ b/gdk/gdkpixbuf-drawable.c @@ -26,6 +26,12 @@ #include <config.h> #include <stdio.h> #include <string.h> +#include "gdk.h" /* For gdk_screen_width/gdk_screen_height */ +#include "gdkcolor.h" +#include "gdkimage.h" +#include "gdkvisual.h" +#include "gdkwindow.h" +#include "gdkpixbuf.h" #include "gdk-pixbuf-private.h" #if (G_BYTE_ORDER == G_LITTLE_ENDIAN) @@ -1082,7 +1088,6 @@ gdk_pixbuf_get_from_drawable (GdkPixbuf *dest, int dest_x, int dest_y, int width, int height) { - GdkWindowType window_type; int src_width, src_height; GdkImage *image; int rowstride, bpp, alpha; @@ -1091,9 +1096,7 @@ gdk_pixbuf_get_from_drawable (GdkPixbuf *dest, g_return_val_if_fail (src != NULL, NULL); - window_type = gdk_window_get_type (src); - - if (window_type == GDK_WINDOW_PIXMAP) + if (GDK_IS_PIXMAP (src)) g_return_val_if_fail (cmap != NULL, NULL); else /* FIXME: this is not perfect, since is_viewable() only tests @@ -1113,7 +1116,7 @@ gdk_pixbuf_get_from_drawable (GdkPixbuf *dest, /* Coordinate sanity checks */ - gdk_window_get_size (src, &src_width, &src_height); + gdk_drawable_get_size (src, &src_width, &src_height); g_return_val_if_fail (src_x >= 0 && src_y >= 0, NULL); g_return_val_if_fail (src_x + width <= src_width && src_y + height <= src_height, NULL); @@ -1124,7 +1127,7 @@ gdk_pixbuf_get_from_drawable (GdkPixbuf *dest, g_return_val_if_fail (dest_y + height <= dest->height, NULL); } - if (window_type != GDK_WINDOW_PIXMAP) { + if (!GDK_IS_PIXMAP (src)) { int ret; int src_xorigin, src_yorigin; int screen_width, screen_height; @@ -1158,7 +1161,7 @@ gdk_pixbuf_get_from_drawable (GdkPixbuf *dest, } /* Get the colormap if needed */ - if (window_type != GDK_WINDOW_PIXMAP) + if (!GDK_IS_PIXMAP (src)) cmap = gdk_window_get_colormap (src); alpha = dest->has_alpha; diff --git a/gdk/gdkpixbuf-render.c b/gdk/gdkpixbuf-render.c index 706d43b595..0d47ac0cd3 100644 --- a/gdk/gdkpixbuf-render.c +++ b/gdk/gdkpixbuf-render.c @@ -23,6 +23,7 @@ #include <config.h> #include <gdk/gdk.h> #include "gdk-pixbuf-private.h" +#include "gdkpixbuf.h" diff --git a/gdk/gdkpixbuf.h b/gdk/gdkpixbuf.h new file mode 100644 index 0000000000..271e9931d6 --- /dev/null +++ b/gdk/gdkpixbuf.h @@ -0,0 +1,75 @@ +#ifndef __GDK_PIXBUF_H__ +#define __GDK_PIXBUF_H__ + +#include <gdk/gdktypes.h> +#include <gdk/gdkrgb.h> +#include <gdk-pixbuf/gdk-pixbuf.h> + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* Rendering to a drawable */ + +/* Alpha compositing mode */ +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); +void gdk_pixbuf_render_pixmap_and_mask (GdkPixbuf *pixbuf, + GdkPixmap **pixmap_return, + GdkBitmap **mask_return, + int alpha_threshold); + +/* 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); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif __GDK_PIXBUF_H__ |