im в настоящее время сталкивается с странной ошибкой с текстом рендеринга с использованием SDL_TTF и OpenGL.Ошибка TTF_RenderText_Solid
Дело в том, что, когда я использую TTF_RenderText_Blended, все тексты отображаются хорошо и без каких-либо проблем
Но когда я хочу перейти к TTF_RenderText_Solid «глючит» черный прямоугольники отображаются, и я не знаю, укажите ли его проблему с SDL_TTF или в OpenGL при создании правильной текстуры с поверхности
Функции для загрузки поверхности от TextInfo (шрифт, размер)
void TextSprite::loadSprite(const std::string& text, textInfo* info){
SDL_Surface* tmpSurface = nullptr;
tmpSurface = TTF_RenderText_Solid(info->font,text.c_str(), *_color);
if (tmpSurface==nullptr){
ErrorManager::systemError("Cannot make a text texture");
}
createTexture(tmpSurface);
}
Функции для создания текстуры OpenGL от SDL_Surface
void TextSprite::createTexture(SDL_Surface* surface){
glGenTextures(1,&_textureID);
glBindTexture(GL_TEXTURE_2D,_textureID);
int Mode = GL_RGB;
if (surface->format->BytesPerPixel==4){
Mode = GL_RGBA;
}
glTexImage2D(GL_TEXTURE_2D,0,Mode,surface->w,surface->h,0,Mode,GL_UNSIGNED_BYTE,surface->pixels);
//Wrapping
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
//Filtering
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR_MIPMAP_NEAREST);
glBindTexture(GL_TEXTURE_2D,0);
_rect.w = surface->w;
_rect.h = surface->h;
SDL_FreeSurface(surface);
}
Спасибо за помощь ,