X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fcompatibility.h;h=c30dce8c2f3c7728188a6dcc1e7c671c08a405d5;hb=8173340a7737e32cb25b21b67049102bd1526beb;hp=852a6590bd67c287cf272d1a85bc9cfdb746a5c3;hpb=5c33b56c3b97ca0381ac216a603c7553f4bea499;p=libs%2Fgl.git diff --git a/source/glsl/compatibility.h b/source/glsl/compatibility.h index 852a6590..c30dce8c 100644 --- a/source/glsl/compatibility.h +++ b/source/glsl/compatibility.h @@ -8,6 +8,8 @@ namespace Msp { namespace GL { namespace SL { +/** Generates default precision declarations if they are missing, to satisfy +GLSL ES requirements. */ class DefaultPrecisionGenerator: private TraversingVisitor { private: @@ -26,6 +28,8 @@ private: virtual void visit(VariableDeclaration &); }; +/** Removes precision qualifiers from variable declarations, as well as +default precision declarations. */ class PrecisionRemover: private TraversingVisitor { private: @@ -39,12 +43,14 @@ private: virtual void visit(VariableDeclaration &); }; +/** Converts structures of the syntax tree to match a particular set of +features. */ class LegacyConverter: private TraversingVisitor { private: Stage *stage; Features features; - std::string type; + std::string r_type; VariableDeclaration *frag_out; NodeList::iterator uniform_insert_point; std::set nodes_to_remove;