Domanda

Fino ad ora ho usato una texture (bitmapfont) per il rendering dei font, ma sto cercando di ottenere lavoro freetype2. Tutte le mie corde sono SHIFT_JIS codificato e il mio unico problema è ora quello di ottenere dal freetype il glifo diritto ad una corretta bitsequence SHIFT_JIS. Ma sembra più difficile di quanto mi aspettassi. Per esempio "?" ha il charcode "0x889F" (byte 1 è impostato a 136 e il byte 2 è 159) - che è secondo la codifica SHIFT_JIS. Così ho chiamato la funzione:

FT_Select_Charmap(face, FT_ENCODING_SJIS);

e cercare quindi di caricare un glifo con quella charcode:

FT_Load_Char(face, 0x889F, FT_LOAD_RENDER ); 

Ma ho ricevuto un po 'di glifo casuale. Non può essere un problema specifico del carattere, perché ho provato font già diverse con lo stesso risultato (e sì, forniscono un charmap shift-JIS). Per esempio "0" (zero) dovrebbe essere in posizione 0x0030 - ma è infatti alla 0x002D. Non tutti i personaggi hanno un offset di 3 costante, altrimenti non ci sarebbe nessun problema ... penso che la mia chiamata "FT_Load_Char", passare il parametro charcode in modo sbagliato - ma smussano indovinare come sarebbe giusto. Già provato:

FT_Load_Char(face, FT_Get_Char_Index(face, 0x889F), FT_LOAD_RENDER ); 

Ma poi ho ricevuto un altro glifo casuale. Così, come posso passare il charcode a FT_Load_Char se è selezionata non il charmap predefinita?

Tutto il consiglio sarebbe veramente utile. Grazie.

È stato utile?

Soluzione

Se qualcuno troverà questo più tardi con un problema simile: Ho finito con la conversione dei codici di carattere al volo per unicode (utilizzando icu4c). Sembra che c`è problema con un sacco di giapponesi intestazioni caratteri SJIS (non possono selezionato tramite le enumerazioni FreeType - solo se si elencano tutti i set di caratteri disponibili di uno di questi tipi di carattere e quindi scegliere il giusto manualmente - piattaforma di ID & codificano Aren ID 't identico per tutti questi tipi di carattere troppo). Ma non era una soluzione adeguata per i miei needings (perché l'utilizzo di diversi tipi di carattere), così ho finalmente deciso di utilizzare Icu4c.

Speriamo che questo sarà utile a qualcuno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top