Shader: Better fix than 3ccec0ce

This commit is contained in:
Jérôme Leclercq 2022-03-09 08:08:23 +01:00
parent 3c290c1d0e
commit 1401c46d44
3 changed files with 4 additions and 6 deletions

View File

@ -887,11 +887,9 @@ namespace Nz::ShaderAst
}
if (node.returnType.HasValue())
{
clone->returnType = ResolveType(node.returnType);
if (clone->returnType.HasValue() && IsNoType(clone->returnType.GetResultingValue()))
clone->returnType.Reset(); //< handle void as no return type
}
else
clone->returnType = ExpressionType{ NoType{} };
if (node.depthWrite.HasValue())
clone->depthWrite = ComputeExprValue(node.depthWrite);

View File

@ -727,7 +727,7 @@ namespace Nz
AppendLine();
}
if (node.returnType.HasValue())
if (node.returnType.HasValue() && !IsNoType(node.returnType.GetResultingValue()))
{
assert(std::holds_alternative<ShaderAst::StructType>(node.returnType.GetResultingValue()));
std::size_t outputStructIndex = std::get<ShaderAst::StructType>(node.returnType.GetResultingValue()).structIndex;

View File

@ -280,7 +280,7 @@ namespace Nz
std::optional<UInt32> outputStructId;
std::vector<EntryPoint::Output> outputs;
if (node.returnType.HasValue())
if (node.returnType.HasValue() && !IsNoType(node.returnType.GetResultingValue()))
{
const ShaderAst::ExpressionType& returnType = node.returnType.GetResultingValue();