Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This function creates the required texture.
- bool Init()
- {
- // ...
- g_pFont = TTF_OpenFont("../arial.ttf", 12);
- if(g_pFont == NULL)
- return false;
- // Write text to surface
- g_pText = SDL_DisplayFormatAlpha(TTF_RenderUTF8_Blended(g_pFont, "My first Text!", g_textColor)); //< Doesn't work
- // Note that Solid and Shaded Does work properly if I uncomment them.
- //g_pText = SDL_DisplayFormatAlpha(TTF_RenderUTF8_Solid(g_pFont, "My first Text!", g_textColor));
- //g_pText = SDL_DisplayFormatAlpha(TTF_RenderUTF8_Shaded(g_pFont, "My first Text!", g_textColor, g_bgColor));
- if(g_pText == NULL)
- return false;
- // Prepare the texture for the font
- GLenum textFormat;
- if(g_pText->format->BytesPerPixel == 4)
- {
- // alpha
- if(g_pText->format->Rmask == 0x000000ff)
- textFormat = GL_RGBA;
- else
- textFormat = GL_BGRA_EXT;
- }
- // Create the font's texture
- glGenTextures(1, &g_FontTextureId);
- glBindTexture(GL_TEXTURE_2D, g_FontTextureId);
- glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
- glTexImage2D(GL_TEXTURE_2D, 0, g_pText->format->BytesPerPixel, g_pText->w, g_pText->h, 0, textFormat, GL_UNSIGNED_BYTE, g_pText->pixels);
- // ...
- }
- // this function is called each frame
- void DrawText()
- {
- SDL_Rect sourceRect;
- sourceRect.x = 0;
- sourceRect.y = 0;
- sourceRect.h = 10;
- sourceRect.w = 173;
- // DestRect is null so the rect is drawn at 0,0
- SDL_BlitSurface(g_pText, &sourceRect, g_pSurfaceDisplay, NULL);
- glBindTexture(GL_TEXTURE_2D, g_FontTextureId);
- glEnable(GL_TEXTURE_2D);
- glEnable(GL_BLEND);
- glBegin( GL_QUADS );
- glTexCoord2f(0.0f, 0.0f);
- glVertex2f(0.0f, 0.0f);
- glTexCoord2f(0.0f, 1.0f);
- glVertex2f(0.0f, 10.0f);
- glTexCoord2f(1.0f, 1.0f);
- glVertex2f(173.0f, 10.0f);
- glTexCoord2f(1.0f, 0.0f);
- glVertex2f(173.0f, 0.0f);
- glEnd();
- glDisable(GL_BLEND);
- glDisable(GL_TEXTURE_2D);
- }
- glEnable( GL_BLEND );
- glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
- SDL_BlitSurface(g_pText, &sourceRect, g_pSurfaceDisplay, NULL);
- g_pText = SDL_DisplayFormatAlpha( TTF_RenderUTF8_Blended(...) );
- g_pText = TTF_RenderUTF8_Blended(g_pFont, "My first Text!", g_textColor);
Add Comment
Please, Sign In to add comment