Show More
Commit Description:
Tidy code.
Commit Description:
Tidy code.
File last commit:
Show/Diff file:
Action:
FNA/src/Graphics/Vertices/VertexBufferBinding.cs
117 lines | 2.7 KiB | text/x-csharp | CSharpLexer
#region License
/* FNA - XNA4 Reimplementation for Desktop Platforms
* Copyright 2009-2020 Ethan Lee and the MonoGame Team
*
* Released under the Microsoft Public License.
* See LICENSE for details.
*/
#endregion
namespace Microsoft.Xna.Framework.Graphics
{
public struct VertexBufferBinding
{
#region Public Properties
/// <summary>
/// Gets the instance frequency. A value of 0 means no instancing.
/// </summary>
public int InstanceFrequency
{
get
{
return instanceFrequency;
}
}
/// <summary>
/// Gets the vertex buffer.
/// </summary>
public VertexBuffer VertexBuffer
{
get
{
return vertexBuffer;
}
}
/// <summary>
/// Gets the offset in bytes from the beginning of the vertex buffer to the first vertex to use.
/// </summary>
public int VertexOffset
{
get
{
return vertexOffset;
}
}
#endregion
#region Private Variables
private VertexBuffer vertexBuffer;
private int vertexOffset;
private int instanceFrequency;
#endregion
#region Internal Static Variables
/// <summary>
/// A null vertex buffer binding for unused vertex buffer slots.
/// </summary>
internal static readonly VertexBufferBinding None = new VertexBufferBinding(null);
#endregion
#region Public Constructors
/// <summary>
/// Creates an instance of VertexBufferBinding.
/// </summary>
/// <param name="vertexBuffer">The vertex buffer to bind.</param>
public VertexBufferBinding(VertexBuffer vertexBuffer)
{
this.vertexBuffer = vertexBuffer;
vertexOffset = 0;
instanceFrequency = 0;
}
/// <summary>
/// Creates an instance of VertexBufferBinding.
/// </summary>
/// <param name="vertexBuffer">The vertex buffer to bind.</param>
/// <param name="vertexOffset">The offset in bytes to the first vertex to use.</param>
public VertexBufferBinding(VertexBuffer vertexBuffer, int vertexOffset)
{
this.vertexBuffer = vertexBuffer;
this.vertexOffset = vertexOffset;
instanceFrequency = 0;
}
/// <summary>
/// Creates an instance of VertexBufferBinding.
/// </summary>
/// <param name="vertexBuffer">The vertex buffer to bind.</param>
/// <param name="vertexOffset">The offset in bytes to the first vertex to use.</param>
/// <param name="instanceFrequency">Number of instances to draw for each draw call. Use 0 if not using instanced drawing.</param>
public VertexBufferBinding(VertexBuffer vertexBuffer, int vertexOffset, int instanceFrequency)
{
this.vertexBuffer = vertexBuffer;
this.vertexOffset = vertexOffset;
this.instanceFrequency = instanceFrequency;
}
#endregion
#region Implicit Operators
public static implicit operator VertexBufferBinding(VertexBuffer buffer)
{
return new VertexBufferBinding(buffer);
}
#endregion
}
}