diff --git a/ANX.Framework.Content.Pipeline/ANX.Framework.Content.Pipeline.csproj b/ANX.Framework.Content.Pipeline/ANX.Framework.Content.Pipeline.csproj index ef93e132..2aee3f6e 100644 --- a/ANX.Framework.Content.Pipeline/ANX.Framework.Content.Pipeline.csproj +++ b/ANX.Framework.Content.Pipeline/ANX.Framework.Content.Pipeline.csproj @@ -34,6 +34,11 @@ + + + + + @@ -48,7 +53,7 @@ - + @@ -72,6 +77,9 @@ + + + @@ -82,18 +90,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -129,6 +165,7 @@ + diff --git a/ANX.Framework.Content.Pipeline/Audio/AudioContent.cs b/ANX.Framework.Content.Pipeline/Audio/AudioContent.cs new file mode 100644 index 00000000..954b6521 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Audio/AudioContent.cs @@ -0,0 +1,37 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Collections.ObjectModel; + +#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.Audio +{ + public class AudioContent : ContentItem, IDisposable + { + public ReadOnlyCollection Data { get; internal set; } + public TimeSpan Duration { get; internal set; } + [ContentSerializer] + public string FileName { get; internal set; } + public AudioFileType FileType { get; internal set; } + public AudioFormat Format { get; internal set; } + public int LoopLength { get; internal set; } + public int LoopStart { get; internal set; } + + public void ConvertFormat(ConversionFormat formatType, ConversionQuality quality, string targetFileName) + { + throw new NotImplementedException(); + } + + public void Dispose() + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Audio/AudioFileType.cs b/ANX.Framework.Content.Pipeline/Audio/AudioFileType.cs new file mode 100644 index 00000000..d832b94d --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Audio/AudioFileType.cs @@ -0,0 +1,18 @@ +#region Using Statements +using System; + +#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.Audio +{ + public enum AudioFileType + { + Mp3, + Wav, + Wma, + } +} diff --git a/ANX.Framework.Content.Pipeline/Audio/AudioFormat.cs b/ANX.Framework.Content.Pipeline/Audio/AudioFormat.cs new file mode 100644 index 00000000..87975cfb --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Audio/AudioFormat.cs @@ -0,0 +1,27 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Collections.ObjectModel; + +#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.Audio +{ + public sealed class AudioFormat + { + public int AverageBytesPerSecond { get; internal set; } + public int BitsPerSample { get; internal set; } + public int BlockAlign { get; internal set; } + public int ChannelCount { get; internal set; } + public int Format { get; internal set; } + public ReadOnlyCollection NativeWaveFormat { get; internal set; } + public int SampleRate { get; internal set; } + + } +} diff --git a/ANX.Framework.Content.Pipeline/Audio/ConversionFormat.cs b/ANX.Framework.Content.Pipeline/Audio/ConversionFormat.cs new file mode 100644 index 00000000..274732b1 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Audio/ConversionFormat.cs @@ -0,0 +1,19 @@ +#region Using Statements +using System; + +#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.Audio +{ + public enum ConversionFormat + { + Adpcm, + Pcm, + WindowsMedia, + Xma, + } +} diff --git a/ANX.Framework.Content.Pipeline/Audio/ConversionQuality.cs b/ANX.Framework.Content.Pipeline/Audio/ConversionQuality.cs new file mode 100644 index 00000000..29793b6a --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Audio/ConversionQuality.cs @@ -0,0 +1,18 @@ +#region Using Statements +using System; + +#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.Audio +{ + public enum ConversionQuality + { + Low, + Medium, + Best, + } +} diff --git a/ANX.Framework.Content.Pipeline/ContentProcessor.cs b/ANX.Framework.Content.Pipeline/ContentProcessor.cs index 10793129..620559a9 100644 --- a/ANX.Framework.Content.Pipeline/ContentProcessor.cs +++ b/ANX.Framework.Content.Pipeline/ContentProcessor.cs @@ -19,7 +19,7 @@ namespace ANX.Framework.Content.Pipeline throw new NotImplementedException(); } - public abstract TOutput Process(TInput input, ContextProcessorContext context); + public abstract TOutput Process(TInput input, ContentProcessorContext context); Type IContentProcessor.InputType { @@ -31,7 +31,7 @@ namespace ANX.Framework.Content.Pipeline get { throw new NotImplementedException(); } } - object IContentProcessor.Process(object input, ContextProcessorContext context) + object IContentProcessor.Process(object input, ContentProcessorContext context) { throw new NotImplementedException(); } diff --git a/ANX.Framework.Content.Pipeline/ContextProcessorContext.cs b/ANX.Framework.Content.Pipeline/ContentProcessorContext.cs similarity index 93% rename from ANX.Framework.Content.Pipeline/ContextProcessorContext.cs rename to ANX.Framework.Content.Pipeline/ContentProcessorContext.cs index 0b589307..b05c54cc 100644 --- a/ANX.Framework.Content.Pipeline/ContextProcessorContext.cs +++ b/ANX.Framework.Content.Pipeline/ContentProcessorContext.cs @@ -13,9 +13,9 @@ using ANX.Framework.Graphics; namespace ANX.Framework.Content.Pipeline { - public abstract class ContextProcessorContext + public abstract class ContentProcessorContext { - public ContextProcessorContext() + public ContentProcessorContext() { throw new NotImplementedException(); } diff --git a/ANX.Framework.Content.Pipeline/Graphics/SkinnedMaterialContent.cs b/ANX.Framework.Content.Pipeline/Graphics/SkinnedMaterialContent.cs new file mode 100644 index 00000000..186f1e94 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Graphics/SkinnedMaterialContent.cs @@ -0,0 +1,71 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +#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.Graphics +{ + public class SkinnedMaterialContent : MaterialContent + { + public const string AlphaKey = ""; + public const string DiffuseColorKey = ""; + public const string EmissiveColorKey = ""; + public const string SpecularColorKey = ""; + public const string SpecularPowerKey = ""; + public const string TextureKey = ""; + public const string WeightsPerVertexKey = ""; + + public SkinnedMaterialContent() + { + } + + public Nullable Alpha + { + get; + set; + } + + public Nullable DiffuseColor + { + get; + set; + } + + public Nullable EmissiveColor + { + get; + set; + } + + public Nullable SpecularColor + { + get; + set; + } + + public Nullable SpecularPower + { + get; + set; + } + + public ExternalReference Texture + { + get; + set; + } + + public Nullable WeightsPerVertex + { + get; + set; + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Graphics/Texture2DContent.cs b/ANX.Framework.Content.Pipeline/Graphics/Texture2DContent.cs new file mode 100644 index 00000000..ef81d33d --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Graphics/Texture2DContent.cs @@ -0,0 +1,34 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +#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.Graphics +{ + public class Texture2DContent : TextureContent + { + public Texture2DContent() + : base(null) //TODO: implement + { + + } + + public MipmapChain Mipmaps + { + get; + set; + } + + public override void Validate(Framework.Graphics.GraphicsProfile? targetProfile) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Graphics/Texture3DContent.cs b/ANX.Framework.Content.Pipeline/Graphics/Texture3DContent.cs new file mode 100644 index 00000000..ccb4cd3d --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Graphics/Texture3DContent.cs @@ -0,0 +1,33 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +#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.Graphics +{ + public class Texture3DContent : TextureContent + { + public Texture3DContent() + : base(null) // TODO: implement + { + + } + + public override void GenerateMipmaps(bool overwriteExistingMipmaps) + { + throw new NotImplementedException(); + } + + public override void Validate(Framework.Graphics.GraphicsProfile? targetProfile) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Graphics/TextureCubeContent.cs b/ANX.Framework.Content.Pipeline/Graphics/TextureCubeContent.cs new file mode 100644 index 00000000..90aab565 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Graphics/TextureCubeContent.cs @@ -0,0 +1,28 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +#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.Graphics +{ + public class TextureCubeContent : TextureContent + { + public TextureCubeContent() + : base(null) //TODO: implement + { + + } + + public override void Validate(Framework.Graphics.GraphicsProfile? targetProfile) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Graphics/VectorConverter.cs b/ANX.Framework.Content.Pipeline/Graphics/VectorConverter.cs new file mode 100644 index 00000000..7330cc86 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Graphics/VectorConverter.cs @@ -0,0 +1,43 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.Graphics; + +#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.Graphics +{ + public static class VectorConverter + { + public static Converter GetConverter() + { + throw new NotImplementedException(); + } + + public static bool TryGetSurfaceFormat(Type vectorType, out SurfaceFormat surfaceFormat) + { + throw new NotImplementedException(); + } + + public static bool TrayGetVectorType(SurfaceFormat surfaceFormat, out Type vectorType) + { + throw new NotImplementedException(); + } + + public static bool TryGetVectorType(VertexElementFormat vertexElementFormat, out Type vectorType) + { + throw new NotImplementedException(); + } + + public static bool TryGetVertexElementFormat(Type vectorType, out VertexElementFormat vertexElementFormat) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Graphics/VertexChannelNames.cs b/ANX.Framework.Content.Pipeline/Graphics/VertexChannelNames.cs new file mode 100644 index 00000000..98442612 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Graphics/VertexChannelNames.cs @@ -0,0 +1,151 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.Graphics; +using System.Text.RegularExpressions; + +#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.Graphics +{ + public static class VertexChannelNames + { + public static string Binormal(int usageIndex) + { + return EncodeName("BINORMAL", usageIndex); + } + + public static string Color(int usageIndex) + { + return EncodeName("COLOR", usageIndex); + } + + public static string DecodeBaseName(string encodedName) + { + return encodedName.TrimEnd('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); + } + + public static string DecodeUsageIndex(string encodedName) + { + string baseName = DecodeBaseName(encodedName); + return encodedName.Replace(baseName, "").Trim(); + } + + public static string EncodeName(string baseName, int usageIndex) + { + return String.Format("{0}{1}", baseName.ToUpperInvariant(), usageIndex); + } + + public static string EncodeName(VertexElementUsage vertexElementUsage, int usageIndex) + { + string baseName = String.Empty; + + switch (vertexElementUsage) + { + case VertexElementUsage.Binormal: + case VertexElementUsage.BlendIndices: + case VertexElementUsage.BlendWeight: + case VertexElementUsage.Color: + case VertexElementUsage.Normal: + case VertexElementUsage.Position: + case VertexElementUsage.Tangent: + baseName = vertexElementUsage.ToString().ToUpperInvariant(); + break; + case VertexElementUsage.PointSize: + baseName = "PSIZE"; + break; + case VertexElementUsage.TessellateFactor: + baseName = "TESSFACTOR"; + break; + case VertexElementUsage.TextureCoordinate: + baseName = "TEXCOORD"; + break; + } + + if (!String.IsNullOrEmpty(baseName)) + { + return EncodeName(baseName, usageIndex); + } + + return baseName; + } + + public static string Normal() + { + return Normal(0); + } + + public static string Normal(int usageIndex) + { + return EncodeName("NORMAL", usageIndex); + } + + public static string Tangent(int usageIndex) + { + return EncodeName("TANGENT", usageIndex); + } + + public static string TextureCoordinate(int usageIndex) + { + return EncodeName("TEXCOORD", usageIndex); + } + + public static bool TryDecodeUsage(string encodedName, out VertexElementUsage usage) + { + string baseName = DecodeBaseName(encodedName); + + switch (baseName) + { + case "BINORMAL": + usage = VertexElementUsage.Binormal; + return true; + case "BLENDINDICES": + usage = VertexElementUsage.BlendIndices; + return true; + case "BLENDWEIGHT": + usage = VertexElementUsage.BlendWeight; + return true; + case "COLOR": + usage = VertexElementUsage.Color; + return true; + case "NORMAL": + usage = VertexElementUsage.Normal; + return true; + case "POSITION": + usage = VertexElementUsage.Position; + return true; + case "PSIZE": + usage = VertexElementUsage.PointSize; + return true; + case "TANGENT": + usage = VertexElementUsage.Tangent; + return true; + case "TEXCOORD": + usage = VertexElementUsage.TextureCoordinate; + return true; + case "TESSFACTOR": + usage = VertexElementUsage.TessellateFactor; + return true; + default: + usage = 0; + return false; + } + } + + public static string Weights() + { + return Weights(0); + } + + public static string Weights(int usageIndex) + { + return EncodeName("BLENDWEIGHT", usageIndex); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/IContentProcessor.cs b/ANX.Framework.Content.Pipeline/IContentProcessor.cs index b0e88333..d864686c 100644 --- a/ANX.Framework.Content.Pipeline/IContentProcessor.cs +++ b/ANX.Framework.Content.Pipeline/IContentProcessor.cs @@ -16,6 +16,6 @@ namespace ANX.Framework.Content.Pipeline { Type InputType { get; } Type OutputType { get; } - Object Process(Object input, ContextProcessorContext context); + Object Process(Object input, ContentProcessorContext context); } } diff --git a/ANX.Framework.Content.Pipeline/Processors/EffectProcessor.cs b/ANX.Framework.Content.Pipeline/Processors/EffectProcessor.cs new file mode 100644 index 00000000..1d312321 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/EffectProcessor.cs @@ -0,0 +1,36 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.Content.Pipeline.Graphics; + +#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.Processors +{ + [ContentProcessor] + public class EffectProcessor : ContentProcessor + { + public virtual EffectProcessorDebugMode DebugMode + { + get; + set; + } + + public virtual string Defines + { + get; + set; + } + + public override CompiledEffectContent Process(EffectContent input, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/EffectProcessorDebugMode.cs b/ANX.Framework.Content.Pipeline/Processors/EffectProcessorDebugMode.cs new file mode 100644 index 00000000..1ae33baf --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/EffectProcessorDebugMode.cs @@ -0,0 +1,21 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +#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.Processors +{ + public enum EffectProcessorDebugMode + { + Auto, + Debug, + Optimize, + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/FontDescriptionProcessor.cs b/ANX.Framework.Content.Pipeline/Processors/FontDescriptionProcessor.cs new file mode 100644 index 00000000..ffb77765 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/FontDescriptionProcessor.cs @@ -0,0 +1,25 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.Content.Pipeline.Graphics; + +#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.Processors +{ + [ContentProcessor] + public class FontDescriptionProcessor : ContentProcessor + { + + public override SpriteFontContent Process(FontDescription input, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/FontTextureProcessor.cs b/ANX.Framework.Content.Pipeline/Processors/FontTextureProcessor.cs new file mode 100644 index 00000000..7ffd5fde --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/FontTextureProcessor.cs @@ -0,0 +1,49 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.Content.Pipeline.Graphics; +using System.ComponentModel; + +#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.Processors +{ + [ContentProcessor] + public class FontTextureProcessor : ContentProcessor + { + public virtual char FirstCharacter + { + get; + set; + } + + [DefaultValue(true)] + public virtual bool PremultiplyAlpha + { + get; + set; + } + + public virtual TextureProcessorOutputFormat TextureFormat + { + get; + set; + } + + public override SpriteFontContent Process(Texture2DContent input, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + + protected virtual char GetCharacterForIndex(int index) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/MaterialProcessor.cs b/ANX.Framework.Content.Pipeline/Processors/MaterialProcessor.cs new file mode 100644 index 00000000..46b586ad --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/MaterialProcessor.cs @@ -0,0 +1,44 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.Content.Pipeline.Graphics; +using System.ComponentModel; + +#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.Processors +{ + [ContentProcessor] + public class MaterialProcessor : ContentProcessor + { + public virtual Color ColorKeyColor { get; set; } + public virtual bool ColorKeyEnabled { get; set; } + public virtual MaterialProcessorDefaultEffect DefaultEffect { get; set; } + public virtual bool GenerateMipmaps { get; set; } + [DefaultValue(true)] + public virtual bool PremultiplyTextureAlpha { get; set; } + public virtual bool ResizeTexturesToPowerOfTwo { get; set; } + public virtual TextureProcessorOutputFormat TextureFormat { get; set; } + + public override MaterialContent Process(MaterialContent input, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + + protected virtual ExternalReference BuildEffect(ExternalReference effect, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + + protected virtual ExternalReference BuildTexture(string textureName, ExternalReference texture, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/MaterialProcessorDefaultEffect.cs b/ANX.Framework.Content.Pipeline/Processors/MaterialProcessorDefaultEffect.cs new file mode 100644 index 00000000..7f77d12c --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/MaterialProcessorDefaultEffect.cs @@ -0,0 +1,20 @@ +#region Using Statements +using System; + +#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.Processors +{ + public enum MaterialProcessorDefaultEffect + { + AlphaTestEffect, + BasicEffect, + DualTextureEffect, + EnvironmentMapEffect, + SkinnedEffect, + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/ModelBoneContent.cs b/ANX.Framework.Content.Pipeline/Processors/ModelBoneContent.cs new file mode 100644 index 00000000..bd13c2a5 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/ModelBoneContent.cs @@ -0,0 +1,51 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +#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.Processors +{ + public sealed class ModelBoneContent + { + public ModelBoneContentCollection Children { get; set; } + + public int Index + { + get + { + throw new NotImplementedException(); + } + } + + public string Name + { + get + { + throw new NotImplementedException(); + } + } + + public ModelBoneContent Parent + { + get + { + throw new NotImplementedException(); + } + } + + public Matrix Transform + { + get + { + throw new NotImplementedException(); + } + } + + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/ModelBoneContentCollection.cs b/ANX.Framework.Content.Pipeline/Processors/ModelBoneContentCollection.cs new file mode 100644 index 00000000..737d5a06 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/ModelBoneContentCollection.cs @@ -0,0 +1,23 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Collections.ObjectModel; + +#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.Processors +{ + public sealed class ModelBoneContentCollection : ReadOnlyCollection + { + public ModelBoneContentCollection(IList content) + : base(content) + { + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/ModelContent.cs b/ANX.Framework.Content.Pipeline/Processors/ModelContent.cs new file mode 100644 index 00000000..c3c9de94 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/ModelContent.cs @@ -0,0 +1,41 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +#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.Processors +{ + public sealed class ModelContent + { + public ModelBoneContentCollection Bones + { + get; + private set; + } + + public ModelMeshContentCollection Meshes + { + get; + private set; + } + + public ModelBoneContent Root + { + get; + private set; + } + + public Object Tag + { + get; + set; + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/ModelMeshContent.cs b/ANX.Framework.Content.Pipeline/Processors/ModelMeshContent.cs new file mode 100644 index 00000000..67eb41e2 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/ModelMeshContent.cs @@ -0,0 +1,53 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +#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.Processors +{ + public sealed class ModelMeshContent + { + public BoundingSphere BoundingSphere + { + get; + internal set; + } + + public ModelMeshPartContentCollection MeshParts + { + get; + internal set; + } + + public string Name + { + get; + internal set; + } + + public ModelBoneContent ParentBone + { + get; + internal set; + } + + public ModelMeshContent SourceMesh + { + get; + internal set; + } + + public Object Tag + { + get; + set; + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/ModelMeshContentCollection.cs b/ANX.Framework.Content.Pipeline/Processors/ModelMeshContentCollection.cs new file mode 100644 index 00000000..18557d89 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/ModelMeshContentCollection.cs @@ -0,0 +1,23 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Collections.ObjectModel; + +#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.Processors +{ + public sealed class ModelMeshContentCollection : ReadOnlyCollection + { + public ModelMeshContentCollection(IList content) + : base(content) + { + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/ModelMeshPartContent.cs b/ANX.Framework.Content.Pipeline/Processors/ModelMeshPartContent.cs new file mode 100644 index 00000000..05a7283c --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/ModelMeshPartContent.cs @@ -0,0 +1,65 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.Content.Pipeline.Graphics; +#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.Processors +{ + public sealed class ModelMeshPartContent + { + public IndexCollection IndexBuffer + { + get; + internal set; + } + + public MaterialContent Material + { + get; + set; + } + + public int NumVertices + { + get; + internal set; + } + + public int PrimitiveCount + { + get; + internal set; + } + + public int StartIndex + { + get; + internal set; + } + + public Object Tag + { + get; + set; + } + + public VertexBufferContent VertexBuffer + { + get; + internal set; + } + + public int VertexOffset + { + get; + internal set; + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/ModelMeshPartContentCollection.cs b/ANX.Framework.Content.Pipeline/Processors/ModelMeshPartContentCollection.cs new file mode 100644 index 00000000..d600d315 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/ModelMeshPartContentCollection.cs @@ -0,0 +1,23 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Collections.ObjectModel; + +#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.Processors +{ + public sealed class ModelMeshPartContentCollection : ReadOnlyCollection + { + public ModelMeshPartContentCollection(IList content) + : base(content) + { + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/ModelProcessor.cs b/ANX.Framework.Content.Pipeline/Processors/ModelProcessor.cs new file mode 100644 index 00000000..1f8598e4 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/ModelProcessor.cs @@ -0,0 +1,56 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.Content.Pipeline.Graphics; +using System.ComponentModel; + +#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.Processors +{ + public class ModelProcessor : ContentProcessor + { + public virtual Color ColorKeyColor { get; set; } + public virtual bool ColorKeyEnabled { get; set; } + public virtual MaterialProcessorDefaultEffect DefaultEffect { get; set; } + public virtual bool GenerateMipmaps { get; set; } + public virtual bool GenerateTangentFrames { get; set; } + [DefaultValue(true)] + public virtual bool PremultiplyTextureAlpha { get; set; } + [DefaultValue(true)] + public virtual bool PremultiplyVertexColors { get; set; } + public virtual bool ResizeTexturesToPowerOfTwo { get; set; } + public virtual float RotationX { get; set; } + public virtual float RotationY { get; set; } + public virtual float RotationZ { get; set; } + public virtual float Scale { get; set; } + public virtual bool SwapWindingOrder { get; set; } + public virtual TextureProcessorOutputFormat TextureFormat { get; set; } + + public override ModelContent Process(NodeContent input, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + + protected virtual MaterialContent ConvertMaterial(MaterialContent material, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + + protected virtual void ProcessGeometryUsingMaterial(MaterialContent material, IEnumerable geometryContent, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + + protected virtual void ProcessVertexChannel(GeometryContent geometry, int vertexChannelIndex, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/ModelTextureProcessor.cs b/ANX.Framework.Content.Pipeline/Processors/ModelTextureProcessor.cs new file mode 100644 index 00000000..5c0335c2 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/ModelTextureProcessor.cs @@ -0,0 +1,26 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +#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.Processors +{ + [ContentProcessor] + public class ModelTextureProcessor : TextureProcessor + { + public override Color ColorKeyColor { get; set; } + public override bool ColorKeyEnabled { get; set; } + public override bool GenerateMipmaps { get; set; } + public override bool ResizeToPowerOfTwo { get; set; } + public override TextureProcessorOutputFormat TextureFormat { get; set; } + + + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/PassThroughProcessor.cs b/ANX.Framework.Content.Pipeline/Processors/PassThroughProcessor.cs new file mode 100644 index 00000000..55442bf3 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/PassThroughProcessor.cs @@ -0,0 +1,23 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +#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.Processors +{ + [ContentProcessor] + public class PassThroughProcessor : ContentProcessor + { + public override object Process(object input, ContentProcessorContext context) + { + return input; + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/SongContent.cs b/ANX.Framework.Content.Pipeline/Processors/SongContent.cs new file mode 100644 index 00000000..a7ed937f --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/SongContent.cs @@ -0,0 +1,19 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +#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.Processors +{ + public sealed class SongContent + { + + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/SongProcessor.cs b/ANX.Framework.Content.Pipeline/Processors/SongProcessor.cs new file mode 100644 index 00000000..59df9ca6 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/SongProcessor.cs @@ -0,0 +1,30 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.Content.Pipeline.Audio; + +#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.Processors +{ + [ContentProcessor] + public class SongProcessor : ContentProcessor + { + public ConversionQuality Quality + { + get; + set; + } + + public override SongContent Process(AudioContent input, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/SoundEffectContent.cs b/ANX.Framework.Content.Pipeline/Processors/SoundEffectContent.cs new file mode 100644 index 00000000..bf627234 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/SoundEffectContent.cs @@ -0,0 +1,18 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +#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.Processors +{ + public sealed class SoundEffectContent + { + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/SoundEffectProcessor.cs b/ANX.Framework.Content.Pipeline/Processors/SoundEffectProcessor.cs new file mode 100644 index 00000000..d3a2fa6f --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/SoundEffectProcessor.cs @@ -0,0 +1,30 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.Content.Pipeline.Audio; + +#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.Processors +{ + [ContentProcessor] + public class SoundEffectProcessor : ContentProcessor + { + public ConversionQuality Quality + { + get; + set; + } + + public override SoundEffectContent Process(AudioContent input, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/SpriteFontContent.cs b/ANX.Framework.Content.Pipeline/Processors/SpriteFontContent.cs new file mode 100644 index 00000000..9d3009dc --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/SpriteFontContent.cs @@ -0,0 +1,19 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +#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.Processors +{ + public sealed class SpriteFontContent + { + + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/SpriteTextureProcessor.cs b/ANX.Framework.Content.Pipeline/Processors/SpriteTextureProcessor.cs new file mode 100644 index 00000000..a4c27a98 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/SpriteTextureProcessor.cs @@ -0,0 +1,32 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; +using ANX.Framework.Content.Pipeline.Graphics; + +#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.Processors +{ + [ContentProcessor] + public class SpriteTextureProcessor : TextureProcessor + { + public override Color ColorKeyColor { get; set; } + public override bool ColorKeyEnabled { get; set; } + public override bool GenerateMipmaps { get; set; } + [Browsable(false)] + public override bool ResizeToPowerOfTwo { get; set; } + public override TextureProcessorOutputFormat TextureFormat { get; set; } + + public override TextureContent Process(TextureContent input, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/TextureProcessor.cs b/ANX.Framework.Content.Pipeline/Processors/TextureProcessor.cs new file mode 100644 index 00000000..eed6a8cf --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/TextureProcessor.cs @@ -0,0 +1,33 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.Content.Pipeline.Graphics; +using System.ComponentModel; + +#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.Processors +{ + [ContentProcessor] + public class TextureProcessor : ContentProcessor + { + public virtual Color ColorKeyColor { get; set; } + public virtual bool ColorKeyEnabled { get; set; } + public virtual bool GenerateMipmaps { get; set; } + [DefaultValue(true)] + public virtual bool PremultiplyAlpha { get; set; } + public virtual bool ResizeToPowerOfTwo { get; set; } + public virtual TextureProcessorOutputFormat TextureFormat { get; set; } + + public override TextureContent Process(TextureContent input, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/TextureProcessorOutputFormat.cs b/ANX.Framework.Content.Pipeline/Processors/TextureProcessorOutputFormat.cs new file mode 100644 index 00000000..bcd622b9 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/TextureProcessorOutputFormat.cs @@ -0,0 +1,18 @@ +#region Using Statements +using System; + +#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.Processors +{ + public enum TextureProcessorOutputFormat + { + Color, + DxtCompressed, + NoChange, + } +} diff --git a/ANX.Framework.Content.Pipeline/Processors/VideoProcessor.cs b/ANX.Framework.Content.Pipeline/Processors/VideoProcessor.cs new file mode 100644 index 00000000..220694a9 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/Processors/VideoProcessor.cs @@ -0,0 +1,26 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.Media; + +#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.Processors +{ + [ContentProcessor] + public class VideoProcessor : ContentProcessor + { + public VideoSoundtrackType VideoSoundtrackType { get; set; } + + public override VideoContent Process(VideoContent input, ContentProcessorContext context) + { + throw new NotImplementedException(); + } + } +} diff --git a/ANX.Framework.Content.Pipeline/VideoContent.cs b/ANX.Framework.Content.Pipeline/VideoContent.cs new file mode 100644 index 00000000..a44efda1 --- /dev/null +++ b/ANX.Framework.Content.Pipeline/VideoContent.cs @@ -0,0 +1,33 @@ +#region Using Statements +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.Media; + +#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 +{ + public class VideoContent : ContentItem, IDisposable + { + public int BitsPerSecond { get; internal set; } + public TimeSpan Duration { get; internal set; } + [ContentSerializer] + public string Filename { get; set; } + public float FramesPerSecond { get; internal set; } + public int Height { get; internal set; } + [ContentSerializer] + public VideoSoundtrackType VideoSoundtrackType { get; set; } + public int Width { get; internal set; } + + public void Dispose() + { + throw new NotImplementedException(); + } + } +}