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

@@ -442,26 +442,24 @@ namespace Nz
{
}
std::vector<UInt32> SpirvWriter::Generate(ShaderAst::StatementPtr& shader, const States& states)
std::vector<UInt32> SpirvWriter::Generate(ShaderAst::Statement& shader, const States& states)
{
ShaderAst::StatementPtr* targetAstPtr = &shader;
ShaderAst::Statement* targetAst = &shader;
ShaderAst::StatementPtr sanitizedAst;
if (!states.sanitized)
{
sanitizedAst = ShaderAst::Sanitize(shader);
targetAstPtr = &sanitizedAst;
targetAst = sanitizedAst.get();
}
ShaderAst::StatementPtr optimizedAst;
if (states.optimize)
{
optimizedAst = ShaderAst::Optimize(*targetAstPtr);
targetAstPtr = &optimizedAst;
optimizedAst = ShaderAst::Optimize(*targetAst);
targetAst = optimizedAst.get();
}
ShaderAst::StatementPtr& targetAst = *targetAstPtr;
m_context.states = &states;
State state;