2012-07-16 12 views
6

'da Unicode sorunları Bu nedenle, diğer şeylerin yanı sıra, Vikipedi'nin ana sayfasının konumları ve dizeleri için bir xml ayrıştıran bir uygulama var. Ayrıştırma, dizilerin UTF-8'den UTF-32'ye http://utfcpp.sourceforge.net/ tarafından dönüştürüldüğü fastxml ile yapılır. UTF-32 kod sonra freetype en kullanılır:FreeType

unsigned long c = FT_Get_Char_Index(face,*p); 
FT_Load_Glyph(face,c,FT_LOAD_RENDER); 

* p UTF-32 karakter kodudur. Bu glif daha sonra OpenGL'de işlenir.

Şimdi, cryllic karakterleri, ne Çince, Japonca ya da veteriner işe yarayacak gibi görünmüyor, eminim ki * doğru koda karşılık geliyor ve alabileceğim herhangi bir işaret için minnettar olacağım.

Bu fontlar için Microsofts arial.ttf, Arch linux package ve fontviewing programlarında gördüğüm kadarıyla, istediğim karakterleri içermelidir.

cevap

7

İki şey önermek için:

Önce, size Unicode kodlamayı kullanıyorsanız belirtmek için FT_Select_Charmap denilen var?

FT_Select_Charmap(face , ft_encoding_unicode); 

İkincisi, bütün Arial değil yazı otomatik olarak farklı yüzleri glifleri yerine tarafından saptırmak olabilir (Windows üzerinde, her neyse) tüm karakterleri ve bazı yazı izleyiciler var. Eğer bulabilirsen ArialUni.ttf'u dene.

+1

Önerileriniz için teşekkür ederiz! FT_Select_Charmap kullanmak farklı bir sonuç vermedi, unicode'un freetype'ın varsayılan olduğunu tahmin ediyorum. Aradığım karakterleri içeren ücretsiz bir font var mı? –

+1

Re. fontları, burada başlayacağım: http://en.wikipedia.org/wiki/Unicode_typeface - ve kontrol edilecek diğer bir şey de 'FT_Get_Char_Index' çağırmadan önce kırılma ve geçiş yaptığınız kod noktasını kontrol etmektir. Fastxml veya utfcpp kullanımınızda bir hata olabilir ... – Roddy

+1

Freetype'ın varsayılan kodlaması kullandığınız yazı tipine ve birkaç başka şeye bağlıdır. Kodlamayı açıkça belirtmenizi öneririm. – Roddy

1

Yüzü yükledikten hemen sonra yazı tipi boyutunu ayarlamayı unutmayın.

FT_Error err = FT_Set_Pixel_Sizes(face, (width), (height));