Thanks guys.<br>
<br>
I appreciate the responses, but I just couldn&#39;t deal with the API any longer.<br>
<br>
I moved over to a game-based engine called Gorgon, which is based upon 
Direct3D/Direct2D. It works very well for blitting transparency onto the
 surfaces, and it runs INCREDIBLY fast due to hardware acceleration. 
Unfortunately, SlimDX is a pain in the ass to distribute, but it&#39;s the 
best option I got! It also works solely on floating point values for one
 of these very reasons.<br>
<br>
Again, thanks you guys, Andrea, for taking the time to respond and try to solve my issue.<br>
<br>
-P<br><br><div class="gmail_quote">On Fri, Nov 12, 2010 at 5:57 PM, Bill Spitzak <span dir="ltr">&lt;<a href="mailto:spitzak@gmail.com">spitzak@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

I don&#39;t think there is any way around having to use another buffer for the brush stroke.<br>
<br>
However using MIN (or MAX if the brush is 0 in the transparent areas and 1 where opaque) would be a way to create this buffer from an antialiased or partially-transparent brush at the same resolution as the final image. There is no need for the super-sampling I suggested.<div>

<div></div><div class="h5"><br>
<br>
M Joonas Pihlaja wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
On Fri, 12 Nov 2010, Bill Spitzak wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
The real solution is to somehow figure out the exact antialiasing of the<br>
entire brush stroke. I think modern programs just do this by making a much<br>
bigger &quot;stroke buffer&quot; where the a much larger aliased brush draws opaque,<br>
</blockquote>
<br>
If you could composite the brush using MIN() on the alpha component,<br>
then you could generate a mask that preserves the antialiasing<br>
reasonably but afaict, there&#39;s no easy way to do this using pure cairo<br>
calls.  Andrea Canciani suggested using the new DARKEN operator to<br>
create a greyscale version of the mask (implements MIN() on the colour<br>
components, but sadly not alpha) and then converting that to an A8<br>
mask.<br>
<br>
Joonas<br>
</blockquote>
--<br>
cairo mailing list<br>
<a href="mailto:cairo@cairographics.org" target="_blank">cairo@cairographics.org</a><br>
<a href="http://lists.cairographics.org/mailman/listinfo/cairo" target="_blank">http://lists.cairographics.org/mailman/listinfo/cairo</a><br>
</div></div></blockquote></div><br>