Как нарисовать сплошной текст с помощью sdl_ttf?

Вот пример:

SDL_Color textcol = {255, 255, 255};
SDL_Color backtextcol = {0, 0, 0};
SDL_Surface *mes = TTF_RenderText_Shaded(font, "The game has begun", textcol, backtextcol);
apply_surface(40, 40, mes, screen);
SDL_Flip(screen);

Благодаря этому примеру мы рисуем черный прямоугольник с белыми буквами. Можно ли нарисовать только белые буквы с черным внутри без всего черного прямоугольника?


person Allok    schedule 30.05.2012    source источник


Ответы (1)


Да, это возможно. В SDL_TTF есть 3 основные функции рисования текста:

TTF_RenderText_Solid — этот рендерит основной текст (без фона) и он быстрый, но некачественный и будет выглядеть пиксельным.

TTF_RenderText_Shaded — отрисовывает приятные смешанные символы, но с предопределенным цветом фона.

TTF_RenderText_Blended — этот рисует красивый смешанный текст, но использует альфа-смешивание и его медленность, но дает очень хорошие результаты.

person akaltar    schedule 30.05.2012
comment
Я использую _Shaded в своем примере, но он рисует большой черный прямоугольник с белым сообщением. Но я хочу просто сообщение без прямоугольника. Если я использую _Solid, он рисует белые буквы с прозрачным внутри - person Allok; 30.05.2012
comment
Извините, но я не понимаю, чего вы хотите добиться. Не могли бы вы опубликовать какое-нибудь изображение или что-то, чтобы прояснить ситуацию? что именно ты хочешь? Возможно, буквы прозрачные, потому что вы используете шрифт, который должен быть таким? - person akaltar; 31.05.2012