51 lines
1.9 KiB
C#
Raw Normal View History

#region Using Statements
using System.IO;
using ANX.Framework.Content.Pipeline.Graphics;
using ANX.Framework.NonXNA;
#endregion
// This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license
namespace ANX.Framework.Content.Pipeline
{
[ContentImporter(new string[] { ".fx", ".fxg", ".hlsl", ".glsl" }, Category = "Effect Files")]
public class EffectImporter : ContentImporter<EffectContent>
{
public override EffectContent Import(string filename, ContentImporterContext context)
{
string fileExtension = Path.GetExtension(filename).ToLowerInvariant();
EffectSourceLanguage sourceLanguage = EffectSourceLanguage.HLSL_FX;
switch (fileExtension)
{
case ".fx":
sourceLanguage = EffectSourceLanguage.HLSL_FX;
break;
case ".fxg":
sourceLanguage = EffectSourceLanguage.GLSL_FX;
break;
case ".hlsl":
sourceLanguage = EffectSourceLanguage.HLSL;
break;
case ".glsl":
sourceLanguage = EffectSourceLanguage.GLSL;
break;
default:
throw new InvalidContentException("The EffectImporter is not able to import a file with extension '" + fileExtension + "'");
}
EffectContent content = new EffectContent()
{
EffectCode = System.IO.File.ReadAllText(filename),
Identity = new ContentIdentity(filename, null, null),
SourceLanguage = sourceLanguage,
};
return content;
}
}
}