Well, kinda. If you use proportionally-spaced fonts, you can just use
SDL_TTF to render one word at a time:
For each word, examine whether we’ll be going off the edge if we draw that
word at the current cursor position. If not, draw the word, and move
the cursor’s X position over that far.
If it will, first reset the cursor’s X position to the left edge,
and move the cursor’s Y position down one line. THEN draw the word,
and move the cursor’s X position over that far.
The one special case is when a SINGLE particular word is too long to
fit on one line:
supercalifragolisticexpialadocious [no idea how to spell that ;^) ]
In that case, you could have some ‘special case’ where it then draws the
word one letter at a time, and breaks it up when one of the LETTERS would
be past the right edge.
The difference between doing this ‘one word at a time’ word-wrap vs.
just blitting the entire word is how many times you blit.
(Once you’ve blit a word, you WILL end up using it, unless you’ve gone
below the bottom boundary of where you want your text to go…
then you’re just screwed! )
If you don’t think your text will be longer than one line most of the
time, you can just render it all as one sentence first:
The quick brown fox.
If that’s too wide to fit, THEN you try doing it one… word… at… a… time.
-bill!On Thu, Sep 05, 2002 at 02:19:03PM -0700, Charles Wardlaw wrote:
PS: We use python+SDL and pygame. So solutions using them are
Well, the only real way to do this is manually by calculating how many
characters can fit into a rectangle. I’ll tell you now: skip the TTF
font stuff and use monospace bitmap fonts. Non-monospace fonts require
a bit more calculation.