From 64579f9603a5c6096e1fdc764fa2a16bd6d56a4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Sun, 30 May 2021 19:38:08 +0200 Subject: [PATCH] Constantbuffer now supports single bools --- .../src/Platform/DX11/Renderer/Dx11ConstantBuffer.bf | 2 ++ GlitchyEngine/src/Renderer/BufferVariable.bf | 7 +++++++ GlitchyEngine/src/Renderer/ConstantBuffer.bf | 1 + 3 files changed, 10 insertions(+) diff --git a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11ConstantBuffer.bf b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11ConstantBuffer.bf index 494a4fc..7984ab5 100644 --- a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11ConstantBuffer.bf +++ b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11ConstantBuffer.bf @@ -27,6 +27,8 @@ namespace GlitchyEngine.Renderer switch(shaderTypeDescription.Type) { + case .Bool: + _type = .Bool; case .Float: _type = .Float; default: diff --git a/GlitchyEngine/src/Renderer/BufferVariable.bf b/GlitchyEngine/src/Renderer/BufferVariable.bf index 16bc74d..f75d693 100644 --- a/GlitchyEngine/src/Renderer/BufferVariable.bf +++ b/GlitchyEngine/src/Renderer/BufferVariable.bf @@ -58,6 +58,13 @@ namespace GlitchyEngine.Renderer Log.EngineLogger.Warning($"The types do not match: Expected \"{_type}\" but Received \"{type}\" instead. Variable: \"{_name}\" of buffer: \"{_constantBuffer.Name}\""); #endif } + + public void SetData(bool value) + { + EnsureTypeMatch(1, 1, .Bool); + + *(bool*)firstByte = value; + } public void SetData(float value) { diff --git a/GlitchyEngine/src/Renderer/ConstantBuffer.bf b/GlitchyEngine/src/Renderer/ConstantBuffer.bf index 2879375..ac7a6e3 100644 --- a/GlitchyEngine/src/Renderer/ConstantBuffer.bf +++ b/GlitchyEngine/src/Renderer/ConstantBuffer.bf @@ -99,6 +99,7 @@ namespace GlitchyEngine.Renderer public enum ShaderVariableType { + Bool, Float, // todo }