Or you could just draw the text in black eight times, then in white once. No separate layer, just draw it directly onto the buffer.

I know it's not a generic solution, doesn't allow for certain kinds of interesting combinations, and means that things like the progress bar would have to be special-case coded, but perhaps it would be simplest and fastest.
_________________________
Tony Fabris