namespace GL {
namespace SL {
+/** Generates default precision declarations if they are missing, to satisfy
+GLSL ES requirements. */
class DefaultPrecisionGenerator: private TraversingVisitor
{
private:
virtual void visit(VariableDeclaration &);
};
+/** Removes precision qualifiers from variable declarations, as well as
+default precision declarations. */
class PrecisionRemover: private TraversingVisitor
{
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<Statement>::iterator uniform_insert_point;
std::set<Node *> nodes_to_remove;