forked from MoonsideGames/MoonWorks
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: MoonsideGames/MoonWorks#37 Co-authored-by: TheSpydog <thespydog@noreply.example.org> Co-committed-by: TheSpydog <thespydog@noreply.example.org>indirect-struct
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