Commit Graph

29 Commits

Author SHA1 Message Date
Federico Mena Quintero
829ed02435 Most of this patch is based on a patch by Havoc Pennington (hp@redhat.com)
2000-04-11  Federico Mena Quintero  <federico@helixcode.com>

	Most of this patch is based on a patch by Havoc Pennington
	(hp@redhat.com) to make GdkPixbuf's structures opaque and to
	remove the libart dependency.

	* gdk-pixbuf/gdk-pixbuf.h: Removed the public structures.
	(GdkColorspace): New enum that for now only contains
	GDK_COLORSPACE_RGB.
	(GdkPixbufDestroyNotify): New type for the pixbuf's pixels destroy
	notification function.
	(GdkInterpType): New num with interpolation types.

	* *.[ch]: Replace the libart stuff with our own stuff.

	* pixops/*.[ch]: Likewise.

	* gdk-pixbuf/gdk-pixbuf-private.h: New file with the private
	declarations of the GdkPixbuf structures.

	* gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_new_from_art_pixbuf):
	Removed function.
	(gdk_pixbuf_get_format): Constify.
	(gdk_pixbuf_get_n_channels): Constify.
	(gdk_pixbuf_get_has_alpha): Constify.
	(gdk_pixbuf_get_bits_per_sample): Constify.
	(gdk_pixbuf_get_pixels): Constify.
	(gdk_pixbuf_get_width): Constify.
	(gdk_pixbuf_get_height): Constify.
	(gdk_pixbuf_get_rowstride): Constify.

	* gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_copy): New function to copy
	a pixbuf.

	* gdk-pixbuf/gdk-pixbuf-data.c (gdk_pixbuf_new_from_data): Added a
	bits_per_sample argument; currently only 8 bits per sample are
	supported.

	* gdk-pixbuf/gdk-pixbuf-animation.c (gdk_pixbuf_frame_get_pixbuf):
	New accessor.
	(gdk_pixbuf_frame_get_x_offset): New accessor.
	(gdk_pixbuf_frame_get_y_offset): New accessor.
	(gdk_pixbuf_frame_get_delay_time): New accessor.
	(gdk_pixbuf_frame_get_action): New accessor.

	* gdk-pixbuf/gdk-pixbuf-render.c
	(gdk_pixbuf_render_pixmap_and_mask): Instead of returning a solid
	mask rectangle for pixbufs without an alpha channel, set the
	*mask_return to NULL.

	* gdk-pixbuf/gdk-pixbuf-util.c (gdk_pixbuf_add_alpha): Constify.

	* gdk-pixbuf/gdk-pixbuf-scale.c: Fix includes.

	* gdk-pixbuf/gdk-pixbuf-scale.c (gdk_pixbuf_scale): Added some
	preconditions.  Maybe we should also check for the colorspace,
	bits per pixel, and such.
	(gdk_pixbuf_composite): Likewise.
	(gdk_pixbuf_composite_color): Likewise.
	(gdk_pixbuf_scale_simple): Likewise, and fail gracefully if we
	cannot allocate the new pixbuf.
	(gdk_pixbuf_composite_color_simple): Likewise.

	* gdk-pixbuf/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_render):
	Use art_rgb_rgba_affine() or art_rgb_affine() since we no longer
	have an ArtPixBuf.

	* gdk-pixbuf/io-bmp.c: Fix includes.

	* gdk-pixbuf/pixops/pixops.c (pixops_scale_nearest): Fixed cast in
	an lvalue.

	* TODO: Populated.

	* configure.in: Removed checks for libart.

	* gdk-pixbuf/Makefile.am: Removed references to libart.
	(noinst_HEADERS): Added gdk-pixbuf-private.h.

	* gdk-pixbuf/Makefile.am (libgdk_pixbuf_la_LDFLAGS): Incremented
	the version number of the libtool library to indicate that this
	definitely is not compatible with the old usage.  I know you love
	me.  I know you do.

	* configure.in: Bumped version number to 0.7.0.

	* README: Updated.

	* gdk-pixbuf-config.in (--libs): We no longer require libart.

	* DEPENDS.libgdk_pixbuf: We no longer depend on libart.

	* gdk-pixbuf.spec.in: Updated, but I don't guarantee anything.
2000-04-11 07:03:25 +00:00
Federico Mena Quintero
72ee1f0c50 Removed the x_set and y_set arguments. Now they are always on and start
2000-01-22  Federico Mena Quintero  <federico@helixcode.com>

	* gdk-pixbuf/gnome-canvas-pixbuf.c (PixbufPrivate): Removed the
	x_set and y_set arguments.  Now they are always on and start with
	defaults of 0.0 in units.
	(gnome_canvas_pixbuf_class_init): Likewise.
	(gnome_canvas_pixbuf_set_arg): Likewise.
	(gnome_canvas_pixbuf_get_arg): Likewise.
	(compute_viewport_affine): Likewise; always use the priv->x and
	priv->y fields.

	* doc/tmpl/gnome-canvas-pixbuf.sgml: Modified to reflect the
	removal of the x_set/y_set arguments.
2000-01-22 21:18:17 +00:00
Federico Mena Quintero
cd1870cc83 Renamed arguments to width_in_pixels, height_in_pixels, x_in_pixels,
1999-12-13  Federico Mena Quintero  <federico@redhat.com>

	* gdk-pixbuf/gnome-canvas-pixbuf.c
	(gnome_canvas_pixbuf_class_init): Renamed arguments to
	width_in_pixels, height_in_pixels, x_in_pixels, y_in_pixels, for
	consistency with the new canvas.
	(PixbufPrivate): Do the same renaming in the structure fields, for
	consistency.

	* doc/tmpl/gnome-canvas-pixbuf.sgml: Updated for new argument names.
1999-12-06 18:57:03 +00:00
Federico Mena Quintero
e506cf37cb Patch from Arjan to fix an initializer.
1999-12-06  Federico Mena Quintero  <federico@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-io.c (file_formats): Patch from Arjan to
	fix an initializer.
1999-12-06 18:57:03 +00:00
Federico Mena Quintero
25a8142429 #include <config.h>, and fix includes.
1999-12-02  Federico Mena Quintero  <federico@redhat.com>

	* src/testpixbuf.c: #include <config.h>, and fix includes.

	* src/testpixbuf-drawable.c: #include <config.h>, and fix includes.

	* src/io-xpm.c: Fix includes.

	* src/io-tiff.c: Fix includes.

	* src/io-ras.c: Fix includes, and do not include more stuff than needed.

	* src/io-pnm.c: Fix inlcudes, and do not include more stuff than needed.

	* src/io-png.c: Fix includes.

	* src/io-ico.c: Fix includes, and do not include more stuff than needed.

	* src/io-gif.c: Fix includes, and do not include more stuff than needed.

	* src/io-bmp.c: Fix includes, and do not include more stuff than needed.

	* src/gnome-canvas-pixbuf.c: Fix includes.

	* src/gdk-pixbuf.c: Fix includes.

	* src/gdk-pixbuf-util.c: Fix includes.

	* src/gdk-pixbuf-render.c: Fix includes.

	* src/gdk-pixbuf-io.h: Fix includes.

	* src/gdk-pixbuf-drawable.c: Fix includes.

	* src/gdk-pixbuf-drawable.h: Use angle brackets for the gdk-pixbuf
	include files.

	* src/gdk-pixbuf-data.c: Fix includes.

	* src/gdk-pixbuf-loader.c: #include <config.h>

	* src/gdk-pixbuf-loader.h: Use angle brackets for the gdk-pixbuf
	include files.

	* src/Makefile.am: Commented out the gdk-pixbuf-drawable stuff,
	since it is not finished.
1999-12-02 20:44:43 +00:00
Federico Mena Quintero
b990b30723 Create the temporary buffer to the size of the interesction of the
1999-11-22  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_draw): Create the
	temporary buffer to the size of the interesction of the bounding
	box and the expose area, not the whole expose area.  This speeds
	up things a lot.

	* src/gdk-pixbuf-render.c (gdk_pixbuf_render_threshold_alpha): Do
	not paint black on the mask, since we already cleared it in a
	single gdk_draw_rectangle() operation.
1999-11-24 08:19:58 +00:00
Jonathan Blandford
14237d13e2 make the symlink. Does not work for srcdir != buildir != . Beats me why; I
1999-11-22  Jonathan Blandford  <jrb@redhat.com>

	* configure.in (GDK_PIXBUF_DIR): make the symlink.  Does not work
	for srcdir != buildir != .  Beats me why; I can't figure it out.
	AC_OUTPUT_COMMANDS doesn't seem to let me substitute it correctly.
1999-11-22 20:43:58 +00:00
Larry Ewing
36a27c6759 implement the bounds method correctly. (compute_viewport_affine): compute
1999-11-17  Larry Ewing  <lewing@gimp.org>

	* src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_bounds):
	implement the bounds method correctly.
	(compute_viewport_affine): compute the affine need to fit the
	image within the viewport given by the args.
	(compute_render_affine): call compute_viewport_affine.
1999-11-17 23:21:34 +00:00
Arturo Espinosa
9d8da16ee9 More docs work - Federico 1999-11-04 21:52:08 +00:00
Arturo Espinosa
e03c0632ad Sync - Federico 1999-11-03 23:58:37 +00:00
Federico Mena Quintero
0b0e66db4b Initiailize the x and y fields. (gnome_canvas_pixbuf_destroy): Queue a
1999-11-03  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_init):
	Initiailize the x and y fields.
	(gnome_canvas_pixbuf_destroy): Queue a redraw upon destruction.
	(PixbufPrivate): Renamed need_size_update to need_xform_update.
	(recompute_bounding_box): Do not use temporary values.
1999-11-03 21:26:52 +00:00
Jonathan Blandford
87a9022b72 new state. Fixes un-compressed gifs.
1999-11-03  Jonathan Blandford  <jrb@redhat.com>

	* src/io-gif.c (set_gif_lzw_clear_code): new state.  Fixes
	un-compressed gifs.

	* src/gnome-canvas-pixbuf.c (recompute_bounding_box): remove
	unneeded x,y,h,w vars.
1999-11-03 21:22:38 +00:00
Larry Ewing
d0e4efb401 adjust render_affine calculation for x,y offsets.
1999-11-03  Larry Ewing  <lewing@gimp.org>

	* src/gnome-canvas-pixbuf.c (compute_render_affine): adjust
	render_affine calculation for x,y offsets.
	(gnome_canvas_pixbuf_set_arg): add x,y args.
	(gnome_canvas_pixbuf_get_arg): add x,y args.
	(recompute_bounding_box): simply code using ArtDrect and the
	render_affine.  Removed compute_xform_vectors as it was no longer
	needed.
1999-11-03 20:57:04 +00:00
Federico Mena Quintero
80ce14813b I'm a doofus. Return a distance, not a boolean, for opaque images.
1999-11-03  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_point): I'm a
	doofus.  Return a distance, not a boolean, for opaque images.
1999-11-03 20:39:27 +00:00
Federico Mena Quintero
ba718c979c Do proper rounding of bounding box coordinates.
1999-11-03  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c (recompute_bounding_box): Do proper
	rounding of bounding box coordinates.
	(gnome_canvas_pixbuf_bounds): Implemented the ::bounds() method.
	(gnome_canvas_pixbuf_draw): Use the correct alpha threshold value.
1999-11-03 20:26:32 +00:00
Arturo Espinosa
1c1e3424c1 Sync to laptop - Federico 1999-11-03 03:16:21 +00:00
Federico Mena Quintero
cacae33871 Implemented the ::point() method. We do a simple containment test instead
1999-11-02  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_point):
	Implemented the ::point() method.  We do a simple containment test
	instead of a full distance calculation since the canvas is going
	to change to that scheme, anyways.
1999-11-02 23:11:09 +00:00
Larry Ewing
9efff07116 add aa render function. (gnome_canvas_pixbuf_class_init): add
1999-11-02  Larry Ewing  <lewing@gimp.org>

	* src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_render): add aa
	render function.
	(gnome_canvas_pixbuf_class_init): add gnome_canvas_pixbuf_render
	to class.
1999-11-02 19:43:48 +00:00
Arturo Espinosa
0dcfd50a96 Sync for Larry - Federico 1999-11-02 19:31:11 +00:00
Federico Mena Quintero
8c361eed9c Fixed bounding box computation.
1999-11-01  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c (recompute_bounding_box): Fixed
	bounding box computation.
1999-11-02 02:17:06 +00:00
Federico Mena Quintero
69fb59dd3b Start of the pixbuf canvas item. Drawing affines seem to work. Bounding
1999-11-01  Federico Mena Quintero  <federico@redhat.com>

	* src/gnome-canvas-pixbuf.c: Start of the pixbuf canvas item.
	Drawing affines seem to work.  Bounding box is fubared.  ::point()
	is not implemented.  This is a work in progress.

	* src/Makefile.am: Added gnome-canvas-pixbuf.[ch] to the list of
	sources.

	* configure.in: Sigh.  We need to link in libgnomeui for the
	canvas stuff.  This mess will disappear when gdk-pixbuf gets
	folded into gnome-libs.
1999-11-02 01:50:06 +00:00
Arturo Espinosa
c3b9b0f7f4 Sync to desktop - Federico 1999-11-01 19:09:20 +00:00
Federico Mena Quintero
0eb096334e New function to threshold a pixbuf's alpha channel into a bitmap.
1999-10-27  Federico Mena Quintero  <federico@redhat.com>

	* src/gdk-pixbuf-render.c (gdk_pixbuf_render_threshold_alpha): New
	function to threshold a pixbuf's alpha channel into a bitmap.

	* src/gdk-pixbuf.c (gdk_pixbuf_new): Fixed so that it will
	contemplate future extensions to ArtPixBuf's formats.

	* src/io-png.c (png_info_callback): Use the new API of gdk_pixbuf_new().

	* src/gdk-pixbuf.h (gdk_pixbuf_get_height): Added some convenience
	macros to fetch the ArtPixBuf's fields.
1999-10-27 23:36:44 +00:00
Federico Mena Quintero
23b0f15ee8 Return a GdkPixbufLoader, not a GtkObject.
1999-10-27  Federico Mena Quintero  <federico@redhat.com>

	* src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_new): Return a
	GdkPixbufLoader, not a GtkObject.
	(gtk_marshal_NONE__INT_INT_INT_INT): Made static.
	(gdk_pixbuf_loader_get_type): Documented.
	(gdk_pixbuf_loader_class_init): Initialize the parent class
	correctly.
	(gdk_pixbuf_loader_destroy): Added sanity checks. Call the parent
	class destroy function.
	(gdk_pixbuf_loader_new): Documented.
	(gdk_pixbuf_loader_finalize): Call the parent class finalize
	function.
	(gdk_pixbuf_loader_write): Use size_t for count.
1999-10-27 17:31:07 +00:00
Arturo Espinosa
3f4bad9332 Sync to laptop - Federico 1999-10-26 23:29:59 +00:00
Arturo Espinosa
4c9ee0caa9 *** empty log message *** 1999-10-26 02:19:43 +00:00
Arturo Espinosa
e35d4c6d65 Sync to laptop - Federico 1999-10-25 23:43:04 +00:00
Arturo Espinosa
143d11f435 Sync to laptop - Federico 1999-10-23 00:06:10 +00:00
Arturo Espinosa
a3551cc3d0 Comment fixes - Federico 1999-10-22 16:19:59 +00:00