diff --git a/BizHawk.sln.DotSettings b/BizHawk.sln.DotSettings
index 808a4cd6c9..8944aa2001 100644
--- a/BizHawk.sln.DotSettings
+++ b/BizHawk.sln.DotSettings
@@ -235,6 +235,7 @@
True
True
True
+ True
True
True
True
@@ -305,6 +306,7 @@
True
True
True
+ True
True
True
True
diff --git a/Bizware/BizHawk.Bizware.BizwareGL/Borrowed/BitmapFontParser/BitmapFont.cs b/Bizware/BizHawk.Bizware.BizwareGL/Borrowed/BitmapFontParser/BitmapFont.cs
index 80c4f6433d..46f4b53234 100644
--- a/Bizware/BizHawk.Bizware.BizwareGL/Borrowed/BitmapFontParser/BitmapFont.cs
+++ b/Bizware/BizHawk.Bizware.BizwareGL/Borrowed/BitmapFontParser/BitmapFont.cs
@@ -1,183 +1,71 @@
-//public domain assumed from cyotek.com
-
-using System;
-using System.Collections;
+using System.Collections;
using System.Collections.Generic;
using System.Drawing;
+// public domain assumed from cyotek.com
namespace Cyotek.Drawing.BitmapFont
{
- public class BitmapFont : IEnumerable
- {
- #region Public Member Declarations
+ public class BitmapFont : IEnumerable
+ {
+ public IEnumerator GetEnumerator()
+ {
+ foreach (KeyValuePair pair in Characters)
+ {
+ yield return pair.Value;
+ }
+ }
- public const int NoMaxWidth = -1;
+ public int AlphaChannel { get; set; }
- #endregion Public Member Declarations
+ public int BaseHeight { get; set; }
- #region Public Constructors
+ public int BlueChannel { get; set; }
- public BitmapFont()
- { }
+ public bool Bold { get; set; }
- #endregion Public Constructors
+ public IDictionary Characters { get; set; }
- #region Public Methods
+ public string Charset { get; set; }
- public IEnumerator GetEnumerator()
- {
- foreach (KeyValuePair pair in this.Characters)
- yield return pair.Value;
- }
+ public string FamilyName { get; set; }
- public int GetKerning(char previous, char current)
- {
- Kerning key;
- int result;
+ public int FontSize { get; set; }
- key = new Kerning(previous, current, 0);
- if (!this.Kernings.TryGetValue(key, out result))
- result = 0;
+ public int GreenChannel { get; set; }
- return result;
- }
+ public bool Italic { get; set; }
- public Size MeasureFont(string text)
- {
- return this.MeasureFont(text, BitmapFont.NoMaxWidth);
- }
+ public IDictionary Kernings { get; set; }
- public Size MeasureFont(string text, double maxWidth)
- {
- char previousCharacter;
- string normalizedText;
- int currentLineWidth;
- int currentLineHeight;
- int blockWidth;
- int blockHeight;
- List lineHeights;
+ public int LineHeight { get; set; }
- previousCharacter = ' ';
- normalizedText = this.NormalizeLineBreaks(text);
- currentLineWidth = 0;
- currentLineHeight = this.LineHeight;
- blockWidth = 0;
- blockHeight = 0;
- lineHeights = new List();
+ public int OutlineSize { get; set; }
- foreach (char character in normalizedText)
- {
- switch (character)
- {
- case '\n':
- lineHeights.Add(currentLineHeight);
- blockWidth = Math.Max(blockWidth, currentLineWidth);
- currentLineWidth = 0;
- currentLineHeight = this.LineHeight;
- break;
- default:
- Character data;
- int width;
+ public bool Packed { get; set; }
- data = this[character];
- width = data.XAdvance + this.GetKerning(previousCharacter, character);
+ public Padding Padding { get; set; }
- if (maxWidth != BitmapFont.NoMaxWidth && currentLineWidth + width >= maxWidth)
- {
- lineHeights.Add(currentLineHeight);
- blockWidth = Math.Max(blockWidth, currentLineWidth);
- currentLineWidth = 0;
- currentLineHeight = this.LineHeight;
- }
+ public Page[] Pages { get; set; }
- currentLineWidth += width;
- currentLineHeight = Math.Max(currentLineHeight, data.Bounds.Height + data.Offset.Y);
- previousCharacter = character;
- break;
- }
- }
+ public int RedChannel { get; set; }
- // finish off the current line if required
- if (currentLineHeight != 0)
- lineHeights.Add(currentLineHeight);
+ public bool Smoothed { get; set; }
- // reduce any lines other than the last back to the base
- for (int i = 0; i < lineHeights.Count - 1; i++)
- lineHeights[i] = this.LineHeight;
+ public Point Spacing { get; set; }
- // calculate the final block height
- foreach (int lineHeight in lineHeights)
- blockHeight += lineHeight;
+ public int StretchedHeight { get; set; }
- return new Size(Math.Max(currentLineWidth, blockWidth), blockHeight);
- }
+ public int SuperSampling { get; set; }
- public string NormalizeLineBreaks(string s)
- {
- return s.Replace("\r\n", "\n").Replace("\r", "\n");
- }
+ public Size TextureSize { get; set; }
- #endregion Public Methods
+ public Character this[char character] => Characters[character];
- #region Public Properties
+ public bool Unicode { get; set; }
- public int AlphaChannel { get; set; }
-
- public int BaseHeight { get; set; }
-
- public int BlueChannel { get; set; }
-
- public bool Bold { get; set; }
-
- public IDictionary Characters { get; set; }
-
- public string Charset { get; set; }
-
- public string FamilyName { get; set; }
-
- public int FontSize { get; set; }
-
- public int GreenChannel { get; set; }
-
- public bool Italic { get; set; }
-
- public IDictionary Kernings { get; set; }
-
- public int LineHeight { get; set; }
-
- public int OutlineSize { get; set; }
-
- public bool Packed { get; set; }
-
- public Padding Padding { get; set; }
-
- public Page[] Pages { get; set; }
-
- public int RedChannel { get; set; }
-
- public bool Smoothed { get; set; }
-
- public Point Spacing { get; set; }
-
- public int StretchedHeight { get; set; }
-
- public int SuperSampling { get; set; }
-
- public Size TextureSize { get; set; }
-
- public Character this[char character] => this.Characters[character];
-
- public bool Unicode { get; set; }
-
- #endregion Public Properties
-
- #region Private Methods
-
- IEnumerator IEnumerable.GetEnumerator()
- {
- return this.GetEnumerator();
- }
-
- #endregion Private Methods
- }
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+ }
}
diff --git a/Bizware/BizHawk.Bizware.BizwareGL/Borrowed/BitmapFontParser/BitmapFontLoader.cs b/Bizware/BizHawk.Bizware.BizwareGL/Borrowed/BitmapFontParser/BitmapFontLoader.cs
index 31dd1c80b2..e290401d98 100644
--- a/Bizware/BizHawk.Bizware.BizwareGL/Borrowed/BitmapFontParser/BitmapFontLoader.cs
+++ b/Bizware/BizHawk.Bizware.BizwareGL/Borrowed/BitmapFontParser/BitmapFontLoader.cs
@@ -1,447 +1,170 @@
-//public domain assumed from cyotek.com
-
-using System;
+using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Xml;
+// public domain assumed from cyotek.com
namespace Cyotek.Drawing.BitmapFont
{
- // Parsing class for bitmap fonts generated by AngelCode BMFont
- // http://www.angelcode.com/products/bmfont/
-
- public static class BitmapFontLoader
- {
- #region Public Class Methods
-
- /////
- ///// Loads a bitmap font from a file, attempting to auto detect the file type
- /////
- ///// Name of the file to load.
- /////
- //public static BitmapFont LoadFontFromFile(string fileName)
- //{
- // BitmapFont result;
-
- // if (string.IsNullOrEmpty(fileName))
- // throw new ArgumentNullException("fileName", "File name not specified");
- // else if (!File.Exists(fileName))
- // throw new FileNotFoundException(string.Format("Cannot find file '{0}'", fileName), fileName);
-
- // using (FileStream file = File.OpenRead(fileName))
- // {
- // using (TextReader reader = new StreamReader(file))
- // {
- // string line;
-
- // line = reader.ReadLine();
-
- // if (line.StartsWith("info "))
- // result = BitmapFontLoader.LoadFontFromTextFile(fileName);
- // else if (line.StartsWith("
- /// Loads a bitmap font from a text file.
- ///
- /// Name of the file to load.
- public static BitmapFont LoadFontFromTextFile(string fileName)
- {
- BitmapFont font;
- IDictionary pageData;
- IDictionary kerningDictionary;
- IDictionary charDictionary;
- string resourcePath;
- string[] lines;
-
- if (string.IsNullOrEmpty(fileName))
- throw new ArgumentNullException(nameof(fileName), "File name not specified");
- else if (!File.Exists(fileName))
- throw new FileNotFoundException(string.Format("Cannot find file '{0}'", fileName), fileName);
-
- pageData = new SortedDictionary();
- kerningDictionary = new Dictionary();
- charDictionary = new Dictionary();
- font = new BitmapFont();
-
- resourcePath = Path.GetDirectoryName(fileName);
- lines = File.ReadAllLines(fileName);
-
- foreach (string line in lines)
- {
- string[] parts;
-
- parts = BitmapFontLoader.Split(line, ' ');
-
- if (parts.Length != 0)
- {
- switch (parts[0])
- {
- case "info":
- font.FamilyName = BitmapFontLoader.GetNamedString(parts, "face");
- font.FontSize = BitmapFontLoader.GetNamedInt(parts, "size");
- font.Bold = BitmapFontLoader.GetNamedBool(parts, "bold");
- font.Italic = BitmapFontLoader.GetNamedBool(parts, "italic");
- font.Charset = BitmapFontLoader.GetNamedString(parts, "charset");
- font.Unicode = BitmapFontLoader.GetNamedBool(parts, "unicode");
- font.StretchedHeight = BitmapFontLoader.GetNamedInt(parts, "stretchH");
- font.Smoothed = BitmapFontLoader.GetNamedBool(parts, "smooth");
- font.SuperSampling = BitmapFontLoader.GetNamedInt(parts, "aa");
- font.Padding = BitmapFontLoader.ParsePadding(BitmapFontLoader.GetNamedString(parts, "padding"));
- font.Spacing = BitmapFontLoader.ParsePoint(BitmapFontLoader.GetNamedString(parts, "spacing"));
- font.OutlineSize = BitmapFontLoader.GetNamedInt(parts, "outline");
- break;
- case "common":
- font.LineHeight = BitmapFontLoader.GetNamedInt(parts, "lineHeight");
- font.BaseHeight = BitmapFontLoader.GetNamedInt(parts, "base");
- font.TextureSize = new Size
- (
- BitmapFontLoader.GetNamedInt(parts, "scaleW"),
- BitmapFontLoader.GetNamedInt(parts, "scaleH")
- );
- font.Packed = BitmapFontLoader.GetNamedBool(parts, "packed");
- font.AlphaChannel = BitmapFontLoader.GetNamedInt(parts, "alphaChnl");
- font.RedChannel = BitmapFontLoader.GetNamedInt(parts, "redChnl");
- font.GreenChannel = BitmapFontLoader.GetNamedInt(parts, "greenChnl");
- font.BlueChannel = BitmapFontLoader.GetNamedInt(parts, "blueChnl");
- break;
- case "page":
- int id;
- string name;
- string textureId;
-
- id = BitmapFontLoader.GetNamedInt(parts, "id");
- name = BitmapFontLoader.GetNamedString(parts, "file");
- textureId = Path.GetFileNameWithoutExtension(name);
-
- pageData.Add(id, new Page(id, Path.Combine(resourcePath, name)));
- break;
- case "char":
- Character charData;
-
- charData = new Character
- {
- Char = (char)BitmapFontLoader.GetNamedInt(parts, "id"),
- Bounds = new Rectangle
- (
- BitmapFontLoader.GetNamedInt(parts, "x"),
- BitmapFontLoader.GetNamedInt(parts, "y"),
- BitmapFontLoader.GetNamedInt(parts, "width"),
- BitmapFontLoader.GetNamedInt(parts, "height")
- ),
- Offset = new Point
- (
- BitmapFontLoader.GetNamedInt(parts, "xoffset"),
- BitmapFontLoader.GetNamedInt(parts, "yoffset")
- ),
- XAdvance = BitmapFontLoader.GetNamedInt(parts, "xadvance"),
- TexturePage = BitmapFontLoader.GetNamedInt(parts, "page"),
- Channel = BitmapFontLoader.GetNamedInt(parts, "chnl")
- };
- charDictionary.Add(charData.Char, charData);
- break;
- case "kerning":
- Kerning key;
-
- key = new Kerning((char)BitmapFontLoader.GetNamedInt(parts, "first"), (char)BitmapFontLoader.GetNamedInt(parts, "second"), GetNamedInt(parts, "amount"));
-
- if (!kerningDictionary.ContainsKey(key))
- kerningDictionary.Add(key, key.Amount);
- break;
- }
- }
- }
-
- font.Pages = BitmapFontLoader.ToArray(pageData.Values);
- font.Characters = charDictionary;
- font.Kernings = kerningDictionary;
-
- return font;
- }
-
- ///
- /// Loads a bitmap font from an XML file.
- ///
- /// Name of the file to load.
- public static BitmapFont LoadFontFromXmlFile(Stream stream)
- {
- XmlDocument document;
- BitmapFont font;
- IDictionary pageData;
- IDictionary kerningDictionary;
- IDictionary charDictionary;
- XmlNode root;
- XmlNode properties;
-
- document = new XmlDocument();
- pageData = new SortedDictionary();
- kerningDictionary = new Dictionary();
- charDictionary = new Dictionary();
- font = new BitmapFont();
-
- document.Load(stream);
- root = document.DocumentElement;
-
- // load the basic attributes
- properties = root.SelectSingleNode("info");
- font.FamilyName = properties.Attributes["face"].Value;
- font.FontSize = Convert.ToInt32(properties.Attributes["size"].Value);
- font.Bold = Convert.ToInt32(properties.Attributes["bold"].Value) != 0;
- font.Italic = Convert.ToInt32(properties.Attributes["italic"].Value) != 0;
- font.Unicode = Convert.ToInt32(properties.Attributes["unicode"].Value) != 0;
- font.StretchedHeight = Convert.ToInt32(properties.Attributes["stretchH"].Value);
- font.Charset = properties.Attributes["charset"].Value;
- font.Smoothed = Convert.ToInt32(properties.Attributes["smooth"].Value) != 0;
- font.SuperSampling = Convert.ToInt32(properties.Attributes["aa"].Value);
- font.Padding = BitmapFontLoader.ParsePadding(properties.Attributes["padding"].Value);
- font.Spacing = BitmapFontLoader.ParsePoint(properties.Attributes["spacing"].Value);
- font.OutlineSize = Convert.ToInt32(properties.Attributes["outline"].Value);
-
- // common attributes
- properties = root.SelectSingleNode("common");
- font.BaseHeight = Convert.ToInt32(properties.Attributes["lineHeight"].Value);
- font.LineHeight = Convert.ToInt32(properties.Attributes["base"].Value);
- font.TextureSize = new Size
- (
- Convert.ToInt32(properties.Attributes["scaleW"].Value),
- Convert.ToInt32(properties.Attributes["scaleH"].Value)
- );
- font.Packed = Convert.ToInt32(properties.Attributes["packed"].Value) != 0;
- font.AlphaChannel = Convert.ToInt32(properties.Attributes["alphaChnl"].Value);
- font.RedChannel = Convert.ToInt32(properties.Attributes["redChnl"].Value);
- font.GreenChannel = Convert.ToInt32(properties.Attributes["greenChnl"].Value);
- font.BlueChannel = Convert.ToInt32(properties.Attributes["blueChnl"].Value);
-
- // load texture information
- foreach (XmlNode node in root.SelectNodes("pages/page"))
- {
- Page page;
-
- page = new Page();
- page.Id = Convert.ToInt32(node.Attributes["id"].Value);
- page.FileName = node.Attributes["file"].Value;
-
- pageData.Add(page.Id, page);
- }
- font.Pages = BitmapFontLoader.ToArray(pageData.Values);
-
- // load character information
- foreach (XmlNode node in root.SelectNodes("chars/char"))
- {
- Character character;
-
- character = new Character();
- character.Char = (char)Convert.ToInt32(node.Attributes["id"].Value);
- character.Bounds = new Rectangle
- (
- Convert.ToInt32(node.Attributes["x"].Value),
- Convert.ToInt32(node.Attributes["y"].Value),
- Convert.ToInt32(node.Attributes["width"].Value),
- Convert.ToInt32(node.Attributes["height"].Value)
- );
- character.Offset = new Point
- (
- Convert.ToInt32(node.Attributes["xoffset"].Value),
- Convert.ToInt32(node.Attributes["yoffset"].Value)
- );
- character.XAdvance = Convert.ToInt32(node.Attributes["xadvance"].Value);
- character.TexturePage = Convert.ToInt32(node.Attributes["page"].Value);
- character.Channel = Convert.ToInt32(node.Attributes["chnl"].Value);
-
- charDictionary.Add(character.Char, character);
- }
- font.Characters = charDictionary;
-
- // loading kerning information
- foreach (XmlNode node in root.SelectNodes("kernings/kerning"))
- {
- Kerning key;
-
- key = new Kerning((char)Convert.ToInt32(node.Attributes["first"].Value), (char)Convert.ToInt32(node.Attributes["second"].Value), Convert.ToInt32(node.Attributes["amount"].Value));
-
- if (!kerningDictionary.ContainsKey(key))
- kerningDictionary.Add(key, key.Amount);
- }
- font.Kernings = kerningDictionary;
-
- return font;
- }
-
- #endregion Public Class Methods
-
- #region Private Class Methods
-
- ///
- /// Returns a boolean from an array of name/value pairs.
- ///
- /// The array of parts.
- /// The name of the value to return.
- private static bool GetNamedBool(string[] parts, string name)
- {
- return BitmapFontLoader.GetNamedInt(parts, name) != 0;
- }
-
- ///
- /// Returns an integer from an array of name/value pairs.
- ///
- /// The array of parts.
- /// The name of the value to return.
- private static int GetNamedInt(string[] parts, string name)
- {
- return Convert.ToInt32(BitmapFontLoader.GetNamedString(parts, name));
- }
-
- ///
- /// Returns a string from an array of name/value pairs.
- ///
- /// The array of parts.
- /// The name of the value to return.
- private static string GetNamedString(string[] parts, string name)
- {
- string result;
-
- result = "";
- name = name.ToLowerInvariant();
-
- foreach (string part in parts)
- {
- int nameEndIndex;
-
- nameEndIndex = part.IndexOf("=");
- if (nameEndIndex != -1)
- {
- string namePart;
- string valuePart;
-
- namePart = part.Substring(0, nameEndIndex).ToLowerInvariant();
- valuePart = part.Substring(nameEndIndex + 1);
-
- if (namePart == name)
- {
- if (valuePart.StartsWith("\"") && valuePart.EndsWith("\""))
- valuePart = valuePart.Substring(1, valuePart.Length - 2);
-
- result = valuePart;
- break;
- }
- }
- }
-
- return result;
- }
-
- ///
- /// Creates a Padding object from a string representation
- ///
- /// The string.
- private static Padding ParsePadding(string s)
- {
- string[] parts;
-
- parts = s.Split(',');
-
- return new Padding()
- {
- Left = Convert.ToInt32(parts[3].Trim()),
- Top = Convert.ToInt32(parts[0].Trim()),
- Right = Convert.ToInt32(parts[1].Trim()),
- Bottom = Convert.ToInt32(parts[2].Trim())
- };
- }
-
- ///
- /// Creates a Point object from a string representation
- ///
- /// The string.
- private static Point ParsePoint(string s)
- {
- string[] parts;
-
- parts = s.Split(',');
-
- return new Point()
- {
- X = Convert.ToInt32(parts[0].Trim()),
- Y = Convert.ToInt32(parts[1].Trim())
- };
- }
-
- ///
- /// Splits the specified string using a given delimiter, ignoring any instances of the delimiter as part of a quoted string.
- ///
- /// The string to split.
- /// The delimiter.
- private static string[] Split(string s, char delimiter)
- {
- string[] results;
-
- if (s.Contains("\""))
- {
- List parts;
- int partStart;
-
- partStart = -1;
- parts = new List();
-
- do
- {
- int partEnd;
- int quoteStart;
- int quoteEnd;
- bool hasQuotes;
-
- quoteStart = s.IndexOf("\"", partStart + 1);
- quoteEnd = s.IndexOf("\"", quoteStart + 1);
- partEnd = s.IndexOf(delimiter, partStart + 1);
-
- if (partEnd == -1)
- partEnd = s.Length;
-
- hasQuotes = quoteStart != -1 && partEnd > quoteStart && partEnd < quoteEnd;
- if (hasQuotes)
- partEnd = s.IndexOf(delimiter, quoteEnd + 1);
-
- parts.Add(s.Substring(partStart + 1, partEnd - partStart - 1));
-
- if (hasQuotes)
- partStart = partEnd - 1;
-
- partStart = s.IndexOf(delimiter, partStart + 1);
- } while (partStart != -1);
-
- results = parts.ToArray();
- }
- else
- results = s.Split(new char[] { delimiter }, StringSplitOptions.RemoveEmptyEntries);
-
- return results;
- }
-
- ///
- /// Converts the given collection into an array
- ///
- /// Type of the items in the array
- /// The values.
- private static T[] ToArray(ICollection values)
- {
- T[] result;
-
- // avoid a forced .NET 3 dependency just for one call to Linq
-
- result = new T[values.Count];
- values.CopyTo(result, 0);
-
- return result;
- }
-
- #endregion Private Class Methods
- }
+ // Parsing class for bitmap fonts generated by AngelCode BMFont
+ // http://www.angelcode.com/products/bmfont/
+
+ public static class BitmapFontLoader
+ {
+ #region Public Class Methods
+
+ ///
+ /// Loads a bitmap font from an XML file.
+ ///
+ public static BitmapFont LoadFontFromXmlFile(Stream stream)
+ {
+ var document = new XmlDocument();
+ IDictionary pageData = new SortedDictionary();
+ IDictionary kerningDictionary = new Dictionary();
+ IDictionary charDictionary = new Dictionary();
+ var font = new BitmapFont();
+
+ document.Load(stream);
+ XmlNode root = document.DocumentElement;
+
+ // load the basic attributes
+ var properties = root.SelectSingleNode("info");
+ font.FamilyName = properties.Attributes["face"].Value;
+ font.FontSize = Convert.ToInt32(properties.Attributes["size"].Value);
+ font.Bold = Convert.ToInt32(properties.Attributes["bold"].Value) != 0;
+ font.Italic = Convert.ToInt32(properties.Attributes["italic"].Value) != 0;
+ font.Unicode = Convert.ToInt32(properties.Attributes["unicode"].Value) != 0;
+ font.StretchedHeight = Convert.ToInt32(properties.Attributes["stretchH"].Value);
+ font.Charset = properties.Attributes["charset"].Value;
+ font.Smoothed = Convert.ToInt32(properties.Attributes["smooth"].Value) != 0;
+ font.SuperSampling = Convert.ToInt32(properties.Attributes["aa"].Value);
+ font.Padding = ParsePadding(properties.Attributes["padding"].Value);
+ font.Spacing = ParsePoint(properties.Attributes["spacing"].Value);
+ font.OutlineSize = Convert.ToInt32(properties.Attributes["outline"].Value);
+
+ // common attributes
+ properties = root.SelectSingleNode("common");
+ font.BaseHeight = Convert.ToInt32(properties.Attributes["lineHeight"].Value);
+ font.LineHeight = Convert.ToInt32(properties.Attributes["base"].Value);
+ font.TextureSize = new Size
+ (
+ Convert.ToInt32(properties.Attributes["scaleW"].Value),
+ Convert.ToInt32(properties.Attributes["scaleH"].Value)
+ );
+ font.Packed = Convert.ToInt32(properties.Attributes["packed"].Value) != 0;
+ font.AlphaChannel = Convert.ToInt32(properties.Attributes["alphaChnl"].Value);
+ font.RedChannel = Convert.ToInt32(properties.Attributes["redChnl"].Value);
+ font.GreenChannel = Convert.ToInt32(properties.Attributes["greenChnl"].Value);
+ font.BlueChannel = Convert.ToInt32(properties.Attributes["blueChnl"].Value);
+
+ // load texture information
+ foreach (XmlNode node in root.SelectNodes("pages/page"))
+ {
+ var page = new Page
+ {
+ Id = Convert.ToInt32(node.Attributes["id"].Value),
+ FileName = node.Attributes["file"].Value
+ };
+
+ pageData.Add(page.Id, page);
+ }
+ font.Pages = ToArray(pageData.Values);
+
+ // load character information
+ foreach (XmlNode node in root.SelectNodes("chars/char"))
+ {
+ var character = new Character
+ {
+ Char = (char) Convert.ToInt32(node.Attributes["id"].Value),
+ Bounds = new Rectangle
+ (
+ Convert.ToInt32(node.Attributes["x"].Value),
+ Convert.ToInt32(node.Attributes["y"].Value),
+ Convert.ToInt32(node.Attributes["width"].Value),
+ Convert.ToInt32(node.Attributes["height"].Value)
+ ),
+ Offset = new Point
+ (
+ Convert.ToInt32(node.Attributes["xoffset"].Value),
+ Convert.ToInt32(node.Attributes["yoffset"].Value)
+ ),
+ XAdvance = Convert.ToInt32(node.Attributes["xadvance"].Value),
+ TexturePage = Convert.ToInt32(node.Attributes["page"].Value),
+ Channel = Convert.ToInt32(node.Attributes["chnl"].Value)
+ };
+
+ charDictionary.Add(character.Char, character);
+ }
+
+ font.Characters = charDictionary;
+
+ // loading kerning information
+ foreach (XmlNode node in root.SelectNodes("kernings/kerning"))
+ {
+ var key = new Kerning((char)Convert.ToInt32(node.Attributes["first"].Value), (char)Convert.ToInt32(node.Attributes["second"].Value), Convert.ToInt32(node.Attributes["amount"].Value));
+
+ if (!kerningDictionary.ContainsKey(key))
+ {
+ kerningDictionary.Add(key, key.Amount);
+ }
+ }
+
+ font.Kernings = kerningDictionary;
+
+ return font;
+ }
+
+ #endregion Public Class Methods
+
+ #region Private Class Methods
+
+ ///
+ /// Creates a Padding object from a string representation
+ ///
+ /// The string.
+ private static Padding ParsePadding(string s)
+ {
+ var parts = s.Split(',');
+
+ return new Padding
+ {
+ Left = Convert.ToInt32(parts[3].Trim()),
+ Top = Convert.ToInt32(parts[0].Trim()),
+ Right = Convert.ToInt32(parts[1].Trim()),
+ Bottom = Convert.ToInt32(parts[2].Trim())
+ };
+ }
+
+ ///
+ /// Creates a Point object from a string representation
+ ///
+ /// The string.
+ private static Point ParsePoint(string s)
+ {
+ var parts = s.Split(',');
+
+ return new Point
+ {
+ X = Convert.ToInt32(parts[0].Trim()),
+ Y = Convert.ToInt32(parts[1].Trim())
+ };
+ }
+
+ ///
+ /// Converts the given collection into an array
+ ///
+ /// Type of the items in the array
+ /// The values.
+ private static T[] ToArray(ICollection values)
+ {
+ // avoid a forced .NET 3 dependency just for one call to Linq
+ var result = new T[values.Count];
+ values.CopyTo(result, 0);
+
+ return result;
+ }
+
+ #endregion Private Class Methods
+ }
}
diff --git a/Bizware/BizHawk.Bizware.BizwareGL/IGraphicsControl.cs b/Bizware/BizHawk.Bizware.BizwareGL/IGraphicsControl.cs
index 724544f7f3..d9a90dbba6 100644
--- a/Bizware/BizHawk.Bizware.BizwareGL/IGraphicsControl.cs
+++ b/Bizware/BizHawk.Bizware.BizwareGL/IGraphicsControl.cs
@@ -30,6 +30,4 @@ namespace BizHawk.Bizware.BizwareGL
///
void End();
}
-
-
}
\ No newline at end of file
diff --git a/Bizware/BizHawk.Bizware.BizwareGL/Pipeline.cs b/Bizware/BizHawk.Bizware.BizwareGL/Pipeline.cs
index d709885732..59632feb4b 100644
--- a/Bizware/BizHawk.Bizware.BizwareGL/Pipeline.cs
+++ b/Bizware/BizHawk.Bizware.BizwareGL/Pipeline.cs
@@ -23,8 +23,11 @@ namespace BizHawk.Bizware.BizwareGL
return;
UniformsDictionary = new SpecialWorkingDictionary(this);
- foreach(var ui in uniforms)
+ foreach (var ui in uniforms)
+ {
UniformsDictionary[ui.Name] = new PipelineUniform(this);
+ }
+
foreach (var ui in uniforms)
{
UniformsDictionary[ui.Name].AddUniformInfo(ui);
@@ -47,11 +50,9 @@ namespace BizHawk.Bizware.BizwareGL
{
get
{
- PipelineUniform temp;
- if (!TryGetValue(key, out temp))
+ if (!TryGetValue(key, out var temp))
{
- var ui = new UniformInfo();
- ui.Opaque = null;
+ var ui = new UniformInfo {Opaque = null};
temp = this[key] = new PipelineUniform(null);
}
@@ -65,12 +66,11 @@ namespace BizHawk.Bizware.BizwareGL
readonly SpecialWorkingDictionary UniformsDictionary;
IDictionary Uniforms => UniformsDictionary;
- public IEnumerable GetUniforms() { return Uniforms.Values; }
+ public IEnumerable GetUniforms() => Uniforms.Values;
public PipelineUniform TryGetUniform(string name)
{
- PipelineUniform ret = null;
- Uniforms.TryGetValue(name,out ret);
+ Uniforms.TryGetValue(name, out var ret);
return ret;
}
diff --git a/Bizware/BizHawk.Bizware.BizwareGL/StringRenderer.cs b/Bizware/BizHawk.Bizware.BizwareGL/StringRenderer.cs
index 6a68bfb439..6a34b8d788 100644
--- a/Bizware/BizHawk.Bizware.BizwareGL/StringRenderer.cs
+++ b/Bizware/BizHawk.Bizware.BizwareGL/StringRenderer.cs
@@ -16,7 +16,7 @@ namespace BizHawk.Bizware.BizwareGL
Owner = owner;
FontInfo = Cyotek.Drawing.BitmapFont.BitmapFontLoader.LoadFontFromXmlFile(xml);
- //load textures
+ // load textures
for(int i=0;i TexturePages = new List();
-
+ private readonly Cyotek.Drawing.BitmapFont.BitmapFont FontInfo;
+ private List TexturePages = new List();
}
}
\ No newline at end of file
diff --git a/Bizware/BizHawk.Bizware.BizwareGL/TexAtlas.cs b/Bizware/BizHawk.Bizware.BizwareGL/TexAtlas.cs
index b64b04f3d8..e777ae795f 100644
--- a/Bizware/BizHawk.Bizware.BizwareGL/TexAtlas.cs
+++ b/Bizware/BizHawk.Bizware.BizwareGL/TexAtlas.cs
@@ -21,8 +21,7 @@ namespace BizHawk.Bizware.BizwareGL
public object Item;
}
-
- class TryFitParam
+ private class TryFitParam
{
public TryFitParam(int _w, int _h) { this.w = _w; this.h = _h; }
public readonly int w;
@@ -49,19 +48,19 @@ namespace BizHawk.Bizware.BizwareGL
///
public static PackedAtlasResults PackAtlas(IEnumerable items)
{
- PackedAtlasResults ret = new PackedAtlasResults();
+ var ret = new PackedAtlasResults();
ret.Atlases.Add(new PackedAtlasResults.SingleAtlas());
- //initially, we'll try all the items; none remain
- List currentItems = new List(items);
- List remainItems = new List();
+ // initially, we'll try all the items; none remain
+ var currentItems = new List(items);
+ var remainItems = new List();
RETRY:
- //this is where the texture size range is determined.
- //we run this every time we make an atlas, in case we want to variably control the maximum texture output size.
- //ALSO - we accumulate data in there, so we need to refresh it each time. ... lame.
- List todoSizes = new List();
+ // this is where the texture size range is determined.
+ // we run this every time we make an atlas, in case we want to variably control the maximum texture output size.
+ // ALSO - we accumulate data in there, so we need to refresh it each time. ... lame.
+ var todoSizes = new List();
for (int i = 3; i <= MaxSizeBits; i++)
{
for (int j = 3; j <= MaxSizeBits; j++)
@@ -164,9 +163,9 @@ namespace BizHawk.Bizware.BizwareGL
return ret;
}
- //original file: RectangleBinPack.cpp
- //author: Jukka Jylänki
- class RectangleBinPack
+ // original file: RectangleBinPack.cpp
+ // author: Jukka Jylänki
+ private class RectangleBinPack
{
/** A node of a binary tree. Each node represents a rectangular area of the texture
we surface. Internal nodes store rectangles of used data, whereas leaf nodes track
@@ -315,8 +314,5 @@ namespace BizHawk.Bizware.BizwareGL
return node;
}
}
-
}
-
-
}
\ No newline at end of file