+#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_methods.insert(Tag());
+ enable_for_method(Tag());
}
void Effect::enable_for_method(Tag tag)
{
- enabled_methods.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_method(Tag tag)
{
- enabled_methods.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);
}