From b441bab218402c23b3b867f6693af6b19d21e917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Leclercq?= Date: Wed, 22 Jul 2020 14:45:40 +0200 Subject: [PATCH] Renderer/ShaderNodes: Fix BinOp expression type --- src/Nazara/Renderer/ShaderNodes.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/Nazara/Renderer/ShaderNodes.cpp b/src/Nazara/Renderer/ShaderNodes.cpp index 794e1217a..ddf5e09c7 100644 --- a/src/Nazara/Renderer/ShaderNodes.cpp +++ b/src/Nazara/Renderer/ShaderNodes.cpp @@ -104,8 +104,25 @@ namespace Nz::ShaderNodes const ShaderExpressionType& rightExprType = right->GetExpressionType(); assert(std::holds_alternative(rightExprType)); - //FIXME - exprType = static_cast(std::max(UnderlyingCast(std::get(leftExprType)), UnderlyingCast(std::get(rightExprType)))); + switch (std::get(leftExprType)) + { + case BasicType::Boolean: + case BasicType::Float2: + case BasicType::Float3: + case BasicType::Float4: + exprType = leftExprType; + break; + + case BasicType::Float1: + case BasicType::Mat4x4: + exprType = rightExprType; + break; + + case BasicType::Sampler2D: + case BasicType::Void: + break; + } + break; }