Add validation checks for AcquireSwapchainTexture and BindVertexBuffers (#37)
This replaces the Refresh-side check for window claim status in AcquireSwapchainTexture, and adds validation to ensure that BindVertexBuffers is not called before BindGraphicsPipeline. Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com> Reviewed-on: #37 Co-authored-by: TheSpydog <thespydog@noreply.example.org> Co-committed-by: TheSpydog <thespydog@noreply.example.org>pull/39/head
							parent
							
								
									d76633bdfc
								
							
						
					
					
						commit
						f96298f991
					
				|  | @ -847,6 +847,10 @@ namespace MoonWorks.Graphics | |||
| 			in BufferBinding bufferBinding, | ||||
| 			uint firstBinding = 0 | ||||
| 		) { | ||||
| #if DEBUG | ||||
| 			AssertGraphicsPipelineBound(); | ||||
| #endif | ||||
| 
 | ||||
| 			var bufferPtrs = stackalloc IntPtr[1]; | ||||
| 			var offsets = stackalloc ulong[1]; | ||||
| 
 | ||||
|  | @ -874,6 +878,10 @@ namespace MoonWorks.Graphics | |||
| 			in BufferBinding bufferBindingTwo, | ||||
| 			uint firstBinding = 0 | ||||
| 		) { | ||||
| #if DEBUG | ||||
| 			AssertGraphicsPipelineBound(); | ||||
| #endif | ||||
| 
 | ||||
| 			var bufferPtrs = stackalloc IntPtr[2]; | ||||
| 			var offsets = stackalloc ulong[2]; | ||||
| 
 | ||||
|  | @ -906,6 +914,10 @@ namespace MoonWorks.Graphics | |||
| 			in BufferBinding bufferBindingThree, | ||||
| 			uint firstBinding = 0 | ||||
| 		) { | ||||
| #if DEBUG | ||||
| 			AssertGraphicsPipelineBound(); | ||||
| #endif | ||||
| 
 | ||||
| 			var bufferPtrs = stackalloc IntPtr[3]; | ||||
| 			var offsets = stackalloc ulong[3]; | ||||
| 
 | ||||
|  | @ -942,6 +954,10 @@ namespace MoonWorks.Graphics | |||
| 			in BufferBinding bufferBindingFour, | ||||
| 			uint firstBinding = 0 | ||||
| 		) { | ||||
| #if DEBUG | ||||
| 			AssertGraphicsPipelineBound(); | ||||
| #endif | ||||
| 
 | ||||
| 			var bufferPtrs = stackalloc IntPtr[4]; | ||||
| 			var offsets = stackalloc ulong[4]; | ||||
| 
 | ||||
|  | @ -974,6 +990,10 @@ namespace MoonWorks.Graphics | |||
| 			in Span<BufferBinding> bufferBindings, | ||||
| 			uint firstBinding = 0 | ||||
| 		) { | ||||
| #if DEBUG | ||||
| 			AssertGraphicsPipelineBound(); | ||||
| #endif | ||||
| 
 | ||||
| 			var bufferPtrs = stackalloc IntPtr[bufferBindings.Length]; | ||||
| 			var offsets = stackalloc ulong[bufferBindings.Length]; | ||||
| 
 | ||||
|  | @ -1623,6 +1643,13 @@ namespace MoonWorks.Graphics | |||
| 		public Texture AcquireSwapchainTexture( | ||||
| 			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, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue