1 #ifndef MSP_GL_SL_COMPATIBILITY_H_
2 #define MSP_GL_SL_COMPATIBILITY_H_
11 class DefaultPrecisionGenerator: public BlockModifier
15 std::set<std::string> have_default;
18 DefaultPrecisionGenerator();
20 using StageVisitor::visit;
21 virtual void visit(Block &);
22 virtual void visit(Precision &);
23 virtual void visit(VariableDeclaration &);
26 class PrecisionRemover: public BlockModifier
29 using StageVisitor::visit;
30 virtual void visit(Precision &);
31 virtual void visit(VariableDeclaration &);
34 class LegacyConverter: public BlockModifier
38 Version target_version;
40 VariableDeclaration *frag_out;
44 LegacyConverter(const Version &);
47 bool check_version(const Version &) const;
48 bool check_extension(const Extension &) const;
49 using StageVisitor::visit;
50 bool supports_unified_interface_syntax() const;
51 virtual void visit(VariableReference &);
52 virtual void visit(Assignment &);
53 bool supports_unified_sampling_functions() const;
54 virtual void visit(FunctionCall &);
55 bool supports_interface_layouts() const;
56 bool supports_centroid_sampling() const;
57 bool supports_sample_sampling() const;
58 virtual void visit(VariableDeclaration &);
59 bool supports_interface_blocks(const std::string &) const;
60 virtual void visit(InterfaceBlock &);