Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

SDL2_ttf wyświetlanie polskich znaków

Ostatnio zmodyfikowano 2014-07-03 15:14
Autor Wiadomość
wicher
Temat założony przez niniejszego użytkownika
SDL2_ttf wyświetlanie polskich znaków
» 2014-07-03 12:30:28
Witam

Tworzę program korzystający z SDL2_ttf by wyświetlić tekst. Stworzyłem przycisk do którego można w kodzie wpisać tekst. Niestety zamiast polskich liter mam krzaczki. Przeczytałem już na ten temat wiele informacji niestety nadal nie mogę sobie poradzić z tym. Coś robię nie tak, ale nie mogę dociec co.

Oto fragmenty kodu:
C/C++
SDL_Texture * TexFont;
string strTekst;
int iWysokosc;
SDL_Color TextKolor;
string strCzcionka;
SDL_Surface * textSurface;


iWysokosc = 12;
strTekst = "łąka";
TextKolor.b = 255;
TextKolor.g = 255;
TextKolor.r = 255;
strCzcionka = "Tahoma.ttf";

Font = TTF_OpenFont( strCzcionka.c_str(), iWysokosc );

textSurface = TTF_RenderUTF8_Solid( Font, strTekst.c_str(), TextKolor );

TexFont = SDL_CreateTextureFromSurface( renderer, textSurface );

SDL_RenderCopyEx( renderer, TexFont, NULL, & destRect, dKat, Center, Flip );
Czcionka oczywiście posiada polskie znaki.

Projekt w konfiguracji ma:
Use of MFC:Use MFC in a Shared DLL
Character Set: Use Multi-Byte Character Set
No Common Language Runtime Support: No Common Language Runtime Support
P-113169
pekfos
» 2014-07-03 12:42:52
Masz tekst w UTF-8?
P-113170
wicher
Temat założony przez niniejszego użytkownika
» 2014-07-03 13:01:03
chodzi właśnie oto, że plik z "łąką" specjalnie otworzyłem w notatniku i potem zapisałem jako plik z UTF-8 by mieć pewność, a potem ponownie dodałem go do projektu
P-113171
pekfos
» 2014-07-03 13:57:52
C/C++
textSurface = TTF_RenderUNICODE_Solid( Font, L"Zażółć gęślą jaźń", TextKolor );
A tak działa?
P-113172
wicher
Temat założony przez niniejszego użytkownika
» 2014-07-03 14:03:14
Ta forma działa
P-113173
Monika90
» 2014-07-03 14:11:07
A jak zrobisz tak?

strTekst = "\xc5\x82\xc4\x85ka";
textSurface = TTF_RenderUTF8_Solid(Font, strTekst.c_str(), TextKolor);

P-113174
wicher
Temat założony przez niniejszego użytkownika
» 2014-07-03 14:16:42
ta forma też działa. To co problem jest w podawaniu string-a?
P-113175
pekfos
» 2014-07-03 14:19:16
Tak. Jeśli masz zgodny ze standardem kompilator, to zrób tak:
C/C++
strTekst = u8 "łąka";
Lub przejdź na wstringi i TTF_RenderUNICODE_Solid().
P-113176
« 1 » 2
  Strona 1 z 2 Następna strona