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; }