Landing of SVG_20020806_BRANCH, Bug 182533. Refactoring of SVG backend, new GDI+ and Libart rendering
backends, text support on Windows (GDI+), rudimentary text support on Linux (libart/freetype2), presentation
attributes, lots of bug fixes (see bug 182533 for dependency list).
Not part of default build; code is #ifdef'ed out.
r=sicking, sr=jst for dom and htmlparser changes
r=bsmedberg, sr=tor for config changes
r=dbaron, sr=bzbarsky for content and layout changes
r=tor, sr=bzbarsky for gfx changes
2004-02-07 15:39:26 +03:00
|
|
|
2002-10-16 John Harper <jsh@unfactored.org>
|
|
|
|
|
|
|
|
* art_render_svp.c (art_render_svp_callback,
|
|
|
|
art_render_svp_callback_span, art_render_svp_callback_opacity,
|
|
|
|
art_render_svp_callback_opacity_span): if no runs would
|
|
|
|
normally be emitted, but start is greater than zero, emit a
|
|
|
|
single run covering the entire width of the rendered region
|
|
|
|
|
|
|
|
2002-08-18 Havoc Pennington <hp@pobox.com>
|
|
|
|
|
|
|
|
* autogen.sh: hardcode aclocal-1.4/automake-1.4 so that users with
|
|
|
|
both automake 1.6 and 1.4 installed get the right automake. Means
|
|
|
|
compilation from CVS will now require the latest automake 1.4
|
|
|
|
release, or manually creating symlinks called "automake-1.4" and
|
|
|
|
"aclocal-1.4"
|
|
|
|
|
|
|
|
2002-07-01 Alexander Larsson <alexl@redhat.com>
|
|
|
|
|
|
|
|
* Release 2.3.10
|
|
|
|
|
|
|
|
2002-07-01 Alexander Larsson <alexl@redhat.com>
|
|
|
|
|
|
|
|
* configure.in (LIBART_VERSION_INFO):
|
|
|
|
Bump to 2.3.10
|
|
|
|
|
|
|
|
* art_svp_intersect.c (art_svp_intersect_add_seg):
|
|
|
|
Initialize seg->wind_left to zero, this avoids
|
|
|
|
uninitialized memory read later in art_svp_intersect_horiz_commit.
|
|
|
|
|
|
|
|
2002-06-24 Alexander Larsson <alexl@redhat.com>
|
|
|
|
|
|
|
|
Release 2.3.9.
|
|
|
|
|
|
|
|
2002-06-24 Alexander Larsson <alexl@redhat.com>
|
|
|
|
|
|
|
|
* configure.in: Bump to 2.3.9
|
|
|
|
|
|
|
|
2002-06-04 Balamurali Viswanathan <balamurali.viswanathan@wipro.com>
|
|
|
|
|
|
|
|
* Makefile.am: Added -lm to libart_lgpl_2_la_LIBADD
|
|
|
|
fixes bug 75711 (Jacob's suggestion)
|
|
|
|
|
|
|
|
2002-05-08 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_uta_vpath.c (art_uta_add_line): Fixes very subtle
|
|
|
|
edge case found by Federico Mena Quintero: (96, 96) -
|
|
|
|
(96.220200017562348, 93.034868598919431). Previously, through
|
|
|
|
numerical error, xn was a hair to the left, throwing off
|
|
|
|
the Bresenham iteration.
|
|
|
|
|
|
|
|
2002-03-08 Tor Lillqvist <tml@iki.fi>
|
|
|
|
|
|
|
|
* configure.in: Minor changes for build on Win32. Call
|
|
|
|
AC_LIBTOOL_WIN32_DLL. Set automake conditionals OS_WIN32 and
|
|
|
|
MS_LIB_AVAILABLE.
|
|
|
|
|
|
|
|
* art_affine.c: Include art_misc.h for M_PI, which not necessarily
|
|
|
|
is in math.h.
|
|
|
|
|
|
|
|
* Makefile.am: On Win32, build and install import libraries, both
|
|
|
|
for gcc and for MSVC (if available).
|
|
|
|
|
|
|
|
* libart-zip.in: New file. Used to build runtime and developer
|
|
|
|
package for Win32.
|
|
|
|
|
|
|
|
2002-02-06 Laszlo Peter <laca@ireland.sun.com>
|
|
|
|
|
|
|
|
* configure.in: add AC_FUNC_ALLOCA
|
|
|
|
|
|
|
|
* art_render_gradient.c: copy alloca hacks from glib/galloca.h
|
|
|
|
|
|
|
|
2002-02-02 Alexander Larsson <alla@lysator.liu.se>
|
|
|
|
|
|
|
|
* art_render.c:
|
|
|
|
Add special case for art_render_composite_8 for two cases
|
|
|
|
that are very common when rendering SVGs with librsvg.
|
|
|
|
I'm sure these can be optimized further, but i'm feeling
|
|
|
|
very slow today.
|
|
|
|
|
|
|
|
2002-02-01 Alex Larsson <alexl@redhat.com>
|
|
|
|
|
|
|
|
* art_render_gradient.c:
|
|
|
|
Add optimized case for depth==8, n_channels == 3
|
|
|
|
|
|
|
|
* test_gradient.c:
|
|
|
|
Test case for gradients. Uses gtk+, so not built by
|
|
|
|
default.
|
|
|
|
|
|
|
|
2002-01-10 Anders Carlsson <andersca@gnu.org>
|
|
|
|
|
|
|
|
* Release 2.3.8
|
|
|
|
|
|
|
|
2002-01-04 Anders Carlsson <andersca@gnu.org>
|
|
|
|
|
|
|
|
* configure.in: Bump version to 2.3.8.
|
|
|
|
|
|
|
|
2002-01-03 Darin Adler <darin@bentspoon.com>
|
|
|
|
|
|
|
|
* Makefile.am: Add art_render_mask.[ch].
|
|
|
|
|
|
|
|
* art_bpath.h:
|
|
|
|
* art_rect_svp.h:
|
|
|
|
* art_rect_uta.h:
|
|
|
|
* art_render.h:
|
|
|
|
* art_render_gradient.h:
|
|
|
|
* art_render_mask.h:
|
|
|
|
* art_render_svp.h:
|
|
|
|
* art_rgb_svp.h:
|
|
|
|
* art_svp_intersect.h:
|
|
|
|
* art_svp_ops.h:
|
|
|
|
* art_svp_point.h:
|
|
|
|
* art_svp_render_aa.h:
|
|
|
|
* art_svp_vpath.h:
|
|
|
|
* art_svp_vpath_stroke.h:
|
|
|
|
* art_svp_wind.h:
|
|
|
|
* art_uta.h:
|
|
|
|
* art_uta_rect.h:
|
|
|
|
* art_uta_ops.h:
|
|
|
|
* art_uta_svp.h:
|
|
|
|
* art_uta_vpath.h:
|
|
|
|
* art_vpath_bpath.h:
|
|
|
|
* art_vpath_dash.h:
|
|
|
|
* art_vpath_svp.h:
|
|
|
|
Fix includes so that each header includes what it needs.
|
|
|
|
|
|
|
|
* 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_render.c:
|
|
|
|
* art_render_gradient.c:
|
|
|
|
* art_render_mask.c:
|
|
|
|
* art_render_svp.c:
|
|
|
|
* art_rgb.c:
|
|
|
|
* art_rgb_a_affine.c:
|
|
|
|
* art_rgb_affine.c:
|
|
|
|
* art_rgb_affine_private.c:
|
|
|
|
* art_rgb_bitmap_affine.c:
|
|
|
|
* art_rgb_pixbuf_affine.c:
|
|
|
|
* art_rgb_rgba_affine.c:
|
|
|
|
* art_rgb_svp.c:
|
|
|
|
* art_rgba.c:
|
|
|
|
* art_svp.c:
|
|
|
|
* art_svp_intersect.c:
|
|
|
|
* art_svp_ops.c:
|
|
|
|
* art_svp_point.c:
|
|
|
|
* art_svp_render_aa.c:
|
|
|
|
* art_svp_vpath.c:
|
|
|
|
* art_svp_vpath_stroke.c:
|
|
|
|
* art_svp_wind.c:
|
|
|
|
* art_uta.c:
|
|
|
|
* art_uta_ops.c:
|
|
|
|
* art_uta_rect.c:
|
|
|
|
* art_uta_svp.c:
|
|
|
|
* art_uta_vpath.c:
|
|
|
|
* art_vpath.c:
|
|
|
|
* art_vpath_bpath.c:
|
|
|
|
* art_vpath_dash.c:
|
|
|
|
* art_vpath_svp.c:
|
|
|
|
Fix order of includes so that the corresponding header is
|
|
|
|
included first, to test that each header includes what it
|
|
|
|
needs.
|
|
|
|
|
|
|
|
2002-01-02 Darin Adler <darin@bentspoon.com>
|
|
|
|
|
|
|
|
* art_alphagamma.h:
|
|
|
|
* art_gray_svp.h:
|
|
|
|
* art_pixbuf.h:
|
|
|
|
* art_render.h:
|
|
|
|
* art_rgb.h:
|
|
|
|
* art_rgba.h:
|
|
|
|
Add some missing includes.
|
|
|
|
|
|
|
|
2001-12-26 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp_intersect.c: More fixes to intersector. When tops
|
|
|
|
coincide, full ordering test is performed (with breaking),
|
|
|
|
rather than just comparing b from line eq. Also, had a test
|
|
|
|
for x >= backwards in art_svp_intersect_add_point. Thanks
|
|
|
|
to Bruce Q. Hammond for test cases.
|
|
|
|
|
|
|
|
2001-11-21 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp_intersect.c (art_svp_intersect_break): Changed break
|
|
|
|
logic systematically so that new breaks are always in order,
|
|
|
|
rather than allowing them to become out of order, then try to fix
|
|
|
|
them up later. It's no doubt possible to come up with cases in
|
|
|
|
which this reduces precision, but it simplifies life nicely, so I
|
|
|
|
did it.
|
|
|
|
|
|
|
|
* (art_svp_intersect_horiz): Initialize (a, b, c) values of hs to
|
|
|
|
avoid UMR's when they are tested later.
|
|
|
|
|
|
|
|
* art_svp_ops.c (print_ps_vpath): Changed the coordinate
|
|
|
|
transform so that it's done in the PostScript rather than
|
|
|
|
the C code that outputs the coordinates. This makes it easier
|
|
|
|
to reconstruct the vector path from the debug output.
|
|
|
|
|
|
|
|
2001-11-16 Alex Larsson <alexl@redhat.com>
|
|
|
|
|
|
|
|
* art_rect.c (art_drect_svp_union, art_drect_svp):
|
|
|
|
Don't call art_drect_union() in these functions, since
|
|
|
|
it considers zero-width or zero-height svg segments to
|
|
|
|
be empty. This causes it to think i.e. rectangular svps
|
|
|
|
are empty.
|
|
|
|
|
2001-11-17 00:08:16 +03:00
|
|
|
2001-11-07 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp_intersect.c (art_svp_intersect_horiz): Fixed important
|
|
|
|
logic bug, failing to test crossings of neighbors when inserting
|
|
|
|
horizontal lines. Also changed printf to art_dprint.
|
|
|
|
|
|
|
|
* art_misc.c (art_dprint): Added function for debug printing,
|
|
|
|
so verbose intersector output doesn't have to go through printf.
|
|
|
|
|
|
|
|
* art_misc.h (ART_USE_NEW_INTERSECTOR): I've turned this on
|
|
|
|
now, as the new intersector certainly seems to be performing
|
|
|
|
better than the old one now.
|
|
|
|
|
|
|
|
2001-10-31 Anders Carlsson <andersca@gnu.org>
|
|
|
|
|
|
|
|
* Release 2.3.7
|
|
|
|
|
|
|
|
2001-10-15 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp_intersect.c (art_svp_intersect_horiz): Minor
|
|
|
|
logic fix so that horiz segments successfully cross
|
|
|
|
zero length segments in the active list.
|
|
|
|
|
|
|
|
(art_svp_intersect_test_cross): Flags indicating whether to
|
|
|
|
do add_point (potentially breaking neighbors) to left and
|
|
|
|
to right.
|
|
|
|
|
|
|
|
(art_svp_intersect_insert_cross): Provide ART_BREAK_LEFT and
|
|
|
|
ART_BREAK_RIGHT flags to art_svp_intersect_test_cross,
|
|
|
|
depending on direction of search.
|
|
|
|
|
|
|
|
(art_svp_intersect_advance_cursor): Provide flags (allow
|
|
|
|
both left and right breaking) to test_cross.
|
|
|
|
|
|
|
|
2001-10-15 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp_intersect.c (CHEAP_SANITYCHECK): Added an inexpensive
|
|
|
|
sanitycheck to detect multiple insertions of a segment into the
|
|
|
|
horiz list.
|
|
|
|
|
|
|
|
(art_svp_writer_rewind_add_point): Avoid breaking lines below
|
|
|
|
their bottom point.
|
|
|
|
|
|
|
|
(art_svp_intersect_test_cross): Handle cases correctly where
|
|
|
|
intersection point matches y0 of left or right segment. These _do_
|
|
|
|
happen in real world examples. Also, do add_point on newly
|
|
|
|
inserted intersection point.
|
|
|
|
|
|
|
|
2001-10-14 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp_intersect.c (art_svp_intersect_add_point): Fixed
|
|
|
|
rather subtle logic bug that misplaced insertion point
|
|
|
|
when seg argument was NULL.
|
|
|
|
|
|
|
|
2001-10-11 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp_render_aa.c (art_svp_render_aa_iter_step): Got rid
|
|
|
|
of qsort of steps, and now keep the step list in sorted order.
|
|
|
|
Further, we combine duplicate steps with the same x value,
|
|
|
|
which bounds the size of the step list to x1 - x0, so we
|
|
|
|
don't need to dynamically resize it. Thanks greatly to
|
|
|
|
Bruce Q. Hammond for the original version of this patch.
|
|
|
|
|
|
|
|
2001-10-09 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp_intersect.c (art_svp_intersect_test_cross): Breaks
|
|
|
|
bottom part of line segments in "too close" cases.
|
|
|
|
|
|
|
|
2001-10-09 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp_intersect.c (art_svp_writer_rewind_add_point): Fixed
|
|
|
|
bbox computation.
|
|
|
|
(art_svp_intersector): Handle degenerate case where input
|
|
|
|
SVP has 0 segments.
|
|
|
|
|
|
|
|
* art_svp_intersect.h: Moved definition of art_svp_intersector
|
|
|
|
inside #ifdef __cplusplus, so it links properly against C++
|
|
|
|
|
|
|
|
2001-10-09 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp_intersect.c (art_svp_intersect_break): Handle
|
|
|
|
case when break y equals sweep line correctly. Also adds
|
|
|
|
first try at winding number sanitychecker, but that makes
|
|
|
|
too many false positives.
|
|
|
|
|
|
|
|
2001-10-07 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp.c (EPSILON): Set to zero if new intersector is
|
|
|
|
in use - we want svp's to be in strict sorted order.
|
|
|
|
|
|
|
|
* art_svp_intersect.c (art_svp_intersect_test_cross): Explicitly
|
|
|
|
check that top points are equal, and swap immediately if b is out
|
|
|
|
of order.
|
|
|
|
(art_svp_intersect_horiz): Break segments that intersect
|
|
|
|
horizontal lines. Now passes "two squares with offset" test.
|
|
|
|
|
|
|
|
2001-10-05 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp_intersect.c: Major changes to accommodate
|
|
|
|
horizontal lines. Intersections of horizontal lines
|
|
|
|
aren't fully processed, but should work a lot better
|
|
|
|
than before.
|
|
|
|
|
|
|
|
* testart.c: Minor tweaks. testpat now frees memory
|
|
|
|
so it can be run under memprof to detect leaks.
|
|
|
|
|
|
|
|
2001-10-03 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp_intersect.c (art_svp_intersect_advance_cursor):
|
|
|
|
Made test_cross for inserted segments common between
|
|
|
|
intersection processing and cursor advance, and also took
|
|
|
|
care of a case that hadn't been handled before. Also added
|
|
|
|
invariant sanitychecker for debugging purposes.
|
|
|
|
|
|
|
|
2001-10-02 Raph Levien <raph@pixel.artofcode.com>
|
|
|
|
|
|
|
|
* art_svp_ops.c: ART_USE_NEW_INTERSECTOR variants of svp
|
|
|
|
ops changed to do shallow free of merged svp.
|
|
|
|
|
|
|
|
2001-10-01 Raph Levien <raph@acm.org>
|
|
|
|
|
|
|
|
* art_svp_intersect.c:
|
|
|
|
* art_svp_intersect.h:
|
|
|
|
* Makefile.am:
|
|
|
|
* art_misc.h:
|
|
|
|
* art_svp_wind.h: First commit of new intersector code. It is
|
|
|
|
turned off by default, but can be enabled by #defining
|
|
|
|
ART_USE_NEW_INTERSECTOR in art_misc.h.
|
|
|
|
|
|
|
|
* art_svp_ops.c: Make svp ops use new intersector if enabled.
|
|
|
|
|
|
|
|
* art_svp_vpath_stroke.c: Make vpath stroking use new intersector
|
|
|
|
if enabled.
|
|
|
|
|
|
|
|
* testart.c: New test case for intersector.
|
|
|
|
|
|
|
|
Wed Sep 26 03:48:13 2001 George Lebl <jirka@5z.com>
|
|
|
|
|
|
|
|
* Release 2.3.6
|
|
|
|
|
|
|
|
Wed Sep 26 03:11:40 2001 George Lebl <jirka@5z.com>
|
|
|
|
|
|
|
|
* gen_art_config.c: Fix 64bit issues, cast sizeof return when
|
|
|
|
using %d to print it.
|
|
|
|
|
|
|
|
2001-09-13 Havoc Pennington <hp@redhat.com>
|
|
|
|
|
|
|
|
* Makefile.am: rename library to libart_lgpl_2
|
|
|
|
|
|
|
|
* libart-2.0.pc.in (Cflags): move includes
|
|
|
|
|
|
|
|
* libart-config.in: move includes
|
|
|
|
|
|
|
|
* Makefile.am: delete libartConf.sh, rename libart-config
|
|
|
|
(EXTRA_DIST): don't install m4 files
|
|
|
|
(libart_lgplincdir): move headers
|
|
|
|
|
|
|
|
2001-08-03 Michael Meeks <michael@ximian.com>
|
|
|
|
|
|
|
|
* Version 2.3.5 for the API freeze.
|
|
|
|
|
|
|
|
2001-07-12 Darin Adler <darin@bentspoon.com>
|
|
|
|
|
|
|
|
* art_affine.c: (art_affine_expansion): Fix handling of
|
|
|
|
negative numbers. We ran into this bug a while back when
|
|
|
|
figuring out why librsvg couldn't handle certain svg files.
|
|
|
|
|
|
|
|
2001-07-12 Darin Adler <darin@bentspoon.com>
|
|
|
|
|
|
|
|
* art_misc.h: Change art_expand macro so it's a single
|
|
|
|
statement, using the do while (0) trick, which gets rid
|
|
|
|
of some warnings.
|
|
|
|
* art_pixbuf.c: Add a missing include.
|
|
|
|
* art_vpath_svp.c: (art_vpath_from_svp): Initialize a
|
|
|
|
variable to avoid a compiler warning.
|
|
|
|
* gen_art_config.c: Add a missing include.
|
|
|
|
|
|
|
|
2001-03-24 Martin Baulig <baulig@suse.de>
|
|
|
|
|
|
|
|
Applied the patch from Alexander Larsson which was sitting
|
|
|
|
in gnome-libs/patches/libart.diff since February.
|
|
|
|
[FIXME: Alex, can you please provide a ChangeLog?])
|
|
|
|
|
|
|
|
* art_rgb_a_affine.[ch]: New files.
|
|
|
|
|
|
|
|
2001-01-07 Hans Breuer <Hans@Breuer.Org>
|
|
|
|
* art_misc.c : embryonic change to use libart_lgpl on win32
|
|
|
|
* libart.def : new file, exported functions for win32 dll
|
|
|
|
* makefile.msc : handwritten for MSVC compiler
|
|
|
|
|
|
|
|
2000-09-30 Martin Baulig <baulig@suse.de>
|
|
|
|
|
|
|
|
* libart-2.0.pc.in: Provide pkg-config script.
|
|
|
|
|
|
|
|
* configure.in: Create libart-2.0.pc from libart-2.0.pc.in.
|
|
|
|
* Makefile.am (pkgconfig_DATA): Install the libart-2.0.pc
|
|
|
|
script in `$(libdir)/pkgconfig'.
|
|
|
|
|
|
|
|
2000-08-15 Raph Levien <raph@acm.org>
|
|
|
|
|
|
|
|
* art_render.c (art_render_image_solid_negotiate): Only
|
|
|
|
sets ART_IMAGE_SOURCE_CAN_COMPOSITE when a compositing
|
|
|
|
callback is selected. Previously was causing segfaults on
|
|
|
|
non-alpha images. Thanks to Leonard Rosenthol for spotting
|
|
|
|
the bug.
|
|
|
|
|
|
|
|
Fri Jun 30 22:56:58 2000 Raph Levien <raph@acm.org>
|
|
|
|
|
|
|
|
* art_render.c (art_render_composite): Fixed a bug that caused
|
|
|
|
it to ignore the alpha setting. Also art_render_composite_8().
|
|
|
|
|
|
|
|
2000-06-01 John Sullivan <sullivan@eazel.com>
|
|
|
|
|
|
|
|
* art_svp_render_aa.c: (art_svp_render_aa_iter_step):
|
|
|
|
Made it build by correcting struct member name from
|
|
|
|
Raph's previous checkin.
|
|
|
|
|
|
|
|
Wed May 31 11:10:58 2000 Raph Levien <raph@acm.org>
|
|
|
|
|
|
|
|
* art_svp_render_aa.c (art_svp_render_aa_iter_step): Updated
|
|
|
|
n_steps_max in iter structure after steps reallocation.
|
|
|
|
|
|
|
|
Tue May 30 10:33:13 2000 Raph Levien <raph@acm.org>
|
|
|
|
|
|
|
|
* art_svp_render_aa.c (art_svp_render_aa_iter_step): Fixed not
|
|
|
|
updating iter->steps when steps gets reallocated.
|
|
|
|
|
|
|
|
2000-05-30 Pavel Cisler <pavel@eazel.com>
|
|
|
|
|
|
|
|
* art_rgba.c:
|
|
|
|
Make it build -- fix a broken include.
|
|
|
|
|
|
|
|
Tue May 30 00:09:21 2000 Raph Levien <raph@acm.org>
|
|
|
|
|
|
|
|
* art_render_gradient.c (art_render_gradient_setpix): Fixed
|
|
|
|
an off-by-one loop error.
|
|
|
|
|
|
|
|
Mon May 29 15:00:39 2000 Raph Levien <raph@acm.org>
|
|
|
|
|
|
|
|
* Makefile.am: Moved relevant .h files into HEADERS stanza.
|
|
|
|
|
|
|
|
Mon May 29 13:48:49 2000 Raph Levien <raph@acm.org>
|
|
|
|
|
|
|
|
This is a fairly major commit, as it adds both the new, modular
|
|
|
|
rendering architecture and gradients. Quite a bit of the code
|
|
|
|
feels like "reference code" now, in that it is (hopefully)
|
|
|
|
correct, but not necessarily very fast. In addition, there remain
|
|
|
|
a few things not done, including the use of SVP's as non-driver
|
|
|
|
mask sources. AlphaGamma and filter level also remain
|
|
|
|
unimplemented. No compositing modes other than ART_NORMAL are
|
|
|
|
implemented. All in good time!
|
|
|
|
|
|
|
|
* configure.in: added -Wmissing-prototypes flag. Bumped version
|
|
|
|
number to 2.3.0.
|
|
|
|
|
|
|
|
* art_render.h:
|
|
|
|
* art_render.c: Added new rendering architecture.
|
|
|
|
|
|
|
|
* art_render_svp.h:
|
|
|
|
* art_render_svp.c: Added renderers to use SVP's as mask
|
|
|
|
sources in new rendering architecture.
|
|
|
|
|
|
|
|
* art_render_gradient.h:
|
|
|
|
* art_render_gradient.c: Added linear and radial gradients
|
|
|
|
as image sources in new rendering architecture.
|
|
|
|
|
|
|
|
* art_rgba.h:
|
|
|
|
* art_rgba.c: Added functions for manipulating and compositing
|
|
|
|
RGBA pixels.
|
|
|
|
|
|
|
|
* art_svp_wind.c: Added static to trap_epsilon(), #ifdef'd out
|
|
|
|
traverse().
|
|
|
|
|
|
|
|
* art_uta_ops.c: Added #include "art_uta_ops.h".
|
|
|
|
|
|
|
|
* art_uta_rect.c: Added #include "art_uta_rect.h".
|
|
|
|
|
|
|
|
* art_uta_svp.h: fixed __ART_UTA_SVP_H__ name.
|
|
|
|
|
|
|
|
* art_misc.h: Added ART_GNUC_NORETURN attribute, added that
|
|
|
|
to the prototype for art_die(). Added "static" to function
|
|
|
|
declarations to avoid warnings when compiled with
|
|
|
|
|
|
|
|
* testart.c: Added gradient test.
|
|
|
|
|
|
|
|
Thu May 25 23:30:39 2000 Raph Levien <raph@acm.org>
|
|
|
|
|
|
|
|
* art_svp_render_aa.h:
|
|
|
|
* art_svp_render_aa.c: Added art_svp_render_aa_iter functions,
|
|
|
|
suitable for iterative rendering of an svp, one scan line at a
|
|
|
|
time.
|
|
|
|
|
|
|
|
* configure.in: Bumped version to 2.2.0.
|
|
|
|
|
|
|
|
Tue May 16 15:03:35 2000 Raph Levien <raph@acm.org>
|
|
|
|
|
|
|
|
* art_rgb_pixbuf_affine.c: Included corresponding .h file.
|
|
|
|
|
|
|
|
* art_rgb_pixbuf_affine.h: Put recursive #includes inside
|
|
|
|
LIBART_COMPILATION test.
|
|
|
|
|
|
|
|
* art_gray_svp.c:
|
|
|
|
* art_rgb_svp.c: Explicit casts for callback data. Also removed
|
|
|
|
"render the steps into tmpbuf" comment.
|
|
|
|
|
|
|
|
* gen_art_config.c:
|
|
|
|
* Makefile.am:
|
|
|
|
* configure.in: Added code to automatically generate an
|
|
|
|
art_config.h file, to be installed in libart's include dir. This
|
|
|
|
file defines ART_SIZEOF_{CHAR,SHORT,INT,LONG} and art_u{8,16,32}.
|
|
|
|
|
|
|
|
* art_misc.h: Moved definition of art_u8 and art_u32 into
|
|
|
|
art_config.h. Added GCC printf format attributes.
|
|
|
|
|
|
|
|
* art_svp_wind.c (traverse): Fixed UMR bug here. The function
|
|
|
|
isn't actually used, so it's just for cleanliness.
|
|
|
|
|
|
|
|
2000-04-18 Lauris Kaplinski <lauris@ariman.ee>
|
|
|
|
|
|
|
|
* art_affine.c (art_affine_to_string): Replaced snprinf with
|
|
|
|
art_ftoa to avoid localisation of generated numbers
|
|
|
|
|
|
|
|
2000-04-18 ERDI Gergo <cactus@cactus.rulez.org>
|
|
|
|
|
|
|
|
* art_rgb_pixbuf_affine.h: Included the ArtPixBuf declaration
|
|
|
|
|
|
|
|
Fri Apr 14 16:33:55 2000 Raph Levien <raph@acm.org>
|
|
|
|
|
|
|
|
* art_svp_wind.c (art_svp_uncross, art_svp_rewind_uncrossed):
|
|
|
|
Fixed uninitialized memory reads when inserting new segment into
|
|
|
|
active_segs.
|
|
|
|
|
|
|
|
* art_bpath.c (art_bpath_affine_transform): Made it avoid
|
|
|
|
potential uninitialized memory reads when not all the coordinates
|
|
|
|
are needed. Thanks to Morten Welinder for spotting both of these
|
|
|
|
problems.
|
|
|
|
|
|
|
|
2000-04-05 Raph Levien <raph@gimp.org>
|
|
|
|
|
|
|
|
* art_svp_wind.c: Make "colinear" warnings go to stderr instead
|
|
|
|
of stdout. Of course, when I finish the new intersector, these
|
|
|
|
will go away entirely.
|
|
|
|
|
|
|
|
2000-04-04 Raph Levien <raph@gimp.org>
|
|
|
|
|
|
|
|
* art_uta_vpath.c (art_uta_add_line): Fixed bug that was causing
|
|
|
|
segfaults on alphas. Thanks to msw for localizing it.
|
|
|
|
|
|
|
|
2000-01-17 Raph Levien <raph@gimp.org>
|
|
|
|
|
|
|
|
* art_svp_vpath_stroke.c (art_svp_vpath_stroke): Typo in api
|
|
|
|
header (thanks rak).
|
|
|
|
|
|
|
|
2000-01-16 Timur Bakeyev <timur@gnu.org>
|
|
|
|
|
|
|
|
* autoconf.sh: Instead of jumping between srdir and builddir just process
|
|
|
|
all the auto* staff in srcdir. In fact, just saying the same things in
|
|
|
|
other words.
|
|
|
|
|
|
|
|
2000-01-10 Elliot Lee <sopwith@redhat.com>
|
|
|
|
|
|
|
|
* Makefile.am, *.h: Add rather bad hacks to the header files to allow compilation
|
|
|
|
|
|
|
|
* Makefile.am: Distribute libart-config.in
|
|
|
|
|
|
|
|
2000-01-09 Raph Levien <raph@gimp.org>
|
|
|
|
|
|
|
|
art_rgb_pixbuf_affine.c, art_rgb_rgba_affine.c, art_rgb_svp.c,
|
|
|
|
art_svp.c, art_svp_ops.c, art_svp_point.c, art_svp_render_aa.c,
|
|
|
|
art_svp_vpath.c, art_svp_vpath_stroke.c, art_svp_wind.c,
|
|
|
|
art_uta.c, art_uta_ops.c, art_uta_rect.c, art_uta_svp.c,
|
|
|
|
art_uta_vpath.c, art_vpath.c, art_vpath_bpath.c, art_vpath_dash.c,
|
|
|
|
art_vpath_svp.c: Added API documentation.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|