[cairo] glitz internal and cairo rendering model

Bill Spitzak spitzak at d2.com
Fri May 28 09:38:00 PDT 2004

On Friday 28 May 2004 08:27 am, Stéphane Conversy wrote:
> As I said in my previous message, if cairo makes tesselation
> accessible, at least it can be done in another way, can it ?
> However, even with that scheme, it requires a kind of knowledge from
> the programmer : if I had to program an svg lib (and, actually, I did,
> see my web page), I would use the structure of the scene to try
> optimizing things, which is not feasible with straight-cairo.

My feeling is that there can and should be some additions to Cairo to support 
pre-tesselation, without going all the way to display lists. The main thing 
to add is some non-path primitives. The most important one is 
list-of-rectangles, which could be greatly accelerated if the CTM is all 
integers. The others to add are triangle strip and triangle fan, and 
trapazoids (trapazoids are for the Xrender backend and are only accelerated 
if there is no rotation in the CTM). All of these would replace the current 
path and only "fill" would work, doing "stroke" would produce undefined 

Cairo should also provide a tesselate-fill and tesselate-stroke function that 
returns a structure defining a series of these calls, so a program can use 
the fill/stroke engine and remember the result.

I am not proposing display lists, these would be sent from the application 
just like the path currently is. I would prefer if work was directed toward 
improving the ipc so that a triangle list in the app's memory is as good as a 
triangle list in the server's memory.

                   ,~,~,~,~ ~ ~ ~ ~
     /\_       _|_========___         Bill Spitzak
 ~~~/\/\\~~~~~~\____________/~~~~~~~~ spitzak at d2.com

More information about the cairo mailing list