Shader: Remove struct and functions that aren't required

This commit is contained in:
Jérôme Leclercq
2022-03-12 15:43:25 +01:00
parent d29876f448
commit 33554cf5a0
2 changed files with 287 additions and 3 deletions

View File

@@ -225,6 +225,19 @@ namespace Nz::ShaderAst
if (!clone->rootNode)
return {};
// Remove unused statements of imported modules
for (std::size_t moduleId = 0; moduleId < clone->importedModules.size(); ++moduleId)
{
auto& moduleData = m_context->modules[moduleId];
auto& importedModule = clone->importedModules[moduleId];
if (moduleData.dependenciesVisitor)
{
moduleData.dependenciesVisitor->Resolve();
importedModule.module = EliminateUnusedPass(*importedModule.module, moduleData.dependenciesVisitor->GetUsage());
}
}
return clone;
}