Bis jetzt habe ich eine Textur (Bitmapfont) zum Font-Rendering verwendet, aber ich versuche Freetype2 zum Laufen zu bringen. Alle meine Strings sind SHIFT_JIS-kodiert und mein einziges Problem ist jetzt, von FreeType das richtige Glyph zu einer richtigen SHIFT_JIS Bitsequenz zu bekommen. Aber es scheint härter als ich erwartet hatte. Zum Beispiel "亜" hat den Zeichencode "0x889F" (Byte 1 ist auf 136 gesetzt und Byte 2 ist 159) - das entspricht der SHIFT_JIS-Codierung. Also rief ich die Funktion:Abrufen eines angegebenen Glyph aus Frei Schriftart (SHIFT JIS codiert)?
FT_Select_Charmap(face, FT_ENCODING_SJIS);
und versuchen dann mit diesem charCode eine Glyphe zu laden:
FT_Load_Char(face, 0x889F, FT_LOAD_RENDER);
Ich aber nehme einige zufällige Glyphe. Es kann kein schriftenspezifisches Problem sein, da ich bereits verschiedene Schriftarten mit dem gleichen Ergebnis probiert habe (und ja, sie bieten eine shift-jis-Charmap). Zu Beispiel "0" (Null) sollte an Position 0x0030 sein - aber es ist tatsächlich bei 0x002D. Nicht alle Zeichen haben einen konstanten Offset von 3, sonst gäbe es kein Problem ... Ich denke, mein "FT_Load_Char" -Aufruf übergibt den Charcode-Parameter falsch - aber ich kann nicht raten, wie es richtig wäre. Bereits versucht:
FT_Load_Char(face, FT_Get_Char_Index(face, 0x889F), FT_LOAD_RENDER);
Aber dann erhalte ich eine andere zufällige Glyphe. Also, wie kann ich den Charcode an FT_Load_Char übergeben, wenn nicht die Standard-Charmap ausgewählt ist?
Jeder Rat wäre wirklich hilfreich. Vielen Dank.