rendered paste body std::cout << "Starting Font Engine.. "; if(TTF_Init() != -1) { std::cout << "OK.\n"; std::cout << "Loading Font.. "; this->TextFont = TTF_OpenFont("../font/VeraMono.ttf", 10); if(this->TextFont) { std::cout << "OK.\n"; } else { std::cout << "FAILED.\n"; std::cerr << "SDL_TTF error message: " << TTF_GetError() << "\n"; } } else { std::cout << "FAILED.\n"; std::cerr << "SDL_TTF error message: " << TTF_GetError() << "\n"; }bool cVideoEngine::DrawText(int X, int Y, const char* Text, int Red, int Green, int Blue){ std::cout << "Printing Text(" << Text << ").. "; SDL_Color TextColor = {Red, Green, Blue}; SDL_Surface* TextSurface; TextSurface = TTF_RenderText_Shaded(this->TextFont, gettext(Text), TextColor, TextColor); if(TextSurface) { std::cout << "OK.\n"; } else { std::cout << "FAILED.\n"; std::cerr << "SDL_TTF error message: " << TTF_GetError() << "\n"; } int TextSurfaceWidth = 1; int TextSurfaceHeight = 1; while(TextSurfaceWidth <= TextSurface->w) { TextSurfaceWidth *= 2; } while(TextSurfaceHeight <= TextSurface->h) { TextSurfaceHeight *= 2; } TextSurface = SDL_CreateRGBSurfaceFrom(TextSurface->pixels, TextSurfaceWidth, TextSurfaceHeight, 32, 0, 0, 0, 0, 0); std::cout << "Size1: " << TextSurface->w << ", " << TextSurface->h << "\n"; std::cout << "Size2: " << TextSurfaceWidth << ", " << TextSurfaceHeight << "\n"; GLuint TextTexture; glGenTextures(1, &TextTexture); glBindTexture(GL_TEXTURE_2D, TextTexture); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, TextSurfaceWidth, TextSurfaceHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, TextSurface->pixels); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glLoadIdentity(); glTranslatef(X, Y, 0); glBindTexture(GL_TEXTURE_2D, TextTexture); glBegin(GL_QUADS); glTexCoord2f(0, 0); glVertex2i(0, 0); glTexCoord2f(0, (TextSurface->h / TextSurfaceHeight)); glVertex2i(0, TextSurface->h); glTexCoord2f((TextSurface->w / TextSurfaceWidth), (TextSurface->h / TextSurfaceHeight)); glVertex2i(TextSurface->w, TextSurface->h); glTexCoord2f((TextSurface->w / TextSurfaceWidth), 0); glVertex2i(TextSurface->w, 0); glEnd(); glLoadIdentity(); // Properly free the text surface. SDL_FreeSurface(TextSurface);}