The BIG graph update
[rrdtool.git] / libraries / libart_lgpl-2.3.7 / ChangeLog
1 2001-10-31  Anders Carlsson  <andersca@gnu.org>
2
3         * Release 2.3.7
4
5 2001-10-15  Raph Levien  <raph@pixel.artofcode.com>
6
7         * art_svp_intersect.c (art_svp_intersect_horiz): Minor
8         logic fix so that horiz segments successfully cross
9         zero length segments in the active list.
10
11         (art_svp_intersect_test_cross): Flags indicating whether to
12         do add_point (potentially breaking neighbors) to left and
13         to right.
14
15         (art_svp_intersect_insert_cross): Provide ART_BREAK_LEFT and
16         ART_BREAK_RIGHT flags to art_svp_intersect_test_cross,
17         depending on direction of search.
18
19         (art_svp_intersect_advance_cursor): Provide flags (allow
20         both left and right breaking) to test_cross.
21         
22 2001-10-15  Raph Levien  <raph@pixel.artofcode.com>
23
24         * art_svp_intersect.c (CHEAP_SANITYCHECK): Added an inexpensive
25         sanitycheck to detect multiple insertions of a segment into the
26         horiz list.
27
28         (art_svp_writer_rewind_add_point): Avoid breaking lines below
29         their bottom point.
30
31         (art_svp_intersect_test_cross): Handle cases correctly where
32         intersection point matches y0 of left or right segment. These _do_
33         happen in real world examples. Also, do add_point on newly
34         inserted intersection point.
35
36 2001-10-14  Raph Levien  <raph@pixel.artofcode.com>
37
38         * art_svp_intersect.c (art_svp_intersect_add_point): Fixed
39         rather subtle logic bug that misplaced insertion point
40         when seg argument was NULL.
41
42 2001-10-11  Raph Levien  <raph@pixel.artofcode.com>
43
44         * art_svp_render_aa.c (art_svp_render_aa_iter_step): Got rid
45         of qsort of steps, and now keep the step list in sorted order.
46         Further, we combine duplicate steps with the same x value,
47         which bounds the size of the step list to x1 - x0, so we
48         don't need to dynamically resize it. Thanks greatly to
49         Bruce Q. Hammond for the original version of this patch.
50
51 2001-10-09  Raph Levien  <raph@pixel.artofcode.com>
52
53         * art_svp_intersect.c (art_svp_intersect_test_cross): Breaks
54         bottom part of line segments in "too close" cases.
55
56 2001-10-09  Raph Levien  <raph@pixel.artofcode.com>
57
58         * art_svp_intersect.c (art_svp_writer_rewind_add_point): Fixed
59         bbox computation.
60         (art_svp_intersector): Handle degenerate case where input
61         SVP has 0 segments.
62
63         * art_svp_intersect.h: Moved definition of art_svp_intersector
64         inside #ifdef __cplusplus, so it links properly against C++
65
66 2001-10-09  Raph Levien  <raph@pixel.artofcode.com>
67
68         * art_svp_intersect.c (art_svp_intersect_break): Handle
69         case when break y equals sweep line correctly. Also adds
70         first try at winding number sanitychecker, but that makes
71         too many false positives.
72
73 2001-10-07  Raph Levien  <raph@pixel.artofcode.com>
74
75         * art_svp.c (EPSILON): Set to zero if new intersector is
76         in use - we want svp's to be in strict sorted order.
77
78         * art_svp_intersect.c (art_svp_intersect_test_cross): Explicitly
79         check that top points are equal, and swap immediately if b is out
80         of order.
81         (art_svp_intersect_horiz): Break segments that intersect
82         horizontal lines. Now passes "two squares with offset" test.
83
84 2001-10-05  Raph Levien  <raph@pixel.artofcode.com>
85
86         * art_svp_intersect.c: Major changes to accommodate
87         horizontal lines. Intersections of horizontal lines
88         aren't fully processed, but should work a lot better
89         than before.
90
91         * testart.c: Minor tweaks. testpat now frees memory
92         so it can be run under memprof to detect leaks.
93
94 2001-10-03  Raph Levien  <raph@pixel.artofcode.com>
95
96         * art_svp_intersect.c (art_svp_intersect_advance_cursor):
97         Made test_cross for inserted segments common between
98         intersection processing and cursor advance, and also took
99         care of a case that hadn't been handled before. Also added
100         invariant sanitychecker for debugging purposes.
101
102 2001-10-02  Raph Levien  <raph@pixel.artofcode.com>
103
104         * art_svp_ops.c: ART_USE_NEW_INTERSECTOR variants of svp
105         ops changed to do shallow free of merged svp.
106
107 2001-10-01  Raph Levien  <raph@acm.org>
108
109         * art_svp_intersect.c:
110         * art_svp_intersect.h:
111         * Makefile.am:
112         * art_misc.h:
113         * art_svp_wind.h: First commit of new intersector code. It is
114           turned off by default, but can be enabled by #defining
115           ART_USE_NEW_INTERSECTOR in art_misc.h.
116
117         * art_svp_ops.c: Make svp ops use new intersector if enabled.
118
119         * art_svp_vpath_stroke.c: Make vpath stroking use new intersector
120         if enabled.
121         
122         * testart.c: New test case for intersector.
123
124 Wed Sep 26 03:48:13 2001  George Lebl <jirka@5z.com>
125
126         * Release 2.3.6
127
128 Wed Sep 26 03:11:40 2001  George Lebl <jirka@5z.com>
129
130         * gen_art_config.c: Fix 64bit issues, cast sizeof return when
131           using %d to print it.
132
133 2001-09-13  Havoc Pennington  <hp@redhat.com>
134
135         * Makefile.am: rename library to libart_lgpl_2
136
137         * libart-2.0.pc.in (Cflags): move includes
138
139         * libart-config.in: move includes
140
141         * Makefile.am: delete libartConf.sh, rename libart-config
142         (EXTRA_DIST): don't install m4 files
143         (libart_lgplincdir): move headers
144
145 2001-08-03  Michael Meeks  <michael@ximian.com>
146
147         * Version 2.3.5 for the API freeze.
148
149 2001-07-12  Darin Adler  <darin@bentspoon.com>
150
151         * art_affine.c: (art_affine_expansion): Fix handling of
152         negative numbers. We ran into this bug a while back when
153         figuring out why librsvg couldn't handle certain svg files.
154
155 2001-07-12  Darin Adler  <darin@bentspoon.com>
156
157         * art_misc.h: Change art_expand macro so it's a single
158         statement, using the do while (0) trick, which gets rid
159         of some warnings.
160         * art_pixbuf.c: Add a missing include.
161         * art_vpath_svp.c: (art_vpath_from_svp): Initialize a
162         variable to avoid a compiler warning.
163         * gen_art_config.c: Add a missing include.
164
165 2001-03-24  Martin Baulig  <baulig@suse.de>
166
167         Applied the patch from Alexander Larsson which was sitting
168         in gnome-libs/patches/libart.diff since February.
169         [FIXME: Alex, can you please provide a ChangeLog?])
170
171         * art_rgb_a_affine.[ch]: New files.
172
173 2001-01-07  Hans Breuer <Hans@Breuer.Org>
174         * art_misc.c : embryonic change to use libart_lgpl on win32
175         * libart.def : new file, exported functions for win32 dll
176         * makefile.msc : handwritten for MSVC compiler
177
178 2000-09-30  Martin Baulig  <baulig@suse.de>
179
180         * libart-2.0.pc.in: Provide pkg-config script.
181
182         * configure.in: Create libart-2.0.pc from libart-2.0.pc.in.
183         * Makefile.am (pkgconfig_DATA): Install the libart-2.0.pc
184         script in `$(libdir)/pkgconfig'.
185
186 2000-08-15  Raph Levien  <raph@acm.org>
187
188         * art_render.c (art_render_image_solid_negotiate): Only
189         sets ART_IMAGE_SOURCE_CAN_COMPOSITE when a compositing
190         callback is selected. Previously was causing segfaults on
191         non-alpha images. Thanks to Leonard Rosenthol for spotting
192         the bug.
193
194 Fri Jun 30 22:56:58 2000  Raph Levien  <raph@acm.org>
195
196         * art_render.c (art_render_composite): Fixed a bug that caused
197         it to ignore the alpha setting. Also art_render_composite_8().
198
199 2000-06-01  John Sullivan  <sullivan@eazel.com>
200
201         * art_svp_render_aa.c: (art_svp_render_aa_iter_step):
202         Made it build by correcting struct member name from
203         Raph's previous checkin.
204
205 Wed May 31 11:10:58 2000  Raph Levien  <raph@acm.org>
206
207         * art_svp_render_aa.c (art_svp_render_aa_iter_step): Updated
208         n_steps_max in iter structure after steps reallocation.
209
210 Tue May 30 10:33:13 2000  Raph Levien  <raph@acm.org>
211
212         * art_svp_render_aa.c (art_svp_render_aa_iter_step): Fixed not
213         updating iter->steps when steps gets reallocated.
214
215 2000-05-30  Pavel Cisler <pavel@eazel.com>
216
217         * art_rgba.c:
218         Make it build -- fix a broken include.
219
220 Tue May 30 00:09:21 2000  Raph Levien  <raph@acm.org>
221
222         * art_render_gradient.c (art_render_gradient_setpix): Fixed
223         an off-by-one loop error.
224
225 Mon May 29 15:00:39 2000  Raph Levien  <raph@acm.org>
226
227         * Makefile.am: Moved relevant .h files into HEADERS stanza.
228
229 Mon May 29 13:48:49 2000  Raph Levien  <raph@acm.org>
230
231         This is a fairly major commit, as it adds both the new, modular
232         rendering architecture and gradients. Quite a bit of the code
233         feels like "reference code" now, in that it is (hopefully)
234         correct, but not necessarily very fast. In addition, there remain
235         a few things not done, including the use of SVP's as non-driver
236         mask sources. AlphaGamma and filter level also remain
237         unimplemented. No compositing modes other than ART_NORMAL are
238         implemented. All in good time!
239         
240         * configure.in: added -Wmissing-prototypes flag. Bumped version
241         number to 2.3.0.
242
243         * art_render.h:
244         * art_render.c: Added new rendering architecture.
245
246         * art_render_svp.h:
247         * art_render_svp.c: Added renderers to use SVP's as mask
248         sources in new rendering architecture.
249
250         * art_render_gradient.h:
251         * art_render_gradient.c: Added linear and radial gradients
252         as image sources in new rendering architecture.
253
254         * art_rgba.h:
255         * art_rgba.c: Added functions for manipulating and compositing
256         RGBA pixels.
257
258         * art_svp_wind.c: Added static to trap_epsilon(), #ifdef'd out
259         traverse().
260
261         * art_uta_ops.c: Added #include "art_uta_ops.h".
262
263         * art_uta_rect.c: Added #include "art_uta_rect.h".
264
265         * art_uta_svp.h: fixed __ART_UTA_SVP_H__ name.
266
267         * art_misc.h: Added ART_GNUC_NORETURN attribute, added that
268         to the prototype for art_die(). Added "static" to function
269         declarations to avoid warnings when compiled with
270
271         * testart.c: Added gradient test.
272
273 Thu May 25 23:30:39 2000  Raph Levien  <raph@acm.org>
274
275         * art_svp_render_aa.h:
276         * art_svp_render_aa.c: Added art_svp_render_aa_iter functions,
277         suitable for iterative rendering of an svp, one scan line at a
278         time.
279
280         * configure.in: Bumped version to 2.2.0.
281
282 Tue May 16 15:03:35 2000  Raph Levien  <raph@acm.org>
283
284         * art_rgb_pixbuf_affine.c: Included corresponding .h file.
285
286         * art_rgb_pixbuf_affine.h: Put recursive #includes inside
287         LIBART_COMPILATION test.
288
289         * art_gray_svp.c:
290         * art_rgb_svp.c: Explicit casts for callback data. Also removed
291         "render the steps into tmpbuf" comment.
292
293         * gen_art_config.c:
294         * Makefile.am:
295         * configure.in: Added code to automatically generate an
296         art_config.h file, to be installed in libart's include dir. This
297         file defines ART_SIZEOF_{CHAR,SHORT,INT,LONG} and art_u{8,16,32}.
298
299         * art_misc.h: Moved definition of art_u8 and art_u32 into
300         art_config.h. Added GCC printf format attributes.
301
302         * art_svp_wind.c (traverse): Fixed UMR bug here. The function
303         isn't actually used, so it's just for cleanliness.
304
305 2000-04-18  Lauris Kaplinski  <lauris@ariman.ee>
306
307         * art_affine.c (art_affine_to_string): Replaced snprinf with
308         art_ftoa to avoid localisation of generated numbers
309
310 2000-04-18  ERDI Gergo  <cactus@cactus.rulez.org>
311
312         * art_rgb_pixbuf_affine.h: Included the ArtPixBuf declaration
313
314 Fri Apr 14 16:33:55 2000  Raph Levien  <raph@acm.org>
315
316         * art_svp_wind.c (art_svp_uncross, art_svp_rewind_uncrossed):
317         Fixed uninitialized memory reads when inserting new segment into
318         active_segs.
319
320         * art_bpath.c (art_bpath_affine_transform): Made it avoid
321         potential uninitialized memory reads when not all the coordinates
322         are needed. Thanks to Morten Welinder for spotting both of these
323         problems.
324
325 2000-04-05  Raph Levien  <raph@gimp.org>
326
327         * art_svp_wind.c: Make "colinear" warnings go to stderr instead
328         of stdout. Of course, when I finish the new intersector, these
329         will go away entirely.
330
331 2000-04-04  Raph Levien  <raph@gimp.org>
332
333         * art_uta_vpath.c (art_uta_add_line): Fixed bug that was causing
334         segfaults on alphas. Thanks to msw for localizing it.
335
336 2000-01-17  Raph Levien  <raph@gimp.org>
337
338         * art_svp_vpath_stroke.c (art_svp_vpath_stroke): Typo in api
339         header (thanks rak).
340
341 2000-01-16  Timur Bakeyev  <timur@gnu.org>
342
343         * autoconf.sh: Instead of jumping between srdir and builddir just process
344         all the auto* staff in srcdir. In fact, just saying the same things in 
345         other words.
346
347 2000-01-10  Elliot Lee  <sopwith@redhat.com>
348
349         * Makefile.am, *.h: Add rather bad hacks to the header files to allow compilation
350
351         * Makefile.am: Distribute libart-config.in
352
353 2000-01-09  Raph Levien  <raph@gimp.org>
354
355         art_rgb_pixbuf_affine.c, art_rgb_rgba_affine.c, art_rgb_svp.c,
356         art_svp.c, art_svp_ops.c, art_svp_point.c, art_svp_render_aa.c,
357         art_svp_vpath.c, art_svp_vpath_stroke.c, art_svp_wind.c,
358         art_uta.c, art_uta_ops.c, art_uta_rect.c, art_uta_svp.c,
359         art_uta_vpath.c, art_vpath.c, art_vpath_bpath.c, art_vpath_dash.c,
360         art_vpath_svp.c: Added API documentation.
361
362 Fri Sep 24 17:53:21 1999  Raph Levien  <raph@acm.org>
363
364         * art_svp_render_aa.c (art_svp_render_insert_active): Avoid
365         reading undefined memory (thanks to Morten Welinder).
366
367 1999-09-19  Raph Levien  <raph@gimp.org>
368
369         * art_pixbuf.c (art_pixbuf_duplicate): Added a duplicate function
370         at the request of Michael Meeks.
371
372 1999-09-11  Raph Levien  <raph@gimp.org>
373
374         * art_affine.c (art_affine_to_string): Tightened the predicate for
375         matching rotate-only affines, which was too weak. Thanks to lewing
376         for spotting it!
377
378 1999-09-01  Raph Levien  <raph@gimp.org>
379
380         * art_affine.c, art_alphagamma.c, art_bpath.c, art_gray_svp.c,
381         art_misc.c, art_pixbuf.c, art_rect.c, art_rect_svp.c,
382         art_rect_uta.c, art_rgb.c, art_rgb_affine.c,
383         art_rgb_bitmap_affine.c: Updates to api doc headers.
384
385 1999-08-24  Raph Levien  <raph@gimp.org>
386
387         * art_affine.c, art_alphagamma.c, art_alphagamma.h, art_bpath.c,
388         art_bpath.h, art_gray_svp.c, art_misc.c, art_pixbuf.c,
389         art_pixbuf.h, art_point.h, art_rect.c, art_rect.h: Added api
390         documentation headers.
391
392         * testart.c: Added "dash" test, for testing the vpath_dash
393         functions.
394
395         * art_rgb_pixbuf_affine.h: Fixed the #ifdef for conditional
396         inclusion. Thanks to Kristian Hogsberg Kristensen for spotting
397         the bug.
398
399 1999-08-24  Raph Levien  <raph@gimp.org>
400
401         * art_svp_render_aa.c (art_svp_render_aa): Added some tests to
402         avoid NaN for infinite slopes, which were causing problems on
403         Alphas. Closes bug #1966.
404
405 1999-08-20  Federico Mena Quintero  <federico@redhat.com>
406
407         * configure.in: Fixed library's libtool version number.
408
409 1999-08-03  Larry Ewing  <lewing@gimp.org>
410
411         * art_vpath_dash.c (art_vpath_dash): fix a bug/typo that was causing
412         certain paths to loop infinitely.
413
414 1999-07-28  Raph Levien  <raph@gimp.org>
415
416         * art_vpath_dash.[ch]: Added a function to add a dash style
417         to vpaths. It is tested, but has a couple of rough edges (see
418         code for details).
419
420         * testart.c: added tests for the new vpath_dash functionality.
421
422         * Makefile.am: added art_vpath_dash.[ch] files.
423
424 1999-07-26  Raph Levien  <raph@gimp.org>
425
426         * art_rgb.c (art_rgb_fill_run): fixed incorrect test for
427         big-endianness. Thanks to Michael Zucchi for spotting it.
428
429 Fri Jul 16 23:42:59 1999  Tim Janik  <timj@gtk.org>
430
431         * art_affine.c (art_affine_flip): flip translation matrixes as well, by
432         inverting matrix[4] if (horz) and inverting matrix[5] if (vert).
433
434 Fri Jul 16 23:03:26 1999  Tim Janik  <timj@gtk.org>
435
436         * art_pixbuf.[hc]: deprecated art_pixbuf_free_shallow(), people should
437         always free pixbufs with art_pixbuf_free() and use the _dnotify variants
438         for specific destruction behaviour.
439         added art_pixbuf_new_rgb_dnotify() and art_pixbuf_new_rgba_dnotify()
440         which allow for a destruction notification function. (this involved
441         adding two extra pointers to the ArtPixBuf structure, and removal of
442         the recently introduced int flags field).
443
444 Mon Jul 12 01:13:23 1999  Tim Janik  <timj@gtk.org>
445
446         * art_affine.[hc]: added art_affine_equal(), which checks two
447         matrixes for equality within grid alignment.
448
449 Fri Jul  9 17:50:19 1999  Tim Janik  <timj@gtk.org>
450
451         * art_affine.[hc]: added art_affine_flip() to flip a matrix horizontally
452         and/or vertically, or just copy it.
453         added art_affine_shear() to setup a shearing matrix.
454
455 Tue Jul  6 19:03:39 1999  Tim Janik  <timj@gtk.org>
456
457         * art_pixbuf.h: added an int flags; member to the end of the
458         structure, it currently only holds information about whether the
459         pixels member should be freed. (raph: i think flags is more generic
460         than free_pixels, so we can reuse that field if further demands popup
461         in the future).
462
463         * art_pixbuf.c:
464         (art_pixbuf_new_const_rgba):
465         (art_pixbuf_new_const_rgb): new functions that prevent the pixels
466         member from being freed upon art_pixbuf_free ().
467         (art_pixbuf_free): only free the pixels member if it is non-NULL and
468         the PIXBUF_FLAG_DESTROY_PIXELS is set.
469
470 1999-07-02  Raph Levien  <raph@gimp.org>
471
472         * art_vpath_bpath.c (art_vpath_render_bez): Bad bad uninitialized
473         variables.
474
475         * configure.in: added compile warnings. Guess why :)
476
477 1999-06-28  Raph Levien  <raph@gimp.org>
478
479         * art_svp_point.h:
480         * art_svp_point.c: Added methods for insideness and distance
481         testing, very useful for ::point methods in canvas items.
482
483         * testart.c: test code to exercise the art_svp_point functions.
484
485         * Makefile.am: Additional entries for art_svp_point.
486
487 1999-06-28  Raph Levien  <raph@gimp.org>
488
489         * art_svp_render_aa.c (art_svp_render_aa): Subtle boundary
490         case in realloc code -- was causing nasty segfaults.
491
492 Wed Jun 23 15:05:43 1999  Raph Levien  <raph@gimp.org>
493
494         * art_rgb_svp.c (art_rgb_svp_alpha_opaque_callback): Missed a
495         case in the anti-segfault crusade. Thanks lewing!
496
497 Wed Jun 23 11:16:42 1999  Raph Levien  <raph@gimp.org>
498
499         * art_rgb_svp.c: Made these routines so they won't segfault even
500         if alpha is out of range. Of course, that begs the question of
501         fixing the render routines so they won't _make_ alpha go out of
502         range, but all in good time.
503
504 Fri Jun 18 17:32:34 1999  Raph Levien  <raph@acm.org>
505
506         * art_vpath_bpath.c (art_bez_path_to_vec): Switched to a new
507         adaptive subdivision algorithm, which (finally!) takes flatness
508         into account. This should result in both smoother curves and
509         faster operation.
510
511 Sun Jun 13 21:07:20 1999  Raph Levien  <raph@gimp.org>
512
513         * art_svp_wind.c (art_svp_rewind_uncrossed): Made the winding
514         rule logic even more correct :). I somehow missed the fact that
515         a clockwise path should be given a winding number of zero;
516         last night's commit tried to make it -1 (which worked for the
517         test cases I was using).
518
519 Sun Jun 13 01:23:14 1999  Raph Levien  <raph@gimp.org>
520
521         * art_svp_wind.c (art_svp_rewind_uncrossed): Change to winding
522         rule logic so that it correctly handles the case where the
523         leftmost segment is negative.
524
525         * Makefile.am (libart_lgplinc_HEADERS): made art_svp_wind.h
526         a public headerfile. This is needed for the bpath canvas item.
527         I'm not sure this is the correct way to do it, but it will do
528         for now.
529
530         * art_vpath_bpath.h: 
531         * art_vpath_bpath.c (art_bez_path_to_vec): Added const to arg.
532
533         * art_vpath_bpath.h: Embarrassing typo.
534
535         * art_bpath.h: Minor tweaks to the #include paths. It is now
536         consistent with the other header files.
537
538 Wed Jun  9 20:24:45 1999  Raph Levien  <raph@gimp.org>
539
540         * art_svp_vpath_stroke.c: Added all remaining line join and cap
541         types, including round, which takes flatness into account. Several
542         new internal functions (art_svp_vpath_stroke_arc) and added
543         flatness argument to a few internal functions. I might want to
544         change the BEVEL join type to MITER for very small turn angles
545         (i.e. within a flatness threshold) for efficiency.
546
547         * art_misc.h: Added M_SQRT2 constant.
548
549 Wed Jun  2 21:56:30 1999  Raph Levien  <raph@gimp.org>
550
551         * art_svp_vpath_stroke.c (art_svp_vpath_stroke_raw): Made the
552         closed path detection capable of PostScript semantics (i.e. it
553         now senses the difference between ART_MOVETO and ART_MOVETO_OPEN).
554
555         * art_svp_vpath_stroke.c (art_svp_vpath_stroke_raw): it now
556         filters out successive points that are (nearly) coincident. This
557         fixes some of the crashes and hangs, including Tim Janik's
558         singularity (trying to stroke MOVETO 50, 50; LINETO 50, 50; END).
559
560         * art_svp_wind.c (art_svp_rewind_uncrossed): added a test to
561         correctly handle empty input svp's.
562
563         * art_svp_wind.c (art_svp_uncross): added a test to correctly
564         handle empty input svp's.
565
566 Sun Jan 17 20:53:40 1999  Jeff Garzik  <jgarzik@pobox.com>
567
568         * art_affine.c:
569         Include string.h for memcpy.
570
571         * art_svp_vpath.c:
572         Remove conflicting static func definition.
573
574         * art_uta_svp.c:
575         Include art_vpath_svp.h for func definition.
576
577 Mon Jan  4 12:47:47 1999  Raph Levien  <raph@acm.org>
578
579         * art_bpath.c (art_bpath_affine_transform): Stupid misnaming
580         of this function (forgot the "art_").
581
582 Thu Dec 31 09:04:23 1998  Raph Levien  <raph@gimp.org>
583
584         * art_affine.c (art_affine_rectilinear): Added this function.
585
586         * art_rect.c (art_drect_affine_transform): Corrected the name (it
587         was right in the .h). Also made it work with non-rectilinear
588         transforms, while I was at it.
589
590 Thu Dec 17 11:58:24 1998  Raph Levien  <raph@acm.org>
591
592         * art_alphagamma.h:
593         * art_alphagamma.c: The real code for alphagamma.
594
595 Wed Dec 16 14:18:46 1998  Raph Levien  <raph@gimp.org>
596
597         * art_alphagamma.h:
598         * art_alphagamma.c: Added. At present, it only contains a dummy
599         stub. When the real code is added, it supports doing alpha
600         compositing in a gamma-corrected color space (suppressing
601         jaggies).
602
603         * art_pixbuf.h:
604         * art_pixbuf.c: Added. This is a virtualization layer over
605         a few different kinds of image formats.
606
607         * art_rgb_pixbuf_affine.h:
608         * art_rgb_pixbuf_affine.c: Added. Supports compositing of
609         generic images over an rgb buffer.
610
611         * art_affine.h: 
612         * art_affine.c (art_affine_expansion): Added this function,
613         which reports the exact scale factor in the case of rotation,
614         scaling, and transformation (an approximate number in the
615         case of shearing or anamorphic distortion).
616
617         * art_misc.h:
618         * art_misc.c (art_warn): Added.
619
620         * art_rgb_affine.h:
621         * art_rgb_affine.c: Added alphagamma argument (not yet implemented).
622
623         * art_rgb_affine_private.c: Fixed typo bug that was causing
624         repaint problems for nonsquare images.
625
626         * art_rgb_bitmap_affine.h:
627         * art_rgb_bitmap_affine.c: Major speed improvement, probably fixed
628         correctness while I was at it. Added alphagamma argument (not yet
629         implemented).
630
631         * art_rgb_svp.h:
632         * art_rgb_svp.c: Added alphagamma argument (only implemented
633         in aa case, not yet alpha case).
634
635         * art_vpath.c: increased perturbation to 2e-3, because the old
636         value (1e-6) was too small.
637
638         * testart.c: added alphagamma.
639         
640         * Makefile.am: added new files
641
642 Sun Dec 27 21:45:03 1998  Raph Levien  <raph@gimp.org>
643
644         * art_rect.h: 
645         * art_rect.c: Added DRect versions of the basic ops (double
646         rather than int).
647
648         * art_rect_svp.h:
649         * art_rect_svp.c: Added. This computes the bounding box of
650         an svp.
651
652 Wed Dec 16 14:18:46 1998  Raph Levien  <raph@gimp.org>
653
654         * art_alphagamma.h:
655         * art_alphagamma.c: Added. At present, it only contains a dummy
656         stub. When the real code is added, it supports doing alpha
657         compositing in a gamma-corrected color space (suppressing
658         jaggies).
659
660         * art_pixbuf.h:
661         * art_pixbuf.c: Added. This is a virtualization layer over
662         a few different kinds of image formats.
663
664         * art_rgb_pixbuf_affine.h:
665         * art_rgb_pixbuf_affine.c: Added. Supports compositing of
666         generic images over an rgb buffer.
667
668         * art_affine.h: 
669         * art_affine.c (art_affine_expansion): Added this function,
670         which reports the exact scale factor in the case of rotation,
671         scaling, and transformation (an approximate number in the
672         case of shearing or anamorphic distortion).
673
674         * art_misc.h:
675         * art_misc.c (art_warn): Added.
676
677         * art_rgb_affine.h:
678         * art_rgb_affine.c: Added alphagamma argument (not yet implemented).
679
680         * art_rgb_affine_private.c: Fixed typo bug that was causing
681         repaint problems for nonsquare images.
682
683         * art_rgb_bitmap_affine.h:
684         * art_rgb_bitmap_affine.c: Major speed improvement, probably fixed
685         correctness while I was at it. Added alphagamma argument (not yet
686         implemented).
687
688         * art_rgb_svp.h:
689         * art_rgb_svp.c: Added alphagamma argument (only implemented
690         in aa case, not yet alpha case).
691
692         * art_vpath.c: increased perturbation to 2e-3, because the old
693         value (1e-6) was too small.
694
695         * testart.c: added alphagamma.
696         
697         * Makefile.am: added new files
698
699 Mon Dec 14 00:16:53 1998  Raph Levien  <raph@gimp.org>
700
701         * art_affine.c (art_affine_to_string): re-added the "scale" method
702         that was accidentally deleted before check-in.
703
704         * Makefile.am: added new files
705
706 Sun Dec 13 00:52:39 1998  Raph Levien  <raph@gimp.org>
707
708         * art_affine.h:
709         * art_affine.c: Added. Everything you ever wanted to do with an
710         affine transform. Especially check the functions that generate
711         concise PostScript strings for affine transforms.       
712
713         * art_filterlevel.h: A simple enum for selecting filtering
714         style.
715
716         * art_rgb_affine.h:
717         * art_rgb_affine.c (art_rgb_affine): Added. This function
718         composites an (opaque) rgb image over an rgb pixel buffer. At
719         present, it's slow and only nearest neighbor filtering is enabled.
720
721         * art_rgb_rgba_affine.h:
722         * art_rgb_rgba_affine.c: Analogous, but for compositing rgba
723         images.
724
725         * art_rgb_bitmap_affine.h:
726         * art_rgb_bitmap_affine.c: Analogous, but for compositing bitmap
727         images.
728
729         * art_rgb_affine_private.c (art_rgb_affine_run): Added. This is
730         a common function used by all the rgb_affine modules to move
731         testing for source image bbox out of the inner loop.
732
733         * Makefile.am: added the new files
734
735         * testart.c: exercise the image compositors
736
737 Wed Dec  9 23:36:35 1998  Raph Levien  <raph@gimp.org>
738
739         * art_vpath.c (art_vpath_perturb): Made it deal correctly
740         with closed paths (the MOVETO and closing LINETO have to
741         agree).
742
743         * art_svp_wind.c: Made the bbox calculations for the resulting
744         svp's correct.
745
746         * art_svp.h:
747         * art_svp.c: The art_svp_seg_compare function moved here, because
748         it's required in art_svp_ops.
749
750         * art_svp.c (art_svp_add_segment): It now does bbox calculations.
751
752         * art_svp_ops.h: 
753         * art_svp_ops.c: Added. Populated with basic union, intersection,
754         and diff functions.
755
756         * art_vpath_svp.h: 
757         * art_vpath_svp.c: Added. Populated with a function to convert
758         from sorted to unsorted vector paths
759
760         * Makefile.am: added the new files
761
762         * testart.c: exercise the stroke outline and vector path
763         operations.
764
765 1998-12-08  Herbert Valerio Riedel  <hvr@hvrlab.ml.org>
766
767         * art_svp_wind.c: added #include <string.h> for memcpy()
768
769 Sun Dec  6 22:15:12 1998  Raph Levien  <raph@gimp.org>
770
771         * art_svp_wind.[ch], art_svp_vpath_stroke.[ch]: Added, but it
772         doesn't work yet. These will do stroke outline and basic
773         vector ops like union, intersect, etc.
774
775         * art_svp_render_aa.c: Added a simple speedup based on bbox
776         culling. I will want to do more speedups, but none of this is
777         necessary for the freeze.
778
779         * art_svp_vpath.c: Fixed some bugs in the art_svp_from_vpath in
780         cases where there is more than one subpath.
781
782         * art_vpath.h:
783         * art_vpath.c (art_vpath_perturb): Added this function.  This will
784         help cheat as long as the basic vector ops have numerical
785         stability problems.
786
787 Fri Dec  4 18:00:38 1998  Raph Levien  <raph@gimp.org>
788
789         * art_svp_render_aa.c (art_svp_render_aa): Changed the api
790         slightly, to guarantee that the steps are all within the range
791         from x0 (inclusive) to x1 (exclusive).
792
793         * art_gray_svp.c, art_gray_svp.h: Added. Populated with functions
794         to render into a simple graymap.
795
796         * art_rgb.c, art_rgb.c: Added. Populated with fill_run and
797         run_alpha methods.
798
799         * art_rgb_svp.c, art_rgb_svp.h: Added. Populated with functions to
800         render into an RGB buffer, and to composite over an RGB buffer.
801
802         * Makefile.am: added art_gray_svp, art_rgb, and art_rgb_svp.
803
804         * testart.c: test the color and layered rendering.
805
806 Mon Nov 30 01:30:25 1998  Raph Levien  <raph@gimp.org>
807
808         * testart.c: added vector path rendering stuff. Some of it needs
809         to go out of the test framework and into the module, but the
810         api hasn't settled down entirely yet (in the real code, all
811         x's in the step field are within bounds).
812
813         * art_svp_render_aa.c, art_svp_render_aa.c.h: added.
814
815         * art_svp_vpath.c, art_svp_vpath.h: added.
816
817         * art_pathcode.h: added ART_MOVETO_OPEN (libart uses an
818         ART_MOVETO_OPEN code at the beginning to indicate an open path,
819         while PostScript uses the lack of a closepath at the end).
820
821         * art_vpath_bpath.c, art_vpath_bpath.h: fixed it up, added
822         flatness arg to api.
823
824         * Makefile.am: added new source files.
825
826 Wed Nov 25 17:19:44 1998  Raph Levien  <raph@gimp.org>
827
828         * art_svp.h, art_svp.c: added, basic constructors for sorted
829         vector paths.
830
831 Sun Nov 22 23:21:09 1998  Raph Levien  <raph@gimp.org>
832
833         * Makefile.am (libart_lgplincdir): Fixed stupid bug in naming of
834         the variable.
835
836 Sun Nov 22 21:41:13 1998  Raph Levien  <raph@gimp.org>
837
838         * art_uta_vpath.c: moved art_uta_union into art_uta_ops.
839
840         * art_uta_ops.[ch]: added, populated with art_uta_union.
841
842 Thu Nov 19 00:19:40 1998  Raph Levien  <raph@gimp.org>
843
844         * libartConf.sh.in: added
845
846         * Makefile.am: added creation of libartConf.sh, added -version-info
847         * configure.in: added LIBART_VERSION_INFO, support for libartConf.sh
848         
849         * libart.m4: updated version history :)
850
851 Wed Nov 18 18:15:20 1998  Raph Levien  <raph@gimp.org>
852
853         * configure.in (LIBART_VERSION): set this, so that libart-config
854         --version now works.
855
856 Wed Nov 18 16:50:58 1998  Raph Levien  <raph@gimp.org>
857
858         * libart.m4: added (just copied from esound)
859         * configure.in, Makefile.am: added support for libart-config
860         * libart-config.in: added (mostly copied from esound)
861
862 Tue Nov 10 12:43:30 1998  Raph Levien  <raph@acm.org>
863
864         * Getting the library in shape for initial checkin to CVS.
865
866