55 lines
1.9 KiB
C#
55 lines
1.9 KiB
C#
|
#region Using Statements
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using ANX.Framework.Content.Pipeline.Graphics;
|
|||
|
using System.IO;
|
|||
|
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" })]
|
|||
|
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;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|