Dwarrowdelf.Client.DrawingCache.CreateCharacterDrawing C# (CSharp) Method

CreateCharacterDrawing() static private method

static private CreateCharacterDrawing ( char c, Color color, bool fillBg ) : System.Windows.Media.Drawing
c char
color Color
fillBg bool
return System.Windows.Media.Drawing
        static Drawing CreateCharacterDrawing(char c, Color color, bool fillBg)
        {
            if (color == Colors.Black)
                color = Colors.White;

            DrawingGroup dGroup = new DrawingGroup();
            Brush brush = new SolidColorBrush(color);
            using (DrawingContext dc = dGroup.Open())
            {
                var typeFace = new Typeface(new FontFamily("Lucida Console"),
                    FontStyles.Normal,
                    FontWeights.Bold,
                    FontStretches.Normal);

                var formattedText = new FormattedText(
                        c.ToString(),
                        System.Globalization.CultureInfo.GetCultureInfo("en-us"),
                        FlowDirection.LeftToRight,
                        typeFace,
                        16,	Brushes.Black);

                var geometry = formattedText.BuildGeometry(new System.Windows.Point(0, 0));

                var bg = fillBg ? Brushes.Black : Brushes.Transparent;
                var pen = fillBg ? null : new Pen(Brushes.Black, 0.5);
                dc.DrawRectangle(bg, null, new Rect(new Size(formattedText.Width, formattedText.Height)));
                dc.DrawGeometry(brush, pen, geometry);
            }

            return dGroup;
        }