Can't load vector font.

Sep 4, 2012 at 12:32 AM

Hi, I've been trying to get this to work for the last 2 hours and I'm not getting what I'm doing wrong...

I've added Nuclex.TrueTypeImporter to my references in my content and I've added Nuclex.Fonts & Nuclex.Graphics in my main project.

I've put Arial-24-Vector.spritefont & Lindsey.spritefont in the root of my content directory.

_spriteFont = Content.Load<SpriteFont>("Lindsey"); // works

_testFont = Content.Load<VectorFont>("Arial-24-Vector"); // crashes

I get this error on the _testFont line:

File contains Microsoft.Xna.Framework.Graphics.SpriteFont but trying to load as Nuclex.Fonts.VectorFont.

So I've searched around and by the looks of it it has something to do with the content importer & the content processor. For the content importer I have no new choices, so I leave it as it is, Sprite Font Description - XNA Framework for content processor I select Vector Font - Nuclex Framework And then I try to run it.

_testFont = Content.Load<VectorFont>("Arial-24-Vector"); // crashes again

I get the following error

Error loading "Arial-24-Vector".

It does work if I load a sprite, so it's not a pathing problem. I've checked the samples, they do work, but I think they also use a different version of the XNA framework because in my version the "Content" class starts with a capital letter.

I'm at a loss, so I ask here. 

Sep 4, 2012 at 6:32 AM

 

Something super weird is going on. I've just added the following two lines to a method insideFreeTypeFontProcessor::FreeTypeFontProcessor( Microsoft::Xna::Framework::Content::Pipeline::Graphics::FontDescription ^fontDescription, FontHinter hinter, just to check if code would even get there:

System::Console::WriteLine("I AM HEEREEE");
System::Console::ReadLine();

So, I compile it, put it in my project, I run it and... it works! What the hell?? This is weird because I've downloaded the binaries, they didn't work, I've compiled the binaries myself. didn't work either, but now I make a small change to the code and it works? >_>.

So, now I remove the two lines, compile it again and it works again. Someone care to elaborate what is going on? Probably some weird caching problem!

Coordinator
Sep 4, 2012 at 8:16 AM

The lowercase "content" is probably just the local "private ContentManager content;" field versus the "Content" property XNA 4.0 now provides via the Game class.

But I've got no idea what the other issue might have been. Especially since a modification to the content processor seemed to bring the solution, which would mean that the resulting Arial-24-Vector.xnb file would have to be broken in some way.

The current CodePlex binaries release have a dependency on NUnit.Framework.dll which might have been switched to whatever version NUnit you have installed (if so), but that still wouldn't explain why it didn't work when you compiled it the first time.

Sep 4, 2012 at 8:46 AM

I guess it's a part of being a programmer, but at least now I have an interesting story to tell my colleagues!