public SpriteFont(SpriteSheet spriteSheet, string file, int glyphWidth, int glyphHeight, char startASCII, char endASCII, float charSpacing, float spaceWidth, float lineHeight, bool xtrim) { SpriteSheet = spriteSheet; CharSpacing = charSpacing; SpaceWidth = spaceWidth; LineHeight = lineHeight; start = startASCII; end = endASCII; glyphs = new Sprite[end + 1]; Platform.LoadImage(file, out int width, out int height, out byte[] imageData); Bitmap spriteData = new Bitmap(imageData, width, height); for (int i = start; i <= end; i++) { // Make sure loaded image is large enough // If image is not large enough, generate error glyphs if (width >= glyphWidth * (i - start) + glyphWidth) { glyphs[i] = spriteSheet.AddSpriteFontGlyph(spriteData, new RectangleI(glyphWidth * (i - start), 0, glyphWidth, glyphHeight), xtrim); } else { glyphs[i] = spriteSheet.AddSpriteFontGlyph(spriteData, new RectangleI(0, 0, glyphWidth.Min(width), glyphHeight.Min(height)), false); } } }