<div dir="ltr">Hi Cairo devs,<div><br></div><div>I'm reading Cairo's source code and trying to figure out its inner design, and it seems a Bentely-Ottmann implementation is heavily referenced, so via symbols like _cairo_bentley_ottmann_tessellate_polygon() and _cairo_bentley_ottmann_tessellate_traps().</div><div><br></div><div>Would it be possible to explain these functions, what's their input, what they do and what's the output?</div><div><br></div><div>AFAIK, the Bentley-Ottmann algorithm is mostly for computing intersections between segments, in the case of Cairo, is it also used for polygon triangulations? If yes, is it possible to explain (referencing cairo source code)?</div><div><br></div><div>What primitive does Cairo use internally for (final) rendering? Is it a span-based rendering or does Cairo build triangles / quads out of the tessellated shapes and submit these to e.g. GPUs for HW accelerated rendering?</div><div><br></div><div>Finally, is there a document describing the architecture and implementation of Cairo, in detail, such as covering the entire processing flow, from the high level API, Bézier curves flattening, to tessellation, triangulation, rasterization and HW acceleration?</div><div><br></div><div>Regards,</div><div>Ilyes</div></div>