Witam,
już prawie 8h siedzę nad tym problemem. Widzę, że nie został on podjęty na 4p.
Korzystając z kodu NeHe http://nehe.gamedev.net/tutorial/freetype_fonts_in_opengl/24001/
jestem w stanie narysować tekst w openGL, lecz problem pojawia się z polskimi znakami. Doszedłem do wniosku, żeby roszerzyć generowane znaki do 256, następnie do 512, użyć zamiast char - unsigned char lub unsigned short lub nawet wchar_t, jednak polskich znaków brak. Po kilku testach zauważyłem, że wyświetlają się wszystkie znaki, oprócz polskich (zaznaczone czerwoną ramką).
Próbowałem już zmieniać kodowanie plików, projektu (pracuję w Code::Blocks), dodawanie L przed stringiem, podawanie kodu ASCII '\230', '\152'. Nic mi nie idzie. Nie mam pojęcia dlaczego tak się dzieje. Oczywiście testowałem wiele fontów TTF (m. in. arial, verdana, tachoma, times). Już jestem chory. Mógłby ktoś podsunąć rozwiązanie tego problemu? Może spotkaliście się z czymś takim.
0
0
Przyślij jakiś przykładowy kod (albo jeszcze lepiej - projekt) jeśli nie tajny, spróbujemy coś zrobić.
0
Ogólnie projekt jest bardzo tajny, za kod odpowiedzialny za obsluge tekstu identyczny jak w artykule na NeHe lekcja 43 - link podałem. U dołu mozna pobrac projekt. Przetestujcie u siebie, moze cos z moja zintegrowana karta w laptopie.
1
Zawziąłem się i doszedłem do konkretnej odpowiedzi.
http://pl.wikipedia.org/wiki/ISO_10646
Windows1250 -> USC
int translatePolishWindows1250(int ch)
{
switch(ch)
{
case 165: return 260; break;
case 198: return 262; break;
case 202: return 280; break;
case 163: return 321; break;
case 209: return 323; break;
case 211: return 211; break;
case 140: return 346; break;
case 143: return 377; break;
case 175: return 379; break;
case 185: return 261; break;
case 230: return 263; break;
case 234: return 281; break;
case 179: return 322; break;
case 241: return 324; break;
case 243: return 243; break;
case 156: return 347; break;
case 159: return 378; break;
case 191: return 380; break;
default: return ch;
}
}
Zupgreadowana wersja freetype.cpp
http://4programmers.net/Pastebin/1318
Dodatkowo przydatny link: http://pl.wikipedia.org/wiki/Kodowanie_polskich_znak%C3%B3w
Sorki za tyle postów pod rząd, ale to są po prostu ważne rzeczy, których długo szukałem.