Problem z wyswietleniem tekstu [SDL_ttf]
Ostatnio zmodyfikowano 2010-11-26 18:55
Savail Temat założony przez niniejszego użytkownika |
Problem z wyswietleniem tekstu [SDL_ttf] » 2010-11-26 16:07:28 Witam Uzywam Opengl i sdl i za pomoca sdl_ttf chcialbym wyswietlac tekst.... Niestety nie mam pojecia co robie zle i juz od kilku godzin sie nad tym zastanawiam ;/ To jest funkcja rysujaca tekst: void ClassProgram::LoadFont( std::string font_name, int font_size, std::string text, int pos_x, int pos_y, int r, int g, int b ) { if( TTF_Init() == - 1 ) exit( 0 ); SDL_Surface * message = NULL; TTF_Font * font = NULL; SDL_Color fontcolor = { r, g, b }; font = TTF_OpenFont( font_name.c_str(), font_size ); if( font == NULL ) exit( 0 ); message = TTF_RenderText_Solid( font, text.c_str(), fontcolor ); SDL_Rect offset; offset.x = pos_x; offset.y = pos_y; SDL_BlitSurface( message, NULL, Screen, & offset ); SDL_FreeSurface( message ); TTF_CloseFont( font ); TTF_Quit(); }
Tutaj jest funkcja wyswietlajaca caly interfejs: void ClassProgram::Draw( std::string game_mode ) { glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); if( game_mode == "menu" ) object2.kursor_menu( kursor_x, kursor_y ); if( game_mode == "pre_campaign" ) object2.pre_campaign(); LoadFont( "arial.ttf", 28, "hfgdhghdgsdfsdhgfsdhgfhgsdfO", 200, 200, 255, 255, 255 ); SDL_Flip( Screen ); SDL_GL_SwapBuffers(); }
Grafika sie wyswietla ale tekst juz nie ;/. Jest 1 roznica pomiedzy wyswietlaniem tekstu a grafiki w moim kodzie: grafike nakladam na quady a tekst wyswietlam przez SDL_BlitSurface... Moze stad wynikaja te problemy, nie wiem;/ Bylbym ogromnie wdzieczny za pomoc! Jesli potrzeba wiecej szczegolow to powiedzcie EDIT:: W czystym SDLu tekst sie wyswietla bo sprawdzalem, trzeba uzyc tylko SDL_Flip() a tutaj po wyswitleniu uzywam SDL_Flip(Screen); SDL_GL_SwapBuffers(); i nie wiem czy to sie "nie gryzie" ;/ |
|
F90M |
» 2010-11-26 18:55:01 W czystym SDLu tekst sie wyswietla bo sprawdzalem |
W czystym SDLu nie ma funkcji odpowiedzialnych za wyświetlanie tekstu. W tym kodzie jedyny błąd jaki widzę to, że zmienne r,g,b są typu int, powinny być Uint8. Funkcja LoadFont() działa dobrze, a SDL_Flip( Screen ); SDL_GL_SwapBuffers(); się nie "gryzie". |
|
« 1 » |