Actually this is quite impossible to do like this, you can't change textures while drawing, I bet it'd kill performance to begin and end after each character
You could do a third pass in addition to outline and text. But querying all the characters a third time (with a linear lookup) won't help performance =\