Desketchified DX11 shader binding

This commit is contained in:
Simon Lübeß
2022-05-13 15:13:09 +02:00
parent b1a1268319
commit 1d3d30f88d
4 changed files with 6 additions and 8 deletions
@@ -245,10 +245,10 @@ namespace GlitchyEngine.Renderer
// TODO: Add remaining shader stages // TODO: Add remaining shader stages
case typeof(PixelShader): case typeof(PixelShader):
NativeContext.PixelShader.SetConstantBuffers(0, shader.Buffers.nativeBuffers.Count, &shader.Buffers.nativeBuffers); 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): case typeof(VertexShader):
NativeContext.VertexShader.SetConstantBuffers(0, shader.Buffers.nativeBuffers.Count, &shader.Buffers.nativeBuffers); 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: default:
Runtime.FatalError(scope $"Shader stage \"{typeof(TShader)}\" not implemented."); Runtime.FatalError(scope $"Shader stage \"{typeof(TShader)}\" not implemented.");
} }
@@ -12,8 +12,6 @@ namespace GlitchyEngine.Renderer
{ {
extension PixelShader extension PixelShader
{ {
internal ID3D11PixelShader* nativeShader ~ _?.Release();
public override void CompileFromSource(StringView code, StringView? fileName, String entryPoint, ShaderDefine[] macros = null) public override void CompileFromSource(StringView code, StringView? fileName, String entryPoint, ShaderDefine[] macros = null)
{ {
Debug.Profiler.ProfileRendererFunction!(); Debug.Profiler.ProfileRendererFunction!();
@@ -23,7 +21,7 @@ namespace GlitchyEngine.Renderer
{ {
Debug.Profiler.ProfileResourceScope!("CreateNativePixelShader"); 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) if(result.Failed)
{ {
Log.EngineLogger.Error($"Failed to create pixel shader: Message ({(int)result}): {result}"); Log.EngineLogger.Error($"Failed to create pixel shader: Message ({(int)result}): {result}");
@@ -13,6 +13,8 @@ namespace GlitchyEngine.Renderer
{ {
extension Shader extension Shader
{ {
internal ID3D11DeviceChild* nativeShader ~ _?.Release();
/** /**
* Internal compiled code of the shader. * Internal compiled code of the shader.
*/ */
@@ -13,8 +13,6 @@ namespace GlitchyEngine.Renderer
{ {
extension VertexShader extension VertexShader
{ {
internal ID3D11VertexShader* nativeShader ~ _?.Release();
public override void CompileFromSource(StringView code, StringView? fileName, String entryPoint, ShaderDefine[] macros = null) public override void CompileFromSource(StringView code, StringView? fileName, String entryPoint, ShaderDefine[] macros = null)
{ {
Debug.Profiler.ProfileResourceFunction!(); Debug.Profiler.ProfileResourceFunction!();
@@ -24,7 +22,7 @@ namespace GlitchyEngine.Renderer
{ {
Debug.Profiler.ProfileResourceScope!("CreateNativeVertexShader"); 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) if(result.Failed)
{ {
Log.EngineLogger.Error($"Failed to create vertex shader: Message ({(int)result}): {result}"); Log.EngineLogger.Error($"Failed to create vertex shader: Message ({(int)result}): {result}");