diff --git a/include/Nazara/Shader/ShaderBuilder.hpp b/include/Nazara/Shader/ShaderBuilder.hpp index db3f56991..78a5e114e 100644 --- a/include/Nazara/Shader/ShaderBuilder.hpp +++ b/include/Nazara/Shader/ShaderBuilder.hpp @@ -17,10 +17,14 @@ namespace Nz::ShaderBuilder { namespace Impl { + struct AccessIndex + { + inline std::unique_ptr operator()(ShaderAst::ExpressionPtr structExpr, std::vector memberIndices) const; + }; + struct AccessMember { inline std::unique_ptr operator()(ShaderAst::ExpressionPtr structExpr, std::vector memberIdentifiers) const; - inline std::unique_ptr operator()(ShaderAst::ExpressionPtr structExpr, std::vector memberIndices) const; }; struct Assign @@ -135,6 +139,7 @@ namespace Nz::ShaderBuilder }; } + constexpr Impl::AccessIndex AccessIndex; constexpr Impl::AccessMember AccessMember; constexpr Impl::Assign Assign; constexpr Impl::Binary Binary; diff --git a/include/Nazara/Shader/ShaderBuilder.inl b/include/Nazara/Shader/ShaderBuilder.inl index 867249d54..4cb702f13 100644 --- a/include/Nazara/Shader/ShaderBuilder.inl +++ b/include/Nazara/Shader/ShaderBuilder.inl @@ -16,7 +16,7 @@ namespace Nz::ShaderBuilder return accessMemberNode; } - inline std::unique_ptr Impl::AccessMember::operator()(ShaderAst::ExpressionPtr structExpr, std::vector memberIndices) const + inline std::unique_ptr Impl::AccessIndex::operator()(ShaderAst::ExpressionPtr structExpr, std::vector memberIndices) const { auto accessMemberNode = std::make_unique(); accessMemberNode->structExpr = std::move(structExpr);