Как сделать разрывы линий и обертывание линий с помощью SDL-TTF?

Я только начал использовать SDL2_ttf. Я понял, как получить текст на экране с помощью TTF_RenderText_Blended, но как я могу заставить его делать разрывы линий и автоматическую обертку?

  1. он, кажется, не поддерживает n; Он просто создает пространство, вместо того, чтобы идти вниз по линии. Есть ли способ добавить поддержку для этого? В частности, используя правильную высоту строки текста, а не несколькими вызовами RenderText в разных координатах Y.
  2. учитывая координату X, Y и ширина, как я могу автоматически перейти по линии, когда эта ширина достигнута (разрыв между словами)?

2 ответов


вместо TTF_RenderText_Blended используйте TTF_RenderText_Blended_Wrapped. Он принимает дополнительный параметр: ширина в пикселях, после чего текст будет разбит на следующую строку.


SDL_TTF не делает обертывание, вы должны написать свой собственный.

TTF_Font* ttf;
TTF_SizeText(ttf, "Hello World", &w, &h);

дает вам ширину и высоту строки.