anx.framework/ANX.Framework/Graphics/VertexBufferBinding.cs
SND\AstrorEnales_cp be01038e1f Fixed the DisplayMode class which was way too accessible!
Added Tests for:
- DisplayMode
- VertexElement
- VertexPositionColor (GetHashCode still fails)
- VertexPositionColorTexture (GetHashCode still fails)
- VertexPositionTexture
- VertexPositionNormalTexture
2015-03-15 01:11:49 +01:00

86 lines
2.6 KiB
C#

#region Using Statements
using System;
using ANX.Framework.NonXNA.Development;
#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.Graphics
{
[PercentageComplete(100)]
[Developer("Glatzemann")]
[TestState(TestStateAttribute.TestState.Untested)]
public struct VertexBufferBinding
{
#region Private
private readonly VertexBuffer vertexBuffer;
private readonly int instanceFrequency;
private readonly int vertexOffset;
#endregion
#region Public
public VertexBuffer VertexBuffer
{
get { return this.vertexBuffer; }
}
public int InstanceFrequency
{
get { return this.instanceFrequency; }
}
public int VertexOffset
{
get { return this.vertexOffset; }
}
#endregion
public VertexBufferBinding(VertexBuffer vertexBuffer)
{
if (vertexBuffer == null)
throw new ArgumentNullException("vertexBuffer");
this.vertexBuffer = vertexBuffer;
this.vertexOffset = 0;
this.instanceFrequency = 0;
}
public VertexBufferBinding(VertexBuffer vertexBuffer, int vertexOffset)
{
if (vertexBuffer == null)
throw new ArgumentNullException("vertexBuffer");
if (vertexOffset < 0 || vertexOffset >= vertexBuffer.VertexCount)
throw new ArgumentOutOfRangeException("vertexOffset");
this.vertexBuffer = vertexBuffer;
this.vertexOffset = vertexOffset;
this.instanceFrequency = 0;
}
public VertexBufferBinding(VertexBuffer vertexBuffer, int vertexOffset, int instanceFrequency)
{
if (vertexBuffer == null)
throw new ArgumentNullException("vertexBuffer");
if (vertexOffset < 0 || vertexOffset >= vertexBuffer.VertexCount)
throw new ArgumentOutOfRangeException("vertexOffset");
if (instanceFrequency < 0)
throw new ArgumentOutOfRangeException("instanceFrequency");
this.vertexBuffer = vertexBuffer;
this.vertexOffset = vertexOffset;
this.instanceFrequency = instanceFrequency;
}
public static implicit operator VertexBufferBinding(VertexBuffer vertexBuffer)
{
return new VertexBufferBinding(vertexBuffer);
}
}
}