Problem mit TrueType- Schrift und SDL
-
Hallo,
Beim Übertragen eines unter Windows geschriebenen Programms auf Linux habe ich das Problem, das die Buchstaben nicht als solche zu erkennen sind.(es werden nur irgendwelche undefinierbaren Zeichen ausgegeben)
Ich benutze zur Darstellung der Schrift die Bibliotheken SDL, SDL_ttf und freetype , wobei treetype nur von SDL_ttf benötig wird.
Egal welche Auflösung oder Schriftart ich benutze die Schrift sieht immer aus wie "Klingonisch" .Alle sonstigen genutzten SDL- Funktionen laufen perfekt.
Da ich in Sachen Linux noch sehr grün bin, währe ich über paar Lösungsansetze sehr dankbar.Hier mal die Entsprechende Funktion und ihr Aufruf:
void TextonScreen(TTF_Font *font,SDL_Surface *screen,char* text,int color, int x,int y) { SDL_Surface *text_surface;; SDL_Rect trect,clrrect; SDL_Color frontcolor; frontcolor.r=(color>>16)&0X000000FF; frontcolor.g=(color>>8)&0x000000FF; frontcolor.b=color&0x000000FF; clrrect.x=x; clrrect.y=y; clrrect.h=(unsigned short) (TTF_FontHeight(font)*3/2); clrrect.w=FONTSIZE*50; trect.x=x; trect.y=y; trect.h=(unsigned short) (TTF_FontHeight(font)*3/2); trect.w=FONTSIZE*50; SDL_FillRect(screen,&clrrect,0X000000); SDL_UpdateRect(screen,clrrect.x,clrrect.y,clrrect.w,clrrect.h); if(!(text_surface=TTF_RenderText_Solid(font,text, frontcolor))) { //handle error here, perhaps print TTF_GetError at least } SDL_BlitSurface(text_surface,0,screen,&trect); SDL_UpdateRect(screen,trect.x,trect.y,trect.w,trect.h); } TextonScreen(font,screen,"BubbleSort",0X00FF00,x,y);
<edit>sfds</edit>
-
Versuch doch mal einen anderen Font zu benutzen. Ansonsten zeig mal wie du den Font öffnest.
auch und btw. bitte benutz immer Code-Tags sfds
-
Ich habe es mit verschiedenen Fonts versucht aber die Darstellung klappt nicht.
so öffne ich den Font:
TTF_Font *font,*font2,*font3; font=TTF_OpenFont("Adler.ttf", 24); if(!font) { printf("TTF_OpenFont: %s\n", TTF_GetError()); }