mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
Added Buffers to Shaders
This commit is contained in:
@@ -127,9 +127,4 @@ namespace GlitchyEngine.Renderer
|
||||
return .Ok;
|
||||
}
|
||||
}
|
||||
|
||||
public extension VertexBuffer<T>
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
using DirectX.D3D11;
|
||||
|
||||
using internal GlitchyEngine.Renderer;
|
||||
|
||||
namespace GlitchyEngine.Renderer
|
||||
{
|
||||
extension BufferCollection
|
||||
{
|
||||
internal ID3D11Buffer*[DirectX.D3D11.D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT] nativeBuffers;
|
||||
|
||||
internal void PlatformFetchNativeBuffers()
|
||||
{
|
||||
for(let buffer in _buffers)
|
||||
{
|
||||
nativeBuffers[buffer.Index] = buffer.Buffer.nativeBuffer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -177,7 +177,8 @@ namespace GlitchyEngine.Renderer
|
||||
public override void SetPixelShader(PixelShader pixelShader)
|
||||
{
|
||||
//Todo: nativeContext.PixelShader.SetSamplers();
|
||||
//Todo: nativeContext.PixelShader.SetConstantBuffers();
|
||||
pixelShader.Buffers.PlatformFetchNativeBuffers();
|
||||
nativeContext.PixelShader.SetConstantBuffers(0, pixelShader.Buffers.nativeBuffers.Count, &pixelShader.Buffers.nativeBuffers);
|
||||
//Todo: nativeContext.PixelShader.SetShaderResources();
|
||||
nativeContext.PixelShader.SetShader(pixelShader.nativeShader);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ using DirectX.D3D11;
|
||||
using DirectX.D3DCompiler;
|
||||
using DirectX.D3D11Shader;
|
||||
using DirectX.Common;
|
||||
using System.Diagnostics;
|
||||
|
||||
using internal GlitchyEngine.Renderer;
|
||||
|
||||
@@ -30,7 +31,7 @@ namespace GlitchyEngine.Renderer
|
||||
Log.EngineLogger.Error($"Failed to create pixel shader: Message ({(int)result}): {result}");
|
||||
}
|
||||
|
||||
//Reflect(shaderBlob);
|
||||
Reflect(shaderBlob);
|
||||
|
||||
shaderBlob?.Release();
|
||||
}
|
||||
@@ -49,8 +50,19 @@ namespace GlitchyEngine.Renderer
|
||||
|
||||
for(uint32 i < cBufferCount)
|
||||
{
|
||||
reflection.GetResourceBindingDescription(i, let bindDesc);
|
||||
|
||||
var bufferReflection = reflection.GetConstantBufferByIndex(i);
|
||||
|
||||
bufferReflection.GetDescription(let bufferDesc);
|
||||
|
||||
// ConstantBuffer
|
||||
if(bufferDesc.Type == .D3D11_CT_CBUFFER)
|
||||
{
|
||||
GlitchyEngine.Renderer.BufferDescription cBufferDesc = .(bufferDesc.Size, .Constant, .Dynamic, .Write);
|
||||
|
||||
_buffers.Add(bindDesc.BindPoint, StringView(bufferDesc.Name), new Buffer(_context, cBufferDesc), true);
|
||||
}
|
||||
}
|
||||
reflection.Release();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user