Редактировать поверхность, созданную с помощью TTF_RenderText?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Редактировать поверхность, созданную с помощью TTF_RenderText?

Сообщение Anonymous »

Я пытаюсь создать меню, используя SDL2. У меня есть несколько элементов, состоящих из нескольких указательных слов, которые я превращаю в поверхности с помощью TTF_RenderText_Blended, затем превращаю их в текстуры с помощью SDL_CreateTextureFromSurface, а затем отображаю их все в столбце, один под другим. Это работает нормально, но ради интерактивности я хочу сделать сочетание клавиш для каждого элемента явным, подчеркивая соответствующий символ в каждом элементе.
Это мой код:

Код: Выделить всё

int char_w,char_h; TTF_SizeText(font, "C", &char_w,&char_h);
...
s_item =TTF_RenderText_Blended(font, ">  New game", RED);
SDL_Rect r =(SDL_Rect){char_w*3,char_h-5,char_w,3};
SDL_FillRect(s_item, &r, 79);
items[n]->t =SDL_CreateTextureFromSurface(renderer, s_item);
Я решил, что самый простой способ добиться желаемого эффекта — это нарисовать на поверхности тонкий прямоугольник под интересующим меня персонажем, прежде чем превратить его в текстуру.
Однако это не работает, текст отображается на экране, но не подчеркивается.
Я пробовал множество других методов, на мой взгляд бесполезно более сложных, таких как создание текстуры, установка цели рендеринга на эту текстуру и рисование линии или объединение двух поверхностей — безрезультатно.
Возможно, это связано, но я не понимаю предлагаемого решения.

Подробнее здесь: https://stackoverflow.com/questions/784 ... rendertext
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»