-#ifndef TECHNIQUE_H_
-#define TECHNIQUE_H_
-
-#include "renderpass.h"
-#include "tag.h"
-
-namespace Msp {
-namespace GL {
-
-class Material;
-class Texture;
-
-/**
-*/
-class Technique
-{
-public:
- class Loader: public Msp::DataFile::CollectionObjectLoader<Technique>
- {
- public:
- Loader(Technique &);
- Loader(Technique &, Collection &);
-
- private:
- void init();
- void inherit(const std::string &);
- void pass(const std::string &);
- };
-
-private:
- class InheritLoader: public Msp::DataFile::CollectionObjectLoader<Technique>
- {
- public:
- InheritLoader(Technique &, Collection &);
-
- private:
- void texture(const std::string &, const std::string &);
- };
-
-public:
- typedef std::map<Tag, RenderPass> PassMap;
-
-private:
- PassMap passes;
-
-public:
- RenderPass &add_pass(const GL::Tag &);
- bool has_pass(const GL::Tag &) const;
- const RenderPass &get_pass(const GL::Tag &) const;
- const PassMap &get_passes() const { return passes; }
- bool has_shaders() const;
-};
-
-} // namespace GL
-} // namespace Msp
-
-#endif