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

@@ -45,9 +45,6 @@ namespace Nz::ShaderAst
if (!Compare(lhs.identifier, rhs.identifier))
return false;
if (!Compare(lhs.dependencies, rhs.dependencies))
return false;
if (!Compare(*lhs.module, *rhs.module))
return false;

View File

@@ -22,11 +22,12 @@ namespace Nz::ShaderAst
class Module
{
public:
struct ImportedModule;
struct Metadata;
inline Module(UInt32 shaderLangVersion, const Uuid& moduleId = Uuid::Generate());
inline Module(std::shared_ptr<const Metadata> metadata);
inline Module(std::shared_ptr<const Metadata> metadata, MultiStatementPtr rootNode);
inline Module(std::shared_ptr<const Metadata> metadata, std::vector<ImportedModule> importedModules = {});
inline Module(std::shared_ptr<const Metadata> metadata, MultiStatementPtr rootNode, std::vector<ImportedModule> importedModules = {});
Module(const Module&) = default;
Module(Module&&) noexcept = default;
~Module() = default;
@@ -37,7 +38,6 @@ namespace Nz::ShaderAst
struct ImportedModule
{
std::string identifier;
std::vector<Uuid> dependencies;
ModulePtr module;
};

View File

@@ -18,13 +18,14 @@ namespace Nz::ShaderAst
rootNode = ShaderBuilder::MultiStatement();
}
inline Module::Module(std::shared_ptr<const Metadata> metadata) :
Module(std::move(metadata), ShaderBuilder::MultiStatement())
inline Module::Module(std::shared_ptr<const Metadata> metadata, std::vector<ImportedModule> importedModules) :
Module(std::move(metadata), ShaderBuilder::MultiStatement(), std::move(importedModules))
{
}
inline Module::Module(std::shared_ptr<const Metadata> Metadata, MultiStatementPtr RootNode) :
inline Module::Module(std::shared_ptr<const Metadata> Metadata, MultiStatementPtr RootNode, std::vector<ImportedModule> ImportedModules) :
metadata(std::move(Metadata)),
importedModules(std::move(ImportedModules)),
rootNode(std::move(RootNode))
{
}