Fri Sep 24 17:53:21 1999  Raph Levien  <raph@acm.org>

	* art_svp_render_aa.c (art_svp_render_insert_active): Avoid
	reading undefined memory (thanks to Morten Welinder).

1999-09-19  Raph Levien  <raph@gimp.org>

	* art_pixbuf.c (art_pixbuf_duplicate): Added a duplicate function
	at the request of Michael Meeks.

1999-09-11  Raph Levien  <raph@gimp.org>

	* art_affine.c (art_affine_to_string): Tightened the predicate for
	matching rotate-only affines, which was too weak. Thanks to lewing
	for spotting it!

1999-09-01  Raph Levien  <raph@gimp.org>

	* art_affine.c, art_alphagamma.c, art_bpath.c, art_gray_svp.c,
	art_misc.c, art_pixbuf.c, art_rect.c, art_rect_svp.c,
	art_rect_uta.c, art_rgb.c, art_rgb_affine.c,
	art_rgb_bitmap_affine.c: Updates to api doc headers.

1999-08-24  Raph Levien  <raph@gimp.org>

	* art_affine.c, art_alphagamma.c, art_alphagamma.h, art_bpath.c,
	art_bpath.h, art_gray_svp.c, art_misc.c, art_pixbuf.c,
	art_pixbuf.h, art_point.h, art_rect.c, art_rect.h: Added api
	documentation headers.

	* testart.c: Added "dash" test, for testing the vpath_dash
	functions.

	* art_rgb_pixbuf_affine.h: Fixed the #ifdef for conditional
	inclusion. Thanks to Kristian Hogsberg Kristensen for spotting
	the bug.

1999-08-24  Raph Levien  <raph@gimp.org>

	* art_svp_render_aa.c (art_svp_render_aa): Added some tests to
	avoid NaN for infinite slopes, which were causing problems on
	Alphas. Closes bug #1966.

1999-08-20  Federico Mena Quintero  <federico@redhat.com>

	* configure.in: Fixed library's libtool version number.

1999-08-03  Larry Ewing  <lewing@gimp.org>

	* art_vpath_dash.c (art_vpath_dash): fix a bug/typo that was causing
	certain paths to loop infinitely.

1999-07-28  Raph Levien  <raph@gimp.org>

	* art_vpath_dash.[ch]: Added a function to add a dash style
	to vpaths. It is tested, but has a couple of rough edges (see
	code for details).

	* testart.c: added tests for the new vpath_dash functionality.

	* Makefile.am: added art_vpath_dash.[ch] files.

1999-07-26  Raph Levien  <raph@gimp.org>

	* art_rgb.c (art_rgb_fill_run): fixed incorrect test for
	big-endianness. Thanks to Michael Zucchi for spotting it.

Fri Jul 16 23:42:59 1999  Tim Janik  <timj@gtk.org>

	* art_affine.c (art_affine_flip): flip translation matrixes as well, by
	inverting matrix[4] if (horz) and inverting matrix[5] if (vert).

Fri Jul 16 23:03:26 1999  Tim Janik  <timj@gtk.org>

	* art_pixbuf.[hc]: deprecated art_pixbuf_free_shallow(), people should
	always free pixbufs with art_pixbuf_free() and use the _dnotify variants
	for specific destruction behaviour.
	added art_pixbuf_new_rgb_dnotify() and art_pixbuf_new_rgba_dnotify()
	which allow for a destruction notification function. (this involved
	adding two extra pointers to the ArtPixBuf structure, and removal of
	the recently introduced int flags field).

Mon Jul 12 01:13:23 1999  Tim Janik  <timj@gtk.org>

	* art_affine.[hc]: added art_affine_equal(), which checks two
	matrixes for equality within grid alignment.

Fri Jul  9 17:50:19 1999  Tim Janik  <timj@gtk.org>

	* art_affine.[hc]: added art_affine_flip() to flip a matrix horizontally
	and/or vertically, or just copy it.
	added art_affine_shear() to setup a shearing matrix.

Tue Jul  6 19:03:39 1999  Tim Janik  <timj@gtk.org>

	* art_pixbuf.h: added an int flags; member to the end of the
	structure, it currently only holds information about whether the
	pixels member should be freed. (raph: i think flags is more generic
	than free_pixels, so we can reuse that field if further demands popup
	in the future).

	* art_pixbuf.c:
	(art_pixbuf_new_const_rgba):
	(art_pixbuf_new_const_rgb): new functions that prevent the pixels
	member from being freed upon art_pixbuf_free ().
	(art_pixbuf_free): only free the pixels member if it is non-NULL and
	the PIXBUF_FLAG_DESTROY_PIXELS is set.

1999-07-02  Raph Levien  <raph@gimp.org>

	* art_vpath_bpath.c (art_vpath_render_bez): Bad bad uninitialized
	variables.

	* configure.in: added compile warnings. Guess why :)

1999-06-28  Raph Levien  <raph@gimp.org>

	* art_svp_point.h:
	* art_svp_point.c: Added methods for insideness and distance
	testing, very useful for ::point methods in canvas items.

	* testart.c: test code to exercise the art_svp_point functions.

	* Makefile.am: Additional entries for art_svp_point.

1999-06-28  Raph Levien  <raph@gimp.org>

	* art_svp_render_aa.c (art_svp_render_aa): Subtle boundary
	case in realloc code -- was causing nasty segfaults.

Wed Jun 23 15:05:43 1999  Raph Levien  <raph@gimp.org>

	* art_rgb_svp.c (art_rgb_svp_alpha_opaque_callback): Missed a
	case in the anti-segfault crusade. Thanks lewing!

Wed Jun 23 11:16:42 1999  Raph Levien  <raph@gimp.org>

	* art_rgb_svp.c: Made these routines so they won't segfault even
	if alpha is out of range. Of course, that begs the question of
	fixing the render routines so they won't _make_ alpha go out of
	range, but all in good time.

Fri Jun 18 17:32:34 1999  Raph Levien  <raph@acm.org>

	* art_vpath_bpath.c (art_bez_path_to_vec): Switched to a new
	adaptive subdivision algorithm, which (finally!) takes flatness
	into account. This should result in both smoother curves and
	faster operation.

Sun Jun 13 21:07:20 1999  Raph Levien  <raph@gimp.org>

	* art_svp_wind.c (art_svp_rewind_uncrossed): Made the winding
	rule logic even more correct :). I somehow missed the fact that
	a clockwise path should be given a winding number of zero;
	last night's commit tried to make it -1 (which worked for the
	test cases I was using).

Sun Jun 13 01:23:14 1999  Raph Levien  <raph@gimp.org>

	* art_svp_wind.c (art_svp_rewind_uncrossed): Change to winding
	rule logic so that it correctly handles the case where the
	leftmost segment is negative.

	* Makefile.am (libart_lgplinc_HEADERS): made art_svp_wind.h
	a public headerfile. This is needed for the bpath canvas item.
	I'm not sure this is the correct way to do it, but it will do
	for now.

	* art_vpath_bpath.h: 
	* art_vpath_bpath.c (art_bez_path_to_vec): Added const to arg.

	* art_vpath_bpath.h: Embarrassing typo.

	* art_bpath.h: Minor tweaks to the #include paths. It is now
	consistent with the other header files.

Wed Jun  9 20:24:45 1999  Raph Levien  <raph@gimp.org>

	* art_svp_vpath_stroke.c: Added all remaining line join and cap
	types, including round, which takes flatness into account. Several
	new internal functions (art_svp_vpath_stroke_arc) and added
	flatness argument to a few internal functions. I might want to
	change the BEVEL join type to MITER for very small turn angles
	(i.e. within a flatness threshold) for efficiency.

	* art_misc.h: Added M_SQRT2 constant.

Wed Jun  2 21:56:30 1999  Raph Levien  <raph@gimp.org>

	* art_svp_vpath_stroke.c (art_svp_vpath_stroke_raw): Made the
	closed path detection capable of PostScript semantics (i.e. it
	now senses the difference between ART_MOVETO and ART_MOVETO_OPEN).

	* art_svp_vpath_stroke.c (art_svp_vpath_stroke_raw): it now
	filters out successive points that are (nearly) coincident. This
	fixes some of the crashes and hangs, including Tim Janik's
	singularity (trying to stroke MOVETO 50, 50; LINETO 50, 50; END).

	* art_svp_wind.c (art_svp_rewind_uncrossed): added a test to
	correctly handle empty input svp's.

	* art_svp_wind.c (art_svp_uncross): added a test to correctly
	handle empty input svp's.

Sun Jan 17 20:53:40 1999  Jeff Garzik  <jgarzik@pobox.com>

	* art_affine.c:
	Include string.h for memcpy.

	* art_svp_vpath.c:
	Remove conflicting static func definition.

	* art_uta_svp.c:
	Include art_vpath_svp.h for func definition.

Mon Jan  4 12:47:47 1999  Raph Levien  <raph@acm.org>

	* art_bpath.c (art_bpath_affine_transform): Stupid misnaming
	of this function (forgot the "art_").

Thu Dec 31 09:04:23 1998  Raph Levien  <raph@gimp.org>

	* art_affine.c (art_affine_rectilinear): Added this function.

	* art_rect.c (art_drect_affine_transform): Corrected the name (it
	was right in the .h). Also made it work with non-rectilinear
	transforms, while I was at it.

Thu Dec 17 11:58:24 1998  Raph Levien  <raph@acm.org>

	* art_alphagamma.h:
	* art_alphagamma.c: The real code for alphagamma.

Wed Dec 16 14:18:46 1998  Raph Levien  <raph@gimp.org>

	* art_alphagamma.h:
	* art_alphagamma.c: Added. At present, it only contains a dummy
	stub. When the real code is added, it supports doing alpha
	compositing in a gamma-corrected color space (suppressing
	jaggies).

	* art_pixbuf.h:
	* art_pixbuf.c: Added. This is a virtualization layer over
	a few different kinds of image formats.

	* art_rgb_pixbuf_affine.h:
	* art_rgb_pixbuf_affine.c: Added. Supports compositing of
	generic images over an rgb buffer.

	* art_affine.h: 
	* art_affine.c (art_affine_expansion): Added this function,
	which reports the exact scale factor in the case of rotation,
	scaling, and transformation (an approximate number in the
	case of shearing or anamorphic distortion).

	* art_misc.h:
	* art_misc.c (art_warn): Added.

	* art_rgb_affine.h:
	* art_rgb_affine.c: Added alphagamma argument (not yet implemented).

	* art_rgb_affine_private.c: Fixed typo bug that was causing
	repaint problems for nonsquare images.

	* art_rgb_bitmap_affine.h:
	* art_rgb_bitmap_affine.c: Major speed improvement, probably fixed
	correctness while I was at it. Added alphagamma argument (not yet
	implemented).

	* art_rgb_svp.h:
	* art_rgb_svp.c: Added alphagamma argument (only implemented
	in aa case, not yet alpha case).

	* art_vpath.c: increased perturbation to 2e-3, because the old
	value (1e-6) was too small.

	* testart.c: added alphagamma.
	
	* Makefile.am: added new files

Sun Dec 27 21:45:03 1998  Raph Levien  <raph@gimp.org>

	* art_rect.h: 
	* art_rect.c: Added DRect versions of the basic ops (double
	rather than int).

	* art_rect_svp.h:
	* art_rect_svp.c: Added. This computes the bounding box of
	an svp.

Wed Dec 16 14:18:46 1998  Raph Levien  <raph@gimp.org>

	* art_alphagamma.h:
	* art_alphagamma.c: Added. At present, it only contains a dummy
	stub. When the real code is added, it supports doing alpha
	compositing in a gamma-corrected color space (suppressing
	jaggies).

	* art_pixbuf.h:
	* art_pixbuf.c: Added. This is a virtualization layer over
	a few different kinds of image formats.

	* art_rgb_pixbuf_affine.h:
	* art_rgb_pixbuf_affine.c: Added. Supports compositing of
	generic images over an rgb buffer.

	* art_affine.h: 
	* art_affine.c (art_affine_expansion): Added this function,
	which reports the exact scale factor in the case of rotation,
	scaling, and transformation (an approximate number in the
	case of shearing or anamorphic distortion).

	* art_misc.h:
	* art_misc.c (art_warn): Added.

	* art_rgb_affine.h:
	* art_rgb_affine.c: Added alphagamma argument (not yet implemented).

	* art_rgb_affine_private.c: Fixed typo bug that was causing
	repaint problems for nonsquare images.

	* art_rgb_bitmap_affine.h:
	* art_rgb_bitmap_affine.c: Major speed improvement, probably fixed
	correctness while I was at it. Added alphagamma argument (not yet
	implemented).

	* art_rgb_svp.h:
	* art_rgb_svp.c: Added alphagamma argument (only implemented
	in aa case, not yet alpha case).

	* art_vpath.c: increased perturbation to 2e-3, because the old
	value (1e-6) was too small.

	* testart.c: added alphagamma.
	
	* Makefile.am: added new files

Mon Dec 14 00:16:53 1998  Raph Levien  <raph@gimp.org>

	* art_affine.c (art_affine_to_string): re-added the "scale" method
	that was accidentally deleted before check-in.

	* Makefile.am: added new files

Sun Dec 13 00:52:39 1998  Raph Levien  <raph@gimp.org>

	* art_affine.h:
	* art_affine.c: Added. Everything you ever wanted to do with an
	affine transform. Especially check the functions that generate
	concise PostScript strings for affine transforms.	

	* art_filterlevel.h: A simple enum for selecting filtering
	style.

	* art_rgb_affine.h:
	* art_rgb_affine.c (art_rgb_affine): Added. This function
	composites an (opaque) rgb image over an rgb pixel buffer. At
	present, it's slow and only nearest neighbor filtering is enabled.

	* art_rgb_rgba_affine.h:
	* art_rgb_rgba_affine.c: Analogous, but for compositing rgba
	images.

	* art_rgb_bitmap_affine.h:
	* art_rgb_bitmap_affine.c: Analogous, but for compositing bitmap
	images.

	* art_rgb_affine_private.c (art_rgb_affine_run): Added. This is
	a common function used by all the rgb_affine modules to move
	testing for source image bbox out of the inner loop.

	* Makefile.am: added the new files

	* testart.c: exercise the image compositors

Wed Dec  9 23:36:35 1998  Raph Levien  <raph@gimp.org>

	* art_vpath.c (art_vpath_perturb): Made it deal correctly
	with closed paths (the MOVETO and closing LINETO have to
	agree).

	* art_svp_wind.c: Made the bbox calculations for the resulting
	svp's correct.

	* art_svp.h:
	* art_svp.c: The art_svp_seg_compare function moved here, because
	it's required in art_svp_ops.

	* art_svp.c (art_svp_add_segment): It now does bbox calculations.

	* art_svp_ops.h: 
	* art_svp_ops.c: Added. Populated with basic union, intersection,
	and diff functions.

	* art_vpath_svp.h: 
	* art_vpath_svp.c: Added. Populated with a function to convert
	from sorted to unsorted vector paths

	* Makefile.am: added the new files

	* testart.c: exercise the stroke outline and vector path
	operations.

1998-12-08  Herbert Valerio Riedel  <hvr@hvrlab.ml.org>

	* art_svp_wind.c: added #include <string.h> for memcpy()

Sun Dec  6 22:15:12 1998  Raph Levien  <raph@gimp.org>

	* art_svp_wind.[ch], art_svp_vpath_stroke.[ch]: Added, but it
	doesn't work yet. These will do stroke outline and basic
	vector ops like union, intersect, etc.

	* art_svp_render_aa.c: Added a simple speedup based on bbox
	culling. I will want to do more speedups, but none of this is
	necessary for the freeze.

	* art_svp_vpath.c: Fixed some bugs in the art_svp_from_vpath in
	cases where there is more than one subpath.

	* art_vpath.h:
	* art_vpath.c (art_vpath_perturb): Added this function.  This will
	help cheat as long as the basic vector ops have numerical
	stability problems.

Fri Dec  4 18:00:38 1998  Raph Levien  <raph@gimp.org>

	* art_svp_render_aa.c (art_svp_render_aa): Changed the api
	slightly, to guarantee that the steps are all within the range
	from x0 (inclusive) to x1 (exclusive).

	* art_gray_svp.c, art_gray_svp.h: Added. Populated with functions
	to render into a simple graymap.

	* art_rgb.c, art_rgb.c: Added. Populated with fill_run and
	run_alpha methods.

	* art_rgb_svp.c, art_rgb_svp.h: Added. Populated with functions to
	render into an RGB buffer, and to composite over an RGB buffer.

	* Makefile.am: added art_gray_svp, art_rgb, and art_rgb_svp.

	* testart.c: test the color and layered rendering.

Mon Nov 30 01:30:25 1998  Raph Levien  <raph@gimp.org>

	* testart.c: added vector path rendering stuff. Some of it needs
	to go out of the test framework and into the module, but the
	api hasn't settled down entirely yet (in the real code, all
	x's in the step field are within bounds).

	* art_svp_render_aa.c, art_svp_render_aa.c.h: added.

	* art_svp_vpath.c, art_svp_vpath.h: added.

	* art_pathcode.h: added ART_MOVETO_OPEN (libart uses an
	ART_MOVETO_OPEN code at the beginning to indicate an open path,
	while PostScript uses the lack of a closepath at the end).

	* art_vpath_bpath.c, art_vpath_bpath.h: fixed it up, added
	flatness arg to api.

	* Makefile.am: added new source files.

Wed Nov 25 17:19:44 1998  Raph Levien  <raph@gimp.org>

	* art_svp.h, art_svp.c: added, basic constructors for sorted
	vector paths.

Sun Nov 22 23:21:09 1998  Raph Levien  <raph@gimp.org>

	* Makefile.am (libart_lgplincdir): Fixed stupid bug in naming of
	the variable.

Sun Nov 22 21:41:13 1998  Raph Levien  <raph@gimp.org>

	* art_uta_vpath.c: moved art_uta_union into art_uta_ops.

	* art_uta_ops.[ch]: added, populated with art_uta_union.

Thu Nov 19 00:19:40 1998  Raph Levien  <raph@gimp.org>

	* libartConf.sh.in: added

	* Makefile.am: added creation of libartConf.sh, added -version-info
	* configure.in: added LIBART_VERSION_INFO, support for libartConf.sh
	
	* libart.m4: updated version history :)

Wed Nov 18 18:15:20 1998  Raph Levien  <raph@gimp.org>

	* configure.in (LIBART_VERSION): set this, so that libart-config
	--version now works.

Wed Nov 18 16:50:58 1998  Raph Levien  <raph@gimp.org>

	* libart.m4: added (just copied from esound)
	* configure.in, Makefile.am: added support for libart-config
	* libart-config.in: added (mostly copied from esound)

Tue Nov 10 12:43:30 1998  Raph Levien  <raph@acm.org>

	* Getting the library in shape for initial checkin to CVS.


