From 34e6c1e720f61401e4c20f16e6005fe58b1d3c0d Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Tue, 23 Jan 2024 12:43:07 -0800 Subject: [PATCH 1/2] add shortcut for instance binding --- src/Graphics/RefreshStructs.cs | 4 ++-- src/Graphics/VertexBindingAndAttributes.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Graphics/RefreshStructs.cs b/src/Graphics/RefreshStructs.cs index d2b8407..6b046bd 100644 --- a/src/Graphics/RefreshStructs.cs +++ b/src/Graphics/RefreshStructs.cs @@ -127,12 +127,12 @@ namespace MoonWorks.Graphics public uint Stride; public VertexInputRate InputRate; - public static VertexBinding Create(uint binding = 0) where T : unmanaged + public static VertexBinding Create(uint binding = 0, VertexInputRate inputRate = VertexInputRate.Vertex) where T : unmanaged { return new VertexBinding { Binding = binding, - InputRate = VertexInputRate.Vertex, + InputRate = inputRate, Stride = (uint) Marshal.SizeOf() }; } diff --git a/src/Graphics/VertexBindingAndAttributes.cs b/src/Graphics/VertexBindingAndAttributes.cs index cff9d55..2718557 100644 --- a/src/Graphics/VertexBindingAndAttributes.cs +++ b/src/Graphics/VertexBindingAndAttributes.cs @@ -14,9 +14,9 @@ namespace MoonWorks.Graphics VertexAttributes = attributes; } - public static VertexBindingAndAttributes Create(uint bindingIndex) where T : unmanaged, IVertexType + public static VertexBindingAndAttributes Create(uint bindingIndex, VertexInputRate inputRate = VertexInputRate.Vertex) where T : unmanaged, IVertexType { - VertexBinding binding = VertexBinding.Create(bindingIndex); + VertexBinding binding = VertexBinding.Create(bindingIndex, inputRate); VertexAttribute[] attributes = new VertexAttribute[T.Formats.Length]; uint offset = 0; -- 2.25.1 From 5e16cba94bc0323beb0a18b5ba0b2526981c03dc Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Fri, 26 Jan 2024 19:43:14 -0800 Subject: [PATCH 2/2] location offset param for vertex input shortcut --- src/Graphics/VertexBindingAndAttributes.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Graphics/VertexBindingAndAttributes.cs b/src/Graphics/VertexBindingAndAttributes.cs index 2718557..44217eb 100644 --- a/src/Graphics/VertexBindingAndAttributes.cs +++ b/src/Graphics/VertexBindingAndAttributes.cs @@ -14,7 +14,7 @@ namespace MoonWorks.Graphics VertexAttributes = attributes; } - public static VertexBindingAndAttributes Create(uint bindingIndex, VertexInputRate inputRate = VertexInputRate.Vertex) where T : unmanaged, IVertexType + public static VertexBindingAndAttributes Create(uint bindingIndex, uint locationOffset = 0, VertexInputRate inputRate = VertexInputRate.Vertex) where T : unmanaged, IVertexType { VertexBinding binding = VertexBinding.Create(bindingIndex, inputRate); VertexAttribute[] attributes = new VertexAttribute[T.Formats.Length]; @@ -27,7 +27,7 @@ namespace MoonWorks.Graphics attributes[i] = new VertexAttribute { Binding = bindingIndex, - Location = i, + Location = locationOffset + i, Format = format, Offset = offset }; -- 2.25.1