1 #ifndef MSP_GL_TECHNIQUE_H_
2 #define MSP_GL_TECHNIQUE_H_
4 #include "renderpass.h"
14 Ties multiple tagged render passes together.
19 class Loader: public Msp::DataFile::CollectionObjectLoader<Technique>
22 std::string inline_base_name;
24 static ActionMap shared_actions;
28 Loader(Technique &, Collection &);
30 virtual void init_actions();
33 void set_inline_base_name(const std::string &);
36 void inherit(const std::string &);
37 void pass(const std::string &);
41 class InheritLoader: public Msp::DataFile::CollectionObjectLoader<Technique>
44 InheritLoader(Technique &, Collection &);
47 void material(const std::string &, const std::string &);
48 void texture(const std::string &, const std::string &);
53 typedef std::map<Tag, RenderPass> PassMap;
59 RenderPass &add_pass(Tag);
60 bool has_pass(Tag) const;
61 const RenderPass &get_pass(Tag) const;
62 const RenderPass *find_pass(Tag) const;
63 const PassMap &get_passes() const { return passes; }
64 bool replace_texture(const std::string &, const Texture &);
65 bool replace_material(const std::string &, const Material &);
66 bool replace_uniforms(const ProgramData &);
67 DEPRECATED bool has_shaders() const;
69 void set_debug_name(const std::string &);