]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/effect.h
Support effects and subordinate sequences inside sequence templates
[libs/gl.git] / source / effects / effect.h
index 9bf49c22b812a585200a0c28890932dcadadf093..eadb4dc845984a3d8e04d83e93d6a819df81bdf0 100644 (file)
@@ -2,6 +2,7 @@
 #define MSP_GL_EFFECT_H_
 
 #include <set>
+#include <msp/datafile/objectloader.h>
 #include "renderable.h"
 
 namespace Msp {
@@ -14,6 +15,24 @@ the wrapped Renderable's render method, and clean up after itself.
 */
 class Effect: public Renderable
 {
+public:
+       struct Template
+       {
+               class Loader: public DataFile::CollectionObjectLoader<Template>
+               {
+               public:
+                       Loader(Template &, Collection &);
+               protected:
+                       virtual void init_actions();
+               };
+
+               std::string content_name;
+
+               virtual ~Template() = default;
+
+               virtual Effect *create(const std::map<std::string, Renderable *> &) const = 0;
+       };
+
 protected:
        Renderable &renderable;
        std::set<Tag> enabled_methods;