...more ContentItems for ContentPipeline...

This commit is contained in:
Glatzemann 2012-08-16 14:18:21 +00:00
parent 5a51961e2c
commit 44b03c5be6
19 changed files with 1120 additions and 5 deletions

View File

@ -65,18 +65,35 @@
<Compile Include="Graphics\Dxt3BitmapContent.cs" />
<Compile Include="Graphics\Dxt5BitmapContent.cs" />
<Compile Include="Graphics\EffectMaterialContent.cs" />
<Compile Include="Graphics\EnvironmentMapMaterialContent.cs" />
<Compile Include="Graphics\FontDescription.cs" />
<Compile Include="Graphics\FontDescriptionStyle.cs" />
<Compile Include="Graphics\GeometryContent.cs" />
<Compile Include="Graphics\GeometryContentCollection.cs" />
<Compile Include="Graphics\IndexCollection.cs" />
<Compile Include="Graphics\IndirectPositionCollection.cs" />
<Compile Include="Graphics\MaterialContent.cs" />
<Compile Include="Graphics\MeshBuilder.cs" />
<Compile Include="Graphics\MeshContent.cs" />
<Compile Include="Graphics\MeshHelper.cs" />
<Compile Include="Graphics\MipmapChain.cs" />
<Compile Include="Graphics\MipmapChainCollection.cs" />
<Compile Include="Graphics\NodeContent.cs" />
<Compile Include="Graphics\NodeContentCollection.cs" />
<Compile Include="Graphics\PixelBitmapContent.cs" />
<Compile Include="Graphics\PositionCollection.cs" />
<Compile Include="Graphics\TextureContent.cs" />
<Compile Include="Graphics\TextureReferenceDictionary.cs" />
<Compile Include="Graphics\VertexChannel.cs" />
<Compile Include="Graphics\VertexChannelCollection.cs" />
<Compile Include="Graphics\VertexContent.cs" />
<Compile Include="IContentImporter.cs" />
<Compile Include="IContentProcessor.cs" />
<Compile Include="NamedValueDictionary.cs" />
<Compile Include="OpaqueDataDictionary.cs" />
<Compile Include="Processors\CompiledEffectContent.cs" />
<Compile Include="Processors\VertexBufferContent.cs" />
<Compile Include="Processors\VertexDeclarationContent.cs" />
<Compile Include="Serialization\Compiler\BuiltInTypeWriter.cs" />
<Compile Include="Serialization\Compiler\ContentCompiler.cs" />
<Compile Include="Serialization\Compiler\ContentTypeWriter.cs" />

View File

@ -0,0 +1,78 @@
#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 EnvironmentMapMaterialContent : MaterialContent
{
public const string AlphaKey = "";
public const string DiffuseColorKey = "";
public const string EmissiveColorKey = "";
public const string EnvironmentMapAmountKey = "";
public const string EnvironmentMapKey = "";
public const string EnvironmentMapSpecularKey = "";
public const string FresnelFactorKey = "";
public const string TextureKey = "";
public EnvironmentMapMaterialContent()
{
}
public Nullable<float> Alpha
{
get;
set;
}
public Nullable<Vector3> DiffuseColor
{
get;
set;
}
public Nullable<Vector3> EmissiveColor
{
get;
set;
}
public ExternalReference<TextureContent> EnvironmentMap
{
get;
set;
}
public Nullable<float> EnvironmentMapAmount
{
get;
set;
}
public Nullable<Vector3> EnvironmentMapSpecular
{
get;
set;
}
public Nullable<float> FresnelFactor
{
get;
set;
}
public ExternalReference<TextureContent> Texture
{
get;
set;
}
}
}

View File

@ -0,0 +1,86 @@
#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 FontDescription : ContentItem
{
public FontDescription(string fontName, float size, float spacing)
{
FontName = fontName;
Size = size;
Spacing = spacing;
}
public FontDescription(string fontName, float size, float spacing, FontDescriptionStyle fontStyle)
{
FontName = fontName;
Size = size;
Spacing = spacing;
Style = fontStyle;
}
public FontDescription(string fontName, float size, float spacing, FontDescriptionStyle fontStyle, bool useKerning)
{
FontName = fontName;
Size = size;
Spacing = spacing;
Style = fontStyle;
UseKerning = useKerning;
}
[ContentSerializerIgnoreAttribute]
public ICollection<char> Characters
{
get;
private set;
}
[ContentSerializerAttribute]
public Nullable<char> DefaultCharacter
{
get;
set;
}
public string FontName
{
get;
set;
}
public float Size
{
get;
set;
}
public float Spacing
{
get;
set;
}
public FontDescriptionStyle Style
{
get;
set;
}
[ContentSerializerAttribute]
public bool UseKerning
{
get;
set;
}
}
}

View File

@ -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.Graphics
{
public enum FontDescriptionStyle
{
Bold,
Italic,
Regular,
}
}

View File

@ -0,0 +1,45 @@
#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 GeometryContent : ContentItem
{
public GeometryContent()
{
}
public IndexCollection Indices
{
get;
private set;
}
public MaterialContent Material
{
get;
set;
}
public MeshContent Parent
{
get;
set;
}
public VertexContent Vertices
{
get;
private set;
}
}
}

View File

@ -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 sealed class GeometryContentCollection : ChildCollection<MeshContent, GeometryContent>
{
protected GeometryContentCollection(MeshContent parent)
: base(parent)
{
throw new NotImplementedException();
}
protected override MeshContent GetParent(GeometryContent child)
{
throw new NotImplementedException();
}
protected override void SetParent(GeometryContent child, MeshContent parent)
{
throw new NotImplementedException();
}
}
}

View File

@ -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.Graphics
{
public sealed class IndexCollection : Collection<int>
{
public IndexCollection()
{
}
public void AddRange(IEnumerable<int> indices)
{
throw new NotImplementedException();
}
}
}

View File

@ -0,0 +1,91 @@
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
#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 sealed class IndirectPositionCollection : IList<Vector3>, ICollection<Vector3>, IEnumerable<Vector3>, IEnumerable
{
int IList<Vector3>.IndexOf(Vector3 item)
{
throw new NotImplementedException();
}
void IList<Vector3>.Insert(int index, Vector3 item)
{
throw new NotImplementedException();
}
void IList<Vector3>.RemoveAt(int index)
{
throw new NotImplementedException();
}
Vector3 IList<Vector3>.this[int index]
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
void ICollection<Vector3>.Add(Vector3 item)
{
throw new NotImplementedException();
}
void ICollection<Vector3>.Clear()
{
throw new NotImplementedException();
}
bool ICollection<Vector3>.Contains(Vector3 item)
{
throw new NotImplementedException();
}
void ICollection<Vector3>.CopyTo(Vector3[] array, int arrayIndex)
{
throw new NotImplementedException();
}
int ICollection<Vector3>.Count
{
get { throw new NotImplementedException(); }
}
bool ICollection<Vector3>.IsReadOnly
{
get { throw new NotImplementedException(); }
}
bool ICollection<Vector3>.Remove(Vector3 item)
{
throw new NotImplementedException();
}
IEnumerator<Vector3> IEnumerable<Vector3>.GetEnumerator()
{
throw new NotImplementedException();
}
IEnumerator IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
}
}

View File

@ -0,0 +1,68 @@
#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 sealed class MeshBuilder
{
public bool MergeDuplicatePositions { get; set; }
public float MergePositionTolerance { get; set; }
public string Name { get; set; }
public bool SwapWindingOrder { get; set; }
public void AddTriangleVertex(int indexIntoVertexCollection)
{
throw new NotImplementedException();
}
public int CreatePosition(float x, float y, float z)
{
return CreatePosition(new Vector3(x, y, z));
}
public int CreatePosition(Vector3 pos)
{
throw new NotImplementedException();
}
public int CreateVertexChannel<T>(string usage)
{
throw new NotImplementedException();
}
public MeshContent FinishMesh()
{
throw new NotImplementedException();
}
public void SetMaterial(MaterialContent material)
{
throw new NotImplementedException();
}
public void SetOpaqueData(OpaqueDataDictionary opaqueData)
{
throw new NotImplementedException();
}
public void SetVertexChannelData(int vertexDataIndex, Object channelData)
{
throw new NotImplementedException();
}
public static MeshBuilder StartMesh(string name)
{
throw new NotImplementedException();
}
}
}

View File

@ -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 MeshContent : NodeContent
{
public MeshContent()
{
}
public GeometryContentCollection Geometry
{
get;
private set;
}
public PositionCollection Positions
{
get;
private set;
}
}
}

View File

@ -0,0 +1,67 @@
#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 static class MeshHelper
{
public static void CalculateNormals(MeshContent mesh, bool overwriteExistingNormals)
{
throw new NotImplementedException();
}
public static void CalculateTangentFrames(MeshContent mesh, string textureCoordinateChannelName, string tangentChannelName, string binormalChannelName)
{
throw new NotImplementedException();
}
public static BoneContent FindSkeleton(NodeContent node)
{
throw new NotImplementedException();
}
public static IList<BoneContent> FlattenSkeleton(BoneContent skeleton)
{
throw new NotImplementedException();
}
public static void MergeDuplicatePositions(MeshContent mesh, float tolerance)
{
throw new NotImplementedException();
}
public static void MergeDuplicateVertices(GeometryContent geometry)
{
throw new NotImplementedException();
}
public static void MergeDuplicateVertices(MeshContent mesh)
{
throw new NotImplementedException();
}
public static void OptimizeForCache(MeshContent mesh)
{
throw new NotImplementedException();
}
public static void SwapWindingOrder(MeshContent mesh)
{
throw new NotImplementedException();
}
public static void TransformScene(NodeContent scene, Matrix transform)
{
throw new NotImplementedException();
}
}
}

View File

@ -0,0 +1,73 @@
#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 PixelBitmapContent<T> : BitmapContent where T : struct, IEquatable<T>
{
protected PixelBitmapContent()
{
}
public PixelBitmapContent(int width, int height)
: base(width, height)
{
}
public T GetPixel(int x, int y)
{
throw new NotImplementedException();
}
public override byte[] GetPixelData()
{
throw new NotImplementedException();
}
public T[] GetRow(int y)
{
throw new NotImplementedException();
}
public void SetPixel(int x, int y, T value)
{
throw new NotImplementedException();
}
public override void SetPixelData(byte[] sourceData)
{
throw new NotImplementedException();
}
public override string ToString()
{
throw new NotImplementedException();
}
protected override bool TryCopyFrom(BitmapContent sourceBitmap, Rectangle sourceRegion, Rectangle destinationRegion)
{
throw new NotImplementedException();
}
protected override bool TryCopyTo(BitmapContent destinationBitmap, Rectangle sourceRegion, Rectangle destinationRegion)
{
throw new NotImplementedException();
}
public override bool TryGetFormat(out Framework.Graphics.SurfaceFormat format)
{
throw new NotImplementedException();
}
}
}

View File

@ -0,0 +1,25 @@
#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.Graphics
{
public sealed class PositionCollection : Collection<Vector3>
{
public PositionCollection()
{
}
}
}

View File

@ -0,0 +1,177 @@
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
#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 abstract class VertexChannel : IList, ICollection, IEnumerable
{
int IList.Add(object value)
{
throw new NotImplementedException();
}
void IList.Clear()
{
throw new NotImplementedException();
}
bool IList.Contains(object value)
{
throw new NotImplementedException();
}
int IList.IndexOf(object value)
{
throw new NotImplementedException();
}
void IList.Insert(int index, object value)
{
throw new NotImplementedException();
}
bool IList.IsFixedSize
{
get { throw new NotImplementedException(); }
}
bool IList.IsReadOnly
{
get { throw new NotImplementedException(); }
}
void IList.Remove(object value)
{
throw new NotImplementedException();
}
void IList.RemoveAt(int index)
{
throw new NotImplementedException();
}
object IList.this[int index]
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
void ICollection.CopyTo(Array array, int index)
{
throw new NotImplementedException();
}
int ICollection.Count
{
get { throw new NotImplementedException(); }
}
bool ICollection.IsSynchronized
{
get { throw new NotImplementedException(); }
}
object ICollection.SyncRoot
{
get { throw new NotImplementedException(); }
}
IEnumerator IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
}
public sealed class VertexChannel<T> : VertexChannel, IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable
{
int IList<T>.IndexOf(T item)
{
throw new NotImplementedException();
}
void IList<T>.Insert(int index, T item)
{
throw new NotImplementedException();
}
void IList<T>.RemoveAt(int index)
{
throw new NotImplementedException();
}
T IList<T>.this[int index]
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
void ICollection<T>.Add(T item)
{
throw new NotImplementedException();
}
void ICollection<T>.Clear()
{
throw new NotImplementedException();
}
bool ICollection<T>.Contains(T item)
{
throw new NotImplementedException();
}
void ICollection<T>.CopyTo(T[] array, int arrayIndex)
{
throw new NotImplementedException();
}
int ICollection<T>.Count
{
get { throw new NotImplementedException(); }
}
bool ICollection<T>.IsReadOnly
{
get { throw new NotImplementedException(); }
}
bool ICollection<T>.Remove(T item)
{
throw new NotImplementedException();
}
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
throw new NotImplementedException();
}
IEnumerator IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
}
}

View File

@ -0,0 +1,90 @@
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
#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 sealed class VertexChannelCollection : IList<VertexChannel>, ICollection<VertexChannel>, IEnumerable<VertexChannel>, IEnumerable
{
int IList<VertexChannel>.IndexOf(VertexChannel item)
{
throw new NotImplementedException();
}
void IList<VertexChannel>.Insert(int index, VertexChannel item)
{
throw new NotImplementedException();
}
void IList<VertexChannel>.RemoveAt(int index)
{
throw new NotImplementedException();
}
VertexChannel IList<VertexChannel>.this[int index]
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
void ICollection<VertexChannel>.Add(VertexChannel item)
{
throw new NotImplementedException();
}
void ICollection<VertexChannel>.Clear()
{
throw new NotImplementedException();
}
bool ICollection<VertexChannel>.Contains(VertexChannel item)
{
throw new NotImplementedException();
}
void ICollection<VertexChannel>.CopyTo(VertexChannel[] array, int arrayIndex)
{
throw new NotImplementedException();
}
int ICollection<VertexChannel>.Count
{
get { throw new NotImplementedException(); }
}
bool ICollection<VertexChannel>.IsReadOnly
{
get { throw new NotImplementedException(); }
}
bool ICollection<VertexChannel>.Remove(VertexChannel item)
{
throw new NotImplementedException();
}
IEnumerator<VertexChannel> IEnumerable<VertexChannel>.GetEnumerator()
{
throw new NotImplementedException();
}
IEnumerator IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
}
}

View File

@ -0,0 +1,77 @@
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ANX.Framework.Content.Pipeline.Processors;
#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 sealed class VertexContent
{
public VertexChannelCollection Channels
{
get;
private set;
}
public VertexChannel<int> PositionIndices
{
get;
private set;
}
public IndirectPositionCollection Positions
{
get;
private set;
}
public int VertexCount
{
get;
private set;
}
public int Add(int positionIndex)
{
throw new NotImplementedException();
}
public void AddRange(IEnumerable<int> positionIndexCollection)
{
throw new NotImplementedException();
}
public VertexBufferContent CreateVertexBuffer()
{
throw new NotImplementedException();
}
public void Insert(int index, int positionIndex)
{
throw new NotImplementedException();
}
public void InsertRange(int index, IEnumerable<int> positionIndexCollection)
{
throw new NotImplementedException();
}
public void RemoveAt(int index)
{
throw new NotImplementedException();
}
public void RemoveRange(int index, int count)
{
throw new NotImplementedException();
}
}
}

View File

@ -1,15 +1,29 @@
using System;
#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
using System.Text;
namespace ANX.Framework.Content.Pipeline.Processors
{
public class CompiledEffectContent
{
}
public class CompiledEffectContent : ContentItem
{
private byte[] effectCode;
public CompiledEffectContent(byte[] effectCode)
{
this.effectCode = effectCode;
}
public byte[] GetEffectCode()
{
return effectCode;
}
}
}

View File

@ -0,0 +1,57 @@
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
#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 VertexBufferContent : ContentItem
{
public VertexBufferContent()
{
}
public VertexBufferContent(int size)
{
throw new NotImplementedException();
}
public byte[] VertexData
{
get;
private set;
}
public VertexDeclarationContent VertexDeclaration
{
get;
set;
}
public static int SizeOf(Type type)
{
throw new NotImplementedException();
}
public void Write<T>(int offset, int stride, IEnumerable<T> data)
{
throw new NotImplementedException();
}
public void Write(int offset, int stride, Type dataType, IEnumerable data)
{
throw new NotImplementedException();
}
}
}

View File

@ -0,0 +1,36 @@
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;
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.Processors
{
public class VertexDeclarationContent : ContentItem
{
public VertexDeclarationContent()
{
}
public Collection<VertexElement> VertexElements
{
get;
private set;
}
public Nullable<int> VertexStride
{
get;
set;
}
}
}