diff options
author | Federico Mena Quintero <federico@helixcode.com> | 2000-01-17 01:48:21 +0000 |
---|---|---|
committer | Arturo Espinosa <unammx@src.gnome.org> | 2000-01-17 01:48:21 +0000 |
commit | 4f0f733060a0644a7d10b646b6b0868ee2d13ba8 (patch) | |
tree | f394ab7079c39415000cf096462f2f0b43b8f064 | |
parent | ef80871e0aecfdc81495eb45589f28864bee4494 (diff) | |
download | gtk+-4f0f733060a0644a7d10b646b6b0868ee2d13ba8.tar.gz |
Removed the broken --enable-canvas-pixbuf option. Added the stuff
2000-01-16 Federico Mena Quintero <federico@helixcode.com>
* configure.in: Removed the broken --enable-canvas-pixbuf option.
Added the stuff necessary to substitute the variables in
gnomecanvaspixbufConf.sh.in.
* gnomecanvaspixbufConf.sh.in: New gnome-config handler for the
tiny gnomecanvaspixbuf library.
* Makefile.am: Build gnomecanvaspixbufConf.sh.
* gdk-pixbuf/Makefile.am: Create a libgnomecanvaspixbuf and only
build it if gdk-pixbuf is being built outside of gnome-libs.
* doc/gdk-pixbuf-sections.txt: Added gdk_pixbuf_render_pixmap_and_mask().
* gdk-pixbuf/gdk-pixbuf-render.c
(gdk_pixbuf_render_pixmap_and_mask): Renamed from
gdk_pixbuf_render_pixmap(). Do not create the mask if it is not
needed, and do not use a clipping mask when rendering the pixmap.
Tweaked documentation a little.
* HACKING: New file with hacking policies for the gdk-pixbuf
module.
* doc/Makefile.am (tmpl_sources): Added missing backslash.
* doc/Makefile.am: Use gnomecanvaspixbuf in gnome-config when
scanning for docstrings.
* gdk-pixbuf/gdk-pixbuf-util.c (gdk_pixbuf_copy_area): Made sanity
checks more stringent. Removed "gint" abominations. Made
documentation consistent with the rest of the functions.
* doc/gdk-pixbuf-sections.txt: Added gdk_pixbuf_copy_area() to the
utilities section.
-rw-r--r-- | docs/reference/gdk-pixbuf/Makefile.am | 6 | ||||
-rw-r--r-- | docs/reference/gdk-pixbuf/gdk-pixbuf-decl.txt | 43 | ||||
-rw-r--r-- | docs/reference/gdk-pixbuf/gdk-pixbuf-sections.txt | 2 | ||||
-rw-r--r-- | docs/reference/gdk-pixbuf/gdk-pixbuf.args | 8 | ||||
-rw-r--r-- | docs/reference/gdk-pixbuf/gdk-pixbuf.signals | 12 | ||||
-rw-r--r-- | docs/reference/gdk-pixbuf/tmpl/gdk-pixbuf-loader.sgml | 15 | ||||
-rw-r--r-- | docs/reference/gdk-pixbuf/tmpl/gdk-pixbuf-unused.sgml | 55 | ||||
-rw-r--r-- | docs/reference/gdk-pixbuf/tmpl/gnome-canvas-pixbuf.sgml | 51 | ||||
-rw-r--r-- | docs/reference/gdk-pixbuf/tmpl/rendering.sgml | 11 | ||||
-rw-r--r-- | docs/reference/gdk-pixbuf/tmpl/scaling.sgml | 8 | ||||
-rw-r--r-- | docs/reference/gdk-pixbuf/tmpl/util.sgml | 15 | ||||
-rw-r--r-- | gdk-pixbuf/ChangeLog | 43 | ||||
-rw-r--r-- | gdk-pixbuf/Makefile.am | 43 | ||||
-rw-r--r-- | gdk-pixbuf/gdk-pixbuf-util.c | 91 | ||||
-rw-r--r-- | gdk-pixbuf/gdk-pixbuf.h | 17 | ||||
-rw-r--r-- | gdk/gdkpixbuf-render.c | 104 |
16 files changed, 307 insertions, 217 deletions
diff --git a/docs/reference/gdk-pixbuf/Makefile.am b/docs/reference/gdk-pixbuf/Makefile.am index b66ecede00..eef777148e 100644 --- a/docs/reference/gdk-pixbuf/Makefile.am +++ b/docs/reference/gdk-pixbuf/Makefile.am @@ -9,15 +9,15 @@ DOC_MAIN_SGML_FILE=gdk-pixbuf.sgml # The directory containing the source code (if it contains documentation). DOC_SOURCE_DIR=$(GDK_PIXBUF_DIR)/gdk-pixbuf -CFLAGS=`gnome-config --cflags gnomeui gdk_pixbuf` -LDFLAGS=`gnome-config --libs gnomeui gdk_pixbuf` +CFLAGS=`gnome-config --cflags gnomeui gdk_pixbuf gnomecanvaspixbuf` +LDFLAGS=`gnome-config --libs gnomeui gdk_pixbuf gnomecanvaspixbuf` HTML_DIR=$(datadir)/gnome/html TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) tmpl_sources = \ - tmpl/animation.sgml + tmpl/animation.sgml \ tmpl/creating.sgml \ tmpl/file-loading.sgml \ tmpl/from-drawables.sgml \ diff --git a/docs/reference/gdk-pixbuf/gdk-pixbuf-decl.txt b/docs/reference/gdk-pixbuf/gdk-pixbuf-decl.txt index 884c3247b6..b85363d39a 100644 --- a/docs/reference/gdk-pixbuf/gdk-pixbuf-decl.txt +++ b/docs/reference/gdk-pixbuf/gdk-pixbuf-decl.txt @@ -14,8 +14,7 @@ GdkPixbuf *pixbuf, <USER_FUNCTION> <NAME>ModuleFrameDoneNotifyFunc</NAME> <RETURNS>void </RETURNS> -GdkPixbuf *pixbuf, - gint frame, +GdkPixbufFrame *frame, gpointer user_data </USER_FUNCTION> <USER_FUNCTION> @@ -286,11 +285,21 @@ GdkPixbuf *pixbuf,GdkDrawable *drawable, GdkGC *gc,int src_x, int src_y,int dest 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 </FUNCTION> <FUNCTION> +<NAME>gdk_pixbuf_render_pixmap_and_mask</NAME> +<RETURNS>void </RETURNS> +GdkPixbuf *pixbuf,GdkPixmap **pixmap_return, GdkBitmap **mask_return,int alpha_threshold +</FUNCTION> +<FUNCTION> <NAME>gdk_pixbuf_get_from_drawable</NAME> <RETURNS>GdkPixbuf *</RETURNS> GdkPixbuf *dest,GdkDrawable *src, GdkColormap *cmap,int src_x, int src_y,int dest_x, int dest_y,int width, int height </FUNCTION> <FUNCTION> +<NAME>gdk_pixbuf_copy_area</NAME> +<RETURNS>void </RETURNS> +GdkPixbuf *src_pixbuf,int src_x, int src_y,int width, int height,GdkPixbuf *dest_pixbuf,int dest_x, int dest_y +</FUNCTION> +<FUNCTION> <NAME>gdk_pixbuf_scale</NAME> <RETURNS>void </RETURNS> 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,ArtFilterLevel filter_level @@ -330,6 +339,16 @@ GdkPixbufAnimation *animation <RETURNS>void </RETURNS> GdkPixbufAnimation *animation </FUNCTION> +<FUNCTION> +<NAME>gdk_pixbuf_preinit</NAME> +<RETURNS>void </RETURNS> +gpointer app, gpointer modinfo +</FUNCTION> +<FUNCTION> +<NAME>gdk_pixbuf_postinit</NAME> +<RETURNS>void </RETURNS> +gpointer app, gpointer modinfo +</FUNCTION> <MACRO> <NAME>GNOME_TYPE_CANVAS_PIXBUF</NAME> #define GNOME_TYPE_CANVAS_PIXBUF (gnome_canvas_pixbuf_get_type ()) @@ -373,3 +392,23 @@ struct GnomeCanvasPixbuf { <RETURNS>GtkType </RETURNS> void </FUNCTION> +<MACRO> +<NAME>GDK_PIXBUF_MAJOR</NAME> +#define GDK_PIXBUF_MAJOR (0) +</MACRO> +<MACRO> +<NAME>GDK_PIXBUF_MINOR</NAME> +#define GDK_PIXBUF_MINOR (4) +</MACRO> +<MACRO> +<NAME>GDK_PIXBUF_MICRO</NAME> +#define GDK_PIXBUF_MICRO (0) +</MACRO> +<MACRO> +<NAME>GDK_PIXBUF_VERSION</NAME> +#define GDK_PIXBUF_VERSION "0.4.0" +</MACRO> +<VARIABLE> +<NAME>gdk_pixbuf_version</NAME> +extern const char *gdk_pixbuf_version; +</VARIABLE> diff --git a/docs/reference/gdk-pixbuf/gdk-pixbuf-sections.txt b/docs/reference/gdk-pixbuf/gdk-pixbuf-sections.txt index 7de064ea74..82673441b5 100644 --- a/docs/reference/gdk-pixbuf/gdk-pixbuf-sections.txt +++ b/docs/reference/gdk-pixbuf/gdk-pixbuf-sections.txt @@ -38,6 +38,7 @@ GdkPixbufAlphaMode gdk_pixbuf_render_to_drawable_alpha gdk_pixbuf_render_to_drawable gdk_pixbuf_render_threshold_alpha +gdk_pixbuf_render_pixmap_and_mask </SECTION> <SECTION> @@ -48,6 +49,7 @@ gdk_pixbuf_get_from_drawable <SECTION> <FILE>util</FILE> gdk_pixbuf_add_alpha +gdk_pixbuf_copy_area </SECTION> <SECTION> diff --git a/docs/reference/gdk-pixbuf/gdk-pixbuf.args b/docs/reference/gdk-pixbuf/gdk-pixbuf.args index b212136dca..8813bd7b35 100644 --- a/docs/reference/gdk-pixbuf/gdk-pixbuf.args +++ b/docs/reference/gdk-pixbuf/gdk-pixbuf.args @@ -17,7 +17,7 @@ </ARG> <ARG> -<NAME>GnomeCanvasPixbuf::width_pixels</NAME> +<NAME>GnomeCanvasPixbuf::width_in_pixels</NAME> <TYPE>gboolean</TYPE> <FLAGS>rw</FLAGS> </ARG> @@ -35,7 +35,7 @@ </ARG> <ARG> -<NAME>GnomeCanvasPixbuf::height_pixels</NAME> +<NAME>GnomeCanvasPixbuf::height_in_pixels</NAME> <TYPE>gboolean</TYPE> <FLAGS>rw</FLAGS> </ARG> @@ -53,7 +53,7 @@ </ARG> <ARG> -<NAME>GnomeCanvasPixbuf::x_pixels</NAME> +<NAME>GnomeCanvasPixbuf::x_in_pixels</NAME> <TYPE>gboolean</TYPE> <FLAGS>rw</FLAGS> </ARG> @@ -71,7 +71,7 @@ </ARG> <ARG> -<NAME>GnomeCanvasPixbuf::y_pixels</NAME> +<NAME>GnomeCanvasPixbuf::y_in_pixels</NAME> <TYPE>gboolean</TYPE> <FLAGS>rw</FLAGS> </ARG> diff --git a/docs/reference/gdk-pixbuf/gdk-pixbuf.signals b/docs/reference/gdk-pixbuf/gdk-pixbuf.signals index d53d607821..7ac8646dea 100644 --- a/docs/reference/gdk-pixbuf/gdk-pixbuf.signals +++ b/docs/reference/gdk-pixbuf/gdk-pixbuf.signals @@ -15,6 +15,18 @@ GdkPixbufLoader *gdkpixbufloader </SIGNAL> <SIGNAL> +<NAME>GdkPixbufLoader::frame-done</NAME> +<RETURNS>void</RETURNS> +GdkPixbufLoader *gdkpixbufloader +</SIGNAL> + +<SIGNAL> +<NAME>GdkPixbufLoader::animation-done</NAME> +<RETURNS>void</RETURNS> +GdkPixbufLoader *gdkpixbufloader +</SIGNAL> + +<SIGNAL> <NAME>GdkPixbufLoader::closed</NAME> <RETURNS>void</RETURNS> GdkPixbufLoader *gdkpixbufloader diff --git a/docs/reference/gdk-pixbuf/tmpl/gdk-pixbuf-loader.sgml b/docs/reference/gdk-pixbuf/tmpl/gdk-pixbuf-loader.sgml index e152937007..ed5a432cf5 100644 --- a/docs/reference/gdk-pixbuf/tmpl/gdk-pixbuf-loader.sgml +++ b/docs/reference/gdk-pixbuf/tmpl/gdk-pixbuf-loader.sgml @@ -54,6 +54,7 @@ Application-driven progressive image loading. frames are done. </para> </refsect2> + <!-- ##### SECTION See_Also ##### --> <para> gdk_pixbuf_new_from_file() @@ -146,6 +147,20 @@ Application-driven progressive image loading. <!-- # Unused Parameters # --> @loader: Loader which emitted the signal. +<!-- ##### SIGNAL GdkPixbufLoader::frame-done ##### --> +<para> + +</para> + +@gdkpixbufloader: the object which received the signal. + +<!-- ##### SIGNAL GdkPixbufLoader::animation-done ##### --> +<para> + +</para> + +@gdkpixbufloader: the object which received the signal. + <!-- ##### SIGNAL GdkPixbufLoader::closed ##### --> <para> This signal is emitted when gdk_pixbuf_loader_close() is called. diff --git a/docs/reference/gdk-pixbuf/tmpl/gdk-pixbuf-unused.sgml b/docs/reference/gdk-pixbuf/tmpl/gdk-pixbuf-unused.sgml index 389771cf3f..6f44cdc6b5 100644 --- a/docs/reference/gdk-pixbuf/tmpl/gdk-pixbuf-unused.sgml +++ b/docs/reference/gdk-pixbuf/tmpl/gdk-pixbuf-unused.sgml @@ -1,14 +1,3 @@ -<!-- ##### ARG GnomeCanvasPixbuf:width_in_pixels ##### --> - <para> - If this argument is %TRUE, then the width of the pixbuf will be - considered to be in pixels, that is, it will not be visually - scaled even if the item's affine transformation changes. If this - is %FALSE, then the width of the pixbuf will be considered to be - in canvas units, and so will be scaled normally by affine - transformations. The default is %FALSE. - </para> - - <!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:See_Also ##### --> <para> @@ -26,12 +15,10 @@ -<!-- ##### ARG GnomeCanvasPixbuf:height_in_pixels ##### --> - <para> - Works in the same way as the <link - linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link> - argument. The default is %FALSE. - </para> +<!-- ##### ARG GnomeCanvasPixbuf:height_pixels ##### --> +<para> + +</para> <!-- ##### STRUCT GdkPixbufModule ##### --> @@ -48,19 +35,10 @@ @stop_load: @load_increment: -<!-- ##### ARG GnomeCanvasPixbuf:y_in_pixels ##### --> - <para> - Works in the same way as the <link - linkend="GnomeCanvasPixbuf--x-in-pixels">x_in_pixels</link> - argument. The default is %FALSE. - </para> +<!-- ##### ARG GnomeCanvasPixbuf:y_pixels ##### --> +<para> -<!-- -Local variables: -mode: sgml -sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "") -End: ---> +</para> <!-- ##### SECTION ./tmpl/gdk-pixbuf-io.sgml:Long_Description ##### --> @@ -93,6 +71,12 @@ gdk-pixbuf-io @pixbuf: @user_data: +<!-- ##### ARG GnomeCanvasPixbuf:x_pixels ##### --> +<para> + +</para> + + <!-- ##### FUNCTION gdk_pixbuf_get_module ##### --> <para> @@ -102,14 +86,9 @@ gdk-pixbuf-io @size: @Returns: -<!-- ##### ARG GnomeCanvasPixbuf:x_in_pixels ##### --> - <para> - If this argument is %TRUE, the pixbuf's translation with respect - to its logical origin in item-relative coordinates will be in - pixels, that is, the visible offset will not change even if the - item's affine transformation changes. If it is %FALSE, the - pixbuf's translation will be taken to be in canvas units, and thus - will change along with the item's affine transformation. - </para> +<!-- ##### ARG GnomeCanvasPixbuf:width_pixels ##### --> +<para> + +</para> diff --git a/docs/reference/gdk-pixbuf/tmpl/gnome-canvas-pixbuf.sgml b/docs/reference/gdk-pixbuf/tmpl/gnome-canvas-pixbuf.sgml index cd2116528b..fd5d97e5bf 100644 --- a/docs/reference/gdk-pixbuf/tmpl/gnome-canvas-pixbuf.sgml +++ b/docs/reference/gdk-pixbuf/tmpl/gnome-canvas-pixbuf.sgml @@ -234,10 +234,15 @@ Canvas item to display #GdkPixbuf images. used instead. This argument is %FALSE by default. </para> -<!-- ##### ARG GnomeCanvasPixbuf:width_pixels ##### --> -<para> - -</para> +<!-- ##### ARG GnomeCanvasPixbuf:width_in_pixels ##### --> + <para> + If this argument is %TRUE, then the width of the pixbuf will be + considered to be in pixels, that is, it will not be visually + scaled even if the item's affine transformation changes. If this + is %FALSE, then the width of the pixbuf will be considered to be + in canvas units, and so will be scaled normally by affine + transformations. The default is %FALSE. + </para> <!-- ##### ARG GnomeCanvasPixbuf:height ##### --> <para> @@ -258,10 +263,12 @@ Canvas item to display #GdkPixbuf images. The default is %FALSE. </para> -<!-- ##### ARG GnomeCanvasPixbuf:height_pixels ##### --> -<para> - -</para> +<!-- ##### ARG GnomeCanvasPixbuf:height_in_pixels ##### --> + <para> + Works in the same way as the <link + linkend="GnomeCanvasPixbuf--width-in-pixels">width_in_pixels</link> + argument. The default is %FALSE. + </para> <!-- ##### ARG GnomeCanvasPixbuf:x ##### --> <para> @@ -280,10 +287,15 @@ Canvas item to display #GdkPixbuf images. coordinates. </para> -<!-- ##### ARG GnomeCanvasPixbuf:x_pixels ##### --> -<para> - -</para> +<!-- ##### ARG GnomeCanvasPixbuf:x_in_pixels ##### --> + <para> + If this argument is %TRUE, the pixbuf's translation with respect + to its logical origin in item-relative coordinates will be in + pixels, that is, the visible offset will not change even if the + item's affine transformation changes. If it is %FALSE, the + pixbuf's translation will be taken to be in canvas units, and thus + will change along with the item's affine transformation. + </para> <!-- ##### ARG GnomeCanvasPixbuf:y ##### --> <para> @@ -302,8 +314,17 @@ Canvas item to display #GdkPixbuf images. default is %FALSE. </para> -<!-- ##### ARG GnomeCanvasPixbuf:y_pixels ##### --> -<para> +<!-- ##### ARG GnomeCanvasPixbuf:y_in_pixels ##### --> + <para> + Works in the same way as the <link + linkend="GnomeCanvasPixbuf--x-in-pixels">x_in_pixels</link> + argument. The default is %FALSE. + </para> -</para> +<!-- +Local variables: +mode: sgml +sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "") +End: +--> diff --git a/docs/reference/gdk-pixbuf/tmpl/rendering.sgml b/docs/reference/gdk-pixbuf/tmpl/rendering.sgml index 09afa8c659..20365ab3c2 100644 --- a/docs/reference/gdk-pixbuf/tmpl/rendering.sgml +++ b/docs/reference/gdk-pixbuf/tmpl/rendering.sgml @@ -115,3 +115,14 @@ End: --> +<!-- ##### FUNCTION gdk_pixbuf_render_pixmap_and_mask ##### --> +<para> + +</para> + +@pixbuf: +@pixmap_return: +@mask_return: +@alpha_threshold: + + diff --git a/docs/reference/gdk-pixbuf/tmpl/scaling.sgml b/docs/reference/gdk-pixbuf/tmpl/scaling.sgml index 153a5cf431..37411cd4f7 100644 --- a/docs/reference/gdk-pixbuf/tmpl/scaling.sgml +++ b/docs/reference/gdk-pixbuf/tmpl/scaling.sgml @@ -152,11 +152,11 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data) @check_size: @color1: @color2: -@Returns: - -<!-- +@Returns: <!-- Local variables: mode: sgml sgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "") End: --->
\ No newline at end of file +--> + + diff --git a/docs/reference/gdk-pixbuf/tmpl/util.sgml b/docs/reference/gdk-pixbuf/tmpl/util.sgml index f84edb50e0..2d29c75054 100644 --- a/docs/reference/gdk-pixbuf/tmpl/util.sgml +++ b/docs/reference/gdk-pixbuf/tmpl/util.sgml @@ -35,3 +35,18 @@ End: --> +<!-- ##### FUNCTION gdk_pixbuf_copy_area ##### --> +<para> + +</para> + +@src_pixbuf: +@src_x: +@src_y: +@width: +@height: +@dest_pixbuf: +@dest_x: +@dest_y: + + diff --git a/gdk-pixbuf/ChangeLog b/gdk-pixbuf/ChangeLog index 1d63ea699b..761097662a 100644 --- a/gdk-pixbuf/ChangeLog +++ b/gdk-pixbuf/ChangeLog @@ -1,8 +1,40 @@ -2000-01-15 Federico Mena Quintero <federico@helixcode.com> +2000-01-16 Federico Mena Quintero <federico@helixcode.com> + + * configure.in: Removed the broken --enable-canvas-pixbuf option. + Added the stuff necessary to substitute the variables in + gnomecanvaspixbufConf.sh.in. + + * gnomecanvaspixbufConf.sh.in: New gnome-config handler for the + tiny gnomecanvaspixbuf library. + + * Makefile.am: Build gnomecanvaspixbufConf.sh. + + * gdk-pixbuf/Makefile.am: Create a libgnomecanvaspixbuf and only + build it if gdk-pixbuf is being built outside of gnome-libs. + + * doc/gdk-pixbuf-sections.txt: Added gdk_pixbuf_render_pixmap_and_mask(). + + * gdk-pixbuf/gdk-pixbuf-render.c + (gdk_pixbuf_render_pixmap_and_mask): Renamed from + gdk_pixbuf_render_pixmap(). Do not create the mask if it is not + needed, and do not use a clipping mask when rendering the pixmap. + Tweaked documentation a little. * HACKING: New file with hacking policies for the gdk-pixbuf module. + * doc/Makefile.am (tmpl_sources): Added missing backslash. + + * doc/Makefile.am: Use gnomecanvaspixbuf in gnome-config when + scanning for docstrings. + + * gdk-pixbuf/gdk-pixbuf-util.c (gdk_pixbuf_copy_area): Made sanity + checks more stringent. Removed "gint" abominations. Made + documentation consistent with the rest of the functions. + + * doc/gdk-pixbuf-sections.txt: Added gdk_pixbuf_copy_area() to the + utilities section. + 2000-01-14 Jonathan Blandford <jrb@redhat.com> * gdk-pixbuf/gdk-pixbuf-render.c (gdk_pixbuf_render_pixmap): new @@ -17,9 +49,14 @@ * configure.in, gdk-pixbuf/Makefile.am: Build a libcanvas_pixbuf. - * configure.in: Define version macros. Generate gdk-pixbuf/gdk-pixbuf-features.h. Always INSIDE_GNOME. + * configure.in: Define version macros. Generate + gdk-pixbuf/gdk-pixbuf-features.h. Always INSIDE_GNOME. + * gdk-pixbuf/Makefile.am: Add gdk-pixbuf-features.h - * gdk-pixbuf/gdk-pixbuf.c: Add definitions of gdk-pixbuf-features.h declarations, plus some initialization stubs. + + * gdk-pixbuf/gdk-pixbuf.c: Add definitions of + gdk-pixbuf-features.h declarations, plus some initialization + stubs. 2000-01-05 Owen Taylor <otaylor@redhat.com> diff --git a/gdk-pixbuf/Makefile.am b/gdk-pixbuf/Makefile.am index 20ae6888bc..600408bdc1 100644 --- a/gdk-pixbuf/Makefile.am +++ b/gdk-pixbuf/Makefile.am @@ -1,16 +1,21 @@ SUBDIRS = pixops -if CANVAS_PIXBUF -CPLIB=libcanvas_pixbuf.la -libcanvas_pixbuf_la_SOURCES=gnome-canvas-pixbuf.c -CANVAS_HEADERFILES=gnome-canvas-pixbuf.h +if INSIDE_GNOME_LIBS +CANVAS_PIXBUF_LIB = +CANVAS_PIXBUF_HEADERFILES = +EXTRA_GNOME_LIBS = else -CPLIB= -CANVAS_HEADERFILES= +CANVAS_PIXBUF_LIB = libgnomecanvaspixbuf.la +CANVAS_PIXBUF_HEADERFILES=gnome-canvas-pixbuf.h +EXTRA_GNOME_LIBS = $(GNOME_LIBS) endif + lib_LTLIBRARIES = \ libgdk_pixbuf.la \ - $(CPLIB) + $(CANVAS_PIXBUF_LIB) + +libgnomecanvaspixbuf_la_SOURCES = gnome-canvas-pixbuf.c +libgnomecanvaspixbuf_la_LDFLAGS = $(EXTRA_GNOME_LIBS) libexecdir = $(libdir)/gdk-pixbuf/loaders @@ -58,9 +63,10 @@ INCLUDES = -I$(top_srcdir) -I$(top_builddir) \ $(GLIB_CFLAGS) $(LIBART_CFLAGS) $(GTK_CFLAGS) AM_CPPFLAGS = "-DPIXBUF_LIBDIR=\"$(libexecdir)\"" +if INSIDE_GNOME_LIBS LDADDS = libgdk_pixbuf.la $(LIBART_LIBS) $(GLIB_LIBS) $(GTK_LIBS) - -if CANVAS_PIXBUF +else +LDADDS = libgdk_pixbuf.la libgnomecanvaspixbuf.la $(LIBART_LIBS) $(GLIB_LIBS) $(GTK_LIBS) endif if INSIDE_GNOME_LIBS @@ -81,13 +87,6 @@ GDK_PIXBUF_LIBS = $(LIBART_LIBS) $(GLIB_LIBS) $(GTK_LIBS) # # The GdkPixBuf library # -if INSIDE_GNOME_LIBS -CANVAS_SOURCEFILES= -CANVAS_HEADERFILES= -else -CANVAS_SOURCEFILES= gnome-canvas-pixbuf.c -CANVAS_HEADERFILES= gnome-canvas-pixbuf.h -endif libgdk_pixbufincludedir = $(includedir)/gdk-pixbuf @@ -100,24 +99,16 @@ libgdk_pixbuf_la_SOURCES = \ gdk-pixbuf-loader.c \ gdk-pixbuf-render.c \ gdk-pixbuf-scale.c \ - gdk-pixbuf-util.c \ - $(CANVAS_SOURCEFILES) - -if INSIDE_GNOME_LIBS -EXTRA_GNOME_LIBS = "" -else -EXTRA_GNOME_LIBS = $(GNOME_LIBS) -endif + gdk-pixbuf-util.c libgdk_pixbuf_la_LDFLAGS = -version-info 1:0:0 $(EXTRA_GNOME_LIBS) libgdk_pixbuf_la_LIBADD = pixops/libpixops.la - libgdk_pixbufinclude_HEADERS = \ gdk-pixbuf.h \ gdk-pixbuf-loader.h \ gdk-pixbuf-features.h \ - $(CANVAS_HEADERFILES) + $(CANVAS_PIXBUF_HEADERFILES) noinst_HEADERS = \ gdk-pixbuf-io.h diff --git a/gdk-pixbuf/gdk-pixbuf-util.c b/gdk-pixbuf/gdk-pixbuf-util.c index 2bc7e98b06..36dbed13cd 100644 --- a/gdk-pixbuf/gdk-pixbuf-util.c +++ b/gdk-pixbuf/gdk-pixbuf-util.c @@ -97,58 +97,47 @@ gdk_pixbuf_add_alpha (GdkPixbuf *pixbuf, gboolean substitute_color, guchar r, gu /** * gdk_pixbuf_copy_area: - * @src_pixbuf: The pixbuf to be copied. - * @src_x: The X coordinate of the upper left corner of the area to copy. - * @src_y: The Y coordinate of the upper left corner of the area to copy. - * @width: The width of the area to copy. - * @height: The height of the area to copy. - * @dest_pixbuf: The pixbuf to store the copy in. - * @dest_x: X coordinate for the upper left corner of the rectangle to draw to in @dest_pixbuf. - * @dest_y: Y coordinate for the upper left corner of the rectangle to draw to in @dest_pixbuf. + * @src_pixbuf: Source pixbuf. + * @src_x: Source X coordinate within @src_pixbuf. + * @src_y: Source Y coordinate within @src_pixbuf. + * @width: Width of the area to copy. + * @height: Height of the area to copy. + * @dest_pixbuf: Destination pixbuf. + * @dest_x: X coordinate within @dest_pixbuf. + * @dest_y: Y coordinate within @dest_pixbuf. * - * Takes a rectangle area beginning at (@src_x, @src_y) @width pixels wide - * and @height pixels high from @src_pixbuf and copy it into @dest_pixbuf - * at (@dest_x, @dest_y). @dest_pixbuf must already be created and must be - * large enough to hold the requested area. - * - * Return value: void + * Copies a rectangular area from @src_pixbuf to @dest_pixbuf. Conversion of + * pixbuf formats is done automatically. **/ -void gdk_pixbuf_copy_area(GdkPixbuf *src_pixbuf, - gint src_x, gint src_y, - gint width, gint height, - GdkPixbuf *dest_pixbuf, - gint dest_x, gint dest_y) +void +gdk_pixbuf_copy_area (GdkPixbuf *src_pixbuf, + int src_x, int src_y, + int width, int height, + GdkPixbuf *dest_pixbuf, + int dest_x, int dest_y) { - gint src_width, src_height, dest_width, dest_height; - - /* Ensure that we have a source pixbuf, and that the requested - * area is not larger than that pixbuf. - */ - g_return_if_fail(src_pixbuf != NULL); - - src_width = gdk_pixbuf_get_width(src_pixbuf); - src_height = gdk_pixbuf_get_height(src_pixbuf); - - g_return_if_fail(src_x >= 0 && width <= src_width); - g_return_if_fail(src_y >= 0 && height <= src_height); - - /* Ensure that we have a destination pixbuf, and that the - * requested area is not larger than that pixbuf. - */ - g_return_if_fail(dest_pixbuf != NULL); - - dest_width = gdk_pixbuf_get_width(dest_pixbuf); - dest_height = gdk_pixbuf_get_height(dest_pixbuf); - - g_return_if_fail(dest_x >= 0 && width <= dest_width); - g_return_if_fail(dest_y >= 0 && height <= dest_height); - - /* Scale 1:1 the source pixbuf into the destination pixbuf. */ - gdk_pixbuf_scale(src_pixbuf, - dest_pixbuf, - dest_x, dest_y, - width, height, - (double)(dest_x - src_x), - (double)(dest_y - src_y), - 1., 1., ART_FILTER_NEAREST); + ArtPixBuf *src_apb, *dest_apb; + + g_return_if_fail (src_pixbuf != NULL); + g_return_if_fail (dest_pixbuf != NULL); + + src_apb = src_pixbuf->art_pixbuf; + dest_apb = dest_pixbuf->art_pixbuf; + + g_return_if_fail (src_x >= 0 && src_x + width <= src_apb->width); + g_return_if_fail (src_y >= 0 && src_y + height <= src_apb->height); + + g_return_if_fail (dest_x >= 0 && dest_x + width <= dest_apb->width); + g_return_if_fail (dest_y >= 0 && dest_y + height <= dest_apb->height); + + /* This will perform format conversions automatically */ + + gdk_pixbuf_scale (src_pixbuf, + dest_pixbuf, + dest_x, dest_y, + width, height, + (double) (dest_x - src_x), + (double) (dest_y - src_y), + 1.0, 1.0, + ART_FILTER_NEAREST); } diff --git a/gdk-pixbuf/gdk-pixbuf.h b/gdk-pixbuf/gdk-pixbuf.h index 9b5265bc49..097c25644b 100644 --- a/gdk-pixbuf/gdk-pixbuf.h +++ b/gdk-pixbuf/gdk-pixbuf.h @@ -147,11 +147,6 @@ void gdk_pixbuf_render_to_drawable (GdkPixbuf *pixbuf, GdkRgbDither dither, int x_dither, int y_dither); -void gdk_pixbuf_render_pixmap (GdkPixbuf *pixbuf, - GdkPixmap **pixmap, - GdkBitmap **mask, - gint alpha_threshold); - void gdk_pixbuf_render_to_drawable_alpha (GdkPixbuf *pixbuf, GdkDrawable *drawable, int src_x, int src_y, int dest_x, int dest_y, @@ -161,6 +156,10 @@ void gdk_pixbuf_render_to_drawable_alpha (GdkPixbuf *pixbuf, GdkDrawable *drawab 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, @@ -168,12 +167,12 @@ GdkPixbuf *gdk_pixbuf_get_from_drawable (GdkPixbuf *dest, int dest_x, int dest_y, int width, int height); -/* Copy an area of a pixbuf into another one */ +/* Copy an area of a pixbuf onto another one */ void gdk_pixbuf_copy_area (GdkPixbuf *src_pixbuf, - gint src_x, gint src_y, - gint width, gint height, + int src_x, int src_y, + int width, int height, GdkPixbuf *dest_pixbuf, - gint dest_x, gint dest_y); + int dest_x, int dest_y); /* Scaling */ diff --git a/gdk/gdkpixbuf-render.c b/gdk/gdkpixbuf-render.c index 5496aeb5dd..742e49c4c8 100644 --- a/gdk/gdkpixbuf-render.c +++ b/gdk/gdkpixbuf-render.c @@ -170,7 +170,7 @@ remove_alpha (ArtPixBuf *apb, int x, int y, int width, int height, int *rowstrid * @dither: Dithering mode for GdkRGB. * @x_dither: X offset for dither. * @y_dither: Y offset for dither. - * + * * Renders a rectangular portion of a pixbuf to a drawable while using the * specified GC. This is done using GdkRGB, so the specified drawable must have * the GdkRGB visual and colormap. Note that this function will ignore the @@ -199,7 +199,7 @@ gdk_pixbuf_render_to_drawable (GdkPixbuf *pixbuf, g_return_if_fail (pixbuf != NULL); apb = pixbuf->art_pixbuf; - + g_return_if_fail (apb->format == ART_PIX_RGB); g_return_if_fail (apb->n_channels == 3 || apb->n_channels == 4); g_return_if_fail (apb->bits_per_sample == 8); @@ -321,69 +321,49 @@ gdk_pixbuf_render_to_drawable_alpha (GdkPixbuf *pixbuf, GdkDrawable *drawable, } /** - * gdk_pixbuf_render_pixmap: + * gdk_pixbuf_render_pixmap_and_mask: * @pixbuf: A pixbuf - * @pixmap: A pointer to a pixmap to fill in. - * @mask_retval: A pointer to the mask to be filled in. - * @alpha_threshold: Specifies the threshold value for opacity - * values if the pixbuf has opacity. + * @pixmap_return: Return value for the created pixmap. + * @mask_return: Return value for the created mask. + * @alpha_threshold: Threshold value for opacity values. * - * Generates a #GdkPixmap from a #GdkPixbuf, along with an optional mask. The - * alpha threshold can be used to determine how the mask is created, if the - * pixbuf has an alpha channel. This function is mainly provided for - * compatibility reasons, as you will rarely want a #GdkPixmap. - * + * Creates a pixmap and a mask bitmap which are returned in the @pixmap_return + * and @mask_return arguments, respectively, and renders a pixbuf and its + * corresponding tresholded alpha mask to them. This is merely a convenience + * function; applications that need to render pixbufs with dither offsets or to + * given drawables should use gdk_pixbuf_render_to_drawable_alpha() or + * gdk_pixbuf_render_to_drawable(), and gdk_pixbuf_render_threshold_alpha(). **/ void -gdk_pixbuf_render_pixmap (GdkPixbuf *pixbuf, - GdkPixmap **pixmap, - GdkBitmap **mask_retval, - gint alpha_threshold) +gdk_pixbuf_render_pixmap_and_mask (GdkPixbuf *pixbuf, + GdkPixmap **pixmap_return, GdkBitmap **mask_return, + int alpha_threshold) { - GdkBitmap *mask = NULL; - - g_return_if_fail(pixbuf != NULL); - - /* generate mask */ - if (gdk_pixbuf_get_has_alpha(pixbuf)) { - mask = gdk_pixmap_new(NULL, - gdk_pixbuf_get_width(pixbuf), - gdk_pixbuf_get_height(pixbuf), - 1); - - gdk_pixbuf_render_threshold_alpha(pixbuf, mask, - 0, 0, 0, 0, - gdk_pixbuf_get_width(pixbuf), - gdk_pixbuf_get_height(pixbuf), - alpha_threshold); - } - - /* Draw to pixmap */ - if (pixmap != NULL) { - GdkGC* gc; - - *pixmap = gdk_pixmap_new(NULL, - gdk_pixbuf_get_width(pixbuf), - gdk_pixbuf_get_height(pixbuf), - gdk_rgb_get_visual()->depth); - - gc = gdk_gc_new(*pixmap); - - gdk_gc_set_clip_mask(gc, mask); - - gdk_pixbuf_render_to_drawable(pixbuf, *pixmap, - gc, - 0, 0, 0, 0, - gdk_pixbuf_get_width(pixbuf), - gdk_pixbuf_get_height(pixbuf), - GDK_RGB_DITHER_NORMAL, - 0, 0); - - gdk_gc_unref(gc); - } - - if (mask_retval) - *mask_retval = mask; - else - gdk_bitmap_unref(mask); + ArtPixBuf *apb; + + g_return_if_fail (pixbuf != NULL); + + apb = pixbuf->art_pixbuf; + + if (pixmap_return) { + GdkGC *gc; + + *pixmap_return = gdk_pixmap_new (NULL, apb->width, apb->height, + gdk_rgb_get_visual ()->depth); + gc = gdk_gc_new (*pixmap_return); + gdk_pixbuf_render_to_drawable (pixbuf, *pixmap_return, gc, + 0, 0, 0, 0, + apb->width, apb->height, + GDK_RGB_DITHER_NORMAL, + 0, 0); + gdk_gc_unref (gc); + } + + if (mask_return) { + *mask_return = gdk_pixmap_new (NULL, apb->width, apb->height, 1); + gdk_pixbuf_render_threshold_alpha (pixbuf, *mask_return, + 0, 0, 0, 0, + apb->width, apb->height, + alpha_threshold); + } } |