};
Type type;
- Stage *previous;
+ Stage *previous = 0;
Block content;
std::map<std::string, TypeDeclaration *> types;
std::map<std::string, InterfaceBlock *> interface_blocks;
std::map<std::string, unsigned> locations;
std::map<std::string, unsigned> texture_bindings;
std::map<std::string, unsigned> uniform_block_bindings;
+ unsigned n_clip_distances = 0;
Features required_features;
std::vector<Diagnostic> diagnostics;
};
std::string get_unused_variable_name(const Block &, const std::string &);
-
-int get_layout_value(const Layout &, const std::string &, int = -1);
+const TypeDeclaration *get_ultimate_base_type(const TypeDeclaration *);
+bool has_layout_qualifier(const Layout *, const std::string &);
+int get_layout_value(const Layout *, const std::string &, int = -1);
+void add_layout_qualifier(RefPtr<Layout> &, const Layout::Qualifier &);
void add_to_chain(Assignment::Target &, Assignment::Target::ChainType, unsigned);
+bool targets_overlap(const Assignment::Target &, const Assignment::Target &);
} // namespace SL
} // namespace GL