<div dir="ltr">Yes, I do wonder if I&#39;m falling off of the slow path.&nbsp; Unfortunately the whole rendering system is a bit .. sprawling, and impractical to show everything.&nbsp; I&#39;ll try to show the relevant calls though.<br>
<br>For clipping, we are using cairo_rectangle/cairo_clip, with aligned coordinates (although I need to verify that the alignment is working, I suppose).&nbsp; When rendering the text, here&#39;s what the code looks like:<br><br>
&nbsp;&nbsp;&nbsp; cairo_set_operator cr, CAIRO_OPERATOR_OVER);<br>&nbsp;&nbsp;&nbsp; cairo_set_source_rgba(cr, red, green, blue, alpha);<br><br>&nbsp;&nbsp;&nbsp; pixel_align_for_fill(cr, &amp;x, &amp;y);<br>&nbsp;&nbsp;&nbsp; cairo_set_font_size(cr, font_size_pixels);<br>&nbsp;&nbsp;&nbsp; maybe_throw_cairo_error(cr, &quot;cairo_set_font_size&quot;);<br>
<br>&nbsp;&nbsp;&nbsp; cairo_move_to(cr, x, y);<br>&nbsp;&nbsp;&nbsp; cairo_show_text(cr, str_as_utf8);<br><br>For my testing, I haven&#39;t set any other text properties, so it&#39;s the default font face &amp; options.&nbsp; Alignment is handled by transforming to device, rounding to integral values, and transforming back to user space.<br>
<br>(I wouldn&#39;t be surprised if my method of getting the results on-screen is also a bottleneck, since the app is double-buffered and I haven&#39;t done any performance testing of the copy yet.&nbsp; But right now I&#39;m measuring the text rendering itself.)<br>
<br>I really hope there&#39;s something I can do, because Cairo is, in all other respects, awesome.&nbsp; It&#39;s the best 2D API I&#39;ve ever used, easily.<br><br>Thanks for your time,<br><br>Damian<br><br><br><div class="gmail_quote">
On Tue, Aug 26, 2008 at 5:23 AM, Gerdus van Zyl <span dir="ltr">&lt;<a href="mailto:gerdusvanzyl@gmail.com">gerdusvanzyl@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Please see this discussing on the list:<br>
<br>
<a href="http://lists.cairographics.org/archives/cairo/2008-February/012982.html" target="_blank">http://lists.cairographics.org/archives/cairo/2008-February/012982.html</a><br>
<br>
The reason I saw slow rendering was with the way I did double<br>
buffering and the type of surface I created. If you could show us your<br>
text rendering code it would be informative.<br>
<font color="#888888"><br>
~Gerdus<br>
</font><div><div></div><div class="Wj3C7c"><br>
On Tue, Aug 26, 2008 at 11:40 AM, Nicholas Allen &lt;<a href="mailto:allen@ableton.com">allen@ableton.com</a>&gt; wrote:<br>
&gt; -----BEGIN PGP SIGNED MESSAGE-----<br>
&gt; Hash: SHA1<br>
&gt;<br>
&gt; I also experience serious performance problems with Cairo. I have only<br>
&gt; run on Windows but it&#39;s performance is so bad as to make it completely<br>
&gt; unusable for what we need. It&#39;s a shame because the API is really<br>
&gt; clean and the output looks great. Hopefully, this will get fixed in<br>
&gt; future releases...<br>
&gt;<br>
&gt; Nick<br>
&gt;<br>
&gt; Damian Frank wrote:<br>
&gt;&gt; I&#39;m pretty new to Cairo, and I&#39;ve been looking at using it for a<br>
&gt;&gt; codebase that currently uses, variously, Xlib, GDI, GDI+, and<br>
&gt;&gt; Quartz, among others. &nbsp;Performance is one of my chief concerns,<br>
&gt;&gt; though. &nbsp;At the moment I&#39;m looking at text performance, and I have<br>
&gt;&gt; some serious concerns. &nbsp;For now, I am just benchmarking on Windows,<br>
&gt;&gt; &nbsp;and only for to-screen rendering (as opposed to printing or<br>
&gt;&gt; PS/PDF/etc).<br>
&gt;&gt;<br>
&gt;&gt; Can someone give me some pointers on staying on the fast code paths<br>
&gt;&gt; &nbsp;for text rendering on win32? &nbsp;My tests so far show image and DDB<br>
&gt;&gt; both taking about 15-20x as long as our GDI implementation, and<br>
&gt;&gt; 24-bit DIB taking about 5x as long.<br>
&gt;&gt;<br>
&gt;&gt; Thanks,<br>
&gt;&gt;<br>
&gt;&gt; Damian<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; ----------------------------------------------------------------------<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________ cairo mailing list<br>
&gt;&gt; <a href="mailto:cairo@cairographics.org">cairo@cairographics.org</a><br>
&gt;&gt; <a href="http://lists.cairographics.org/mailman/listinfo/cairo" target="_blank">http://lists.cairographics.org/mailman/listinfo/cairo</a><br>
&gt;<br>
&gt; -----BEGIN PGP SIGNATURE-----<br>
&gt; Version: GnuPG v1.4.7 (MingW32)<br>
&gt; Comment: Using GnuPG with Mozilla - <a href="http://enigmail.mozdev.org" target="_blank">http://enigmail.mozdev.org</a><br>
&gt;<br>
&gt; iD8DBQFIs8+jbpmWsXfOU58RAhUdAJ9ZvO339sJmJFpaIKaTLDbHEATLngCeK9zT<br>
&gt; AoOUaWptYxAJZE5kIii1Whc=<br>
&gt; =kDzx<br>
&gt; -----END PGP SIGNATURE-----<br>
&gt;<br>
</div></div>&gt; _______________________________________________<br>
<div class="Ih2E3d">&gt; cairo mailing list<br>
&gt; <a href="mailto:cairo@cairographics.org">cairo@cairographics.org</a><br>
&gt; <a href="http://lists.cairographics.org/mailman/listinfo/cairo" target="_blank">http://lists.cairographics.org/mailman/listinfo/cairo</a><br>
&gt;<br>
</div>_______________________________________________<br>
<div><div></div><div class="Wj3C7c">cairo mailing list<br>
<a href="mailto:cairo@cairographics.org">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></div>