Vertex instance input shortcut (#53)

Reviewed-on: MoonsideGames/MoonWorks#53
remotes/1734711610904720328/main
cosmonaut 2024-01-27 03:44:19 +00:00
parent 0df2944ccf
commit 42e3ac91af
2 changed files with 5 additions and 5 deletions

View File

@ -127,12 +127,12 @@ namespace MoonWorks.Graphics
public uint Stride;
public VertexInputRate InputRate;
public static VertexBinding Create<T>(uint binding = 0) where T : unmanaged
public static VertexBinding Create<T>(uint binding = 0, VertexInputRate inputRate = VertexInputRate.Vertex) where T : unmanaged
{
return new VertexBinding
{
Binding = binding,
InputRate = VertexInputRate.Vertex,
InputRate = inputRate,
Stride = (uint) Marshal.SizeOf<T>()
};
}

View File

@ -14,9 +14,9 @@ namespace MoonWorks.Graphics
VertexAttributes = attributes;
}
public static VertexBindingAndAttributes Create<T>(uint bindingIndex) where T : unmanaged, IVertexType
public static VertexBindingAndAttributes Create<T>(uint bindingIndex, uint locationOffset = 0, VertexInputRate inputRate = VertexInputRate.Vertex) where T : unmanaged, IVertexType
{
VertexBinding binding = VertexBinding.Create<T>(bindingIndex);
VertexBinding binding = VertexBinding.Create<T>(bindingIndex, inputRate);
VertexAttribute[] attributes = new VertexAttribute[T.Formats.Length];
uint offset = 0;
@ -27,7 +27,7 @@ namespace MoonWorks.Graphics
attributes[i] = new VertexAttribute
{
Binding = bindingIndex,
Location = i,
Location = locationOffset + i,
Format = format,
Offset = offset
};