[cairo] Stroking using polygons

argiris kirtzidis akyrtzi at gmail.com
Fri Nov 21 04:59:33 PST 2008


Hi,

I'm developing a GPU backend for cairo (it uses either OpenGL or Direct3D).

When stroking a path, cairo produces polygons which get tessellated into 
trapezoids and pushed to the backend. Trapezoid tessellation is totally 
unnecessary for a GPU backend since it can render the polygons directly.

Would you be interested in a patch that allows the stroking functions to 
call custom functions and pass them a triangle/rectangle/quad/polygon ?
It should work kind of like _cairo_path_fixed_interpret which also calls 
custom functions for move_to, line_to, curve_to, etc.

By default the stroker would be called with the normal 
trapezoid-tessellation functions:

_cairo_traps_tessellate_triangle
_cairo_traps_tessellate_rectangle
_cairo_traps_tessellate_convex_quad
_cairo_bentley_ottmann_tessellate_polygon

but a GPU backend would be able to pass its own functions that do a 
direct rendering of the polygons.

-Argiris


More information about the cairo mailing list