From 1d3d30f88d1ae6bc6588154ad5c0cd74b2f8c19e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Fri, 13 May 2022 15:13:09 +0200 Subject: [PATCH] Desketchified DX11 shader binding --- .../src/Platform/DX11/Renderer/Dx11GraphicsContext.bf | 4 ++-- GlitchyEngine/src/Platform/DX11/Renderer/Dx11PixelShader.bf | 4 +--- GlitchyEngine/src/Platform/DX11/Renderer/Dx11Shader.bf | 2 ++ GlitchyEngine/src/Platform/DX11/Renderer/Dx11VertexShader.bf | 4 +--- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11GraphicsContext.bf b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11GraphicsContext.bf index 97104cc..c58e19f 100644 --- a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11GraphicsContext.bf +++ b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11GraphicsContext.bf @@ -245,10 +245,10 @@ namespace GlitchyEngine.Renderer // TODO: Add remaining shader stages case typeof(PixelShader): NativeContext.PixelShader.SetConstantBuffers(0, shader.Buffers.nativeBuffers.Count, &shader.Buffers.nativeBuffers); - [IgnoreErrors]{ NativeContext.PixelShader.SetShader(((PixelShader)shader).nativeShader); } + NativeContext.PixelShader.SetShader((ID3D11PixelShader*)shader.nativeShader); case typeof(VertexShader): NativeContext.VertexShader.SetConstantBuffers(0, shader.Buffers.nativeBuffers.Count, &shader.Buffers.nativeBuffers); - [IgnoreErrors]{ NativeContext.VertexShader.SetShader(((VertexShader)shader).nativeShader); } + NativeContext.VertexShader.SetShader((ID3D11VertexShader*)shader.nativeShader); default: Runtime.FatalError(scope $"Shader stage \"{typeof(TShader)}\" not implemented."); } diff --git a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11PixelShader.bf b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11PixelShader.bf index 79d210d..5763efa 100644 --- a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11PixelShader.bf +++ b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11PixelShader.bf @@ -12,8 +12,6 @@ namespace GlitchyEngine.Renderer { extension PixelShader { - internal ID3D11PixelShader* nativeShader ~ _?.Release(); - public override void CompileFromSource(StringView code, StringView? fileName, String entryPoint, ShaderDefine[] macros = null) { Debug.Profiler.ProfileRendererFunction!(); @@ -23,7 +21,7 @@ namespace GlitchyEngine.Renderer { Debug.Profiler.ProfileResourceScope!("CreateNativePixelShader"); - var result = NativeDevice.CreatePixelShader(nativeCode.GetBufferPointer(), nativeCode.GetBufferSize(), null, &nativeShader); + var result = NativeDevice.CreatePixelShader(nativeCode.GetBufferPointer(), nativeCode.GetBufferSize(), null, (ID3D11PixelShader**)&nativeShader); if(result.Failed) { Log.EngineLogger.Error($"Failed to create pixel shader: Message ({(int)result}): {result}"); diff --git a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11Shader.bf b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11Shader.bf index f0444bc..73f35b3 100644 --- a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11Shader.bf +++ b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11Shader.bf @@ -13,6 +13,8 @@ namespace GlitchyEngine.Renderer { extension Shader { + internal ID3D11DeviceChild* nativeShader ~ _?.Release(); + /** * Internal compiled code of the shader. */ diff --git a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11VertexShader.bf b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11VertexShader.bf index 18b8fe6..7a79ce8 100644 --- a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11VertexShader.bf +++ b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11VertexShader.bf @@ -13,8 +13,6 @@ namespace GlitchyEngine.Renderer { extension VertexShader { - internal ID3D11VertexShader* nativeShader ~ _?.Release(); - public override void CompileFromSource(StringView code, StringView? fileName, String entryPoint, ShaderDefine[] macros = null) { Debug.Profiler.ProfileResourceFunction!(); @@ -24,7 +22,7 @@ namespace GlitchyEngine.Renderer { Debug.Profiler.ProfileResourceScope!("CreateNativeVertexShader"); - var result = NativeDevice.CreateVertexShader(nativeCode.GetBufferPointer(), nativeCode.GetBufferSize(), null, &nativeShader); + var result = NativeDevice.CreateVertexShader(nativeCode.GetBufferPointer(), nativeCode.GetBufferSize(), null, (ID3D11VertexShader**)&nativeShader); if(result.Failed) { Log.EngineLogger.Error($"Failed to create vertex shader: Message ({(int)result}): {result}");