[cairo] GSoC: Scan converting rasteriser update

M Joonas Pihlaja jpihlaja at cc.helsinki.fi
Sun Nov 16 15:12:18 PST 2008

On Fri, 14 Nov 2008, Jeff Muizelaar wrote:

> On Thu, Nov 13, 2008 at 11:28:17PM -0500, Jeff Muizelaar wrote:

>> - it might be good to separate out the _mask_init() and _mask_fini()
>>   changes into a separate patch. i.e. separate out the cosmetic
>>   changes from the behavioural changes.

I've changed the users of the mask_init/fini stuff to use a 
cairo_image_surface_t instead.

>> - the function declaration style of _cairo_image_surface_span_renderer_render_row()
>>   and _cairo_image_surface_span_renderer_destroy() don't match the rest of the file.
> - the following line should not have a (void*) cast. It should cast to
>  (struct _cairo_image_surface_span_renderer)
>  	struct _cairo_image_surface_span_renderer *self = (void*)super;

All the self/super stuff has been replaced with the cairo void 
*abstract_foo pattern so now they look like:

static cairo_status_t
_cairo_image_surface_span_renderer_render_row (
     void                                *abstract_renderer,
     int                                  y,
     const cairo_half_open_span_t        *spans,
     unsigned                             num_spans)
     cairo_image_surface_span_renderer_t *renderer = abstract_renderer;

New stuff still on the TODO list:

1. Rename the span_renderer->init method to 
->set_composite_rectangles() to clarify the intent of the method.

2. Use an errror span renderer object on creation failure instead 
of returning NULL.

3. Split up the the backend make_span_renderer() into two to 
reflect the two usages: querying the backend to see if it wants 
to make the requested span renderer and actually making it. 
Naming suggestions welcome (can_make_span_renderer() ?)

4. Improve the quality of comments in cairo-tor-scan-converter + 
naming issues: Add a general outline / theory of operation 
section, remove redundant function comments, and explain some of 
the tricky bits better.

Does that sound about right?  I'll ping the list when it's all 
pushed to my cairo repo.  Hopefully in the next few days.


More information about the cairo mailing list