// Convert from FT_GlyphInfo[] to GlyphInfo[] GlyphInfo[] GetGlyphInfo(FT_GlyphInfo[] ft_glyphs, int scaleFactor) { List<GlyphInfo> glyphs = new List<GlyphInfo>(); List<int> kerningSet = new List<int>(); for (int i = 0; i < ft_glyphs.Length; i++) { GlyphInfo g = new GlyphInfo(); g.id = ft_glyphs[i].id; g.x = ft_glyphs[i].x / scaleFactor; g.y = ft_glyphs[i].y / scaleFactor; g.width = ft_glyphs[i].width / scaleFactor; g.height = ft_glyphs[i].height / scaleFactor; g.xOffset = ft_glyphs[i].xOffset / scaleFactor; g.yOffset = ft_glyphs[i].yOffset / scaleFactor; g.xAdvance = ft_glyphs[i].xAdvance / scaleFactor; // Filter out characters with missing glyphs. if (g.x == -1) continue; glyphs.Add(g); kerningSet.Add(g.id); } m_kerningSet = kerningSet.ToArray(); return glyphs.ToArray(); }
int Render_Character(byte[] buffer_fill, byte[] buffer_edge, int buffer_width, int buffer_height, int offset, int asc, FaceStyles style, float thickness, RenderModes rasterMode, ref FT_GlyphInfo glyphInfo);
public static extern int Render_Character(byte[] buffer_fill, byte[] buffer_edge, int buffer_width, int buffer_height, int offset, int asc, FaceStyles style, float thickness, RenderModes rasterMode, ref FT_GlyphInfo glyphInfo);
public static extern int Render_Characters(byte[] buffer, int buffer_width, int buffer_height, int character_padding, int[] asc_set, int char_count, FaceStyles style, float style_mod, bool autoSize, RenderModes renderMode, int method, ref FT_FaceInfo fontData, FT_GlyphInfo[] Output);
// Convert from FT_GlyphInfo[] to GlyphInfo[] GlyphInfo[] GetGlyphInfo(FT_GlyphInfo[] ft_glyphs, int scaleFactor) { GlyphInfo[] glyphs = new GlyphInfo[ft_glyphs.Length]; m_kerningSet = new int[ft_glyphs.Length]; for (int i = 0; i < ft_glyphs.Length; i++) { GlyphInfo g = new GlyphInfo(); g.id = ft_glyphs[i].id; g.x = ft_glyphs[i].x / scaleFactor; g.y = ft_glyphs[i].y / scaleFactor; g.width = ft_glyphs[i].width / scaleFactor; g.height = ft_glyphs[i].height / scaleFactor; g.xOffset = ft_glyphs[i].xOffset / scaleFactor; g.yOffset = ft_glyphs[i].yOffset / scaleFactor; g.xAdvance = ft_glyphs[i].xAdvance / scaleFactor; glyphs[i] = g; m_kerningSet[i] = g.id; } return glyphs; }