Example #1
0
        private static void WriteBmConfigFile(FontDeclaration font, HashSet<char> pCharacterList)
        {
            using (StreamWriter writer = new StreamWriter(File.Open(font.m_FileName, FileMode.Create)))
            {
                writer.WriteLine("# AngelCode Bitmap Font Generator configuration file");
                writer.WriteLine("fileVersion=1");
                writer.WriteLine("");
                writer.WriteLine("# font settings");
                writer.WriteLine("fontName=" + font.m_FontName);
                writer.WriteLine("charSet=0");
                writer.WriteLine("fontSize=" + font.m_FontSize);
                writer.WriteLine("aa=1");
                writer.WriteLine("scaleH=100");
                writer.WriteLine("useSmoothing=1");
                writer.WriteLine("isBold=" + ((font.m_Bold) ? 1 : 0));
                writer.WriteLine("isItalic=0");
                writer.WriteLine("useUnicode=1");
                writer.WriteLine("disableBoxChars=1");
                writer.WriteLine("outputInvalidCharGlyph=0");
                writer.WriteLine("");
                writer.WriteLine("# character alignment");
                writer.WriteLine("paddingDown=" + font.m_Outline);
                writer.WriteLine("paddingUp=" + font.m_Outline);
                writer.WriteLine("paddingRight=" + font.m_Outline);
                writer.WriteLine("paddingLeft=" + font.m_Outline);
                writer.WriteLine("spacingHoriz=" + (1 + font.m_Outline));
                writer.WriteLine("spacingVert=" + (1 + font.m_Outline));
                writer.WriteLine("");
                writer.WriteLine("# output file");
                writer.WriteLine("outWidth=" + font.m_TextureWidth);
                writer.WriteLine("outHeight=" + font.m_TextureWidth);
                writer.WriteLine("outBitDepth=32");
                writer.WriteLine("fontDescFormat=1");
                writer.WriteLine("fourChnlPacked=0");
                writer.WriteLine("textureFormat=png");
                writer.WriteLine("textureCompression=0");
                writer.WriteLine("alphaChnl=2");
                writer.WriteLine("redChnl=0");
                writer.WriteLine("greenChnl=0");
                writer.WriteLine("blueChnl=0");
                writer.WriteLine("invA=0");
                writer.WriteLine("invR=0");
                writer.WriteLine("invG=0");
                writer.WriteLine("invB=0");
                writer.WriteLine("");
                writer.WriteLine("# outline");
                writer.WriteLine("outlineThickness=" + 0);//a_oFont.m_iOutline);
                writer.WriteLine("");
                writer.WriteLine("# selected chars");

                writer.Write("chars=");

                int iLineCount = 0;

                foreach (char c in pCharacterList)
                {
                    //write out a line for each key that creates a # define that can be used in C++
                    writer.Write((int)c + ",");

                    //once we've written 10
                    if (iLineCount++ > 10)
                    {
                        //go to the next line
                        writer.Write("\nchars=");
                        iLineCount -= 10;
                    }
                }
                //close the binary writer
                writer.Close();
            }
        }
Example #2
0
        private static void ReadFontDeclaration()
        {
            using (XmlReader reader = XmlReader.Create("Fonts.xml"))
            {
                while (reader.Read())
                {
                    if (reader.Name == "Font")
                    {
                        FontDeclaration font = new FontDeclaration();
                        font.m_Language = reader.GetAttribute("Language");
                        font.m_FileName = reader.GetAttribute("ConfigFileName");
                        font.m_FontName = reader.GetAttribute("Name");
                        font.m_Bold = (reader.GetAttribute("Bold") == "True");
                        font.m_FontSize = int.Parse(reader.GetAttribute("Size"));
                        font.m_Outline = int.Parse(reader.GetAttribute("Outline"));
                        font.m_TextureWidth = int.Parse(reader.GetAttribute("TextureWidth"));

                        m_pFontList.Add(font);
                    }
                }
            }
        }