1 2001-10-31 Anders Carlsson <andersca@gnu.org>
5 2001-10-15 Raph Levien <raph@pixel.artofcode.com>
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.
11 (art_svp_intersect_test_cross): Flags indicating whether to
12 do add_point (potentially breaking neighbors) to left and
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.
19 (art_svp_intersect_advance_cursor): Provide flags (allow
20 both left and right breaking) to test_cross.
22 2001-10-15 Raph Levien <raph@pixel.artofcode.com>
24 * art_svp_intersect.c (CHEAP_SANITYCHECK): Added an inexpensive
25 sanitycheck to detect multiple insertions of a segment into the
28 (art_svp_writer_rewind_add_point): Avoid breaking lines below
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.
36 2001-10-14 Raph Levien <raph@pixel.artofcode.com>
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.
42 2001-10-11 Raph Levien <raph@pixel.artofcode.com>
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.
51 2001-10-09 Raph Levien <raph@pixel.artofcode.com>
53 * art_svp_intersect.c (art_svp_intersect_test_cross): Breaks
54 bottom part of line segments in "too close" cases.
56 2001-10-09 Raph Levien <raph@pixel.artofcode.com>
58 * art_svp_intersect.c (art_svp_writer_rewind_add_point): Fixed
60 (art_svp_intersector): Handle degenerate case where input
63 * art_svp_intersect.h: Moved definition of art_svp_intersector
64 inside #ifdef __cplusplus, so it links properly against C++
66 2001-10-09 Raph Levien <raph@pixel.artofcode.com>
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.
73 2001-10-07 Raph Levien <raph@pixel.artofcode.com>
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.
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
81 (art_svp_intersect_horiz): Break segments that intersect
82 horizontal lines. Now passes "two squares with offset" test.
84 2001-10-05 Raph Levien <raph@pixel.artofcode.com>
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
91 * testart.c: Minor tweaks. testpat now frees memory
92 so it can be run under memprof to detect leaks.
94 2001-10-03 Raph Levien <raph@pixel.artofcode.com>
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.
102 2001-10-02 Raph Levien <raph@pixel.artofcode.com>
104 * art_svp_ops.c: ART_USE_NEW_INTERSECTOR variants of svp
105 ops changed to do shallow free of merged svp.
107 2001-10-01 Raph Levien <raph@acm.org>
109 * art_svp_intersect.c:
110 * art_svp_intersect.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.
117 * art_svp_ops.c: Make svp ops use new intersector if enabled.
119 * art_svp_vpath_stroke.c: Make vpath stroking use new intersector
122 * testart.c: New test case for intersector.
124 Wed Sep 26 03:48:13 2001 George Lebl <jirka@5z.com>
128 Wed Sep 26 03:11:40 2001 George Lebl <jirka@5z.com>
130 * gen_art_config.c: Fix 64bit issues, cast sizeof return when
131 using %d to print it.
133 2001-09-13 Havoc Pennington <hp@redhat.com>
135 * Makefile.am: rename library to libart_lgpl_2
137 * libart-2.0.pc.in (Cflags): move includes
139 * libart-config.in: move includes
141 * Makefile.am: delete libartConf.sh, rename libart-config
142 (EXTRA_DIST): don't install m4 files
143 (libart_lgplincdir): move headers
145 2001-08-03 Michael Meeks <michael@ximian.com>
147 * Version 2.3.5 for the API freeze.
149 2001-07-12 Darin Adler <darin@bentspoon.com>
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.
155 2001-07-12 Darin Adler <darin@bentspoon.com>
157 * art_misc.h: Change art_expand macro so it's a single
158 statement, using the do while (0) trick, which gets rid
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.
165 2001-03-24 Martin Baulig <baulig@suse.de>
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?])
171 * art_rgb_a_affine.[ch]: New files.
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
178 2000-09-30 Martin Baulig <baulig@suse.de>
180 * libart-2.0.pc.in: Provide pkg-config script.
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'.
186 2000-08-15 Raph Levien <raph@acm.org>
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
194 Fri Jun 30 22:56:58 2000 Raph Levien <raph@acm.org>
196 * art_render.c (art_render_composite): Fixed a bug that caused
197 it to ignore the alpha setting. Also art_render_composite_8().
199 2000-06-01 John Sullivan <sullivan@eazel.com>
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.
205 Wed May 31 11:10:58 2000 Raph Levien <raph@acm.org>
207 * art_svp_render_aa.c (art_svp_render_aa_iter_step): Updated
208 n_steps_max in iter structure after steps reallocation.
210 Tue May 30 10:33:13 2000 Raph Levien <raph@acm.org>
212 * art_svp_render_aa.c (art_svp_render_aa_iter_step): Fixed not
213 updating iter->steps when steps gets reallocated.
215 2000-05-30 Pavel Cisler <pavel@eazel.com>
218 Make it build -- fix a broken include.
220 Tue May 30 00:09:21 2000 Raph Levien <raph@acm.org>
222 * art_render_gradient.c (art_render_gradient_setpix): Fixed
223 an off-by-one loop error.
225 Mon May 29 15:00:39 2000 Raph Levien <raph@acm.org>
227 * Makefile.am: Moved relevant .h files into HEADERS stanza.
229 Mon May 29 13:48:49 2000 Raph Levien <raph@acm.org>
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!
240 * configure.in: added -Wmissing-prototypes flag. Bumped version
244 * art_render.c: Added new rendering architecture.
247 * art_render_svp.c: Added renderers to use SVP's as mask
248 sources in new rendering architecture.
250 * art_render_gradient.h:
251 * art_render_gradient.c: Added linear and radial gradients
252 as image sources in new rendering architecture.
255 * art_rgba.c: Added functions for manipulating and compositing
258 * art_svp_wind.c: Added static to trap_epsilon(), #ifdef'd out
261 * art_uta_ops.c: Added #include "art_uta_ops.h".
263 * art_uta_rect.c: Added #include "art_uta_rect.h".
265 * art_uta_svp.h: fixed __ART_UTA_SVP_H__ name.
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
271 * testart.c: Added gradient test.
273 Thu May 25 23:30:39 2000 Raph Levien <raph@acm.org>
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
280 * configure.in: Bumped version to 2.2.0.
282 Tue May 16 15:03:35 2000 Raph Levien <raph@acm.org>
284 * art_rgb_pixbuf_affine.c: Included corresponding .h file.
286 * art_rgb_pixbuf_affine.h: Put recursive #includes inside
287 LIBART_COMPILATION test.
290 * art_rgb_svp.c: Explicit casts for callback data. Also removed
291 "render the steps into tmpbuf" comment.
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}.
299 * art_misc.h: Moved definition of art_u8 and art_u32 into
300 art_config.h. Added GCC printf format attributes.
302 * art_svp_wind.c (traverse): Fixed UMR bug here. The function
303 isn't actually used, so it's just for cleanliness.
305 2000-04-18 Lauris Kaplinski <lauris@ariman.ee>
307 * art_affine.c (art_affine_to_string): Replaced snprinf with
308 art_ftoa to avoid localisation of generated numbers
310 2000-04-18 ERDI Gergo <cactus@cactus.rulez.org>
312 * art_rgb_pixbuf_affine.h: Included the ArtPixBuf declaration
314 Fri Apr 14 16:33:55 2000 Raph Levien <raph@acm.org>
316 * art_svp_wind.c (art_svp_uncross, art_svp_rewind_uncrossed):
317 Fixed uninitialized memory reads when inserting new segment into
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
325 2000-04-05 Raph Levien <raph@gimp.org>
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.
331 2000-04-04 Raph Levien <raph@gimp.org>
333 * art_uta_vpath.c (art_uta_add_line): Fixed bug that was causing
334 segfaults on alphas. Thanks to msw for localizing it.
336 2000-01-17 Raph Levien <raph@gimp.org>
338 * art_svp_vpath_stroke.c (art_svp_vpath_stroke): Typo in api
341 2000-01-16 Timur Bakeyev <timur@gnu.org>
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
347 2000-01-10 Elliot Lee <sopwith@redhat.com>
349 * Makefile.am, *.h: Add rather bad hacks to the header files to allow compilation
351 * Makefile.am: Distribute libart-config.in
353 2000-01-09 Raph Levien <raph@gimp.org>
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.
362 Fri Sep 24 17:53:21 1999 Raph Levien <raph@acm.org>
364 * art_svp_render_aa.c (art_svp_render_insert_active): Avoid
365 reading undefined memory (thanks to Morten Welinder).
367 1999-09-19 Raph Levien <raph@gimp.org>
369 * art_pixbuf.c (art_pixbuf_duplicate): Added a duplicate function
370 at the request of Michael Meeks.
372 1999-09-11 Raph Levien <raph@gimp.org>
374 * art_affine.c (art_affine_to_string): Tightened the predicate for
375 matching rotate-only affines, which was too weak. Thanks to lewing
378 1999-09-01 Raph Levien <raph@gimp.org>
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.
385 1999-08-24 Raph Levien <raph@gimp.org>
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.
392 * testart.c: Added "dash" test, for testing the vpath_dash
395 * art_rgb_pixbuf_affine.h: Fixed the #ifdef for conditional
396 inclusion. Thanks to Kristian Hogsberg Kristensen for spotting
399 1999-08-24 Raph Levien <raph@gimp.org>
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.
405 1999-08-20 Federico Mena Quintero <federico@redhat.com>
407 * configure.in: Fixed library's libtool version number.
409 1999-08-03 Larry Ewing <lewing@gimp.org>
411 * art_vpath_dash.c (art_vpath_dash): fix a bug/typo that was causing
412 certain paths to loop infinitely.
414 1999-07-28 Raph Levien <raph@gimp.org>
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
420 * testart.c: added tests for the new vpath_dash functionality.
422 * Makefile.am: added art_vpath_dash.[ch] files.
424 1999-07-26 Raph Levien <raph@gimp.org>
426 * art_rgb.c (art_rgb_fill_run): fixed incorrect test for
427 big-endianness. Thanks to Michael Zucchi for spotting it.
429 Fri Jul 16 23:42:59 1999 Tim Janik <timj@gtk.org>
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).
434 Fri Jul 16 23:03:26 1999 Tim Janik <timj@gtk.org>
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).
444 Mon Jul 12 01:13:23 1999 Tim Janik <timj@gtk.org>
446 * art_affine.[hc]: added art_affine_equal(), which checks two
447 matrixes for equality within grid alignment.
449 Fri Jul 9 17:50:19 1999 Tim Janik <timj@gtk.org>
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.
455 Tue Jul 6 19:03:39 1999 Tim Janik <timj@gtk.org>
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
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.
470 1999-07-02 Raph Levien <raph@gimp.org>
472 * art_vpath_bpath.c (art_vpath_render_bez): Bad bad uninitialized
475 * configure.in: added compile warnings. Guess why :)
477 1999-06-28 Raph Levien <raph@gimp.org>
480 * art_svp_point.c: Added methods for insideness and distance
481 testing, very useful for ::point methods in canvas items.
483 * testart.c: test code to exercise the art_svp_point functions.
485 * Makefile.am: Additional entries for art_svp_point.
487 1999-06-28 Raph Levien <raph@gimp.org>
489 * art_svp_render_aa.c (art_svp_render_aa): Subtle boundary
490 case in realloc code -- was causing nasty segfaults.
492 Wed Jun 23 15:05:43 1999 Raph Levien <raph@gimp.org>
494 * art_rgb_svp.c (art_rgb_svp_alpha_opaque_callback): Missed a
495 case in the anti-segfault crusade. Thanks lewing!
497 Wed Jun 23 11:16:42 1999 Raph Levien <raph@gimp.org>
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.
504 Fri Jun 18 17:32:34 1999 Raph Levien <raph@acm.org>
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
511 Sun Jun 13 21:07:20 1999 Raph Levien <raph@gimp.org>
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).
519 Sun Jun 13 01:23:14 1999 Raph Levien <raph@gimp.org>
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.
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
531 * art_vpath_bpath.c (art_bez_path_to_vec): Added const to arg.
533 * art_vpath_bpath.h: Embarrassing typo.
535 * art_bpath.h: Minor tweaks to the #include paths. It is now
536 consistent with the other header files.
538 Wed Jun 9 20:24:45 1999 Raph Levien <raph@gimp.org>
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.
547 * art_misc.h: Added M_SQRT2 constant.
549 Wed Jun 2 21:56:30 1999 Raph Levien <raph@gimp.org>
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).
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).
560 * art_svp_wind.c (art_svp_rewind_uncrossed): added a test to
561 correctly handle empty input svp's.
563 * art_svp_wind.c (art_svp_uncross): added a test to correctly
564 handle empty input svp's.
566 Sun Jan 17 20:53:40 1999 Jeff Garzik <jgarzik@pobox.com>
569 Include string.h for memcpy.
572 Remove conflicting static func definition.
575 Include art_vpath_svp.h for func definition.
577 Mon Jan 4 12:47:47 1999 Raph Levien <raph@acm.org>
579 * art_bpath.c (art_bpath_affine_transform): Stupid misnaming
580 of this function (forgot the "art_").
582 Thu Dec 31 09:04:23 1998 Raph Levien <raph@gimp.org>
584 * art_affine.c (art_affine_rectilinear): Added this function.
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.
590 Thu Dec 17 11:58:24 1998 Raph Levien <raph@acm.org>
593 * art_alphagamma.c: The real code for alphagamma.
595 Wed Dec 16 14:18:46 1998 Raph Levien <raph@gimp.org>
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
604 * art_pixbuf.c: Added. This is a virtualization layer over
605 a few different kinds of image formats.
607 * art_rgb_pixbuf_affine.h:
608 * art_rgb_pixbuf_affine.c: Added. Supports compositing of
609 generic images over an rgb buffer.
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).
618 * art_misc.c (art_warn): Added.
621 * art_rgb_affine.c: Added alphagamma argument (not yet implemented).
623 * art_rgb_affine_private.c: Fixed typo bug that was causing
624 repaint problems for nonsquare images.
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
632 * art_rgb_svp.c: Added alphagamma argument (only implemented
633 in aa case, not yet alpha case).
635 * art_vpath.c: increased perturbation to 2e-3, because the old
636 value (1e-6) was too small.
638 * testart.c: added alphagamma.
640 * Makefile.am: added new files
642 Sun Dec 27 21:45:03 1998 Raph Levien <raph@gimp.org>
645 * art_rect.c: Added DRect versions of the basic ops (double
649 * art_rect_svp.c: Added. This computes the bounding box of
652 Wed Dec 16 14:18:46 1998 Raph Levien <raph@gimp.org>
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
661 * art_pixbuf.c: Added. This is a virtualization layer over
662 a few different kinds of image formats.
664 * art_rgb_pixbuf_affine.h:
665 * art_rgb_pixbuf_affine.c: Added. Supports compositing of
666 generic images over an rgb buffer.
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).
675 * art_misc.c (art_warn): Added.
678 * art_rgb_affine.c: Added alphagamma argument (not yet implemented).
680 * art_rgb_affine_private.c: Fixed typo bug that was causing
681 repaint problems for nonsquare images.
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
689 * art_rgb_svp.c: Added alphagamma argument (only implemented
690 in aa case, not yet alpha case).
692 * art_vpath.c: increased perturbation to 2e-3, because the old
693 value (1e-6) was too small.
695 * testart.c: added alphagamma.
697 * Makefile.am: added new files
699 Mon Dec 14 00:16:53 1998 Raph Levien <raph@gimp.org>
701 * art_affine.c (art_affine_to_string): re-added the "scale" method
702 that was accidentally deleted before check-in.
704 * Makefile.am: added new files
706 Sun Dec 13 00:52:39 1998 Raph Levien <raph@gimp.org>
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.
713 * art_filterlevel.h: A simple enum for selecting filtering
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.
721 * art_rgb_rgba_affine.h:
722 * art_rgb_rgba_affine.c: Analogous, but for compositing rgba
725 * art_rgb_bitmap_affine.h:
726 * art_rgb_bitmap_affine.c: Analogous, but for compositing bitmap
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.
733 * Makefile.am: added the new files
735 * testart.c: exercise the image compositors
737 Wed Dec 9 23:36:35 1998 Raph Levien <raph@gimp.org>
739 * art_vpath.c (art_vpath_perturb): Made it deal correctly
740 with closed paths (the MOVETO and closing LINETO have to
743 * art_svp_wind.c: Made the bbox calculations for the resulting
747 * art_svp.c: The art_svp_seg_compare function moved here, because
748 it's required in art_svp_ops.
750 * art_svp.c (art_svp_add_segment): It now does bbox calculations.
753 * art_svp_ops.c: Added. Populated with basic union, intersection,
757 * art_vpath_svp.c: Added. Populated with a function to convert
758 from sorted to unsorted vector paths
760 * Makefile.am: added the new files
762 * testart.c: exercise the stroke outline and vector path
765 1998-12-08 Herbert Valerio Riedel <hvr@hvrlab.ml.org>
767 * art_svp_wind.c: added #include <string.h> for memcpy()
769 Sun Dec 6 22:15:12 1998 Raph Levien <raph@gimp.org>
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.
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.
779 * art_svp_vpath.c: Fixed some bugs in the art_svp_from_vpath in
780 cases where there is more than one subpath.
783 * art_vpath.c (art_vpath_perturb): Added this function. This will
784 help cheat as long as the basic vector ops have numerical
787 Fri Dec 4 18:00:38 1998 Raph Levien <raph@gimp.org>
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).
793 * art_gray_svp.c, art_gray_svp.h: Added. Populated with functions
794 to render into a simple graymap.
796 * art_rgb.c, art_rgb.c: Added. Populated with fill_run and
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.
802 * Makefile.am: added art_gray_svp, art_rgb, and art_rgb_svp.
804 * testart.c: test the color and layered rendering.
806 Mon Nov 30 01:30:25 1998 Raph Levien <raph@gimp.org>
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).
813 * art_svp_render_aa.c, art_svp_render_aa.c.h: added.
815 * art_svp_vpath.c, art_svp_vpath.h: added.
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).
821 * art_vpath_bpath.c, art_vpath_bpath.h: fixed it up, added
824 * Makefile.am: added new source files.
826 Wed Nov 25 17:19:44 1998 Raph Levien <raph@gimp.org>
828 * art_svp.h, art_svp.c: added, basic constructors for sorted
831 Sun Nov 22 23:21:09 1998 Raph Levien <raph@gimp.org>
833 * Makefile.am (libart_lgplincdir): Fixed stupid bug in naming of
836 Sun Nov 22 21:41:13 1998 Raph Levien <raph@gimp.org>
838 * art_uta_vpath.c: moved art_uta_union into art_uta_ops.
840 * art_uta_ops.[ch]: added, populated with art_uta_union.
842 Thu Nov 19 00:19:40 1998 Raph Levien <raph@gimp.org>
844 * libartConf.sh.in: added
846 * Makefile.am: added creation of libartConf.sh, added -version-info
847 * configure.in: added LIBART_VERSION_INFO, support for libartConf.sh
849 * libart.m4: updated version history :)
851 Wed Nov 18 18:15:20 1998 Raph Levien <raph@gimp.org>
853 * configure.in (LIBART_VERSION): set this, so that libart-config
856 Wed Nov 18 16:50:58 1998 Raph Levien <raph@gimp.org>
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)
862 Tue Nov 10 12:43:30 1998 Raph Levien <raph@acm.org>
864 * Getting the library in shape for initial checkin to CVS.