Hot dog the other day i had a mind to pick this back up and work on it was sitting on the shelf for months.
A while back i tore open the spritebatch classes for fun and unrolled all the matrixs as well as started sorting out how it all fit together. Long story short.
I decided to rewrite the drawstring method as the basis to speed up text drawing
Then i thought wrapped text would be nice.
If spritebatch just plain did it for you !
But who wants there spritebatch messed with, spritebatch is classic and timeless.
So i turned it into one separate class that just does what drawstring does directly but with extras. I also cut out some of the in-beween junk from xna like character source and replaced it with a stringbuilder. Pass a font to the class grab the glyph data, calculate the text to gylphs to screen then just call spritebatch.Draw instead. Presto it calls directly to draw internal bypassing drawInto altogether..
So thats what ive been working on the last week and its starting to show results.
This is text that is confined to a rectangle bounding box, it both wraps text based on whole words, and if the words are too big it does the next best thing cuts them in half.
Better yet i figured out that measure string can be replaced by something totally different and way faster basically just recording the draws and glyphs of a final word wrapped, letter wrapped, or boundry cut operation. Would allow you to create a data buffer to send to a optimized draw call that would just blaze thru drawing it the second time around.
Its not fully tested or no where near optimized but as you can see from the above i got it basically working.