In my last post I showed how we can fill self intersected polygons using stencil buffer. It is one of the operations I have implemented in Cairo Gallium backend.
We already have many features implemented and others one in WIP. This week i was working in make the stroke operation styles, like join, caps and dashes. I already have them working, Cairo has a nice helper function called _cairo_path_fixed_stroke_to_shaper, it converts the stroke in polygons like quads and triangles. The result can be seen below.
We already have the fill operation also working(like you saw in my last post) , mask, clip and paint(solid pattern). Now i am working in blend operations, Cairo has many and some ones i need to write a shader like i did in my openvg branch not commited.
July 12, 2010 at 1:49 am
Awesome! Now we just need to convince Intel to decide to implement a Gallium3D backend for their cards
July 12, 2010 at 4:30 am
foo: If you want aliased graphics, this is not the first implementation using a stencil buffer. But if you want hardware-accelerated cairo with antialiasing, your options today are basically xlib or cairo-gl. There are optimization efforts for making cairo faster for both of these (both at the driver level and at the cairo level). We haven’t implemented stencil-based path filling because nobody we know actually wants aliased graphics.
And, by focusing on making cairo on GL better instead of spending a year rewriting drivers as gallium and then optimizing cairo on gallium, we’re making the Linux OpenGL stack better. This is a win for everyone.