[cairo] GSoC: Scan converting rasteriser update

Jeff Muizelaar jeff at infidigm.net
Wed Oct 1 12:19:04 PDT 2008

On Fri, Aug 29, 2008 at 02:29:07AM +0300, M Joonas Pihlaja wrote:
> So yeah, please check out the code and come complain to me.  The
> code is available, as always, in the spans branch of
> http://gitweb.freedesktop.org/?p=users/joonas/cairo

Here are some comments based on a look though some of the new code a while ago:

Overall comments:
- I don't really like the make_span_renderer interface. It might be better if
  instead of relying on the fallback surface, we had helpers that would be called from
  the image surface's fill and stroke methods.

  image_surface_fill() {
    mask = span_rasterize_path_to_mask()

  image_surface_stroke() {
    poly = stroke_to_polygon()

- we seem to iterate over the path a number of times. It would be nice to avoid this
  by perhaps merging passes or at least make it more clear when we are doing them.

- on a related note: it would be nice to avoid having to convert to a polygon before calling
  _cairo_polygon_fill_to_scan_converter. i.e. build the edge list directly
  from the fixed path

- reversed conditions in cairo-surface-fallback.c:
	e.g. 'status == CAIRO_STATUS_SUCCESS' is prefered over 'CAIRO_STATUS_SUCCESS == status'
- _cairo_polygon_fill_to_scan_converter has an unnecessary:
        if (status)
                goto unwind
  as does

- cairo-alpha-spans.c:get_row() weird cosmetics

Other comments:
- _cairo_polygon_fill_to_span_renderer has no callers
- it feels like there might be more code that isn't useda

I'll probably have more comments but let's start with these.


More information about the cairo mailing list