[Xr] Help: Render error on XrFormatRGB32
Keith Packard
keithp at keithp.com
Sat May 3 18:13:03 PDT 2003
Around 16 o'clock on May 3, Owen Taylor wrote:
> So, the big culprit here is actually computing the alpha values for
> the individual trapezoids. Since that computation is scheduled to
> be completely rewritten, it's a little hard draw performance
> conclusions at this point.
It's more than rewriting the code. We've made some fundemental
discoveries on the nature of incremental composition of tesselated figures
that go to the very heart of the low-level rasterization code.
Essentially, point sampling is as good as you can do, the only question is
where to place the points. The current implementation places them
differently depending on the precise edges in use which generates some
significant "issues" in many tesselations, so our plan is to place them in
a regular grid using the observation that:
2**(2n) - 1 = (2**n - 1) * (2**n + 1)
e.g.
2**8 - 1 = (2**4 - 1) * (2**4 + 1)
255 = 15 * 17
Right now, the best algorithm I've come up with is to just step
the trapezoid edge 15 times per pixel row; that's actually pretty fast,
but it would be nice to have an analytical approach which computed the
covered samples directly from the edge values somehow.
Suggestions on how to draw the trapezoids using point-sampled alpha grids
are welcome.
-keith
More information about the cairo
mailing list