[Fontconfig] Single pass text and background

Owen Taylor otaylor at redhat.com
Wed Jul 16 21:32:11 EST 2003

On Wed, 2003-07-16 at 02:04, Matthew Allen wrote:
> Hi,
> I'm wondering whether there is a single pass method to draw text with a background using Xft? Just flat color, nothing special.
> Something like XftDrawStringUtf8 with an extra couple of parameters for a rectangle and color.
> This would make it much easier to write flicker free code. Currently I have to fill the area behind the text using a 
> rectangle primitive and then overlay the text, and of course this doesn't happen instantly so between the 2 operations you
> get background color only on the screen... and thus flicker. Yes I know double buffering fixes this, but the speed + memory 
> hit is a bit much for simple things like standard GUI widgets (tree/list/button etc).
> This is one reason windows _looks_ a lot smoother than most X applications, because they can do this. I don't see why it can't be done 
> (maybe I'm missing something in the API?) because it's fairly simple at a technical level.

I think you'll find that in any more than simplistic situation, you
can't reliably a "DrawImageString" type primitive to prevent flicker -
e.g., modern toolkits allow buttons to have themed buttons with a
gradient or pixmap.

Double buffer. It's not the speed hit you think it is; blits
are *fast* these days. And there is no reason to keep double buffers
around permanently.


(Note that there are *performance* reasons to special case drawing
on a solid background, but it's possible to optimize that without
complicating the API with just a bit of cleverness.)

More information about the Fontconfig mailing list