diff --git a/src/Graphics/CommandBuffer.cs b/src/Graphics/CommandBuffer.cs
index 7782c2c..2d72e4f 100644
--- a/src/Graphics/CommandBuffer.cs
+++ b/src/Graphics/CommandBuffer.cs
@@ -368,7 +368,7 @@ namespace MoonWorks.Graphics
///
/// The texture-sampler pairs to bind.
public unsafe void BindVertexSamplers(
- params TextureSamplerBinding[] textureSamplerBindings
+ ArraySegment textureSamplerBindings
)
{
#if DEBUG
@@ -379,16 +379,16 @@ namespace MoonWorks.Graphics
throw new System.InvalidOperationException("The vertex shader of the current graphics pipeline does not take any samplers!");
}
- if (currentGraphicsPipeline.VertexShaderInfo.SamplerBindingCount < textureSamplerBindings.Length)
+ if (currentGraphicsPipeline.VertexShaderInfo.SamplerBindingCount < textureSamplerBindings.Count)
{
throw new System.InvalidOperationException("Vertex sampler count exceeds the amount used by the vertex shader!");
}
#endif
- var texturePtrs = stackalloc IntPtr[textureSamplerBindings.Length];
- var samplerPtrs = stackalloc IntPtr[textureSamplerBindings.Length];
+ var texturePtrs = stackalloc IntPtr[textureSamplerBindings.Count];
+ var samplerPtrs = stackalloc IntPtr[textureSamplerBindings.Count];
- for (var i = 0; i < textureSamplerBindings.Length; i += 1)
+ for (var i = 0; i < textureSamplerBindings.Count; i += 1)
{
#if DEBUG
AssertTextureSamplerBindingNonNull(textureSamplerBindings[i]);
@@ -408,13 +408,24 @@ namespace MoonWorks.Graphics
}
///
- /// Binds samplers to be used by the fragment shader.
+ /// Binds samplers to be used by the vertex shader.
///
- /// An array of texture-sampler pairs to bind.
- public unsafe void BindFragmentSamplers(
+ /// The texture-sampler pairs to bind.
+ public unsafe void BindVertexSamplers(
params TextureSamplerBinding[] textureSamplerBindings
)
{
+ BindVertexSamplers(new ArraySegment(textureSamplerBindings));
+ }
+
+ ///
+ /// Binds samplers to be used by the vertex shader.
+ ///
+ /// The texture-sampler pairs to bind.
+ public unsafe void BindFragmentSamplers(
+ ArraySegment textureSamplerBindings
+ )
+ {
#if DEBUG
AssertGraphicsPipelineBound();
@@ -423,16 +434,16 @@ namespace MoonWorks.Graphics
throw new System.InvalidOperationException("The fragment shader of the current graphics pipeline does not take any samplers!");
}
- if (currentGraphicsPipeline.FragmentShaderInfo.SamplerBindingCount < textureSamplerBindings.Length)
+ if (currentGraphicsPipeline.FragmentShaderInfo.SamplerBindingCount < textureSamplerBindings.Count)
{
throw new System.InvalidOperationException("Fragment sampler count exceeds the amount used by the fragment shader!");
}
#endif
- var texturePtrs = stackalloc IntPtr[textureSamplerBindings.Length];
- var samplerPtrs = stackalloc IntPtr[textureSamplerBindings.Length];
+ var texturePtrs = stackalloc IntPtr[textureSamplerBindings.Count];
+ var samplerPtrs = stackalloc IntPtr[textureSamplerBindings.Count];
- for (var i = 0; i < textureSamplerBindings.Length; i += 1)
+ for (var i = 0; i < textureSamplerBindings.Count; i += 1)
{
#if DEBUG
AssertTextureSamplerBindingNonNull(textureSamplerBindings[i]);
@@ -451,6 +462,17 @@ namespace MoonWorks.Graphics
);
}
+ ///
+ /// Binds samplers to be used by the fragment shader.
+ ///
+ /// An array of texture-sampler pairs to bind.
+ public unsafe void BindFragmentSamplers(
+ params TextureSamplerBinding[] textureSamplerBindings
+ )
+ {
+ BindFragmentSamplers(new ArraySegment(textureSamplerBindings));
+ }
+
///
/// Pushes vertex shader uniforms to the device.
///