Shader: Attribute can now have expressions as values and struct fields can be conditionally supported
This commit is contained in:
@@ -7,16 +7,52 @@
|
||||
|
||||
namespace Nz::ShaderAst
|
||||
{
|
||||
inline ExpressionPtr AstOptimizer::Optimise(Expression& expression)
|
||||
{
|
||||
m_options = {};
|
||||
return CloneExpression(expression);
|
||||
}
|
||||
|
||||
inline ExpressionPtr AstOptimizer::Optimise(Expression& expression, const Options& options)
|
||||
{
|
||||
m_options = options;
|
||||
return CloneExpression(expression);
|
||||
}
|
||||
|
||||
inline StatementPtr AstOptimizer::Optimise(Statement& statement)
|
||||
{
|
||||
m_options = {};
|
||||
return CloneStatement(statement);
|
||||
}
|
||||
|
||||
inline StatementPtr AstOptimizer::Optimise(Statement& statement, const Options& options)
|
||||
{
|
||||
m_options = options;
|
||||
return CloneStatement(statement);
|
||||
}
|
||||
|
||||
inline ExpressionPtr Optimize(Expression& ast)
|
||||
{
|
||||
AstOptimizer optimize;
|
||||
return optimize.Optimise(ast);
|
||||
}
|
||||
|
||||
inline ExpressionPtr Optimize(Expression& ast, const AstOptimizer::Options& options)
|
||||
{
|
||||
AstOptimizer optimize;
|
||||
return optimize.Optimise(ast, options);
|
||||
}
|
||||
|
||||
inline StatementPtr Optimize(Statement& ast)
|
||||
{
|
||||
AstOptimizer optimize;
|
||||
return optimize.Optimise(ast);
|
||||
}
|
||||
|
||||
inline StatementPtr Optimize(Statement& ast, UInt64 enabledConditions)
|
||||
inline StatementPtr Optimize(Statement& ast, const AstOptimizer::Options& options)
|
||||
{
|
||||
AstOptimizer optimize;
|
||||
return optimize.Optimise(ast, enabledConditions);
|
||||
return optimize.Optimise(ast, options);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user