- fixed reading of SpriteFont's (DefaultCharacter handling was wrong)

- fixed handling of DefaultCharacter in FontDescriptionImporter (no handling)
- set DefaultCharacter in SampleContent's Debug font
This commit is contained in:
Glatzemann 2012-11-02 06:51:18 +00:00 committed by Konstantin Koch
parent c316436f32
commit 2eb7923339
3 changed files with 21 additions and 4 deletions

View File

@ -89,6 +89,18 @@ namespace ANX.Framework.Content.Pipeline.Importer
FontDescriptionStyle fontStyle; FontDescriptionStyle fontStyle;
Enum.TryParse(styleElement.Value, out fontStyle); Enum.TryParse(styleElement.Value, out fontStyle);
//Check for default character element and try to parse it
var defaultCharElement = assetNode.Element("DefaultCharacter");
char? defaultChar = null;
if (defaultCharElement != null)
{
char c;
if (Char.TryParse(defaultCharElement.Value, out c))
{
defaultChar = c;
}
}
//Get the character regions element to iterate through the character regions //Get the character regions element to iterate through the character regions
var charRegionsElement = assetNode.Element("CharacterRegions"); var charRegionsElement = assetNode.Element("CharacterRegions");
if (charRegionsElement == null) if (charRegionsElement == null)
@ -136,8 +148,8 @@ namespace ANX.Framework.Content.Pipeline.Importer
_logger.LogMessage("Import of SpriteFont finished."); _logger.LogMessage("Import of SpriteFont finished.");
var result = new FontDescription(fontName, fontSize, fontSpacing, fontStyle) var result = new FontDescription(fontName, fontSize, fontSpacing, fontStyle)
{ {
Characters = characters/*, Characters = characters,
DefaultCharacter = '*'*/ //Currently disabled because the ContentLoader does not like this (Bad XNB) DefaultCharacter = defaultChar //Currently disabled because the ContentLoader does not like this (Bad XNB)
}; };
return result; return result;

View File

@ -24,7 +24,12 @@ namespace ANX.Framework.Content
int verticalLineSpacing = input.ReadInt32(); int verticalLineSpacing = input.ReadInt32();
float horizontalSpacing = input.ReadSingle(); float horizontalSpacing = input.ReadSingle();
List<Vector3> kerning = input.ReadObject<List<Vector3>>(); List<Vector3> kerning = input.ReadObject<List<Vector3>>();
char? defaultCharacter = input.ReadObject<char?>();
char? defaultCharacter = null;
if (input.ReadBoolean())
{
defaultCharacter = new char?(input.ReadChar());
}
SpriteFont spriteFont = new SpriteFont( SpriteFont spriteFont = new SpriteFont(
texture, glyphs, cropping, characterMap, texture, glyphs, cropping, characterMap,

View File

@ -41,7 +41,7 @@ sind.
Wenn Sie den Kommentar von dieser Zeile entfernen, wird das Standardzeichen ersetzt, wenn Sie zeichnen Wenn Sie den Kommentar von dieser Zeile entfernen, wird das Standardzeichen ersetzt, wenn Sie zeichnen
oder Text messen, der Zeichen enthält, die in der Schriftart nicht enthalten sind. oder Text messen, der Zeichen enthält, die in der Schriftart nicht enthalten sind.
--> -->
<!-- <DefaultCharacter>*</DefaultCharacter> --> <DefaultCharacter>*</DefaultCharacter>
<!-- <!--
CharacterRegions steuert, welche Buchstaben in der Schriftart verfügbar sind. Jedes CharacterRegions steuert, welche Buchstaben in der Schriftart verfügbar sind. Jedes