mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
cbuffers now initialized with default values from shader
This commit is contained in:
@@ -88,8 +88,6 @@ namespace GlitchyEngine
|
|||||||
{
|
{
|
||||||
_vertexShader = Shader.FromFile!<VertexShader>(_window.Context, "content\\basicShader.hlsl", "VS");
|
_vertexShader = Shader.FromFile!<VertexShader>(_window.Context, "content\\basicShader.hlsl", "VS");
|
||||||
|
|
||||||
_vertexShader.Buffers[0].SetData(Matrix.Identity);
|
|
||||||
|
|
||||||
// Create Input Layout
|
// Create Input Layout
|
||||||
|
|
||||||
_vertexLayout = new VertexLayout(_window.Context, new .(
|
_vertexLayout = new VertexLayout(_window.Context, new .(
|
||||||
|
|||||||
@@ -67,7 +67,25 @@ namespace GlitchyEngine.Renderer
|
|||||||
{
|
{
|
||||||
GlitchyEngine.Renderer.BufferDescription cBufferDesc = .(bufferDesc.Size, .Constant, .Dynamic, .Write);
|
GlitchyEngine.Renderer.BufferDescription cBufferDesc = .(bufferDesc.Size, .Constant, .Dynamic, .Write);
|
||||||
|
|
||||||
_buffers.Add(bindDesc.BindPoint, StringView(bufferDesc.Name), new Buffer(_context, cBufferDesc), true);
|
let buffer = new Buffer(_context, cBufferDesc);
|
||||||
|
|
||||||
|
_buffers.Add(bindDesc.BindPoint, StringView(bufferDesc.Name), buffer, true);
|
||||||
|
|
||||||
|
// Buffer for default values
|
||||||
|
uint8* rawData = new:ScopedAlloc! uint8[bufferDesc.Size]*;
|
||||||
|
|
||||||
|
// Get default values
|
||||||
|
for(uint32 variable < bufferDesc.Variables)
|
||||||
|
{
|
||||||
|
let variableReflection = bufferReflection.GetVariableByIndex(variable);
|
||||||
|
|
||||||
|
variableReflection.GetDescription(let varDesc);
|
||||||
|
|
||||||
|
if(varDesc.DefaultValue != null)
|
||||||
|
Internal.MemCpy(rawData + varDesc.StartOffset, varDesc.DefaultValue, varDesc.Size);
|
||||||
|
}
|
||||||
|
|
||||||
|
buffer.SetData(Span<uint8>(rawData, bufferDesc.Size));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
reflection.Release();
|
reflection.Release();
|
||||||
|
|||||||
Reference in New Issue
Block a user