SDL_Surface* renderText(const std::string &message, const std::string &fontFile,
SDL_Color color, int fontSize, SDL_Renderer *renderer)
{
static TTF_Font *font = TTF_OpenFont(fontFile.c_str(), fontSize);
SDL_Surface *surf = TTF_RenderText_Blended(font, message.c_str(), color);
return surf;
}
static SDL_Surface* texture_text = //IMG_Load("img.png");
renderText("Hello world!", "font.ttf", {0x00, 0x00, 0xFF, 0xFF}, 16, nullptr);
auto Mode = GL_RGB;
if (texture_text)
{
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
if(texture_text->format->BytesPerPixel == 4)
Mode = GL_RGBA;
}
// set texture parameters
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, Mode, texture_text->w, texture_text->h, 0, Mode, GL_UNSIGNED_BYTE, texture_text->pixels);
SDL2, пытаюсь грузить в этом коде картинку (IMG_Load) - всё хорошо, но в случае текста отображается сплошной красный текст. Ошибок при загрузке шрифта - нет. Куда копать? Есть подозрение, что шрифт, на самом деле отображается, но метровыми буквами.
Правда, картинка тоже отображается перевёрнутой, ужатой до размеров прямоугольника и растянутой по ширине, но это ожидаемо.