[cairo] GSoC: Scan converting rasteriser update
Jeff Muizelaar
jeff at infidigm.net
Mon Oct 6 11:53:03 PDT 2008
On Mon, Oct 06, 2008 at 11:51:49AM -0700, Bill Spitzak wrote:
> Jeff Muizelaar wrote:
>
> >>I think the idiom is very readable and useful when you grasp it: a
> >>function
> >>returning cairo_int_status_t can return UNSUPPORTED and not worry about
> >>what
> >>happens, while one returning cairo_status_t can't. That simple, and a
> >>lot can
> >>be checked using static analysis.
> >
> >That's not really true; you do need to worry about what happens. If you
> >have a backend that doesn't implement fill() you have to implement
> >composite_trapezoids(). composite_trapezoids() certainly isn't the only
> >logical operation to implement fill with, a backend end could, for
> >example, want composite_spans(), composite_flattened_polygon() or
> >composite_non_intersecting_polygon(). We wouldn't want to probe each
> >backend for each of these possible operations.
>
> I have to disagree with this. Having the backend call implementations in
> Cairo would work quite well and would be far simpler and more powerful.
Are you disagreeing with what I said or what Behdad said?
> Cairo can supply multiple fallback functions. In the given example,
> Cairo might provide fill_using_trapezoids() *and* fill_using_spans().
> The backend would "select" the right version to use by calling the
> correct callback function. There is no "probe", the selection was made
> when the backend was compiled.
This is what Carl and I are suggesting.
-Jeff
More information about the cairo
mailing list