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

Initialize() public method

public Initialize ( string FontName, float FontSize, FontStyle FontStyle, bool AntiAliased ) : bool
FontName string
FontSize float
FontStyle FontStyle
AntiAliased bool
return bool
        public bool Initialize(string FontName, float FontSize, FontStyle FontStyle, bool AntiAliased)
        {
            Debug.Assert(!_initialized);
            var font = new Font(FontName, FontSize, FontStyle, GraphicsUnit.Pixel);

            var hint = AntiAliased ? TextRenderingHint.AntiAlias : TextRenderingHint.SystemDefault;

            var tempSize = (int) (FontSize * 2);
            using (var charBitmap = new Bitmap(tempSize, tempSize, PixelFormat.Format32bppArgb))
            {
                using (var charGraphics = Graphics.FromImage(charBitmap))
                {
                    charGraphics.PageUnit = GraphicsUnit.Pixel;
                    charGraphics.TextRenderingHint = hint;

                    MeasureChars(font, charGraphics);

                    using (var fontSheetBitmap = new Bitmap(_texWidth, _texHeight, PixelFormat.Format32bppArgb))
                    {
                        using (var fontSheetGraphics = Graphics.FromImage(fontSheetBitmap))
                        {
                            fontSheetGraphics.CompositingMode = CompositingMode.SourceCopy;
                            fontSheetGraphics.Clear(Color.FromArgb(0, Color.Black));

                            BuildFontSheetBitmap(font, charGraphics, charBitmap, fontSheetGraphics);

                            if (!BuildFontSheetTexture(fontSheetBitmap))
                            {
                                return false;
                            }
                        }
                        //System.Drawing.Bitmap bm = new System.Drawing.Bitmap(fontSheetBitmap);
                        //bm.Save(@"C:\temp\test.png");
                    }
                }
            }

            _initialized = true;

            return true;
        }

Usage Example

コード例 #1
0
ファイル: Renderer.cs プロジェクト: Icehunter/ffxivapp-hooker
 private DXFont GetFontForTextElement(TextElement element)
 {
     DXFont result;
     var key = String.Format("{0}{1}{2}", element.Font.Name, element.Font.Size, element.Font.Style);
     if (FontCache.TryGetValue(key, out result))
     {
         return result;
     }
     result = new DXFont(Device, DeviceContext);
     result.Initialize(element.Font.Name, element.Font.Size, element.Font.Style, element.AntiAliased);
     FontCache[key] = result;
     return result;
 }
All Usage Examples Of FFXIVAPP.Hooker.Engine.DXFont::Initialize