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(Block &);
virtual void visit(Precision &);
virtual void visit(VariableDeclaration &);
- using TraversingVisitor::visit;
};
+/** Removes precision qualifiers from variable declarations, as well as
+default precision declarations. */
class PrecisionRemover: private TraversingVisitor
{
private:
private:
virtual void visit(Precision &);
virtual void visit(VariableDeclaration &);
- using TraversingVisitor::visit;
};
+/** Converts structures of the syntax tree to match a particular set of
+features. */
class LegacyConverter: private TraversingVisitor
{
private:
virtual void visit(VariableDeclaration &);
bool supports_interface_blocks(const std::string &) const;
virtual void visit(InterfaceBlock &);
- using TraversingVisitor::visit;
};
} // namespace SL