[cairo-commit] cairo ChangeLog,1.108,1.109 TODO,1.12,1.13

Carl Worth commit at pdx.freedesktop.org
Mon Nov 17 07:04:18 PST 2003


Committed by: cworth

Update of /cvs/cairo/cairo
In directory pdx:/tmp/cvs-serv23102

Modified Files:
	ChangeLog TODO 
Log Message:

        * Remove infinite looping when stroking with a line width at or
        close to 0.0. Thanks to Rob Buis <buis at kde.org> and Noah Levitt
        <nlevitt at columbia.edu> for providing in-the-wild examples of SVG
        files with stroke-width:0 that demonstrated the problem,
        (cowboy.svg and albania.svg).

        * src/cairo_pen.c (_cairo_pen_stroke_spline): Do nothing if the
        pen is a degenerate, single point. This happens when the line
        width is a very small, non-zero value.

        * src/cairo_gstate.c (_cairo_gstate_stroke): Do nothing when asked
        to stroke a path with a line_width of 0.0. Previously, this would
        lead to an infinite loop.

        * src/cairo.c (cairo_set_line_width): Force negative line width
        to 0.0.

        * TODO: Updated TODO list.


Index: ChangeLog
===================================================================
RCS file: /cvs/cairo/cairo/ChangeLog,v
retrieving revision 1.108
retrieving revision 1.109
diff -C2 -d -r1.108 -r1.109
*** ChangeLog	10 Nov 2003 16:16:34 -0000	1.108
--- ChangeLog	17 Nov 2003 15:04:15 -0000	1.109
***************
*** 1,2 ****
--- 1,23 ----
+ 2003-11-17  Carl Worth  <cworth at isi.edu>
+ 
+ 	* Remove infinite looping when stroking with a line width at or
+ 	close to 0.0. Thanks to Rob Buis <buis at kde.org> and Noah Levitt
+ 	<nlevitt at columbia.edu> for providing in-the-wild examples of SVG
+ 	files with stroke-width:0 that demonstrated the problem,
+ 	(cowboy.svg and albania.svg).
+ 
+ 	* src/cairo_pen.c (_cairo_pen_stroke_spline): Do nothing if the
+ 	pen is a degenerate, single point. This happens when the line
+ 	width is a very small, non-zero value.
+ 
+ 	* src/cairo_gstate.c (_cairo_gstate_stroke): Do nothing when asked
+ 	to stroke a path with a line_width of 0.0. Previously, this would
+ 	lead to an infinite loop.
+ 
+ 	* src/cairo.c (cairo_set_line_width): Force negative line width
+ 	to 0.0.
+ 
+ 	* TODO: Updated TODO list.
+ 
  2003-11-10  Carl Worth  <cworth at east.isi.edu>
  

Index: TODO
===================================================================
RCS file: /cvs/cairo/cairo/TODO,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** TODO	10 Nov 2003 16:16:34 -0000	1.12
--- TODO	17 Nov 2003 15:04:16 -0000	1.13
***************
*** 1,11 ****
  * Fix the intersection problem, (see reference to Hobby's paper
! mentioned in cairo_traps.c)
  
! * Implement support for programmatic patterns
  
  * Implement cairo_text_extents, cairo_glyph_extents, cairo_text_path,
  cairo_glyph_path, and cairo_stroke_path, cairo_arc_to.
  
! * Add a few new, needed functions?
  
     cairo_flush
--- 1,19 ----
+ * Change stroke code to go through one giant polygon. This will fix
+ problems with stroking self-intersecting paths.
+ 
+ * Implement cairo_stroke_path, (very easy to do after the above change
+ is done).
+ 
  * Fix the intersection problem, (see reference to Hobby's paper
! mentioned in cairo_traps.c).
  
! * Implement support for programmatic patterns.
  
  * Implement cairo_text_extents, cairo_glyph_extents, cairo_text_path,
  cairo_glyph_path, and cairo_stroke_path, cairo_arc_to.
  
! * Investigate what needs to be done so that old X servers aren't
! swamped with image transport. This may involve adding one or more of
! the following functions:
  
     cairo_flush
***************
*** 13,21 ****
     cairo_mark_dirty
  
- * Verification, profiling, optimization.
- 
  * Re-implement the trapezoid rasterization algorithm according to the
  new "specification".
  
  A comparison with PostScript
  ============================
--- 21,29 ----
     cairo_mark_dirty
  
  * Re-implement the trapezoid rasterization algorithm according to the
  new "specification".
  
+ * Verification, profiling, optimization.
+ 
  A comparison with PostScript
  ============================





More information about the cairo-commit mailing list