]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/syntax.h
Recognize swizzles in GLSL
[libs/gl.git] / source / glsl / syntax.h
index 30acca42b957bd42b547b642173032160fcdd0df..c3eeb6a14c7c244cea696bab9508f0d0bdc50012 100644 (file)
@@ -6,6 +6,7 @@
 #include <set>
 #include <string>
 #include <vector>
+#include <msp/core/inttypes.h>
 #include <msp/core/refptr.h>
 #include <msp/core/variant.h>
 #include "features.h"
@@ -197,6 +198,19 @@ struct MemberAccess: Expression
        virtual void visit(NodeVisitor &);
 };
 
+struct Swizzle: Expression
+{
+       NodePtr<Expression> left;
+       std::string component_group;
+       unsigned count;
+       UInt8 components[4];
+
+       Swizzle();
+
+       virtual Swizzle *clone() const { return new Swizzle(*this); }
+       virtual void visit(NodeVisitor &);
+};
+
 struct UnaryExpression: Expression
 {
        NodePtr<Expression> expression;