diff --git a/include/Nazara/Shader/Ast/AstCloner.hpp b/include/Nazara/Shader/Ast/AstCloner.hpp index d92c41510..f5b0d8f2b 100644 --- a/include/Nazara/Shader/Ast/AstCloner.hpp +++ b/include/Nazara/Shader/Ast/AstCloner.hpp @@ -47,7 +47,7 @@ namespace Nz::ShaderAst virtual ExpressionPtr Clone(CastExpression& node); virtual ExpressionPtr Clone(ConditionalExpression& node); virtual ExpressionPtr Clone(ConstantIndexExpression& node); - virtual ExpressionPtr Clone(ConstantExpression& node); + virtual ExpressionPtr Clone(ConstantValueExpression& node); virtual ExpressionPtr Clone(IdentifierExpression& node); virtual ExpressionPtr Clone(IntrinsicExpression& node); virtual ExpressionPtr Clone(SwizzleExpression& node); diff --git a/include/Nazara/Shader/Ast/AstNodeList.hpp b/include/Nazara/Shader/Ast/AstNodeList.hpp index 84f7a774e..b9ea3f1f5 100644 --- a/include/Nazara/Shader/Ast/AstNodeList.hpp +++ b/include/Nazara/Shader/Ast/AstNodeList.hpp @@ -34,7 +34,7 @@ NAZARA_SHADERAST_EXPRESSION(CallFunctionExpression) NAZARA_SHADERAST_EXPRESSION(CallMethodExpression) NAZARA_SHADERAST_EXPRESSION(CastExpression) NAZARA_SHADERAST_EXPRESSION(ConditionalExpression) -NAZARA_SHADERAST_EXPRESSION(ConstantExpression) +NAZARA_SHADERAST_EXPRESSION(ConstantValueExpression) NAZARA_SHADERAST_EXPRESSION(ConstantIndexExpression) NAZARA_SHADERAST_EXPRESSION(IdentifierExpression) NAZARA_SHADERAST_EXPRESSION(IntrinsicExpression) diff --git a/include/Nazara/Shader/Ast/AstOptimizer.hpp b/include/Nazara/Shader/Ast/AstOptimizer.hpp index 9b541e504..c2c363c62 100644 --- a/include/Nazara/Shader/Ast/AstOptimizer.hpp +++ b/include/Nazara/Shader/Ast/AstOptimizer.hpp @@ -48,9 +48,9 @@ namespace Nz::ShaderAst StatementPtr Clone(BranchStatement& node) override; StatementPtr Clone(ConditionalStatement& node) override; - template ExpressionPtr PropagateBinaryConstant(std::unique_ptr&& lhs, std::unique_ptr&& rhs); - template ExpressionPtr PropagateSingleValueCast(std::unique_ptr&& operand); - template ExpressionPtr PropagateUnaryConstant(std::unique_ptr&& operand); + template ExpressionPtr PropagateBinaryConstant(std::unique_ptr&& lhs, std::unique_ptr&& rhs); + template ExpressionPtr PropagateSingleValueCast(std::unique_ptr&& operand); + template ExpressionPtr PropagateUnaryConstant(std::unique_ptr&& operand); template ExpressionPtr PropagateVec2Cast(TargetType v1, TargetType v2); template ExpressionPtr PropagateVec3Cast(TargetType v1, TargetType v2, TargetType v3); template ExpressionPtr PropagateVec4Cast(TargetType v1, TargetType v2, TargetType v3, TargetType v4); diff --git a/include/Nazara/Shader/Ast/AstRecursiveVisitor.hpp b/include/Nazara/Shader/Ast/AstRecursiveVisitor.hpp index b5e20b6b0..60196db9a 100644 --- a/include/Nazara/Shader/Ast/AstRecursiveVisitor.hpp +++ b/include/Nazara/Shader/Ast/AstRecursiveVisitor.hpp @@ -28,7 +28,7 @@ namespace Nz::ShaderAst void Visit(CallMethodExpression& node) override; void Visit(CastExpression& node) override; void Visit(ConditionalExpression& node) override; - void Visit(ConstantExpression& node) override; + void Visit(ConstantValueExpression& node) override; void Visit(ConstantIndexExpression& node) override; void Visit(IdentifierExpression& node) override; void Visit(IntrinsicExpression& node) override; diff --git a/include/Nazara/Shader/Ast/AstSerializer.hpp b/include/Nazara/Shader/Ast/AstSerializer.hpp index b1b1f4953..ec034eac8 100644 --- a/include/Nazara/Shader/Ast/AstSerializer.hpp +++ b/include/Nazara/Shader/Ast/AstSerializer.hpp @@ -32,7 +32,7 @@ namespace Nz::ShaderAst void Serialize(CastExpression& node); void Serialize(ConstantIndexExpression& node); void Serialize(ConditionalExpression& node); - void Serialize(ConstantExpression& node); + void Serialize(ConstantValueExpression& node); void Serialize(IdentifierExpression& node); void Serialize(IntrinsicExpression& node); void Serialize(SwizzleExpression& node); diff --git a/include/Nazara/Shader/Ast/AstUtils.hpp b/include/Nazara/Shader/Ast/AstUtils.hpp index ef61e3286..27cba6d66 100644 --- a/include/Nazara/Shader/Ast/AstUtils.hpp +++ b/include/Nazara/Shader/Ast/AstUtils.hpp @@ -39,7 +39,7 @@ namespace Nz::ShaderAst void Visit(CallMethodExpression& node) override; void Visit(CastExpression& node) override; void Visit(ConditionalExpression& node) override; - void Visit(ConstantExpression& node) override; + void Visit(ConstantValueExpression& node) override; void Visit(ConstantIndexExpression& node) override; void Visit(IdentifierExpression& node) override; void Visit(IntrinsicExpression& node) override; diff --git a/include/Nazara/Shader/Ast/Nodes.hpp b/include/Nazara/Shader/Ast/Nodes.hpp index 09f7359a6..79fa65fdc 100644 --- a/include/Nazara/Shader/Ast/Nodes.hpp +++ b/include/Nazara/Shader/Ast/Nodes.hpp @@ -140,7 +140,7 @@ namespace Nz::ShaderAst ExpressionPtr truePath; }; - struct NAZARA_SHADER_API ConstantExpression : Expression + struct NAZARA_SHADER_API ConstantValueExpression : Expression { NodeType GetType() const override; void Visit(AstExpressionVisitor& visitor) override; diff --git a/include/Nazara/Shader/Ast/SanitizeVisitor.hpp b/include/Nazara/Shader/Ast/SanitizeVisitor.hpp index 2babeffae..cf12359d6 100644 --- a/include/Nazara/Shader/Ast/SanitizeVisitor.hpp +++ b/include/Nazara/Shader/Ast/SanitizeVisitor.hpp @@ -54,7 +54,7 @@ namespace Nz::ShaderAst ExpressionPtr Clone(CallFunctionExpression& node) override; ExpressionPtr Clone(CastExpression& node) override; ExpressionPtr Clone(ConditionalExpression& node) override; - ExpressionPtr Clone(ConstantExpression& node) override; + ExpressionPtr Clone(ConstantValueExpression& node) override; ExpressionPtr Clone(ConstantIndexExpression& node) override; ExpressionPtr Clone(IdentifierExpression& node) override; ExpressionPtr Clone(IntrinsicExpression& node) override; diff --git a/include/Nazara/Shader/GlslWriter.hpp b/include/Nazara/Shader/GlslWriter.hpp index 92980bcd9..2629bb918 100644 --- a/include/Nazara/Shader/GlslWriter.hpp +++ b/include/Nazara/Shader/GlslWriter.hpp @@ -86,7 +86,7 @@ namespace Nz void Visit(ShaderAst::BinaryExpression& node) override; void Visit(ShaderAst::CallFunctionExpression& node) override; void Visit(ShaderAst::CastExpression& node) override; - void Visit(ShaderAst::ConstantExpression& node) override; + void Visit(ShaderAst::ConstantValueExpression& node) override; void Visit(ShaderAst::IntrinsicExpression& node) override; void Visit(ShaderAst::SwizzleExpression& node) override; void Visit(ShaderAst::VariableExpression& node) override; diff --git a/include/Nazara/Shader/LangWriter.hpp b/include/Nazara/Shader/LangWriter.hpp index 97e5d8b90..96106810b 100644 --- a/include/Nazara/Shader/LangWriter.hpp +++ b/include/Nazara/Shader/LangWriter.hpp @@ -89,7 +89,7 @@ namespace Nz void Visit(ShaderAst::BinaryExpression& node) override; void Visit(ShaderAst::CastExpression& node) override; void Visit(ShaderAst::ConditionalExpression& node) override; - void Visit(ShaderAst::ConstantExpression& node) override; + void Visit(ShaderAst::ConstantValueExpression& node) override; void Visit(ShaderAst::ConstantIndexExpression& node) override; void Visit(ShaderAst::IntrinsicExpression& node) override; void Visit(ShaderAst::SwizzleExpression& node) override; diff --git a/include/Nazara/Shader/ShaderBuilder.hpp b/include/Nazara/Shader/ShaderBuilder.hpp index 66f3da267..4fcd7e3cc 100644 --- a/include/Nazara/Shader/ShaderBuilder.hpp +++ b/include/Nazara/Shader/ShaderBuilder.hpp @@ -68,7 +68,7 @@ namespace Nz::ShaderBuilder struct Constant { - inline std::unique_ptr operator()(ShaderAst::ConstantValue value) const; + inline std::unique_ptr operator()(ShaderAst::ConstantValue value) const; }; struct DeclareConst diff --git a/include/Nazara/Shader/ShaderBuilder.inl b/include/Nazara/Shader/ShaderBuilder.inl index f13698d28..f47edd8dc 100644 --- a/include/Nazara/Shader/ShaderBuilder.inl +++ b/include/Nazara/Shader/ShaderBuilder.inl @@ -132,9 +132,9 @@ namespace Nz::ShaderBuilder return condStatementNode; } - inline std::unique_ptr Impl::Constant::operator()(ShaderAst::ConstantValue value) const + inline std::unique_ptr Impl::Constant::operator()(ShaderAst::ConstantValue value) const { - auto constantNode = std::make_unique(); + auto constantNode = std::make_unique(); constantNode->value = std::move(value); return constantNode; diff --git a/include/Nazara/Shader/SpirvAstVisitor.hpp b/include/Nazara/Shader/SpirvAstVisitor.hpp index 41e305b7e..6f1a1aa94 100644 --- a/include/Nazara/Shader/SpirvAstVisitor.hpp +++ b/include/Nazara/Shader/SpirvAstVisitor.hpp @@ -47,7 +47,7 @@ namespace Nz void Visit(ShaderAst::BranchStatement& node) override; void Visit(ShaderAst::CallFunctionExpression& node) override; void Visit(ShaderAst::CastExpression& node) override; - void Visit(ShaderAst::ConstantExpression& node) override; + void Visit(ShaderAst::ConstantValueExpression& node) override; void Visit(ShaderAst::DeclareConstStatement& node) override; void Visit(ShaderAst::DeclareExternalStatement& node) override; void Visit(ShaderAst::DeclareFunctionStatement& node) override; diff --git a/src/Nazara/Shader/Ast/AstCloner.cpp b/src/Nazara/Shader/Ast/AstCloner.cpp index eda030f18..9c1332f0f 100644 --- a/src/Nazara/Shader/Ast/AstCloner.cpp +++ b/src/Nazara/Shader/Ast/AstCloner.cpp @@ -313,9 +313,9 @@ namespace Nz::ShaderAst return clone; } - ExpressionPtr AstCloner::Clone(ConstantExpression& node) + ExpressionPtr AstCloner::Clone(ConstantValueExpression& node) { - auto clone = std::make_unique(); + auto clone = std::make_unique(); clone->value = node.value; clone->cachedExpressionType = node.cachedExpressionType; diff --git a/src/Nazara/Shader/Ast/AstOptimizer.cpp b/src/Nazara/Shader/Ast/AstOptimizer.cpp index d1bcc0c76..dc04f5443 100644 --- a/src/Nazara/Shader/Ast/AstOptimizer.cpp +++ b/src/Nazara/Shader/Ast/AstOptimizer.cpp @@ -42,7 +42,7 @@ namespace Nz::ShaderAst template struct BinaryCompEqBase { - std::unique_ptr operator()(const T1& lhs, const T2& rhs) + std::unique_ptr operator()(const T1& lhs, const T2& rhs) { return ShaderBuilder::Constant(lhs == rhs); } @@ -61,7 +61,7 @@ namespace Nz::ShaderAst template struct BinaryCompGeBase { - std::unique_ptr operator()(const T1& lhs, const T2& rhs) + std::unique_ptr operator()(const T1& lhs, const T2& rhs) { return ShaderBuilder::Constant(lhs >= rhs); } @@ -80,7 +80,7 @@ namespace Nz::ShaderAst template struct BinaryCompGtBase { - std::unique_ptr operator()(const T1& lhs, const T2& rhs) + std::unique_ptr operator()(const T1& lhs, const T2& rhs) { return ShaderBuilder::Constant(lhs > rhs); } @@ -99,7 +99,7 @@ namespace Nz::ShaderAst template struct BinaryCompLeBase { - std::unique_ptr operator()(const T1& lhs, const T2& rhs) + std::unique_ptr operator()(const T1& lhs, const T2& rhs) { return ShaderBuilder::Constant(lhs <= rhs); } @@ -118,7 +118,7 @@ namespace Nz::ShaderAst template struct BinaryCompLtBase { - std::unique_ptr operator()(const T1& lhs, const T2& rhs) + std::unique_ptr operator()(const T1& lhs, const T2& rhs) { return ShaderBuilder::Constant(lhs < rhs); } @@ -137,7 +137,7 @@ namespace Nz::ShaderAst template struct BinaryCompNeBase { - std::unique_ptr operator()(const T1& lhs, const T2& rhs) + std::unique_ptr operator()(const T1& lhs, const T2& rhs) { return ShaderBuilder::Constant(lhs != rhs); } @@ -156,7 +156,7 @@ namespace Nz::ShaderAst template struct BinaryLogicalAndBase { - std::unique_ptr operator()(const T1& lhs, const T2& rhs) + std::unique_ptr operator()(const T1& lhs, const T2& rhs) { return ShaderBuilder::Constant(lhs && rhs); } @@ -175,7 +175,7 @@ namespace Nz::ShaderAst template struct BinaryLogicalOrBase { - std::unique_ptr operator()(const T1& lhs, const T2& rhs) + std::unique_ptr operator()(const T1& lhs, const T2& rhs) { return ShaderBuilder::Constant(lhs || rhs); } @@ -194,7 +194,7 @@ namespace Nz::ShaderAst template struct BinaryAdditionBase { - std::unique_ptr operator()(const T1& lhs, const T2& rhs) + std::unique_ptr operator()(const T1& lhs, const T2& rhs) { return ShaderBuilder::Constant(lhs + rhs); } @@ -213,7 +213,7 @@ namespace Nz::ShaderAst template struct BinaryDivisionBase { - std::unique_ptr operator()(const T1& lhs, const T2& rhs) + std::unique_ptr operator()(const T1& lhs, const T2& rhs) { return ShaderBuilder::Constant(lhs / rhs); } @@ -232,7 +232,7 @@ namespace Nz::ShaderAst template struct BinaryMultiplicationBase { - std::unique_ptr operator()(const T1& lhs, const T2& rhs) + std::unique_ptr operator()(const T1& lhs, const T2& rhs) { return ShaderBuilder::Constant(lhs * rhs); } @@ -251,7 +251,7 @@ namespace Nz::ShaderAst template struct BinarySubtractionBase { - std::unique_ptr operator()(const T1& lhs, const T2& rhs) + std::unique_ptr operator()(const T1& lhs, const T2& rhs) { return ShaderBuilder::Constant(lhs - rhs); } @@ -271,7 +271,7 @@ namespace Nz::ShaderAst template struct CastConstantBase { - std::unique_ptr operator()(const Args&... args) + std::unique_ptr operator()(const Args&... args) { return ShaderBuilder::Constant(T(args...)); } @@ -295,7 +295,7 @@ namespace Nz::ShaderAst template struct UnaryLogicalNotBase { - std::unique_ptr operator()(const T& arg) + std::unique_ptr operator()(const T& arg) { return ShaderBuilder::Constant(!arg); } @@ -314,7 +314,7 @@ namespace Nz::ShaderAst template struct UnaryMinusBase { - std::unique_ptr operator()(const T& arg) + std::unique_ptr operator()(const T& arg) { return ShaderBuilder::Constant(-arg); } @@ -333,7 +333,7 @@ namespace Nz::ShaderAst template struct UnaryPlusBase { - std::unique_ptr operator()(const T& arg) + std::unique_ptr operator()(const T& arg) { return ShaderBuilder::Constant(arg); } @@ -573,10 +573,10 @@ namespace Nz::ShaderAst auto lhs = CloneExpression(node.left); auto rhs = CloneExpression(node.right); - if (lhs->GetType() == NodeType::ConstantExpression && rhs->GetType() == NodeType::ConstantExpression) + if (lhs->GetType() == NodeType::ConstantValueExpression && rhs->GetType() == NodeType::ConstantValueExpression) { - auto lhsConstant = static_unique_pointer_cast(std::move(lhs)); - auto rhsConstant = static_unique_pointer_cast(std::move(rhs)); + auto lhsConstant = static_unique_pointer_cast(std::move(lhs)); + auto rhsConstant = static_unique_pointer_cast(std::move(rhs)); ExpressionPtr optimized; switch (node.op) @@ -657,9 +657,9 @@ namespace Nz::ShaderAst ExpressionPtr optimized; if (IsPrimitiveType(node.targetType)) { - if (expressionCount == 1 && expressions.front()->GetType() == NodeType::ConstantExpression) + if (expressionCount == 1 && expressions.front()->GetType() == NodeType::ConstantValueExpression) { - auto constantExpr = static_unique_pointer_cast(std::move(expressions.front())); + auto constantExpr = static_unique_pointer_cast(std::move(expressions.front())); switch (std::get(node.targetType)) { @@ -678,13 +678,13 @@ namespace Nz::ShaderAst std::vector constantValues; for (std::size_t i = 0; i < expressionCount; ++i) { - if (expressions[i]->GetType() != NodeType::ConstantExpression) + if (expressions[i]->GetType() != NodeType::ConstantValueExpression) { constantValues.clear(); break; } - const auto& constantExpr = static_cast(*expressions[i]); + const auto& constantExpr = static_cast(*expressions[i]); if (!constantValues.empty() && GetExpressionType(constantValues.front()) != GetExpressionType(constantExpr.value)) { @@ -766,9 +766,9 @@ namespace Nz::ShaderAst { auto cond = CloneExpression(condStatement.condition); - if (cond->GetType() == NodeType::ConstantExpression) + if (cond->GetType() == NodeType::ConstantValueExpression) { - auto& constant = static_cast(*cond); + auto& constant = static_cast(*cond); assert(constant.cachedExpressionType); const ExpressionType& constantType = constant.cachedExpressionType.value(); @@ -821,10 +821,10 @@ namespace Nz::ShaderAst return AstCloner::Clone(node); auto cond = CloneExpression(node.condition); - if (cond->GetType() != NodeType::ConstantExpression) + if (cond->GetType() != NodeType::ConstantValueExpression) throw std::runtime_error("conditional expression condition must be a constant expression"); - auto& constant = static_cast(*cond); + auto& constant = static_cast(*cond); assert(constant.cachedExpressionType); const ExpressionType& constantType = constant.cachedExpressionType.value(); @@ -854,9 +854,9 @@ namespace Nz::ShaderAst { auto expr = CloneExpression(node.expression); - if (expr->GetType() == NodeType::ConstantExpression) + if (expr->GetType() == NodeType::ConstantValueExpression) { - auto constantExpr = static_unique_pointer_cast(std::move(expr)); + auto constantExpr = static_unique_pointer_cast(std::move(expr)); ExpressionPtr optimized; switch (node.op) @@ -890,10 +890,10 @@ namespace Nz::ShaderAst return AstCloner::Clone(node); auto cond = CloneExpression(node.condition); - if (cond->GetType() != NodeType::ConstantExpression) + if (cond->GetType() != NodeType::ConstantValueExpression) throw std::runtime_error("conditional expression condition must be a constant expression"); - auto& constant = static_cast(*cond); + auto& constant = static_cast(*cond); assert(constant.cachedExpressionType); const ExpressionType& constantType = constant.cachedExpressionType.value(); @@ -909,9 +909,9 @@ namespace Nz::ShaderAst } template - ExpressionPtr AstOptimizer::PropagateBinaryConstant(std::unique_ptr&& lhs, std::unique_ptr&& rhs) + ExpressionPtr AstOptimizer::PropagateBinaryConstant(std::unique_ptr&& lhs, std::unique_ptr&& rhs) { - std::unique_ptr optimized; + std::unique_ptr optimized; std::visit([&](auto&& arg1) { using T1 = std::decay_t; @@ -938,9 +938,9 @@ namespace Nz::ShaderAst } template - ExpressionPtr AstOptimizer::PropagateSingleValueCast(std::unique_ptr&& operand) + ExpressionPtr AstOptimizer::PropagateSingleValueCast(std::unique_ptr&& operand) { - std::unique_ptr optimized; + std::unique_ptr optimized; std::visit([&](auto&& arg) { @@ -959,9 +959,9 @@ namespace Nz::ShaderAst } template - ExpressionPtr AstOptimizer::PropagateUnaryConstant(std::unique_ptr&& operand) + ExpressionPtr AstOptimizer::PropagateUnaryConstant(std::unique_ptr&& operand) { - std::unique_ptr optimized; + std::unique_ptr optimized; std::visit([&](auto&& arg) { using T = std::decay_t; @@ -984,7 +984,7 @@ namespace Nz::ShaderAst template ExpressionPtr AstOptimizer::PropagateVec2Cast(TargetType v1, TargetType v2) { - std::unique_ptr optimized; + std::unique_ptr optimized; using CCType = CastConstantPropagation, TargetType, TargetType>; @@ -1001,7 +1001,7 @@ namespace Nz::ShaderAst template ExpressionPtr AstOptimizer::PropagateVec3Cast(TargetType v1, TargetType v2, TargetType v3) { - std::unique_ptr optimized; + std::unique_ptr optimized; using CCType = CastConstantPropagation, TargetType, TargetType, TargetType>; @@ -1018,7 +1018,7 @@ namespace Nz::ShaderAst template ExpressionPtr AstOptimizer::PropagateVec4Cast(TargetType v1, TargetType v2, TargetType v3, TargetType v4) { - std::unique_ptr optimized; + std::unique_ptr optimized; using CCType = CastConstantPropagation, TargetType, TargetType, TargetType, TargetType>; diff --git a/src/Nazara/Shader/Ast/AstRecursiveVisitor.cpp b/src/Nazara/Shader/Ast/AstRecursiveVisitor.cpp index f5829f630..ae65a181d 100644 --- a/src/Nazara/Shader/Ast/AstRecursiveVisitor.cpp +++ b/src/Nazara/Shader/Ast/AstRecursiveVisitor.cpp @@ -62,7 +62,7 @@ namespace Nz::ShaderAst node.falsePath->Visit(*this); } - void AstRecursiveVisitor::Visit(ConstantExpression& /*node*/) + void AstRecursiveVisitor::Visit(ConstantValueExpression& /*node*/) { /* Nothing to do */ } diff --git a/src/Nazara/Shader/Ast/AstSerializer.cpp b/src/Nazara/Shader/Ast/AstSerializer.cpp index 8ac050e46..fe1e6b857 100644 --- a/src/Nazara/Shader/Ast/AstSerializer.cpp +++ b/src/Nazara/Shader/Ast/AstSerializer.cpp @@ -123,7 +123,7 @@ namespace Nz::ShaderAst Node(node.falsePath); } - void AstSerializerBase::Serialize(ConstantExpression& node) + void AstSerializerBase::Serialize(ConstantValueExpression& node) { UInt32 typeIndex; if (IsWriting()) diff --git a/src/Nazara/Shader/Ast/AstUtils.cpp b/src/Nazara/Shader/Ast/AstUtils.cpp index 31c2b6985..8505a8ce4 100644 --- a/src/Nazara/Shader/Ast/AstUtils.cpp +++ b/src/Nazara/Shader/Ast/AstUtils.cpp @@ -62,7 +62,7 @@ namespace Nz::ShaderAst m_expressionCategory = ExpressionCategory::LValue; } - void ShaderAstValueCategory::Visit(ConstantExpression& /*node*/) + void ShaderAstValueCategory::Visit(ConstantValueExpression& /*node*/) { m_expressionCategory = ExpressionCategory::RValue; } diff --git a/src/Nazara/Shader/Ast/SanitizeVisitor.cpp b/src/Nazara/Shader/Ast/SanitizeVisitor.cpp index 276df8cab..e9d823105 100644 --- a/src/Nazara/Shader/Ast/SanitizeVisitor.cpp +++ b/src/Nazara/Shader/Ast/SanitizeVisitor.cpp @@ -569,9 +569,9 @@ namespace Nz::ShaderAst return AstCloner::Clone(*node.falsePath); } - ExpressionPtr SanitizeVisitor::Clone(ConstantExpression& node) + ExpressionPtr SanitizeVisitor::Clone(ConstantValueExpression& node) { - auto clone = static_unique_pointer_cast(AstCloner::Clone(node)); + auto clone = static_unique_pointer_cast(AstCloner::Clone(node)); clone->cachedExpressionType = GetExpressionType(clone->value); return clone; @@ -792,10 +792,10 @@ namespace Nz::ShaderAst throw AstError{ "const variables must have an expression" }; clone->expression = Optimize(*clone->expression); - if (clone->expression->GetType() != NodeType::ConstantExpression) + if (clone->expression->GetType() != NodeType::ConstantValueExpression) throw AstError{ "const variable must have constant expressions " }; - const ConstantValue& value = static_cast(*clone->expression).value; + const ConstantValue& value = static_cast(*clone->expression).value; ExpressionType expressionType = ResolveType(GetExpressionType(value)); @@ -1158,10 +1158,10 @@ namespace Nz::ShaderAst { // Run optimizer on constant value to hopefully retrieve a single constant value ExpressionPtr optimizedExpr = Optimize(expr); - if (optimizedExpr->GetType() != NodeType::ConstantExpression) + if (optimizedExpr->GetType() != NodeType::ConstantValueExpression) throw AstError{"expected a constant expression"}; - return static_cast(*optimizedExpr).value; + return static_cast(*optimizedExpr).value; } template @@ -1447,10 +1447,10 @@ namespace Nz::ShaderAst auto& indexExpr = node.indices[i]; const ShaderAst::ExpressionType& indexType = GetExpressionType(*indexExpr); - if (indexExpr->GetType() != NodeType::ConstantExpression || indexType != ExpressionType{ PrimitiveType::Int32 }) + if (indexExpr->GetType() != NodeType::ConstantValueExpression || indexType != ExpressionType{ PrimitiveType::Int32 }) throw AstError{ "struct can only be accessed with constant i32 indices" }; - ConstantExpression& constantExpr = static_cast(*indexExpr); + ConstantValueExpression& constantExpr = static_cast(*indexExpr); Int32 index = std::get(constantExpr.value); diff --git a/src/Nazara/Shader/GlslWriter.cpp b/src/Nazara/Shader/GlslWriter.cpp index 8b491cc0a..5009ebe18 100644 --- a/src/Nazara/Shader/GlslWriter.cpp +++ b/src/Nazara/Shader/GlslWriter.cpp @@ -387,8 +387,8 @@ namespace Nz { ShaderAst::StructDescription* structDesc = Retrieve(m_currentState->structs, structIndex); - assert((*memberIndices)->GetType() == ShaderAst::NodeType::ConstantExpression); - auto& constantValue = static_cast(**memberIndices); + assert((*memberIndices)->GetType() == ShaderAst::NodeType::ConstantValueExpression); + auto& constantValue = static_cast(**memberIndices); Int32 index = std::get(constantValue.value); assert(index >= 0); @@ -828,7 +828,7 @@ namespace Nz Append(")"); } - void GlslWriter::Visit(ShaderAst::ConstantExpression& node) + void GlslWriter::Visit(ShaderAst::ConstantValueExpression& node) { std::visit([&](auto&& arg) { diff --git a/src/Nazara/Shader/LangWriter.cpp b/src/Nazara/Shader/LangWriter.cpp index f4145f606..6bc138237 100644 --- a/src/Nazara/Shader/LangWriter.cpp +++ b/src/Nazara/Shader/LangWriter.cpp @@ -418,8 +418,8 @@ namespace Nz { ShaderAst::StructDescription* structDesc = Retrieve(m_currentState->structs, structIndex); - assert((*memberIndices)->GetType() == ShaderAst::NodeType::ConstantExpression); - auto& constantValue = static_cast(**memberIndices); + assert((*memberIndices)->GetType() == ShaderAst::NodeType::ConstantValueExpression); + auto& constantValue = static_cast(**memberIndices); Int32 index = std::get(constantValue.value); const auto& member = structDesc->members[index]; @@ -637,7 +637,7 @@ namespace Nz node.statement->Visit(*this); } - void LangWriter::Visit(ShaderAst::ConstantExpression& node) + void LangWriter::Visit(ShaderAst::ConstantValueExpression& node) { std::visit([&](auto&& arg) { diff --git a/src/Nazara/Shader/SpirvAstVisitor.cpp b/src/Nazara/Shader/SpirvAstVisitor.cpp index af9eb5873..c41d77620 100644 --- a/src/Nazara/Shader/SpirvAstVisitor.cpp +++ b/src/Nazara/Shader/SpirvAstVisitor.cpp @@ -576,7 +576,7 @@ namespace Nz } } - void SpirvAstVisitor::Visit(ShaderAst::ConstantExpression& node) + void SpirvAstVisitor::Visit(ShaderAst::ConstantValueExpression& node) { std::visit([&] (const auto& value) { diff --git a/src/Nazara/Shader/SpirvWriter.cpp b/src/Nazara/Shader/SpirvWriter.cpp index e25a11d37..ce9d550ce 100644 --- a/src/Nazara/Shader/SpirvWriter.cpp +++ b/src/Nazara/Shader/SpirvWriter.cpp @@ -113,7 +113,7 @@ namespace Nz throw std::runtime_error("unexpected conditional expression, did you forget to sanitize the shader?"); } - void Visit(ShaderAst::ConstantExpression& node) override + void Visit(ShaderAst::ConstantValueExpression& node) override { std::visit([&](auto&& arg) {