]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/effect.cpp
Rearrange soucre files into subdirectories
[libs/gl.git] / source / effects / effect.cpp
diff --git a/source/effects/effect.cpp b/source/effects/effect.cpp
new file mode 100644 (file)
index 0000000..ad789af
--- /dev/null
@@ -0,0 +1,39 @@
+#include "effect.h"
+#include "sampler.h"
+
+namespace Msp {
+namespace GL {
+
+WeakPtr<Sampler> Effect::linear_sampler;
+
+Effect::Effect(Renderable &r):
+       renderable(r)
+{
+       enabled_passes.insert(Tag());
+}
+
+void Effect::enable_for_pass(const Tag &tag)
+{
+       enabled_passes.insert(tag);
+}
+
+void Effect::disable_for_pass(const Tag &tag)
+{
+       enabled_passes.erase(tag);
+}
+
+RefPtr<Sampler> Effect::get_linear_sampler()
+{
+       RefPtr<Sampler> sampler = linear_sampler;
+       if(!sampler)
+       {
+               sampler = new Sampler;
+               sampler->set_filter(LINEAR);
+               sampler->set_wrap(CLAMP_TO_EDGE);
+               linear_sampler = sampler;
+       }
+       return sampler;
+}
+
+} // namespace GL
+} // namespace Msp