FFXIVAPP.Hooker.Engine.DXFont.BuildFontSheetBitmap C# (CSharp) Method

BuildFontSheetBitmap() private method

private BuildFontSheetBitmap ( Font font, Graphics charGraphics, Bitmap charBitmap, Graphics fontSheetGraphics ) : void
font System.Drawing.Font
charGraphics System.Drawing.Graphics
charBitmap System.Drawing.Bitmap
fontSheetGraphics System.Drawing.Graphics
return void
        private void BuildFontSheetBitmap(Font font, Graphics charGraphics, Bitmap charBitmap, Graphics fontSheetGraphics)
        {
            var whiteBrush = Brushes.White;
            var fontSheetX = 0;
            var fontSheetY = 0;

            for (var i = 0; i < NumChars; ++i)
            {
                charGraphics.Clear(Color.FromArgb(0, Color.Black));
                charGraphics.DrawString(((char) (StartChar + i)).ToString(), font, whiteBrush, new PointF(0.0f, 0.0f));

                var minX = GetCharMinX(charBitmap);
                var maxX = GetCharMaxX(charBitmap);
                var charWidth = maxX - minX + 1;

                if (fontSheetX + charWidth >= _texWidth)
                {
                    fontSheetX = 0;
                    fontSheetY += (int) (_charHeight) + 1;
                }

                _charRects[i] = new Rectangle(fontSheetX, fontSheetY, fontSheetX + charWidth, fontSheetY + _charHeight);

                fontSheetGraphics.DrawImage(charBitmap, fontSheetX, fontSheetY, new System.Drawing.Rectangle(minX, 0, charWidth, _charHeight), GraphicsUnit.Pixel);

                fontSheetX += charWidth + 1;
            }
        }