-#ifndef TECHNIQUE_H_
-#define TECHNIQUE_H_
+#ifndef MSP_GL_TECHNIQUE_H_
+#define MSP_GL_TECHNIQUE_H_
#include "renderpass.h"
#include "tag.h"
class Texture;
/**
+Ties multiple tagged render passes together.
*/
class Technique
{
{
public:
InheritLoader(Technique &, Collection &);
-
+
private:
+ void material(const std::string &, const std::string &);
void texture(const std::string &, const std::string &);
+ void uniforms();
};
+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;
+ RenderPass &add_pass(const Tag &);
+ bool has_pass(const Tag &) const;
+ const RenderPass &get_pass(const Tag &) const;
+ const RenderPass *find_pass(const Tag &) const;
const PassMap &get_passes() const { return passes; }
+ bool replace_texture(const std::string &, const Texture &);
+ bool replace_material(const std::string &, const Material &);
+ bool replace_uniforms(const ProgramData &);
+ bool has_shaders() const;
};
} // namespace GL