#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 { 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; } } }