Shader: Rename ConstantIndexExpression to ConstantExpression
This commit is contained in:
parent
3a31c77524
commit
996b5ef85c
|
|
@ -46,7 +46,7 @@ namespace Nz::ShaderAst
|
||||||
virtual ExpressionPtr Clone(CallMethodExpression& node);
|
virtual ExpressionPtr Clone(CallMethodExpression& node);
|
||||||
virtual ExpressionPtr Clone(CastExpression& node);
|
virtual ExpressionPtr Clone(CastExpression& node);
|
||||||
virtual ExpressionPtr Clone(ConditionalExpression& node);
|
virtual ExpressionPtr Clone(ConditionalExpression& node);
|
||||||
virtual ExpressionPtr Clone(ConstantIndexExpression& node);
|
virtual ExpressionPtr Clone(ConstantExpression& node);
|
||||||
virtual ExpressionPtr Clone(ConstantValueExpression& node);
|
virtual ExpressionPtr Clone(ConstantValueExpression& node);
|
||||||
virtual ExpressionPtr Clone(IdentifierExpression& node);
|
virtual ExpressionPtr Clone(IdentifierExpression& node);
|
||||||
virtual ExpressionPtr Clone(IntrinsicExpression& node);
|
virtual ExpressionPtr Clone(IntrinsicExpression& node);
|
||||||
|
|
|
||||||
|
|
@ -34,8 +34,8 @@ NAZARA_SHADERAST_EXPRESSION(CallFunctionExpression)
|
||||||
NAZARA_SHADERAST_EXPRESSION(CallMethodExpression)
|
NAZARA_SHADERAST_EXPRESSION(CallMethodExpression)
|
||||||
NAZARA_SHADERAST_EXPRESSION(CastExpression)
|
NAZARA_SHADERAST_EXPRESSION(CastExpression)
|
||||||
NAZARA_SHADERAST_EXPRESSION(ConditionalExpression)
|
NAZARA_SHADERAST_EXPRESSION(ConditionalExpression)
|
||||||
|
NAZARA_SHADERAST_EXPRESSION(ConstantExpression)
|
||||||
NAZARA_SHADERAST_EXPRESSION(ConstantValueExpression)
|
NAZARA_SHADERAST_EXPRESSION(ConstantValueExpression)
|
||||||
NAZARA_SHADERAST_EXPRESSION(ConstantIndexExpression)
|
|
||||||
NAZARA_SHADERAST_EXPRESSION(IdentifierExpression)
|
NAZARA_SHADERAST_EXPRESSION(IdentifierExpression)
|
||||||
NAZARA_SHADERAST_EXPRESSION(IntrinsicExpression)
|
NAZARA_SHADERAST_EXPRESSION(IntrinsicExpression)
|
||||||
NAZARA_SHADERAST_EXPRESSION(SwizzleExpression)
|
NAZARA_SHADERAST_EXPRESSION(SwizzleExpression)
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ namespace Nz::ShaderAst
|
||||||
ExpressionPtr Clone(BinaryExpression& node) override;
|
ExpressionPtr Clone(BinaryExpression& node) override;
|
||||||
ExpressionPtr Clone(CastExpression& node) override;
|
ExpressionPtr Clone(CastExpression& node) override;
|
||||||
ExpressionPtr Clone(ConditionalExpression& node) override;
|
ExpressionPtr Clone(ConditionalExpression& node) override;
|
||||||
ExpressionPtr Clone(ConstantIndexExpression& node) override;
|
ExpressionPtr Clone(ConstantExpression& node) override;
|
||||||
ExpressionPtr Clone(UnaryExpression& node) override;
|
ExpressionPtr Clone(UnaryExpression& node) override;
|
||||||
StatementPtr Clone(BranchStatement& node) override;
|
StatementPtr Clone(BranchStatement& node) override;
|
||||||
StatementPtr Clone(ConditionalStatement& node) override;
|
StatementPtr Clone(ConditionalStatement& node) override;
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ namespace Nz::ShaderAst
|
||||||
void Visit(CastExpression& node) override;
|
void Visit(CastExpression& node) override;
|
||||||
void Visit(ConditionalExpression& node) override;
|
void Visit(ConditionalExpression& node) override;
|
||||||
void Visit(ConstantValueExpression& node) override;
|
void Visit(ConstantValueExpression& node) override;
|
||||||
void Visit(ConstantIndexExpression& node) override;
|
void Visit(ConstantExpression& node) override;
|
||||||
void Visit(IdentifierExpression& node) override;
|
void Visit(IdentifierExpression& node) override;
|
||||||
void Visit(IntrinsicExpression& node) override;
|
void Visit(IntrinsicExpression& node) override;
|
||||||
void Visit(SwizzleExpression& node) override;
|
void Visit(SwizzleExpression& node) override;
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ namespace Nz::ShaderAst
|
||||||
void Serialize(CallFunctionExpression& node);
|
void Serialize(CallFunctionExpression& node);
|
||||||
void Serialize(CallMethodExpression& node);
|
void Serialize(CallMethodExpression& node);
|
||||||
void Serialize(CastExpression& node);
|
void Serialize(CastExpression& node);
|
||||||
void Serialize(ConstantIndexExpression& node);
|
void Serialize(ConstantExpression& node);
|
||||||
void Serialize(ConditionalExpression& node);
|
void Serialize(ConditionalExpression& node);
|
||||||
void Serialize(ConstantValueExpression& node);
|
void Serialize(ConstantValueExpression& node);
|
||||||
void Serialize(IdentifierExpression& node);
|
void Serialize(IdentifierExpression& node);
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ namespace Nz::ShaderAst
|
||||||
void Visit(CastExpression& node) override;
|
void Visit(CastExpression& node) override;
|
||||||
void Visit(ConditionalExpression& node) override;
|
void Visit(ConditionalExpression& node) override;
|
||||||
void Visit(ConstantValueExpression& node) override;
|
void Visit(ConstantValueExpression& node) override;
|
||||||
void Visit(ConstantIndexExpression& node) override;
|
void Visit(ConstantExpression& node) override;
|
||||||
void Visit(IdentifierExpression& node) override;
|
void Visit(IdentifierExpression& node) override;
|
||||||
void Visit(IntrinsicExpression& node) override;
|
void Visit(IntrinsicExpression& node) override;
|
||||||
void Visit(SwizzleExpression& node) override;
|
void Visit(SwizzleExpression& node) override;
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,14 @@ namespace Nz::ShaderAst
|
||||||
ExpressionPtr truePath;
|
ExpressionPtr truePath;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct NAZARA_SHADER_API ConstantExpression : Expression
|
||||||
|
{
|
||||||
|
NodeType GetType() const override;
|
||||||
|
void Visit(AstExpressionVisitor& visitor) override;
|
||||||
|
|
||||||
|
std::size_t constantId;
|
||||||
|
};
|
||||||
|
|
||||||
struct NAZARA_SHADER_API ConstantValueExpression : Expression
|
struct NAZARA_SHADER_API ConstantValueExpression : Expression
|
||||||
{
|
{
|
||||||
NodeType GetType() const override;
|
NodeType GetType() const override;
|
||||||
|
|
@ -148,14 +156,6 @@ namespace Nz::ShaderAst
|
||||||
ShaderAst::ConstantValue value;
|
ShaderAst::ConstantValue value;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct NAZARA_SHADER_API ConstantIndexExpression : Expression
|
|
||||||
{
|
|
||||||
NodeType GetType() const override;
|
|
||||||
void Visit(AstExpressionVisitor& visitor) override;
|
|
||||||
|
|
||||||
std::size_t constantId;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct NAZARA_SHADER_API IdentifierExpression : Expression
|
struct NAZARA_SHADER_API IdentifierExpression : Expression
|
||||||
{
|
{
|
||||||
NodeType GetType() const override;
|
NodeType GetType() const override;
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ namespace Nz::ShaderAst
|
||||||
ExpressionPtr Clone(CastExpression& node) override;
|
ExpressionPtr Clone(CastExpression& node) override;
|
||||||
ExpressionPtr Clone(ConditionalExpression& node) override;
|
ExpressionPtr Clone(ConditionalExpression& node) override;
|
||||||
ExpressionPtr Clone(ConstantValueExpression& node) override;
|
ExpressionPtr Clone(ConstantValueExpression& node) override;
|
||||||
ExpressionPtr Clone(ConstantIndexExpression& node) override;
|
ExpressionPtr Clone(ConstantExpression& node) override;
|
||||||
ExpressionPtr Clone(IdentifierExpression& node) override;
|
ExpressionPtr Clone(IdentifierExpression& node) override;
|
||||||
ExpressionPtr Clone(IntrinsicExpression& node) override;
|
ExpressionPtr Clone(IntrinsicExpression& node) override;
|
||||||
ExpressionPtr Clone(SwizzleExpression& node) override;
|
ExpressionPtr Clone(SwizzleExpression& node) override;
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,7 @@ namespace Nz
|
||||||
void Visit(ShaderAst::CastExpression& node) override;
|
void Visit(ShaderAst::CastExpression& node) override;
|
||||||
void Visit(ShaderAst::ConditionalExpression& node) override;
|
void Visit(ShaderAst::ConditionalExpression& node) override;
|
||||||
void Visit(ShaderAst::ConstantValueExpression& node) override;
|
void Visit(ShaderAst::ConstantValueExpression& node) override;
|
||||||
void Visit(ShaderAst::ConstantIndexExpression& node) override;
|
void Visit(ShaderAst::ConstantExpression& node) override;
|
||||||
void Visit(ShaderAst::IntrinsicExpression& node) override;
|
void Visit(ShaderAst::IntrinsicExpression& node) override;
|
||||||
void Visit(ShaderAst::SwizzleExpression& node) override;
|
void Visit(ShaderAst::SwizzleExpression& node) override;
|
||||||
void Visit(ShaderAst::VariableExpression& node) override;
|
void Visit(ShaderAst::VariableExpression& node) override;
|
||||||
|
|
|
||||||
|
|
@ -303,9 +303,9 @@ namespace Nz::ShaderAst
|
||||||
return clone;
|
return clone;
|
||||||
}
|
}
|
||||||
|
|
||||||
ExpressionPtr AstCloner::Clone(ConstantIndexExpression& node)
|
ExpressionPtr AstCloner::Clone(ConstantExpression& node)
|
||||||
{
|
{
|
||||||
auto clone = std::make_unique<ConstantIndexExpression>();
|
auto clone = std::make_unique<ConstantExpression>();
|
||||||
clone->constantId = node.constantId;
|
clone->constantId = node.constantId;
|
||||||
|
|
||||||
clone->cachedExpressionType = node.cachedExpressionType;
|
clone->cachedExpressionType = node.cachedExpressionType;
|
||||||
|
|
|
||||||
|
|
@ -839,7 +839,7 @@ namespace Nz::ShaderAst
|
||||||
return AstCloner::Clone(*node.falsePath);
|
return AstCloner::Clone(*node.falsePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
ExpressionPtr AstOptimizer::Clone(ConstantIndexExpression& node)
|
ExpressionPtr AstOptimizer::Clone(ConstantExpression& node)
|
||||||
{
|
{
|
||||||
if (!m_options.constantQueryCallback)
|
if (!m_options.constantQueryCallback)
|
||||||
return AstCloner::Clone(node);
|
return AstCloner::Clone(node);
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ namespace Nz::ShaderAst
|
||||||
/* Nothing to do */
|
/* Nothing to do */
|
||||||
}
|
}
|
||||||
|
|
||||||
void AstRecursiveVisitor::Visit(ConstantIndexExpression& /*node*/)
|
void AstRecursiveVisitor::Visit(ConstantExpression& /*node*/)
|
||||||
{
|
{
|
||||||
/* Nothing to do */
|
/* Nothing to do */
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,7 @@ namespace Nz::ShaderAst
|
||||||
Node(expr);
|
Node(expr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AstSerializerBase::Serialize(ConstantIndexExpression& node)
|
void AstSerializerBase::Serialize(ConstantExpression& node)
|
||||||
{
|
{
|
||||||
SizeT(node.constantId);
|
SizeT(node.constantId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ namespace Nz::ShaderAst
|
||||||
m_expressionCategory = ExpressionCategory::RValue;
|
m_expressionCategory = ExpressionCategory::RValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShaderAstValueCategory::Visit(ConstantIndexExpression& /*node*/)
|
void ShaderAstValueCategory::Visit(ConstantExpression& /*node*/)
|
||||||
{
|
{
|
||||||
m_expressionCategory = ExpressionCategory::LValue;
|
m_expressionCategory = ExpressionCategory::LValue;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -577,7 +577,7 @@ namespace Nz::ShaderAst
|
||||||
return clone;
|
return clone;
|
||||||
}
|
}
|
||||||
|
|
||||||
ExpressionPtr SanitizeVisitor::Clone(ConstantIndexExpression& node)
|
ExpressionPtr SanitizeVisitor::Clone(ConstantExpression& node)
|
||||||
{
|
{
|
||||||
if (node.constantId >= m_context->constantValues.size())
|
if (node.constantId >= m_context->constantValues.size())
|
||||||
throw AstError{ "invalid constant index " + std::to_string(node.constantId) };
|
throw AstError{ "invalid constant index " + std::to_string(node.constantId) };
|
||||||
|
|
@ -601,8 +601,8 @@ namespace Nz::ShaderAst
|
||||||
{
|
{
|
||||||
case Identifier::Type::Constant:
|
case Identifier::Type::Constant:
|
||||||
{
|
{
|
||||||
// Replace IdentifierExpression by ConstantIndexExpression
|
// Replace IdentifierExpression by ConstantExpression
|
||||||
auto constantExpr = std::make_unique<ConstantIndexExpression>();
|
auto constantExpr = std::make_unique<ConstantExpression>();
|
||||||
constantExpr->cachedExpressionType = GetExpressionType(m_context->constantValues[identifier->index]);
|
constantExpr->cachedExpressionType = GetExpressionType(m_context->constantValues[identifier->index]);
|
||||||
constantExpr->constantId = identifier->index;
|
constantExpr->constantId = identifier->index;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -664,7 +664,7 @@ namespace Nz
|
||||||
}, node.value);
|
}, node.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LangWriter::Visit(ShaderAst::ConstantIndexExpression& node)
|
void LangWriter::Visit(ShaderAst::ConstantExpression& node)
|
||||||
{
|
{
|
||||||
Append(Retrieve(m_currentState->constantNames, node.constantId));
|
Append(Retrieve(m_currentState->constantNames, node.constantId));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue