public void Add(byte[] ttf, float pixel_height, IEnumerable <FontBakerCharacterRange> ranges) { var ttfPtr = new FakePtr <byte>(ttf); foreach (var range in ranges) { if (range.Start > range.End) { continue; } var cd = new StbTrueType.stbtt_packedchar[range.End - range.Start + 1]; for (var i = 0; i < cd.Length; ++i) { cd[i] = new StbTrueType.stbtt_packedchar(); } StbTrueType.stbtt_PackFontRange(pc, ttfPtr, 0, pixel_height, range.Start, range.End - range.Start + 1, new FakePtr <StbTrueType.stbtt_packedchar>(cd)); for (var i = 0; i < cd.Length; ++i) { result[(char)(i + range.Start)] = cd[i]; } } }
public void Begin(byte[] pixels, int pw, int ph) { if (_beginCalled) { throw new Exception("Call End() before calling Begin again"); } _beginCalled = true; result.Clear(); StbTrueType.stbtt_PackBegin(pc, new FakePtr <byte>(pixels), pw, ph, pw, 1); }
public Dictionary <char, StbTrueType.stbtt_packedchar> End() { StbTrueType.stbtt_PackEnd(pc); return(result); }