[cairo] Problem with text rendering on Win32+ClearType, and possible fix

Owen Taylor otaylor at redhat.com
Fri Oct 6 13:35:16 PDT 2006


On Fri, 2006-10-06 at 10:54 -0700, Stuart Parmenter wrote:
> > Still, I don't really understand the reasoning behind having
> > _cairo_win32_surface_show_glyphs at all...
> >
> 
> Basically to avoid the pointless extra mallocs, arrays

If the cairo_array usage in cairo-win32-font.c shows up on
profiles, it would seem better to fix it there, then half-replace
the code with code elsewhere? Or maybe improve cairo_array
to allow it to be initialized with a fixed size static buffer.

>  and more importantly the extra SaveDC()/RestoreDC()

I see one Save/Restore in the cairo-win32-font.c
one Save/Restore in cairo-win32-surface.c; am I missing something?

>   Yes, they do show up on
> profiles.  I'd like to be able to avoid the extra SaveDC/RestoreDC in
> _cairo_win32_surface_show_glyphs, but without making some assumptions
> they're hard to remove.  We're able to determine those assumptions in
> our code and in that case we simply avoid calling _show_glyphs
> entirely. (basically only for very simple text). 

So it sounds like you aren't actually using the code you added
for performance reasons then?

>  We use this (_cairo_win32_surface_show_glyphs) fast path for the large 
> majority of our text only hitting the software fallback in extreme conditions.

I don't think there was a software fallback before in most cases.

					- Owen

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.freedesktop.org/archives/cairo/attachments/20061006/d58b16b5/attachment.pgp


More information about the cairo mailing list