+#include <msp/core/algorithm.h>
#include "effect.h"
namespace Msp {
namespace GL {
-Effect::Effect(Renderable &r):
- renderable(r)
+Effect::Effect(Renderable &c):
+ content(c)
{
- enabled_passes.insert(Tag());
+ enable_for_method(Tag());
}
-void Effect::enable_for_pass(Tag tag)
+void Effect::enable_for_method(Tag tag)
{
- enabled_passes.insert(tag);
+ auto i = lower_bound(enabled_methods, tag);
+ if(i==enabled_methods.end() || *i!=tag)
+ enabled_methods.insert(i, tag);
}
-void Effect::disable_for_pass(Tag tag)
+void Effect::disable_for_method(Tag tag)
{
- enabled_passes.erase(tag);
+ auto i = lower_bound(enabled_methods, tag);
+ if(i!=enabled_methods.end() && *i==tag)
+ enabled_methods.erase(i);
+}
+
+bool Effect::is_enabled_for_method(Tag tag) const
+{
+ auto i = lower_bound(enabled_methods, tag);
+ return (i!=enabled_methods.end() && *i==tag);
+}
+
+
+Effect::Template::Loader::Loader(Template &t, Collection &c):
+ CollectionObjectLoader<Template>(t, &c)
+{ }
+
+void Effect::Template::Loader::init_actions()
+{
+ add("content", &Template::content_name);
}
} // namespace GL