X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fsyntax.h;h=70b1bb39f3547d2f3fb838fe8359d5aa979b5e1c;hb=ffdb126a55467245da08a9e6f5669f86e1899bb0;hp=05bcee545f4a62431ddf8c00978d766e6c670565;hpb=947bb7477205c038aa1804b84452cddd2108550a;p=libs%2Fgl.git diff --git a/source/glsl/syntax.h b/source/glsl/syntax.h index 05bcee54..70b1bb39 100644 --- a/source/glsl/syntax.h +++ b/source/glsl/syntax.h @@ -6,9 +6,8 @@ #include #include #include -#include "extension.h" +#include "features.h" #include "sourcemap.h" -#include "uniform.h" #pragma push_macro("interface") #undef interface @@ -107,10 +106,13 @@ struct Block: Node { NodeList body; bool use_braces; + bool anonymous; std::map types; std::map variables; + Block *parent; Block(); + Block(const Block &); virtual Block *clone() const { return new Block(*this); } virtual void visit(NodeVisitor &); @@ -240,9 +242,9 @@ struct Layout: Node { struct Qualifier { - // TODO the standard calls this name, not identifier - std::string identifier; - std::string value; + std::string name; + bool has_value; + int value; }; std::vector qualifiers; @@ -384,8 +386,7 @@ struct Stage std::map in_variables; std::map out_variables; std::map locations; - Version required_version; - std::vector required_extensions; + Features required_features; Stage(Type);