Shader: Minor module fixes

This commit is contained in:
Jérôme Leclercq
2022-03-09 20:05:10 +01:00
parent da40a2db28
commit 39a2992791
11 changed files with 83 additions and 62 deletions

View File

@@ -739,14 +739,14 @@ namespace Nz::ShaderAst
{
auto rootnode = static_unique_pointer_cast<MultiStatement>(Process(*shaderModule.rootNode));
return std::make_shared<Module>(shaderModule.metadata, std::move(rootnode));
return std::make_shared<Module>(shaderModule.metadata, std::move(rootnode), shaderModule.importedModules);
}
ModulePtr AstConstantPropagationVisitor::Process(const Module& shaderModule, const Options& options)
{
auto rootNode = static_unique_pointer_cast<MultiStatement>(Process(*shaderModule.rootNode, options));
return std::make_shared<Module>(shaderModule.metadata, std::move(rootNode));
return std::make_shared<Module>(shaderModule.metadata, std::move(rootNode), shaderModule.importedModules);
}
ExpressionPtr AstConstantPropagationVisitor::Clone(BinaryExpression& node)

View File

@@ -27,7 +27,7 @@ namespace Nz::ShaderAst
{
auto rootNode = static_unique_pointer_cast<MultiStatement>(Process(*shaderModule.rootNode, usageSet));
return std::make_shared<Module>(shaderModule.metadata, std::move(rootNode));
return std::make_shared<Module>(shaderModule.metadata, std::move(rootNode), shaderModule.importedModules);
}
StatementPtr EliminateUnusedPassVisitor::Process(Statement& statement, const DependencyCheckerVisitor::UsageSet& usageSet)

View File

@@ -163,8 +163,7 @@ namespace Nz::ShaderAst
ModulePtr SanitizeVisitor::Sanitize(const Module& module, const Options& options, std::string* error)
{
ModulePtr clone = std::make_shared<Module>(module.metadata);
clone->importedModules = module.importedModules;
ModulePtr clone = std::make_shared<Module>(module.metadata, module.importedModules);
Context currentContext;
currentContext.options = options;