Fix compilation
This commit is contained in:
@@ -735,6 +735,24 @@ namespace Nz::ShaderAst
|
||||
#undef EnableOptimisation
|
||||
}
|
||||
|
||||
ModulePtr AstConstantPropagationVisitor::Process(const Module& shaderModule)
|
||||
{
|
||||
ModulePtr clone = std::make_shared<Module>();
|
||||
clone->metadata = shaderModule.metadata;
|
||||
clone->rootNode = static_unique_pointer_cast<MultiStatement>(Process(*shaderModule.rootNode));
|
||||
|
||||
return clone;
|
||||
}
|
||||
|
||||
ModulePtr AstConstantPropagationVisitor::Process(const Module& shaderModule, const Options& options)
|
||||
{
|
||||
ModulePtr clone = std::make_shared<Module>();
|
||||
clone->metadata = shaderModule.metadata;
|
||||
clone->rootNode = static_unique_pointer_cast<MultiStatement>(Process(*shaderModule.rootNode, options));
|
||||
|
||||
return clone;
|
||||
}
|
||||
|
||||
ExpressionPtr AstConstantPropagationVisitor::Clone(BinaryExpression& node)
|
||||
{
|
||||
auto lhs = CloneExpression(node.left);
|
||||
|
||||
@@ -5,17 +5,33 @@
|
||||
#include <Nazara/Shader/Ast/EliminateUnusedPassVisitor.hpp>
|
||||
#include <Nazara/Core/CallOnExit.hpp>
|
||||
#include <Nazara/Shader/ShaderBuilder.hpp>
|
||||
#include <Nazara/Shader/Ast/AstRecursiveVisitor.hpp>
|
||||
#include <unordered_map>
|
||||
#include <Nazara/Shader/Debug.hpp>
|
||||
|
||||
namespace Nz::ShaderAst
|
||||
{
|
||||
namespace
|
||||
{
|
||||
template<typename T, typename U>
|
||||
std::unique_ptr<T> static_unique_pointer_cast(std::unique_ptr<U>&& ptr)
|
||||
{
|
||||
return std::unique_ptr<T>(static_cast<T*>(ptr.release()));
|
||||
}
|
||||
}
|
||||
|
||||
struct EliminateUnusedPassVisitor::Context
|
||||
{
|
||||
const DependencyCheckerVisitor::UsageSet& usageSet;
|
||||
};
|
||||
|
||||
ModulePtr EliminateUnusedPassVisitor::Process(const Module& shaderModule, const DependencyCheckerVisitor::UsageSet& usageSet)
|
||||
{
|
||||
ModulePtr clone = std::make_shared<Module>();
|
||||
clone->metadata = shaderModule.metadata;
|
||||
clone->rootNode = static_unique_pointer_cast<MultiStatement>(Process(*shaderModule.rootNode, usageSet));
|
||||
|
||||
return clone;
|
||||
}
|
||||
|
||||
StatementPtr EliminateUnusedPassVisitor::Process(Statement& statement, const DependencyCheckerVisitor::UsageSet& usageSet)
|
||||
{
|
||||
Context context{
|
||||
|
||||
@@ -112,7 +112,7 @@ namespace Nz::ShaderAst
|
||||
std::vector<StatementPtr>* currentStatementList = nullptr;
|
||||
};
|
||||
|
||||
ModulePtr SanitizeVisitor::Sanitize(Module& module, const Options& options, std::string* error)
|
||||
ModulePtr SanitizeVisitor::Sanitize(const Module& module, const Options& options, std::string* error)
|
||||
{
|
||||
ModulePtr clone = std::make_shared<Module>();
|
||||
clone->shaderLangVersion = module.shaderLangVersion;
|
||||
|
||||
Reference in New Issue
Block a user