DX11: Automatically validate input layouts against vertex shaders

This commit is contained in:
Simon Lübeß
2022-05-26 11:27:02 +02:00
parent 28f1fad464
commit 164d420a25
11 changed files with 101 additions and 49 deletions
@@ -15,7 +15,6 @@ namespace GlitchyEngine.Renderer
internal uint32[DirectX.D3D11.D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT] bufferStrides;
internal uint32[DirectX.D3D11.D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT] bufferOffsets;
internal ID3D11InputLayout* nativeVertexLayout;
internal ID3D11Buffer* nativeIndexBuffer;
public ~this()
@@ -25,7 +24,6 @@ namespace GlitchyEngine.Renderer
buffer?.Release();
}
nativeVertexLayout?.Release();
nativeIndexBuffer?.Release();
}
@@ -61,10 +59,6 @@ namespace GlitchyEngine.Renderer
protected override void PlatformSetVertexLayout(VertexLayout vertexLayout)
{
Debug.Profiler.ProfileResourceFunction!();
nativeVertexLayout?.Release();
nativeVertexLayout = vertexLayout?.nativeLayout..AddRef();
}
protected override void PlatformSetIndexBuffer(IndexBuffer indexBuffer)
@@ -88,7 +82,7 @@ namespace GlitchyEngine.Renderer
Debug.Profiler.ProfileRendererFunction!();
NativeContext.InputAssembler.SetVertexBuffers(0, nativeBuffers.Count, &nativeBuffers, &bufferStrides, &bufferOffsets);
NativeContext.InputAssembler.SetInputLayout(_vertexLayout.nativeLayout);
GraphicsContext.Get().SetVertexLayout(_vertexLayout);
NativeContext.InputAssembler.SetPrimitiveTopology((.)_primitiveTopology);
if(_indexBuffer != null)