namespace MoonWorks.Graphics { /// /// Specifies how to interpet vertex data in a buffer to be passed to the vertex shader. /// public struct VertexInputState { public VertexBinding[] VertexBindings; public VertexAttribute[] VertexAttributes; public static readonly VertexInputState Empty = new VertexInputState { VertexBindings = System.Array.Empty(), VertexAttributes = System.Array.Empty() }; public VertexInputState( VertexBinding vertexBinding, VertexAttribute[] vertexAttributes ) { VertexBindings = new VertexBinding[] { vertexBinding }; VertexAttributes = vertexAttributes; } public VertexInputState( VertexBinding[] vertexBindings, VertexAttribute[] vertexAttributes ) { VertexBindings = vertexBindings; VertexAttributes = vertexAttributes; } public static VertexInputState CreateSingleBinding() where T : unmanaged, IVertexType { return new VertexInputState( VertexBinding.Create(), default(T).Attributes() ); } } }