Pregunta

Hasta ahora utiliza una textura (bitmapfont) para la representación de fuentes, pero estoy tratando de conseguir trabajo freetype2. Todos mis cadenas son SHIFT_JIS codificado y mi único problema es ahora para llegar desde freetype el glifo derecho a un bitsequence SHIFT_JIS adecuada. Pero parece más difícil de lo que esperaba. Para ejemplo "?" tiene el charCode "0x889F" (byte 1 se establece en 136 y el byte 2 es 159) - que está de acuerdo con la codificación SHIFT_JIS. Así que llamé a la función:

FT_Select_Charmap(face, FT_ENCODING_SJIS);

y tratar a continuación, para cargar un glifo con que charCode:

FT_Load_Char(face, 0x889F, FT_LOAD_RENDER ); 

Pero reciben algún glifo azar. No puede ser un problema de la fuente específica, porque he intentado ya diferentes fuentes con el mismo resultado (y sí, proporcionan un mapa de caracteres Shift-JIS). Para ejemplo "0" (cero) debe ser en la posición 0x0030 - pero su hecho en al 0x002D. No todos los personajes tienen un desplazamiento de 3 constante, de lo contrario no habría ningún problema ... Creo que mi llamada "FT_Load_Char", pasar el parámetro charCode en un camino equivocado - pero no puedo adivinar cómo sería correcto. Ya tratado:

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

Pero entonces recibir otro glifo azar. Así que, ¿cómo puedo pasar el charCode a FT_Load_Char si no se selecciona el mapa de caracteres por defecto?

Cualquier consejo sería realmente útil. Gracias.

¿Fue útil?

Solución

Si alguien se encuentra esta tarde con un problema similar: Terminé con la conversión de los códigos de caracteres sobre la marcha para Unicode (usando icu4c). Parece que `sa problema con muchos de los encabezados de fuente SJIS japonés (no pueden seleccionarse mediante los enumeraciones freetype - Sólo si la lista de todos los juegos de caracteres disponibles de una de estas fuentes y luego elegir una de forma manual - ID de la plataforma y que codifican Aren ID 't idéntico para todas estas fuentes también). Pero eso no era una solución adecuada para mis needings (porque el uso de diferentes fuentes), así que finalmente decidí usar Icu4c.

Esperamos que esto sea útil a alguien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top