Replace const ShaderAst::StatementPtr& by ShaderAst::Statement& in input

This commit is contained in:
Jérôme Leclercq
2021-06-14 22:31:12 +02:00
parent 54d56abc56
commit 815a7b0c62
27 changed files with 101 additions and 94 deletions

View File

@@ -872,7 +872,7 @@ std::unique_ptr<Nz::ShaderAst::DeclareFunctionStatement> ShaderGraph::ToFunction
qDebug() << shaderNode->name() << node->id();
if (auto it = variableExpressions.find(BuildKey(node->id(), portIndex)); it != variableExpressions.end())
return Nz::ShaderAst::Clone(it->second);
return Nz::ShaderAst::Clone(*it->second);
auto it = usageCount.find(BuildKey(node->id(), portIndex));
assert(it != usageCount.end());
@@ -925,7 +925,7 @@ std::unique_ptr<Nz::ShaderAst::DeclareFunctionStatement> ShaderGraph::ToFunction
else
varExpression = std::move(expression);
variableExpressions[BuildKey(node->id(), portIndex)] = Nz::ShaderAst::Clone(varExpression);
variableExpressions[BuildKey(node->id(), portIndex)] = Nz::ShaderAst::Clone(*varExpression);
return varExpression;
}

View File

@@ -66,10 +66,10 @@ void CodeOutputWidget::Refresh()
if (m_optimisationCheckbox->isChecked())
{
shaderAst = Nz::ShaderAst::Sanitize(shaderAst);
shaderAst = Nz::ShaderAst::Sanitize(*shaderAst);
Nz::ShaderAst::AstOptimizer optimiser;
shaderAst = optimiser.Optimise(shaderAst, enabledConditions);
shaderAst = optimiser.Optimise(*shaderAst, enabledConditions);
}
Nz::ShaderWriter::States states;
@@ -82,21 +82,21 @@ void CodeOutputWidget::Refresh()
case OutputLanguage::GLSL:
{
Nz::GlslWriter writer;
output = writer.Generate(ShaderGraph::ToShaderStageType(m_shaderGraph.GetType()), shaderAst, states);
output = writer.Generate(ShaderGraph::ToShaderStageType(m_shaderGraph.GetType()), *shaderAst, bindingMapping, states);
break;
}
case OutputLanguage::Nazalang:
{
Nz::LangWriter writer;
output = writer.Generate(shaderAst, states);
output = writer.Generate(*shaderAst, states);
break;
}
case OutputLanguage::SpirV:
{
Nz::SpirvWriter writer;
std::vector<std::uint32_t> spirv = writer.Generate(shaderAst, states);
std::vector<std::uint32_t> spirv = writer.Generate(*shaderAst, states);
Nz::SpirvPrinter printer;
output = printer.Print(spirv.data(), spirv.size());