]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programsyntax.h
Add getter for Animation::looping
[libs/gl.git] / source / programsyntax.h
index b72d401d1ffc1b81ccf2f70affc7e39250e8c147..6a03f40fab67b2f4b02d17de5873587edf1d3e88 100644 (file)
@@ -7,6 +7,10 @@
 #include <vector>
 #include <msp/core/refptr.h>
 #include "extension.h"
+#include "uniform.h"
+
+#pragma push_macro("interface")
+#undef interface
 
 namespace Msp {
 namespace GL {
@@ -178,10 +182,20 @@ struct Import: Node
        virtual void visit(NodeVisitor &);
 };
 
+struct Precision: Node
+{
+       std::string precision;
+       std::string type;
+
+       virtual Precision *clone() const { return new Precision(*this); }
+       virtual void visit(NodeVisitor &);
+};
+
 struct Layout: Node
 {
        struct Qualifier
        {
+               // TODO the standard calls this name, not identifier
                std::string identifier;
                std::string value;
        };
@@ -216,7 +230,9 @@ struct VariableDeclaration: Node
 {
        bool constant;
        std::string sampling;
+       std::string interpolation;
        std::string interface;
+       std::string precision;
        std::string type;
        StructDeclaration *type_declaration;
        std::string name;
@@ -321,6 +337,7 @@ struct NodeVisitor
        virtual void visit(FunctionCall &) { }
        virtual void visit(ExpressionStatement &) { }
        virtual void visit(Import &) { }
+       virtual void visit(Precision &) { }
        virtual void visit(Layout &) { }
        virtual void visit(InterfaceLayout &) { }
        virtual void visit(StructDeclaration &) { }
@@ -388,4 +405,6 @@ struct Module
 } // namespace GL
 } // namespace Msp
 
+#pragma pop_macro("interface")
+
 #endif