From 0534824c0706b7d3eb3eecd91d2082690e35c3ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Thu, 2 Sep 2021 12:28:36 +0200 Subject: [PATCH] Refactored SetVariable and added some more types --- GlitchyEngine/src/Renderer/Material.bf | 36 +++++++++++++------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/GlitchyEngine/src/Renderer/Material.bf b/GlitchyEngine/src/Renderer/Material.bf index 54cdbff..fb9fb21 100644 --- a/GlitchyEngine/src/Renderer/Material.bf +++ b/GlitchyEngine/src/Renderer/Material.bf @@ -102,41 +102,38 @@ namespace GlitchyEngine.Renderer *(T*)(&_rawVariables[offset]) } - public void SetVariable(String name, float value) + [Inline] + private void SetVariable(String name, T value) where T : struct { if(_variables.TryGetValue(name, let entry)) { - entry.Variable.EnsureTypeMatch(1, 1, .Float); + entry.Variable.EnsureTypeMatch(); - RawPointer!(entry.Offset) = value; + RawPointer!(entry.Offset) = value; } else { Log.EngineLogger.Assert(false, scope $"The effect doesn't contain a variable named \"{name}\""); } } + + public void SetVariable(String name, float value) => SetVariable(name, value); + public void SetVariable(String name, Vector2 value) => SetVariable(name, value); + public void SetVariable(String name, Vector3 value) => SetVariable(name, value); + public void SetVariable(String name, Vector4 value) => SetVariable(name, value); - public void SetVariable(String name, Color value) - { - if(_variables.TryGetValue(name, let entry)) - { - entry.Variable.EnsureTypeMatch(); + public void SetVariable(String name, Color value) => SetVariable(name, value); + public void SetVariable(String name, ColorRGB value) => SetVariable(name, value); + public void SetVariable(String name, ColorRGBA value) => SetVariable(name, value); - RawPointer!(entry.Offset) = (ColorRGBA)value; - } - else - { - Log.EngineLogger.Assert(false, scope $"The effect doesn't contain a variable named \"{name}\""); - } - } - public void SetVariable(String name, Matrix value) + private void SetVariable(String name, Matrix3x3 value) { if(_variables.TryGetValue(name, let entry)) { - entry.Variable.EnsureTypeMatch(); + entry.Variable.EnsureTypeMatch(); - RawPointer!(entry.Offset) = value; + RawPointer!(entry.Offset) = Matrix4x3(value); } else { @@ -144,6 +141,9 @@ namespace GlitchyEngine.Renderer } } + public void SetVariable(String name, Matrix4x3 value) => SetVariable(name, value); + public void SetVariable(String name, Matrix value) => SetVariable(name, value); + /** * Sets the raw data of the variable. * @param rawData The pointer to the raw data. If rawData is null the raw data will be set to zero.