Can't Compile

Sep 17, 2009 at 4:13 PM

Trying to compile Nuclex.UserInterface (x86)...What are the install requirements besides XNA and VS2008 C# Express?

Error    22    Cannot find importer "EffectImporter".    C:\Documents and Settings\shamlin\Desktop\Nuclex\Nuclex.Game\EmbeddedContent\UnitTest\UnitTestEffect.fx    Nuclex.Game (x86)
Error    48    Cannot find importer "EffectImporter".    C:\Documents and Settings\shamlin\Desktop\Nuclex\Nuclex.Graphics.SpecialEffects\EmbeddedContent\ScreenMask\ScreenMaskEffect.fx    Nuclex.Graphics.SpecialEffects (x86)
Error    70    Cannot find importer "EffectImporter".    C:\Documents and Settings\shamlin\Desktop\Nuclex\Nuclex.Fonts\EmbeddedContent\TextBatch\DefaultTextEffect.fx    Nuclex.Fonts (x86)
Error    94    Cannot find content processor "NuclexSpriteFontDescriptionProcessor".    C:\Documents and Settings\shamlin\Desktop\Nuclex\Nuclex.Fonts.Demo\Content\Arial-24-Sprite.spritefont    Nuclex.Fonts.Demo (x86)
Error    117    Cannot find content processor "NuclexSpriteFontDescriptionProcessor".    C:\Documents and Settings\shamlin\Desktop\Nuclex\Nuclex.Graphics.Demo\Content\Test.spritefont    Nuclex.Graphics.Demo (x86)
Error    135    Cannot find importer "EffectImporter".    C:\Documents and Settings\shamlin\Desktop\Nuclex\Nuclex.Graphics\EmbeddedContent\DebugDrawer\SolidColorEffect.fx    Nuclex.Graphics (x86)
Error    147    Cannot find content processor "NuclexSpriteFontDescriptionProcessor".    C:\Documents and Settings\shamlin\Desktop\Nuclex\Nuclex.UserInterface\Content\Fonts\Title.spritefont    Nuclex.UserInterface (x86)

Coordinator
Sep 19, 2009 at 11:29 AM

Visual C++ 2008 Express. You need to compile the Nuclex.Fonts.Content.TrueTypeImporter projects first to get the 'NuclexSpriteFontDescriptionProcessor'.

The 'Cannot find importer "EffectImporter"' errors I have never seen before. Can you compile effect files (*.fx) in other XNA projects?

It might help if you select those 4 files, open up the properties window (F4) and re-select the content importer and content processor (the normal built-in XNA ones, I'm not doing anything special about those files).

Coordinator
Sep 19, 2009 at 11:39 AM
Edited Sep 23, 2009 at 10:29 AM

Thinking about it, I should really have put a "how to compile.txt" in there.

Will do better for the next release ;)

EDIT: I simplified compilation for the new release (by including a precompiled content processor) and put up instructions on the wiki front page that explain how to compile!

Sep 22, 2009 at 6:22 PM

Compiling the source the way it is described on the front page of this project results in an error:

Error    1    "Nuclex.Graphics.Batching.PrimitiveBatch"

The error states a missing parameter in the constructor of this piece of code:

this.primitiveBatch = new PrimitiveBatch(
        this.graphics.GraphicsDevice, this.vertexDeclaration
      );

Using a 16 for the vertex stride makes the example run and the code compile. Hope that helps.

Coordinator
Sep 22, 2009 at 7:01 PM

Outch! Did I really leave something that obvious in the code?

I'll check that right away!

Thanks!

Coordinator
Sep 22, 2009 at 8:39 PM

For crying out loud! You're right.

Adding 16 will do the trick. Here's what those lines should have said:

 

// Nuclex.Graphics.Demo\Source\NuclexGraphicsDemo.cs, Line #42
this.primitiveBatch = new PrimitiveBatch<VertexPositionColor>(
  this.graphics.GraphicsDevice,
  this.vertexDeclaration, VertexPositionColor.SizeInBytes
);

 

I remember doing some last minute editing to revert things I had done in my working copy for testing. Obviously I reverted one line too much.

There's a new release available now, stripped from a clean checkout. Sorry to anyone who ran into this bug!