From 5ccebc018f60f47f6ce8d16739ae469ac19ba42a Mon Sep 17 00:00:00 2001 From: Caleb Cornett Date: Wed, 28 Dec 2022 21:00:46 -0500 Subject: [PATCH] add validation checks for AcquireSwapchainTexture and BindVertexBuffers --- src/Graphics/CommandBuffer.cs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/Graphics/CommandBuffer.cs b/src/Graphics/CommandBuffer.cs index dd2e61a..d912969 100644 --- a/src/Graphics/CommandBuffer.cs +++ b/src/Graphics/CommandBuffer.cs @@ -841,6 +841,10 @@ namespace MoonWorks.Graphics in BufferBinding bufferBinding, uint firstBinding = 0 ) { +#if DEBUG + AssertGraphicsPipelineBound(); +#endif + var bufferPtrs = stackalloc IntPtr[1]; var offsets = stackalloc ulong[1]; @@ -868,6 +872,10 @@ namespace MoonWorks.Graphics in BufferBinding bufferBindingTwo, uint firstBinding = 0 ) { +#if DEBUG + AssertGraphicsPipelineBound(); +#endif + var bufferPtrs = stackalloc IntPtr[2]; var offsets = stackalloc ulong[2]; @@ -900,6 +908,10 @@ namespace MoonWorks.Graphics in BufferBinding bufferBindingThree, uint firstBinding = 0 ) { +#if DEBUG + AssertGraphicsPipelineBound(); +#endif + var bufferPtrs = stackalloc IntPtr[3]; var offsets = stackalloc ulong[3]; @@ -936,6 +948,10 @@ namespace MoonWorks.Graphics in BufferBinding bufferBindingFour, uint firstBinding = 0 ) { +#if DEBUG + AssertGraphicsPipelineBound(); +#endif + var bufferPtrs = stackalloc IntPtr[4]; var offsets = stackalloc ulong[4]; @@ -968,6 +984,10 @@ namespace MoonWorks.Graphics in Span bufferBindings, uint firstBinding = 0 ) { +#if DEBUG + AssertGraphicsPipelineBound(); +#endif + var bufferPtrs = stackalloc IntPtr[bufferBindings.Length]; var offsets = stackalloc ulong[bufferBindings.Length]; @@ -1617,6 +1637,12 @@ namespace MoonWorks.Graphics Window window ) { +#if DEBUG + if (!window.Claimed) + { + throw new System.InvalidOperationException("Cannot acquire swapchain texture, window has not been claimed!"); + } +#endif var texturePtr = Refresh.Refresh_AcquireSwapchainTexture( Device.Handle, Handle,