X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmaterials%2Ftechnique.h;h=4e6b908d7847c470a4fc06ec2d5225f57a54aed2;hb=c0b7d6ee4a7478f5aecb1504429ec1fc846d64ed;hp=8e4adf4f1ebaad993e2fd0efbd1d6806b38599e3;hpb=9549f3401a70ca0359324a3e56e1e334981e5516;p=libs%2Fgl.git diff --git a/source/materials/technique.h b/source/materials/technique.h index 8e4adf4f..4e6b908d 100644 --- a/source/materials/technique.h +++ b/source/materials/technique.h @@ -1,7 +1,8 @@ #ifndef MSP_GL_TECHNIQUE_H_ #define MSP_GL_TECHNIQUE_H_ -#include "renderpass.h" +#include +#include "rendermethod.h" #include "tag.h" namespace Msp { @@ -11,7 +12,7 @@ class Material; class Texture; /** -Ties multiple tagged render passes together. +Ties multiple tagged render methods together. */ class Technique { @@ -19,17 +20,22 @@ public: class Loader: public Msp::DataFile::CollectionObjectLoader { private: + std::string inline_base_name; + static ActionMap shared_actions; public: Loader(Technique &); Loader(Technique &, Collection &); - private: virtual void init_actions(); + public: + void set_inline_base_name(const std::string &); + + private: void inherit(const std::string &); - void pass(const std::string &); + void method(const std::string &); }; private: @@ -44,22 +50,19 @@ private: void uniforms(); }; -public: - typedef std::map PassMap; - -private: - PassMap passes; + std::map methods; public: - RenderPass &add_pass(Tag); - bool has_pass(Tag) const; - const RenderPass &get_pass(Tag) const; - const RenderPass *find_pass(Tag) const; - const PassMap &get_passes() const { return passes; } + RenderMethod &add_method(Tag); + bool has_method(Tag) const; + const RenderMethod &get_method(Tag) const; + const RenderMethod *find_method(Tag) const; + const std::map &get_methods() const { return methods; } 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; + + void set_debug_name(const std::string &); }; } // namespace GL